UNPKG

mini-program-cljs

Version:

1 lines 567 kB
["^ ","~:output",["^ ","~:js","goog.provide('cljs.spec.alpha');\ngoog.require('cljs.core');\ngoog.require('goog.object');\ngoog.require('clojure.walk');\ngoog.require('cljs.spec.gen.alpha');\ngoog.require('clojure.string');\ncljs.spec.alpha.MAX_INT = (9007199254740991);\n/**\n * A soft limit on how many times a branching spec (or/alt/* /opt-keys/multi-spec)\n * can be recursed through during generation. After this a\n * non-recursive branch will be chosen.\n */\ncljs.spec.alpha._STAR_recursion_limit_STAR_ = (4);\n/**\n * The number of times an anonymous fn specified by fspec will be (generatively) tested during conform\n */\ncljs.spec.alpha._STAR_fspec_iterations_STAR_ = (21);\n/**\n * The number of items validated in a collection spec'ed with 'every'\n */\ncljs.spec.alpha._STAR_coll_check_limit_STAR_ = (101);\n/**\n * The number of errors reported by explain in a collection spec'ed with 'every'\n */\ncljs.spec.alpha._STAR_coll_error_limit_STAR_ = (20);\n\n/**\n * @interface\n */\ncljs.spec.alpha.Spec = function(){};\n\ncljs.spec.alpha.conform_STAR_ = (function cljs$spec$alpha$conform_STAR_(spec,x){\nif((((!((spec == null)))) && ((!((spec.cljs$spec$alpha$Spec$conform_STAR_$arity$2 == null)))))){\nreturn spec.cljs$spec$alpha$Spec$conform_STAR_$arity$2(spec,x);\n} else {\nvar x__4487__auto__ = (((spec == null))?null:spec);\nvar m__4488__auto__ = (cljs.spec.alpha.conform_STAR_[goog.typeOf(x__4487__auto__)]);\nif((!((m__4488__auto__ == null)))){\nreturn (m__4488__auto__.cljs$core$IFn$_invoke$arity$2 ? m__4488__auto__.cljs$core$IFn$_invoke$arity$2(spec,x) : m__4488__auto__.call(null,spec,x));\n} else {\nvar m__4485__auto__ = (cljs.spec.alpha.conform_STAR_[\"_\"]);\nif((!((m__4485__auto__ == null)))){\nreturn (m__4485__auto__.cljs$core$IFn$_invoke$arity$2 ? m__4485__auto__.cljs$core$IFn$_invoke$arity$2(spec,x) : m__4485__auto__.call(null,spec,x));\n} else {\nthrow cljs.core.missing_protocol(\"Spec.conform*\",spec);\n}\n}\n}\n});\n\ncljs.spec.alpha.unform_STAR_ = (function cljs$spec$alpha$unform_STAR_(spec,y){\nif((((!((spec == null)))) && ((!((spec.cljs$spec$alpha$Spec$unform_STAR_$arity$2 == null)))))){\nreturn spec.cljs$spec$alpha$Spec$unform_STAR_$arity$2(spec,y);\n} else {\nvar x__4487__auto__ = (((spec == null))?null:spec);\nvar m__4488__auto__ = (cljs.spec.alpha.unform_STAR_[goog.typeOf(x__4487__auto__)]);\nif((!((m__4488__auto__ == null)))){\nreturn (m__4488__auto__.cljs$core$IFn$_invoke$arity$2 ? m__4488__auto__.cljs$core$IFn$_invoke$arity$2(spec,y) : m__4488__auto__.call(null,spec,y));\n} else {\nvar m__4485__auto__ = (cljs.spec.alpha.unform_STAR_[\"_\"]);\nif((!((m__4485__auto__ == null)))){\nreturn (m__4485__auto__.cljs$core$IFn$_invoke$arity$2 ? m__4485__auto__.cljs$core$IFn$_invoke$arity$2(spec,y) : m__4485__auto__.call(null,spec,y));\n} else {\nthrow cljs.core.missing_protocol(\"Spec.unform*\",spec);\n}\n}\n}\n});\n\ncljs.spec.alpha.explain_STAR_ = (function cljs$spec$alpha$explain_STAR_(spec,path,via,in$,x){\nif((((!((spec == null)))) && ((!((spec.cljs$spec$alpha$Spec$explain_STAR_$arity$5 == null)))))){\nreturn spec.cljs$spec$alpha$Spec$explain_STAR_$arity$5(spec,path,via,in$,x);\n} else {\nvar x__4487__auto__ = (((spec == null))?null:spec);\nvar m__4488__auto__ = (cljs.spec.alpha.explain_STAR_[goog.typeOf(x__4487__auto__)]);\nif((!((m__4488__auto__ == null)))){\nreturn (m__4488__auto__.cljs$core$IFn$_invoke$arity$5 ? m__4488__auto__.cljs$core$IFn$_invoke$arity$5(spec,path,via,in$,x) : m__4488__auto__.call(null,spec,path,via,in$,x));\n} else {\nvar m__4485__auto__ = (cljs.spec.alpha.explain_STAR_[\"_\"]);\nif((!((m__4485__auto__ == null)))){\nreturn (m__4485__auto__.cljs$core$IFn$_invoke$arity$5 ? m__4485__auto__.cljs$core$IFn$_invoke$arity$5(spec,path,via,in$,x) : m__4485__auto__.call(null,spec,path,via,in$,x));\n} else {\nthrow cljs.core.missing_protocol(\"Spec.explain*\",spec);\n}\n}\n}\n});\n\ncljs.spec.alpha.gen_STAR_ = (function cljs$spec$alpha$gen_STAR_(spec,overrides,path,rmap){\nif((((!((spec == null)))) && ((!((spec.cljs$spec$alpha$Spec$gen_STAR_$arity$4 == null)))))){\nreturn spec.cljs$spec$alpha$Spec$gen_STAR_$arity$4(spec,overrides,path,rmap);\n} else {\nvar x__4487__auto__ = (((spec == null))?null:spec);\nvar m__4488__auto__ = (cljs.spec.alpha.gen_STAR_[goog.typeOf(x__4487__auto__)]);\nif((!((m__4488__auto__ == null)))){\nreturn (m__4488__auto__.cljs$core$IFn$_invoke$arity$4 ? m__4488__auto__.cljs$core$IFn$_invoke$arity$4(spec,overrides,path,rmap) : m__4488__auto__.call(null,spec,overrides,path,rmap));\n} else {\nvar m__4485__auto__ = (cljs.spec.alpha.gen_STAR_[\"_\"]);\nif((!((m__4485__auto__ == null)))){\nreturn (m__4485__auto__.cljs$core$IFn$_invoke$arity$4 ? m__4485__auto__.cljs$core$IFn$_invoke$arity$4(spec,overrides,path,rmap) : m__4485__auto__.call(null,spec,overrides,path,rmap));\n} else {\nthrow cljs.core.missing_protocol(\"Spec.gen*\",spec);\n}\n}\n}\n});\n\ncljs.spec.alpha.with_gen_STAR_ = (function cljs$spec$alpha$with_gen_STAR_(spec,gfn){\nif((((!((spec == null)))) && ((!((spec.cljs$spec$alpha$Spec$with_gen_STAR_$arity$2 == null)))))){\nreturn spec.cljs$spec$alpha$Spec$with_gen_STAR_$arity$2(spec,gfn);\n} else {\nvar x__4487__auto__ = (((spec == null))?null:spec);\nvar m__4488__auto__ = (cljs.spec.alpha.with_gen_STAR_[goog.typeOf(x__4487__auto__)]);\nif((!((m__4488__auto__ == null)))){\nreturn (m__4488__auto__.cljs$core$IFn$_invoke$arity$2 ? m__4488__auto__.cljs$core$IFn$_invoke$arity$2(spec,gfn) : m__4488__auto__.call(null,spec,gfn));\n} else {\nvar m__4485__auto__ = (cljs.spec.alpha.with_gen_STAR_[\"_\"]);\nif((!((m__4485__auto__ == null)))){\nreturn (m__4485__auto__.cljs$core$IFn$_invoke$arity$2 ? m__4485__auto__.cljs$core$IFn$_invoke$arity$2(spec,gfn) : m__4485__auto__.call(null,spec,gfn));\n} else {\nthrow cljs.core.missing_protocol(\"Spec.with-gen*\",spec);\n}\n}\n}\n});\n\ncljs.spec.alpha.describe_STAR_ = (function cljs$spec$alpha$describe_STAR_(spec){\nif((((!((spec == null)))) && ((!((spec.cljs$spec$alpha$Spec$describe_STAR_$arity$1 == null)))))){\nreturn spec.cljs$spec$alpha$Spec$describe_STAR_$arity$1(spec);\n} else {\nvar x__4487__auto__ = (((spec == null))?null:spec);\nvar m__4488__auto__ = (cljs.spec.alpha.describe_STAR_[goog.typeOf(x__4487__auto__)]);\nif((!((m__4488__auto__ == null)))){\nreturn (m__4488__auto__.cljs$core$IFn$_invoke$arity$1 ? m__4488__auto__.cljs$core$IFn$_invoke$arity$1(spec) : m__4488__auto__.call(null,spec));\n} else {\nvar m__4485__auto__ = (cljs.spec.alpha.describe_STAR_[\"_\"]);\nif((!((m__4485__auto__ == null)))){\nreturn (m__4485__auto__.cljs$core$IFn$_invoke$arity$1 ? m__4485__auto__.cljs$core$IFn$_invoke$arity$1(spec) : m__4485__auto__.call(null,spec));\n} else {\nthrow cljs.core.missing_protocol(\"Spec.describe*\",spec);\n}\n}\n}\n});\n\nif((typeof cljs !== 'undefined') && (typeof cljs.spec !== 'undefined') && (typeof cljs.spec.alpha !== 'undefined') && (typeof cljs.spec.alpha.registry_ref !== 'undefined')){\n} else {\ncljs.spec.alpha.registry_ref = cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);\n}\ncljs.spec.alpha.deep_resolve = (function cljs$spec$alpha$deep_resolve(reg,k){\nvar spec = k;\nwhile(true){\nif(cljs.core.ident_QMARK_(spec)){\nvar G__31711 = cljs.core.get.cljs$core$IFn$_invoke$arity$2(reg,spec);\nspec = G__31711;\ncontinue;\n} else {\nreturn spec;\n}\nbreak;\n}\n});\n/**\n * returns the spec/regex at end of alias chain starting with k, nil if not found, k if k not ident\n */\ncljs.spec.alpha.reg_resolve = (function cljs$spec$alpha$reg_resolve(k){\nif(cljs.core.ident_QMARK_(k)){\nvar reg = cljs.core.deref(cljs.spec.alpha.registry_ref);\nvar spec = cljs.core.get.cljs$core$IFn$_invoke$arity$2(reg,k);\nif((!(cljs.core.ident_QMARK_(spec)))){\nreturn spec;\n} else {\nreturn cljs.spec.alpha.deep_resolve(reg,spec);\n}\n} else {\nreturn k;\n}\n});\n/**\n * returns the spec/regex at end of alias chain starting with k, throws if not found, k if k not ident\n */\ncljs.spec.alpha.reg_resolve_BANG_ = (function cljs$spec$alpha$reg_resolve_BANG_(k){\nif(cljs.core.ident_QMARK_(k)){\nvar or__4185__auto__ = cljs.spec.alpha.reg_resolve(k);\nif(cljs.core.truth_(or__4185__auto__)){\nreturn or__4185__auto__;\n} else {\nthrow (new Error([\"Unable to resolve spec: \",cljs.core.str.cljs$core$IFn$_invoke$arity$1(k)].join('')));\n}\n} else {\nreturn k;\n}\n});\n/**\n * returns x if x is a spec object, else logical false\n */\ncljs.spec.alpha.spec_QMARK_ = (function cljs$spec$alpha$spec_QMARK_(x){\nif((((!((x == null))))?((((false) || ((cljs.core.PROTOCOL_SENTINEL === x.cljs$spec$alpha$Spec$))))?true:false):false)){\nreturn x;\n} else {\nreturn null;\n}\n});\n/**\n * returns x if x is a (cljs.spec.alpha) regex op, else logical false\n */\ncljs.spec.alpha.regex_QMARK_ = (function cljs$spec$alpha$regex_QMARK_(x){\nvar and__4174__auto__ = new cljs.core.Keyword(\"cljs.spec.alpha\",\"op\",\"cljs.spec.alpha/op\",-1269055252).cljs$core$IFn$_invoke$arity$1(x);\nif(cljs.core.truth_(and__4174__auto__)){\nreturn x;\n} else {\nreturn and__4174__auto__;\n}\n});\ncljs.spec.alpha.with_name = (function cljs$spec$alpha$with_name(spec,name){\nif(cljs.core.ident_QMARK_(spec)){\nreturn spec;\n} else {\nif(cljs.core.truth_(cljs.spec.alpha.regex_QMARK_(spec))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(spec,new cljs.core.Keyword(\"cljs.spec.alpha\",\"name\",\"cljs.spec.alpha/name\",205233570),name);\n} else {\nif((((!((spec == null))))?(((((spec.cljs$lang$protocol_mask$partition0$ & (131072))) || ((cljs.core.PROTOCOL_SENTINEL === spec.cljs$core$IMeta$))))?true:false):false)){\nreturn cljs.core.with_meta(spec,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.meta(spec),new cljs.core.Keyword(\"cljs.spec.alpha\",\"name\",\"cljs.spec.alpha/name\",205233570),name));\n} else {\nreturn null;\n}\n}\n}\n});\ncljs.spec.alpha.spec_name = (function cljs$spec$alpha$spec_name(spec){\nif(cljs.core.ident_QMARK_(spec)){\nreturn spec;\n} else {\nif(cljs.core.truth_(cljs.spec.alpha.regex_QMARK_(spec))){\nreturn new cljs.core.Keyword(\"cljs.spec.alpha\",\"name\",\"cljs.spec.alpha/name\",205233570).cljs$core$IFn$_invoke$arity$1(spec);\n} else {\nif((((!((spec == null))))?(((((spec.cljs$lang$protocol_mask$partition0$ & (131072))) || ((cljs.core.PROTOCOL_SENTINEL === spec.cljs$core$IMeta$))))?true:false):false)){\nreturn new cljs.core.Keyword(\"cljs.spec.alpha\",\"name\",\"cljs.spec.alpha/name\",205233570).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(spec));\n} else {\nreturn null;\n}\n}\n}\n});\n/**\n * spec-or-k must be a spec, regex or resolvable kw/sym, else returns nil.\n */\ncljs.spec.alpha.maybe_spec = (function cljs$spec$alpha$maybe_spec(spec_or_k){\nvar s = (function (){var or__4185__auto__ = ((cljs.core.ident_QMARK_(spec_or_k))?cljs.spec.alpha.reg_resolve(spec_or_k):false);\nif(cljs.core.truth_(or__4185__auto__)){\nreturn or__4185__auto__;\n} else {\nvar or__4185__auto____$1 = cljs.spec.alpha.spec_QMARK_(spec_or_k);\nif(cljs.core.truth_(or__4185__auto____$1)){\nreturn or__4185__auto____$1;\n} else {\nvar or__4185__auto____$2 = cljs.spec.alpha.regex_QMARK_(spec_or_k);\nif(cljs.core.truth_(or__4185__auto____$2)){\nreturn or__4185__auto____$2;\n} else {\nreturn null;\n}\n}\n}\n})();\nif(cljs.core.truth_(cljs.spec.alpha.regex_QMARK_(s))){\nreturn cljs.spec.alpha.with_name(cljs.spec.alpha.regex_spec_impl(s,null),cljs.spec.alpha.spec_name(s));\n} else {\nreturn s;\n}\n});\n/**\n * spec-or-k must be a spec, regex or kw/sym, else returns nil. Throws if unresolvable kw/sym\n */\ncljs.spec.alpha.the_spec = (function cljs$spec$alpha$the_spec(spec_or_k){\nvar or__4185__auto__ = cljs.spec.alpha.maybe_spec(spec_or_k);\nif(cljs.core.truth_(or__4185__auto__)){\nreturn or__4185__auto__;\n} else {\nif(cljs.core.ident_QMARK_(spec_or_k)){\nthrow (new Error([\"Unable to resolve spec: \",cljs.core.str.cljs$core$IFn$_invoke$arity$1(spec_or_k)].join('')));\n} else {\nreturn null;\n}\n}\n});\ncljs.spec.alpha.fn_sym = (function cljs$spec$alpha$fn_sym(f_n){\nif(clojure.string.blank_QMARK_(f_n)){\nreturn null;\n} else {\nvar xs = cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.demunge,clojure.string.split.cljs$core$IFn$_invoke$arity$2(f_n,\"$\"));\nif(((((2) <= cljs.core.count(xs))) && (cljs.core.every_QMARK_((function (p1__30693_SHARP_){\nreturn (!(clojure.string.blank_QMARK_(p1__30693_SHARP_)));\n}),xs)))){\nvar vec__30697 = cljs.core.juxt.cljs$core$IFn$_invoke$arity$2(cljs.core.butlast,cljs.core.last)(xs);\nvar xs__$1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__30697,(0),null);\nvar y = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__30697,(1),null);\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([clojure.string.join.cljs$core$IFn$_invoke$arity$2(\".\",xs__$1),\"/\",cljs.core.str.cljs$core$IFn$_invoke$arity$1(y)].join(''));\n} else {\nreturn null;\n}\n}\n});\n\n/**\n * @interface\n */\ncljs.spec.alpha.Specize = function(){};\n\ncljs.spec.alpha.specize_STAR_ = (function cljs$spec$alpha$specize_STAR_(var_args){\nvar G__30705 = arguments.length;\nswitch (G__30705) {\ncase 1:\nreturn cljs.spec.alpha.specize_STAR_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.spec.alpha.specize_STAR_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\"Invalid arity: \",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));\n\n}\n});\n\n(cljs.spec.alpha.specize_STAR_.cljs$core$IFn$_invoke$arity$1 = (function (_){\nif((((!((_ == null)))) && ((!((_.cljs$spec$alpha$Specize$specize_STAR_$arity$1 == null)))))){\nreturn _.cljs$spec$alpha$Specize$specize_STAR_$arity$1(_);\n} else {\nvar x__4487__auto__ = (((_ == null))?null:_);\nvar m__4488__auto__ = (cljs.spec.alpha.specize_STAR_[goog.typeOf(x__4487__auto__)]);\nif((!((m__4488__auto__ == null)))){\nreturn (m__4488__auto__.cljs$core$IFn$_invoke$arity$1 ? m__4488__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__4488__auto__.call(null,_));\n} else {\nvar m__4485__auto__ = (cljs.spec.alpha.specize_STAR_[\"_\"]);\nif((!((m__4485__auto__ == null)))){\nreturn (m__4485__auto__.cljs$core$IFn$_invoke$arity$1 ? m__4485__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__4485__auto__.call(null,_));\n} else {\nthrow cljs.core.missing_protocol(\"Specize.specize*\",_);\n}\n}\n}\n}));\n\n(cljs.spec.alpha.specize_STAR_.cljs$core$IFn$_invoke$arity$2 = (function (_,form){\nif((((!((_ == null)))) && ((!((_.cljs$spec$alpha$Specize$specize_STAR_$arity$2 == null)))))){\nreturn _.cljs$spec$alpha$Specize$specize_STAR_$arity$2(_,form);\n} else {\nvar x__4487__auto__ = (((_ == null))?null:_);\nvar m__4488__auto__ = (cljs.spec.alpha.specize_STAR_[goog.typeOf(x__4487__auto__)]);\nif((!((m__4488__auto__ == null)))){\nreturn (m__4488__auto__.cljs$core$IFn$_invoke$arity$2 ? m__4488__auto__.cljs$core$IFn$_invoke$arity$2(_,form) : m__4488__auto__.call(null,_,form));\n} else {\nvar m__4485__auto__ = (cljs.spec.alpha.specize_STAR_[\"_\"]);\nif((!((m__4485__auto__ == null)))){\nreturn (m__4485__auto__.cljs$core$IFn$_invoke$arity$2 ? m__4485__auto__.cljs$core$IFn$_invoke$arity$2(_,form) : m__4485__auto__.call(null,_,form));\n} else {\nthrow cljs.core.missing_protocol(\"Specize.specize*\",_);\n}\n}\n}\n}));\n\n(cljs.spec.alpha.specize_STAR_.cljs$lang$maxFixedArity = 2);\n\n\n(cljs.core.Keyword.prototype.cljs$spec$alpha$Specize$ = cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.Keyword.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1 = (function (k){\nvar k__$1 = this;\nreturn cljs.spec.alpha.specize_STAR_(cljs.spec.alpha.reg_resolve_BANG_(k__$1));\n}));\n\n(cljs.core.Keyword.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2 = (function (k,_){\nvar k__$1 = this;\nreturn cljs.spec.alpha.specize_STAR_(cljs.spec.alpha.reg_resolve_BANG_(k__$1));\n}));\n\n(cljs.core.Symbol.prototype.cljs$spec$alpha$Specize$ = cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.Symbol.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1 = (function (s){\nvar s__$1 = this;\nreturn cljs.spec.alpha.specize_STAR_(cljs.spec.alpha.reg_resolve_BANG_(s__$1));\n}));\n\n(cljs.core.Symbol.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2 = (function (s,_){\nvar s__$1 = this;\nreturn cljs.spec.alpha.specize_STAR_(cljs.spec.alpha.reg_resolve_BANG_(s__$1));\n}));\n\n(cljs.core.PersistentHashSet.prototype.cljs$spec$alpha$Specize$ = cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.PersistentHashSet.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1 = (function (s){\nvar s__$1 = this;\nreturn cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(s__$1,s__$1,null,null);\n}));\n\n(cljs.core.PersistentHashSet.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2 = (function (s,form){\nvar s__$1 = this;\nreturn cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(form,s__$1,null,null);\n}));\n\n(cljs.core.PersistentTreeSet.prototype.cljs$spec$alpha$Specize$ = cljs.core.PROTOCOL_SENTINEL);\n\n(cljs.core.PersistentTreeSet.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1 = (function (s){\nvar s__$1 = this;\nreturn cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(s__$1,s__$1,null,null);\n}));\n\n(cljs.core.PersistentTreeSet.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2 = (function (s,form){\nvar s__$1 = this;\nreturn cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(form,s__$1,null,null);\n}));\n\ngoog.object.set(cljs.spec.alpha.Specize,\"_\",true);\n\ngoog.object.set(cljs.spec.alpha.specize_STAR_,\"_\",(function() {\nvar G__31726 = null;\nvar G__31726__1 = (function (o){\nvar temp__5733__auto__ = ((cljs.core.fn_QMARK_(o))?cljs.spec.alpha.fn_sym(o.name):false);\nif(cljs.core.truth_(temp__5733__auto__)){\nvar f_n = temp__5733__auto__;\nreturn cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(f_n,o,null,null);\n} else {\nreturn cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(\"cljs.spec.alpha\",\"unknown\",\"cljs.spec.alpha/unknown\",651034818),o,null,null);\n}\n});\nvar G__31726__2 = (function (o,form){\nreturn cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(form,o,null,null);\n});\nG__31726 = function(o,form){\nswitch(arguments.length){\ncase 1:\nreturn G__31726__1.call(this,o);\ncase 2:\nreturn G__31726__2.call(this,o,form);\n}\nthrow(new Error('Invalid arity: ' + arguments.length));\n};\nG__31726.cljs$core$IFn$_invoke$arity$1 = G__31726__1;\nG__31726.cljs$core$IFn$_invoke$arity$2 = G__31726__2;\nreturn G__31726;\n})()\n);\ncljs.spec.alpha.specize = (function cljs$spec$alpha$specize(var_args){\nvar G__30720 = arguments.length;\nswitch (G__30720) {\ncase 1:\nreturn cljs.spec.alpha.specize.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.spec.alpha.specize.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\"Invalid arity: \",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));\n\n}\n});\n\n(cljs.spec.alpha.specize.cljs$core$IFn$_invoke$arity$1 = (function (s){\nvar or__4185__auto__ = cljs.spec.alpha.spec_QMARK_(s);\nif(cljs.core.truth_(or__4185__auto__)){\nreturn or__4185__auto__;\n} else {\nreturn cljs.spec.alpha.specize_STAR_(s);\n}\n}));\n\n(cljs.spec.alpha.specize.cljs$core$IFn$_invoke$arity$2 = (function (s,form){\nvar or__4185__auto__ = cljs.spec.alpha.spec_QMARK_(s);\nif(cljs.core.truth_(or__4185__auto__)){\nreturn or__4185__auto__;\n} else {\nreturn cljs.spec.alpha.specize_STAR_(s,form);\n}\n}));\n\n(cljs.spec.alpha.specize.cljs$lang$maxFixedArity = 2);\n\n/**\n * tests the validity of a conform return value\n */\ncljs.spec.alpha.invalid_QMARK_ = (function cljs$spec$alpha$invalid_QMARK_(ret){\nreturn cljs.core.keyword_identical_QMARK_(new cljs.core.Keyword(\"cljs.spec.alpha\",\"invalid\",\"cljs.spec.alpha/invalid\",-1220295119),ret);\n});\n/**\n * Given a spec and a value, returns :cljs.spec.alpha/invalid if value does\n * not match spec, else the (possibly destructured) value.\n */\ncljs.spec.alpha.conform = (function cljs$spec$alpha$conform(spec,x){\nreturn cljs.spec.alpha.conform_STAR_(cljs.spec.alpha.specize.cljs$core$IFn$_invoke$arity$1(spec),x);\n});\n/**\n * Given a spec and a value created by or compliant with a call to\n * 'conform' with the same spec, returns a value with all conform\n * destructuring undone.\n */\ncljs.spec.alpha.unform = (function cljs$spec$alpha$unform(spec,x){\nreturn cljs.spec.alpha.unform_STAR_(cljs.spec.alpha.specize.cljs$core$IFn$_invoke$arity$1(spec),x);\n});\n/**\n * returns the spec as data\n */\ncljs.spec.alpha.form = (function cljs$spec$alpha$form(spec){\nreturn cljs.spec.alpha.describe_STAR_(cljs.spec.alpha.specize.cljs$core$IFn$_invoke$arity$1(spec));\n});\ncljs.spec.alpha.abbrev = (function cljs$spec$alpha$abbrev(form){\nif(cljs.core.seq_QMARK_(form)){\nreturn clojure.walk.postwalk((function (form__$1){\nif(cljs.core.truth_((((form__$1 instanceof cljs.core.Symbol))?cljs.core.namespace(form__$1):false))){\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(form__$1));\n} else {\nif(((cljs.core.seq_QMARK_(form__$1)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\"fn\",\"fn\",465265323,null),cljs.core.first(form__$1))) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\"%\",\"%\",-950237169,null)], null),cljs.core.second(form__$1))))){\nreturn cljs.core.last(form__$1);\n} else {\nreturn form__$1;\n\n}\n}\n}),form);\n} else {\nif(cljs.core.truth_((((form instanceof cljs.core.Symbol))?cljs.core.namespace(form):false))){\nreturn cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(form));\n} else {\nreturn form;\n\n}\n}\n});\n/**\n * returns an abbreviated description of the spec as data\n */\ncljs.spec.alpha.describe = (function cljs$spec$alpha$describe(spec){\nreturn cljs.spec.alpha.abbrev(cljs.spec.alpha.form(spec));\n});\n/**\n * Takes a spec and a no-arg, generator-returning fn and returns a version of that spec that uses that generator\n */\ncljs.spec.alpha.with_gen = (function cljs$spec$alpha$with_gen(spec,gen_fn){\nvar spec__$1 = cljs.spec.alpha.reg_resolve(spec);\nif(cljs.core.truth_(cljs.spec.alpha.regex_QMARK_(spec__$1))){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(spec__$1,new cljs.core.Keyword(\"cljs.spec.alpha\",\"gfn\",\"cljs.spec.alpha/gfn\",-593120375),gen_fn);\n} else {\nreturn cljs.spec.alpha.with_gen_STAR_(cljs.spec.alpha.specize.cljs$core$IFn$_invoke$arity$1(spec__$1),gen_fn);\n}\n});\ncljs.spec.alpha.explain_data_STAR_ = (function cljs$spec$alpha$explain_data_STAR_(spec,path,via,in$,x){\nvar temp__5735__auto__ = cljs.spec.alpha.explain_STAR_(cljs.spec.alpha.specize.cljs$core$IFn$_invoke$arity$1(spec),path,via,in$,x);\nif(cljs.core.truth_(temp__5735__auto__)){\nvar probs = temp__5735__auto__;\nif(cljs.core.empty_QMARK_(probs)){\nreturn null;\n} else {\nreturn new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(\"cljs.spec.alpha\",\"problems\",\"cljs.spec.alpha/problems\",447400814),probs,new cljs.core.Keyword(\"cljs.spec.alpha\",\"spec\",\"cljs.spec.alpha/spec\",1947137578),spec,new cljs.core.Keyword(\"cljs.spec.alpha\",\"value\",\"cljs.spec.alpha/value\",1974786274),x], null);\n}\n} else {\nreturn null;\n}\n});\n/**\n * Given a spec and a value x which ought to conform, returns nil if x\n * conforms, else a map with at least the key ::problems whose value is\n * a collection of problem-maps, where problem-map has at least :path :pred and :val\n * keys describing the predicate and the value that failed at that\n * path.\n */\ncljs.spec.alpha.explain_data = (function cljs$spec$alpha$explain_data(spec,x){\nreturn cljs.spec.alpha.explain_data_STAR_(spec,cljs.core.PersistentVector.EMPTY,(function (){var temp__5733__auto__ = cljs.spec.alpha.spec_name(spec);\nif(cljs.core.truth_(temp__5733__auto__)){\nvar name = temp__5733__auto__;\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [name], null);\n} else {\nreturn cljs.core.PersistentVector.EMPTY;\n}\n})(),cljs.core.PersistentVector.EMPTY,x);\n});\n/**\n * Default printer for explain-data. nil indicates a successful validation.\n */\ncljs.spec.alpha.explain_printer = (function cljs$spec$alpha$explain_printer(ed){\nif(cljs.core.truth_(ed)){\nvar problems = cljs.core.sort_by.cljs$core$IFn$_invoke$arity$2((function (p1__30725_SHARP_){\nreturn (- cljs.core.count(new cljs.core.Keyword(null,\"path\",\"path\",-188191168).cljs$core$IFn$_invoke$arity$1(p1__30725_SHARP_)));\n}),cljs.core.sort_by.cljs$core$IFn$_invoke$arity$2((function (p1__30724_SHARP_){\nreturn (- cljs.core.count(new cljs.core.Keyword(null,\"in\",\"in\",-1531184865).cljs$core$IFn$_invoke$arity$1(p1__30724_SHARP_)));\n}),new cljs.core.Keyword(\"cljs.spec.alpha\",\"problems\",\"cljs.spec.alpha/problems\",447400814).cljs$core$IFn$_invoke$arity$1(ed)));\nreturn cljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(function (){var sb__4720__auto__ = (new goog.string.StringBuffer());\nvar _STAR_print_newline_STAR__orig_val__30726_31764 = cljs.core._STAR_print_newline_STAR_;\nvar _STAR_print_fn_STAR__orig_val__30727_31765 = cljs.core._STAR_print_fn_STAR_;\nvar _STAR_print_newline_STAR__temp_val__30728_31766 = true;\nvar _STAR_print_fn_STAR__temp_val__30729_31767 = (function (x__4721__auto__){\nreturn sb__4720__auto__.append(x__4721__auto__);\n});\n(cljs.core._STAR_print_newline_STAR_ = _STAR_print_newline_STAR__temp_val__30728_31766);\n\n(cljs.core._STAR_print_fn_STAR_ = _STAR_print_fn_STAR__temp_val__30729_31767);\n\ntry{var seq__30731_31774 = cljs.core.seq(problems);\nvar chunk__30732_31775 = null;\nvar count__30733_31776 = (0);\nvar i__30734_31777 = (0);\nwhile(true){\nif((i__30734_31777 < count__30733_31776)){\nvar map__30807_31778 = chunk__30732_31775.cljs$core$IIndexed$_nth$arity$2(null,i__30734_31777);\nvar map__30807_31779__$1 = (((((!((map__30807_31778 == null))))?(((((map__30807_31778.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__30807_31778.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__30807_31778):map__30807_31778);\nvar prob_31780 = map__30807_31779__$1;\nvar path_31782 = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__30807_31779__$1,new cljs.core.Keyword(null,\"path\",\"path\",-188191168));\nvar pred_31783 = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__30807_31779__$1,new cljs.core.Keyword(null,\"pred\",\"pred\",1927423397));\nvar val_31784 = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__30807_31779__$1,new cljs.core.Keyword(null,\"val\",\"val\",128701612));\nvar reason_31787 = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__30807_31779__$1,new cljs.core.Keyword(null,\"reason\",\"reason\",-2070751759));\nvar via_31790 = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__30807_31779__$1,new cljs.core.Keyword(null,\"via\",\"via\",-1904457336));\nvar in_31791 = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__30807_31779__$1,new cljs.core.Keyword(null,\"in\",\"in\",-1531184865));\ncljs.core.pr.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([val_31784], 0));\n\ncljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\" - failed: \"], 0));\n\nif(cljs.core.truth_(reason_31787)){\ncljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([reason_31787], 0));\n} else {\ncljs.core.pr.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.spec.alpha.abbrev(pred_31783)], 0));\n}\n\nif(cljs.core.empty_QMARK_(in_31791)){\n} else {\ncljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[\" in: \",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([in_31791], 0))].join('')], 0));\n}\n\nif(cljs.core.empty_QMARK_(path_31782)){\n} else {\ncljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[\" at: \",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([path_31782], 0))].join('')], 0));\n}\n\nif(cljs.core.empty_QMARK_(via_31790)){\n} else {\ncljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[\" spec: \",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.last(via_31790)], 0))].join('')], 0));\n}\n\nvar seq__30812_31806 = cljs.core.seq(prob_31780);\nvar chunk__30813_31807 = null;\nvar count__30814_31808 = (0);\nvar i__30815_31809 = (0);\nwhile(true){\nif((i__30815_31809 < count__30814_31808)){\nvar vec__30828_31810 = chunk__30813_31807.cljs$core$IIndexed$_nth$arity$2(null,i__30815_31809);\nvar k_31811 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__30828_31810,(0),null);\nvar v_31812 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__30828_31810,(1),null);\nif(cljs.core.truth_((function (){var fexpr__30831 = new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\"path\",\"path\",-188191168),null,new cljs.core.Keyword(null,\"pred\",\"pred\",1927423397),null,new cljs.core.Keyword(null,\"via\",\"via\",-1904457336),null,new cljs.core.Keyword(null,\"val\",\"val\",128701612),null,new cljs.core.Keyword(null,\"reason\",\"reason\",-2070751759),null,new cljs.core.Keyword(null,\"in\",\"in\",-1531184865),null], null), null);\nreturn (fexpr__30831.cljs$core$IFn$_invoke$arity$1 ? fexpr__30831.cljs$core$IFn$_invoke$arity$1(k_31811) : fexpr__30831.call(null,k_31811));\n})())){\n} else {\ncljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\"\\n\\t\",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([k_31811], 0)),\" \"], 0));\n\ncljs.core.pr.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([v_31812], 0));\n}\n\n\nvar G__31828 = seq__30812_31806;\nvar G__31829 = chunk__30813_31807;\nvar G__31830 = count__30814_31808;\nvar G__31831 = (i__30815_31809 + (1));\nseq__30812_31806 = G__31828;\nchunk__30813_31807 = G__31829;\ncount__30814_31808 = G__31830;\ni__30815_31809 = G__31831;\ncontinue;\n} else {\nvar temp__5735__auto___31833 = cljs.core.seq(seq__30812_31806);\nif(temp__5735__auto___31833){\nvar seq__30812_31839__$1 = temp__5735__auto___31833;\nif(cljs.core.chunked_seq_QMARK_(seq__30812_31839__$1)){\nvar c__4609__auto___31840 = cljs.core.chunk_first(seq__30812_31839__$1);\nvar G__31841 = cljs.core.chunk_rest(seq__30812_31839__$1);\nvar G__31842 = c__4609__auto___31840;\nvar G__31843 = cljs.core.count(c__4609__auto___31840);\nvar G__31844 = (0);\nseq__30812_31806 = G__31841;\nchunk__30813_31807 = G__31842;\ncount__30814_31808 = G__31843;\ni__30815_31809 = G__31844;\ncontinue;\n} else {\nvar vec__30832_31850 = cljs.core.first(seq__30812_31839__$1);\nvar k_31851 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__30832_31850,(0),null);\nvar v_31852 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__30832_31850,(1),null);\nif(cljs.core.truth_((function (){var fexpr__30835 = new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\"path\",\"path\",-188191168),null,new cljs.core.Keyword(null,\"pred\",\"pred\",1927423397),null,new cljs.core.Keyword(null,\"via\",\"via\",-1904457336),null,new cljs.core.Keyword(null,\"val\",\"val\",128701612),null,new cljs.core.Keyword(null,\"reason\",\"reason\",-2070751759),null,new cljs.core.Keyword(null,\"in\",\"in\",-1531184865),null], null), null);\nreturn (fexpr__30835.cljs$core$IFn$_invoke$arity$1 ? fexpr__30835.cljs$core$IFn$_invoke$arity$1(k_31851) : fexpr__30835.call(null,k_31851));\n})())){\n} else {\ncljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\"\\n\\t\",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([k_31851], 0)),\" \"], 0));\n\ncljs.core.pr.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([v_31852], 0));\n}\n\n\nvar G__31854 = cljs.core.next(seq__30812_31839__$1);\nvar G__31855 = null;\nvar G__31856 = (0);\nvar G__31857 = (0);\nseq__30812_31806 = G__31854;\nchunk__30813_31807 = G__31855;\ncount__30814_31808 = G__31856;\ni__30815_31809 = G__31857;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\ncljs.core.newline.cljs$core$IFn$_invoke$arity$0();\n\n\nvar G__31858 = seq__30731_31774;\nvar G__31859 = chunk__30732_31775;\nvar G__31860 = count__30733_31776;\nvar G__31861 = (i__30734_31777 + (1));\nseq__30731_31774 = G__31858;\nchunk__30732_31775 = G__31859;\ncount__30733_31776 = G__31860;\ni__30734_31777 = G__31861;\ncontinue;\n} else {\nvar temp__5735__auto___31862 = cljs.core.seq(seq__30731_31774);\nif(temp__5735__auto___31862){\nvar seq__30731_31863__$1 = temp__5735__auto___31862;\nif(cljs.core.chunked_seq_QMARK_(seq__30731_31863__$1)){\nvar c__4609__auto___31864 = cljs.core.chunk_first(seq__30731_31863__$1);\nvar G__31865 = cljs.core.chunk_rest(seq__30731_31863__$1);\nvar G__31866 = c__4609__auto___31864;\nvar G__31867 = cljs.core.count(c__4609__auto___31864);\nvar G__31868 = (0);\nseq__30731_31774 = G__31865;\nchunk__30732_31775 = G__31866;\ncount__30733_31776 = G__31867;\ni__30734_31777 = G__31868;\ncontinue;\n} else {\nvar map__30840_31929 = cljs.core.first(seq__30731_31863__$1);\nvar map__30840_31930__$1 = (((((!((map__30840_31929 == null))))?(((((map__30840_31929.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__30840_31929.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__30840_31929):map__30840_31929);\nvar prob_31931 = map__30840_31930__$1;\nvar path_31932 = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__30840_31930__$1,new cljs.core.Keyword(null,\"path\",\"path\",-188191168));\nvar pred_31933 = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__30840_31930__$1,new cljs.core.Keyword(null,\"pred\",\"pred\",1927423397));\nvar val_31934 = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__30840_31930__$1,new cljs.core.Keyword(null,\"val\",\"val\",128701612));\nvar reason_31935 = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__30840_31930__$1,new cljs.core.Keyword(null,\"reason\",\"reason\",-2070751759));\nvar via_31936 = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__30840_31930__$1,new cljs.core.Keyword(null,\"via\",\"via\",-1904457336));\nvar in_31937 = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__30840_31930__$1,new cljs.core.Keyword(null,\"in\",\"in\",-1531184865));\ncljs.core.pr.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([val_31934], 0));\n\ncljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\" - failed: \"], 0));\n\nif(cljs.core.truth_(reason_31935)){\ncljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([reason_31935], 0));\n} else {\ncljs.core.pr.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.spec.alpha.abbrev(pred_31933)], 0));\n}\n\nif(cljs.core.empty_QMARK_(in_31937)){\n} else {\ncljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[\" in: \",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([in_31937], 0))].join('')], 0));\n}\n\nif(cljs.core.empty_QMARK_(path_31932)){\n} else {\ncljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[\" at: \",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([path_31932], 0))].join('')], 0));\n}\n\nif(cljs.core.empty_QMARK_(via_31936)){\n} else {\ncljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[\" spec: \",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.last(via_31936)], 0))].join('')], 0));\n}\n\nvar seq__30842_31939 = cljs.core.seq(prob_31931);\nvar chunk__30843_31940 = null;\nvar count__30844_31941 = (0);\nvar i__30845_31942 = (0);\nwhile(true){\nif((i__30845_31942 < count__30844_31941)){\nvar vec__30856_31943 = chunk__30843_31940.cljs$core$IIndexed$_nth$arity$2(null,i__30845_31942);\nvar k_31944 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__30856_31943,(0),null);\nvar v_31945 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__30856_31943,(1),null);\nif(cljs.core.truth_((function (){var fexpr__30861 = new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\"path\",\"path\",-188191168),null,new cljs.core.Keyword(null,\"pred\",\"pred\",1927423397),null,new cljs.core.Keyword(null,\"via\",\"via\",-1904457336),null,new cljs.core.Keyword(null,\"val\",\"val\",128701612),null,new cljs.core.Keyword(null,\"reason\",\"reason\",-2070751759),null,new cljs.core.Keyword(null,\"in\",\"in\",-1531184865),null], null), null);\nreturn (fexpr__30861.cljs$core$IFn$_invoke$arity$1 ? fexpr__30861.cljs$core$IFn$_invoke$arity$1(k_31944) : fexpr__30861.call(null,k_31944));\n})())){\n} else {\ncljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\"\\n\\t\",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([k_31944], 0)),\" \"], 0));\n\ncljs.core.pr.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([v_31945], 0));\n}\n\n\nvar G__31946 = seq__30842_31939;\nvar G__31947 = chunk__30843_31940;\nvar G__31948 = count__30844_31941;\nvar G__31949 = (i__30845_31942 + (1));\nseq__30842_31939 = G__31946;\nchunk__30843_31940 = G__31947;\ncount__30844_31941 = G__31948;\ni__30845_31942 = G__31949;\ncontinue;\n} else {\nvar temp__5735__auto___31950__$1 = cljs.core.seq(seq__30842_31939);\nif(temp__5735__auto___31950__$1){\nvar seq__30842_31951__$1 = temp__5735__auto___31950__$1;\nif(cljs.core.chunked_seq_QMARK_(seq__30842_31951__$1)){\nvar c__4609__auto___31952 = cljs.core.chunk_first(seq__30842_31951__$1);\nvar G__31953 = cljs.core.chunk_rest(seq__30842_31951__$1);\nvar G__31954 = c__4609__auto___31952;\nvar G__31955 = cljs.core.count(c__4609__auto___31952);\nvar G__31956 = (0);\nseq__30842_31939 = G__31953;\nchunk__30843_31940 = G__31954;\ncount__30844_31941 = G__31955;\ni__30845_31942 = G__31956;\ncontinue;\n} else {\nvar vec__30864_31960 = cljs.core.first(seq__30842_31951__$1);\nvar k_31961 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__30864_31960,(0),null);\nvar v_31962 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__30864_31960,(1),null);\nif(cljs.core.truth_((function (){var fexpr__30867 = new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,\"path\",\"path\",-188191168),null,new cljs.core.Keyword(null,\"pred\",\"pred\",1927423397),null,new cljs.core.Keyword(null,\"via\",\"via\",-1904457336),null,new cljs.core.Keyword(null,\"val\",\"val\",128701612),null,new cljs.core.Keyword(null,\"reason\",\"reason\",-2070751759),null,new cljs.core.Keyword(null,\"in\",\"in\",-1531184865),null], null), null);\nreturn (fexpr__30867.cljs$core$IFn$_invoke$arity$1 ? fexpr__30867.cljs$core$IFn$_invoke$arity$1(k_31961) : fexpr__30867.call(null,k_31961));\n})())){\n} else {\ncljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\"\\n\\t\",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([k_31961], 0)),\" \"], 0));\n\ncljs.core.pr.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([v_31962], 0));\n}\n\n\nvar G__31963 = cljs.core.next(seq__30842_31951__$1);\nvar G__31964 = null;\nvar G__31965 = (0);\nvar G__31966 = (0);\nseq__30842_31939 = G__31963;\nchunk__30843_31940 = G__31964;\ncount__30844_31941 = G__31965;\ni__30845_31942 = G__31966;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\ncljs.core.newline.cljs$core$IFn$_invoke$arity$0();\n\n\nvar G__31967 = cljs.core.next(seq__30731_31863__$1);\nvar G__31968 = null;\nvar G__31969 = (0);\nvar G__31970 = (0);\nseq__30731_31774 = G__31967;\nchunk__30732_31775 = G__31968;\ncount__30733_31776 = G__31969;\ni__30734_31777 = G__31970;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n}finally {(cljs.core._STAR_print_fn_STAR_ = _STAR_print_fn_STAR__orig_val__30727_31765);\n\n(cljs.core._STAR_print_newline_STAR_ = _STAR_print_newline_STAR__orig_val__30726_31764);\n}\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb__4720__auto__);\n})()], 0));\n} else {\nreturn cljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([\"Success!\"], 0));\n}\n});\ncljs.spec.alpha._STAR_explain_out_STAR_ = cljs.spec.alpha.explain_printer;\n/**\n * Prints explanation data (per 'explain-data') to *out* using the printer in *explain-out*,\n * by default explain-printer.\n */\ncljs.spec.alpha.explain_out = (function cljs$spec$alpha$explain_out(ed){\nreturn cljs.spec.alpha._STAR_explain_out_STAR_.call(null,ed);\n});\n/**\n * Given a spec and a value that fails to conform, prints an explanation to *out*.\n */\ncljs.spec.alpha.explain = (function cljs$spec$alpha$explain(spec,x){\nreturn cljs.spec.alpha.explain_out(cljs.spec.alpha.explain_data(spec,x));\n});\n/**\n * Given a spec and a value that fails to conform, returns an explanation as a string.\n */\ncljs.spec.alpha.explain_str = (function cljs$spec$alpha$explain_str(spec,x){\nvar sb__4720__auto__ = (new goog.string.StringBuffer());\nvar _STAR_print_newline_STAR__orig_val__30872_31978 = cljs.core._STAR_print_newline_STAR_;\nvar _STAR_print_fn_STAR__orig_val__30873_31979 = cljs.core._STAR_print_fn_STAR_;\nvar _STAR_print_newline_STAR__temp_val__30874_31980 = true;\nvar _STAR_print_fn_STAR__temp_val__30875_31981 = (function (x__4721__auto__){\nreturn sb__4720__auto__.append(x__4721__auto__);\n});\n(cljs.core._STAR_print_newline_STAR_ = _STAR_print_newline_STAR__temp_val__30874_31980);\n\n(cljs.core._STAR_print_fn_STAR_ = _STAR_print_fn_STAR__temp_val__30875_31981);\n\ntry{cljs.spec.alpha.explain(spec,x);\n}finally {(cljs.core._STAR_print_fn_STAR_ = _STAR_print_fn_STAR__orig_val__30873_31979);\n\n(cljs.core._STAR_print_newline_STAR_ = _STAR_print_newline_STAR__orig_val__30872_31978);\n}\nreturn cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb__4720__auto__);\n});\ncljs.spec.alpha.gensub = (function cljs$spec$alpha$gensub(spec,overrides,path,rmap,form){\nvar spec__$1 = cljs.spec.alpha.specize.cljs$core$IFn$_invoke$arity$1(spec);\nvar temp__5733__auto__ = (function (){var or__4185__auto__ = (function (){var temp__5735__auto__ = (function (){var or__4185__auto__ = cljs.core.get.cljs$core$IFn$_invoke$arity$2(overrides,(function (){var or__4185__auto__ = cljs.spec.alpha.spec_name(spec__$1);\nif(cljs.core.truth_(or__4185__auto__)){\nreturn or__4185__auto__;\n} else {\nreturn spec__$1;\n}\n})());\nif(cljs.core.truth_(or__4185__auto__)){\nreturn or__4185__auto__;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(overrides,path);\n}\n})();\nif(cljs.core.truth_(temp__5735__auto__)){\nvar gfn = temp__5735__auto__;\nreturn (gfn.cljs$core$IFn$_invoke$arity$0 ? gfn.cljs$core$IFn$_invoke$arity$0() : gfn.call(null));\n} else {\nreturn null;\n}\n})();\nif(cljs.core.truth_(or__4185__auto__)){\nreturn or__4185__auto__;\n} else {\nreturn cljs.spec.alpha.gen_STAR_(spec__$1,overrides,path,rmap);\n}\n})();\nif(cljs.core.truth_(temp__5733__auto__)){\nvar g = temp__5733__auto__;\nreturn cljs.spec.gen.alpha.such_that.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(function (p1__30879_SHARP_){\nreturn cljs.spec.alpha.valid_QMARK_.cljs$core$IFn$_invoke$arity$2(spec__$1,p1__30879_SHARP_);\n}),g,(100)], 0));\n} else {\nthrow (new Error([\"Unable to construct gen at: \",cljs.core.str.cljs$core$IFn$_invoke$arity$1(path),\" for: \",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.spec.alpha.abbrev(form))].join('')));\n}\n});\n/**\n * Given a spec, returns the generator for it, or throws if none can\n * be constructed. Optionally an overrides map can be provided which\n * should map spec names or paths (vectors of keywords) to no-arg\n * generator-creating fns. These will be used instead of the generators at those\n * names/paths. Note that parent generator (in the spec or overrides\n * map) will supersede those of any subtrees. A generator for a regex\n * op must always return a sequential collection (i.e. a generator for\n * s/? should return either an empty sequence/vector or a\n * sequence/vector with one item in it)\n */\ncljs.spec.alpha.gen = (function cljs$spec$alpha$gen(var_args){\nvar G__30890 = arguments.length;\nswitch (G__30890) {\ncase 1:\nreturn cljs.spec.alpha.gen.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn cljs.spec.alpha.gen.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\"Invalid arity: \",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));\n\n}\n});\n\n(cljs.spec.alpha.gen.cljs$core$IFn$_invoke$arity$1 = (function (spec){\nreturn cljs.spec.alpha.gen.cljs$core$IFn$_invoke$arity$2(spec,null);\n}));\n\n(cljs.spec.alpha.gen.cljs$core$IFn$_invoke$arity$2 = (function (spec,overrides){\nreturn cljs.spec.alpha.gensub(spec,overrides,cljs.core.PersistentVector.EMPTY,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(\"cljs.spec.alpha\",\"recursion-limit\",\"cljs.spec.alpha/recursion-limit\",601284994),cljs.spec.alpha._STAR_recursion_limit_STAR_], null),spec);\n}));\n\n(cljs.spec.alpha.gen.cljs$lang$maxFixedArity = 2);\n\n/**\n * Do not call this directly, use 'def'\n */\ncljs.spec.alpha.def_impl = (function cljs$spec$alpha$def_impl(k,form,spec){\nif(cljs.core.truth_(((cljs.core.ident_QMARK_(k))?cljs.core.namespace(k):false))){\n} else {\nthrow (new Error([\"Assert failed: \",\"k must be namespaced keyword or resolveable symbol\",\"\\n\",\"(c/and (ident? k) (namespace k))\"].join('')));\n}\n\nif((spec == null)){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(cljs.spec.alpha.registry_ref,cljs.core.dissoc,k);\n} else {\nvar spec_31987__$1 = (cljs.core.truth_((function (){var or__4185__auto__ = cljs.spec.alpha.spec_QMARK_(spec);\nif(cljs.core.truth_(or__4185__auto__)){\nreturn or__4185__auto__;\n} else {\nvar or__4185__auto____$1 = cljs.spec.alpha.regex_QMARK_(spec);\nif(cljs.core.truth_(or__4185__auto____$1)){\nreturn or__4185__auto____$1;\n} else {\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.spec.alpha.registry_ref),spec);\n}\n}\n})())?spec:cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(form,spec,null,null));\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.spec.alpha.registry_ref,cljs.core.assoc,k,cljs.spec.alpha.with_name(spec_31987__$1,k));\n}\n\nreturn k;\n});\n/**\n * returns the registry map, prefer 'get-spec' to lookup a spec by name\n */\ncljs.spec.alpha.registry = (function cljs$spec$alpha$registry(){\nreturn cljs.core.deref(cljs.spec.alpha.registry_ref);\n});\n/**\n * Returns a symbol from a symbol or var\n */\ncljs.spec.alpha.__GT_sym = (function cljs$spec$alpha$__GT_sym(x){\nif(cljs.core.var_QMARK_(x)){\nreturn x.sym;\n} else {\nreturn x;\n}\n});\n/**\n * Returns spec registered for keyword/symbol/var k, or nil.\n */\ncljs.spec.alpha.get_spec = (function cljs$spec$alpha$get_spec(k){\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.spec.alpha.registry(),(((k instanceof cljs.core.Keyword))?k:cljs.spec.alpha.__GT_sym(k)));\n});\ncljs.spec.alpha.macroexpand_check = (function cljs$spec$alpha$macroexpand_check(v,args){\nvar specs = cljs.spec.alpha.get_spec(v);\nvar temp__5735__auto__ = new cljs.core.Keyword(null,\"args\",\"args\",1315556576).cljs$core$IFn$_invoke$arity$1(specs);\nif(cljs.core.truth_(temp__5735__auto__)){\nvar arg_spec = temp__5735__auto__;\nif(cljs.spec.alpha.invalid_QMARK_(cljs.spec.alpha.conform(arg_spec,args))){\nvar ed = cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.spec.alpha.explain_data_STAR_(arg_spec,cljs.core.PersistentVector.EMPTY,(function (){var temp__5733__auto__ = cljs.spec.alpha.spec_name(arg_spec);\nif(cljs.core.truth_(temp__5733__auto__)){\nvar name = temp__5733__auto__;\nreturn new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [name], null);\n} else {\nreturn cljs.core.PersistentVector.EMPTY;\n}\n})(),cljs.core.PersistentVector.EMPTY,args),new cljs.core.Keyword(\"cljs.spec.alpha\",\"args\",\"cljs.spec.alpha/args\",1870769783),args);\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2([\"Call to \",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.spec.alpha.__GT_sym(v)),\" did not conform to spec.\"].join(''),ed);\n} else {\nreturn null;\n}\n} else {\nreturn null;\n}\n});\ncljs.spec.alpha.recur_limit_QMARK_ = (function cljs$spec$alpha$recur_limit_QMARK_(rmap,id,path,k){\nreturn (((cljs.core.get.cljs$core$IFn$_invoke$arity$2(rmap,id) > new cljs.core.Keyword(\"cljs.spec.alpha\",\"recursion-limit\",\"cljs.spec.alpha/recursion-limit\",601284994).cljs$core$IFn$_invoke$arity$1(rmap))) && (cljs.core.contains_QMARK_(cljs.core.set(path),k)));\n});\ncljs.spec.alpha.inck = (function cljs$spec$alpha$inck(m,k){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,k,((function (){var or__4185__auto__ = cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,k);\nif(cljs.core.truth_(or__4185__auto__)){\nreturn or__4185__auto__;\n} else {\nreturn (0);\n}\n})() + (1)));\n});\ncljs.spec.alpha.dt = (function cljs$spec$alpha$dt(var_args){\nvar G__30928 = arguments.length;\nswitch (G__30928) {\ncase 3:\nreturn cljs.s