Skip to content

Instantly share code, notes, and snippets.

@fmw
Created August 6, 2011 05:34
Show Gist options
  • Save fmw/1129048 to your computer and use it in GitHub Desktop.
Save fmw/1129048 to your computer and use it in GitHub Desktop.
core.js
goog.provide('cljs.core');
goog.require('goog.string');
goog.require('goog.string.StringBuffer');
goog.require('goog.object');
goog.require('goog.array');
/**
* Internal - do not use!
*/
cljs.core.truth_ = (function truth_(x){
return (x != null && x !== false);
});
/**
* Internal - do not use!
*/
cljs.core.type_satisfies_ = (function type_satisfies_(p,x){
var or__3576__auto____1991 = (p[goog.typeOf.call(null,x)]);
if(cljs.core.truth_(or__3576__auto____1991))
{return or__3576__auto____1991;
} else
{var or__3576__auto____1992 = (p["_"]);
if(cljs.core.truth_(or__3576__auto____1992))
{return or__3576__auto____1992;
} else
{return false;
}
}
});
/**
* When compiled for a command-line target, whatever
* function *main-fn* is set to will be called with the command-line
* argv as arguments
*/
cljs.core._STAR_main_cli_fn_STAR_ = null;
/**
* Returns a javascript array, cloned from the passed in array
*/
cljs.core.aclone = (function aclone(array_like){
return Array.prototype.slice.call(array_like);
});
/**
* Creates a new javascript array.
* @param {...*} var_args
*/
cljs.core.array = (function array(var_args){
return Array.prototype.slice.call(arguments);
});
/**
* Returns the value at the index.
*/
cljs.core.aget = (function aget(array,i){
return array[i];
});
/**
* Sets the value at the index.
*/
cljs.core.aset = (function aset(array,i,val){
return (array[i] = val);
});
/**
* Returns the length of the Java array. Works on arrays of all types.
*/
cljs.core.alength = (function alength(array){
return array.length;
});
cljs.core.ICounted = {};
cljs.core._count = (function _count(coll){
if(cljs.core.truth_((function (){var and__3574__auto____1993 = coll;
if(cljs.core.truth_(and__3574__auto____1993))
{return coll.cljs$core$ICounted$_count;
} else
{return and__3574__auto____1993;
}
})()))
{return coll.cljs$core$ICounted$_count(coll);
} else
{return (function (){var or__3576__auto____1994 = (_count[goog.typeOf.call(null,coll)]);
if(cljs.core.truth_(or__3576__auto____1994))
{return or__3576__auto____1994;
} else
{return (_count["_"]);
}
})().call(null,coll);
}
});
cljs.core.IEmptyableCollection = {};
cljs.core._empty = (function _empty(coll){
if(cljs.core.truth_((function (){var and__3574__auto____1995 = coll;
if(cljs.core.truth_(and__3574__auto____1995))
{return coll.cljs$core$IEmptyableCollection$_empty;
} else
{return and__3574__auto____1995;
}
})()))
{return coll.cljs$core$IEmptyableCollection$_empty(coll);
} else
{return (function (){var or__3576__auto____1996 = (_empty[goog.typeOf.call(null,coll)]);
if(cljs.core.truth_(or__3576__auto____1996))
{return or__3576__auto____1996;
} else
{return (_empty["_"]);
}
})().call(null,coll);
}
});
cljs.core.ICollection = {};
cljs.core._conj = (function _conj(coll,o){
if(cljs.core.truth_((function (){var and__3574__auto____1997 = coll;
if(cljs.core.truth_(and__3574__auto____1997))
{return coll.cljs$core$ICollection$_conj;
} else
{return and__3574__auto____1997;
}
})()))
{return coll.cljs$core$ICollection$_conj(coll,o);
} else
{return (function (){var or__3576__auto____1998 = (_conj[goog.typeOf.call(null,coll)]);
if(cljs.core.truth_(or__3576__auto____1998))
{return or__3576__auto____1998;
} else
{return (_conj["_"]);
}
})().call(null,coll,o);
}
});
cljs.core.IIndexed = {};
cljs.core._nth = (function() {
var _nth = null;
var _nth__2003 = (function (coll,n){
if(cljs.core.truth_((function (){var and__3574__auto____1999 = coll;
if(cljs.core.truth_(and__3574__auto____1999))
{return coll.cljs$core$IIndexed$_nth;
} else
{return and__3574__auto____1999;
}
})()))
{return coll.cljs$core$IIndexed$_nth(coll,n);
} else
{return (function (){var or__3576__auto____2000 = (_nth[goog.typeOf.call(null,coll)]);
if(cljs.core.truth_(or__3576__auto____2000))
{return or__3576__auto____2000;
} else
{return (_nth["_"]);
}
})().call(null,coll,n);
}
});
var _nth__2004 = (function (coll,n,not_found){
if(cljs.core.truth_((function (){var and__3574__auto____2001 = coll;
if(cljs.core.truth_(and__3574__auto____2001))
{return coll.cljs$core$IIndexed$_nth;
} else
{return and__3574__auto____2001;
}
})()))
{return coll.cljs$core$IIndexed$_nth(coll,n,not_found);
} else
{return (function (){var or__3576__auto____2002 = (_nth[goog.typeOf.call(null,coll)]);
if(cljs.core.truth_(or__3576__auto____2002))
{return or__3576__auto____2002;
} else
{return (_nth["_"]);
}
})().call(null,coll,n,not_found);
}
});
_nth = function(coll,n,not_found){
switch(arguments.length){
case 2 :
return _nth__2003.call(this,coll,n);
case 3 :
return _nth__2004.call(this,coll,n,not_found);
}
throw('Invalid arity: ' + arguments.length);
};
return _nth;
})()
;
cljs.core.ISeq = {};
cljs.core._first = (function _first(coll){
if(cljs.core.truth_((function (){var and__3574__auto____2006 = coll;
if(cljs.core.truth_(and__3574__auto____2006))
{return coll.cljs$core$ISeq$_first;
} else
{return and__3574__auto____2006;
}
})()))
{return coll.cljs$core$ISeq$_first(coll);
} else
{return (function (){var or__3576__auto____2007 = (_first[goog.typeOf.call(null,coll)]);
if(cljs.core.truth_(or__3576__auto____2007))
{return or__3576__auto____2007;
} else
{return (_first["_"]);
}
})().call(null,coll);
}
});
cljs.core._rest = (function _rest(coll){
if(cljs.core.truth_((function (){var and__3574__auto____2008 = coll;
if(cljs.core.truth_(and__3574__auto____2008))
{return coll.cljs$core$ISeq$_rest;
} else
{return and__3574__auto____2008;
}
})()))
{return coll.cljs$core$ISeq$_rest(coll);
} else
{return (function (){var or__3576__auto____2009 = (_rest[goog.typeOf.call(null,coll)]);
if(cljs.core.truth_(or__3576__auto____2009))
{return or__3576__auto____2009;
} else
{return (_rest["_"]);
}
})().call(null,coll);
}
});
cljs.core.ILookup = {};
cljs.core._lookup = (function() {
var _lookup = null;
var _lookup__2014 = (function (o,k){
if(cljs.core.truth_((function (){var and__3574__auto____2010 = o;
if(cljs.core.truth_(and__3574__auto____2010))
{return o.cljs$core$ILookup$_lookup;
} else
{return and__3574__auto____2010;
}
})()))
{return o.cljs$core$ILookup$_lookup(o,k);
} else
{return (function (){var or__3576__auto____2011 = (_lookup[goog.typeOf.call(null,o)]);
if(cljs.core.truth_(or__3576__auto____2011))
{return or__3576__auto____2011;
} else
{return (_lookup["_"]);
}
})().call(null,o,k);
}
});
var _lookup__2015 = (function (o,k,not_found){
if(cljs.core.truth_((function (){var and__3574__auto____2012 = o;
if(cljs.core.truth_(and__3574__auto____2012))
{return o.cljs$core$ILookup$_lookup;
} else
{return and__3574__auto____2012;
}
})()))
{return o.cljs$core$ILookup$_lookup(o,k,not_found);
} else
{return (function (){var or__3576__auto____2013 = (_lookup[goog.typeOf.call(null,o)]);
if(cljs.core.truth_(or__3576__auto____2013))
{return or__3576__auto____2013;
} else
{return (_lookup["_"]);
}
})().call(null,o,k,not_found);
}
});
_lookup = function(o,k,not_found){
switch(arguments.length){
case 2 :
return _lookup__2014.call(this,o,k);
case 3 :
return _lookup__2015.call(this,o,k,not_found);
}
throw('Invalid arity: ' + arguments.length);
};
return _lookup;
})()
;
cljs.core.IAssociative = {};
cljs.core._contains_key_QMARK_ = (function _contains_key_QMARK_(coll,k){
if(cljs.core.truth_((function (){var and__3574__auto____2017 = coll;
if(cljs.core.truth_(and__3574__auto____2017))
{return coll.cljs$core$IAssociative$_contains_key_QMARK_;
} else
{return and__3574__auto____2017;
}
})()))
{return coll.cljs$core$IAssociative$_contains_key_QMARK_(coll,k);
} else
{return (function (){var or__3576__auto____2018 = (_contains_key_QMARK_[goog.typeOf.call(null,coll)]);
if(cljs.core.truth_(or__3576__auto____2018))
{return or__3576__auto____2018;
} else
{return (_contains_key_QMARK_["_"]);
}
})().call(null,coll,k);
}
});
cljs.core._assoc = (function _assoc(coll,k,v){
if(cljs.core.truth_((function (){var and__3574__auto____2019 = coll;
if(cljs.core.truth_(and__3574__auto____2019))
{return coll.cljs$core$IAssociative$_assoc;
} else
{return and__3574__auto____2019;
}
})()))
{return coll.cljs$core$IAssociative$_assoc(coll,k,v);
} else
{return (function (){var or__3576__auto____2020 = (_assoc[goog.typeOf.call(null,coll)]);
if(cljs.core.truth_(or__3576__auto____2020))
{return or__3576__auto____2020;
} else
{return (_assoc["_"]);
}
})().call(null,coll,k,v);
}
});
cljs.core.IMap = {};
cljs.core._dissoc = (function _dissoc(coll,k){
if(cljs.core.truth_((function (){var and__3574__auto____2021 = coll;
if(cljs.core.truth_(and__3574__auto____2021))
{return coll.cljs$core$IMap$_dissoc;
} else
{return and__3574__auto____2021;
}
})()))
{return coll.cljs$core$IMap$_dissoc(coll,k);
} else
{return (function (){var or__3576__auto____2022 = (_dissoc[goog.typeOf.call(null,coll)]);
if(cljs.core.truth_(or__3576__auto____2022))
{return or__3576__auto____2022;
} else
{return (_dissoc["_"]);
}
})().call(null,coll,k);
}
});
cljs.core.ISet = {};
cljs.core._disjoin = (function _disjoin(coll,v){
if(cljs.core.truth_((function (){var and__3574__auto____2023 = coll;
if(cljs.core.truth_(and__3574__auto____2023))
{return coll.cljs$core$ISet$_disjoin;
} else
{return and__3574__auto____2023;
}
})()))
{return coll.cljs$core$ISet$_disjoin(coll,v);
} else
{return (function (){var or__3576__auto____2024 = (_disjoin[goog.typeOf.call(null,coll)]);
if(cljs.core.truth_(or__3576__auto____2024))
{return or__3576__auto____2024;
} else
{return (_disjoin["_"]);
}
})().call(null,coll,v);
}
});
cljs.core.IStack = {};
cljs.core._peek = (function _peek(coll){
if(cljs.core.truth_((function (){var and__3574__auto____2025 = coll;
if(cljs.core.truth_(and__3574__auto____2025))
{return coll.cljs$core$IStack$_peek;
} else
{return and__3574__auto____2025;
}
})()))
{return coll.cljs$core$IStack$_peek(coll);
} else
{return (function (){var or__3576__auto____2026 = (_peek[goog.typeOf.call(null,coll)]);
if(cljs.core.truth_(or__3576__auto____2026))
{return or__3576__auto____2026;
} else
{return (_peek["_"]);
}
})().call(null,coll);
}
});
cljs.core._pop = (function _pop(coll){
if(cljs.core.truth_((function (){var and__3574__auto____2027 = coll;
if(cljs.core.truth_(and__3574__auto____2027))
{return coll.cljs$core$IStack$_pop;
} else
{return and__3574__auto____2027;
}
})()))
{return coll.cljs$core$IStack$_pop(coll);
} else
{return (function (){var or__3576__auto____2028 = (_pop[goog.typeOf.call(null,coll)]);
if(cljs.core.truth_(or__3576__auto____2028))
{return or__3576__auto____2028;
} else
{return (_pop["_"]);
}
})().call(null,coll);
}
});
cljs.core.IVector = {};
cljs.core._assoc_n = (function _assoc_n(coll,n,val){
if(cljs.core.truth_((function (){var and__3574__auto____2029 = coll;
if(cljs.core.truth_(and__3574__auto____2029))
{return coll.cljs$core$IVector$_assoc_n;
} else
{return and__3574__auto____2029;
}
})()))
{return coll.cljs$core$IVector$_assoc_n(coll,n,val);
} else
{return (function (){var or__3576__auto____2030 = (_assoc_n[goog.typeOf.call(null,coll)]);
if(cljs.core.truth_(or__3576__auto____2030))
{return or__3576__auto____2030;
} else
{return (_assoc_n["_"]);
}
})().call(null,coll,n,val);
}
});
cljs.core.IDeref = {};
cljs.core._deref = (function _deref(o){
if(cljs.core.truth_((function (){var and__3574__auto____2031 = o;
if(cljs.core.truth_(and__3574__auto____2031))
{return o.cljs$core$IDeref$_deref;
} else
{return and__3574__auto____2031;
}
})()))
{return o.cljs$core$IDeref$_deref(o);
} else
{return (function (){var or__3576__auto____2032 = (_deref[goog.typeOf.call(null,o)]);
if(cljs.core.truth_(or__3576__auto____2032))
{return or__3576__auto____2032;
} else
{return (_deref["_"]);
}
})().call(null,o);
}
});
cljs.core.IDerefWithTimeout = {};
cljs.core._deref_with_timeout = (function _deref_with_timeout(o,msec,timeout_val){
if(cljs.core.truth_((function (){var and__3574__auto____2033 = o;
if(cljs.core.truth_(and__3574__auto____2033))
{return o.cljs$core$IDerefWithTimeout$_deref_with_timeout;
} else
{return and__3574__auto____2033;
}
})()))
{return o.cljs$core$IDerefWithTimeout$_deref_with_timeout(o,msec,timeout_val);
} else
{return (function (){var or__3576__auto____2034 = (_deref_with_timeout[goog.typeOf.call(null,o)]);
if(cljs.core.truth_(or__3576__auto____2034))
{return or__3576__auto____2034;
} else
{return (_deref_with_timeout["_"]);
}
})().call(null,o,msec,timeout_val);
}
});
cljs.core.IMeta = {};
cljs.core._meta = (function _meta(o){
if(cljs.core.truth_((function (){var and__3574__auto____2035 = o;
if(cljs.core.truth_(and__3574__auto____2035))
{return o.cljs$core$IMeta$_meta;
} else
{return and__3574__auto____2035;
}
})()))
{return o.cljs$core$IMeta$_meta(o);
} else
{return (function (){var or__3576__auto____2036 = (_meta[goog.typeOf.call(null,o)]);
if(cljs.core.truth_(or__3576__auto____2036))
{return or__3576__auto____2036;
} else
{return (_meta["_"]);
}
})().call(null,o);
}
});
cljs.core.IWithMeta = {};
cljs.core._with_meta = (function _with_meta(o,meta){
if(cljs.core.truth_((function (){var and__3574__auto____2037 = o;
if(cljs.core.truth_(and__3574__auto____2037))
{return o.cljs$core$IWithMeta$_with_meta;
} else
{return and__3574__auto____2037;
}
})()))
{return o.cljs$core$IWithMeta$_with_meta(o,meta);
} else
{return (function (){var or__3576__auto____2038 = (_with_meta[goog.typeOf.call(null,o)]);
if(cljs.core.truth_(or__3576__auto____2038))
{return or__3576__auto____2038;
} else
{return (_with_meta["_"]);
}
})().call(null,o,meta);
}
});
cljs.core.IReduce = {};
cljs.core._reduce = (function() {
var _reduce = null;
var _reduce__2043 = (function (coll,f){
if(cljs.core.truth_((function (){var and__3574__auto____2039 = coll;
if(cljs.core.truth_(and__3574__auto____2039))
{return coll.cljs$core$IReduce$_reduce;
} else
{return and__3574__auto____2039;
}
})()))
{return coll.cljs$core$IReduce$_reduce(coll,f);
} else
{return (function (){var or__3576__auto____2040 = (_reduce[goog.typeOf.call(null,coll)]);
if(cljs.core.truth_(or__3576__auto____2040))
{return or__3576__auto____2040;
} else
{return (_reduce["_"]);
}
})().call(null,coll,f);
}
});
var _reduce__2044 = (function (coll,f,start){
if(cljs.core.truth_((function (){var and__3574__auto____2041 = coll;
if(cljs.core.truth_(and__3574__auto____2041))
{return coll.cljs$core$IReduce$_reduce;
} else
{return and__3574__auto____2041;
}
})()))
{return coll.cljs$core$IReduce$_reduce(coll,f,start);
} else
{return (function (){var or__3576__auto____2042 = (_reduce[goog.typeOf.call(null,coll)]);
if(cljs.core.truth_(or__3576__auto____2042))
{return or__3576__auto____2042;
} else
{return (_reduce["_"]);
}
})().call(null,coll,f,start);
}
});
_reduce = function(coll,f,start){
switch(arguments.length){
case 2 :
return _reduce__2043.call(this,coll,f);
case 3 :
return _reduce__2044.call(this,coll,f,start);
}
throw('Invalid arity: ' + arguments.length);
};
return _reduce;
})()
;
cljs.core.IEquiv = {};
cljs.core._equiv = (function _equiv(o,other){
if(cljs.core.truth_((function (){var and__3574__auto____2046 = o;
if(cljs.core.truth_(and__3574__auto____2046))
{return o.cljs$core$IEquiv$_equiv;
} else
{return and__3574__auto____2046;
}
})()))
{return o.cljs$core$IEquiv$_equiv(o,other);
} else
{return (function (){var or__3576__auto____2047 = (_equiv[goog.typeOf.call(null,o)]);
if(cljs.core.truth_(or__3576__auto____2047))
{return or__3576__auto____2047;
} else
{return (_equiv["_"]);
}
})().call(null,o,other);
}
});
cljs.core.IHash = {};
cljs.core._hash = (function _hash(o){
if(cljs.core.truth_((function (){var and__3574__auto____2048 = o;
if(cljs.core.truth_(and__3574__auto____2048))
{return o.cljs$core$IHash$_hash;
} else
{return and__3574__auto____2048;
}
})()))
{return o.cljs$core$IHash$_hash(o);
} else
{return (function (){var or__3576__auto____2049 = (_hash[goog.typeOf.call(null,o)]);
if(cljs.core.truth_(or__3576__auto____2049))
{return or__3576__auto____2049;
} else
{return (_hash["_"]);
}
})().call(null,o);
}
});
cljs.core.ISeqable = {};
cljs.core._seq = (function _seq(o){
if(cljs.core.truth_((function (){var and__3574__auto____2050 = o;
if(cljs.core.truth_(and__3574__auto____2050))
{return o.cljs$core$ISeqable$_seq;
} else
{return and__3574__auto____2050;
}
})()))
{return o.cljs$core$ISeqable$_seq(o);
} else
{return (function (){var or__3576__auto____2051 = (_seq[goog.typeOf.call(null,o)]);
if(cljs.core.truth_(or__3576__auto____2051))
{return or__3576__auto____2051;
} else
{return (_seq["_"]);
}
})().call(null,o);
core.js:650Uncaught TypeError: Cannot call method 'call' of undefined
}
});
cljs.core.ISequential = {};
cljs.core.IPrintable = {};
cljs.core._pr_seq = (function _pr_seq(o,opts){
if(cljs.core.truth_((function (){var and__3574__auto____2052 = o;
if(cljs.core.truth_(and__3574__auto____2052))
{return o.cljs$core$IPrintable$_pr_seq;
} else
{return and__3574__auto____2052;
}
})()))
{return o.cljs$core$IPrintable$_pr_seq(o,opts);
} else
{return (function (){var or__3576__auto____2053 = (_pr_seq[goog.typeOf.call(null,o)]);
if(cljs.core.truth_(or__3576__auto____2053))
{return or__3576__auto____2053;
} else
{return (_pr_seq["_"]);
}
})().call(null,o,opts);
}
});
cljs.core.IPending = {};
cljs.core._realized_QMARK_ = (function _realized_QMARK_(d){
if(cljs.core.truth_((function (){var and__3574__auto____2054 = d;
if(cljs.core.truth_(and__3574__auto____2054))
{return d.cljs$core$IPending$_realized_QMARK_;
} else
{return and__3574__auto____2054;
}
})()))
{return d.cljs$core$IPending$_realized_QMARK_(d);
} else
{return (function (){var or__3576__auto____2055 = (_realized_QMARK_[goog.typeOf.call(null,d)]);
if(cljs.core.truth_(or__3576__auto____2055))
{return or__3576__auto____2055;
} else
{return (_realized_QMARK_["_"]);
}
})().call(null,d);
}
});
cljs.core.identical_QMARK_ = (function identical_QMARK_(x,y){
return (x === y);
});
cljs.core._EQ_ = (function _EQ_(x,y){
return cljs.core._equiv.call(null,x,y);
});
cljs.core.nil_QMARK_ = (function nil_QMARK_(x){
return cljs.core.identical_QMARK_.call(null,x,null);
});
(cljs.core.ISet["null"] = true);
(cljs.core._disjoin["null"] = (function (_,v){
return null;
}));
(cljs.core.IEquiv["null"] = true);
(cljs.core._equiv["null"] = (function (_,o){
return cljs.core.nil_QMARK_.call(null,o);
}));
(cljs.core.ICollection["null"] = true);
(cljs.core._conj["null"] = (function (_,o){
return cljs.core.list.call(null,o);
}));
(cljs.core.ISeq["null"] = true);
(cljs.core._first["null"] = (function (_){
return null;
}));
(cljs.core._rest["null"] = (function (_){
return cljs.core.list.call(null);
}));
(cljs.core.IStack["null"] = true);
(cljs.core._peek["null"] = (function (_){
return null;
}));
(cljs.core._pop["null"] = (function (_){
return null;
}));
(cljs.core.IWithMeta["null"] = true);
(cljs.core._with_meta["null"] = (function (_,meta){
return null;
}));
(cljs.core.IMap["null"] = true);
(cljs.core._dissoc["null"] = (function (_,k){
return null;
}));
(cljs.core.IEmptyableCollection["null"] = true);
(cljs.core._empty["null"] = (function (_){
return null;
}));
(cljs.core.IIndexed["null"] = true);
(cljs.core._nth["null"] = (function() {
var G__2056 = null;
var G__2056__2057 = (function (_,n){
return null;
});
var G__2056__2058 = (function (_,n,not_found){
return not_found;
});
G__2056 = function(_,n,not_found){
switch(arguments.length){
case 2 :
return G__2056__2057.call(this,_,n);
case 3 :
return G__2056__2058.call(this,_,n,not_found);
}
throw('Invalid arity: ' + arguments.length);
};
return G__2056;
})()
);
(cljs.core.IMeta["null"] = true);
(cljs.core._meta["null"] = (function (_){
return null;
}));
(cljs.core.IReduce["null"] = true);
(cljs.core._reduce["null"] = (function() {
var G__2060 = null;
var G__2060__2061 = (function (_,f){
return f.call(null);
});
var G__2060__2062 = (function (_,f,start){
return start;
});
G__2060 = function(_,f,start){
switch(arguments.length){
case 2 :
return G__2060__2061.call(this,_,f);
case 3 :
return G__2060__2062.call(this,_,f,start);
}
throw('Invalid arity: ' + arguments.length);
};
return G__2060;
})()
);
(cljs.core.IHash["null"] = true);
(cljs.core._hash["null"] = (function (o){
return 0;
}));
(cljs.core.ICounted["null"] = true);
(cljs.core._count["null"] = (function (_){
return 0;
}));
(cljs.core.IAssociative["null"] = true);
(cljs.core._assoc["null"] = (function (_,k,v){
return cljs.core.hash_map.call(null,k,v);
}));
(cljs.core.ILookup["null"] = true);
(cljs.core._lookup["null"] = (function() {
var G__2064 = null;
var G__2064__2065 = (function (o,k){
return null;
});
var G__2064__2066 = (function (o,k,not_found){
return not_found;
});
G__2064 = function(o,k,not_found){
switch(arguments.length){
case 2 :
return G__2064__2065.call(this,o,k);
case 3 :
return G__2064__2066.call(this,o,k,not_found);
}
throw('Invalid arity: ' + arguments.length);
};
return G__2064;
})()
);
goog.global['Date'].prototype.cljs$core$IEquiv$ = true;
goog.global['Date'].prototype.cljs$core$IEquiv$_equiv = (function (o,other){
return cljs.core.identical_QMARK_.call(null,o.toString,other.toString);
});
(cljs.core.IHash["number"] = true);
(cljs.core._hash["number"] = (function (o){
return o;
}));
(cljs.core.IEquiv["number"] = true);
(cljs.core._equiv["number"] = (function (x,o){
return cljs.core.identical_QMARK_.call(null,x,o);
}));
(cljs.core.IHash["function"] = true);
(cljs.core._hash["function"] = (function (o){
return goog.getUid.call(null,o);
}));
/**
* Returns a number one greater than num.
*/
cljs.core.inc = (function inc(x){
return (x + 1);
});
cljs.core.lt_ = (function lt_(x,y){
return (x < y);
});
/**
* Accepts any collection which satisfies the ICount and IIndexed protocols and
* reduces them without incurring seq initialization
*/
cljs.core.ci_reduce = (function() {
var ci_reduce = null;
var ci_reduce__2074 = (function (cicoll,f){
if(cljs.core.truth_(cljs.core._EQ_.call(null,0,cljs.core._count.call(null,cicoll))))
{return f.call(null);
} else
{var val__2068 = cljs.core._nth.call(null,cicoll,0);
var n__2069 = 1;
var G__2078,G__2079;G__2078=G__2079=new Object();
while(G__2078===G__2079){
G__2078=(function(continue_val){
if(cljs.core.truth_(cljs.core.lt_.call(null,n__2069,cljs.core._count.call(null,cicoll))))
{{
var G__2080 = f.call(null,val__2068,cljs.core._nth.call(null,cicoll,n__2069));
var G__2081 = cljs.core.inc.call(null,n__2069);
val__2068 = G__2080;
n__2069 = G__2081;
return continue_val;
}
} else
{return val__2068;
}
})(G__2079);}
return G__2078;
}
});
var ci_reduce__2075 = (function (cicoll,f,val){
var val__2070 = val;
var n__2071 = 0;
var G__2082,G__2083;G__2082=G__2083=new Object();
while(G__2082===G__2083){
G__2082=(function(continue_val){
if(cljs.core.truth_(cljs.core.lt_.call(null,n__2071,cljs.core._count.call(null,cicoll))))
{{
var G__2084 = f.call(null,val__2070,cljs.core._nth.call(null,cicoll,n__2071));
var G__2085 = cljs.core.inc.call(null,n__2071);
val__2070 = G__2084;
n__2071 = G__2085;
return continue_val;
}
} else
{return val__2070;
}
})(G__2083);}
return G__2082;
});
var ci_reduce__2076 = (function (cicoll,f,val,idx){
var val__2072 = val;
var n__2073 = idx;
var G__2086,G__2087;G__2086=G__2087=new Object();
while(G__2086===G__2087){
G__2086=(function(continue_val){
if(cljs.core.truth_(cljs.core.lt_.call(null,n__2073,cljs.core._count.call(null,cicoll))))
{{
var G__2088 = f.call(null,val__2072,cljs.core._nth.call(null,cicoll,n__2073));
var G__2089 = cljs.core.inc.call(null,n__2073);
val__2072 = G__2088;
n__2073 = G__2089;
return continue_val;
}
} else
{return val__2072;
}
})(G__2087);}
return G__2086;
});
ci_reduce = function(cicoll,f,val,idx){
switch(arguments.length){
case 2 :
return ci_reduce__2074.call(this,cicoll,f);
case 3 :
return ci_reduce__2075.call(this,cicoll,f,val);
case 4 :
return ci_reduce__2076.call(this,cicoll,f,val,idx);
}
throw('Invalid arity: ' + arguments.length);
};
return ci_reduce;
})()
;
/**
* @constructor
*/
cljs.core.IndexedSeq = (function (a,i){
this.a = a;
this.i = i;
})
cljs.core.IndexedSeq.prototype.cljs$core$IReduce$ = true;
cljs.core.IndexedSeq.prototype.cljs$core$IReduce$_reduce = (function() {
var G__2096 = null;
var G__2096__2097 = (function (_,f){
var this__2090 = this;
return cljs.core.ci_reduce.call(null,this__2090.a,f,(this__2090.a[this__2090.i]),cljs.core.inc.call(null,this__2090.i));
});
var G__2096__2098 = (function (_,f,start){
var this__2091 = this;
return cljs.core.ci_reduce.call(null,this__2091.a,f,start,this__2091.i);
});
G__2096 = function(_,f,start){
switch(arguments.length){
case 2 :
return G__2096__2097.call(this,_,f);
case 3 :
return G__2096__2098.call(this,_,f,start);
}
throw('Invalid arity: ' + arguments.length);
};
return G__2096;
})()
;
cljs.core.IndexedSeq.prototype.cljs$core$IEquiv$ = true;
cljs.core.IndexedSeq.prototype.cljs$core$IEquiv$_equiv = (function (coll,other){
var this__2092 = this;
return cljs.core.equiv_sequential.call(null,coll,other);
});
cljs.core.IndexedSeq.prototype.cljs$core$ISequential$ = true;
cljs.core.IndexedSeq.prototype.cljs$core$ISeq$ = true;
cljs.core.IndexedSeq.prototype.cljs$core$ISeq$_first = (function (_){
var this__2093 = this;
return (this__2093.a[this__2093.i]);
});
cljs.core.IndexedSeq.prototype.cljs$core$ISeq$_rest = (function (_){
var this__2094 = this;
if(cljs.core.truth_(cljs.core.lt_.call(null,cljs.core.inc.call(null,this__2094.i),cljs.core._count.call(null,this__2094.a))))
{return (new cljs.core.IndexedSeq(this__2094.a,cljs.core.inc.call(null,this__2094.i)));
} else
{return cljs.core.list.call(null);
}
});
cljs.core.IndexedSeq.prototype.cljs$core$ISeqable$ = true;
cljs.core.IndexedSeq.prototype.cljs$core$ISeqable$_seq = (function (this$){
var this__2095 = this;
return this$;
});
cljs.core.prim_seq = (function prim_seq(prim,i){
if(cljs.core.truth_(cljs.core._EQ_.call(null,0,cljs.core._count.call(null,prim))))
{return null;
} else
{return (new cljs.core.IndexedSeq(prim,i));
}
});
cljs.core.array_seq = (function array_seq(array,i){
return cljs.core.prim_seq.call(null,array,i);
});
(cljs.core.IReduce["array"] = true);
(cljs.core._reduce["array"] = (function() {
var G__2100 = null;
var G__2100__2101 = (function (array,f){
return cljs.core.ci_reduce.call(null,array,f);
});
var G__2100__2102 = (function (array,f,start){
return cljs.core.ci_reduce.call(null,array,f,start);
});
G__2100 = function(array,f,start){
switch(arguments.length){
case 2 :
return G__2100__2101.call(this,array,f);
case 3 :
return G__2100__2102.call(this,array,f,start);
}
throw('Invalid arity: ' + arguments.length);
};
return G__2100;
})()
);
(cljs.core.ILookup["array"] = true);
(cljs.core._lookup["array"] = (function() {
var G__2104 = null;
var G__2104__2105 = (function (array,k){
return (array[k]);
});
var G__2104__2106 = (function (array,k,not_found){
return cljs.core._nth.call(null,array,k,not_found);
});
G__2104 = function(array,k,not_found){
switch(arguments.length){
case 2 :
return G__2104__2105.call(this,array,k);
case 3 :
return G__2104__2106.call(this,array,k,not_found);
}
throw('Invalid arity: ' + arguments.length);
};
return G__2104;
})()
);
(cljs.core.IIndexed["array"] = true);
(cljs.core._nth["array"] = (function() {
var G__2108 = null;
var G__2108__2109 = (function (array,n){
if(cljs.core.truth_(cljs.core.lt_.call(null,n,array.length)))
{return (array[n]);
} else
{return null;
}
});
var G__2108__2110 = (function (array,n,not_found){
if(cljs.core.truth_(cljs.core.lt_.call(null,n,array.length)))
{return (array[n]);
} else
{return not_found;
}
});
G__2108 = function(array,n,not_found){
switch(arguments.length){
case 2 :
return G__2108__2109.call(this,array,n);
case 3 :
return G__2108__2110.call(this,array,n,not_found);
}
throw('Invalid arity: ' + arguments.length);
};
return G__2108;
})()
);
(cljs.core.ICounted["array"] = true);
(cljs.core._count["array"] = (function (a){
return a.length;
}));
(cljs.core.ISeqable["array"] = true);
(cljs.core._seq["array"] = (function (array){
return cljs.core.array_seq.call(null,array,0);
}));
/**
* Returns a seq on the collection. If the collection is
* empty, returns nil. (seq nil) returns nil. seq also works on
* Strings.
*/
cljs.core.seq = (function seq(coll){
if(cljs.core.truth_(coll))
{return cljs.core._seq.call(null,coll);
} else
{return null;
}
});
/**
* Returns the first item in the collection. Calls seq on its
* argument. If coll is nil, returns nil.
*/
cljs.core.first = (function first(coll){
var temp__3726__auto____2112 = cljs.core.seq.call(null,coll);
if(cljs.core.truth_(temp__3726__auto____2112))
{var s__2113 = temp__3726__auto____2112;
return cljs.core._first.call(null,s__2113);
} else
{return null;
}
});
/**
* Returns a possibly empty seq of the items after the first. Calls seq on its
* argument.
*/
cljs.core.rest = (function rest(coll){
return cljs.core._rest.call(null,cljs.core.seq.call(null,coll));
});
/**
* Returns a seq of the items after the first. Calls seq on its
* argument. If there are no more items, returns nil
*/
cljs.core.next = (function next(coll){
if(cljs.core.truth_(coll))
{return cljs.core.seq.call(null,cljs.core.rest.call(null,coll));
} else
{return null;
}
});
/**
* Same as (first (next x))
*/
cljs.core.second = (function second(coll){
return cljs.core.first.call(null,cljs.core.next.call(null,coll));
});
/**
* Same as (first (first x))
*/
cljs.core.ffirst = (function ffirst(coll){
return cljs.core.first.call(null,cljs.core.first.call(null,coll));
});
/**
* Same as (next (first x))
*/
cljs.core.nfirst = (function nfirst(coll){
return cljs.core.next.call(null,cljs.core.first.call(null,coll));
});
/**
* Same as (first (next x))
*/
cljs.core.fnext = (function fnext(coll){
return cljs.core.first.call(null,cljs.core.next.call(null,coll));
});
/**
* Same as (next (next x))
*/
cljs.core.nnext = (function nnext(coll){
return cljs.core.next.call(null,cljs.core.next.call(null,coll));
});
/**
* Return the last item in coll, in linear time
*/
cljs.core.last = (function last(s){
var G__2114,G__2115;G__2114=G__2115=new Object();
while(G__2114===G__2115){
G__2114=(function(continue_val){
if(cljs.core.truth_(cljs.core.next.call(null,s)))
{{
var G__2116 = cljs.core.next.call(null,s);
s = G__2116;
return continue_val;
}
} else
{return cljs.core.first.call(null,s);
}
})(G__2115);}
return G__2114;
});
(cljs.core.ICounted["_"] = true);
(cljs.core._count["_"] = (function (x){
var s__2117 = cljs.core.seq.call(null,x);
var n__2118 = 0;
var G__2119,G__2120;G__2119=G__2120=new Object();
while(G__2119===G__2120){
G__2119=(function(continue_val){
if(cljs.core.truth_(s__2117))
{{
var G__2121 = cljs.core.next.call(null,s__2117);
var G__2122 = cljs.core.inc.call(null,n__2118);
s__2117 = G__2121;
n__2118 = G__2122;
return continue_val;
}
} else
{return n__2118;
}
})(G__2120);}
return G__2119;
}));
(cljs.core.IEquiv["_"] = true);
(cljs.core._equiv["_"] = (function (x,o){
return cljs.core.identical_QMARK_.call(null,x,o);
}));
/**
* Returns true if x is logical false, false otherwise.
*/
cljs.core.not = (function not(x){
if(cljs.core.truth_(x))
{return false;
} else
{return true;
}
});
/**
* conj[oin]. Returns a new collection with the xs
* 'added'. (conj nil item) returns (item). The 'addition' may
* happen at different 'places' depending on the concrete type.
* @param {...*} var_args
*/
cljs.core.conj = (function() {
var conj = null;
var conj__2123 = (function (coll,x){
return cljs.core._conj.call(null,coll,x);
});
var conj__2124 = (function() {
var G__2126__delegate = function (coll,x,xs){
var G__2127,G__2128;G__2127=G__2128=new Object();
while(G__2127===G__2128){
G__2127=(function(continue_val){
if(cljs.core.truth_(xs))
{{
var G__2129 = conj.call(null,coll,x);
var G__2130 = cljs.core.first.call(null,xs);
var G__2131 = cljs.core.next.call(null,xs);
coll = G__2129;
x = G__2130;
xs = G__2131;
return continue_val;
}
} else
{return conj.call(null,coll,x);
}
})(G__2128);}
return G__2127;
};
var G__2126 = function (coll,x,var_args){
var xs = null;
if (goog.isDef(var_args)) {
xs = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2),0);
}
return G__2126__delegate.call(this, coll, x, xs);
};
G__2126.cljs$lang$maxFixedArity = 2;
G__2126.cljs$lang$applyTo = (function (arglist__2132){
var coll = cljs.core.first(arglist__2132);
var x = cljs.core.first(cljs.core.next(arglist__2132));
var xs = cljs.core.rest(cljs.core.next(arglist__2132));
return G__2126__delegate.call(this, coll, x, xs);
});
return G__2126;
})()
;
conj = function(coll,x,var_args){
var xs = var_args;
switch(arguments.length){
case 2 :
return conj__2123.call(this,coll,x);
default:
return conj__2124.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
conj.cljs$lang$maxFixedArity = 2;
conj.cljs$lang$applyTo = conj__2124.cljs$lang$applyTo;
return conj;
})()
;
/**
* Returns an empty collection of the same category as coll, or nil
*/
cljs.core.empty = (function empty(coll){
return cljs.core._empty.call(null,coll);
});
/**
* Returns the number of items in the collection. (count nil) returns
* 0. Also works on strings, arrays, and Maps
*/
cljs.core.count = (function count(coll){
return cljs.core._count.call(null,coll);
});
/**
* Returns the value at the index. get returns nil if index out of
* bounds, nth throws an exception unless not-found is supplied. nth
* also works for strings, arrays, regex Matchers and Lists, and,
* in O(n) time, for sequences.
*/
cljs.core.nth = (function() {
var nth = null;
var nth__2133 = (function (coll,n){
return cljs.core._nth.call(null,coll,n);
});
var nth__2134 = (function (coll,n,not_found){
return cljs.core._nth.call(null,coll,n,not_found);
});
nth = function(coll,n,not_found){
switch(arguments.length){
case 2 :
return nth__2133.call(this,coll,n);
case 3 :
return nth__2134.call(this,coll,n,not_found);
}
throw('Invalid arity: ' + arguments.length);
};
return nth;
})()
;
/**
* Returns the value mapped to key, not-found or nil if key not present.
*/
cljs.core.get = (function() {
var get = null;
var get__2136 = (function (o,k){
return cljs.core._lookup.call(null,o,k);
});
var get__2137 = (function (o,k,not_found){
return cljs.core._lookup.call(null,o,k,not_found);
});
get = function(o,k,not_found){
switch(arguments.length){
case 2 :
return get__2136.call(this,o,k);
case 3 :
return get__2137.call(this,o,k,not_found);
}
throw('Invalid arity: ' + arguments.length);
};
return get;
})()
;
/**
* assoc[iate]. When applied to a map, returns a new map of the
* same (hashed/sorted) type, that contains the mapping of key(s) to
* val(s). When applied to a vector, returns a new vector that
* contains val at index.
* @param {...*} var_args
*/
cljs.core.assoc = (function() {
var assoc = null;
var assoc__2140 = (function (coll,k,v){
return cljs.core._assoc.call(null,coll,k,v);
});
var assoc__2141 = (function() {
var G__2143__delegate = function (coll,k,v,kvs){
var G__2144,G__2145;G__2144=G__2145=new Object();
while(G__2144===G__2145){
G__2144=(function(continue_val){
var ret__2139 = assoc.call(null,coll,k,v);
if(cljs.core.truth_(kvs))
{{
var G__2146 = ret__2139;
var G__2147 = cljs.core.first.call(null,kvs);
var G__2148 = cljs.core.second.call(null,kvs);
var G__2149 = cljs.core.nnext.call(null,kvs);
coll = G__2146;
k = G__2147;
v = G__2148;
kvs = G__2149;
return continue_val;
}
} else
{return ret__2139;
}
})(G__2145);}
return G__2144;
};
var G__2143 = function (coll,k,v,var_args){
var kvs = null;
if (goog.isDef(var_args)) {
kvs = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
}
return G__2143__delegate.call(this, coll, k, v, kvs);
};
G__2143.cljs$lang$maxFixedArity = 3;
G__2143.cljs$lang$applyTo = (function (arglist__2150){
var coll = cljs.core.first(arglist__2150);
var k = cljs.core.first(cljs.core.next(arglist__2150));
var v = cljs.core.first(cljs.core.next(cljs.core.next(arglist__2150)));
var kvs = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__2150)));
return G__2143__delegate.call(this, coll, k, v, kvs);
});
return G__2143;
})()
;
assoc = function(coll,k,v,var_args){
var kvs = var_args;
switch(arguments.length){
case 3 :
return assoc__2140.call(this,coll,k,v);
default:
return assoc__2141.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
assoc.cljs$lang$maxFixedArity = 3;
assoc.cljs$lang$applyTo = assoc__2141.cljs$lang$applyTo;
return assoc;
})()
;
/**
* dissoc[iate]. Returns a new map of the same (hashed/sorted) type,
* that does not contain a mapping for key(s).
* @param {...*} var_args
*/
cljs.core.dissoc = (function() {
var dissoc = null;
var dissoc__2152 = (function (coll){
return coll;
});
var dissoc__2153 = (function (coll,k){
return cljs.core._dissoc.call(null,coll,k);
});
var dissoc__2154 = (function() {
var G__2156__delegate = function (coll,k,ks){
var G__2157,G__2158;G__2157=G__2158=new Object();
while(G__2157===G__2158){
G__2157=(function(continue_val){
var ret__2151 = dissoc.call(null,coll,k);
if(cljs.core.truth_(ks))
{{
var G__2159 = ret__2151;
var G__2160 = cljs.core.first.call(null,ks);
var G__2161 = cljs.core.next.call(null,ks);
coll = G__2159;
k = G__2160;
ks = G__2161;
return continue_val;
}
} else
{return ret__2151;
}
})(G__2158);}
return G__2157;
};
var G__2156 = function (coll,k,var_args){
var ks = null;
if (goog.isDef(var_args)) {
ks = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2),0);
}
return G__2156__delegate.call(this, coll, k, ks);
};
G__2156.cljs$lang$maxFixedArity = 2;
G__2156.cljs$lang$applyTo = (function (arglist__2162){
var coll = cljs.core.first(arglist__2162);
var k = cljs.core.first(cljs.core.next(arglist__2162));
var ks = cljs.core.rest(cljs.core.next(arglist__2162));
return G__2156__delegate.call(this, coll, k, ks);
});
return G__2156;
})()
;
dissoc = function(coll,k,var_args){
var ks = var_args;
switch(arguments.length){
case 1 :
return dissoc__2152.call(this,coll);
case 2 :
return dissoc__2153.call(this,coll,k);
default:
return dissoc__2154.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
dissoc.cljs$lang$maxFixedArity = 2;
dissoc.cljs$lang$applyTo = dissoc__2154.cljs$lang$applyTo;
return dissoc;
})()
;
/**
* Returns an object of the same type and value as obj, with
* map m as its metadata.
*/
cljs.core.with_meta = (function with_meta(o,meta){
return cljs.core._with_meta.call(null,o,meta);
});
/**
* Returns the metadata of obj, returns nil if there is no metadata.
*/
cljs.core.meta = (function meta(o){
if(cljs.core.truth_((function (){var x__105__auto____2163 = o;
if(cljs.core.truth_((function (){var and__3574__auto____2164 = x__105__auto____2163;
if(cljs.core.truth_(and__3574__auto____2164))
{return x__105__auto____2163.cljs$core$IMeta$;
} else
{return and__3574__auto____2164;
}
})()))
{return true;
} else
{return cljs.core.type_satisfies_.call(null,cljs.core.IMeta,x__105__auto____2163);
}
})()))
{return cljs.core._meta.call(null,o);
} else
{return null;
}
});
/**
* For a list or queue, same as first, for a vector, same as, but much
* more efficient than, last. If the collection is empty, returns nil.
*/
cljs.core.peek = (function peek(coll){
return cljs.core._peek.call(null,coll);
});
/**
* For a list or queue, returns a new list/queue without the first
* item, for a vector, returns a new vector without the last item.
* Note - not the same as next/butlast.
*/
cljs.core.pop = (function pop(coll){
return cljs.core._pop.call(null,coll);
});
/**
* disj[oin]. Returns a new set of the same (hashed/sorted) type, that
* does not contain key(s).
* @param {...*} var_args
*/
cljs.core.disj = (function() {
var disj = null;
var disj__2166 = (function (coll){
return coll;
});
var disj__2167 = (function (coll,k){
return cljs.core._disjoin.call(null,coll,k);
});
var disj__2168 = (function() {
var G__2170__delegate = function (coll,k,ks){
var G__2171,G__2172;G__2171=G__2172=new Object();
while(G__2171===G__2172){
G__2171=(function(continue_val){
var ret__2165 = disj.call(null,coll,k);
if(cljs.core.truth_(ks))
{{
var G__2173 = ret__2165;
var G__2174 = cljs.core.first.call(null,ks);
var G__2175 = cljs.core.next.call(null,ks);
coll = G__2173;
k = G__2174;
ks = G__2175;
return continue_val;
}
} else
{return ret__2165;
}
})(G__2172);}
return G__2171;
};
var G__2170 = function (coll,k,var_args){
var ks = null;
if (goog.isDef(var_args)) {
ks = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2),0);
}
return G__2170__delegate.call(this, coll, k, ks);
};
G__2170.cljs$lang$maxFixedArity = 2;
G__2170.cljs$lang$applyTo = (function (arglist__2176){
var coll = cljs.core.first(arglist__2176);
var k = cljs.core.first(cljs.core.next(arglist__2176));
var ks = cljs.core.rest(cljs.core.next(arglist__2176));
return G__2170__delegate.call(this, coll, k, ks);
});
return G__2170;
})()
;
disj = function(coll,k,var_args){
var ks = var_args;
switch(arguments.length){
case 1 :
return disj__2166.call(this,coll);
case 2 :
return disj__2167.call(this,coll,k);
default:
return disj__2168.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
disj.cljs$lang$maxFixedArity = 2;
disj.cljs$lang$applyTo = disj__2168.cljs$lang$applyTo;
return disj;
})()
;
cljs.core.hash = (function hash(o){
return cljs.core._hash.call(null,o);
});
/**
* Returns true if coll has no items - same as (not (seq coll)).
* Please use the idiom (seq x) rather than (not (empty? x))
*/
cljs.core.empty_QMARK_ = (function empty_QMARK_(coll){
return cljs.core.not.call(null,cljs.core.seq.call(null,coll));
});
/**
* Returns true if x satisfies ICollection
*/
cljs.core.coll_QMARK_ = (function coll_QMARK_(x){
if(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,x)))
{return false;
} else
{var x__105__auto____2177 = x;
if(cljs.core.truth_((function (){var and__3574__auto____2178 = x__105__auto____2177;
if(cljs.core.truth_(and__3574__auto____2178))
{return x__105__auto____2177.cljs$core$ICollection$;
} else
{return and__3574__auto____2178;
}
})()))
{return true;
} else
{return cljs.core.type_satisfies_.call(null,cljs.core.ICollection,x__105__auto____2177);
}
}
});
/**
* Returns true if x satisfies ISet
*/
cljs.core.set_QMARK_ = (function set_QMARK_(x){
if(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,x)))
{return false;
} else
{var x__105__auto____2179 = x;
if(cljs.core.truth_((function (){var and__3574__auto____2180 = x__105__auto____2179;
if(cljs.core.truth_(and__3574__auto____2180))
{return x__105__auto____2179.cljs$core$ISet$;
} else
{return and__3574__auto____2180;
}
})()))
{return true;
} else
{return cljs.core.type_satisfies_.call(null,cljs.core.ISet,x__105__auto____2179);
}
}
});
/**
* Returns true if coll implements Associative
*/
cljs.core.associative_QMARK_ = (function associative_QMARK_(x){
var x__105__auto____2181 = x;
if(cljs.core.truth_((function (){var and__3574__auto____2182 = x__105__auto____2181;
if(cljs.core.truth_(and__3574__auto____2182))
{return x__105__auto____2181.cljs$core$IAssociative$;
} else
{return and__3574__auto____2182;
}
})()))
{return true;
} else
{return cljs.core.type_satisfies_.call(null,cljs.core.IAssociative,x__105__auto____2181);
}
});
/**
* Returns true if coll satisfies ISequential
*/
cljs.core.sequential_QMARK_ = (function sequential_QMARK_(x){
var x__105__auto____2183 = x;
if(cljs.core.truth_((function (){var and__3574__auto____2184 = x__105__auto____2183;
if(cljs.core.truth_(and__3574__auto____2184))
{return x__105__auto____2183.cljs$core$ISequential$;
} else
{return and__3574__auto____2184;
}
})()))
{return true;
} else
{return cljs.core.type_satisfies_.call(null,cljs.core.ISequential,x__105__auto____2183);
}
});
/**
* Returns true if coll implements count in constant time
*/
cljs.core.counted_QMARK_ = (function counted_QMARK_(x){
var x__105__auto____2185 = x;
if(cljs.core.truth_((function (){var and__3574__auto____2186 = x__105__auto____2185;
if(cljs.core.truth_(and__3574__auto____2186))
{return x__105__auto____2185.cljs$core$ICounted$;
} else
{return and__3574__auto____2186;
}
})()))
{return true;
} else
{return cljs.core.type_satisfies_.call(null,cljs.core.ICounted,x__105__auto____2185);
}
});
/**
* Return true if x satisfies IMap
*/
cljs.core.map_QMARK_ = (function map_QMARK_(x){
if(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,x)))
{return false;
} else
{var x__105__auto____2187 = x;
if(cljs.core.truth_((function (){var and__3574__auto____2188 = x__105__auto____2187;
if(cljs.core.truth_(and__3574__auto____2188))
{return x__105__auto____2187.cljs$core$IMap$;
} else
{return and__3574__auto____2188;
}
})()))
{return true;
} else
{return cljs.core.type_satisfies_.call(null,cljs.core.IMap,x__105__auto____2187);
}
}
});
/**
* Return true if x satisfies IVector
*/
cljs.core.vector_QMARK_ = (function vector_QMARK_(x){
var x__105__auto____2189 = x;
if(cljs.core.truth_((function (){var and__3574__auto____2190 = x__105__auto____2189;
if(cljs.core.truth_(and__3574__auto____2190))
{return x__105__auto____2189.cljs$core$IVector$;
} else
{return and__3574__auto____2190;
}
})()))
{return true;
} else
{return cljs.core.type_satisfies_.call(null,cljs.core.IVector,x__105__auto____2189);
}
});
cljs.core.js_obj = (function js_obj(){
return {};
});
cljs.core.js_keys = (function js_keys(obj){
var keys__2191 = cljs.core.array.call(null);
goog.object.forEach.call(null,obj,(function (val,key,obj){
return keys__2191.push(key);
}));
return keys__2191;
});
cljs.core.js_delete = (function js_delete(obj,key){
return delete obj[key];
});
cljs.core.lookup_sentinel = cljs.core.js_obj.call(null);
/**
* Returns true if x is the value false, false otherwise.
*/
cljs.core.false_QMARK_ = (function false_QMARK_(x){
return x === false;
});
/**
* Returns true if x is the value true, false otherwise.
*/
cljs.core.true_QMARK_ = (function true_QMARK_(x){
return x === true;
});
cljs.core.undefined_QMARK_ = (function undefined_QMARK_(x){
return (void 0 === x);
});
cljs.core.instance_QMARK_ = (function instance_QMARK_(t,o){
return (o instanceof t);
});
/**
* Return true if s satisfies ISeq
*/
cljs.core.seq_QMARK_ = (function seq_QMARK_(s){
if(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,s)))
{return false;
} else
{var x__105__auto____2192 = s;
if(cljs.core.truth_((function (){var and__3574__auto____2193 = x__105__auto____2192;
if(cljs.core.truth_(and__3574__auto____2193))
{return x__105__auto____2192.cljs$core$ISeq$;
} else
{return and__3574__auto____2193;
}
})()))
{return true;
} else
{return cljs.core.type_satisfies_.call(null,cljs.core.ISeq,x__105__auto____2192);
}
}
});
cljs.core.boolean$ = (function boolean$(x){
if(cljs.core.truth_(x))
{return true;
} else
{return false;
}
});
cljs.core.string_QMARK_ = (function string_QMARK_(x){
var and__3574__auto____2194 = goog.isString.call(null,x);
if(cljs.core.truth_(and__3574__auto____2194))
{return cljs.core.not.call(null,(function (){var or__3576__auto____2195 = cljs.core._EQ_.call(null,x.charAt(0),"﷐");
if(cljs.core.truth_(or__3576__auto____2195))
{return or__3576__auto____2195;
} else
{return cljs.core._EQ_.call(null,x.charAt(0),"ï·‘");
}
})());
} else
{return and__3574__auto____2194;
}
});
cljs.core.keyword_QMARK_ = (function keyword_QMARK_(x){
var and__3574__auto____2196 = goog.isString.call(null,x);
if(cljs.core.truth_(and__3574__auto____2196))
{return cljs.core._EQ_.call(null,x.charAt(0),"﷐");
} else
{return and__3574__auto____2196;
}
});
cljs.core.symbol_QMARK_ = (function symbol_QMARK_(x){
var and__3574__auto____2197 = goog.isString.call(null,x);
if(cljs.core.truth_(and__3574__auto____2197))
{return cljs.core._EQ_.call(null,x.charAt(0),"ï·‘");
} else
{return and__3574__auto____2197;
}
});
cljs.core.number_QMARK_ = (function number_QMARK_(n){
return goog.isNumber.call(null,n);
});
cljs.core.fn_QMARK_ = (function fn_QMARK_(f){
return goog.isFunction.call(null,f);
});
/**
* Returns true if n is an integer. Warning: returns true on underflow condition.
*/
cljs.core.integer_QMARK_ = (function integer_QMARK_(n){
var and__3574__auto____2198 = cljs.core.number_QMARK_.call(null,n);
if(cljs.core.truth_(and__3574__auto____2198))
{return (n == n.toFixed());
} else
{return and__3574__auto____2198;
}
});
/**
* Returns true if key is present in the given collection, otherwise
* returns false. Note that for numerically indexed collections like
* vectors and arrays, this tests if the numeric key is within the
* range of indexes. 'contains?' operates constant or logarithmic time;
* it will not perform a linear search for a value. See also 'some'.
*/
cljs.core.contains_QMARK_ = (function contains_QMARK_(coll,v){
if(cljs.core.truth_(cljs.core.identical_QMARK_.call(null,cljs.core._lookup.call(null,coll,v,cljs.core.lookup_sentinel),cljs.core.lookup_sentinel)))
{return false;
} else
{return true;
}
});
/**
* Returns the map entry for key, or nil if key not present.
*/
cljs.core.find = (function find(coll,k){
if(cljs.core.truth_((function (){var and__3574__auto____2199 = coll;
if(cljs.core.truth_(and__3574__auto____2199))
{var and__3574__auto____2200 = cljs.core.associative_QMARK_.call(null,coll);
if(cljs.core.truth_(and__3574__auto____2200))
{return cljs.core.contains_QMARK_.call(null,coll,k);
} else
{return and__3574__auto____2200;
}
} else
{return and__3574__auto____2199;
}
})()))
{return cljs.core.Vector.fromArray([k,cljs.core._lookup.call(null,coll,k)]);
} else
{return null;
}
});
/**
* Returns true if no two of the arguments are =
* @param {...*} var_args
*/
cljs.core.distinct_QMARK_ = (function() {
var distinct_QMARK_ = null;
var distinct_QMARK___2205 = (function (x){
return true;
});
var distinct_QMARK___2206 = (function (x,y){
return cljs.core.not.call(null,cljs.core._EQ_.call(null,x,y));
});
var distinct_QMARK___2207 = (function() {
var G__2209__delegate = function (x,y,more){
if(cljs.core.truth_(cljs.core.not.call(null,cljs.core._EQ_.call(null,x,y))))
{var s__2201 = cljs.core.set([y,x]);
var xs__2202 = more;
var G__2210,G__2211;G__2210=G__2211=new Object();
while(G__2210===G__2211){
G__2210=(function(continue_val){
var x__2203 = cljs.core.first.call(null,xs__2202);
var etc__2204 = cljs.core.next.call(null,xs__2202);
if(cljs.core.truth_(xs__2202))
{if(cljs.core.truth_(cljs.core.contains_QMARK_.call(null,s__2201,x__2203)))
{return false;
} else
{{
var G__2212 = cljs.core.conj.call(null,s__2201,x__2203);
var G__2213 = etc__2204;
s__2201 = G__2212;
xs__2202 = G__2213;
return continue_val;
}
}
} else
{return true;
}
})(G__2211);}
return G__2210;
} else
{return false;
}
};
var G__2209 = function (x,y,var_args){
var more = null;
if (goog.isDef(var_args)) {
more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2),0);
}
return G__2209__delegate.call(this, x, y, more);
};
G__2209.cljs$lang$maxFixedArity = 2;
G__2209.cljs$lang$applyTo = (function (arglist__2214){
var x = cljs.core.first(arglist__2214);
var y = cljs.core.first(cljs.core.next(arglist__2214));
var more = cljs.core.rest(cljs.core.next(arglist__2214));
return G__2209__delegate.call(this, x, y, more);
});
return G__2209;
})()
;
distinct_QMARK_ = function(x,y,var_args){
var more = var_args;
switch(arguments.length){
case 1 :
return distinct_QMARK___2205.call(this,x);
case 2 :
return distinct_QMARK___2206.call(this,x,y);
default:
return distinct_QMARK___2207.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
distinct_QMARK_.cljs$lang$maxFixedArity = 2;
distinct_QMARK_.cljs$lang$applyTo = distinct_QMARK___2207.cljs$lang$applyTo;
return distinct_QMARK_;
})()
;
/**
* Comparator. Returns a negative number, zero, or a positive number
* when x is logically 'less than', 'equal to', or 'greater than'
* y. Uses google.array.defaultCompare.
*/
cljs.core.compare = (function compare(x,y){
return goog.array.defaultCompare.call(null,x,y);
});
/**
* Given a fn that might be boolean valued or a comparator,
* return a fn that is a comparator.
*/
cljs.core.fn__GT_comparator = (function fn__GT_comparator(f){
if(cljs.core.truth_(cljs.core._EQ_.call(null,f,cljs.core.compare)))
{return cljs.core.compare;
} else
{return (function (x,y){
var r__2215 = f.call(null,x,y);
if(cljs.core.truth_(cljs.core.number_QMARK_.call(null,r__2215)))
{return r__2215;
} else
{if(cljs.core.truth_(r__2215))
{return -1;
} else
{if(cljs.core.truth_(f.call(null,y,x)))
{return 1;
} else
{return 0;
}
}
}
});
}
});
/**
* Returns a sorted sequence of the items in coll. Comp can be
* boolean-valued comparison funcion, or a -/0/+ valued comparator.
* Comp defaults to compare.
*/
cljs.core.sort = (function() {
var sort = null;
var sort__2217 = (function (coll){
return sort.call(null,cljs.core.compare,coll);
});
var sort__2218 = (function (comp,coll){
if(cljs.core.truth_(cljs.core.seq.call(null,coll)))
{var a__2216 = cljs.core.to_array.call(null,coll);
goog.array.stableSort.call(null,a__2216,cljs.core.fn__GT_comparator.call(null,comp));
return cljs.core.seq.call(null,a__2216);
} else
{return cljs.core.List.EMPTY;
}
});
sort = function(comp,coll){
switch(arguments.length){
case 1 :
return sort__2217.call(this,comp);
case 2 :
return sort__2218.call(this,comp,coll);
}
throw('Invalid arity: ' + arguments.length);
};
return sort;
})()
;
/**
* Returns a sorted sequence of the items in coll, where the sort
* order is determined by comparing (keyfn item). Comp can be
* boolean-valued comparison funcion, or a -/0/+ valued comparator.
* Comp defaults to compare.
*/
cljs.core.sort_by = (function() {
var sort_by = null;
var sort_by__2220 = (function (keyfn,coll){
return sort_by.call(null,keyfn,cljs.core.compare,coll);
});
var sort_by__2221 = (function (keyfn,comp,coll){
return cljs.core.sort.call(null,(function (x,y){
return cljs.core.fn__GT_comparator.call(null,comp).call(null,keyfn.call(null,x),keyfn.call(null,y));
}),coll);
});
sort_by = function(keyfn,comp,coll){
switch(arguments.length){
case 2 :
return sort_by__2220.call(this,keyfn,comp);
case 3 :
return sort_by__2221.call(this,keyfn,comp,coll);
}
throw('Invalid arity: ' + arguments.length);
};
return sort_by;
})()
;
/**
* f should be a function of 2 arguments. If val is not supplied,
* returns the result of applying f to the first 2 items in coll, then
* applying f to that result and the 3rd item, etc. If coll contains no
* items, f must accept no arguments as well, and reduce returns the
* result of calling f with no arguments. If coll has only 1 item, it
* is returned and f is not called. If val is supplied, returns the
* result of applying f to val and the first item in coll, then
* applying f to that result and the 2nd item, etc. If coll contains no
* items, returns val and f is not called.
*/
cljs.core.reduce = (function() {
var reduce = null;
var reduce__2223 = (function (f,coll){
return cljs.core._reduce.call(null,coll,f);
});
var reduce__2224 = (function (f,val,coll){
return cljs.core._reduce.call(null,coll,f,val);
});
reduce = function(f,val,coll){
switch(arguments.length){
case 2 :
return reduce__2223.call(this,f,val);
case 3 :
return reduce__2224.call(this,f,val,coll);
}
throw('Invalid arity: ' + arguments.length);
};
return reduce;
})()
;
cljs.core.seq_reduce = (function() {
var seq_reduce = null;
var seq_reduce__2230 = (function (f,coll){
var temp__3723__auto____2226 = cljs.core.seq.call(null,coll);
if(cljs.core.truth_(temp__3723__auto____2226))
{var s__2227 = temp__3723__auto____2226;
return cljs.core.reduce.call(null,f,cljs.core.first.call(null,s__2227),cljs.core.next.call(null,s__2227));
} else
{return f.call(null);
}
});
var seq_reduce__2231 = (function (f,val,coll){
var val__2228 = val;
var coll__2229 = cljs.core.seq.call(null,coll);
var G__2233,G__2234;G__2233=G__2234=new Object();
while(G__2233===G__2234){
G__2233=(function(continue_val){
if(cljs.core.truth_(coll__2229))
{{
var G__2235 = f.call(null,val__2228,cljs.core.first.call(null,coll__2229));
var G__2236 = cljs.core.next.call(null,coll__2229);
val__2228 = G__2235;
coll__2229 = G__2236;
return continue_val;
}
} else
{return val__2228;
}
})(G__2234);}
return G__2233;
});
seq_reduce = function(f,val,coll){
switch(arguments.length){
case 2 :
return seq_reduce__2230.call(this,f,val);
case 3 :
return seq_reduce__2231.call(this,f,val,coll);
}
throw('Invalid arity: ' + arguments.length);
};
return seq_reduce;
})()
;
(cljs.core.IReduce["_"] = true);
(cljs.core._reduce["_"] = (function() {
var G__2237 = null;
var G__2237__2238 = (function (coll,f){
return cljs.core.seq_reduce.call(null,f,coll);
});
var G__2237__2239 = (function (coll,f,start){
return cljs.core.seq_reduce.call(null,f,start,coll);
});
G__2237 = function(coll,f,start){
switch(arguments.length){
case 2 :
return G__2237__2238.call(this,coll,f);
case 3 :
return G__2237__2239.call(this,coll,f,start);
}
throw('Invalid arity: ' + arguments.length);
};
return G__2237;
})()
);
/**
* Returns the sum of nums. (+) returns 0.
* @param {...*} var_args
*/
cljs.core._PLUS_ = (function() {
var _PLUS_ = null;
var _PLUS___2241 = (function (){
return 0;
});
var _PLUS___2242 = (function (x){
return x;
});
var _PLUS___2243 = (function (x,y){
return (x + y);
});
var _PLUS___2244 = (function() {
var G__2246__delegate = function (x,y,more){
return cljs.core.reduce.call(null,_PLUS_,_PLUS_.call(null,x,y),more);
};
var G__2246 = function (x,y,var_args){
var more = null;
if (goog.isDef(var_args)) {
more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2),0);
}
return G__2246__delegate.call(this, x, y, more);
};
G__2246.cljs$lang$maxFixedArity = 2;
G__2246.cljs$lang$applyTo = (function (arglist__2247){
var x = cljs.core.first(arglist__2247);
var y = cljs.core.first(cljs.core.next(arglist__2247));
var more = cljs.core.rest(cljs.core.next(arglist__2247));
return G__2246__delegate.call(this, x, y, more);
});
return G__2246;
})()
;
_PLUS_ = function(x,y,var_args){
var more = var_args;
switch(arguments.length){
case 0 :
return _PLUS___2241.call(this);
case 1 :
return _PLUS___2242.call(this,x);
case 2 :
return _PLUS___2243.call(this,x,y);
default:
return _PLUS___2244.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
_PLUS_.cljs$lang$maxFixedArity = 2;
_PLUS_.cljs$lang$applyTo = _PLUS___2244.cljs$lang$applyTo;
return _PLUS_;
})()
;
/**
* If no ys are supplied, returns the negation of x, else subtracts
* the ys from x and returns the result.
* @param {...*} var_args
*/
cljs.core._ = (function() {
var _ = null;
var ___2248 = (function (x){
return (- x);
});
var ___2249 = (function (x,y){
return (x - y);
});
var ___2250 = (function() {
var G__2252__delegate = function (x,y,more){
return cljs.core.reduce.call(null,_,_.call(null,x,y),more);
};
var G__2252 = function (x,y,var_args){
var more = null;
if (goog.isDef(var_args)) {
more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2),0);
}
return G__2252__delegate.call(this, x, y, more);
};
G__2252.cljs$lang$maxFixedArity = 2;
G__2252.cljs$lang$applyTo = (function (arglist__2253){
var x = cljs.core.first(arglist__2253);
var y = cljs.core.first(cljs.core.next(arglist__2253));
var more = cljs.core.rest(cljs.core.next(arglist__2253));
return G__2252__delegate.call(this, x, y, more);
});
return G__2252;
})()
;
_ = function(x,y,var_args){
var more = var_args;
switch(arguments.length){
case 1 :
return ___2248.call(this,x);
case 2 :
return ___2249.call(this,x,y);
default:
return ___2250.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
_.cljs$lang$maxFixedArity = 2;
_.cljs$lang$applyTo = ___2250.cljs$lang$applyTo;
return _;
})()
;
/**
* Returns the product of nums. (*) returns 1.
* @param {...*} var_args
*/
cljs.core._STAR_ = (function() {
var _STAR_ = null;
var _STAR___2254 = (function (){
return 1;
});
var _STAR___2255 = (function (x){
return x;
});
var _STAR___2256 = (function (x,y){
return (x * y);
});
var _STAR___2257 = (function() {
var G__2259__delegate = function (x,y,more){
return cljs.core.reduce.call(null,_STAR_,_STAR_.call(null,x,y),more);
};
var G__2259 = function (x,y,var_args){
var more = null;
if (goog.isDef(var_args)) {
more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2),0);
}
return G__2259__delegate.call(this, x, y, more);
};
G__2259.cljs$lang$maxFixedArity = 2;
G__2259.cljs$lang$applyTo = (function (arglist__2260){
var x = cljs.core.first(arglist__2260);
var y = cljs.core.first(cljs.core.next(arglist__2260));
var more = cljs.core.rest(cljs.core.next(arglist__2260));
return G__2259__delegate.call(this, x, y, more);
});
return G__2259;
})()
;
_STAR_ = function(x,y,var_args){
var more = var_args;
switch(arguments.length){
case 0 :
return _STAR___2254.call(this);
case 1 :
return _STAR___2255.call(this,x);
case 2 :
return _STAR___2256.call(this,x,y);
default:
return _STAR___2257.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
_STAR_.cljs$lang$maxFixedArity = 2;
_STAR_.cljs$lang$applyTo = _STAR___2257.cljs$lang$applyTo;
return _STAR_;
})()
;
/**
* If no denominators are supplied, returns 1/numerator,
* else returns numerator divided by all of the denominators.
* @param {...*} var_args
*/
cljs.core._SLASH_ = (function() {
var _SLASH_ = null;
var _SLASH___2261 = (function (x){
return (1 / x);
});
var _SLASH___2262 = (function (x,y){
return (x / y);
});
var _SLASH___2263 = (function() {
var G__2265__delegate = function (x,y,more){
return cljs.core.reduce.call(null,_SLASH_,_SLASH_.call(null,x,y),more);
};
var G__2265 = function (x,y,var_args){
var more = null;
if (goog.isDef(var_args)) {
more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2),0);
}
return G__2265__delegate.call(this, x, y, more);
};
G__2265.cljs$lang$maxFixedArity = 2;
G__2265.cljs$lang$applyTo = (function (arglist__2266){
var x = cljs.core.first(arglist__2266);
var y = cljs.core.first(cljs.core.next(arglist__2266));
var more = cljs.core.rest(cljs.core.next(arglist__2266));
return G__2265__delegate.call(this, x, y, more);
});
return G__2265;
})()
;
_SLASH_ = function(x,y,var_args){
var more = var_args;
switch(arguments.length){
case 1 :
return _SLASH___2261.call(this,x);
case 2 :
return _SLASH___2262.call(this,x,y);
default:
return _SLASH___2263.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
_SLASH_.cljs$lang$maxFixedArity = 2;
_SLASH_.cljs$lang$applyTo = _SLASH___2263.cljs$lang$applyTo;
return _SLASH_;
})()
;
/**
* Returns non-nil if nums are in monotonically increasing order,
* otherwise false.
* @param {...*} var_args
*/
cljs.core._LT_ = (function() {
var _LT_ = null;
var _LT___2267 = (function (x){
return true;
});
var _LT___2268 = (function (x,y){
return (x < y);
});
var _LT___2269 = (function() {
var G__2271__delegate = function (x,y,more){
var G__2272,G__2273;G__2272=G__2273=new Object();
while(G__2272===G__2273){
G__2272=(function(continue_val){
if(cljs.core.truth_(_LT_.call(null,x,y)))
{if(cljs.core.truth_(cljs.core.next.call(null,more)))
{{
var G__2274 = y;
var G__2275 = cljs.core.first.call(null,more);
var G__2276 = cljs.core.next.call(null,more);
x = G__2274;
y = G__2275;
more = G__2276;
return continue_val;
}
} else
{return _LT_.call(null,y,cljs.core.first.call(null,more));
}
} else
{return false;
}
})(G__2273);}
return G__2272;
};
var G__2271 = function (x,y,var_args){
var more = null;
if (goog.isDef(var_args)) {
more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2),0);
}
return G__2271__delegate.call(this, x, y, more);
};
G__2271.cljs$lang$maxFixedArity = 2;
G__2271.cljs$lang$applyTo = (function (arglist__2277){
var x = cljs.core.first(arglist__2277);
var y = cljs.core.first(cljs.core.next(arglist__2277));
var more = cljs.core.rest(cljs.core.next(arglist__2277));
return G__2271__delegate.call(this, x, y, more);
});
return G__2271;
})()
;
_LT_ = function(x,y,var_args){
var more = var_args;
switch(arguments.length){
case 1 :
return _LT___2267.call(this,x);
case 2 :
return _LT___2268.call(this,x,y);
default:
return _LT___2269.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
_LT_.cljs$lang$maxFixedArity = 2;
_LT_.cljs$lang$applyTo = _LT___2269.cljs$lang$applyTo;
return _LT_;
})()
;
/**
* Returns non-nil if nums are in monotonically non-decreasing order,
* otherwise false.
* @param {...*} var_args
*/
cljs.core._LT__EQ_ = (function() {
var _LT__EQ_ = null;
var _LT__EQ___2278 = (function (x){
return true;
});
var _LT__EQ___2279 = (function (x,y){
return (x <= y);
});
var _LT__EQ___2280 = (function() {
var G__2282__delegate = function (x,y,more){
var G__2283,G__2284;G__2283=G__2284=new Object();
while(G__2283===G__2284){
G__2283=(function(continue_val){
if(cljs.core.truth_(_LT__EQ_.call(null,x,y)))
{if(cljs.core.truth_(cljs.core.next.call(null,more)))
{{
var G__2285 = y;
var G__2286 = cljs.core.first.call(null,more);
var G__2287 = cljs.core.next.call(null,more);
x = G__2285;
y = G__2286;
more = G__2287;
return continue_val;
}
} else
{return _LT__EQ_.call(null,y,cljs.core.first.call(null,more));
}
} else
{return false;
}
})(G__2284);}
return G__2283;
};
var G__2282 = function (x,y,var_args){
var more = null;
if (goog.isDef(var_args)) {
more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2),0);
}
return G__2282__delegate.call(this, x, y, more);
};
G__2282.cljs$lang$maxFixedArity = 2;
G__2282.cljs$lang$applyTo = (function (arglist__2288){
var x = cljs.core.first(arglist__2288);
var y = cljs.core.first(cljs.core.next(arglist__2288));
var more = cljs.core.rest(cljs.core.next(arglist__2288));
return G__2282__delegate.call(this, x, y, more);
});
return G__2282;
})()
;
_LT__EQ_ = function(x,y,var_args){
var more = var_args;
switch(arguments.length){
case 1 :
return _LT__EQ___2278.call(this,x);
case 2 :
return _LT__EQ___2279.call(this,x,y);
default:
return _LT__EQ___2280.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
_LT__EQ_.cljs$lang$maxFixedArity = 2;
_LT__EQ_.cljs$lang$applyTo = _LT__EQ___2280.cljs$lang$applyTo;
return _LT__EQ_;
})()
;
/**
* Returns non-nil if nums are in monotonically decreasing order,
* otherwise false.
* @param {...*} var_args
*/
cljs.core._GT_ = (function() {
var _GT_ = null;
var _GT___2289 = (function (x){
return true;
});
var _GT___2290 = (function (x,y){
return (x > y);
});
var _GT___2291 = (function() {
var G__2293__delegate = function (x,y,more){
var G__2294,G__2295;G__2294=G__2295=new Object();
while(G__2294===G__2295){
G__2294=(function(continue_val){
if(cljs.core.truth_(_GT_.call(null,x,y)))
{if(cljs.core.truth_(cljs.core.next.call(null,more)))
{{
var G__2296 = y;
var G__2297 = cljs.core.first.call(null,more);
var G__2298 = cljs.core.next.call(null,more);
x = G__2296;
y = G__2297;
more = G__2298;
return continue_val;
}
} else
{return _GT_.call(null,y,cljs.core.first.call(null,more));
}
} else
{return false;
}
})(G__2295);}
return G__2294;
};
var G__2293 = function (x,y,var_args){
var more = null;
if (goog.isDef(var_args)) {
more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2),0);
}
return G__2293__delegate.call(this, x, y, more);
};
G__2293.cljs$lang$maxFixedArity = 2;
G__2293.cljs$lang$applyTo = (function (arglist__2299){
var x = cljs.core.first(arglist__2299);
var y = cljs.core.first(cljs.core.next(arglist__2299));
var more = cljs.core.rest(cljs.core.next(arglist__2299));
return G__2293__delegate.call(this, x, y, more);
});
return G__2293;
})()
;
_GT_ = function(x,y,var_args){
var more = var_args;
switch(arguments.length){
case 1 :
return _GT___2289.call(this,x);
case 2 :
return _GT___2290.call(this,x,y);
default:
return _GT___2291.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
_GT_.cljs$lang$maxFixedArity = 2;
_GT_.cljs$lang$applyTo = _GT___2291.cljs$lang$applyTo;
return _GT_;
})()
;
/**
* Returns non-nil if nums are in monotonically non-increasing order,
* otherwise false.
* @param {...*} var_args
*/
cljs.core._GT__EQ_ = (function() {
var _GT__EQ_ = null;
var _GT__EQ___2300 = (function (x){
return true;
});
var _GT__EQ___2301 = (function (x,y){
return (x >= y);
});
var _GT__EQ___2302 = (function() {
var G__2304__delegate = function (x,y,more){
var G__2305,G__2306;G__2305=G__2306=new Object();
while(G__2305===G__2306){
G__2305=(function(continue_val){
if(cljs.core.truth_(_GT__EQ_.call(null,x,y)))
{if(cljs.core.truth_(cljs.core.next.call(null,more)))
{{
var G__2307 = y;
var G__2308 = cljs.core.first.call(null,more);
var G__2309 = cljs.core.next.call(null,more);
x = G__2307;
y = G__2308;
more = G__2309;
return continue_val;
}
} else
{return _GT__EQ_.call(null,y,cljs.core.first.call(null,more));
}
} else
{return false;
}
})(G__2306);}
return G__2305;
};
var G__2304 = function (x,y,var_args){
var more = null;
if (goog.isDef(var_args)) {
more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2),0);
}
return G__2304__delegate.call(this, x, y, more);
};
G__2304.cljs$lang$maxFixedArity = 2;
G__2304.cljs$lang$applyTo = (function (arglist__2310){
var x = cljs.core.first(arglist__2310);
var y = cljs.core.first(cljs.core.next(arglist__2310));
var more = cljs.core.rest(cljs.core.next(arglist__2310));
return G__2304__delegate.call(this, x, y, more);
});
return G__2304;
})()
;
_GT__EQ_ = function(x,y,var_args){
var more = var_args;
switch(arguments.length){
case 1 :
return _GT__EQ___2300.call(this,x);
case 2 :
return _GT__EQ___2301.call(this,x,y);
default:
return _GT__EQ___2302.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
_GT__EQ_.cljs$lang$maxFixedArity = 2;
_GT__EQ_.cljs$lang$applyTo = _GT__EQ___2302.cljs$lang$applyTo;
return _GT__EQ_;
})()
;
/**
* Returns a number one less than num.
*/
cljs.core.dec = (function dec(x){
return cljs.core._.call(null,x,1);
});
/**
* Returns the greatest of the nums.
* @param {...*} var_args
*/
cljs.core.max = (function() {
var max = null;
var max__2311 = (function (x){
return x;
});
var max__2312 = (function (x,y){
return ((x > y) ? x : y);
});
var max__2313 = (function() {
var G__2315__delegate = function (x,y,more){
return cljs.core.reduce.call(null,max,max.call(null,x,y),more);
};
var G__2315 = function (x,y,var_args){
var more = null;
if (goog.isDef(var_args)) {
more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2),0);
}
return G__2315__delegate.call(this, x, y, more);
};
G__2315.cljs$lang$maxFixedArity = 2;
G__2315.cljs$lang$applyTo = (function (arglist__2316){
var x = cljs.core.first(arglist__2316);
var y = cljs.core.first(cljs.core.next(arglist__2316));
var more = cljs.core.rest(cljs.core.next(arglist__2316));
return G__2315__delegate.call(this, x, y, more);
});
return G__2315;
})()
;
max = function(x,y,var_args){
var more = var_args;
switch(arguments.length){
case 1 :
return max__2311.call(this,x);
case 2 :
return max__2312.call(this,x,y);
default:
return max__2313.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
max.cljs$lang$maxFixedArity = 2;
max.cljs$lang$applyTo = max__2313.cljs$lang$applyTo;
return max;
})()
;
/**
* Returns the least of the nums.
* @param {...*} var_args
*/
cljs.core.min = (function() {
var min = null;
var min__2317 = (function (x){
return x;
});
var min__2318 = (function (x,y){
return ((x < y) ? x : y);
});
var min__2319 = (function() {
var G__2321__delegate = function (x,y,more){
return cljs.core.reduce.call(null,min,min.call(null,x,y),more);
};
var G__2321 = function (x,y,var_args){
var more = null;
if (goog.isDef(var_args)) {
more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2),0);
}
return G__2321__delegate.call(this, x, y, more);
};
G__2321.cljs$lang$maxFixedArity = 2;
G__2321.cljs$lang$applyTo = (function (arglist__2322){
var x = cljs.core.first(arglist__2322);
var y = cljs.core.first(cljs.core.next(arglist__2322));
var more = cljs.core.rest(cljs.core.next(arglist__2322));
return G__2321__delegate.call(this, x, y, more);
});
return G__2321;
})()
;
min = function(x,y,var_args){
var more = var_args;
switch(arguments.length){
case 1 :
return min__2317.call(this,x);
case 2 :
return min__2318.call(this,x,y);
default:
return min__2319.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
min.cljs$lang$maxFixedArity = 2;
min.cljs$lang$applyTo = min__2319.cljs$lang$applyTo;
return min;
})()
;
cljs.core.fix = (function fix(q){
if(cljs.core.truth_(cljs.core._GT__EQ_.call(null,q,0)))
{return Math.floor.call(null,q);
} else
{return Math.ceil.call(null,q);
}
});
/**
* Modulus of num and div. Truncates toward negative infinity.
*/
cljs.core.mod = (function mod(n,d){
return (n % d);
});
/**
* quot[ient] of dividing numerator by denominator.
*/
cljs.core.quot = (function quot(n,d){
var rem__2323 = cljs.core.mod.call(null,n,d);
return cljs.core.fix.call(null,((n - rem__2323) / d));
});
/**
* remainder of dividing numerator by denominator.
*/
cljs.core.rem = (function rem(n,d){
var q__2324 = cljs.core.quot.call(null,n,d);
return (n - (d * q__2324));
});
/**
* Returns a random floating point number between 0 (inclusive) and n (default 1) (exclusive).
*/
cljs.core.rand = (function() {
var rand = null;
var rand__2325 = (function (){
return Math.random.call(null);
});
var rand__2326 = (function (n){
return cljs.core._STAR_.call(null,n,rand.call(null));
});
rand = function(n){
switch(arguments.length){
case 0 :
return rand__2325.call(this);
case 1 :
return rand__2326.call(this,n);
}
throw('Invalid arity: ' + arguments.length);
};
return rand;
})()
;
/**
* Returns a random integer between 0 (inclusive) and n (exclusive).
*/
cljs.core.rand_int = (function rand_int(n){
return cljs.core.fix.call(null,cljs.core.rand.call(null,n));
});
/**
* Bitwise exclusive or
*/
cljs.core.bit_xor = (function bit_xor(x,y){
return (x ^ y);
});
/**
* Bitwise and
*/
cljs.core.bit_and = (function bit_and(x,y){
return (x & y);
});
/**
* Bitwise or
*/
cljs.core.bit_or = (function bit_or(x,y){
return (x | y);
});
/**
* Bitwise and
*/
cljs.core.bit_and_not = (function bit_and_not(x,y){
return (x & ~y);
});
/**
* Clear bit at index n
*/
cljs.core.bit_clear = (function bit_clear(x,n){
return (x & ~(1 << n));
});
/**
* Flip bit at index n
*/
cljs.core.bit_flip = (function bit_flip(x,n){
return (x ^ (1 << n));
});
/**
* Bitwise complement
*/
cljs.core.bit_not = (function bit_not(x){
return (~x);
});
/**
* Set bit at index n
*/
cljs.core.bit_set = (function bit_set(x,n){
return (x | (1 << n));
});
/**
* Test bit at index n
*/
cljs.core.bit_test = (function bit_test(x,n){
return ((x & (1 << n)) != 0);
});
/**
* Bitwise shift left
*/
cljs.core.bit_shift_left = (function bit_shift_left(x,n){
return (x << n);
});
/**
* Bitwise shift right
*/
cljs.core.bit_shift_right = (function bit_shift_right(x,n){
return (x >> n);
});
/**
* Returns non-nil if nums all have the equivalent
* value (type-independent), otherwise false
* @param {...*} var_args
*/
cljs.core._EQ__EQ_ = (function() {
var _EQ__EQ_ = null;
var _EQ__EQ___2328 = (function (x){
return true;
});
var _EQ__EQ___2329 = (function (x,y){
return cljs.core._equiv.call(null,x,y);
});
var _EQ__EQ___2330 = (function() {
var G__2332__delegate = function (x,y,more){
var G__2333,G__2334;G__2333=G__2334=new Object();
while(G__2333===G__2334){
G__2333=(function(continue_val){
if(cljs.core.truth_(_EQ__EQ_.call(null,x,y)))
{if(cljs.core.truth_(cljs.core.next.call(null,more)))
{{
var G__2335 = y;
var G__2336 = cljs.core.first.call(null,more);
var G__2337 = cljs.core.next.call(null,more);
x = G__2335;
y = G__2336;
more = G__2337;
return continue_val;
}
} else
{return _EQ__EQ_.call(null,y,cljs.core.first.call(null,more));
}
} else
{return false;
}
})(G__2334);}
return G__2333;
};
var G__2332 = function (x,y,var_args){
var more = null;
if (goog.isDef(var_args)) {
more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2),0);
}
return G__2332__delegate.call(this, x, y, more);
};
G__2332.cljs$lang$maxFixedArity = 2;
G__2332.cljs$lang$applyTo = (function (arglist__2338){
var x = cljs.core.first(arglist__2338);
var y = cljs.core.first(cljs.core.next(arglist__2338));
var more = cljs.core.rest(cljs.core.next(arglist__2338));
return G__2332__delegate.call(this, x, y, more);
});
return G__2332;
})()
;
_EQ__EQ_ = function(x,y,var_args){
var more = var_args;
switch(arguments.length){
case 1 :
return _EQ__EQ___2328.call(this,x);
case 2 :
return _EQ__EQ___2329.call(this,x,y);
default:
return _EQ__EQ___2330.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
_EQ__EQ_.cljs$lang$maxFixedArity = 2;
_EQ__EQ_.cljs$lang$applyTo = _EQ__EQ___2330.cljs$lang$applyTo;
return _EQ__EQ_;
})()
;
/**
* Returns true if num is greater than zero, else false
*/
cljs.core.pos_QMARK_ = (function pos_QMARK_(n){
return cljs.core._LT_.call(null,0,n);
});
cljs.core.zero_QMARK_ = (function zero_QMARK_(n){
return cljs.core._EQ__EQ_.call(null,0,n);
});
/**
* Returns true if num is less than zero, else false
*/
cljs.core.neg_QMARK_ = (function neg_QMARK_(x){
return (x < 0);
});
/**
* Returns the nth next of coll, (seq coll) when n is 0.
*/
cljs.core.nthnext = (function nthnext(coll,n){
var n__2339 = n;
var xs__2340 = cljs.core.seq.call(null,coll);
var G__2342,G__2343;G__2342=G__2343=new Object();
while(G__2342===G__2343){
G__2342=(function(continue_val){
if(cljs.core.truth_((function (){var and__3574__auto____2341 = xs__2340;
if(cljs.core.truth_(and__3574__auto____2341))
{return cljs.core.pos_QMARK_.call(null,n__2339);
} else
{return and__3574__auto____2341;
}
})()))
{{
var G__2344 = cljs.core.dec.call(null,n__2339);
var G__2345 = cljs.core.next.call(null,xs__2340);
n__2339 = G__2344;
xs__2340 = G__2345;
return continue_val;
}
} else
{return xs__2340;
}
})(G__2343);}
return G__2342;
});
(cljs.core.IIndexed["_"] = true);
(cljs.core._nth["_"] = (function() {
var G__2350 = null;
var G__2350__2351 = (function (coll,n){
var temp__3723__auto____2346 = cljs.core.nthnext.call(null,coll,n);
if(cljs.core.truth_(temp__3723__auto____2346))
{var xs__2347 = temp__3723__auto____2346;
return cljs.core.first.call(null,xs__2347);
} else
{throw "Index out of bounds";
}
});
var G__2350__2352 = (function (coll,n,not_found){
var temp__3723__auto____2348 = cljs.core.nthnext.call(null,coll,n);
if(cljs.core.truth_(temp__3723__auto____2348))
{var xs__2349 = temp__3723__auto____2348;
return cljs.core.first.call(null,xs__2349);
} else
{return not_found;
}
});
G__2350 = function(coll,n,not_found){
switch(arguments.length){
case 2 :
return G__2350__2351.call(this,coll,n);
case 3 :
return G__2350__2352.call(this,coll,n,not_found);
}
throw('Invalid arity: ' + arguments.length);
};
return G__2350;
})()
);
/**
* With no args, returns the empty string. With one arg x, returns
* x.toString(). (str nil) returns the empty string. With more than
* one arg, returns the concatenation of the str values of the args.
* @param {...*} var_args
*/
cljs.core.str = (function() {
var str = null;
var str__2354 = (function (){
return "";
});
var str__2355 = (function (x){
if(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,x)))
{return "";
} else
{return x.toString();
}
});
var str__2356 = (function() {
var G__2358__delegate = function (x,ys){
return (function (sb,more){
var G__2359,G__2360;G__2359=G__2360=new Object();
while(G__2359===G__2360){
G__2359=(function(continue_val){
if(cljs.core.truth_(more))
{{
var G__2361 = sb.append(str.call(null,cljs.core.first.call(null,more)));
var G__2362 = cljs.core.next.call(null,more);
sb = G__2361;
more = G__2362;
return continue_val;
}
} else
{return str.call(null,sb);
}
})(G__2360);}
return G__2359;
}).call(null,(new goog.string.StringBuffer(str.call(null,x))),ys);
};
var G__2358 = function (x,var_args){
var ys = null;
if (goog.isDef(var_args)) {
ys = cljs.core.array_seq(Array.prototype.slice.call(arguments, 1),0);
}
return G__2358__delegate.call(this, x, ys);
};
G__2358.cljs$lang$maxFixedArity = 1;
G__2358.cljs$lang$applyTo = (function (arglist__2363){
var x = cljs.core.first(arglist__2363);
var ys = cljs.core.rest(arglist__2363);
return G__2358__delegate.call(this, x, ys);
});
return G__2358;
})()
;
str = function(x,var_args){
var ys = var_args;
switch(arguments.length){
case 0 :
return str__2354.call(this);
case 1 :
return str__2355.call(this,x);
default:
return str__2356.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
str.cljs$lang$maxFixedArity = 1;
str.cljs$lang$applyTo = str__2356.cljs$lang$applyTo;
return str;
})()
;
/**
* Returns the substring of s beginning at start inclusive, and ending
* at end (defaults to length of string), exclusive.
*/
cljs.core.subs = (function() {
var subs = null;
var subs__2364 = (function (s,start){
return s.substring(start);
});
var subs__2365 = (function (s,start,end){
return s.substring(start,end);
});
subs = function(s,start,end){
switch(arguments.length){
case 2 :
return subs__2364.call(this,s,start);
case 3 :
return subs__2365.call(this,s,start,end);
}
throw('Invalid arity: ' + arguments.length);
};
return subs;
})()
;
/**
* Returns a Symbol with the given namespace and name.
*/
cljs.core.symbol = (function() {
var symbol = null;
var symbol__2367 = (function (name){
if(cljs.core.truth_(cljs.core.symbol_QMARK_.call(null,name)))
{return name;
} else
{if(cljs.core.truth_(cljs.core.keyword_QMARK_.call(null,name)))
{return cljs.core.str.call(null,"ï·‘","'",cljs.core.subs.call(null,name,2));
} else
{if(cljs.core.truth_("﷐'else"))
{return cljs.core.str.call(null,"ï·‘","'",name);
} else
{return null;
}
}
}
});
var symbol__2368 = (function (ns,name){
return symbol.call(null,cljs.core.str.call(null,ns,"/",name));
});
symbol = function(ns,name){
switch(arguments.length){
case 1 :
return symbol__2367.call(this,ns);
case 2 :
return symbol__2368.call(this,ns,name);
}
throw('Invalid arity: ' + arguments.length);
};
return symbol;
})()
;
/**
* Returns a Keyword with the given namespace and name. Do not use :
* in the keyword strings, it will be added automatically.
*/
cljs.core.keyword = (function() {
var keyword = null;
var keyword__2370 = (function (name){
if(cljs.core.truth_(cljs.core.keyword_QMARK_.call(null,name)))
{return name;
} else
{if(cljs.core.truth_(cljs.core.symbol_QMARK_.call(null,name)))
{return cljs.core.str.call(null,"﷐","'",cljs.core.subs.call(null,name,2));
} else
{if(cljs.core.truth_("﷐'else"))
{return cljs.core.str.call(null,"﷐","'",name);
} else
{return null;
}
}
}
});
var keyword__2371 = (function (ns,name){
return keyword.call(null,cljs.core.str.call(null,ns,"/",name));
});
keyword = function(ns,name){
switch(arguments.length){
case 1 :
return keyword__2370.call(this,ns);
case 2 :
return keyword__2371.call(this,ns,name);
}
throw('Invalid arity: ' + arguments.length);
};
return keyword;
})()
;
/**
* Assumes x is sequential. Returns true if x equals y, otherwise
* returns false.
*/
cljs.core.equiv_sequential = (function equiv_sequential(x,y){
return cljs.core.boolean$.call(null,(cljs.core.truth_(cljs.core.sequential_QMARK_.call(null,y))?(function (){var xs__2373 = cljs.core.seq.call(null,x);
var ys__2374 = cljs.core.seq.call(null,y);
var G__2375,G__2376;G__2375=G__2376=new Object();
while(G__2375===G__2376){
G__2375=(function(continue_val){
if(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,xs__2373)))
{return cljs.core.nil_QMARK_.call(null,ys__2374);
} else
{if(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,ys__2374)))
{return false;
} else
{if(cljs.core.truth_(cljs.core._EQ_.call(null,cljs.core.first.call(null,xs__2373),cljs.core.first.call(null,ys__2374))))
{{
var G__2377 = cljs.core.next.call(null,xs__2373);
var G__2378 = cljs.core.next.call(null,ys__2374);
xs__2373 = G__2377;
ys__2374 = G__2378;
return continue_val;
}
} else
{if(cljs.core.truth_("﷐'else"))
{return false;
} else
{return null;
}
}
}
}
})(G__2376);}
return G__2375;
})():null));
});
cljs.core.hash_combine = (function hash_combine(seed,hash){
return cljs.core.bit_xor.call(null,seed,cljs.core._PLUS_.call(null,hash,2654435769,cljs.core.bit_shift_left.call(null,seed,6),cljs.core.bit_shift_right.call(null,seed,2)));
});
cljs.core.hash_coll = (function hash_coll(coll){
return cljs.core.reduce.call(null,(function (p1__2379_SHARP_,p2__2380_SHARP_){
return cljs.core.hash_combine.call(null,p1__2379_SHARP_,cljs.core.hash.call(null,p2__2380_SHARP_));
}),cljs.core.hash.call(null,cljs.core.first.call(null,coll)),cljs.core.next.call(null,coll));
});
/**
* @constructor
*/
cljs.core.List = (function (meta,first,rest,count){
this.meta = meta;
this.first = first;
this.rest = rest;
this.count = count;
})
cljs.core.List.prototype.cljs$core$IEquiv$ = true;
cljs.core.List.prototype.cljs$core$IEquiv$_equiv = (function (coll,other){
var this__2381 = this;
return cljs.core.equiv_sequential.call(null,coll,other);
});
cljs.core.List.prototype.cljs$core$ICollection$ = true;
cljs.core.List.prototype.cljs$core$ICollection$_conj = (function (coll,o){
var this__2382 = this;
return (new cljs.core.List(this__2382.meta,o,coll,cljs.core.inc.call(null,this__2382.count)));
});
cljs.core.List.prototype.cljs$core$ISeq$ = true;
cljs.core.List.prototype.cljs$core$ISeq$_first = (function (coll){
var this__2383 = this;
return this__2383.first;
});
cljs.core.List.prototype.cljs$core$ISeq$_rest = (function (coll){
var this__2384 = this;
return this__2384.rest;
});
cljs.core.List.prototype.cljs$core$ISeqable$ = true;
cljs.core.List.prototype.cljs$core$ISeqable$_seq = (function (coll){
var this__2385 = this;
return coll;
});
cljs.core.List.prototype.cljs$core$IStack$ = true;
cljs.core.List.prototype.cljs$core$IStack$_peek = (function (coll){
var this__2386 = this;
return this__2386.first;
});
cljs.core.List.prototype.cljs$core$IStack$_pop = (function (coll){
var this__2387 = this;
return cljs.core._rest.call(null,coll);
});
cljs.core.List.prototype.cljs$core$IWithMeta$ = true;
cljs.core.List.prototype.cljs$core$IWithMeta$_with_meta = (function (coll,meta){
var this__2388 = this;
return (new cljs.core.List(meta,this__2388.first,this__2388.rest,this__2388.count));
});
cljs.core.List.prototype.cljs$core$IEmptyableCollection$ = true;
cljs.core.List.prototype.cljs$core$IEmptyableCollection$_empty = (function (coll){
var this__2389 = this;
return cljs.core.List.EMPTY;
});
cljs.core.List.prototype.cljs$core$IMeta$ = true;
cljs.core.List.prototype.cljs$core$IMeta$_meta = (function (coll){
var this__2390 = this;
return this__2390.meta;
});
cljs.core.List.prototype.cljs$core$IHash$ = true;
cljs.core.List.prototype.cljs$core$IHash$_hash = (function (coll){
var this__2391 = this;
return cljs.core.hash_coll.call(null,coll);
});
cljs.core.List.prototype.cljs$core$ICounted$ = true;
cljs.core.List.prototype.cljs$core$ICounted$_count = (function (coll){
var this__2392 = this;
return this__2392.count;
});
cljs.core.List.prototype.cljs$core$ISequential$ = true;
/**
* @constructor
*/
cljs.core.EmptyList = (function (meta){
this.meta = meta;
})
cljs.core.EmptyList.prototype.cljs$core$IEquiv$ = true;
cljs.core.EmptyList.prototype.cljs$core$IEquiv$_equiv = (function (coll,other){
var this__2393 = this;
return cljs.core.equiv_sequential.call(null,coll,other);
});
cljs.core.EmptyList.prototype.cljs$core$ICollection$ = true;
cljs.core.EmptyList.prototype.cljs$core$ICollection$_conj = (function (coll,o){
var this__2394 = this;
return (new cljs.core.List(this__2394.meta,o,null,1));
});
cljs.core.EmptyList.prototype.cljs$core$ISeq$ = true;
cljs.core.EmptyList.prototype.cljs$core$ISeq$_first = (function (coll){
var this__2395 = this;
return null;
});
cljs.core.EmptyList.prototype.cljs$core$ISeq$_rest = (function (coll){
var this__2396 = this;
return null;
});
cljs.core.EmptyList.prototype.cljs$core$ISeqable$ = true;
cljs.core.EmptyList.prototype.cljs$core$ISeqable$_seq = (function (coll){
var this__2397 = this;
return null;
});
cljs.core.EmptyList.prototype.cljs$core$IStack$ = true;
cljs.core.EmptyList.prototype.cljs$core$IStack$_peek = (function (coll){
var this__2398 = this;
return null;
});
cljs.core.EmptyList.prototype.cljs$core$IStack$_pop = (function (coll){
var this__2399 = this;
return null;
});
cljs.core.EmptyList.prototype.cljs$core$IWithMeta$ = true;
cljs.core.EmptyList.prototype.cljs$core$IWithMeta$_with_meta = (function (coll,meta){
var this__2400 = this;
return (new cljs.core.EmptyList(meta));
});
cljs.core.EmptyList.prototype.cljs$core$IEmptyableCollection$ = true;
cljs.core.EmptyList.prototype.cljs$core$IEmptyableCollection$_empty = (function (coll){
var this__2401 = this;
return coll;
});
cljs.core.EmptyList.prototype.cljs$core$IMeta$ = true;
cljs.core.EmptyList.prototype.cljs$core$IMeta$_meta = (function (coll){
var this__2402 = this;
return this__2402.meta;
});
cljs.core.EmptyList.prototype.cljs$core$IHash$ = true;
cljs.core.EmptyList.prototype.cljs$core$IHash$_hash = (function (coll){
var this__2403 = this;
return cljs.core.hash_coll.call(null,coll);
});
cljs.core.EmptyList.prototype.cljs$core$ICounted$ = true;
cljs.core.EmptyList.prototype.cljs$core$ICounted$_count = (function (coll){
var this__2404 = this;
return 0;
});
cljs.core.EmptyList.prototype.cljs$core$ISequential$ = true;
cljs.core.List.EMPTY = (new cljs.core.EmptyList(null));
/**
* Returns a seq of the items in coll in reverse order. Not lazy.
*/
cljs.core.reverse = (function reverse(coll){
return cljs.core.reduce.call(null,cljs.core.conj,cljs.core.List.EMPTY,coll);
});
/**
* @param {...*} var_args
*/
cljs.core.list = (function() {
var list__delegate = function (items){
return cljs.core.reduce.call(null,cljs.core.conj,cljs.core.List.EMPTY,cljs.core.reverse.call(null,items));
};
var list = function (var_args){
var items = null;
if (goog.isDef(var_args)) {
items = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);
}
return list__delegate.call(this, items);
};
list.cljs$lang$maxFixedArity = 0;
list.cljs$lang$applyTo = (function (arglist__2405){
var items = cljs.core.seq( arglist__2405 );;
return list__delegate.call(this, items);
});
return list;
})()
;
/**
* @constructor
*/
cljs.core.Cons = (function (meta,first,rest){
this.meta = meta;
this.first = first;
this.rest = rest;
})
cljs.core.Cons.prototype.cljs$core$ISeqable$ = true;
cljs.core.Cons.prototype.cljs$core$ISeqable$_seq = (function (coll){
var this__2406 = this;
return coll;
});
cljs.core.Cons.prototype.cljs$core$IHash$ = true;
cljs.core.Cons.prototype.cljs$core$IHash$_hash = (function (coll){
var this__2407 = this;
return cljs.core.hash_coll.call(null,coll);
});
cljs.core.Cons.prototype.cljs$core$IEquiv$ = true;
cljs.core.Cons.prototype.cljs$core$IEquiv$_equiv = (function (coll,other){
var this__2408 = this;
return cljs.core.equiv_sequential.call(null,coll,other);
});
cljs.core.Cons.prototype.cljs$core$ISequential$ = true;
cljs.core.Cons.prototype.cljs$core$IEmptyableCollection$ = true;
cljs.core.Cons.prototype.cljs$core$IEmptyableCollection$_empty = (function (coll){
var this__2409 = this;
return cljs.core.with_meta.call(null,cljs.core.List.EMPTY,this__2409.meta);
});
cljs.core.Cons.prototype.cljs$core$ICollection$ = true;
cljs.core.Cons.prototype.cljs$core$ICollection$_conj = (function (coll,o){
var this__2410 = this;
return (new cljs.core.Cons(null,o,coll));
});
cljs.core.Cons.prototype.cljs$core$ISeq$ = true;
cljs.core.Cons.prototype.cljs$core$ISeq$_first = (function (coll){
var this__2411 = this;
return this__2411.first;
});
cljs.core.Cons.prototype.cljs$core$ISeq$_rest = (function (coll){
var this__2412 = this;
if(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,this__2412.rest)))
{return cljs.core.List.EMPTY;
} else
{return this__2412.rest;
}
});
cljs.core.Cons.prototype.cljs$core$IMeta$ = true;
cljs.core.Cons.prototype.cljs$core$IMeta$_meta = (function (coll){
var this__2413 = this;
return this__2413.meta;
});
cljs.core.Cons.prototype.cljs$core$IWithMeta$ = true;
cljs.core.Cons.prototype.cljs$core$IWithMeta$_with_meta = (function (coll,meta){
var this__2414 = this;
return (new cljs.core.Cons(meta,this__2414.first,this__2414.rest));
});
/**
* Returns a new seq where x is the first element and seq is the rest.
*/
cljs.core.cons = (function cons(x,seq){
return (new cljs.core.Cons(null,x,seq));
});
(cljs.core.IReduce["string"] = true);
(cljs.core._reduce["string"] = (function() {
var G__2415 = null;
var G__2415__2416 = (function (string,f){
return cljs.core.ci_reduce.call(null,string,f);
});
var G__2415__2417 = (function (string,f,start){
return cljs.core.ci_reduce.call(null,string,f,start);
});
G__2415 = function(string,f,start){
switch(arguments.length){
case 2 :
return G__2415__2416.call(this,string,f);
case 3 :
return G__2415__2417.call(this,string,f,start);
}
throw('Invalid arity: ' + arguments.length);
};
return G__2415;
})()
);
(cljs.core.ILookup["string"] = true);
(cljs.core._lookup["string"] = (function() {
var G__2419 = null;
var G__2419__2420 = (function (string,k){
return cljs.core._nth.call(null,string,k);
});
var G__2419__2421 = (function (string,k,not_found){
return cljs.core._nth.call(null,string,k,not_found);
});
G__2419 = function(string,k,not_found){
switch(arguments.length){
case 2 :
return G__2419__2420.call(this,string,k);
case 3 :
return G__2419__2421.call(this,string,k,not_found);
}
throw('Invalid arity: ' + arguments.length);
};
return G__2419;
})()
);
(cljs.core.IIndexed["string"] = true);
(cljs.core._nth["string"] = (function() {
var G__2423 = null;
var G__2423__2424 = (function (string,n){
if(cljs.core.truth_(cljs.core._LT_.call(null,n,cljs.core._count.call(null,string))))
{return string.charAt(n);
} else
{return null;
}
});
var G__2423__2425 = (function (string,n,not_found){
if(cljs.core.truth_(cljs.core._LT_.call(null,n,cljs.core._count.call(null,string))))
{return string.charAt(n);
} else
{return not_found;
}
});
G__2423 = function(string,n,not_found){
switch(arguments.length){
case 2 :
return G__2423__2424.call(this,string,n);
case 3 :
return G__2423__2425.call(this,string,n,not_found);
}
throw('Invalid arity: ' + arguments.length);
};
return G__2423;
})()
);
(cljs.core.ICounted["string"] = true);
(cljs.core._count["string"] = (function (s){
return s.length;
}));
(cljs.core.ISeqable["string"] = true);
(cljs.core._seq["string"] = (function (string){
return cljs.core.prim_seq.call(null,string,0);
}));
(cljs.core.IHash["string"] = true);
(cljs.core._hash["string"] = (function (o){
return goog.string.hashCode.call(null,o);
}));
goog.global['String']['prototype']['call'] = (function() {
var G__2427 = null;
var G__2427__2428 = (function (_,coll){
return cljs.core.get.call(null,coll,this.toString());
});
var G__2427__2429 = (function (_,coll,not_found){
return cljs.core.get.call(null,coll,this.toString(),not_found);
});
G__2427 = function(_,coll,not_found){
switch(arguments.length){
case 2 :
return G__2427__2428.call(this,_,coll);
case 3 :
return G__2427__2429.call(this,_,coll,not_found);
}
throw('Invalid arity: ' + arguments.length);
};
return G__2427;
})()
;
goog.global['String']['prototype']['apply'] = (function (_,args){
if(cljs.core.truth_(cljs.core._LT_.call(null,cljs.core.count.call(null,args),2)))
{return this.call(null,(args[0]));
} else
{return this.call(null,(args[0]),(args[1]));
}
});
cljs.core.lazy_seq_value = (function lazy_seq_value(lazy_seq){
var x__2431 = lazy_seq.x;
if(cljs.core.truth_(lazy_seq.realized))
{return x__2431;
} else
{lazy_seq.x = x__2431.call(null);
lazy_seq.realized = true;
return lazy_seq.x;
}
});
/**
* @constructor
*/
cljs.core.LazySeq = (function (meta,realized,x){
this.meta = meta;
this.realized = realized;
this.x = x;
})
cljs.core.LazySeq.prototype.cljs$core$ISeqable$ = true;
cljs.core.LazySeq.prototype.cljs$core$ISeqable$_seq = (function (coll){
var this__2432 = this;
return cljs.core.seq.call(null,cljs.core.lazy_seq_value.call(null,coll));
});
cljs.core.LazySeq.prototype.cljs$core$IHash$ = true;
cljs.core.LazySeq.prototype.cljs$core$IHash$_hash = (function (coll){
var this__2433 = this;
return cljs.core.hash_coll.call(null,coll);
});
cljs.core.LazySeq.prototype.cljs$core$IEquiv$ = true;
cljs.core.LazySeq.prototype.cljs$core$IEquiv$_equiv = (function (coll,other){
var this__2434 = this;
return cljs.core.equiv_sequential.call(null,coll,other);
});
cljs.core.LazySeq.prototype.cljs$core$ISequential$ = true;
cljs.core.LazySeq.prototype.cljs$core$IEmptyableCollection$ = true;
cljs.core.LazySeq.prototype.cljs$core$IEmptyableCollection$_empty = (function (coll){
var this__2435 = this;
return cljs.core.with_meta.call(null,cljs.core.List.EMPTY,this__2435.meta);
});
cljs.core.LazySeq.prototype.cljs$core$ICollection$ = true;
cljs.core.LazySeq.prototype.cljs$core$ICollection$_conj = (function (coll,o){
var this__2436 = this;
return cljs.core.cons.call(null,o,coll);
});
cljs.core.LazySeq.prototype.cljs$core$ISeq$ = true;
cljs.core.LazySeq.prototype.cljs$core$ISeq$_first = (function (coll){
var this__2437 = this;
return cljs.core.first.call(null,cljs.core.lazy_seq_value.call(null,coll));
});
cljs.core.LazySeq.prototype.cljs$core$ISeq$_rest = (function (coll){
var this__2438 = this;
return cljs.core.rest.call(null,cljs.core.lazy_seq_value.call(null,coll));
});
cljs.core.LazySeq.prototype.cljs$core$IMeta$ = true;
cljs.core.LazySeq.prototype.cljs$core$IMeta$_meta = (function (coll){
var this__2439 = this;
return this__2439.meta;
});
cljs.core.LazySeq.prototype.cljs$core$IWithMeta$ = true;
cljs.core.LazySeq.prototype.cljs$core$IWithMeta$_with_meta = (function (coll,meta){
var this__2440 = this;
return (new cljs.core.LazySeq(meta,this__2440.realized,this__2440.x));
});
/**
* Naive impl of to-array as a start.
*/
cljs.core.to_array = (function to_array(s){
var ary__2441 = cljs.core.array.call(null);
var s__2442 = s;
var G__2443,G__2444;G__2443=G__2444=new Object();
while(G__2443===G__2444){
G__2443=(function(continue_val){
if(cljs.core.truth_(cljs.core.seq.call(null,s__2442)))
{ary__2441.push(cljs.core.first.call(null,s__2442));
{
var G__2445 = cljs.core.next.call(null,s__2442);
s__2442 = G__2445;
return continue_val;
}
} else
{return ary__2441;
}
})(G__2444);}
return G__2443;
});
cljs.core.bounded_count = (function bounded_count(s,n){
var s__2446 = s;
var i__2447 = n;
var sum__2448 = 0;
var G__2450,G__2451;G__2450=G__2451=new Object();
while(G__2450===G__2451){
G__2450=(function(continue_val){
if(cljs.core.truth_((function (){var and__3574__auto____2449 = cljs.core.pos_QMARK_.call(null,i__2447);
if(cljs.core.truth_(and__3574__auto____2449))
{return cljs.core.seq.call(null,s__2446);
} else
{return and__3574__auto____2449;
}
})()))
{{
var G__2452 = cljs.core.next.call(null,s__2446);
var G__2453 = cljs.core.dec.call(null,i__2447);
var G__2454 = cljs.core.inc.call(null,sum__2448);
s__2446 = G__2452;
i__2447 = G__2453;
sum__2448 = G__2454;
return continue_val;
}
} else
{return sum__2448;
}
})(G__2451);}
return G__2450;
});
cljs.core.spread = (function spread(arglist){
if(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,arglist)))
{return null;
} else
{if(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,cljs.core.next.call(null,arglist))))
{return cljs.core.seq.call(null,cljs.core.first.call(null,arglist));
} else
{if(cljs.core.truth_("﷐'else"))
{return cljs.core.cons.call(null,cljs.core.first.call(null,arglist),spread.call(null,cljs.core.next.call(null,arglist)));
} else
{return null;
}
}
}
});
/**
* Returns a lazy seq representing the concatenation of the elements in the supplied colls.
* @param {...*} var_args
*/
cljs.core.concat = (function() {
var concat = null;
var concat__2458 = (function (){
return (new cljs.core.LazySeq(null,false,(function (){
return null;
})));
});
var concat__2459 = (function (x){
return (new cljs.core.LazySeq(null,false,(function (){
return x;
})));
});
var concat__2460 = (function (x,y){
return (new cljs.core.LazySeq(null,false,(function (){
var s__2455 = cljs.core.seq.call(null,x);
if(cljs.core.truth_(s__2455))
{return cljs.core.cons.call(null,cljs.core.first.call(null,s__2455),concat.call(null,cljs.core.rest.call(null,s__2455),y));
} else
{return y;
}
})));
});
var concat__2461 = (function() {
var G__2463__delegate = function (x,y,zs){
var cat__2457 = (function cat(xys,zs){
return (new cljs.core.LazySeq(null,false,(function (){
var xys__2456 = cljs.core.seq.call(null,xys);
if(cljs.core.truth_(xys__2456))
{return cljs.core.cons.call(null,cljs.core.first.call(null,xys__2456),cat.call(null,cljs.core.rest.call(null,xys__2456),zs));
} else
{if(cljs.core.truth_(zs))
{return cat.call(null,cljs.core.first.call(null,zs),cljs.core.next.call(null,zs));
} else
{return null;
}
}
})));
});
return cat__2457.call(null,concat.call(null,x,y),zs);
};
var G__2463 = function (x,y,var_args){
var zs = null;
if (goog.isDef(var_args)) {
zs = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2),0);
}
return G__2463__delegate.call(this, x, y, zs);
};
G__2463.cljs$lang$maxFixedArity = 2;
G__2463.cljs$lang$applyTo = (function (arglist__2464){
var x = cljs.core.first(arglist__2464);
var y = cljs.core.first(cljs.core.next(arglist__2464));
var zs = cljs.core.rest(cljs.core.next(arglist__2464));
return G__2463__delegate.call(this, x, y, zs);
});
return G__2463;
})()
;
concat = function(x,y,var_args){
var zs = var_args;
switch(arguments.length){
case 0 :
return concat__2458.call(this);
case 1 :
return concat__2459.call(this,x);
case 2 :
return concat__2460.call(this,x,y);
default:
return concat__2461.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
concat.cljs$lang$maxFixedArity = 2;
concat.cljs$lang$applyTo = concat__2461.cljs$lang$applyTo;
return concat;
})()
;
/**
* Creates a new list containing the items prepended to the rest, the
* last of which will be treated as a sequence.
* @param {...*} var_args
*/
cljs.core.list_STAR_ = (function() {
var list_STAR_ = null;
var list_STAR___2465 = (function (args){
return cljs.core.seq.call(null,args);
});
var list_STAR___2466 = (function (a,args){
return cljs.core.cons.call(null,a,args);
});
var list_STAR___2467 = (function (a,b,args){
return cljs.core.cons.call(null,a,cljs.core.cons.call(null,b,args));
});
var list_STAR___2468 = (function (a,b,c,args){
return cljs.core.cons.call(null,a,cljs.core.cons.call(null,b,cljs.core.cons.call(null,c,args)));
});
var list_STAR___2469 = (function() {
var G__2471__delegate = function (a,b,c,d,more){
return cljs.core.cons.call(null,a,cljs.core.cons.call(null,b,cljs.core.cons.call(null,c,cljs.core.cons.call(null,d,cljs.core.spread.call(null,more)))));
};
var G__2471 = function (a,b,c,d,var_args){
var more = null;
if (goog.isDef(var_args)) {
more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 4),0);
}
return G__2471__delegate.call(this, a, b, c, d, more);
};
G__2471.cljs$lang$maxFixedArity = 4;
G__2471.cljs$lang$applyTo = (function (arglist__2472){
var a = cljs.core.first(arglist__2472);
var b = cljs.core.first(cljs.core.next(arglist__2472));
var c = cljs.core.first(cljs.core.next(cljs.core.next(arglist__2472)));
var d = cljs.core.first(cljs.core.next(cljs.core.next(cljs.core.next(arglist__2472))));
var more = cljs.core.rest(cljs.core.next(cljs.core.next(cljs.core.next(arglist__2472))));
return G__2471__delegate.call(this, a, b, c, d, more);
});
return G__2471;
})()
;
list_STAR_ = function(a,b,c,d,var_args){
var more = var_args;
switch(arguments.length){
case 1 :
return list_STAR___2465.call(this,a);
case 2 :
return list_STAR___2466.call(this,a,b);
case 3 :
return list_STAR___2467.call(this,a,b,c);
case 4 :
return list_STAR___2468.call(this,a,b,c,d);
default:
return list_STAR___2469.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
list_STAR_.cljs$lang$maxFixedArity = 4;
list_STAR_.cljs$lang$applyTo = list_STAR___2469.cljs$lang$applyTo;
return list_STAR_;
})()
;
/**
* Applies fn f to the argument list formed by prepending intervening arguments to args.
* First cut. Not lazy. Needs to use emitted toApply.
* @param {...*} var_args
*/
cljs.core.apply = (function() {
var apply = null;
var apply__2482 = (function (f,args){
var fixed_arity__2473 = f.cljs$lang$maxFixedArity;
if(cljs.core.truth_(f.cljs$lang$applyTo))
{if(cljs.core.truth_(cljs.core._LT__EQ_.call(null,cljs.core.bounded_count.call(null,args,cljs.core.inc.call(null,fixed_arity__2473)),fixed_arity__2473)))
{return f.apply(f,cljs.core.to_array.call(null,args));
} else
{return f.cljs$lang$applyTo(args);
}
} else
{return f.apply(f,cljs.core.to_array.call(null,args));
}
});
var apply__2483 = (function (f,x,args){
var arglist__2474 = cljs.core.list_STAR_.call(null,x,args);
var fixed_arity__2475 = f.cljs$lang$maxFixedArity;
if(cljs.core.truth_(f.cljs$lang$applyTo))
{if(cljs.core.truth_(cljs.core._LT__EQ_.call(null,cljs.core.bounded_count.call(null,arglist__2474,fixed_arity__2475),fixed_arity__2475)))
{return f.apply(f,cljs.core.to_array.call(null,arglist__2474));
} else
{return f.cljs$lang$applyTo(arglist__2474);
}
} else
{return f.apply(f,cljs.core.to_array.call(null,arglist__2474));
}
});
var apply__2484 = (function (f,x,y,args){
var arglist__2476 = cljs.core.list_STAR_.call(null,x,y,args);
var fixed_arity__2477 = f.cljs$lang$maxFixedArity;
if(cljs.core.truth_(f.cljs$lang$applyTo))
{if(cljs.core.truth_(cljs.core._LT__EQ_.call(null,cljs.core.bounded_count.call(null,arglist__2476,fixed_arity__2477),fixed_arity__2477)))
{return f.apply(f,cljs.core.to_array.call(null,arglist__2476));
} else
{return f.cljs$lang$applyTo(arglist__2476);
}
} else
{return f.apply(f,cljs.core.to_array.call(null,arglist__2476));
}
});
var apply__2485 = (function (f,x,y,z,args){
var arglist__2478 = cljs.core.list_STAR_.call(null,x,y,z,args);
var fixed_arity__2479 = f.cljs$lang$maxFixedArity;
if(cljs.core.truth_(f.cljs$lang$applyTo))
{if(cljs.core.truth_(cljs.core._LT__EQ_.call(null,cljs.core.bounded_count.call(null,arglist__2478,fixed_arity__2479),fixed_arity__2479)))
{return f.apply(f,cljs.core.to_array.call(null,arglist__2478));
} else
{return f.cljs$lang$applyTo(arglist__2478);
}
} else
{return f.apply(f,cljs.core.to_array.call(null,arglist__2478));
}
});
var apply__2486 = (function() {
var G__2488__delegate = function (f,a,b,c,d,args){
var arglist__2480 = cljs.core.cons.call(null,a,cljs.core.cons.call(null,b,cljs.core.cons.call(null,c,cljs.core.cons.call(null,d,cljs.core.spread.call(null,args)))));
var fixed_arity__2481 = f.cljs$lang$maxFixedArity;
if(cljs.core.truth_(f.cljs$lang$applyTo))
{if(cljs.core.truth_(cljs.core._LT__EQ_.call(null,cljs.core.bounded_count.call(null,arglist__2480,fixed_arity__2481),fixed_arity__2481)))
{return f.apply(f,cljs.core.to_array.call(null,arglist__2480));
} else
{return f.cljs$lang$applyTo(arglist__2480);
}
} else
{return f.apply(f,cljs.core.to_array.call(null,arglist__2480));
}
};
var G__2488 = function (f,a,b,c,d,var_args){
var args = null;
if (goog.isDef(var_args)) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 5),0);
}
return G__2488__delegate.call(this, f, a, b, c, d, args);
};
G__2488.cljs$lang$maxFixedArity = 5;
G__2488.cljs$lang$applyTo = (function (arglist__2489){
var f = cljs.core.first(arglist__2489);
var a = cljs.core.first(cljs.core.next(arglist__2489));
var b = cljs.core.first(cljs.core.next(cljs.core.next(arglist__2489)));
var c = cljs.core.first(cljs.core.next(cljs.core.next(cljs.core.next(arglist__2489))));
var d = cljs.core.first(cljs.core.next(cljs.core.next(cljs.core.next(cljs.core.next(arglist__2489)))));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(cljs.core.next(cljs.core.next(arglist__2489)))));
return G__2488__delegate.call(this, f, a, b, c, d, args);
});
return G__2488;
})()
;
apply = function(f,a,b,c,d,var_args){
var args = var_args;
switch(arguments.length){
case 2 :
return apply__2482.call(this,f,a);
case 3 :
return apply__2483.call(this,f,a,b);
case 4 :
return apply__2484.call(this,f,a,b,c);
case 5 :
return apply__2485.call(this,f,a,b,c,d);
default:
return apply__2486.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
apply.cljs$lang$maxFixedArity = 5;
apply.cljs$lang$applyTo = apply__2486.cljs$lang$applyTo;
return apply;
})()
;
/**
* Returns an object of the same type and value as obj, with
* (apply f (meta obj) args) as its metadata.
* @param {...*} var_args
*/
cljs.core.vary_meta = (function() {
var vary_meta__delegate = function (obj,f,args){
return cljs.core.with_meta.call(null,obj,cljs.core.apply.call(null,f,cljs.core.meta.call(null,obj),args));
};
var vary_meta = function (obj,f,var_args){
var args = null;
if (goog.isDef(var_args)) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2),0);
}
return vary_meta__delegate.call(this, obj, f, args);
};
vary_meta.cljs$lang$maxFixedArity = 2;
vary_meta.cljs$lang$applyTo = (function (arglist__2490){
var obj = cljs.core.first(arglist__2490);
var f = cljs.core.first(cljs.core.next(arglist__2490));
var args = cljs.core.rest(cljs.core.next(arglist__2490));
return vary_meta__delegate.call(this, obj, f, args);
});
return vary_meta;
})()
;
/**
* Same as (not (= obj1 obj2))
* @param {...*} var_args
*/
cljs.core.not_EQ_ = (function() {
var not_EQ_ = null;
var not_EQ___2491 = (function (x){
return false;
});
var not_EQ___2492 = (function (x,y){
return cljs.core.not.call(null,cljs.core._EQ_.call(null,x,y));
});
var not_EQ___2493 = (function() {
var G__2495__delegate = function (x,y,more){
return cljs.core.not.call(null,cljs.core.apply.call(null,cljs.core._EQ_,x,y,more));
};
var G__2495 = function (x,y,var_args){
var more = null;
if (goog.isDef(var_args)) {
more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2),0);
}
return G__2495__delegate.call(this, x, y, more);
};
G__2495.cljs$lang$maxFixedArity = 2;
G__2495.cljs$lang$applyTo = (function (arglist__2496){
var x = cljs.core.first(arglist__2496);
var y = cljs.core.first(cljs.core.next(arglist__2496));
var more = cljs.core.rest(cljs.core.next(arglist__2496));
return G__2495__delegate.call(this, x, y, more);
});
return G__2495;
})()
;
not_EQ_ = function(x,y,var_args){
var more = var_args;
switch(arguments.length){
case 1 :
return not_EQ___2491.call(this,x);
case 2 :
return not_EQ___2492.call(this,x,y);
default:
return not_EQ___2493.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
not_EQ_.cljs$lang$maxFixedArity = 2;
not_EQ_.cljs$lang$applyTo = not_EQ___2493.cljs$lang$applyTo;
return not_EQ_;
})()
;
/**
* If coll is empty, returns nil, else coll
*/
cljs.core.not_empty = (function not_empty(coll){
if(cljs.core.truth_(cljs.core.seq.call(null,coll)))
{return coll;
} else
{return null;
}
});
/**
* Returns true if (pred x) is logical true for every x in coll, else
* false.
*/
cljs.core.every_QMARK_ = (function every_QMARK_(pred,coll){
var G__2497,G__2498;G__2497=G__2498=new Object();
while(G__2497===G__2498){
G__2497=(function(continue_val){
if(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,cljs.core.seq.call(null,coll))))
{return true;
} else
{if(cljs.core.truth_(pred.call(null,cljs.core.first.call(null,coll))))
{{
var G__2499 = pred;
var G__2500 = cljs.core.next.call(null,coll);
pred = G__2499;
coll = G__2500;
return continue_val;
}
} else
{if(cljs.core.truth_("﷐'else"))
{return false;
} else
{return null;
}
}
}
})(G__2498);}
return G__2497;
});
/**
* Returns false if (pred x) is logical true for every x in
* coll, else true.
*/
cljs.core.not_every_QMARK_ = (function not_every_QMARK_(pred,coll){
return cljs.core.not.call(null,cljs.core.every_QMARK_.call(null,pred,coll));
});
/**
* Returns the first logical true value of (pred x) for any x in coll,
* else nil. One common idiom is to use a set as pred, for example
* this will return :fred if :fred is in the sequence, otherwise nil:
* (some #{:fred} coll)
*/
cljs.core.some = (function some(pred,coll){
var G__2502,G__2503;G__2502=G__2503=new Object();
while(G__2502===G__2503){
G__2502=(function(continue_val){
if(cljs.core.truth_(cljs.core.seq.call(null,coll)))
{var or__3576__auto____2501 = pred.call(null,cljs.core.first.call(null,coll));
if(cljs.core.truth_(or__3576__auto____2501))
{return or__3576__auto____2501;
} else
{{
var G__2504 = pred;
var G__2505 = cljs.core.next.call(null,coll);
pred = G__2504;
coll = G__2505;
return continue_val;
}
}
} else
{return null;
}
})(G__2503);}
return G__2502;
});
/**
* Returns false if (pred x) is logical true for any x in coll,
* else true.
*/
cljs.core.not_any_QMARK_ = (function not_any_QMARK_(pred,coll){
return cljs.core.not.call(null,cljs.core.some.call(null,pred,coll));
});
/**
* Returns true if n is even, throws an exception if n is not an integer
*/
cljs.core.even_QMARK_ = (function even_QMARK_(n){
if(cljs.core.truth_(cljs.core.integer_QMARK_.call(null,n)))
{return cljs.core.zero_QMARK_.call(null,cljs.core.bit_and.call(null,n,1));
} else
{throw cljs.core.str.call(null,"Argument must be an integer: ",n);
}
});
/**
* Returns true if n is odd, throws an exception if n is not an integer
*/
cljs.core.odd_QMARK_ = (function odd_QMARK_(n){
return cljs.core.not.call(null,cljs.core.even_QMARK_.call(null,n));
});
cljs.core.identity = (function identity(x){
return x;
});
/**
* Takes a fn f and returns a fn that takes the same arguments as f,
* has the same effects, if any, and returns the opposite truth value.
*/
cljs.core.complement = (function complement(f){
return (function() {
var G__2506 = null;
var G__2506__2507 = (function (){
return cljs.core.not.call(null,f.call(null));
});
var G__2506__2508 = (function (x){
return cljs.core.not.call(null,f.call(null,x));
});
var G__2506__2509 = (function (x,y){
return cljs.core.not.call(null,f.call(null,x,y));
});
var G__2506__2510 = (function() {
var G__2512__delegate = function (x,y,zs){
return cljs.core.not.call(null,cljs.core.apply.call(null,f,x,y,zs));
};
var G__2512 = function (x,y,var_args){
var zs = null;
if (goog.isDef(var_args)) {
zs = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2),0);
}
return G__2512__delegate.call(this, x, y, zs);
};
G__2512.cljs$lang$maxFixedArity = 2;
G__2512.cljs$lang$applyTo = (function (arglist__2513){
var x = cljs.core.first(arglist__2513);
var y = cljs.core.first(cljs.core.next(arglist__2513));
var zs = cljs.core.rest(cljs.core.next(arglist__2513));
return G__2512__delegate.call(this, x, y, zs);
});
return G__2512;
})()
;
G__2506 = function(x,y,var_args){
var zs = var_args;
switch(arguments.length){
case 0 :
return G__2506__2507.call(this);
case 1 :
return G__2506__2508.call(this,x);
case 2 :
return G__2506__2509.call(this,x,y);
default:
return G__2506__2510.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
G__2506.cljs$lang$maxFixedArity = 2;
G__2506.cljs$lang$applyTo = G__2506__2510.cljs$lang$applyTo;
return G__2506;
})()
});
/**
* Returns a function that takes any number of arguments and returns x.
*/
cljs.core.constantly = (function constantly(x){
return (function() {
var G__2514__delegate = function (args){
return x;
};
var G__2514 = function (var_args){
var args = null;
if (goog.isDef(var_args)) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);
}
return G__2514__delegate.call(this, args);
};
G__2514.cljs$lang$maxFixedArity = 0;
G__2514.cljs$lang$applyTo = (function (arglist__2515){
var args = cljs.core.seq( arglist__2515 );;
return G__2514__delegate.call(this, args);
});
return G__2514;
})()
;
});
/**
* Takes a set of functions and returns a fn that is the composition
* of those fns. The returned fn takes a variable number of args,
* applies the rightmost of fns to the args, the next
* fn (right-to-left) to the result, etc.
*
* TODO: Implement apply
* @param {...*} var_args
*/
cljs.core.comp = (function() {
var comp = null;
var comp__2519 = (function (){
return cljs.core.identity;
});
var comp__2520 = (function (f){
return f;
});
var comp__2521 = (function (f,g){
return (function() {
var G__2525 = null;
var G__2525__2526 = (function (){
return f.call(null,g.call(null));
});
var G__2525__2527 = (function (x){
return f.call(null,g.call(null,x));
});
var G__2525__2528 = (function (x,y){
return f.call(null,g.call(null,x,y));
});
var G__2525__2529 = (function (x,y,z){
return f.call(null,g.call(null,x,y,z));
});
var G__2525__2530 = (function() {
var G__2532__delegate = function (x,y,z,args){
return f.call(null,cljs.core.apply.call(null,g,x,y,z,args));
};
var G__2532 = function (x,y,z,var_args){
var args = null;
if (goog.isDef(var_args)) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
}
return G__2532__delegate.call(this, x, y, z, args);
};
G__2532.cljs$lang$maxFixedArity = 3;
G__2532.cljs$lang$applyTo = (function (arglist__2533){
var x = cljs.core.first(arglist__2533);
var y = cljs.core.first(cljs.core.next(arglist__2533));
var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__2533)));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__2533)));
return G__2532__delegate.call(this, x, y, z, args);
});
return G__2532;
})()
;
G__2525 = function(x,y,z,var_args){
var args = var_args;
switch(arguments.length){
case 0 :
return G__2525__2526.call(this);
case 1 :
return G__2525__2527.call(this,x);
case 2 :
return G__2525__2528.call(this,x,y);
case 3 :
return G__2525__2529.call(this,x,y,z);
default:
return G__2525__2530.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
G__2525.cljs$lang$maxFixedArity = 3;
G__2525.cljs$lang$applyTo = G__2525__2530.cljs$lang$applyTo;
return G__2525;
})()
});
var comp__2522 = (function (f,g,h){
return (function() {
var G__2534 = null;
var G__2534__2535 = (function (){
return f.call(null,g.call(null,h.call(null)));
});
var G__2534__2536 = (function (x){
return f.call(null,g.call(null,h.call(null,x)));
});
var G__2534__2537 = (function (x,y){
return f.call(null,g.call(null,h.call(null,x,y)));
});
var G__2534__2538 = (function (x,y,z){
return f.call(null,g.call(null,h.call(null,x,y,z)));
});
var G__2534__2539 = (function() {
var G__2541__delegate = function (x,y,z,args){
return f.call(null,g.call(null,cljs.core.apply.call(null,h,x,y,z,args)));
};
var G__2541 = function (x,y,z,var_args){
var args = null;
if (goog.isDef(var_args)) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
}
return G__2541__delegate.call(this, x, y, z, args);
};
G__2541.cljs$lang$maxFixedArity = 3;
G__2541.cljs$lang$applyTo = (function (arglist__2542){
var x = cljs.core.first(arglist__2542);
var y = cljs.core.first(cljs.core.next(arglist__2542));
var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__2542)));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__2542)));
return G__2541__delegate.call(this, x, y, z, args);
});
return G__2541;
})()
;
G__2534 = function(x,y,z,var_args){
var args = var_args;
switch(arguments.length){
case 0 :
return G__2534__2535.call(this);
case 1 :
return G__2534__2536.call(this,x);
case 2 :
return G__2534__2537.call(this,x,y);
case 3 :
return G__2534__2538.call(this,x,y,z);
default:
return G__2534__2539.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
G__2534.cljs$lang$maxFixedArity = 3;
G__2534.cljs$lang$applyTo = G__2534__2539.cljs$lang$applyTo;
return G__2534;
})()
});
var comp__2523 = (function() {
var G__2543__delegate = function (f1,f2,f3,fs){
var fs__2516 = cljs.core.reverse.call(null,cljs.core.list_STAR_.call(null,f1,f2,f3,fs));
return (function() {
var G__2544__delegate = function (args){
var ret__2517 = cljs.core.apply.call(null,cljs.core.first.call(null,fs__2516),args);
var fs__2518 = cljs.core.next.call(null,fs__2516);
var G__2545,G__2546;G__2545=G__2546=new Object();
while(G__2545===G__2546){
G__2545=(function(continue_val){
if(cljs.core.truth_(fs__2518))
{{
var G__2547 = cljs.core.first.call(null,fs__2518).call(null,ret__2517);
var G__2548 = cljs.core.next.call(null,fs__2518);
ret__2517 = G__2547;
fs__2518 = G__2548;
return continue_val;
}
} else
{return ret__2517;
}
})(G__2546);}
return G__2545;
};
var G__2544 = function (var_args){
var args = null;
if (goog.isDef(var_args)) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);
}
return G__2544__delegate.call(this, args);
};
G__2544.cljs$lang$maxFixedArity = 0;
G__2544.cljs$lang$applyTo = (function (arglist__2549){
var args = cljs.core.seq( arglist__2549 );;
return G__2544__delegate.call(this, args);
});
return G__2544;
})()
;
};
var G__2543 = function (f1,f2,f3,var_args){
var fs = null;
if (goog.isDef(var_args)) {
fs = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
}
return G__2543__delegate.call(this, f1, f2, f3, fs);
};
G__2543.cljs$lang$maxFixedArity = 3;
G__2543.cljs$lang$applyTo = (function (arglist__2550){
var f1 = cljs.core.first(arglist__2550);
var f2 = cljs.core.first(cljs.core.next(arglist__2550));
var f3 = cljs.core.first(cljs.core.next(cljs.core.next(arglist__2550)));
var fs = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__2550)));
return G__2543__delegate.call(this, f1, f2, f3, fs);
});
return G__2543;
})()
;
comp = function(f1,f2,f3,var_args){
var fs = var_args;
switch(arguments.length){
case 0 :
return comp__2519.call(this);
case 1 :
return comp__2520.call(this,f1);
case 2 :
return comp__2521.call(this,f1,f2);
case 3 :
return comp__2522.call(this,f1,f2,f3);
default:
return comp__2523.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
comp.cljs$lang$maxFixedArity = 3;
comp.cljs$lang$applyTo = comp__2523.cljs$lang$applyTo;
return comp;
})()
;
/**
* Takes a function f and fewer than the normal arguments to f, and
* returns a fn that takes a variable number of additional args. When
* called, the returned function calls f with args + additional args.
*
* TODO: Implement apply
* @param {...*} var_args
*/
cljs.core.partial = (function() {
var partial = null;
var partial__2551 = (function (f,arg1){
return (function() {
var G__2556__delegate = function (args){
return cljs.core.apply.call(null,f,arg1,args);
};
var G__2556 = function (var_args){
var args = null;
if (goog.isDef(var_args)) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);
}
return G__2556__delegate.call(this, args);
};
G__2556.cljs$lang$maxFixedArity = 0;
G__2556.cljs$lang$applyTo = (function (arglist__2557){
var args = cljs.core.seq( arglist__2557 );;
return G__2556__delegate.call(this, args);
});
return G__2556;
})()
;
});
var partial__2552 = (function (f,arg1,arg2){
return (function() {
var G__2558__delegate = function (args){
return cljs.core.apply.call(null,f,arg1,arg2,args);
};
var G__2558 = function (var_args){
var args = null;
if (goog.isDef(var_args)) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);
}
return G__2558__delegate.call(this, args);
};
G__2558.cljs$lang$maxFixedArity = 0;
G__2558.cljs$lang$applyTo = (function (arglist__2559){
var args = cljs.core.seq( arglist__2559 );;
return G__2558__delegate.call(this, args);
});
return G__2558;
})()
;
});
var partial__2553 = (function (f,arg1,arg2,arg3){
return (function() {
var G__2560__delegate = function (args){
return cljs.core.apply.call(null,f,arg1,arg2,arg3,args);
};
var G__2560 = function (var_args){
var args = null;
if (goog.isDef(var_args)) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);
}
return G__2560__delegate.call(this, args);
};
G__2560.cljs$lang$maxFixedArity = 0;
G__2560.cljs$lang$applyTo = (function (arglist__2561){
var args = cljs.core.seq( arglist__2561 );;
return G__2560__delegate.call(this, args);
});
return G__2560;
})()
;
});
var partial__2554 = (function() {
var G__2562__delegate = function (f,arg1,arg2,arg3,more){
return (function() {
var G__2563__delegate = function (args){
return cljs.core.apply.call(null,f,arg1,arg2,arg3,cljs.core.concat.call(null,more,args));
};
var G__2563 = function (var_args){
var args = null;
if (goog.isDef(var_args)) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);
}
return G__2563__delegate.call(this, args);
};
G__2563.cljs$lang$maxFixedArity = 0;
G__2563.cljs$lang$applyTo = (function (arglist__2564){
var args = cljs.core.seq( arglist__2564 );;
return G__2563__delegate.call(this, args);
});
return G__2563;
})()
;
};
var G__2562 = function (f,arg1,arg2,arg3,var_args){
var more = null;
if (goog.isDef(var_args)) {
more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 4),0);
}
return G__2562__delegate.call(this, f, arg1, arg2, arg3, more);
};
G__2562.cljs$lang$maxFixedArity = 4;
G__2562.cljs$lang$applyTo = (function (arglist__2565){
var f = cljs.core.first(arglist__2565);
var arg1 = cljs.core.first(cljs.core.next(arglist__2565));
var arg2 = cljs.core.first(cljs.core.next(cljs.core.next(arglist__2565)));
var arg3 = cljs.core.first(cljs.core.next(cljs.core.next(cljs.core.next(arglist__2565))));
var more = cljs.core.rest(cljs.core.next(cljs.core.next(cljs.core.next(arglist__2565))));
return G__2562__delegate.call(this, f, arg1, arg2, arg3, more);
});
return G__2562;
})()
;
partial = function(f,arg1,arg2,arg3,var_args){
var more = var_args;
switch(arguments.length){
case 2 :
return partial__2551.call(this,f,arg1);
case 3 :
return partial__2552.call(this,f,arg1,arg2);
case 4 :
return partial__2553.call(this,f,arg1,arg2,arg3);
default:
return partial__2554.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
partial.cljs$lang$maxFixedArity = 4;
partial.cljs$lang$applyTo = partial__2554.cljs$lang$applyTo;
return partial;
})()
;
/**
* Takes a function f, and returns a function that calls f, replacing
* a nil first argument to f with the supplied value x. Higher arity
* versions can replace arguments in the second and third
* positions (y, z). Note that the function f can take any number of
* arguments, not just the one(s) being nil-patched.
*/
cljs.core.fnil = (function() {
var fnil = null;
var fnil__2566 = (function (f,x){
return (function() {
var G__2570 = null;
var G__2570__2571 = (function (a){
return f.call(null,(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,a))?x:a));
});
var G__2570__2572 = (function (a,b){
return f.call(null,(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,a))?x:a),b);
});
var G__2570__2573 = (function (a,b,c){
return f.call(null,(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,a))?x:a),b,c);
});
var G__2570__2574 = (function() {
var G__2576__delegate = function (a,b,c,ds){
return cljs.core.apply.call(null,f,(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,a))?x:a),b,c,ds);
};
var G__2576 = function (a,b,c,var_args){
var ds = null;
if (goog.isDef(var_args)) {
ds = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
}
return G__2576__delegate.call(this, a, b, c, ds);
};
G__2576.cljs$lang$maxFixedArity = 3;
G__2576.cljs$lang$applyTo = (function (arglist__2577){
var a = cljs.core.first(arglist__2577);
var b = cljs.core.first(cljs.core.next(arglist__2577));
var c = cljs.core.first(cljs.core.next(cljs.core.next(arglist__2577)));
var ds = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__2577)));
return G__2576__delegate.call(this, a, b, c, ds);
});
return G__2576;
})()
;
G__2570 = function(a,b,c,var_args){
var ds = var_args;
switch(arguments.length){
case 1 :
return G__2570__2571.call(this,a);
case 2 :
return G__2570__2572.call(this,a,b);
case 3 :
return G__2570__2573.call(this,a,b,c);
default:
return G__2570__2574.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
G__2570.cljs$lang$maxFixedArity = 3;
G__2570.cljs$lang$applyTo = G__2570__2574.cljs$lang$applyTo;
return G__2570;
})()
});
var fnil__2567 = (function (f,x,y){
return (function() {
var G__2578 = null;
var G__2578__2579 = (function (a,b){
return f.call(null,(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,a))?x:a),(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,b))?y:b));
});
var G__2578__2580 = (function (a,b,c){
return f.call(null,(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,a))?x:a),(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,b))?y:b),c);
});
var G__2578__2581 = (function() {
var G__2583__delegate = function (a,b,c,ds){
return cljs.core.apply.call(null,f,(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,a))?x:a),(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,b))?y:b),c,ds);
};
var G__2583 = function (a,b,c,var_args){
var ds = null;
if (goog.isDef(var_args)) {
ds = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
}
return G__2583__delegate.call(this, a, b, c, ds);
};
G__2583.cljs$lang$maxFixedArity = 3;
G__2583.cljs$lang$applyTo = (function (arglist__2584){
var a = cljs.core.first(arglist__2584);
var b = cljs.core.first(cljs.core.next(arglist__2584));
var c = cljs.core.first(cljs.core.next(cljs.core.next(arglist__2584)));
var ds = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__2584)));
return G__2583__delegate.call(this, a, b, c, ds);
});
return G__2583;
})()
;
G__2578 = function(a,b,c,var_args){
var ds = var_args;
switch(arguments.length){
case 2 :
return G__2578__2579.call(this,a,b);
case 3 :
return G__2578__2580.call(this,a,b,c);
default:
return G__2578__2581.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
G__2578.cljs$lang$maxFixedArity = 3;
G__2578.cljs$lang$applyTo = G__2578__2581.cljs$lang$applyTo;
return G__2578;
})()
});
var fnil__2568 = (function (f,x,y,z){
return (function() {
var G__2585 = null;
var G__2585__2586 = (function (a,b){
return f.call(null,(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,a))?x:a),(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,b))?y:b));
});
var G__2585__2587 = (function (a,b,c){
return f.call(null,(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,a))?x:a),(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,b))?y:b),(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,c))?z:c));
});
var G__2585__2588 = (function() {
var G__2590__delegate = function (a,b,c,ds){
return cljs.core.apply.call(null,f,(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,a))?x:a),(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,b))?y:b),(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,c))?z:c),ds);
};
var G__2590 = function (a,b,c,var_args){
var ds = null;
if (goog.isDef(var_args)) {
ds = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
}
return G__2590__delegate.call(this, a, b, c, ds);
};
G__2590.cljs$lang$maxFixedArity = 3;
G__2590.cljs$lang$applyTo = (function (arglist__2591){
var a = cljs.core.first(arglist__2591);
var b = cljs.core.first(cljs.core.next(arglist__2591));
var c = cljs.core.first(cljs.core.next(cljs.core.next(arglist__2591)));
var ds = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__2591)));
return G__2590__delegate.call(this, a, b, c, ds);
});
return G__2590;
})()
;
G__2585 = function(a,b,c,var_args){
var ds = var_args;
switch(arguments.length){
case 2 :
return G__2585__2586.call(this,a,b);
case 3 :
return G__2585__2587.call(this,a,b,c);
default:
return G__2585__2588.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
G__2585.cljs$lang$maxFixedArity = 3;
G__2585.cljs$lang$applyTo = G__2585__2588.cljs$lang$applyTo;
return G__2585;
})()
});
fnil = function(f,x,y,z){
switch(arguments.length){
case 2 :
return fnil__2566.call(this,f,x);
case 3 :
return fnil__2567.call(this,f,x,y);
case 4 :
return fnil__2568.call(this,f,x,y,z);
}
throw('Invalid arity: ' + arguments.length);
};
return fnil;
})()
;
/**
* Returns a lazy sequence consisting of the result of applying f to 0
* and the first item of coll, followed by applying f to 1 and the second
* item in coll, etc, until coll is exhausted. Thus function f should
* accept 2 arguments, index and item.
*/
cljs.core.map_indexed = (function map_indexed(f,coll){
var mapi__2594 = (function mpi(idx,coll){
return (new cljs.core.LazySeq(null,false,(function (){
var temp__3726__auto____2592 = cljs.core.seq.call(null,coll);
if(cljs.core.truth_(temp__3726__auto____2592))
{var s__2593 = temp__3726__auto____2592;
return cljs.core.cons.call(null,f.call(null,idx,cljs.core.first.call(null,s__2593)),mpi.call(null,cljs.core.inc.call(null,idx),cljs.core.rest.call(null,s__2593)));
} else
{return null;
}
})));
});
return mapi__2594.call(null,0,coll);
});
/**
* Returns a lazy sequence of the non-nil results of (f item). Note,
* this means false return values will be included. f must be free of
* side-effects.
*/
cljs.core.keep = (function keep(f,coll){
return (new cljs.core.LazySeq(null,false,(function (){
var temp__3726__auto____2595 = cljs.core.seq.call(null,coll);
if(cljs.core.truth_(temp__3726__auto____2595))
{var s__2596 = temp__3726__auto____2595;
var x__2597 = f.call(null,cljs.core.first.call(null,s__2596));
if(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,x__2597)))
{return keep.call(null,f,cljs.core.rest.call(null,s__2596));
} else
{return cljs.core.cons.call(null,x__2597,keep.call(null,f,cljs.core.rest.call(null,s__2596)));
}
} else
{return null;
}
})));
});
/**
* Returns a lazy sequence of the non-nil results of (f index item). Note,
* this means false return values will be included. f must be free of
* side-effects.
*/
cljs.core.keep_indexed = (function keep_indexed(f,coll){
var keepi__2607 = (function kpi(idx,coll){
return (new cljs.core.LazySeq(null,false,(function (){
var temp__3726__auto____2604 = cljs.core.seq.call(null,coll);
if(cljs.core.truth_(temp__3726__auto____2604))
{var s__2605 = temp__3726__auto____2604;
var x__2606 = f.call(null,idx,cljs.core.first.call(null,s__2605));
if(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,x__2606)))
{return kpi.call(null,cljs.core.inc.call(null,idx),cljs.core.rest.call(null,s__2605));
} else
{return cljs.core.cons.call(null,x__2606,kpi.call(null,cljs.core.inc.call(null,idx),cljs.core.rest.call(null,s__2605)));
}
} else
{return null;
}
})));
});
return keepi__2607.call(null,0,coll);
});
/**
* Takes a set of predicates and returns a function f that returns true if all of its
* composing predicates return a logical true value against all of its arguments, else it returns
* false. Note that f is short-circuiting in that it will stop execution on the first
* argument that triggers a logical false result against the original predicates.
* @param {...*} var_args
*/
cljs.core.every_pred = (function() {
var every_pred = null;
var every_pred__2652 = (function (p){
return (function() {
var ep1 = null;
var ep1__2657 = (function (){
return true;
});
var ep1__2658 = (function (x){
return cljs.core.boolean$.call(null,p.call(null,x));
});
var ep1__2659 = (function (x,y){
return cljs.core.boolean$.call(null,(function (){var and__3574__auto____2614 = p.call(null,x);
if(cljs.core.truth_(and__3574__auto____2614))
{return p.call(null,y);
} else
{return and__3574__auto____2614;
}
})());
});
var ep1__2660 = (function (x,y,z){
return cljs.core.boolean$.call(null,(function (){var and__3574__auto____2615 = p.call(null,x);
if(cljs.core.truth_(and__3574__auto____2615))
{var and__3574__auto____2616 = p.call(null,y);
if(cljs.core.truth_(and__3574__auto____2616))
{return p.call(null,z);
} else
{return and__3574__auto____2616;
}
} else
{return and__3574__auto____2615;
}
})());
});
var ep1__2661 = (function() {
var G__2663__delegate = function (x,y,z,args){
return cljs.core.boolean$.call(null,(function (){var and__3574__auto____2617 = ep1.call(null,x,y,z);
if(cljs.core.truth_(and__3574__auto____2617))
{return cljs.core.every_QMARK_.call(null,p,args);
} else
{return and__3574__auto____2617;
}
})());
};
var G__2663 = function (x,y,z,var_args){
var args = null;
if (goog.isDef(var_args)) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
}
return G__2663__delegate.call(this, x, y, z, args);
};
G__2663.cljs$lang$maxFixedArity = 3;
G__2663.cljs$lang$applyTo = (function (arglist__2664){
var x = cljs.core.first(arglist__2664);
var y = cljs.core.first(cljs.core.next(arglist__2664));
var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__2664)));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__2664)));
return G__2663__delegate.call(this, x, y, z, args);
});
return G__2663;
})()
;
ep1 = function(x,y,z,var_args){
var args = var_args;
switch(arguments.length){
case 0 :
return ep1__2657.call(this);
case 1 :
return ep1__2658.call(this,x);
case 2 :
return ep1__2659.call(this,x,y);
case 3 :
return ep1__2660.call(this,x,y,z);
default:
return ep1__2661.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
ep1.cljs$lang$maxFixedArity = 3;
ep1.cljs$lang$applyTo = ep1__2661.cljs$lang$applyTo;
return ep1;
})()
});
var every_pred__2653 = (function (p1,p2){
return (function() {
var ep2 = null;
var ep2__2665 = (function (){
return true;
});
var ep2__2666 = (function (x){
return cljs.core.boolean$.call(null,(function (){var and__3574__auto____2618 = p1.call(null,x);
if(cljs.core.truth_(and__3574__auto____2618))
{return p2.call(null,x);
} else
{return and__3574__auto____2618;
}
})());
});
var ep2__2667 = (function (x,y){
return cljs.core.boolean$.call(null,(function (){var and__3574__auto____2619 = p1.call(null,x);
if(cljs.core.truth_(and__3574__auto____2619))
{var and__3574__auto____2620 = p1.call(null,y);
if(cljs.core.truth_(and__3574__auto____2620))
{var and__3574__auto____2621 = p2.call(null,x);
if(cljs.core.truth_(and__3574__auto____2621))
{return p2.call(null,y);
} else
{return and__3574__auto____2621;
}
} else
{return and__3574__auto____2620;
}
} else
{return and__3574__auto____2619;
}
})());
});
var ep2__2668 = (function (x,y,z){
return cljs.core.boolean$.call(null,(function (){var and__3574__auto____2622 = p1.call(null,x);
if(cljs.core.truth_(and__3574__auto____2622))
{var and__3574__auto____2623 = p1.call(null,y);
if(cljs.core.truth_(and__3574__auto____2623))
{var and__3574__auto____2624 = p1.call(null,z);
if(cljs.core.truth_(and__3574__auto____2624))
{var and__3574__auto____2625 = p2.call(null,x);
if(cljs.core.truth_(and__3574__auto____2625))
{var and__3574__auto____2626 = p2.call(null,y);
if(cljs.core.truth_(and__3574__auto____2626))
{return p2.call(null,z);
} else
{return and__3574__auto____2626;
}
} else
{return and__3574__auto____2625;
}
} else
{return and__3574__auto____2624;
}
} else
{return and__3574__auto____2623;
}
} else
{return and__3574__auto____2622;
}
})());
});
var ep2__2669 = (function() {
var G__2671__delegate = function (x,y,z,args){
return cljs.core.boolean$.call(null,(function (){var and__3574__auto____2627 = ep2.call(null,x,y,z);
if(cljs.core.truth_(and__3574__auto____2627))
{return cljs.core.every_QMARK_.call(null,(function (p1__2598_SHARP_){
var and__3574__auto____2628 = p1.call(null,p1__2598_SHARP_);
if(cljs.core.truth_(and__3574__auto____2628))
{return p2.call(null,p1__2598_SHARP_);
} else
{return and__3574__auto____2628;
}
}),args);
} else
{return and__3574__auto____2627;
}
})());
};
var G__2671 = function (x,y,z,var_args){
var args = null;
if (goog.isDef(var_args)) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
}
return G__2671__delegate.call(this, x, y, z, args);
};
G__2671.cljs$lang$maxFixedArity = 3;
G__2671.cljs$lang$applyTo = (function (arglist__2672){
var x = cljs.core.first(arglist__2672);
var y = cljs.core.first(cljs.core.next(arglist__2672));
var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__2672)));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__2672)));
return G__2671__delegate.call(this, x, y, z, args);
});
return G__2671;
})()
;
ep2 = function(x,y,z,var_args){
var args = var_args;
switch(arguments.length){
case 0 :
return ep2__2665.call(this);
case 1 :
return ep2__2666.call(this,x);
case 2 :
return ep2__2667.call(this,x,y);
case 3 :
return ep2__2668.call(this,x,y,z);
default:
return ep2__2669.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
ep2.cljs$lang$maxFixedArity = 3;
ep2.cljs$lang$applyTo = ep2__2669.cljs$lang$applyTo;
return ep2;
})()
});
var every_pred__2654 = (function (p1,p2,p3){
return (function() {
var ep3 = null;
var ep3__2673 = (function (){
return true;
});
var ep3__2674 = (function (x){
return cljs.core.boolean$.call(null,(function (){var and__3574__auto____2629 = p1.call(null,x);
if(cljs.core.truth_(and__3574__auto____2629))
{var and__3574__auto____2630 = p2.call(null,x);
if(cljs.core.truth_(and__3574__auto____2630))
{return p3.call(null,x);
} else
{return and__3574__auto____2630;
}
} else
{return and__3574__auto____2629;
}
})());
});
var ep3__2675 = (function (x,y){
return cljs.core.boolean$.call(null,(function (){var and__3574__auto____2631 = p1.call(null,x);
if(cljs.core.truth_(and__3574__auto____2631))
{var and__3574__auto____2632 = p2.call(null,x);
if(cljs.core.truth_(and__3574__auto____2632))
{var and__3574__auto____2633 = p3.call(null,x);
if(cljs.core.truth_(and__3574__auto____2633))
{var and__3574__auto____2634 = p1.call(null,y);
if(cljs.core.truth_(and__3574__auto____2634))
{var and__3574__auto____2635 = p2.call(null,y);
if(cljs.core.truth_(and__3574__auto____2635))
{return p3.call(null,y);
} else
{return and__3574__auto____2635;
}
} else
{return and__3574__auto____2634;
}
} else
{return and__3574__auto____2633;
}
} else
{return and__3574__auto____2632;
}
} else
{return and__3574__auto____2631;
}
})());
});
var ep3__2676 = (function (x,y,z){
return cljs.core.boolean$.call(null,(function (){var and__3574__auto____2636 = p1.call(null,x);
if(cljs.core.truth_(and__3574__auto____2636))
{var and__3574__auto____2637 = p2.call(null,x);
if(cljs.core.truth_(and__3574__auto____2637))
{var and__3574__auto____2638 = p3.call(null,x);
if(cljs.core.truth_(and__3574__auto____2638))
{var and__3574__auto____2639 = p1.call(null,y);
if(cljs.core.truth_(and__3574__auto____2639))
{var and__3574__auto____2640 = p2.call(null,y);
if(cljs.core.truth_(and__3574__auto____2640))
{var and__3574__auto____2641 = p3.call(null,y);
if(cljs.core.truth_(and__3574__auto____2641))
{var and__3574__auto____2642 = p1.call(null,z);
if(cljs.core.truth_(and__3574__auto____2642))
{var and__3574__auto____2643 = p2.call(null,z);
if(cljs.core.truth_(and__3574__auto____2643))
{return p3.call(null,z);
} else
{return and__3574__auto____2643;
}
} else
{return and__3574__auto____2642;
}
} else
{return and__3574__auto____2641;
}
} else
{return and__3574__auto____2640;
}
} else
{return and__3574__auto____2639;
}
} else
{return and__3574__auto____2638;
}
} else
{return and__3574__auto____2637;
}
} else
{return and__3574__auto____2636;
}
})());
});
var ep3__2677 = (function() {
var G__2679__delegate = function (x,y,z,args){
return cljs.core.boolean$.call(null,(function (){var and__3574__auto____2644 = ep3.call(null,x,y,z);
if(cljs.core.truth_(and__3574__auto____2644))
{return cljs.core.every_QMARK_.call(null,(function (p1__2599_SHARP_){
var and__3574__auto____2645 = p1.call(null,p1__2599_SHARP_);
if(cljs.core.truth_(and__3574__auto____2645))
{var and__3574__auto____2646 = p2.call(null,p1__2599_SHARP_);
if(cljs.core.truth_(and__3574__auto____2646))
{return p3.call(null,p1__2599_SHARP_);
} else
{return and__3574__auto____2646;
}
} else
{return and__3574__auto____2645;
}
}),args);
} else
{return and__3574__auto____2644;
}
})());
};
var G__2679 = function (x,y,z,var_args){
var args = null;
if (goog.isDef(var_args)) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
}
return G__2679__delegate.call(this, x, y, z, args);
};
G__2679.cljs$lang$maxFixedArity = 3;
G__2679.cljs$lang$applyTo = (function (arglist__2680){
var x = cljs.core.first(arglist__2680);
var y = cljs.core.first(cljs.core.next(arglist__2680));
var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__2680)));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__2680)));
return G__2679__delegate.call(this, x, y, z, args);
});
return G__2679;
})()
;
ep3 = function(x,y,z,var_args){
var args = var_args;
switch(arguments.length){
case 0 :
return ep3__2673.call(this);
case 1 :
return ep3__2674.call(this,x);
case 2 :
return ep3__2675.call(this,x,y);
case 3 :
return ep3__2676.call(this,x,y,z);
default:
return ep3__2677.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
ep3.cljs$lang$maxFixedArity = 3;
ep3.cljs$lang$applyTo = ep3__2677.cljs$lang$applyTo;
return ep3;
})()
});
var every_pred__2655 = (function() {
var G__2681__delegate = function (p1,p2,p3,ps){
var ps__2647 = cljs.core.list_STAR_.call(null,p1,p2,p3,ps);
return (function() {
var epn = null;
var epn__2682 = (function (){
return true;
});
var epn__2683 = (function (x){
return cljs.core.every_QMARK_.call(null,(function (p1__2600_SHARP_){
return p1__2600_SHARP_.call(null,x);
}),ps__2647);
});
var epn__2684 = (function (x,y){
return cljs.core.every_QMARK_.call(null,(function (p1__2601_SHARP_){
var and__3574__auto____2648 = p1__2601_SHARP_.call(null,x);
if(cljs.core.truth_(and__3574__auto____2648))
{return p1__2601_SHARP_.call(null,y);
} else
{return and__3574__auto____2648;
}
}),ps__2647);
});
var epn__2685 = (function (x,y,z){
return cljs.core.every_QMARK_.call(null,(function (p1__2602_SHARP_){
var and__3574__auto____2649 = p1__2602_SHARP_.call(null,x);
if(cljs.core.truth_(and__3574__auto____2649))
{var and__3574__auto____2650 = p1__2602_SHARP_.call(null,y);
if(cljs.core.truth_(and__3574__auto____2650))
{return p1__2602_SHARP_.call(null,z);
} else
{return and__3574__auto____2650;
}
} else
{return and__3574__auto____2649;
}
}),ps__2647);
});
var epn__2686 = (function() {
var G__2688__delegate = function (x,y,z,args){
return cljs.core.boolean$.call(null,(function (){var and__3574__auto____2651 = epn.call(null,x,y,z);
if(cljs.core.truth_(and__3574__auto____2651))
{return cljs.core.every_QMARK_.call(null,(function (p1__2603_SHARP_){
return cljs.core.every_QMARK_.call(null,p1__2603_SHARP_,args);
}),ps__2647);
} else
{return and__3574__auto____2651;
}
})());
};
var G__2688 = function (x,y,z,var_args){
var args = null;
if (goog.isDef(var_args)) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
}
return G__2688__delegate.call(this, x, y, z, args);
};
G__2688.cljs$lang$maxFixedArity = 3;
G__2688.cljs$lang$applyTo = (function (arglist__2689){
var x = cljs.core.first(arglist__2689);
var y = cljs.core.first(cljs.core.next(arglist__2689));
var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__2689)));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__2689)));
return G__2688__delegate.call(this, x, y, z, args);
});
return G__2688;
})()
;
epn = function(x,y,z,var_args){
var args = var_args;
switch(arguments.length){
case 0 :
return epn__2682.call(this);
case 1 :
return epn__2683.call(this,x);
case 2 :
return epn__2684.call(this,x,y);
case 3 :
return epn__2685.call(this,x,y,z);
default:
return epn__2686.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
epn.cljs$lang$maxFixedArity = 3;
epn.cljs$lang$applyTo = epn__2686.cljs$lang$applyTo;
return epn;
})()
};
var G__2681 = function (p1,p2,p3,var_args){
var ps = null;
if (goog.isDef(var_args)) {
ps = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
}
return G__2681__delegate.call(this, p1, p2, p3, ps);
};
G__2681.cljs$lang$maxFixedArity = 3;
G__2681.cljs$lang$applyTo = (function (arglist__2690){
var p1 = cljs.core.first(arglist__2690);
var p2 = cljs.core.first(cljs.core.next(arglist__2690));
var p3 = cljs.core.first(cljs.core.next(cljs.core.next(arglist__2690)));
var ps = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__2690)));
return G__2681__delegate.call(this, p1, p2, p3, ps);
});
return G__2681;
})()
;
every_pred = function(p1,p2,p3,var_args){
var ps = var_args;
switch(arguments.length){
case 1 :
return every_pred__2652.call(this,p1);
case 2 :
return every_pred__2653.call(this,p1,p2);
case 3 :
return every_pred__2654.call(this,p1,p2,p3);
default:
return every_pred__2655.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
every_pred.cljs$lang$maxFixedArity = 3;
every_pred.cljs$lang$applyTo = every_pred__2655.cljs$lang$applyTo;
return every_pred;
})()
;
/**
* Takes a set of predicates and returns a function f that returns the first logical true value
* returned by one of its composing predicates against any of its arguments, else it returns
* logical false. Note that f is short-circuiting in that it will stop execution on the first
* argument that triggers a logical true result against the original predicates.
* @param {...*} var_args
*/
cljs.core.some_fn = (function() {
var some_fn = null;
var some_fn__2730 = (function (p){
return (function() {
var sp1 = null;
var sp1__2735 = (function (){
return null;
});
var sp1__2736 = (function (x){
return p.call(null,x);
});
var sp1__2737 = (function (x,y){
var or__3576__auto____2692 = p.call(null,x);
if(cljs.core.truth_(or__3576__auto____2692))
{return or__3576__auto____2692;
} else
{return p.call(null,y);
}
});
var sp1__2738 = (function (x,y,z){
var or__3576__auto____2693 = p.call(null,x);
if(cljs.core.truth_(or__3576__auto____2693))
{return or__3576__auto____2693;
} else
{var or__3576__auto____2694 = p.call(null,y);
if(cljs.core.truth_(or__3576__auto____2694))
{return or__3576__auto____2694;
} else
{return p.call(null,z);
}
}
});
var sp1__2739 = (function() {
var G__2741__delegate = function (x,y,z,args){
var or__3576__auto____2695 = sp1.call(null,x,y,z);
if(cljs.core.truth_(or__3576__auto____2695))
{return or__3576__auto____2695;
} else
{return cljs.core.some.call(null,p,args);
}
};
var G__2741 = function (x,y,z,var_args){
var args = null;
if (goog.isDef(var_args)) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
}
return G__2741__delegate.call(this, x, y, z, args);
};
G__2741.cljs$lang$maxFixedArity = 3;
G__2741.cljs$lang$applyTo = (function (arglist__2742){
var x = cljs.core.first(arglist__2742);
var y = cljs.core.first(cljs.core.next(arglist__2742));
var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__2742)));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__2742)));
return G__2741__delegate.call(this, x, y, z, args);
});
return G__2741;
})()
;
sp1 = function(x,y,z,var_args){
var args = var_args;
switch(arguments.length){
case 0 :
return sp1__2735.call(this);
case 1 :
return sp1__2736.call(this,x);
case 2 :
return sp1__2737.call(this,x,y);
case 3 :
return sp1__2738.call(this,x,y,z);
default:
return sp1__2739.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
sp1.cljs$lang$maxFixedArity = 3;
sp1.cljs$lang$applyTo = sp1__2739.cljs$lang$applyTo;
return sp1;
})()
});
var some_fn__2731 = (function (p1,p2){
return (function() {
var sp2 = null;
var sp2__2743 = (function (){
return null;
});
var sp2__2744 = (function (x){
var or__3576__auto____2696 = p1.call(null,x);
if(cljs.core.truth_(or__3576__auto____2696))
{return or__3576__auto____2696;
} else
{return p2.call(null,x);
}
});
var sp2__2745 = (function (x,y){
var or__3576__auto____2697 = p1.call(null,x);
if(cljs.core.truth_(or__3576__auto____2697))
{return or__3576__auto____2697;
} else
{var or__3576__auto____2698 = p1.call(null,y);
if(cljs.core.truth_(or__3576__auto____2698))
{return or__3576__auto____2698;
} else
{var or__3576__auto____2699 = p2.call(null,x);
if(cljs.core.truth_(or__3576__auto____2699))
{return or__3576__auto____2699;
} else
{return p2.call(null,y);
}
}
}
});
var sp2__2746 = (function (x,y,z){
var or__3576__auto____2700 = p1.call(null,x);
if(cljs.core.truth_(or__3576__auto____2700))
{return or__3576__auto____2700;
} else
{var or__3576__auto____2701 = p1.call(null,y);
if(cljs.core.truth_(or__3576__auto____2701))
{return or__3576__auto____2701;
} else
{var or__3576__auto____2702 = p1.call(null,z);
if(cljs.core.truth_(or__3576__auto____2702))
{return or__3576__auto____2702;
} else
{var or__3576__auto____2703 = p2.call(null,x);
if(cljs.core.truth_(or__3576__auto____2703))
{return or__3576__auto____2703;
} else
{var or__3576__auto____2704 = p2.call(null,y);
if(cljs.core.truth_(or__3576__auto____2704))
{return or__3576__auto____2704;
} else
{return p2.call(null,z);
}
}
}
}
}
});
var sp2__2747 = (function() {
var G__2749__delegate = function (x,y,z,args){
var or__3576__auto____2705 = sp2.call(null,x,y,z);
if(cljs.core.truth_(or__3576__auto____2705))
{return or__3576__auto____2705;
} else
{return cljs.core.some.call(null,(function (p1__2608_SHARP_){
var or__3576__auto____2706 = p1.call(null,p1__2608_SHARP_);
if(cljs.core.truth_(or__3576__auto____2706))
{return or__3576__auto____2706;
} else
{return p2.call(null,p1__2608_SHARP_);
}
}),args);
}
};
var G__2749 = function (x,y,z,var_args){
var args = null;
if (goog.isDef(var_args)) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
}
return G__2749__delegate.call(this, x, y, z, args);
};
G__2749.cljs$lang$maxFixedArity = 3;
G__2749.cljs$lang$applyTo = (function (arglist__2750){
var x = cljs.core.first(arglist__2750);
var y = cljs.core.first(cljs.core.next(arglist__2750));
var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__2750)));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__2750)));
return G__2749__delegate.call(this, x, y, z, args);
});
return G__2749;
})()
;
sp2 = function(x,y,z,var_args){
var args = var_args;
switch(arguments.length){
case 0 :
return sp2__2743.call(this);
case 1 :
return sp2__2744.call(this,x);
case 2 :
return sp2__2745.call(this,x,y);
case 3 :
return sp2__2746.call(this,x,y,z);
default:
return sp2__2747.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
sp2.cljs$lang$maxFixedArity = 3;
sp2.cljs$lang$applyTo = sp2__2747.cljs$lang$applyTo;
return sp2;
})()
});
var some_fn__2732 = (function (p1,p2,p3){
return (function() {
var sp3 = null;
var sp3__2751 = (function (){
return null;
});
var sp3__2752 = (function (x){
var or__3576__auto____2707 = p1.call(null,x);
if(cljs.core.truth_(or__3576__auto____2707))
{return or__3576__auto____2707;
} else
{var or__3576__auto____2708 = p2.call(null,x);
if(cljs.core.truth_(or__3576__auto____2708))
{return or__3576__auto____2708;
} else
{return p3.call(null,x);
}
}
});
var sp3__2753 = (function (x,y){
var or__3576__auto____2709 = p1.call(null,x);
if(cljs.core.truth_(or__3576__auto____2709))
{return or__3576__auto____2709;
} else
{var or__3576__auto____2710 = p2.call(null,x);
if(cljs.core.truth_(or__3576__auto____2710))
{return or__3576__auto____2710;
} else
{var or__3576__auto____2711 = p3.call(null,x);
if(cljs.core.truth_(or__3576__auto____2711))
{return or__3576__auto____2711;
} else
{var or__3576__auto____2712 = p1.call(null,y);
if(cljs.core.truth_(or__3576__auto____2712))
{return or__3576__auto____2712;
} else
{var or__3576__auto____2713 = p2.call(null,y);
if(cljs.core.truth_(or__3576__auto____2713))
{return or__3576__auto____2713;
} else
{return p3.call(null,y);
}
}
}
}
}
});
var sp3__2754 = (function (x,y,z){
var or__3576__auto____2714 = p1.call(null,x);
if(cljs.core.truth_(or__3576__auto____2714))
{return or__3576__auto____2714;
} else
{var or__3576__auto____2715 = p2.call(null,x);
if(cljs.core.truth_(or__3576__auto____2715))
{return or__3576__auto____2715;
} else
{var or__3576__auto____2716 = p3.call(null,x);
if(cljs.core.truth_(or__3576__auto____2716))
{return or__3576__auto____2716;
} else
{var or__3576__auto____2717 = p1.call(null,y);
if(cljs.core.truth_(or__3576__auto____2717))
{return or__3576__auto____2717;
} else
{var or__3576__auto____2718 = p2.call(null,y);
if(cljs.core.truth_(or__3576__auto____2718))
{return or__3576__auto____2718;
} else
{var or__3576__auto____2719 = p3.call(null,y);
if(cljs.core.truth_(or__3576__auto____2719))
{return or__3576__auto____2719;
} else
{var or__3576__auto____2720 = p1.call(null,z);
if(cljs.core.truth_(or__3576__auto____2720))
{return or__3576__auto____2720;
} else
{var or__3576__auto____2721 = p2.call(null,z);
if(cljs.core.truth_(or__3576__auto____2721))
{return or__3576__auto____2721;
} else
{return p3.call(null,z);
}
}
}
}
}
}
}
}
});
var sp3__2755 = (function() {
var G__2757__delegate = function (x,y,z,args){
var or__3576__auto____2722 = sp3.call(null,x,y,z);
if(cljs.core.truth_(or__3576__auto____2722))
{return or__3576__auto____2722;
} else
{return cljs.core.some.call(null,(function (p1__2609_SHARP_){
var or__3576__auto____2723 = p1.call(null,p1__2609_SHARP_);
if(cljs.core.truth_(or__3576__auto____2723))
{return or__3576__auto____2723;
} else
{var or__3576__auto____2724 = p2.call(null,p1__2609_SHARP_);
if(cljs.core.truth_(or__3576__auto____2724))
{return or__3576__auto____2724;
} else
{return p3.call(null,p1__2609_SHARP_);
}
}
}),args);
}
};
var G__2757 = function (x,y,z,var_args){
var args = null;
if (goog.isDef(var_args)) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
}
return G__2757__delegate.call(this, x, y, z, args);
};
G__2757.cljs$lang$maxFixedArity = 3;
G__2757.cljs$lang$applyTo = (function (arglist__2758){
var x = cljs.core.first(arglist__2758);
var y = cljs.core.first(cljs.core.next(arglist__2758));
var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__2758)));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__2758)));
return G__2757__delegate.call(this, x, y, z, args);
});
return G__2757;
})()
;
sp3 = function(x,y,z,var_args){
var args = var_args;
switch(arguments.length){
case 0 :
return sp3__2751.call(this);
case 1 :
return sp3__2752.call(this,x);
case 2 :
return sp3__2753.call(this,x,y);
case 3 :
return sp3__2754.call(this,x,y,z);
default:
return sp3__2755.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
sp3.cljs$lang$maxFixedArity = 3;
sp3.cljs$lang$applyTo = sp3__2755.cljs$lang$applyTo;
return sp3;
})()
});
var some_fn__2733 = (function() {
var G__2759__delegate = function (p1,p2,p3,ps){
var ps__2725 = cljs.core.list_STAR_.call(null,p1,p2,p3,ps);
return (function() {
var spn = null;
var spn__2760 = (function (){
return null;
});
var spn__2761 = (function (x){
return cljs.core.some.call(null,(function (p1__2610_SHARP_){
return p1__2610_SHARP_.call(null,x);
}),ps__2725);
});
var spn__2762 = (function (x,y){
return cljs.core.some.call(null,(function (p1__2611_SHARP_){
var or__3576__auto____2726 = p1__2611_SHARP_.call(null,x);
if(cljs.core.truth_(or__3576__auto____2726))
{return or__3576__auto____2726;
} else
{return p1__2611_SHARP_.call(null,y);
}
}),ps__2725);
});
var spn__2763 = (function (x,y,z){
return cljs.core.some.call(null,(function (p1__2612_SHARP_){
var or__3576__auto____2727 = p1__2612_SHARP_.call(null,x);
if(cljs.core.truth_(or__3576__auto____2727))
{return or__3576__auto____2727;
} else
{var or__3576__auto____2728 = p1__2612_SHARP_.call(null,y);
if(cljs.core.truth_(or__3576__auto____2728))
{return or__3576__auto____2728;
} else
{return p1__2612_SHARP_.call(null,z);
}
}
}),ps__2725);
});
var spn__2764 = (function() {
var G__2766__delegate = function (x,y,z,args){
var or__3576__auto____2729 = spn.call(null,x,y,z);
if(cljs.core.truth_(or__3576__auto____2729))
{return or__3576__auto____2729;
} else
{return cljs.core.some.call(null,(function (p1__2613_SHARP_){
return cljs.core.some.call(null,p1__2613_SHARP_,args);
}),ps__2725);
}
};
var G__2766 = function (x,y,z,var_args){
var args = null;
if (goog.isDef(var_args)) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
}
return G__2766__delegate.call(this, x, y, z, args);
};
G__2766.cljs$lang$maxFixedArity = 3;
G__2766.cljs$lang$applyTo = (function (arglist__2767){
var x = cljs.core.first(arglist__2767);
var y = cljs.core.first(cljs.core.next(arglist__2767));
var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__2767)));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__2767)));
return G__2766__delegate.call(this, x, y, z, args);
});
return G__2766;
})()
;
spn = function(x,y,z,var_args){
var args = var_args;
switch(arguments.length){
case 0 :
return spn__2760.call(this);
case 1 :
return spn__2761.call(this,x);
case 2 :
return spn__2762.call(this,x,y);
case 3 :
return spn__2763.call(this,x,y,z);
default:
return spn__2764.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
spn.cljs$lang$maxFixedArity = 3;
spn.cljs$lang$applyTo = spn__2764.cljs$lang$applyTo;
return spn;
})()
};
var G__2759 = function (p1,p2,p3,var_args){
var ps = null;
if (goog.isDef(var_args)) {
ps = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
}
return G__2759__delegate.call(this, p1, p2, p3, ps);
};
G__2759.cljs$lang$maxFixedArity = 3;
G__2759.cljs$lang$applyTo = (function (arglist__2768){
var p1 = cljs.core.first(arglist__2768);
var p2 = cljs.core.first(cljs.core.next(arglist__2768));
var p3 = cljs.core.first(cljs.core.next(cljs.core.next(arglist__2768)));
var ps = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__2768)));
return G__2759__delegate.call(this, p1, p2, p3, ps);
});
return G__2759;
})()
;
some_fn = function(p1,p2,p3,var_args){
var ps = var_args;
switch(arguments.length){
case 1 :
return some_fn__2730.call(this,p1);
case 2 :
return some_fn__2731.call(this,p1,p2);
case 3 :
return some_fn__2732.call(this,p1,p2,p3);
default:
return some_fn__2733.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
some_fn.cljs$lang$maxFixedArity = 3;
some_fn.cljs$lang$applyTo = some_fn__2733.cljs$lang$applyTo;
return some_fn;
})()
;
/**
* Returns a lazy sequence consisting of the result of applying f to the
* set of first items of each coll, followed by applying f to the set
* of second items in each coll, until any one of the colls is
* exhausted. Any remaining items in other colls are ignored. Function
* f should accept number-of-colls arguments.
* @param {...*} var_args
*/
cljs.core.map = (function() {
var map = null;
var map__2781 = (function (f,coll){
return (new cljs.core.LazySeq(null,false,(function (){
var temp__3726__auto____2769 = cljs.core.seq.call(null,coll);
if(cljs.core.truth_(temp__3726__auto____2769))
{var s__2770 = temp__3726__auto____2769;
return cljs.core.cons.call(null,f.call(null,cljs.core.first.call(null,s__2770)),map.call(null,f,cljs.core.rest.call(null,s__2770)));
} else
{return null;
}
})));
});
var map__2782 = (function (f,c1,c2){
return (new cljs.core.LazySeq(null,false,(function (){
var s1__2771 = cljs.core.seq.call(null,c1);
var s2__2772 = cljs.core.seq.call(null,c2);
if(cljs.core.truth_((function (){var and__3574__auto____2773 = s1__2771;
if(cljs.core.truth_(and__3574__auto____2773))
{return s2__2772;
} else
{return and__3574__auto____2773;
}
})()))
{return cljs.core.cons.call(null,f.call(null,cljs.core.first.call(null,s1__2771),cljs.core.first.call(null,s2__2772)),map.call(null,f,cljs.core.rest.call(null,s1__2771),cljs.core.rest.call(null,s2__2772)));
} else
{return null;
}
})));
});
var map__2783 = (function (f,c1,c2,c3){
return (new cljs.core.LazySeq(null,false,(function (){
var s1__2774 = cljs.core.seq.call(null,c1);
var s2__2775 = cljs.core.seq.call(null,c2);
var s3__2776 = cljs.core.seq.call(null,c3);
if(cljs.core.truth_((function (){var and__3574__auto____2777 = s1__2774;
if(cljs.core.truth_(and__3574__auto____2777))
{var and__3574__auto____2778 = s2__2775;
if(cljs.core.truth_(and__3574__auto____2778))
{return s3__2776;
} else
{return and__3574__auto____2778;
}
} else
{return and__3574__auto____2777;
}
})()))
{return cljs.core.cons.call(null,f.call(null,cljs.core.first.call(null,s1__2774),cljs.core.first.call(null,s2__2775),cljs.core.first.call(null,s3__2776)),map.call(null,f,cljs.core.rest.call(null,s1__2774),cljs.core.rest.call(null,s2__2775),cljs.core.rest.call(null,s3__2776)));
} else
{return null;
}
})));
});
var map__2784 = (function() {
var G__2786__delegate = function (f,c1,c2,c3,colls){
var step__2780 = (function step(cs){
return (new cljs.core.LazySeq(null,false,(function (){
var ss__2779 = map.call(null,cljs.core.seq,cs);
if(cljs.core.truth_(cljs.core.every_QMARK_.call(null,cljs.core.identity,ss__2779)))
{return cljs.core.cons.call(null,map.call(null,cljs.core.first,ss__2779),step.call(null,map.call(null,cljs.core.rest,ss__2779)));
} else
{return null;
}
})));
});
return map.call(null,(function (p1__2691_SHARP_){
return cljs.core.apply.call(null,f,p1__2691_SHARP_);
}),step__2780.call(null,cljs.core.conj.call(null,colls,c3,c2,c1)));
};
var G__2786 = function (f,c1,c2,c3,var_args){
var colls = null;
if (goog.isDef(var_args)) {
colls = cljs.core.array_seq(Array.prototype.slice.call(arguments, 4),0);
}
return G__2786__delegate.call(this, f, c1, c2, c3, colls);
};
G__2786.cljs$lang$maxFixedArity = 4;
G__2786.cljs$lang$applyTo = (function (arglist__2787){
var f = cljs.core.first(arglist__2787);
var c1 = cljs.core.first(cljs.core.next(arglist__2787));
var c2 = cljs.core.first(cljs.core.next(cljs.core.next(arglist__2787)));
var c3 = cljs.core.first(cljs.core.next(cljs.core.next(cljs.core.next(arglist__2787))));
var colls = cljs.core.rest(cljs.core.next(cljs.core.next(cljs.core.next(arglist__2787))));
return G__2786__delegate.call(this, f, c1, c2, c3, colls);
});
return G__2786;
})()
;
map = function(f,c1,c2,c3,var_args){
var colls = var_args;
switch(arguments.length){
case 2 :
return map__2781.call(this,f,c1);
case 3 :
return map__2782.call(this,f,c1,c2);
case 4 :
return map__2783.call(this,f,c1,c2,c3);
default:
return map__2784.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
map.cljs$lang$maxFixedArity = 4;
map.cljs$lang$applyTo = map__2784.cljs$lang$applyTo;
return map;
})()
;
/**
* Returns a lazy sequence of the first n items in coll, or all items if
* there are fewer than n.
*/
cljs.core.take = (function take(n,coll){
return (new cljs.core.LazySeq(null,false,(function (){
if(cljs.core.truth_(cljs.core.pos_QMARK_.call(null,n)))
{var temp__3726__auto____2788 = cljs.core.seq.call(null,coll);
if(cljs.core.truth_(temp__3726__auto____2788))
{var s__2789 = temp__3726__auto____2788;
return cljs.core.cons.call(null,cljs.core.first.call(null,s__2789),take.call(null,cljs.core.dec.call(null,n),cljs.core.rest.call(null,s__2789)));
} else
{return null;
}
} else
{return null;
}
})));
});
/**
* Returns a lazy sequence of all but the first n items in coll.
*/
cljs.core.drop = (function drop(n,coll){
var step__2792 = (function (n,coll){
var G__2793,G__2794;G__2793=G__2794=new Object();
while(G__2793===G__2794){
G__2793=(function(continue_val){
var s__2790 = cljs.core.seq.call(null,coll);
if(cljs.core.truth_((function (){var and__3574__auto____2791 = cljs.core.pos_QMARK_.call(null,n);
if(cljs.core.truth_(and__3574__auto____2791))
{return s__2790;
} else
{return and__3574__auto____2791;
}
})()))
{{
var G__2795 = cljs.core.dec.call(null,n);
var G__2796 = cljs.core.rest.call(null,s__2790);
n = G__2795;
coll = G__2796;
return continue_val;
}
} else
{return s__2790;
}
})(G__2794);}
return G__2793;
});
return (new cljs.core.LazySeq(null,false,(function (){
return step__2792.call(null,n,coll);
})));
});
/**
* Return a lazy sequence of all but the last n (default 1) items in coll
*/
cljs.core.drop_last = (function() {
var drop_last = null;
var drop_last__2797 = (function (s){
return drop_last.call(null,1,s);
});
var drop_last__2798 = (function (n,s){
return cljs.core.map.call(null,(function (x,_){
return x;
}),s,cljs.core.drop.call(null,n,s));
});
drop_last = function(n,s){
switch(arguments.length){
case 1 :
return drop_last__2797.call(this,n);
case 2 :
return drop_last__2798.call(this,n,s);
}
throw('Invalid arity: ' + arguments.length);
};
return drop_last;
})()
;
/**
* Returns a seq of the last n items in coll. Depending on the type
* of coll may be no better than linear time. For vectors, see also subvec.
*/
cljs.core.take_last = (function take_last(n,coll){
var s__2800 = cljs.core.seq.call(null,coll);
var lead__2801 = cljs.core.seq.call(null,cljs.core.drop.call(null,n,coll));
var G__2802,G__2803;G__2802=G__2803=new Object();
while(G__2802===G__2803){
G__2802=(function(continue_val){
if(cljs.core.truth_(lead__2801))
{{
var G__2804 = cljs.core.next.call(null,s__2800);
var G__2805 = cljs.core.next.call(null,lead__2801);
s__2800 = G__2804;
lead__2801 = G__2805;
return continue_val;
}
} else
{return s__2800;
}
})(G__2803);}
return G__2802;
});
/**
* Returns a lazy sequence of the items in coll starting from the first
* item for which (pred item) returns nil.
*/
cljs.core.drop_while = (function drop_while(pred,coll){
var step__2808 = (function (pred,coll){
var G__2809,G__2810;G__2809=G__2810=new Object();
while(G__2809===G__2810){
G__2809=(function(continue_val){
var s__2806 = cljs.core.seq.call(null,coll);
if(cljs.core.truth_((function (){var and__3574__auto____2807 = s__2806;
if(cljs.core.truth_(and__3574__auto____2807))
{return pred.call(null,cljs.core.first.call(null,s__2806));
} else
{return and__3574__auto____2807;
}
})()))
{{
var G__2811 = pred;
var G__2812 = cljs.core.rest.call(null,s__2806);
pred = G__2811;
coll = G__2812;
return continue_val;
}
} else
{return s__2806;
}
})(G__2810);}
return G__2809;
});
return (new cljs.core.LazySeq(null,false,(function (){
return step__2808.call(null,pred,coll);
})));
});
/**
* Returns a lazy (infinite!) sequence of repetitions of the items in coll.
*/
cljs.core.cycle = (function cycle(coll){
return (new cljs.core.LazySeq(null,false,(function (){
var temp__3726__auto____2813 = cljs.core.seq.call(null,coll);
if(cljs.core.truth_(temp__3726__auto____2813))
{var s__2814 = temp__3726__auto____2813;
return cljs.core.concat.call(null,s__2814,cycle.call(null,s__2814));
} else
{return null;
}
})));
});
/**
* Returns a vector of [(take n coll) (drop n coll)]
*/
cljs.core.split_at = (function split_at(n,coll){
return cljs.core.Vector.fromArray([cljs.core.take.call(null,n,coll),cljs.core.drop.call(null,n,coll)]);
});
/**
* Returns a lazy (infinite!, or length n if supplied) sequence of xs.
*/
cljs.core.repeat = (function() {
var repeat = null;
var repeat__2815 = (function (x){
return (new cljs.core.LazySeq(null,false,(function (){
return cljs.core.cons.call(null,x,repeat.call(null,x));
})));
});
var repeat__2816 = (function (n,x){
return cljs.core.take.call(null,n,repeat.call(null,x));
});
repeat = function(n,x){
switch(arguments.length){
case 1 :
return repeat__2815.call(this,n);
case 2 :
return repeat__2816.call(this,n,x);
}
throw('Invalid arity: ' + arguments.length);
};
return repeat;
})()
;
/**
* Returns a lazy seq of n xs.
*/
cljs.core.replicate = (function replicate(n,x){
return cljs.core.take.call(null,n,cljs.core.repeat.call(null,x));
});
/**
* Takes a function of no args, presumably with side effects, and
* returns an infinite (or length n if supplied) lazy sequence of calls
* to it
*/
cljs.core.repeatedly = (function() {
var repeatedly = null;
var repeatedly__2818 = (function (f){
return (new cljs.core.LazySeq(null,false,(function (){
return cljs.core.cons.call(null,f.call(null),repeatedly.call(null,f));
})));
});
var repeatedly__2819 = (function (n,f){
return cljs.core.take.call(null,n,repeatedly.call(null,f));
});
repeatedly = function(n,f){
switch(arguments.length){
case 1 :
return repeatedly__2818.call(this,n);
case 2 :
return repeatedly__2819.call(this,n,f);
}
throw('Invalid arity: ' + arguments.length);
};
return repeatedly;
})()
;
/**
* Returns a lazy sequence of x, (f x), (f (f x)) etc. f must be free of side-effects
*/
cljs.core.iterate = (function iterate(f,x){
return cljs.core.cons.call(null,x,(new cljs.core.LazySeq(null,false,(function (){
return iterate.call(null,f,f.call(null,x));
}))));
});
/**
* Returns a lazy seq of the first item in each coll, then the second etc.
* @param {...*} var_args
*/
cljs.core.interleave = (function() {
var interleave = null;
var interleave__2825 = (function (c1,c2){
return (new cljs.core.LazySeq(null,false,(function (){
var s1__2821 = cljs.core.seq.call(null,c1);
var s2__2822 = cljs.core.seq.call(null,c2);
if(cljs.core.truth_((function (){var and__3574__auto____2823 = s1__2821;
if(cljs.core.truth_(and__3574__auto____2823))
{return s2__2822;
} else
{return and__3574__auto____2823;
}
})()))
{return cljs.core.cons.call(null,cljs.core.first.call(null,s1__2821),cljs.core.cons.call(null,cljs.core.first.call(null,s2__2822),interleave.call(null,cljs.core.rest.call(null,s1__2821),cljs.core.rest.call(null,s2__2822))));
} else
{return null;
}
})));
});
var interleave__2826 = (function() {
var G__2828__delegate = function (c1,c2,colls){
return (new cljs.core.LazySeq(null,false,(function (){
var ss__2824 = cljs.core.map.call(null,cljs.core.seq,cljs.core.conj.call(null,colls,c2,c1));
if(cljs.core.truth_(cljs.core.every_QMARK_.call(null,cljs.core.identity,ss__2824)))
{return cljs.core.concat.call(null,cljs.core.map.call(null,cljs.core.first,ss__2824),cljs.core.apply.call(null,interleave,cljs.core.map.call(null,cljs.core.rest,ss__2824)));
} else
{return null;
}
})));
};
var G__2828 = function (c1,c2,var_args){
var colls = null;
if (goog.isDef(var_args)) {
colls = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2),0);
}
return G__2828__delegate.call(this, c1, c2, colls);
};
G__2828.cljs$lang$maxFixedArity = 2;
G__2828.cljs$lang$applyTo = (function (arglist__2829){
var c1 = cljs.core.first(arglist__2829);
var c2 = cljs.core.first(cljs.core.next(arglist__2829));
var colls = cljs.core.rest(cljs.core.next(arglist__2829));
return G__2828__delegate.call(this, c1, c2, colls);
});
return G__2828;
})()
;
interleave = function(c1,c2,var_args){
var colls = var_args;
switch(arguments.length){
case 2 :
return interleave__2825.call(this,c1,c2);
default:
return interleave__2826.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
interleave.cljs$lang$maxFixedArity = 2;
interleave.cljs$lang$applyTo = interleave__2826.cljs$lang$applyTo;
return interleave;
})()
;
/**
* Returns a lazy seq of the elements of coll separated by sep
*/
cljs.core.interpose = (function interpose(sep,coll){
return cljs.core.drop.call(null,1,cljs.core.interleave.call(null,cljs.core.repeat.call(null,sep),coll));
});
/**
* Take a collection of collections, and return a lazy seq
* of items from the inner collection
*/
cljs.core.flatten1 = (function flatten1(colls){
var cat__2832 = (function cat(coll,colls){
return (new cljs.core.LazySeq(null,false,(function (){
var temp__3723__auto____2830 = cljs.core.seq.call(null,coll);
if(cljs.core.truth_(temp__3723__auto____2830))
{var coll__2831 = temp__3723__auto____2830;
return cljs.core.cons.call(null,cljs.core.first.call(null,coll__2831),cat.call(null,cljs.core.rest.call(null,coll__2831),colls));
} else
{if(cljs.core.truth_(cljs.core.seq.call(null,colls)))
{return cat.call(null,cljs.core.first.call(null,colls),cljs.core.rest.call(null,colls));
} else
{return null;
}
}
})));
});
return cat__2832.call(null,null,colls);
});
/**
* Returns the result of applying concat to the result of applying map
* to f and colls. Thus function f should return a collection.
* @param {...*} var_args
*/
cljs.core.mapcat = (function() {
var mapcat = null;
var mapcat__2833 = (function (f,coll){
return cljs.core.flatten1.call(null,cljs.core.map.call(null,f,coll));
});
var mapcat__2834 = (function() {
var G__2836__delegate = function (f,coll,colls){
return cljs.core.flatten1.call(null,cljs.core.apply.call(null,cljs.core.map,f,coll,colls));
};
var G__2836 = function (f,coll,var_args){
var colls = null;
if (goog.isDef(var_args)) {
colls = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2),0);
}
return G__2836__delegate.call(this, f, coll, colls);
};
G__2836.cljs$lang$maxFixedArity = 2;
G__2836.cljs$lang$applyTo = (function (arglist__2837){
var f = cljs.core.first(arglist__2837);
var coll = cljs.core.first(cljs.core.next(arglist__2837));
var colls = cljs.core.rest(cljs.core.next(arglist__2837));
return G__2836__delegate.call(this, f, coll, colls);
});
return G__2836;
})()
;
mapcat = function(f,coll,var_args){
var colls = var_args;
switch(arguments.length){
case 2 :
return mapcat__2833.call(this,f,coll);
default:
return mapcat__2834.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
mapcat.cljs$lang$maxFixedArity = 2;
mapcat.cljs$lang$applyTo = mapcat__2834.cljs$lang$applyTo;
return mapcat;
})()
;
/**
* Returns a lazy sequence of the items in coll for which
* (pred item) returns true. pred must be free of side-effects.
*/
cljs.core.filter = (function filter(pred,coll){
return (new cljs.core.LazySeq(null,false,(function (){
var temp__3726__auto____2838 = cljs.core.seq.call(null,coll);
if(cljs.core.truth_(temp__3726__auto____2838))
{var s__2839 = temp__3726__auto____2838;
var f__2840 = cljs.core.first.call(null,s__2839);
var r__2841 = cljs.core.rest.call(null,s__2839);
if(cljs.core.truth_(pred.call(null,f__2840)))
{return cljs.core.cons.call(null,f__2840,filter.call(null,pred,r__2841));
} else
{return filter.call(null,pred,r__2841);
}
} else
{return null;
}
})));
});
/**
* Returns a lazy sequence of the items in coll for which
* (pred item) returns false. pred must be free of side-effects.
*/
cljs.core.remove = (function remove(pred,coll){
return cljs.core.filter.call(null,cljs.core.complement.call(null,pred),coll);
});
/**
* Returns a lazy sequence of the nodes in a tree, via a depth-first walk.
* branch? must be a fn of one arg that returns true if passed a node
* that can have children (but may not). children must be a fn of one
* arg that returns a sequence of the children. Will only be called on
* nodes for which branch? returns true. Root is the root node of the
* tree.
*/
cljs.core.tree_seq = (function tree_seq(branch_QMARK_,children,root){
var walk__2843 = (function walk(node){
return (new cljs.core.LazySeq(null,false,(function (){
return cljs.core.cons.call(null,node,(cljs.core.truth_(branch_QMARK_.call(null,node))?cljs.core.mapcat.call(null,walk,children.call(null,node)):null));
})));
});
return walk__2843.call(null,root);
});
/**
* Takes any nested combination of sequential things (lists, vectors,
* etc.) and returns their contents as a single, flat sequence.
* (flatten nil) returns nil.
*/
cljs.core.flatten = (function flatten(x){
return cljs.core.filter.call(null,(function (p1__2842_SHARP_){
return cljs.core.not.call(null,cljs.core.sequential_QMARK_.call(null,p1__2842_SHARP_));
}),cljs.core.rest.call(null,cljs.core.tree_seq.call(null,cljs.core.sequential_QMARK_,cljs.core.seq,x)));
});
/**
* Returns a new coll consisting of to-coll with all of the items of
* from-coll conjoined.
*/
cljs.core.into = (function into(to,from){
return cljs.core.reduce.call(null,cljs.core._conj,to,from);
});
/**
* Returns a lazy sequence of lists of n items each, at offsets step
* apart. If step is not supplied, defaults to n, i.e. the partitions
* do not overlap. If a pad collection is supplied, use its elements as
* necessary to complete last partition upto n items. In case there are
* not enough padding elements, return a partition with less than n items.
*/
cljs.core.partition = (function() {
var partition = null;
var partition__2850 = (function (n,coll){
return partition.call(null,n,n,coll);
});
var partition__2851 = (function (n,step,coll){
return (new cljs.core.LazySeq(null,false,(function (){
var temp__3726__auto____2844 = cljs.core.seq.call(null,coll);
if(cljs.core.truth_(temp__3726__auto____2844))
{var s__2845 = temp__3726__auto____2844;
var p__2846 = cljs.core.take.call(null,n,s__2845);
if(cljs.core.truth_(cljs.core._EQ_.call(null,n,cljs.core.count.call(null,p__2846))))
{return cljs.core.cons.call(null,p__2846,partition.call(null,n,step,cljs.core.drop.call(null,step,s__2845)));
} else
{return null;
}
} else
{return null;
}
})));
});
var partition__2852 = (function (n,step,pad,coll){
return (new cljs.core.LazySeq(null,false,(function (){
var temp__3726__auto____2847 = cljs.core.seq.call(null,coll);
if(cljs.core.truth_(temp__3726__auto____2847))
{var s__2848 = temp__3726__auto____2847;
var p__2849 = cljs.core.take.call(null,n,s__2848);
if(cljs.core.truth_(cljs.core._EQ_.call(null,n,cljs.core.count.call(null,p__2849))))
{return cljs.core.cons.call(null,p__2849,partition.call(null,n,step,pad,cljs.core.drop.call(null,step,s__2848)));
} else
{return cljs.core.list.call(null,cljs.core.take.call(null,n,cljs.core.concat.call(null,p__2849,pad)));
}
} else
{return null;
}
})));
});
partition = function(n,step,pad,coll){
switch(arguments.length){
case 2 :
return partition__2850.call(this,n,step);
case 3 :
return partition__2851.call(this,n,step,pad);
case 4 :
return partition__2852.call(this,n,step,pad,coll);
}
throw('Invalid arity: ' + arguments.length);
};
return partition;
})()
;
/**
* Returns the value in a nested associative structure,
* where ks is a sequence of ke(ys. Returns nil if the key is not present,
* or the not-found value if supplied.
*/
cljs.core.get_in = (function() {
var get_in = null;
var get_in__2858 = (function (m,ks){
return cljs.core.reduce.call(null,cljs.core.get,m,ks);
});
var get_in__2859 = (function (m,ks,not_found){
var sentinel__2854 = cljs.core.lookup_sentinel;
var m__2855 = m;
var ks__2856 = cljs.core.seq.call(null,ks);
var G__2861,G__2862;G__2861=G__2862=new Object();
while(G__2861===G__2862){
G__2861=(function(continue_val){
if(cljs.core.truth_(ks__2856))
{var m__2857 = cljs.core.get.call(null,m__2855,cljs.core.first.call(null,ks__2856),sentinel__2854);
if(cljs.core.truth_(cljs.core.identical_QMARK_.call(null,sentinel__2854,m__2857)))
{return not_found;
} else
{{
var G__2863 = sentinel__2854;
var G__2864 = m__2857;
var G__2865 = cljs.core.next.call(null,ks__2856);
sentinel__2854 = G__2863;
m__2855 = G__2864;
ks__2856 = G__2865;
return continue_val;
}
}
} else
{return m__2855;
}
})(G__2862);}
return G__2861;
});
get_in = function(m,ks,not_found){
switch(arguments.length){
case 2 :
return get_in__2858.call(this,m,ks);
case 3 :
return get_in__2859.call(this,m,ks,not_found);
}
throw('Invalid arity: ' + arguments.length);
};
return get_in;
})()
;
/**
* Associates a value in a nested associative structure, where ks is a
* sequence of keys and v is the new value and returns a new nested structure.
* If any levels do not exist, hash-maps will be created.
*/
cljs.core.assoc_in = (function assoc_in(m,p__2866,v){
var vec__2867__2868 = p__2866;
var k__2869 = cljs.core.nth.call(null,vec__2867__2868,0,null);
var ks__2870 = cljs.core.nthnext.call(null,vec__2867__2868,1);
if(cljs.core.truth_(ks__2870))
{return cljs.core.assoc.call(null,m,k__2869,assoc_in.call(null,cljs.core.get.call(null,m,k__2869),ks__2870,v));
} else
{return cljs.core.assoc.call(null,m,k__2869,v);
}
});
/**
* 'Updates' a value in a nested associative structure, where ks is a
* sequence of keys and f is a function that will take the old value
* and any supplied args and return the new value, and returns a new
* nested structure. If any levels do not exist, hash-maps will be
* created.
* @param {...*} var_args
*/
cljs.core.update_in = (function() {
var update_in__delegate = function (m,p__2871,f,args){
var vec__2872__2873 = p__2871;
var k__2874 = cljs.core.nth.call(null,vec__2872__2873,0,null);
var ks__2875 = cljs.core.nthnext.call(null,vec__2872__2873,1);
if(cljs.core.truth_(ks__2875))
{return cljs.core.assoc.call(null,m,k__2874,cljs.core.apply.call(null,update_in,cljs.core.get.call(null,m,k__2874),ks__2875,f,args));
} else
{return cljs.core.assoc.call(null,m,k__2874,cljs.core.apply.call(null,f,cljs.core.get.call(null,m,k__2874),args));
}
};
var update_in = function (m,p__2871,f,var_args){
var args = null;
if (goog.isDef(var_args)) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
}
return update_in__delegate.call(this, m, p__2871, f, args);
};
update_in.cljs$lang$maxFixedArity = 3;
update_in.cljs$lang$applyTo = (function (arglist__2876){
var m = cljs.core.first(arglist__2876);
var p__2871 = cljs.core.first(cljs.core.next(arglist__2876));
var f = cljs.core.first(cljs.core.next(cljs.core.next(arglist__2876)));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__2876)));
return update_in__delegate.call(this, m, p__2871, f, args);
});
return update_in;
})()
;
/**
* @constructor
*/
cljs.core.Vector = (function (meta,array){
this.meta = meta;
this.array = array;
})
cljs.core.Vector.prototype.cljs$core$IEquiv$ = true;
cljs.core.Vector.prototype.cljs$core$IEquiv$_equiv = (function (coll,other){
var this__2877 = this;
return cljs.core.equiv_sequential.call(null,coll,other);
});
cljs.core.Vector.prototype.cljs$core$ICollection$ = true;
cljs.core.Vector.prototype.cljs$core$ICollection$_conj = (function (coll,o){
var this__2878 = this;
var new_array__2879 = cljs.core.aclone.call(null,this__2878.array);
new_array__2879.push(o);
return (new cljs.core.Vector(this__2878.meta,new_array__2879));
});
cljs.core.Vector.prototype.cljs$core$ISeqable$ = true;
cljs.core.Vector.prototype.cljs$core$ISeqable$_seq = (function (coll){
var this__2880 = this;
if(cljs.core.truth_(cljs.core._GT_.call(null,this__2880.array.length,0)))
{var vector_seq__2881 = (function vector_seq(i){
return (new cljs.core.LazySeq(null,false,(function (){
if(cljs.core.truth_(cljs.core._LT_.call(null,i,this__2880.array.length)))
{return cljs.core.cons.call(null,(this__2880.array[i]),vector_seq.call(null,cljs.core.inc.call(null,i)));
} else
{return null;
}
})));
});
return vector_seq__2881.call(null,0);
} else
{return null;
}
});
cljs.core.Vector.prototype.cljs$core$IVector$ = true;
cljs.core.Vector.prototype.cljs$core$IVector$_assoc_n = (function (coll,n,val){
var this__2882 = this;
return cljs.core._assoc.call(null,coll,n,val);
});
cljs.core.Vector.prototype.cljs$core$IStack$ = true;
cljs.core.Vector.prototype.cljs$core$IStack$_peek = (function (coll){
var this__2883 = this;
var count__2884 = this__2883.array.length;
if(cljs.core.truth_(cljs.core._GT_.call(null,count__2884,0)))
{return (this__2883.array[cljs.core.dec.call(null,count__2884)]);
} else
{return null;
}
});
cljs.core.Vector.prototype.cljs$core$IStack$_pop = (function (coll){
var this__2885 = this;
if(cljs.core.truth_(cljs.core._GT_.call(null,this__2885.array.length,0)))
{var new_array__2886 = cljs.core.aclone.call(null,this__2885.array);
new_array__2886.pop();
return (new cljs.core.Vector(this__2885.meta,new_array__2886));
} else
{return null;
}
});
cljs.core.Vector.prototype.cljs$core$IWithMeta$ = true;
cljs.core.Vector.prototype.cljs$core$IWithMeta$_with_meta = (function (coll,meta){
var this__2887 = this;
return (new cljs.core.Vector(meta,this__2887.array));
});
cljs.core.Vector.prototype.cljs$core$IEmptyableCollection$ = true;
cljs.core.Vector.prototype.cljs$core$IEmptyableCollection$_empty = (function (coll){
var this__2888 = this;
return cljs.core.with_meta.call(null,cljs.core.Vector.EMPTY,this__2888.meta);
});
cljs.core.Vector.prototype.cljs$core$IIndexed$ = true;
cljs.core.Vector.prototype.cljs$core$IIndexed$_nth = (function() {
var G__2902 = null;
var G__2902__2903 = (function (coll,n){
var this__2889 = this;
if(cljs.core.truth_((function (){var and__3574__auto____2890 = cljs.core._LT__EQ_.call(null,0,n);
if(cljs.core.truth_(and__3574__auto____2890))
{return cljs.core._LT_.call(null,n,this__2889.array.length);
} else
{return and__3574__auto____2890;
}
})()))
{return (this__2889.array[n]);
} else
{return null;
}
});
var G__2902__2904 = (function (coll,n,not_found){
var this__2891 = this;
if(cljs.core.truth_((function (){var and__3574__auto____2892 = cljs.core._LT__EQ_.call(null,0,n);
if(cljs.core.truth_(and__3574__auto____2892))
{return cljs.core._LT_.call(null,n,this__2891.array.length);
} else
{return and__3574__auto____2892;
}
})()))
{return (this__2891.array[n]);
} else
{return not_found;
}
});
G__2902 = function(coll,n,not_found){
switch(arguments.length){
case 2 :
return G__2902__2903.call(this,coll,n);
case 3 :
return G__2902__2904.call(this,coll,n,not_found);
}
throw('Invalid arity: ' + arguments.length);
};
return G__2902;
})()
;
cljs.core.Vector.prototype.cljs$core$IMeta$ = true;
cljs.core.Vector.prototype.cljs$core$IMeta$_meta = (function (coll){
var this__2893 = this;
return this__2893.meta;
});
cljs.core.Vector.prototype.cljs$core$IReduce$ = true;
cljs.core.Vector.prototype.cljs$core$IReduce$_reduce = (function() {
var G__2906 = null;
var G__2906__2907 = (function (v,f){
var this__2894 = this;
return cljs.core.ci_reduce.call(null,this__2894.array,f);
});
var G__2906__2908 = (function (v,f,start){
var this__2895 = this;
return cljs.core.ci_reduce.call(null,this__2895.array,f,start);
});
G__2906 = function(v,f,start){
switch(arguments.length){
case 2 :
return G__2906__2907.call(this,v,f);
case 3 :
return G__2906__2908.call(this,v,f,start);
}
throw('Invalid arity: ' + arguments.length);
};
return G__2906;
})()
;
cljs.core.Vector.prototype.cljs$core$IHash$ = true;
cljs.core.Vector.prototype.cljs$core$IHash$_hash = (function (coll){
var this__2896 = this;
return cljs.core.hash_coll.call(null,coll);
});
cljs.core.Vector.prototype.cljs$core$ICounted$ = true;
cljs.core.Vector.prototype.cljs$core$ICounted$_count = (function (coll){
var this__2897 = this;
return this__2897.array.length;
});
cljs.core.Vector.prototype.cljs$core$ISequential$ = true;
cljs.core.Vector.prototype.cljs$core$IAssociative$ = true;
cljs.core.Vector.prototype.cljs$core$IAssociative$_assoc = (function (coll,k,v){
var this__2898 = this;
var new_array__2899 = cljs.core.aclone.call(null,this__2898.array);
(new_array__2899[k] = v);
return (new cljs.core.Vector(this__2898.meta,new_array__2899));
});
cljs.core.Vector.prototype.cljs$core$ILookup$ = true;
cljs.core.Vector.prototype.cljs$core$ILookup$_lookup = (function() {
var G__2910 = null;
var G__2910__2911 = (function (coll,k){
var this__2900 = this;
return cljs.core._nth.call(null,coll,k,null);
});
var G__2910__2912 = (function (coll,k,not_found){
var this__2901 = this;
return cljs.core._nth.call(null,coll,k,not_found);
});
G__2910 = function(coll,k,not_found){
switch(arguments.length){
case 2 :
return G__2910__2911.call(this,coll,k);
case 3 :
return G__2910__2912.call(this,coll,k,not_found);
}
throw('Invalid arity: ' + arguments.length);
};
return G__2910;
})()
;
cljs.core.Vector.EMPTY = (new cljs.core.Vector(null,cljs.core.array.call(null)));
cljs.core.Vector.fromArray = (function (xs){
return (new cljs.core.Vector(null,xs));
});
cljs.core.Vector.prototype.call = (function() {
var G__2914 = null;
var G__2914__2915 = (function (_,k){
return cljs.core._lookup.call(null,this,k);
});
var G__2914__2916 = (function (_,k,not_found){
return cljs.core._lookup.call(null,this,k,not_found);
});
G__2914 = function(_,k,not_found){
switch(arguments.length){
case 2 :
return G__2914__2915.call(this,_,k);
case 3 :
return G__2914__2916.call(this,_,k,not_found);
}
throw('Invalid arity: ' + arguments.length);
};
return G__2914;
})()
;
cljs.core.vec = (function vec(coll){
return cljs.core.reduce.call(null,cljs.core.conj,cljs.core.Vector.EMPTY,coll);
});
/**
* @param {...*} var_args
*/
cljs.core.vector = (function() {
var vector__delegate = function (args){
return cljs.core.vec.call(null,args);
};
var vector = function (var_args){
var args = null;
if (goog.isDef(var_args)) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);
}
return vector__delegate.call(this, args);
};
vector.cljs$lang$maxFixedArity = 0;
vector.cljs$lang$applyTo = (function (arglist__2918){
var args = cljs.core.seq( arglist__2918 );;
return vector__delegate.call(this, args);
});
return vector;
})()
;
/**
* @constructor
*/
cljs.core.NeverEquiv = (function (){
})
cljs.core.NeverEquiv.prototype.cljs$core$IEquiv$ = true;
cljs.core.NeverEquiv.prototype.cljs$core$IEquiv$_equiv = (function (o,other){
var this__2919 = this;
return false;
});
cljs.core.never_equiv = (new cljs.core.NeverEquiv());
/**
* Assumes y is a map. Returns true if x equals y, otherwise returns
* false.
*/
cljs.core.equiv_map = (function equiv_map(x,y){
return cljs.core.boolean$.call(null,(cljs.core.truth_(cljs.core.map_QMARK_.call(null,y))?(cljs.core.truth_(cljs.core._EQ_.call(null,cljs.core.count.call(null,x),cljs.core.count.call(null,y)))?cljs.core.every_QMARK_.call(null,cljs.core.identity,cljs.core.map.call(null,(function (xkv){
return cljs.core._EQ_.call(null,cljs.core.get.call(null,y,cljs.core.first.call(null,xkv),cljs.core.never_equiv),cljs.core.second.call(null,xkv));
}),x)):null):null));
});
cljs.core.scan_array = (function scan_array(incr,k,array){
var len__2920 = array.length;
var i__2921 = 0;
var G__2922,G__2923;G__2922=G__2923=new Object();
while(G__2922===G__2923){
G__2922=(function(continue_val){
if(cljs.core.truth_(cljs.core._LT_.call(null,i__2921,len__2920)))
{if(cljs.core.truth_(cljs.core._EQ_.call(null,k,(array[i__2921]))))
{return i__2921;
} else
{{
var G__2924 = cljs.core._PLUS_.call(null,i__2921,incr);
i__2921 = G__2924;
return continue_val;
}
}
} else
{return null;
}
})(G__2923);}
return G__2922;
});
cljs.core.obj_map_contains_key_QMARK_ = (function() {
var obj_map_contains_key_QMARK_ = null;
var obj_map_contains_key_QMARK___2926 = (function (k,strobj){
return obj_map_contains_key_QMARK_.call(null,k,strobj,true,false);
});
var obj_map_contains_key_QMARK___2927 = (function (k,strobj,true_val,false_val){
if(cljs.core.truth_((function (){var and__3574__auto____2925 = goog.isString.call(null,k);
if(cljs.core.truth_(and__3574__auto____2925))
{return strobj.hasOwnProperty(k);
} else
{return and__3574__auto____2925;
}
})()))
{return true_val;
} else
{return false_val;
}
});
obj_map_contains_key_QMARK_ = function(k,strobj,true_val,false_val){
switch(arguments.length){
case 2 :
return obj_map_contains_key_QMARK___2926.call(this,k,strobj);
case 4 :
return obj_map_contains_key_QMARK___2927.call(this,k,strobj,true_val,false_val);
}
throw('Invalid arity: ' + arguments.length);
};
return obj_map_contains_key_QMARK_;
})()
;
/**
* @constructor
*/
cljs.core.ObjMap = (function (meta,keys,strobj){
this.meta = meta;
this.keys = keys;
this.strobj = strobj;
})
cljs.core.ObjMap.prototype.cljs$core$IEquiv$ = true;
cljs.core.ObjMap.prototype.cljs$core$IEquiv$_equiv = (function (coll,other){
var this__2930 = this;
return cljs.core.equiv_map.call(null,coll,other);
});
cljs.core.ObjMap.prototype.cljs$core$ICollection$ = true;
cljs.core.ObjMap.prototype.cljs$core$ICollection$_conj = (function (coll,entry){
var this__2931 = this;
if(cljs.core.truth_(cljs.core.vector_QMARK_.call(null,entry)))
{return cljs.core._assoc.call(null,coll,cljs.core._nth.call(null,entry,0),cljs.core._nth.call(null,entry,1));
} else
{return cljs.core.reduce.call(null,cljs.core._conj,coll,entry);
}
});
cljs.core.ObjMap.prototype.cljs$core$ISeqable$ = true;
cljs.core.ObjMap.prototype.cljs$core$ISeqable$_seq = (function (coll){
var this__2932 = this;
if(cljs.core.truth_(cljs.core.pos_QMARK_.call(null,this__2932.keys.length)))
{return cljs.core.map.call(null,(function (p1__2929_SHARP_){
return cljs.core.vector.call(null,p1__2929_SHARP_,(this__2932.strobj[p1__2929_SHARP_]));
}),this__2932.keys);
} else
{return null;
}
});
cljs.core.ObjMap.prototype.cljs$core$IWithMeta$ = true;
cljs.core.ObjMap.prototype.cljs$core$IWithMeta$_with_meta = (function (coll,meta){
var this__2933 = this;
return (new cljs.core.ObjMap(meta,this__2933.keys,this__2933.strobj));
});
cljs.core.ObjMap.prototype.cljs$core$IMap$ = true;
cljs.core.ObjMap.prototype.cljs$core$IMap$_dissoc = (function (coll,k){
var this__2934 = this;
if(cljs.core.truth_((function (){var and__3574__auto____2935 = goog.isString.call(null,k);
if(cljs.core.truth_(and__3574__auto____2935))
{return this__2934.strobj.hasOwnProperty(k);
} else
{return and__3574__auto____2935;
}
})()))
{var new_keys__2936 = cljs.core.aclone.call(null,this__2934.keys);
var new_strobj__2937 = goog.object.clone.call(null,this__2934.strobj);
new_keys__2936.splice(cljs.core.scan_array.call(null,1,k,new_keys__2936),1);
cljs.core.js_delete.call(null,new_strobj__2937,k);
return (new cljs.core.ObjMap(this__2934.meta,new_keys__2936,new_strobj__2937));
} else
{return coll;
}
});
cljs.core.ObjMap.prototype.cljs$core$IEmptyableCollection$ = true;
cljs.core.ObjMap.prototype.cljs$core$IEmptyableCollection$_empty = (function (coll){
var this__2938 = this;
return cljs.core.with_meta.call(null,cljs.core.ObjMap.EMPTY,this__2938.meta);
});
cljs.core.ObjMap.prototype.cljs$core$IMeta$ = true;
cljs.core.ObjMap.prototype.cljs$core$IMeta$_meta = (function (coll){
var this__2939 = this;
return this__2939.meta;
});
cljs.core.ObjMap.prototype.cljs$core$IHash$ = true;
cljs.core.ObjMap.prototype.cljs$core$IHash$_hash = (function (coll){
var this__2940 = this;
return cljs.core.hash_coll.call(null,coll);
});
cljs.core.ObjMap.prototype.cljs$core$ICounted$ = true;
cljs.core.ObjMap.prototype.cljs$core$ICounted$_count = (function (coll){
var this__2941 = this;
return this__2941.keys.length;
});
cljs.core.ObjMap.prototype.cljs$core$IAssociative$ = true;
cljs.core.ObjMap.prototype.cljs$core$IAssociative$_assoc = (function (coll,k,v){
var this__2942 = this;
if(cljs.core.truth_(goog.isString.call(null,k)))
{var new_strobj__2943 = goog.object.clone.call(null,this__2942.strobj);
var overwrite_QMARK___2944 = new_strobj__2943.hasOwnProperty(k);
(new_strobj__2943[k] = v);
if(cljs.core.truth_(overwrite_QMARK___2944))
{return (new cljs.core.ObjMap(this__2942.meta,this__2942.keys,new_strobj__2943));
} else
{var new_keys__2945 = cljs.core.aclone.call(null,this__2942.keys);
new_keys__2945.push(k);
return (new cljs.core.ObjMap(this__2942.meta,new_keys__2945,new_strobj__2943));
}
} else
{return cljs.core.with_meta.call(null,cljs.core.into.call(null,cljs.core.hash_map.call(null,k,v),cljs.core.seq.call(null,coll)),this__2942.meta);
}
});
cljs.core.ObjMap.prototype.cljs$core$IAssociative$_contains_key_QMARK_ = (function (coll,k){
var this__2946 = this;
return cljs.core.obj_map_contains_key_QMARK_.call(null,k,this__2946.strobj);
});
cljs.core.ObjMap.prototype.cljs$core$ILookup$ = true;
cljs.core.ObjMap.prototype.cljs$core$ILookup$_lookup = (function() {
var G__2949 = null;
var G__2949__2950 = (function (coll,k){
var this__2947 = this;
return cljs.core._lookup.call(null,coll,k,null);
});
var G__2949__2951 = (function (coll,k,not_found){
var this__2948 = this;
return cljs.core.obj_map_contains_key_QMARK_.call(null,k,this__2948.strobj,(this__2948.strobj[k]),not_found);
});
G__2949 = function(coll,k,not_found){
switch(arguments.length){
case 2 :
return G__2949__2950.call(this,coll,k);
case 3 :
return G__2949__2951.call(this,coll,k,not_found);
}
throw('Invalid arity: ' + arguments.length);
};
return G__2949;
})()
;
cljs.core.ObjMap.EMPTY = (new cljs.core.ObjMap(null,cljs.core.array.call(null),cljs.core.js_obj.call(null)));
cljs.core.ObjMap.fromObject = (function (ks,obj){
return (new cljs.core.ObjMap(null,ks,obj));
});
cljs.core.ObjMap.prototype.call = (function() {
var G__2954 = null;
var G__2954__2955 = (function (_,k){
return cljs.core._lookup.call(null,this,k);
});
var G__2954__2956 = (function (_,k,not_found){
return cljs.core._lookup.call(null,this,k,not_found);
});
G__2954 = function(_,k,not_found){
switch(arguments.length){
case 2 :
return G__2954__2955.call(this,_,k);
case 3 :
return G__2954__2956.call(this,_,k,not_found);
}
throw('Invalid arity: ' + arguments.length);
};
return G__2954;
})()
;
/**
* @constructor
*/
cljs.core.HashMap = (function (meta,count,hashobj){
this.meta = meta;
this.count = count;
this.hashobj = hashobj;
})
cljs.core.HashMap.prototype.cljs$core$IEquiv$ = true;
cljs.core.HashMap.prototype.cljs$core$IEquiv$_equiv = (function (coll,other){
var this__2958 = this;
return cljs.core.equiv_map.call(null,coll,other);
});
cljs.core.HashMap.prototype.cljs$core$ICollection$ = true;
cljs.core.HashMap.prototype.cljs$core$ICollection$_conj = (function (coll,entry){
var this__2959 = this;
if(cljs.core.truth_(cljs.core.vector_QMARK_.call(null,entry)))
{return cljs.core._assoc.call(null,coll,cljs.core._nth.call(null,entry,0),cljs.core._nth.call(null,entry,1));
} else
{return cljs.core.reduce.call(null,cljs.core._conj,coll,entry);
}
});
cljs.core.HashMap.prototype.cljs$core$ISeqable$ = true;
cljs.core.HashMap.prototype.cljs$core$ISeqable$_seq = (function (coll){
var this__2960 = this;
if(cljs.core.truth_(cljs.core.pos_QMARK_.call(null,this__2960.count)))
{var hashes__2961 = cljs.core.js_keys.call(null,this__2960.hashobj);
return cljs.core.mapcat.call(null,(function (p1__2953_SHARP_){
return cljs.core.map.call(null,cljs.core.vec,cljs.core.partition.call(null,2,(this__2960.hashobj[p1__2953_SHARP_])));
}),hashes__2961);
} else
{return null;
}
});
cljs.core.HashMap.prototype.cljs$core$IWithMeta$ = true;
cljs.core.HashMap.prototype.cljs$core$IWithMeta$_with_meta = (function (coll,meta){
var this__2962 = this;
return (new cljs.core.HashMap(meta,this__2962.count,this__2962.hashobj));
});
cljs.core.HashMap.prototype.cljs$core$IMap$ = true;
cljs.core.HashMap.prototype.cljs$core$IMap$_dissoc = (function (coll,k){
var this__2963 = this;
var h__2964 = cljs.core.hash.call(null,k);
var bucket__2965 = (this__2963.hashobj[h__2964]);
var i__2966 = (cljs.core.truth_(bucket__2965)?cljs.core.scan_array.call(null,2,k,bucket__2965):null);
if(cljs.core.truth_(cljs.core.not.call(null,i__2966)))
{return coll;
} else
{var new_hashobj__2967 = goog.object.clone.call(null,this__2963.hashobj);
if(cljs.core.truth_(cljs.core._GT_.call(null,3,bucket__2965.length)))
{cljs.core.js_delete.call(null,new_hashobj__2967,h__2964);
} else
{var new_bucket__2968 = cljs.core.aclone.call(null,bucket__2965);
new_bucket__2968.splice(i__2966,2);
(new_hashobj__2967[h__2964] = new_bucket__2968);
}
return (new cljs.core.HashMap(this__2963.meta,cljs.core.dec.call(null,this__2963.count),new_hashobj__2967));
}
});
cljs.core.HashMap.prototype.cljs$core$IEmptyableCollection$ = true;
cljs.core.HashMap.prototype.cljs$core$IEmptyableCollection$_empty = (function (coll){
var this__2969 = this;
return cljs.core.with_meta.call(null,cljs.core.HashMap.EMPTY,this__2969.meta);
});
cljs.core.HashMap.prototype.cljs$core$IMeta$ = true;
cljs.core.HashMap.prototype.cljs$core$IMeta$_meta = (function (coll){
var this__2970 = this;
return this__2970.meta;
});
cljs.core.HashMap.prototype.cljs$core$IHash$ = true;
cljs.core.HashMap.prototype.cljs$core$IHash$_hash = (function (coll){
var this__2971 = this;
return cljs.core.hash_coll.call(null,coll);
});
cljs.core.HashMap.prototype.cljs$core$ICounted$ = true;
cljs.core.HashMap.prototype.cljs$core$ICounted$_count = (function (coll){
var this__2972 = this;
return this__2972.count;
});
cljs.core.HashMap.prototype.cljs$core$IAssociative$ = true;
cljs.core.HashMap.prototype.cljs$core$IAssociative$_assoc = (function (coll,k,v){
var this__2973 = this;
var h__2974 = cljs.core.hash.call(null,k);
var bucket__2975 = (this__2973.hashobj[h__2974]);
if(cljs.core.truth_(bucket__2975))
{var new_bucket__2976 = cljs.core.aclone.call(null,bucket__2975);
var new_hashobj__2977 = goog.object.clone.call(null,this__2973.hashobj);
(new_hashobj__2977[h__2974] = new_bucket__2976);
var temp__3723__auto____2978 = cljs.core.scan_array.call(null,2,k,new_bucket__2976);
if(cljs.core.truth_(temp__3723__auto____2978))
{var i__2979 = temp__3723__auto____2978;
(new_bucket__2976[cljs.core.inc.call(null,i__2979)] = v);
return (new cljs.core.HashMap(this__2973.meta,this__2973.count,new_hashobj__2977));
} else
{new_bucket__2976.push(k,v);
return (new cljs.core.HashMap(this__2973.meta,cljs.core.inc.call(null,this__2973.count),new_hashobj__2977));
}
} else
{var new_hashobj__2980 = goog.object.clone.call(null,this__2973.hashobj);
(new_hashobj__2980[h__2974] = cljs.core.array.call(null,k,v));
return (new cljs.core.HashMap(this__2973.meta,cljs.core.inc.call(null,this__2973.count),new_hashobj__2980));
}
});
cljs.core.HashMap.prototype.cljs$core$IAssociative$_contains_key_QMARK_ = (function (coll,k){
var this__2981 = this;
var bucket__2982 = (this__2981.hashobj[cljs.core.hash.call(null,k)]);
var i__2983 = (cljs.core.truth_(bucket__2982)?cljs.core.scan_array.call(null,2,k,bucket__2982):null);
if(cljs.core.truth_(i__2983))
{return true;
} else
{return false;
}
});
cljs.core.HashMap.prototype.cljs$core$ILookup$ = true;
cljs.core.HashMap.prototype.cljs$core$ILookup$_lookup = (function() {
var G__2988 = null;
var G__2988__2989 = (function (coll,k){
var this__2984 = this;
return cljs.core._lookup.call(null,coll,k,null);
});
var G__2988__2990 = (function (coll,k,not_found){
var this__2985 = this;
var bucket__2986 = (this__2985.hashobj[cljs.core.hash.call(null,k)]);
var i__2987 = (cljs.core.truth_(bucket__2986)?cljs.core.scan_array.call(null,2,k,bucket__2986):null);
if(cljs.core.truth_(i__2987))
{return (bucket__2986[cljs.core.inc.call(null,i__2987)]);
} else
{return not_found;
}
});
G__2988 = function(coll,k,not_found){
switch(arguments.length){
case 2 :
return G__2988__2989.call(this,coll,k);
case 3 :
return G__2988__2990.call(this,coll,k,not_found);
}
throw('Invalid arity: ' + arguments.length);
};
return G__2988;
})()
;
cljs.core.HashMap.EMPTY = (new cljs.core.HashMap(null,0,cljs.core.js_obj.call(null)));
cljs.core.HashMap.fromArrays = (function (ks,vs){
var len__2992 = ks.length;
var i__2993 = 0;
var out__2994 = cljs.core.HashMap.EMPTY;
var G__2995,G__2996;G__2995=G__2996=new Object();
while(G__2995===G__2996){
G__2995=(function(continue_val){
if(cljs.core.truth_(cljs.core._LT_.call(null,i__2993,len__2992)))
{{
var G__2997 = cljs.core.inc.call(null,i__2993);
var G__2998 = cljs.core.assoc.call(null,out__2994,(ks[i__2993]),(vs[i__2993]));
i__2993 = G__2997;
out__2994 = G__2998;
return continue_val;
}
} else
{return out__2994;
}
})(G__2996);}
return G__2995;
});
cljs.core.HashMap.prototype.call = (function() {
var G__2999 = null;
var G__2999__3000 = (function (_,k){
return cljs.core._lookup.call(null,this,k);
});
var G__2999__3001 = (function (_,k,not_found){
return cljs.core._lookup.call(null,this,k,not_found);
});
G__2999 = function(_,k,not_found){
switch(arguments.length){
case 2 :
return G__2999__3000.call(this,_,k);
case 3 :
return G__2999__3001.call(this,_,k,not_found);
}
throw('Invalid arity: ' + arguments.length);
};
return G__2999;
})()
;
/**
* keyval => key val
* Returns a new hash map with supplied mappings.
* @param {...*} var_args
*/
cljs.core.hash_map = (function() {
var hash_map__delegate = function (keyvals){
var in$__3003 = cljs.core.seq.call(null,keyvals);
var out__3004 = cljs.core.HashMap.EMPTY;
var G__3005,G__3006;G__3005=G__3006=new Object();
while(G__3005===G__3006){
G__3005=(function(continue_val){
if(cljs.core.truth_(in$__3003))
{{
var G__3007 = cljs.core.nnext.call(null,in$__3003);
var G__3008 = cljs.core.assoc.call(null,out__3004,cljs.core.first.call(null,in$__3003),cljs.core.second.call(null,in$__3003));
in$__3003 = G__3007;
out__3004 = G__3008;
return continue_val;
}
} else
{return out__3004;
}
})(G__3006);}
return G__3005;
};
var hash_map = function (var_args){
var keyvals = null;
if (goog.isDef(var_args)) {
keyvals = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);
}
return hash_map__delegate.call(this, keyvals);
};
hash_map.cljs$lang$maxFixedArity = 0;
hash_map.cljs$lang$applyTo = (function (arglist__3009){
var keyvals = cljs.core.seq( arglist__3009 );;
return hash_map__delegate.call(this, keyvals);
});
return hash_map;
})()
;
/**
* Returns a sequence of the map's keys.
*/
cljs.core.keys = (function keys(hash_map){
return cljs.core.seq.call(null,cljs.core.map.call(null,cljs.core.first,hash_map));
});
/**
* Returns a sequence of the map's values.
*/
cljs.core.vals = (function vals(hash_map){
return cljs.core.seq.call(null,cljs.core.map.call(null,cljs.core.second,hash_map));
});
/**
* Returns a map that consists of the rest of the maps conj-ed onto
* the first. If a key occurs in more than one map, the mapping from
* the latter (left-to-right) will be the mapping in the result.
* @param {...*} var_args
*/
cljs.core.merge = (function() {
var merge__delegate = function (maps){
if(cljs.core.truth_(cljs.core.some.call(null,cljs.core.identity,maps)))
{return cljs.core.reduce.call(null,(function (p1__3010_SHARP_,p2__3011_SHARP_){
return cljs.core.conj.call(null,(function (){var or__3576__auto____3012 = p1__3010_SHARP_;
if(cljs.core.truth_(or__3576__auto____3012))
{return or__3576__auto____3012;
} else
{return cljs.core.ObjMap.fromObject([],{});
}
})(),p2__3011_SHARP_);
}),maps);
} else
{return null;
}
};
var merge = function (var_args){
var maps = null;
if (goog.isDef(var_args)) {
maps = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);
}
return merge__delegate.call(this, maps);
};
merge.cljs$lang$maxFixedArity = 0;
merge.cljs$lang$applyTo = (function (arglist__3013){
var maps = cljs.core.seq( arglist__3013 );;
return merge__delegate.call(this, maps);
});
return merge;
})()
;
/**
* Returns a map that consists of the rest of the maps conj-ed onto
* the first. If a key occurs in more than one map, the mapping(s)
* from the latter (left-to-right) will be combined with the mapping in
* the result by calling (f val-in-result val-in-latter).
* @param {...*} var_args
*/
cljs.core.merge_with = (function() {
var merge_with__delegate = function (f,maps){
if(cljs.core.truth_(cljs.core.some.call(null,cljs.core.identity,maps)))
{var merge_entry__3016 = (function (m,e){
var k__3014 = cljs.core.first.call(null,e);
var v__3015 = cljs.core.second.call(null,e);
if(cljs.core.truth_(cljs.core.contains_QMARK_.call(null,m,k__3014)))
{return cljs.core.assoc.call(null,m,k__3014,f.call(null,cljs.core.get.call(null,m,k__3014),v__3015));
} else
{return cljs.core.assoc.call(null,m,k__3014,v__3015);
}
});
var merge2__3018 = (function (m1,m2){
return cljs.core.reduce.call(null,merge_entry__3016,(function (){var or__3576__auto____3017 = m1;
if(cljs.core.truth_(or__3576__auto____3017))
{return or__3576__auto____3017;
} else
{return cljs.core.ObjMap.fromObject([],{});
}
})(),cljs.core.seq.call(null,m2));
});
return cljs.core.reduce.call(null,merge2__3018,maps);
} else
{return null;
}
};
var merge_with = function (f,var_args){
var maps = null;
if (goog.isDef(var_args)) {
maps = cljs.core.array_seq(Array.prototype.slice.call(arguments, 1),0);
}
return merge_with__delegate.call(this, f, maps);
};
merge_with.cljs$lang$maxFixedArity = 1;
merge_with.cljs$lang$applyTo = (function (arglist__3019){
var f = cljs.core.first(arglist__3019);
var maps = cljs.core.rest(arglist__3019);
return merge_with__delegate.call(this, f, maps);
});
return merge_with;
})()
;
/**
* Returns a map containing only those entries in map whose key is in keys
*/
cljs.core.select_keys = (function select_keys(map,keyseq){
var ret__3021 = cljs.core.ObjMap.fromObject([],{});
var keys__3022 = cljs.core.seq.call(null,keyseq);
var G__3025,G__3026;G__3025=G__3026=new Object();
while(G__3025===G__3026){
G__3025=(function(continue_val){
if(cljs.core.truth_(keys__3022))
{var key__3023 = cljs.core.first.call(null,keys__3022);
var entry__3024 = cljs.core.get.call(null,map,key__3023);
{
var G__3027 = (cljs.core.truth_(entry__3024)?cljs.core.assoc.call(null,ret__3021,key__3023,entry__3024):ret__3021);
var G__3028 = cljs.core.next.call(null,keys__3022);
ret__3021 = G__3027;
keys__3022 = G__3028;
return continue_val;
}
} else
{return ret__3021;
}
})(G__3026);}
return G__3025;
});
/**
* @constructor
*/
cljs.core.Set = (function (meta,hash_map){
this.meta = meta;
this.hash_map = hash_map;
})
cljs.core.Set.prototype.cljs$core$ISet$ = true;
cljs.core.Set.prototype.cljs$core$ISet$_disjoin = (function (coll,v){
var this__3029 = this;
return (new cljs.core.Set(this__3029.meta,cljs.core.dissoc.call(null,this__3029.hash_map,v)));
});
cljs.core.Set.prototype.cljs$core$IEquiv$ = true;
cljs.core.Set.prototype.cljs$core$IEquiv$_equiv = (function (coll,other){
var this__3030 = this;
var and__3574__auto____3031 = cljs.core.set_QMARK_.call(null,other);
if(cljs.core.truth_(and__3574__auto____3031))
{var and__3574__auto____3032 = cljs.core._EQ_.call(null,cljs.core.count.call(null,coll),cljs.core.count.call(null,other));
if(cljs.core.truth_(and__3574__auto____3032))
{return cljs.core.every_QMARK_.call(null,(function (p1__3020_SHARP_){
return cljs.core.contains_QMARK_.call(null,coll,p1__3020_SHARP_);
}),other);
} else
{return and__3574__auto____3032;
}
} else
{return and__3574__auto____3031;
}
});
cljs.core.Set.prototype.cljs$core$ICollection$ = true;
cljs.core.Set.prototype.cljs$core$ICollection$_conj = (function (coll,o){
var this__3033 = this;
return (new cljs.core.Set(this__3033.meta,cljs.core.assoc.call(null,this__3033.hash_map,o,null)));
});
cljs.core.Set.prototype.cljs$core$ISeqable$ = true;
cljs.core.Set.prototype.cljs$core$ISeqable$_seq = (function (coll){
var this__3034 = this;
return cljs.core.keys.call(null,this__3034.hash_map);
});
cljs.core.Set.prototype.cljs$core$IWithMeta$ = true;
cljs.core.Set.prototype.cljs$core$IWithMeta$_with_meta = (function (coll,meta){
var this__3035 = this;
return (new cljs.core.Set(meta,this__3035.hash_map));
});
cljs.core.Set.prototype.cljs$core$IEmptyableCollection$ = true;
cljs.core.Set.prototype.cljs$core$IEmptyableCollection$_empty = (function (coll){
var this__3036 = this;
return cljs.core.with_meta.call(null,cljs.core.Set.EMPTY,this__3036.meta);
});
cljs.core.Set.prototype.cljs$core$IMeta$ = true;
cljs.core.Set.prototype.cljs$core$IMeta$_meta = (function (coll){
var this__3037 = this;
return this__3037.meta;
});
cljs.core.Set.prototype.cljs$core$IHash$ = true;
cljs.core.Set.prototype.cljs$core$IHash$_hash = (function (coll){
var this__3038 = this;
return cljs.core.hash_coll.call(null,coll);
});
cljs.core.Set.prototype.cljs$core$ICounted$ = true;
cljs.core.Set.prototype.cljs$core$ICounted$_count = (function (coll){
var this__3039 = this;
return cljs.core.count.call(null,cljs.core.seq.call(null,coll));
});
cljs.core.Set.prototype.cljs$core$ILookup$ = true;
cljs.core.Set.prototype.cljs$core$ILookup$_lookup = (function() {
var G__3042 = null;
var G__3042__3043 = (function (coll,v){
var this__3040 = this;
return cljs.core._lookup.call(null,coll,v,null);
});
var G__3042__3044 = (function (coll,v,not_found){
var this__3041 = this;
if(cljs.core.truth_(cljs.core._contains_key_QMARK_.call(null,this__3041.hash_map,v)))
{return v;
} else
{return not_found;
}
});
G__3042 = function(coll,v,not_found){
switch(arguments.length){
case 2 :
return G__3042__3043.call(this,coll,v);
case 3 :
return G__3042__3044.call(this,coll,v,not_found);
}
throw('Invalid arity: ' + arguments.length);
};
return G__3042;
})()
;
cljs.core.Set.EMPTY = (new cljs.core.Set(null,cljs.core.hash_map.call(null)));
cljs.core.Set.prototype.call = (function() {
var G__3046 = null;
var G__3046__3047 = (function (_,k){
return cljs.core._lookup.call(null,this,k);
});
var G__3046__3048 = (function (_,k,not_found){
return cljs.core._lookup.call(null,this,k,not_found);
});
G__3046 = function(_,k,not_found){
switch(arguments.length){
case 2 :
return G__3046__3047.call(this,_,k);
case 3 :
return G__3046__3048.call(this,_,k,not_found);
}
throw('Invalid arity: ' + arguments.length);
};
return G__3046;
})()
;
/**
* Returns a set of the distinct elements of coll.
*/
cljs.core.set = (function set(coll){
var in$__3051 = cljs.core.seq.call(null,coll);
var out__3052 = cljs.core.Set.EMPTY;
var G__3053,G__3054;G__3053=G__3054=new Object();
while(G__3053===G__3054){
G__3053=(function(continue_val){
if(cljs.core.truth_(cljs.core.not.call(null,cljs.core.empty_QMARK_.call(null,in$__3051))))
{{
var G__3055 = cljs.core.rest.call(null,in$__3051);
var G__3056 = cljs.core.conj.call(null,out__3052,cljs.core.first.call(null,in$__3051));
in$__3051 = G__3055;
out__3052 = G__3056;
return continue_val;
}
} else
{return out__3052;
}
})(G__3054);}
return G__3053;
});
/**
* Given a map of replacement pairs and a vector/collection, returns a
* vector/seq with any elements = a key in smap replaced with the
* corresponding val in smap
*/
cljs.core.replace = (function replace(smap,coll){
if(cljs.core.truth_(cljs.core.vector_QMARK_.call(null,coll)))
{var n__3057 = cljs.core.count.call(null,coll);
return cljs.core.reduce.call(null,(function (v,i){
var temp__3723__auto____3058 = cljs.core.find.call(null,smap,cljs.core.nth.call(null,v,i));
if(cljs.core.truth_(temp__3723__auto____3058))
{var e__3059 = temp__3723__auto____3058;
return cljs.core.assoc.call(null,v,i,cljs.core.second.call(null,e__3059));
} else
{return v;
}
}),coll,cljs.core.take.call(null,n__3057,cljs.core.iterate.call(null,cljs.core.inc,0)));
} else
{return cljs.core.map.call(null,(function (p1__3050_SHARP_){
var temp__3723__auto____3060 = cljs.core.find.call(null,smap,p1__3050_SHARP_);
if(cljs.core.truth_(temp__3723__auto____3060))
{var e__3061 = temp__3723__auto____3060;
return cljs.core.second.call(null,e__3061);
} else
{return p1__3050_SHARP_;
}
}),coll);
}
});
/**
* Returns a lazy sequence of the elements of coll with duplicates removed
*/
cljs.core.distinct = (function distinct(coll){
var step__3069 = (function step(xs,seen){
return (new cljs.core.LazySeq(null,false,(function (){
return (function (p__3062,seen){
var G__3070,G__3071;G__3070=G__3071=new Object();
while(G__3070===G__3071){
G__3070=(function(continue_val){
var vec__3063__3064 = p__3062;
var f__3065 = cljs.core.nth.call(null,vec__3063__3064,0,null);
var xs__3066 = vec__3063__3064;
var temp__3726__auto____3067 = cljs.core.seq.call(null,xs__3066);
if(cljs.core.truth_(temp__3726__auto____3067))
{var s__3068 = temp__3726__auto____3067;
if(cljs.core.truth_(cljs.core.contains_QMARK_.call(null,seen,f__3065)))
{{
var G__3072 = cljs.core.rest.call(null,s__3068);
var G__3073 = seen;
p__3062 = G__3072;
seen = G__3073;
return continue_val;
}
} else
{return cljs.core.cons.call(null,f__3065,step.call(null,cljs.core.rest.call(null,s__3068),cljs.core.conj.call(null,seen,f__3065)));
}
} else
{return null;
}
})(G__3071);}
return G__3070;
}).call(null,xs,seen);
})));
});
return step__3069.call(null,coll,cljs.core.set([]));
});
cljs.core.butlast = (function butlast(s){
var ret__3074 = cljs.core.Vector.fromArray([]);
var s__3075 = s;
var G__3076,G__3077;G__3076=G__3077=new Object();
while(G__3076===G__3077){
G__3076=(function(continue_val){
if(cljs.core.truth_(cljs.core.next.call(null,s__3075)))
{{
var G__3078 = cljs.core.conj.call(null,ret__3074,cljs.core.first.call(null,s__3075));
var G__3079 = cljs.core.next.call(null,s__3075);
ret__3074 = G__3078;
s__3075 = G__3079;
return continue_val;
}
} else
{return cljs.core.seq.call(null,ret__3074);
}
})(G__3077);}
return G__3076;
});
/**
* Returns the name String of a string, symbol or keyword.
*/
cljs.core.name = (function name(x){
if(cljs.core.truth_(cljs.core.string_QMARK_.call(null,x)))
{return x;
} else
{if(cljs.core.truth_((function (){var or__3576__auto____3080 = cljs.core.keyword_QMARK_.call(null,x);
if(cljs.core.truth_(or__3576__auto____3080))
{return or__3576__auto____3080;
} else
{return cljs.core.symbol_QMARK_.call(null,x);
}
})()))
{var i__3081 = x.lastIndexOf("/");
if(cljs.core.truth_(cljs.core._LT_.call(null,i__3081,0)))
{return cljs.core.subs.call(null,x,2);
} else
{return cljs.core.subs.call(null,x,cljs.core.inc.call(null,i__3081));
}
} else
{if(cljs.core.truth_("﷐'else"))
{return null;
} else
{return null;
}
}
}
});
/**
* Returns the namespace String of a symbol or keyword, or nil if not present.
*/
cljs.core.namespace = (function namespace(x){
if(cljs.core.truth_((function (){var or__3576__auto____3082 = cljs.core.keyword_QMARK_.call(null,x);
if(cljs.core.truth_(or__3576__auto____3082))
{return or__3576__auto____3082;
} else
{return cljs.core.symbol_QMARK_.call(null,x);
}
})()))
{var i__3083 = x.lastIndexOf("/");
if(cljs.core.truth_(cljs.core._GT_.call(null,i__3083,-1)))
{return cljs.core.subs.call(null,x,2,i__3083);
} else
{return null;
}
} else
{return "﷐'else";
}
});
/**
* Returns a map with the keys mapped to the corresponding vals.
*/
cljs.core.zipmap = (function zipmap(keys,vals){
var map__3086 = cljs.core.ObjMap.fromObject([],{});
var ks__3087 = cljs.core.seq.call(null,keys);
var vs__3088 = cljs.core.seq.call(null,vals);
var G__3090,G__3091;G__3090=G__3091=new Object();
while(G__3090===G__3091){
G__3090=(function(continue_val){
if(cljs.core.truth_((function (){var and__3574__auto____3089 = ks__3087;
if(cljs.core.truth_(and__3574__auto____3089))
{return vs__3088;
} else
{return and__3574__auto____3089;
}
})()))
{{
var G__3092 = cljs.core.assoc.call(null,map__3086,cljs.core.first.call(null,ks__3087),cljs.core.first.call(null,vs__3088));
var G__3093 = cljs.core.next.call(null,ks__3087);
var G__3094 = cljs.core.next.call(null,vs__3088);
map__3086 = G__3092;
ks__3087 = G__3093;
vs__3088 = G__3094;
return continue_val;
}
} else
{return map__3086;
}
})(G__3091);}
return G__3090;
});
/**
* Returns the x for which (k x), a number, is greatest.
* @param {...*} var_args
*/
cljs.core.max_key = (function() {
var max_key = null;
var max_key__3097 = (function (k,x){
return x;
});
var max_key__3098 = (function (k,x,y){
if(cljs.core.truth_(cljs.core._GT_.call(null,k.call(null,x),k.call(null,y))))
{return x;
} else
{return y;
}
});
var max_key__3099 = (function() {
var G__3101__delegate = function (k,x,y,more){
return cljs.core.reduce.call(null,(function (p1__3084_SHARP_,p2__3085_SHARP_){
return max_key.call(null,k,p1__3084_SHARP_,p2__3085_SHARP_);
}),max_key.call(null,k,x,y),more);
};
var G__3101 = function (k,x,y,var_args){
var more = null;
if (goog.isDef(var_args)) {
more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
}
return G__3101__delegate.call(this, k, x, y, more);
};
G__3101.cljs$lang$maxFixedArity = 3;
G__3101.cljs$lang$applyTo = (function (arglist__3102){
var k = cljs.core.first(arglist__3102);
var x = cljs.core.first(cljs.core.next(arglist__3102));
var y = cljs.core.first(cljs.core.next(cljs.core.next(arglist__3102)));
var more = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__3102)));
return G__3101__delegate.call(this, k, x, y, more);
});
return G__3101;
})()
;
max_key = function(k,x,y,var_args){
var more = var_args;
switch(arguments.length){
case 2 :
return max_key__3097.call(this,k,x);
case 3 :
return max_key__3098.call(this,k,x,y);
default:
return max_key__3099.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
max_key.cljs$lang$maxFixedArity = 3;
max_key.cljs$lang$applyTo = max_key__3099.cljs$lang$applyTo;
return max_key;
})()
;
/**
* Returns the x for which (k x), a number, is least.
* @param {...*} var_args
*/
cljs.core.min_key = (function() {
var min_key = null;
var min_key__3103 = (function (k,x){
return x;
});
var min_key__3104 = (function (k,x,y){
if(cljs.core.truth_(cljs.core._LT_.call(null,k.call(null,x),k.call(null,y))))
{return x;
} else
{return y;
}
});
var min_key__3105 = (function() {
var G__3107__delegate = function (k,x,y,more){
return cljs.core.reduce.call(null,(function (p1__3095_SHARP_,p2__3096_SHARP_){
return min_key.call(null,k,p1__3095_SHARP_,p2__3096_SHARP_);
}),min_key.call(null,k,x,y),more);
};
var G__3107 = function (k,x,y,var_args){
var more = null;
if (goog.isDef(var_args)) {
more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
}
return G__3107__delegate.call(this, k, x, y, more);
};
G__3107.cljs$lang$maxFixedArity = 3;
G__3107.cljs$lang$applyTo = (function (arglist__3108){
var k = cljs.core.first(arglist__3108);
var x = cljs.core.first(cljs.core.next(arglist__3108));
var y = cljs.core.first(cljs.core.next(cljs.core.next(arglist__3108)));
var more = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__3108)));
return G__3107__delegate.call(this, k, x, y, more);
});
return G__3107;
})()
;
min_key = function(k,x,y,var_args){
var more = var_args;
switch(arguments.length){
case 2 :
return min_key__3103.call(this,k,x);
case 3 :
return min_key__3104.call(this,k,x,y);
default:
return min_key__3105.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
min_key.cljs$lang$maxFixedArity = 3;
min_key.cljs$lang$applyTo = min_key__3105.cljs$lang$applyTo;
return min_key;
})()
;
/**
* Returns a lazy sequence of lists like partition, but may include
* partitions with fewer than n items at the end.
*/
cljs.core.partition_all = (function() {
var partition_all = null;
var partition_all__3111 = (function (n,coll){
return partition_all.call(null,n,n,coll);
});
var partition_all__3112 = (function (n,step,coll){
return (new cljs.core.LazySeq(null,false,(function (){
var temp__3726__auto____3109 = cljs.core.seq.call(null,coll);
if(cljs.core.truth_(temp__3726__auto____3109))
{var s__3110 = temp__3726__auto____3109;
return cljs.core.cons.call(null,cljs.core.take.call(null,n,s__3110),partition_all.call(null,n,step,cljs.core.drop.call(null,step,s__3110)));
} else
{return null;
}
})));
});
partition_all = function(n,step,coll){
switch(arguments.length){
case 2 :
return partition_all__3111.call(this,n,step);
case 3 :
return partition_all__3112.call(this,n,step,coll);
}
throw('Invalid arity: ' + arguments.length);
};
return partition_all;
})()
;
/**
* Returns a lazy sequence of successive items from coll while
* (pred item) returns true. pred must be free of side-effects.
*/
cljs.core.take_while = (function take_while(pred,coll){
return (new cljs.core.LazySeq(null,false,(function (){
var temp__3726__auto____3114 = cljs.core.seq.call(null,coll);
if(cljs.core.truth_(temp__3726__auto____3114))
{var s__3115 = temp__3726__auto____3114;
if(cljs.core.truth_(pred.call(null,cljs.core.first.call(null,s__3115))))
{return cljs.core.cons.call(null,cljs.core.first.call(null,s__3115),take_while.call(null,pred,cljs.core.rest.call(null,s__3115)));
} else
{return null;
}
} else
{return null;
}
})));
});
/**
* Returns a lazy seq of nums from start (inclusive) to end
* (exclusive), by step, where start defaults to 0, step to 1, and end
* to infinity.
*/
cljs.core.range = (function() {
var range = null;
var range__3116 = (function (){
return cljs.core.iterate.call(null,cljs.core.inc,0);
});
var range__3117 = (function (end){
return range.call(null,0,end,1);
});
var range__3118 = (function (start,end){
return range.call(null,start,end,1);
});
var range__3119 = (function (start,end,step){
return cljs.core.take_while.call(null,(function (n){
return cljs.core._LT_.call(null,n,end);
}),cljs.core.iterate.call(null,(function (x){
return cljs.core._PLUS_.call(null,x,step);
}),start));
});
range = function(start,end,step){
switch(arguments.length){
case 0 :
return range__3116.call(this);
case 1 :
return range__3117.call(this,start);
case 2 :
return range__3118.call(this,start,end);
case 3 :
return range__3119.call(this,start,end,step);
}
throw('Invalid arity: ' + arguments.length);
};
return range;
})()
;
/**
* Returns a lazy seq of every nth item in coll.
*/
cljs.core.take_nth = (function take_nth(n,coll){
return (new cljs.core.LazySeq(null,false,(function (){
var temp__3726__auto____3121 = cljs.core.seq.call(null,coll);
if(cljs.core.truth_(temp__3726__auto____3121))
{var s__3122 = temp__3726__auto____3121;
return cljs.core.cons.call(null,cljs.core.first.call(null,s__3122),take_nth.call(null,n,cljs.core.drop.call(null,n,s__3122)));
} else
{return null;
}
})));
});
/**
* Returns a vector of [(take-while pred coll) (drop-while pred coll)]
*/
cljs.core.split_with = (function split_with(pred,coll){
return cljs.core.Vector.fromArray([cljs.core.take_while.call(null,pred,coll),cljs.core.drop_while.call(null,pred,coll)]);
});
/**
* Applies f to each value in coll, splitting it each time f returns
* a new value. Returns a lazy seq of partitions.
*/
cljs.core.partition_by = (function partition_by(f,coll){
return (new cljs.core.LazySeq(null,false,(function (){
var temp__3726__auto____3124 = cljs.core.seq.call(null,coll);
if(cljs.core.truth_(temp__3726__auto____3124))
{var s__3125 = temp__3726__auto____3124;
var fst__3126 = cljs.core.first.call(null,s__3125);
var fv__3127 = f.call(null,fst__3126);
var run__3128 = cljs.core.cons.call(null,fst__3126,cljs.core.take_while.call(null,(function (p1__3123_SHARP_){
return cljs.core._EQ_.call(null,fv__3127,f.call(null,p1__3123_SHARP_));
}),cljs.core.next.call(null,s__3125)));
return cljs.core.cons.call(null,run__3128,partition_by.call(null,f,cljs.core.seq.call(null,cljs.core.drop.call(null,cljs.core.count.call(null,run__3128),s__3125))));
} else
{return null;
}
})));
});
/**
* Returns a map from distinct items in coll to the number of times
* they appear.
*/
cljs.core.frequencies = (function frequencies(coll){
return cljs.core.reduce.call(null,(function (counts,x){
return cljs.core.assoc.call(null,counts,x,cljs.core.inc.call(null,cljs.core.get.call(null,counts,x,0)));
}),cljs.core.ObjMap.fromObject([],{}),coll);
});
/**
* Returns a lazy seq of the intermediate values of the reduction (as
* per reduce) of coll by f, starting with init.
*/
cljs.core.reductions = (function() {
var reductions = null;
var reductions__3143 = (function (f,coll){
return (new cljs.core.LazySeq(null,false,(function (){
var temp__3723__auto____3139 = cljs.core.seq.call(null,coll);
if(cljs.core.truth_(temp__3723__auto____3139))
{var s__3140 = temp__3723__auto____3139;
return reductions.call(null,f,cljs.core.first.call(null,s__3140),cljs.core.rest.call(null,s__3140));
} else
{return cljs.core.list.call(null,f.call(null));
}
})));
});
var reductions__3144 = (function (f,init,coll){
return cljs.core.cons.call(null,init,(new cljs.core.LazySeq(null,false,(function (){
var temp__3726__auto____3141 = cljs.core.seq.call(null,coll);
if(cljs.core.truth_(temp__3726__auto____3141))
{var s__3142 = temp__3726__auto____3141;
return reductions.call(null,f,f.call(null,init,cljs.core.first.call(null,s__3142)),cljs.core.rest.call(null,s__3142));
} else
{return null;
}
}))));
});
reductions = function(f,init,coll){
switch(arguments.length){
case 2 :
return reductions__3143.call(this,f,init);
case 3 :
return reductions__3144.call(this,f,init,coll);
}
throw('Invalid arity: ' + arguments.length);
};
return reductions;
})()
;
/**
* Takes a set of functions and returns a fn that is the juxtaposition
* of those fns. The returned fn takes a variable number of args, and
* returns a vector containing the result of applying each fn to the
* args (left-to-right).
* ((juxt a b c) x) => [(a x) (b x) (c x)]
*
* TODO: Implement apply
* @param {...*} var_args
*/
cljs.core.juxt = (function() {
var juxt = null;
var juxt__3147 = (function (f){
return (function() {
var G__3152 = null;
var G__3152__3153 = (function (){
return cljs.core.vector.call(null,f.call(null));
});
var G__3152__3154 = (function (x){
return cljs.core.vector.call(null,f.call(null,x));
});
var G__3152__3155 = (function (x,y){
return cljs.core.vector.call(null,f.call(null,x,y));
});
var G__3152__3156 = (function (x,y,z){
return cljs.core.vector.call(null,f.call(null,x,y,z));
});
var G__3152__3157 = (function() {
var G__3159__delegate = function (x,y,z,args){
return cljs.core.vector.call(null,cljs.core.apply.call(null,f,x,y,z,args));
};
var G__3159 = function (x,y,z,var_args){
var args = null;
if (goog.isDef(var_args)) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
}
return G__3159__delegate.call(this, x, y, z, args);
};
G__3159.cljs$lang$maxFixedArity = 3;
G__3159.cljs$lang$applyTo = (function (arglist__3160){
var x = cljs.core.first(arglist__3160);
var y = cljs.core.first(cljs.core.next(arglist__3160));
var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__3160)));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__3160)));
return G__3159__delegate.call(this, x, y, z, args);
});
return G__3159;
})()
;
G__3152 = function(x,y,z,var_args){
var args = var_args;
switch(arguments.length){
case 0 :
return G__3152__3153.call(this);
case 1 :
return G__3152__3154.call(this,x);
case 2 :
return G__3152__3155.call(this,x,y);
case 3 :
return G__3152__3156.call(this,x,y,z);
default:
return G__3152__3157.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
G__3152.cljs$lang$maxFixedArity = 3;
G__3152.cljs$lang$applyTo = G__3152__3157.cljs$lang$applyTo;
return G__3152;
})()
});
var juxt__3148 = (function (f,g){
return (function() {
var G__3161 = null;
var G__3161__3162 = (function (){
return cljs.core.vector.call(null,f.call(null),g.call(null));
});
var G__3161__3163 = (function (x){
return cljs.core.vector.call(null,f.call(null,x),g.call(null,x));
});
var G__3161__3164 = (function (x,y){
return cljs.core.vector.call(null,f.call(null,x,y),g.call(null,x,y));
});
var G__3161__3165 = (function (x,y,z){
return cljs.core.vector.call(null,f.call(null,x,y,z),g.call(null,x,y,z));
});
var G__3161__3166 = (function() {
var G__3168__delegate = function (x,y,z,args){
return cljs.core.vector.call(null,cljs.core.apply.call(null,f,x,y,z,args),cljs.core.apply.call(null,g,x,y,z,args));
};
var G__3168 = function (x,y,z,var_args){
var args = null;
if (goog.isDef(var_args)) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
}
return G__3168__delegate.call(this, x, y, z, args);
};
G__3168.cljs$lang$maxFixedArity = 3;
G__3168.cljs$lang$applyTo = (function (arglist__3169){
var x = cljs.core.first(arglist__3169);
var y = cljs.core.first(cljs.core.next(arglist__3169));
var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__3169)));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__3169)));
return G__3168__delegate.call(this, x, y, z, args);
});
return G__3168;
})()
;
G__3161 = function(x,y,z,var_args){
var args = var_args;
switch(arguments.length){
case 0 :
return G__3161__3162.call(this);
case 1 :
return G__3161__3163.call(this,x);
case 2 :
return G__3161__3164.call(this,x,y);
case 3 :
return G__3161__3165.call(this,x,y,z);
default:
return G__3161__3166.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
G__3161.cljs$lang$maxFixedArity = 3;
G__3161.cljs$lang$applyTo = G__3161__3166.cljs$lang$applyTo;
return G__3161;
})()
});
var juxt__3149 = (function (f,g,h){
return (function() {
var G__3170 = null;
var G__3170__3171 = (function (){
return cljs.core.vector.call(null,f.call(null),g.call(null),h.call(null));
});
var G__3170__3172 = (function (x){
return cljs.core.vector.call(null,f.call(null,x),g.call(null,x),h.call(null,x));
});
var G__3170__3173 = (function (x,y){
return cljs.core.vector.call(null,f.call(null,x,y),g.call(null,x,y),h.call(null,x,y));
});
var G__3170__3174 = (function (x,y,z){
return cljs.core.vector.call(null,f.call(null,x,y,z),g.call(null,x,y,z),h.call(null,x,y,z));
});
var G__3170__3175 = (function() {
var G__3177__delegate = function (x,y,z,args){
return cljs.core.vector.call(null,cljs.core.apply.call(null,f,x,y,z,args),cljs.core.apply.call(null,g,x,y,z,args),cljs.core.apply.call(null,h,x,y,z,args));
};
var G__3177 = function (x,y,z,var_args){
var args = null;
if (goog.isDef(var_args)) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
}
return G__3177__delegate.call(this, x, y, z, args);
};
G__3177.cljs$lang$maxFixedArity = 3;
G__3177.cljs$lang$applyTo = (function (arglist__3178){
var x = cljs.core.first(arglist__3178);
var y = cljs.core.first(cljs.core.next(arglist__3178));
var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__3178)));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__3178)));
return G__3177__delegate.call(this, x, y, z, args);
});
return G__3177;
})()
;
G__3170 = function(x,y,z,var_args){
var args = var_args;
switch(arguments.length){
case 0 :
return G__3170__3171.call(this);
case 1 :
return G__3170__3172.call(this,x);
case 2 :
return G__3170__3173.call(this,x,y);
case 3 :
return G__3170__3174.call(this,x,y,z);
default:
return G__3170__3175.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
G__3170.cljs$lang$maxFixedArity = 3;
G__3170.cljs$lang$applyTo = G__3170__3175.cljs$lang$applyTo;
return G__3170;
})()
});
var juxt__3150 = (function() {
var G__3179__delegate = function (f,g,h,fs){
var fs__3146 = cljs.core.list_STAR_.call(null,f,g,h,fs);
return (function() {
var G__3180 = null;
var G__3180__3181 = (function (){
return cljs.core.reduce.call(null,(function (p1__3129_SHARP_,p2__3130_SHARP_){
return cljs.core.conj.call(null,p1__3129_SHARP_,p2__3130_SHARP_.call(null));
}),cljs.core.Vector.fromArray([]),fs__3146);
});
var G__3180__3182 = (function (x){
return cljs.core.reduce.call(null,(function (p1__3131_SHARP_,p2__3132_SHARP_){
return cljs.core.conj.call(null,p1__3131_SHARP_,p2__3132_SHARP_.call(null,x));
}),cljs.core.Vector.fromArray([]),fs__3146);
});
var G__3180__3183 = (function (x,y){
return cljs.core.reduce.call(null,(function (p1__3133_SHARP_,p2__3134_SHARP_){
return cljs.core.conj.call(null,p1__3133_SHARP_,p2__3134_SHARP_.call(null,x,y));
}),cljs.core.Vector.fromArray([]),fs__3146);
});
var G__3180__3184 = (function (x,y,z){
return cljs.core.reduce.call(null,(function (p1__3135_SHARP_,p2__3136_SHARP_){
return cljs.core.conj.call(null,p1__3135_SHARP_,p2__3136_SHARP_.call(null,x,y,z));
}),cljs.core.Vector.fromArray([]),fs__3146);
});
var G__3180__3185 = (function() {
var G__3187__delegate = function (x,y,z,args){
return cljs.core.reduce.call(null,(function (p1__3137_SHARP_,p2__3138_SHARP_){
return cljs.core.conj.call(null,p1__3137_SHARP_,cljs.core.apply.call(null,p2__3138_SHARP_,x,y,z,args));
}),cljs.core.Vector.fromArray([]),fs__3146);
};
var G__3187 = function (x,y,z,var_args){
var args = null;
if (goog.isDef(var_args)) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
}
return G__3187__delegate.call(this, x, y, z, args);
};
G__3187.cljs$lang$maxFixedArity = 3;
G__3187.cljs$lang$applyTo = (function (arglist__3188){
var x = cljs.core.first(arglist__3188);
var y = cljs.core.first(cljs.core.next(arglist__3188));
var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__3188)));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__3188)));
return G__3187__delegate.call(this, x, y, z, args);
});
return G__3187;
})()
;
G__3180 = function(x,y,z,var_args){
var args = var_args;
switch(arguments.length){
case 0 :
return G__3180__3181.call(this);
case 1 :
return G__3180__3182.call(this,x);
case 2 :
return G__3180__3183.call(this,x,y);
case 3 :
return G__3180__3184.call(this,x,y,z);
default:
return G__3180__3185.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
G__3180.cljs$lang$maxFixedArity = 3;
G__3180.cljs$lang$applyTo = G__3180__3185.cljs$lang$applyTo;
return G__3180;
})()
};
var G__3179 = function (f,g,h,var_args){
var fs = null;
if (goog.isDef(var_args)) {
fs = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);
}
return G__3179__delegate.call(this, f, g, h, fs);
};
G__3179.cljs$lang$maxFixedArity = 3;
G__3179.cljs$lang$applyTo = (function (arglist__3189){
var f = cljs.core.first(arglist__3189);
var g = cljs.core.first(cljs.core.next(arglist__3189));
var h = cljs.core.first(cljs.core.next(cljs.core.next(arglist__3189)));
var fs = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__3189)));
return G__3179__delegate.call(this, f, g, h, fs);
});
return G__3179;
})()
;
juxt = function(f,g,h,var_args){
var fs = var_args;
switch(arguments.length){
case 1 :
return juxt__3147.call(this,f);
case 2 :
return juxt__3148.call(this,f,g);
case 3 :
return juxt__3149.call(this,f,g,h);
default:
return juxt__3150.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
juxt.cljs$lang$maxFixedArity = 3;
juxt.cljs$lang$applyTo = juxt__3150.cljs$lang$applyTo;
return juxt;
})()
;
/**
* When lazy sequences are produced via functions that have side
* effects, any effects other than those needed to produce the first
* element in the seq do not occur until the seq is consumed. dorun can
* be used to force any effects. Walks through the successive nexts of
* the seq, does not retain the head and returns nil.
*/
cljs.core.dorun = (function() {
var dorun = null;
var dorun__3191 = (function (coll){
var G__3194,G__3195;G__3194=G__3195=new Object();
while(G__3194===G__3195){
G__3194=(function(continue_val){
if(cljs.core.truth_(cljs.core.seq.call(null,coll)))
{{
var G__3196 = cljs.core.next.call(null,coll);
coll = G__3196;
return continue_val;
}
} else
{return null;
}
})(G__3195);}
return G__3194;
});
var dorun__3192 = (function (n,coll){
var G__3197,G__3198;G__3197=G__3198=new Object();
while(G__3197===G__3198){
G__3197=(function(continue_val){
if(cljs.core.truth_((function (){var and__3574__auto____3190 = cljs.core.seq.call(null,coll);
if(cljs.core.truth_(and__3574__auto____3190))
{return cljs.core.pos_QMARK_.call(null,n);
} else
{return and__3574__auto____3190;
}
})()))
{{
var G__3199 = cljs.core.dec.call(null,n);
var G__3200 = cljs.core.next.call(null,coll);
n = G__3199;
coll = G__3200;
return continue_val;
}
} else
{return null;
}
})(G__3198);}
return G__3197;
});
dorun = function(n,coll){
switch(arguments.length){
case 1 :
return dorun__3191.call(this,n);
case 2 :
return dorun__3192.call(this,n,coll);
}
throw('Invalid arity: ' + arguments.length);
};
return dorun;
})()
;
/**
* When lazy sequences are produced via functions that have side
* effects, any effects other than those needed to produce the first
* element in the seq do not occur until the seq is consumed. doall can
* be used to force any effects. Walks through the successive nexts of
* the seq, retains the head and returns it, thus causing the entire
* seq to reside in memory at one time.
*/
cljs.core.doall = (function() {
var doall = null;
var doall__3201 = (function (coll){
cljs.core.dorun.call(null,coll);
return coll;
});
var doall__3202 = (function (n,coll){
cljs.core.dorun.call(null,n,coll);
return coll;
});
doall = function(n,coll){
switch(arguments.length){
case 1 :
return doall__3201.call(this,n);
case 2 :
return doall__3202.call(this,n,coll);
}
throw('Invalid arity: ' + arguments.length);
};
return doall;
})()
;
/**
* Returns the result of (re-find re s) if re fully matches s.
*/
cljs.core.re_matches = (function re_matches(re,s){
var matches__3204 = re.exec(s);
if(cljs.core.truth_(cljs.core._EQ_.call(null,cljs.core.first.call(null,matches__3204),s)))
{if(cljs.core.truth_(cljs.core._EQ_.call(null,cljs.core.count.call(null,matches__3204),1)))
{return cljs.core.first.call(null,matches__3204);
} else
{return cljs.core.vec.call(null,matches__3204);
}
} else
{return null;
}
});
/**
* Returns the first regex match, if any, of s to re, using
* re.exec(s). Returns a vector, containing first the matching
* substring, then any capturing groups if the regular expression contains
* capturing groups.
*/
cljs.core.re_find = (function re_find(re,s){
var matches__3205 = re.exec(s);
if(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,matches__3205)))
{return null;
} else
{if(cljs.core.truth_(cljs.core._EQ_.call(null,cljs.core.count.call(null,matches__3205),1)))
{return cljs.core.first.call(null,matches__3205);
} else
{return cljs.core.vec.call(null,matches__3205);
}
}
});
/**
* Returns a lazy sequence of successive matches of re in s.
*/
cljs.core.re_seq = (function re_seq(re,s){
var match_data__3206 = cljs.core.re_find.call(null,re,s);
var match_idx__3207 = s.search(re);
var match_str__3208 = (cljs.core.truth_(cljs.core.coll_QMARK_.call(null,match_data__3206))?cljs.core.first.call(null,match_data__3206):match_data__3206);
var post_match__3209 = cljs.core.subs.call(null,s,cljs.core._PLUS_.call(null,match_idx__3207,cljs.core.count.call(null,match_str__3208)));
if(cljs.core.truth_(match_data__3206))
{return (new cljs.core.LazySeq(null,false,(function (){
return cljs.core.cons.call(null,match_data__3206,re_seq.call(null,re,post_match__3209));
})));
} else
{return null;
}
});
/**
* Returns an instance of RegExp which has compiled the provided string.
*/
cljs.core.re_pattern = (function re_pattern(s){
return (new goog.global['RegExp'](s));
});
cljs.core.pr_sequential = (function pr_sequential(print_one,begin,sep,end,opts,coll){
return cljs.core.concat.call(null,cljs.core.Vector.fromArray([begin]),cljs.core.flatten1.call(null,cljs.core.interpose.call(null,cljs.core.Vector.fromArray([sep]),cljs.core.map.call(null,(function (p1__3210_SHARP_){
return print_one.call(null,p1__3210_SHARP_,opts);
}),coll))),cljs.core.Vector.fromArray([end]));
});
cljs.core.string_print = (function string_print(x){
goog.global['print'].call(null,x);
return null;
});
cljs.core.flush = (function flush(){
return null;
});
cljs.core.pr_seq = (function pr_seq(obj,opts){
if(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,obj)))
{return cljs.core.list.call(null,"nil");
} else
{if(cljs.core.truth_(cljs.core.undefined_QMARK_.call(null,obj)))
{return cljs.core.list.call(null,"#<undefined>");
} else
{if(cljs.core.truth_("﷐'else"))
{return cljs.core.concat.call(null,(cljs.core.truth_((function (){var and__3574__auto____3211 = cljs.core.get.call(null,opts,"﷐'meta");
if(cljs.core.truth_(and__3574__auto____3211))
{var and__3574__auto____3214 = (function (){var x__105__auto____3212 = obj;
if(cljs.core.truth_((function (){var and__3574__auto____3213 = x__105__auto____3212;
if(cljs.core.truth_(and__3574__auto____3213))
{return x__105__auto____3212.cljs$core$IMeta$;
} else
{return and__3574__auto____3213;
}
})()))
{return true;
} else
{return cljs.core.type_satisfies_.call(null,cljs.core.IMeta,x__105__auto____3212);
}
})();
if(cljs.core.truth_(and__3574__auto____3214))
{return cljs.core.meta.call(null,obj);
} else
{return and__3574__auto____3214;
}
} else
{return and__3574__auto____3211;
}
})())?cljs.core.concat.call(null,cljs.core.Vector.fromArray(["^"]),pr_seq.call(null,cljs.core.meta.call(null,obj),opts),cljs.core.Vector.fromArray([" "])):null),(cljs.core.truth_((function (){var x__105__auto____3215 = obj;
if(cljs.core.truth_((function (){var and__3574__auto____3216 = x__105__auto____3215;
if(cljs.core.truth_(and__3574__auto____3216))
{return x__105__auto____3215.cljs$core$IPrintable$;
} else
{return and__3574__auto____3216;
}
})()))
{return true;
} else
{return cljs.core.type_satisfies_.call(null,cljs.core.IPrintable,x__105__auto____3215);
}
})())?cljs.core._pr_seq.call(null,obj,opts):cljs.core.list.call(null,"#<",cljs.core.str.call(null,obj),">")));
} else
{return null;
}
}
}
});
/**
* Prints a sequence of objects to a string, observing all the
* options given in opts
*/
cljs.core.pr_str_with_opts = (function pr_str_with_opts(objs,opts){
var first_obj__3217 = cljs.core.first.call(null,objs);
var sb__3218 = (new goog.string.StringBuffer());
var G__3219__3220 = cljs.core.seq.call(null,objs);
var G__3225,G__3226;G__3225=G__3226=new Object();
while(G__3225===G__3226){
G__3225=(function(continue_val){
if(cljs.core.truth_(G__3219__3220))
{var obj__3221 = cljs.core.first.call(null,G__3219__3220);
if(cljs.core.truth_(cljs.core.identical_QMARK_.call(null,obj__3221,first_obj__3217)))
{} else
{sb__3218.append(" ");
}
var G__3222__3223 = cljs.core.seq.call(null,cljs.core.pr_seq.call(null,obj__3221,opts));
var G__3227,G__3228;G__3227=G__3228=new Object();
while(G__3227===G__3228){
G__3227=(function(continue_val){
if(cljs.core.truth_(G__3222__3223))
{var string__3224 = cljs.core.first.call(null,G__3222__3223);
sb__3218.append(string__3224);
{
var G__3229 = cljs.core.next.call(null,G__3222__3223);
G__3222__3223 = G__3229;
return continue_val;
}
} else
{}
})(G__3228);}
{
var G__3230 = cljs.core.next.call(null,G__3219__3220);
G__3219__3220 = G__3230;
return continue_val;
}
} else
{}
})(G__3226);}
return cljs.core.str.call(null,sb__3218);
});
/**
* Prints a sequence of objects using string-print, observing all
* the options given in opts
*/
cljs.core.pr_with_opts = (function pr_with_opts(objs,opts){
var first_obj__3231 = cljs.core.first.call(null,objs);
var G__3232__3233 = cljs.core.seq.call(null,objs);
var G__3238,G__3239;G__3238=G__3239=new Object();
while(G__3238===G__3239){
G__3238=(function(continue_val){
if(cljs.core.truth_(G__3232__3233))
{var obj__3234 = cljs.core.first.call(null,G__3232__3233);
if(cljs.core.truth_(cljs.core.identical_QMARK_.call(null,obj__3234,first_obj__3231)))
{} else
{cljs.core.string_print.call(null," ");
}
var G__3235__3236 = cljs.core.seq.call(null,cljs.core.pr_seq.call(null,obj__3234,opts));
var G__3240,G__3241;G__3240=G__3241=new Object();
while(G__3240===G__3241){
G__3240=(function(continue_val){
if(cljs.core.truth_(G__3235__3236))
{var string__3237 = cljs.core.first.call(null,G__3235__3236);
cljs.core.string_print.call(null,string__3237);
{
var G__3242 = cljs.core.next.call(null,G__3235__3236);
G__3235__3236 = G__3242;
return continue_val;
}
} else
{}
})(G__3241);}
{
var G__3243 = cljs.core.next.call(null,G__3232__3233);
G__3232__3233 = G__3243;
return continue_val;
}
} else
{return null;
}
})(G__3239);}
return G__3238;
});
cljs.core.newline = (function newline(opts){
cljs.core.string_print.call(null,"\n");
if(cljs.core.truth_(cljs.core.get.call(null,opts,"﷐'flush-on-newline")))
{return cljs.core.flush.call(null);
} else
{return null;
}
});
cljs.core._STAR_flush_on_newline_STAR_ = true;
cljs.core._STAR_print_readably_STAR_ = true;
cljs.core._STAR_print_meta_STAR_ = false;
cljs.core._STAR_print_dup_STAR_ = false;
cljs.core.pr_opts = (function pr_opts(){
return cljs.core.ObjMap.fromObject(["﷐'flush-on-newline","﷐'readably","﷐'meta","﷐'dup"],{"﷐'flush-on-newline":cljs.core._STAR_flush_on_newline_STAR_,"﷐'readably":cljs.core._STAR_print_readably_STAR_,"﷐'meta":cljs.core._STAR_print_meta_STAR_,"﷐'dup":cljs.core._STAR_print_dup_STAR_});
});
/**
* pr to a string, returning it. Fundamental entrypoint to IPrintable.
* @param {...*} var_args
*/
cljs.core.pr_str = (function() {
var pr_str__delegate = function (objs){
return cljs.core.pr_str_with_opts.call(null,objs,cljs.core.pr_opts.call(null));
};
var pr_str = function (var_args){
var objs = null;
if (goog.isDef(var_args)) {
objs = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);
}
return pr_str__delegate.call(this, objs);
};
pr_str.cljs$lang$maxFixedArity = 0;
pr_str.cljs$lang$applyTo = (function (arglist__3244){
var objs = cljs.core.seq( arglist__3244 );;
return pr_str__delegate.call(this, objs);
});
return pr_str;
})()
;
/**
* Prints the object(s) using string-print. Prints the
* object(s), separated by spaces if there is more than one.
* By default, pr and prn print in a way that objects can be
* read by the reader
* @param {...*} var_args
*/
cljs.core.pr = (function() {
var pr__delegate = function (objs){
return cljs.core.pr_with_opts.call(null,objs,cljs.core.pr_opts.call(null));
};
var pr = function (var_args){
var objs = null;
if (goog.isDef(var_args)) {
objs = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);
}
return pr__delegate.call(this, objs);
};
pr.cljs$lang$maxFixedArity = 0;
pr.cljs$lang$applyTo = (function (arglist__3245){
var objs = cljs.core.seq( arglist__3245 );;
return pr__delegate.call(this, objs);
});
return pr;
})()
;
/**
* Prints the object(s) using string-print.
* print and println produce output for human consumption.
* @param {...*} var_args
*/
cljs.core.print = (function() {
var cljs_core_print__delegate = function (objs){
return cljs.core.pr_with_opts.call(null,objs,cljs.core.assoc.call(null,cljs.core.pr_opts.call(null),"﷐'readably",false));
};
var cljs_core_print = function (var_args){
var objs = null;
if (goog.isDef(var_args)) {
objs = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);
}
return cljs_core_print__delegate.call(this, objs);
};
cljs_core_print.cljs$lang$maxFixedArity = 0;
cljs_core_print.cljs$lang$applyTo = (function (arglist__3246){
var objs = cljs.core.seq( arglist__3246 );;
return cljs_core_print__delegate.call(this, objs);
});
return cljs_core_print;
})()
;
/**
* Same as print followed by (newline)
* @param {...*} var_args
*/
cljs.core.println = (function() {
var println__delegate = function (objs){
cljs.core.pr_with_opts.call(null,objs,cljs.core.assoc.call(null,cljs.core.pr_opts.call(null),"﷐'readably",false));
return cljs.core.newline.call(null,cljs.core.pr_opts.call(null));
};
var println = function (var_args){
var objs = null;
if (goog.isDef(var_args)) {
objs = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);
}
return println__delegate.call(this, objs);
};
println.cljs$lang$maxFixedArity = 0;
println.cljs$lang$applyTo = (function (arglist__3247){
var objs = cljs.core.seq( arglist__3247 );;
return println__delegate.call(this, objs);
});
return println;
})()
;
/**
* Same as pr followed by (newline).
* @param {...*} var_args
*/
cljs.core.prn = (function() {
var prn__delegate = function (objs){
cljs.core.pr_with_opts.call(null,objs,cljs.core.pr_opts.call(null));
return cljs.core.newline.call(null,cljs.core.pr_opts.call(null));
};
var prn = function (var_args){
var objs = null;
if (goog.isDef(var_args)) {
objs = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);
}
return prn__delegate.call(this, objs);
};
prn.cljs$lang$maxFixedArity = 0;
prn.cljs$lang$applyTo = (function (arglist__3248){
var objs = cljs.core.seq( arglist__3248 );;
return prn__delegate.call(this, objs);
});
return prn;
})()
;
cljs.core.HashMap.prototype.cljs$core$IPrintable$ = true;
cljs.core.HashMap.prototype.cljs$core$IPrintable$_pr_seq = (function (coll,opts){
var pr_pair__3249 = (function (keyval){
return cljs.core.pr_sequential.call(null,cljs.core.pr_seq,""," ","",opts,keyval);
});
return cljs.core.pr_sequential.call(null,pr_pair__3249,"{",", ","}",opts,coll);
});
(cljs.core.IPrintable["number"] = true);
(cljs.core._pr_seq["number"] = (function (n,opts){
return cljs.core.list.call(null,cljs.core.str.call(null,n));
}));
cljs.core.IndexedSeq.prototype.cljs$core$IPrintable$ = true;
cljs.core.IndexedSeq.prototype.cljs$core$IPrintable$_pr_seq = (function (coll,opts){
return cljs.core.pr_sequential.call(null,cljs.core.pr_seq,"("," ",")",opts,coll);
});
cljs.core.LazySeq.prototype.cljs$core$IPrintable$ = true;
cljs.core.LazySeq.prototype.cljs$core$IPrintable$_pr_seq = (function (coll,opts){
return cljs.core.pr_sequential.call(null,cljs.core.pr_seq,"("," ",")",opts,coll);
});
(cljs.core.IPrintable["boolean"] = true);
(cljs.core._pr_seq["boolean"] = (function (bool,opts){
return cljs.core.list.call(null,cljs.core.str.call(null,bool));
}));
cljs.core.Set.prototype.cljs$core$IPrintable$ = true;
cljs.core.Set.prototype.cljs$core$IPrintable$_pr_seq = (function (coll,opts){
return cljs.core.pr_sequential.call(null,cljs.core.pr_seq,"#{"," ","}",opts,coll);
});
(cljs.core.IPrintable["string"] = true);
(cljs.core._pr_seq["string"] = (function (obj,opts){
if(cljs.core.truth_(cljs.core.keyword_QMARK_.call(null,obj)))
{return cljs.core.list.call(null,cljs.core.str.call(null,":",(function (){var temp__3726__auto____3250 = cljs.core.namespace.call(null,obj);
if(cljs.core.truth_(temp__3726__auto____3250))
{var nspc__3251 = temp__3726__auto____3250;
return cljs.core.str.call(null,nspc__3251,"/");
} else
{return null;
}
})(),cljs.core.name.call(null,obj)));
} else
{if(cljs.core.truth_(cljs.core.symbol_QMARK_.call(null,obj)))
{return cljs.core.list.call(null,cljs.core.str.call(null,(function (){var temp__3726__auto____3252 = cljs.core.namespace.call(null,obj);
if(cljs.core.truth_(temp__3726__auto____3252))
{var nspc__3253 = temp__3726__auto____3252;
return cljs.core.str.call(null,nspc__3253,"/");
} else
{return null;
}
})(),cljs.core.name.call(null,obj)));
} else
{if(cljs.core.truth_("﷐'else"))
{return cljs.core.list.call(null,(cljs.core.truth_("﷐'readably".call(null,opts))?goog.string.quote.call(null,obj):obj));
} else
{return null;
}
}
}
}));
cljs.core.Vector.prototype.cljs$core$IPrintable$ = true;
cljs.core.Vector.prototype.cljs$core$IPrintable$_pr_seq = (function (coll,opts){
return cljs.core.pr_sequential.call(null,cljs.core.pr_seq,"["," ","]",opts,coll);
});
cljs.core.List.prototype.cljs$core$IPrintable$ = true;
cljs.core.List.prototype.cljs$core$IPrintable$_pr_seq = (function (coll,opts){
return cljs.core.pr_sequential.call(null,cljs.core.pr_seq,"("," ",")",opts,coll);
});
(cljs.core.IPrintable["array"] = true);
(cljs.core._pr_seq["array"] = (function (a,opts){
return cljs.core.pr_sequential.call(null,cljs.core.pr_seq,"#<Array [",", ","]>",opts,a);
}));
cljs.core.EmptyList.prototype.cljs$core$IPrintable$ = true;
cljs.core.EmptyList.prototype.cljs$core$IPrintable$_pr_seq = (function (coll,opts){
return cljs.core.list.call(null,"()");
});
cljs.core.Cons.prototype.cljs$core$IPrintable$ = true;
cljs.core.Cons.prototype.cljs$core$IPrintable$_pr_seq = (function (coll,opts){
return cljs.core.pr_sequential.call(null,cljs.core.pr_seq,"("," ",")",opts,coll);
});
cljs.core.ObjMap.prototype.cljs$core$IPrintable$ = true;
cljs.core.ObjMap.prototype.cljs$core$IPrintable$_pr_seq = (function (coll,opts){
var pr_pair__3254 = (function (keyval){
return cljs.core.pr_sequential.call(null,cljs.core.pr_seq,""," ","",opts,keyval);
});
return cljs.core.pr_sequential.call(null,pr_pair__3254,"{",", ","}",opts,coll);
});
/**
* @constructor
*/
cljs.core.Atom = (function (state,meta,validator){
this.state = state;
this.meta = meta;
this.validator = validator;
})
cljs.core.Atom.prototype.cljs$core$IPrintable$ = true;
cljs.core.Atom.prototype.cljs$core$IPrintable$_pr_seq = (function (a,opts){
var this__3255 = this;
return cljs.core.concat.call(null,cljs.core.Vector.fromArray(["#<Atom: "]),cljs.core._pr_seq.call(null,this__3255.state,opts),">");
});
cljs.core.Atom.prototype.cljs$core$IMeta$ = true;
cljs.core.Atom.prototype.cljs$core$IMeta$_meta = (function (_){
var this__3256 = this;
return this__3256.meta;
});
cljs.core.Atom.prototype.cljs$core$IDeref$ = true;
cljs.core.Atom.prototype.cljs$core$IDeref$_deref = (function (_){
var this__3257 = this;
return this__3257.state;
});
cljs.core.Atom.prototype.cljs$core$IEquiv$ = true;
cljs.core.Atom.prototype.cljs$core$IEquiv$_equiv = (function (o,other){
var this__3258 = this;
return cljs.core.identical_QMARK_.call(null,o,other);
});
/**
* Creates and returns an Atom with an initial value of x and zero or
* more options (in any order):
*
* :meta metadata-map
*
* :validator validate-fn
*
* If metadata-map is supplied, it will be come the metadata on the
* atom. validate-fn must be nil or a side-effect-free fn of one
* argument, which will be passed the intended new state on any state
* change. If the new state is unacceptable, the validate-fn should
* return false or throw an exception.
* @param {...*} var_args
*/
cljs.core.atom = (function() {
var atom = null;
var atom__3265 = (function (x){
return (new cljs.core.Atom(x,null,null));
});
var atom__3266 = (function() {
var G__3268__delegate = function (x,p__3259){
var map__3260__3261 = p__3259;
var map__3260__3262 = (cljs.core.truth_(cljs.core.seq_QMARK_.call(null,map__3260__3261))?cljs.core.apply.call(null,cljs.core.hash_map,map__3260__3261):map__3260__3261);
var validator__3263 = cljs.core.get.call(null,map__3260__3262,"﷐'validator");
var meta__3264 = cljs.core.get.call(null,map__3260__3262,"﷐'meta");
return (new cljs.core.Atom(x,meta__3264,validator__3263));
};
var G__3268 = function (x,var_args){
var p__3259 = null;
if (goog.isDef(var_args)) {
p__3259 = cljs.core.array_seq(Array.prototype.slice.call(arguments, 1),0);
}
return G__3268__delegate.call(this, x, p__3259);
};
G__3268.cljs$lang$maxFixedArity = 1;
G__3268.cljs$lang$applyTo = (function (arglist__3269){
var x = cljs.core.first(arglist__3269);
var p__3259 = cljs.core.rest(arglist__3269);
return G__3268__delegate.call(this, x, p__3259);
});
return G__3268;
})()
;
atom = function(x,var_args){
var p__3259 = var_args;
switch(arguments.length){
case 1 :
return atom__3265.call(this,x);
default:
return atom__3266.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
atom.cljs$lang$maxFixedArity = 1;
atom.cljs$lang$applyTo = atom__3266.cljs$lang$applyTo;
return atom;
})()
;
/**
* Sets the value of atom to newval without regard for the
* current value. Returns newval.
*/
cljs.core.reset_BANG_ = (function reset_BANG_(a,newval){
var temp__3726__auto____3270 = a.validator;
if(cljs.core.truth_(temp__3726__auto____3270))
{var v__3271 = temp__3726__auto____3270;
if(cljs.core.truth_(v__3271.call(null,newval)))
{} else
{throw "Validator rejected reference state";
}
} else
{}
return a.state = newval;
});
/**
* Atomically swaps the value of atom to be:
* (apply f current-value-of-atom args). Note that f may be called
* multiple times, and thus should be free of side effects. Returns
* the value that was swapped in.
* @param {...*} var_args
*/
cljs.core.swap_BANG_ = (function() {
var swap_BANG_ = null;
var swap_BANG___3272 = (function (a,f){
return cljs.core.reset_BANG_.call(null,a,f.call(null,a.state));
});
var swap_BANG___3273 = (function (a,f,x){
return cljs.core.reset_BANG_.call(null,a,f.call(null,a.state,x));
});
var swap_BANG___3274 = (function (a,f,x,y){
return cljs.core.reset_BANG_.call(null,a,f.call(null,a.state,x,y));
});
var swap_BANG___3275 = (function (a,f,x,y,z){
return cljs.core.reset_BANG_.call(null,a,f.call(null,a.state,x,y,z));
});
var swap_BANG___3276 = (function() {
var G__3278__delegate = function (a,f,x,y,z,more){
return cljs.core.reset_BANG_.call(null,a,cljs.core.apply.call(null,f,a.state,x,y,z,more));
};
var G__3278 = function (a,f,x,y,z,var_args){
var more = null;
if (goog.isDef(var_args)) {
more = cljs.core.array_seq(Array.prototype.slice.call(arguments, 5),0);
}
return G__3278__delegate.call(this, a, f, x, y, z, more);
};
G__3278.cljs$lang$maxFixedArity = 5;
G__3278.cljs$lang$applyTo = (function (arglist__3279){
var a = cljs.core.first(arglist__3279);
var f = cljs.core.first(cljs.core.next(arglist__3279));
var x = cljs.core.first(cljs.core.next(cljs.core.next(arglist__3279)));
var y = cljs.core.first(cljs.core.next(cljs.core.next(cljs.core.next(arglist__3279))));
var z = cljs.core.first(cljs.core.next(cljs.core.next(cljs.core.next(cljs.core.next(arglist__3279)))));
var more = cljs.core.rest(cljs.core.next(cljs.core.next(cljs.core.next(cljs.core.next(arglist__3279)))));
return G__3278__delegate.call(this, a, f, x, y, z, more);
});
return G__3278;
})()
;
swap_BANG_ = function(a,f,x,y,z,var_args){
var more = var_args;
switch(arguments.length){
case 2 :
return swap_BANG___3272.call(this,a,f);
case 3 :
return swap_BANG___3273.call(this,a,f,x);
case 4 :
return swap_BANG___3274.call(this,a,f,x,y);
case 5 :
return swap_BANG___3275.call(this,a,f,x,y,z);
default:
return swap_BANG___3276.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
swap_BANG_.cljs$lang$maxFixedArity = 5;
swap_BANG_.cljs$lang$applyTo = swap_BANG___3276.cljs$lang$applyTo;
return swap_BANG_;
})()
;
/**
* Atomically sets the value of atom to newval if and only if the
* current value of the atom is identical to oldval. Returns true if
* set happened, else false.
*/
cljs.core.compare_and_set_BANG_ = (function compare_and_set_BANG_(a,oldval,newval){
if(cljs.core.truth_(cljs.core._EQ_.call(null,a.state,oldval)))
{cljs.core.reset_BANG_.call(null,a,newval);
return true;
} else
{return false;
}
});
cljs.core.deref = (function deref(o){
return cljs.core._deref.call(null,o);
});
/**
* Sets the validator-fn for a var/ref/agent/atom. validator-fn must be nil or a
* side-effect-free fn of one argument, which will be passed the intended
* new state on any state change. If the new state is unacceptable, the
* validator-fn should return false or throw an exception. If the current state (root
* value if var) is not acceptable to the new validator, an exception
* will be thrown and the validator will not be changed.
*/
cljs.core.set_validator_BANG_ = (function set_validator_BANG_(iref,val){
return iref.validator = val;
});
/**
* Gets the validator-fn for a var/ref/agent/atom.
*/
cljs.core.get_validator = (function get_validator(iref){
return iref.validator;
});
/**
* Atomically sets the metadata for a namespace/var/ref/agent/atom to be:
*
* (apply f its-current-meta args)
*
* f must be free of side-effects
* @param {...*} var_args
*/
cljs.core.alter_meta_BANG_ = (function() {
var alter_meta_BANG___delegate = function (iref,f,args){
return iref.meta = cljs.core.apply.call(null,f,iref.meta,args);
};
var alter_meta_BANG_ = function (iref,f,var_args){
var args = null;
if (goog.isDef(var_args)) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2),0);
}
return alter_meta_BANG___delegate.call(this, iref, f, args);
};
alter_meta_BANG_.cljs$lang$maxFixedArity = 2;
alter_meta_BANG_.cljs$lang$applyTo = (function (arglist__3280){
var iref = cljs.core.first(arglist__3280);
var f = cljs.core.first(cljs.core.next(arglist__3280));
var args = cljs.core.rest(cljs.core.next(arglist__3280));
return alter_meta_BANG___delegate.call(this, iref, f, args);
});
return alter_meta_BANG_;
})()
;
/**
* Atomically resets the metadata for a namespace/var/ref/agent/atom
*/
cljs.core.reset_meta_BANG_ = (function reset_meta_BANG_(iref,m){
return iref.meta = m;
});
cljs.core.gensym_counter = null;
/**
* Returns a new symbol with a unique name. If a prefix string is
* supplied, the name is prefix# where # is some unique number. If
* prefix is not supplied, the prefix is 'G__'.
*/
cljs.core.gensym = (function() {
var gensym = null;
var gensym__3281 = (function (){
return gensym.call(null,"G__");
});
var gensym__3282 = (function (prefix_string){
if(cljs.core.truth_(cljs.core.nil_QMARK_.call(null,cljs.core.gensym_counter)))
{cljs.core.gensym_counter = cljs.core.atom.call(null,0);
} else
{}
return cljs.core.symbol.call(null,cljs.core.str.call(null,prefix_string,cljs.core.swap_BANG_.call(null,cljs.core.gensym_counter,cljs.core.inc)));
});
gensym = function(prefix_string){
switch(arguments.length){
case 0 :
return gensym__3281.call(this);
case 1 :
return gensym__3282.call(this,prefix_string);
}
throw('Invalid arity: ' + arguments.length);
};
return gensym;
})()
;
cljs.core.fixture1 = 1;
cljs.core.fixture2 = 2;
/**
* @constructor
*/
cljs.core.Delay = (function (f,state){
this.f = f;
this.state = state;
})
cljs.core.Delay.prototype.cljs$core$IPending$ = true;
cljs.core.Delay.prototype.cljs$core$IPending$_realized_QMARK_ = (function (d){
var this__3284 = this;
return cljs.core.not.call(null,cljs.core.nil_QMARK_.call(null,cljs.core.deref.call(null,this__3284.state)));
});
cljs.core.Delay.prototype.cljs$core$IDeref$ = true;
cljs.core.Delay.prototype.cljs$core$IDeref$_deref = (function (_){
var this__3285 = this;
if(cljs.core.truth_(cljs.core.deref.call(null,this__3285.state)))
{} else
{cljs.core.swap_BANG_.call(null,this__3285.state,this__3285.f);
}
return cljs.core.deref.call(null,this__3285.state);
});
/**
* Takes a body of expressions and yields a Delay object that will
* invoke the body only the first time it is forced (with force or deref/@), and
* will cache the result and return it on all subsequent force
* calls.
* @param {...*} var_args
*/
cljs.core.delay = (function() {
var delay__delegate = function (body){
return (new cljs.core.Delay((function (){
return cljs.core.apply.call(null,cljs.core.identity,body);
}),cljs.core.atom.call(null,null)));
};
var delay = function (var_args){
var body = null;
if (goog.isDef(var_args)) {
body = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);
}
return delay__delegate.call(this, body);
};
delay.cljs$lang$maxFixedArity = 0;
delay.cljs$lang$applyTo = (function (arglist__3286){
var body = cljs.core.seq( arglist__3286 );;
return delay__delegate.call(this, body);
});
return delay;
})()
;
/**
* returns true if x is a Delay created with delay
*/
cljs.core.delay_QMARK_ = (function delay_QMARK_(x){
return cljs.core.instance_QMARK_.call(null,cljs.core.Delay,x);
});
/**
* If x is a Delay, returns the (possibly cached) value of its expression, else returns x
*/
cljs.core.force = (function force(x){
if(cljs.core.truth_(cljs.core.delay_QMARK_.call(null,x)))
{return cljs.core.deref.call(null,x);
} else
{return x;
}
});
/**
* Returns true if a value has been produced for a promise, delay, future or lazy sequence.
*/
cljs.core.realized_QMARK_ = (function realized_QMARK_(d){
return cljs.core._realized_QMARK_.call(null,d);
});
/**
* Recursively transforms JavaScript arrays into ClojureScript
* vectors, and JavaScript objects into ClojureScript maps. With
* option ':keywordize-keys true' will convert object fields from
* strings to keywords.
* @param {...*} var_args
*/
cljs.core.js__GT_clj = (function() {
var js__GT_clj__delegate = function (x,options){
var map__3287__3288 = options;
var map__3287__3289 = (cljs.core.truth_(cljs.core.seq_QMARK_.call(null,map__3287__3288))?cljs.core.apply.call(null,cljs.core.hash_map,map__3287__3288):map__3287__3288);
var keywordize_keys__3290 = cljs.core.get.call(null,map__3287__3289,"﷐'keywordize-keys");
var keyfn__3291 = (cljs.core.truth_(keywordize_keys__3290)?cljs.core.keyword:cljs.core.str);
var f__3297 = (function thisfn(x){
if(cljs.core.truth_(cljs.core.seq_QMARK_.call(null,x)))
{return cljs.core.doall.call(null,cljs.core.map.call(null,thisfn,x));
} else
{if(cljs.core.truth_(cljs.core.coll_QMARK_.call(null,x)))
{return cljs.core.into.call(null,cljs.core.empty.call(null,x),cljs.core.map.call(null,thisfn,x));
} else
{if(cljs.core.truth_(goog.isArray.call(null,x)))
{return cljs.core.vec.call(null,cljs.core.map.call(null,thisfn,x));
} else
{if(cljs.core.truth_(goog.isObject.call(null,x)))
{return cljs.core.into.call(null,cljs.core.ObjMap.fromObject([],{}),(function (){var iter__159__auto____3296 = (function iter__3292(s__3293){
return (new cljs.core.LazySeq(null,false,(function (){
var s__3293__3294 = s__3293;
var G__3298,G__3299;G__3298=G__3299=new Object();
while(G__3298===G__3299){
G__3298=(function(continue_val){
if(cljs.core.truth_(cljs.core.seq.call(null,s__3293__3294)))
{var k__3295 = cljs.core.first.call(null,s__3293__3294);
return cljs.core.cons.call(null,cljs.core.Vector.fromArray([keyfn__3291.call(null,k__3295),thisfn.call(null,(x[k__3295]))]),iter__3292.call(null,cljs.core.rest.call(null,s__3293__3294)));
} else
{return null;
}
})(G__3299);}
return G__3298;
})));
});
return iter__159__auto____3296.call(null,cljs.core.js_keys.call(null,x));
})());
} else
{if(cljs.core.truth_("﷐'else"))
{return x;
} else
{return null;
}
}
}
}
}
});
return f__3297.call(null,x);
};
var js__GT_clj = function (x,var_args){
var options = null;
if (goog.isDef(var_args)) {
options = cljs.core.array_seq(Array.prototype.slice.call(arguments, 1),0);
}
return js__GT_clj__delegate.call(this, x, options);
};
js__GT_clj.cljs$lang$maxFixedArity = 1;
js__GT_clj.cljs$lang$applyTo = (function (arglist__3300){
var x = cljs.core.first(arglist__3300);
var options = cljs.core.rest(arglist__3300);
return js__GT_clj__delegate.call(this, x, options);
});
return js__GT_clj;
})()
;
/**
* Returns a memoized version of a referentially transparent function. The
* memoized version of the function keeps a cache of the mapping from arguments
* to results and, when calls with the same arguments are repeated often, has
* higher performance at the expense of higher memory use.
*/
cljs.core.memoize = (function memoize(f){
var mem__3301 = cljs.core.atom.call(null,cljs.core.ObjMap.fromObject([],{}));
return (function() {
var G__3305__delegate = function (args){
var temp__3723__auto____3302 = cljs.core.get.call(null,cljs.core.deref.call(null,mem__3301),args);
if(cljs.core.truth_(temp__3723__auto____3302))
{var v__3303 = temp__3723__auto____3302;
return v__3303;
} else
{var ret__3304 = cljs.core.apply.call(null,f,args);
cljs.core.swap_BANG_.call(null,mem__3301,cljs.core.assoc,args,ret__3304);
return ret__3304;
}
};
var G__3305 = function (var_args){
var args = null;
if (goog.isDef(var_args)) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);
}
return G__3305__delegate.call(this, args);
};
G__3305.cljs$lang$maxFixedArity = 0;
G__3305.cljs$lang$applyTo = (function (arglist__3306){
var args = cljs.core.seq( arglist__3306 );;
return G__3305__delegate.call(this, args);
});
return G__3305;
})()
;
});
/**
* trampoline can be used to convert algorithms requiring mutual
* recursion without stack consumption. Calls f with supplied args, if
* any. If f returns a fn, calls that fn with no arguments, and
* continues to repeat, until the return value is not a fn, then
* returns that non-fn value. Note that if you want to return a fn as a
* final value, you must wrap it in some data structure and unpack it
* after trampoline returns.
* @param {...*} var_args
*/
cljs.core.trampoline = (function() {
var trampoline = null;
var trampoline__3308 = (function (f){
var G__3311,G__3312;G__3311=G__3312=new Object();
while(G__3311===G__3312){
G__3311=(function(continue_val){
var ret__3307 = f.call(null);
if(cljs.core.truth_(cljs.core.fn_QMARK_.call(null,ret__3307)))
{{
var G__3313 = ret__3307;
f = G__3313;
return continue_val;
}
} else
{return ret__3307;
}
})(G__3312);}
return G__3311;
});
var trampoline__3309 = (function() {
var G__3314__delegate = function (f,args){
return trampoline.call(null,(function (){
return cljs.core.apply.call(null,f,args);
}));
};
var G__3314 = function (f,var_args){
var args = null;
if (goog.isDef(var_args)) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 1),0);
}
return G__3314__delegate.call(this, f, args);
};
G__3314.cljs$lang$maxFixedArity = 1;
G__3314.cljs$lang$applyTo = (function (arglist__3315){
var f = cljs.core.first(arglist__3315);
var args = cljs.core.rest(arglist__3315);
return G__3314__delegate.call(this, f, args);
});
return G__3314;
})()
;
trampoline = function(f,var_args){
var args = var_args;
switch(arguments.length){
case 1 :
return trampoline__3308.call(this,f);
default:
return trampoline__3309.apply(this,arguments);
}
throw('Invalid arity: ' + arguments.length);
};
trampoline.cljs$lang$maxFixedArity = 1;
trampoline.cljs$lang$applyTo = trampoline__3309.cljs$lang$applyTo;
return trampoline;
})()
;
/**
* Returns a random floating point number between 0 (inclusive) and
* n (default 1) (exclusive).
*/
cljs.core.rand = (function() {
var rand = null;
var rand__3316 = (function (){
return rand.call(null,1);
});
var rand__3317 = (function (n){
return Math.random() * n;
});
rand = function(n){
switch(arguments.length){
case 0 :
return rand__3316.call(this);
case 1 :
return rand__3317.call(this,n);
}
throw('Invalid arity: ' + arguments.length);
};
return rand;
})()
;
/**
* Returns a random integer between 0 (inclusive) and n (exclusive).
*/
cljs.core.rand_int = (function rand_int(n){
return Math.floor(Math.random() * n);
});
/**
* Return a random element of the (sequential) collection. Will have
* the same performance characteristics as nth for the given
* collection.
*/
cljs.core.rand_nth = (function rand_nth(coll){
return cljs.core.nth.call(null,coll,cljs.core.rand_int.call(null,cljs.core.count.call(null,coll)));
});
/**
* Returns a map of the elements of coll keyed by the result of
* f on each element. The value at each key will be a vector of the
* corresponding elements, in the order they appeared in coll.
*/
cljs.core.group_by = (function group_by(f,coll){
return cljs.core.reduce.call(null,(function (ret,x){
var k__3319 = f.call(null,x);
return cljs.core.assoc.call(null,ret,k__3319,cljs.core.conj.call(null,cljs.core.get.call(null,ret,k__3319,cljs.core.Vector.fromArray([])),x));
}),cljs.core.ObjMap.fromObject([],{}),coll);
});
/**
* Creates a hierarchy object for use with derive, isa? etc.
*/
cljs.core.make_hierarchy = (function make_hierarchy(){
return cljs.core.ObjMap.fromObject(["﷐'parents","﷐'descendants","﷐'ancestors"],{"﷐'parents":cljs.core.ObjMap.fromObject([],{}),"﷐'descendants":cljs.core.ObjMap.fromObject([],{}),"﷐'ancestors":cljs.core.ObjMap.fromObject([],{})});
});
cljs.core.global_hierarchy = cljs.core.atom.call(null,cljs.core.make_hierarchy.call(null));
/**
* Returns true if (= child parent), or child is directly or indirectly derived from
* parent, either via a Java type inheritance relationship or a
* relationship established via derive. h must be a hierarchy obtained
* from make-hierarchy, if not supplied defaults to the global
* hierarchy
*/
cljs.core.isa_QMARK_ = (function() {
var isa_QMARK_ = null;
var isa_QMARK___3328 = (function (child,parent){
return isa_QMARK_.call(null,cljs.core.deref.call(null,cljs.core.global_hierarchy),child,parent);
});
var isa_QMARK___3329 = (function (h,child,parent){
var or__3576__auto____3320 = cljs.core._EQ_.call(null,child,parent);
if(cljs.core.truth_(or__3576__auto____3320))
{return or__3576__auto____3320;
} else
{var or__3576__auto____3321 = cljs.core.contains_QMARK_.call(null,"﷐'ancestors".call(null,h).call(null,child),parent);
if(cljs.core.truth_(or__3576__auto____3321))
{return or__3576__auto____3321;
} else
{var and__3574__auto____3322 = cljs.core.vector_QMARK_.call(null,parent);
if(cljs.core.truth_(and__3574__auto____3322))
{var and__3574__auto____3323 = cljs.core.vector_QMARK_.call(null,child);
if(cljs.core.truth_(and__3574__auto____3323))
{var and__3574__auto____3324 = cljs.core._EQ_.call(null,cljs.core.count.call(null,parent),cljs.core.count.call(null,child));
if(cljs.core.truth_(and__3574__auto____3324))
{var ret__3325 = true;
var i__3326 = 0;
var G__3331,G__3332;G__3331=G__3332=new Object();
while(G__3331===G__3332){
G__3331=(function(continue_val){
if(cljs.core.truth_((function (){var or__3576__auto____3327 = cljs.core.not.call(null,ret__3325);
if(cljs.core.truth_(or__3576__auto____3327))
{return or__3576__auto____3327;
} else
{return cljs.core._EQ_.call(null,i__3326,cljs.core.count.call(null,parent));
}
})()))
{return ret__3325;
} else
{{
var G__3333 = isa_QMARK_.call(null,h,child.call(null,i__3326),parent.call(null,i__3326));
var G__3334 = cljs.core.inc.call(null,i__3326);
ret__3325 = G__3333;
i__3326 = G__3334;
return continue_val;
}
}
})(G__3332);}
return G__3331;
} else
{return and__3574__auto____3324;
}
} else
{return and__3574__auto____3323;
}
} else
{return and__3574__auto____3322;
}
}
}
});
isa_QMARK_ = function(h,child,parent){
switch(arguments.length){
case 2 :
return isa_QMARK___3328.call(this,h,child);
case 3 :
return isa_QMARK___3329.call(this,h,child,parent);
}
throw('Invalid arity: ' + arguments.length);
};
return isa_QMARK_;
})()
;
/**
* Returns the immediate parents of tag, either via a Java type
* inheritance relationship or a relationship established via derive. h
* must be a hierarchy obtained from make-hierarchy, if not supplied
* defaults to the global hierarchy
*/
cljs.core.parents = (function() {
var parents = null;
var parents__3335 = (function (tag){
return parents.call(null,cljs.core.deref.call(null,cljs.core.global_hierarchy),tag);
});
var parents__3336 = (function (h,tag){
return cljs.core.not_empty.call(null,cljs.core.get.call(null,"﷐'parents".call(null,h),tag));
});
parents = function(h,tag){
switch(arguments.length){
case 1 :
return parents__3335.call(this,h);
case 2 :
return parents__3336.call(this,h,tag);
}
throw('Invalid arity: ' + arguments.length);
};
return parents;
})()
;
/**
* Returns the immediate and indirect parents of tag, either via a Java type
* inheritance relationship or a relationship established via derive. h
* must be a hierarchy obtained from make-hierarchy, if not supplied
* defaults to the global hierarchy
*/
cljs.core.ancestors = (function() {
var ancestors = null;
var ancestors__3338 = (function (tag){
return ancestors.call(null,cljs.core.deref.call(null,cljs.core.global_hierarchy),tag);
});
var ancestors__3339 = (function (h,tag){
return cljs.core.not_empty.call(null,cljs.core.get.call(null,"﷐'ancestors".call(null,h),tag));
});
ancestors = function(h,tag){
switch(arguments.length){
case 1 :
return ancestors__3338.call(this,h);
case 2 :
return ancestors__3339.call(this,h,tag);
}
throw('Invalid arity: ' + arguments.length);
};
return ancestors;
})()
;
/**
* Returns the immediate and indirect children of tag, through a
* relationship established via derive. h must be a hierarchy obtained
* from make-hierarchy, if not supplied defaults to the global
* hierarchy. Note: does not work on Java type inheritance
* relationships.
*/
cljs.core.descendants = (function() {
var descendants = null;
var descendants__3341 = (function (tag){
return descendants.call(null,cljs.core.deref.call(null,cljs.core.global_hierarchy),tag);
});
var descendants__3342 = (function (h,tag){
return cljs.core.not_empty.call(null,cljs.core.get.call(null,"﷐'descendants".call(null,h),tag));
});
descendants = function(h,tag){
switch(arguments.length){
case 1 :
return descendants__3341.call(this,h);
case 2 :
return descendants__3342.call(this,h,tag);
}
throw('Invalid arity: ' + arguments.length);
};
return descendants;
})()
;
/**
* Establishes a parent/child relationship between parent and
* tag. Parent must be a namespace-qualified symbol or keyword and
* child can be either a namespace-qualified symbol or keyword or a
* class. h must be a hierarchy obtained from make-hierarchy, if not
* supplied defaults to, and modifies, the global hierarchy.
*/
cljs.core.derive = (function() {
var derive = null;
var derive__3352 = (function (tag,parent){
if(cljs.core.truth_(cljs.core.namespace.call(null,parent)))
{} else
{throw cljs.core.str.call(null,"Assert failed: ",cljs.core.pr_str.call(null,cljs.core.list("ï·‘'namespace","ï·‘'parent")));
}
cljs.core.swap_BANG_.call(null,cljs.core.global_hierarchy,derive,tag,parent);
return null;
});
var derive__3353 = (function (h,tag,parent){
if(cljs.core.truth_(cljs.core.not_EQ_.call(null,tag,parent)))
{} else
{throw cljs.core.str.call(null,"Assert failed: ",cljs.core.pr_str.call(null,cljs.core.list("ï·‘'not=","ï·‘'tag","ï·‘'parent")));
}
var tp__3347 = "﷐'parents".call(null,h);
var td__3348 = "﷐'descendants".call(null,h);
var ta__3349 = "﷐'ancestors".call(null,h);
var tf__3350 = (function (m,source,sources,target,targets){
return cljs.core.reduce.call(null,(function (ret,k){
return cljs.core.assoc.call(null,ret,k,cljs.core.reduce.call(null,cljs.core.conj,cljs.core.get.call(null,targets,k,cljs.core.set([])),cljs.core.cons.call(null,target,targets.call(null,target))));
}),m,cljs.core.cons.call(null,source,sources.call(null,source)));
});
var or__3576__auto____3351 = (cljs.core.truth_(cljs.core.contains_QMARK_.call(null,tp__3347.call(null,tag),parent))?null:(function (){if(cljs.core.truth_(cljs.core.contains_QMARK_.call(null,ta__3349.call(null,tag),parent)))
{throw cljs.core.str.call(null,tag,"already has",parent,"as ancestor");
} else
{}
if(cljs.core.truth_(cljs.core.contains_QMARK_.call(null,ta__3349.call(null,parent),tag)))
{throw cljs.core.str.call(null,"Cyclic derivation:",parent,"has",tag,"as ancestor");
} else
{}
return cljs.core.ObjMap.fromObject(["﷐'parents","﷐'ancestors","﷐'descendants"],{"﷐'parents":cljs.core.assoc.call(null,"﷐'parents".call(null,h),tag,cljs.core.conj.call(null,cljs.core.get.call(null,tp__3347,tag,cljs.core.set([])),parent)),"﷐'ancestors":tf__3350.call(null,"﷐'ancestors".call(null,h),tag,td__3348,parent,ta__3349),"﷐'descendants":tf__3350.call(null,"﷐'descendants".call(null,h),parent,ta__3349,tag,td__3348)});
})());
if(cljs.core.truth_(or__3576__auto____3351))
{return or__3576__auto____3351;
} else
{return h;
}
});
derive = function(h,tag,parent){
switch(arguments.length){
case 2 :
return derive__3352.call(this,h,tag);
case 3 :
return derive__3353.call(this,h,tag,parent);
}
throw('Invalid arity: ' + arguments.length);
};
return derive;
})()
;
/**
* Removes a parent/child relationship between parent and
* tag. h must be a hierarchy obtained from make-hierarchy, if not
* supplied defaults to, and modifies, the global hierarchy.
*/
cljs.core.underive = (function() {
var underive = null;
var underive__3359 = (function (tag,parent){
cljs.core.swap_BANG_.call(null,cljs.core.global_hierarchy,underive,tag,parent);
return null;
});
var underive__3360 = (function (h,tag,parent){
var parentMap__3355 = "﷐'parents".call(null,h);
var childsParents__3356 = (cljs.core.truth_(parentMap__3355.call(null,tag))?cljs.core.disj.call(null,parentMap__3355.call(null,tag),parent):cljs.core.set([]));
var newParents__3357 = (cljs.core.truth_(cljs.core.not_empty.call(null,childsParents__3356))?cljs.core.assoc.call(null,parentMap__3355,tag,childsParents__3356):cljs.core.dissoc.call(null,parentMap__3355,tag));
var deriv_seq__3358 = cljs.core.flatten.call(null,cljs.core.map.call(null,(function (p1__3344_SHARP_){
return cljs.core.cons.call(null,cljs.core.first.call(null,p1__3344_SHARP_),cljs.core.interpose.call(null,cljs.core.first.call(null,p1__3344_SHARP_),cljs.core.second.call(null,p1__3344_SHARP_)));
}),cljs.core.seq.call(null,newParents__3357)));
if(cljs.core.truth_(cljs.core.contains_QMARK_.call(null,parentMap__3355.call(null,tag),parent)))
{return cljs.core.reduce.call(null,(function (p1__3345_SHARP_,p2__3346_SHARP_){
return cljs.core.apply.call(null,cljs.core.derive,p1__3345_SHARP_,p2__3346_SHARP_);
}),cljs.core.make_hierarchy.call(null),cljs.core.partition.call(null,2,deriv_seq__3358));
} else
{return h;
}
});
underive = function(h,tag,parent){
switch(arguments.length){
case 2 :
return underive__3359.call(this,h,tag);
case 3 :
return underive__3360.call(this,h,tag,parent);
}
throw('Invalid arity: ' + arguments.length);
};
return underive;
})()
;
cljs.core.reset_cache = (function reset_cache(method_cache,method_table,cached_hierarchy,hierarchy){
cljs.core.swap_BANG_.call(null,method_cache,(function (_){
return cljs.core.deref.call(null,method_table);
}));
return cljs.core.swap_BANG_.call(null,cached_hierarchy,(function (_){
return cljs.core.deref.call(null,hierarchy);
}));
});
cljs.core.prefers_STAR_ = (function prefers_STAR_(x,y,prefer_table){
var xprefs__3362 = cljs.core.deref.call(null,prefer_table).call(null,x);
var or__3576__auto____3364 = (cljs.core.truth_((function (){var and__3574__auto____3363 = xprefs__3362;
if(cljs.core.truth_(and__3574__auto____3363))
{return xprefs__3362.call(null,y);
} else
{return and__3574__auto____3363;
}
})())?true:null);
if(cljs.core.truth_(or__3576__auto____3364))
{return or__3576__auto____3364;
} else
{var or__3576__auto____3366 = (function (){var ps__3365 = cljs.core.parents.call(null,y);
var G__3369,G__3370;G__3369=G__3370=new Object();
while(G__3369===G__3370){
G__3369=(function(continue_val){
if(cljs.core.truth_(cljs.core.pos_QMARK_.call(null,cljs.core.count.call(null,ps__3365))))
{if(cljs.core.truth_(prefers_STAR_.call(null,x,cljs.core.first.call(null,ps__3365),prefer_table)))
{} else
{}
{
var G__3371 = cljs.core.rest.call(null,ps__3365);
ps__3365 = G__3371;
return continue_val;
}
} else
{return null;
}
})(G__3370);}
return G__3369;
})();
if(cljs.core.truth_(or__3576__auto____3366))
{return or__3576__auto____3366;
} else
{var or__3576__auto____3368 = (function (){var ps__3367 = cljs.core.parents.call(null,x);
var G__3372,G__3373;G__3372=G__3373=new Object();
while(G__3372===G__3373){
G__3372=(function(continue_val){
if(cljs.core.truth_(cljs.core.pos_QMARK_.call(null,cljs.core.count.call(null,ps__3367))))
{if(cljs.core.truth_(prefers_STAR_.call(null,cljs.core.first.call(null,ps__3367),y,prefer_table)))
{} else
{}
{
var G__3374 = cljs.core.rest.call(null,ps__3367);
ps__3367 = G__3374;
return continue_val;
}
} else
{return null;
}
})(G__3373);}
return G__3372;
})();
if(cljs.core.truth_(or__3576__auto____3368))
{return or__3576__auto____3368;
} else
{return false;
}
}
}
});
cljs.core.dominates = (function dominates(x,y,prefer_table){
var or__3576__auto____3375 = cljs.core.prefers_STAR_.call(null,x,y,prefer_table);
if(cljs.core.truth_(or__3576__auto____3375))
{return or__3576__auto____3375;
} else
{return cljs.core.isa_QMARK_.call(null,x,y);
}
});
cljs.core.find_and_cache_best_method = (function find_and_cache_best_method(name,dispatch_val,hierarchy,method_table,prefer_table,method_cache,cached_hierarchy){
var best_entry__3384 = cljs.core.reduce.call(null,(function (be,p__3376){
var vec__3377__3378 = p__3376;
var k__3379 = cljs.core.nth.call(null,vec__3377__3378,0,null);
var ___3380 = cljs.core.nth.call(null,vec__3377__3378,1,null);
var e__3381 = vec__3377__3378;
if(cljs.core.truth_(cljs.core.isa_QMARK_.call(null,dispatch_val,k__3379)))
{var be2__3383 = (cljs.core.truth_((function (){var or__3576__auto____3382 = cljs.core.nil_QMARK_.call(null,be);
if(cljs.core.truth_(or__3576__auto____3382))
{return or__3576__auto____3382;
} else
{return cljs.core.dominates.call(null,k__3379,cljs.core.first.call(null,be),prefer_table);
}
})())?e__3381:be);
if(cljs.core.truth_(cljs.core.dominates.call(null,cljs.core.first.call(null,be2__3383),k__3379,prefer_table)))
{} else
{throw cljs.core.str.call(null,"Multiple methods in multimethod '",name,"' match dispatch value: ",dispatch_val," -> ",k__3379," and ",cljs.core.first.call(null,be2__3383),", and neither is preferred");
}
return be2__3383;
} else
{return null;
}
}),null,cljs.core.deref.call(null,method_table));
if(cljs.core.truth_(best_entry__3384))
{if(cljs.core.truth_(cljs.core._EQ_.call(null,cljs.core.deref.call(null,cached_hierarchy),cljs.core.deref.call(null,hierarchy))))
{cljs.core.swap_BANG_.call(null,method_cache,cljs.core.assoc,dispatch_val,cljs.core.second.call(null,best_entry__3384));
return cljs.core.second.call(null,best_entry__3384);
} else
{cljs.core.reset_cache.call(null,method_cache,method_table,cached_hierarchy,hierarchy);
return find_and_cache_best_method.call(null,name,dispatch_val,hierarchy,method_table,prefer_table,method_cache,cached_hierarchy);
}
} else
{return null;
}
});
cljs.core.IMultiFn = {};
cljs.core._reset = (function _reset(mf){
if(cljs.core.truth_((function (){var and__3574__auto____3385 = mf;
if(cljs.core.truth_(and__3574__auto____3385))
{return mf.cljs$core$IMultiFn$_reset;
} else
{return and__3574__auto____3385;
}
})()))
{return mf.cljs$core$IMultiFn$_reset(mf);
} else
{return (function (){var or__3576__auto____3386 = (_reset[goog.typeOf.call(null,mf)]);
if(cljs.core.truth_(or__3576__auto____3386))
{return or__3576__auto____3386;
} else
{return (_reset["_"]);
}
})().call(null,mf);
}
});
cljs.core._add_method = (function _add_method(mf,dispatch_val,method){
if(cljs.core.truth_((function (){var and__3574__auto____3387 = mf;
if(cljs.core.truth_(and__3574__auto____3387))
{return mf.cljs$core$IMultiFn$_add_method;
} else
{return and__3574__auto____3387;
}
})()))
{return mf.cljs$core$IMultiFn$_add_method(mf,dispatch_val,method);
} else
{return (function (){var or__3576__auto____3388 = (_add_method[goog.typeOf.call(null,mf)]);
if(cljs.core.truth_(or__3576__auto____3388))
{return or__3576__auto____3388;
} else
{return (_add_method["_"]);
}
})().call(null,mf,dispatch_val,method);
}
});
cljs.core._remove_method = (function _remove_method(mf,dispatch_val){
if(cljs.core.truth_((function (){var and__3574__auto____3389 = mf;
if(cljs.core.truth_(and__3574__auto____3389))
{return mf.cljs$core$IMultiFn$_remove_method;
} else
{return and__3574__auto____3389;
}
})()))
{return mf.cljs$core$IMultiFn$_remove_method(mf,dispatch_val);
} else
{return (function (){var or__3576__auto____3390 = (_remove_method[goog.typeOf.call(null,mf)]);
if(cljs.core.truth_(or__3576__auto____3390))
{return or__3576__auto____3390;
} else
{return (_remove_method["_"]);
}
})().call(null,mf,dispatch_val);
}
});
cljs.core._prefer_method = (function _prefer_method(mf,dispatch_val,dispatch_val_y){
if(cljs.core.truth_((function (){var and__3574__auto____3391 = mf;
if(cljs.core.truth_(and__3574__auto____3391))
{return mf.cljs$core$IMultiFn$_prefer_method;
} else
{return and__3574__auto____3391;
}
})()))
{return mf.cljs$core$IMultiFn$_prefer_method(mf,dispatch_val,dispatch_val_y);
} else
{return (function (){var or__3576__auto____3392 = (_prefer_method[goog.typeOf.call(null,mf)]);
if(cljs.core.truth_(or__3576__auto____3392))
{return or__3576__auto____3392;
} else
{return (_prefer_method["_"]);
}
})().call(null,mf,dispatch_val,dispatch_val_y);
}
});
cljs.core._get_method = (function _get_method(mf,dispatch_val){
if(cljs.core.truth_((function (){var and__3574__auto____3393 = mf;
if(cljs.core.truth_(and__3574__auto____3393))
{return mf.cljs$core$IMultiFn$_get_method;
} else
{return and__3574__auto____3393;
}
})()))
{return mf.cljs$core$IMultiFn$_get_method(mf,dispatch_val);
} else
{return (function (){var or__3576__auto____3394 = (_get_method[goog.typeOf.call(null,mf)]);
if(cljs.core.truth_(or__3576__auto____3394))
{return or__3576__auto____3394;
} else
{return (_get_method["_"]);
}
})().call(null,mf,dispatch_val);
}
});
cljs.core._methods = (function _methods(mf){
if(cljs.core.truth_((function (){var and__3574__auto____3395 = mf;
if(cljs.core.truth_(and__3574__auto____3395))
{return mf.cljs$core$IMultiFn$_methods;
} else
{return and__3574__auto____3395;
}
})()))
{return mf.cljs$core$IMultiFn$_methods(mf);
} else
{return (function (){var or__3576__auto____3396 = (_methods[goog.typeOf.call(null,mf)]);
if(cljs.core.truth_(or__3576__auto____3396))
{return or__3576__auto____3396;
} else
{return (_methods["_"]);
}
})().call(null,mf);
}
});
cljs.core._prefers = (function _prefers(mf){
if(cljs.core.truth_((function (){var and__3574__auto____3397 = mf;
if(cljs.core.truth_(and__3574__auto____3397))
{return mf.cljs$core$IMultiFn$_prefers;
} else
{return and__3574__auto____3397;
}
})()))
{return mf.cljs$core$IMultiFn$_prefers(mf);
} else
{return (function (){var or__3576__auto____3398 = (_prefers[goog.typeOf.call(null,mf)]);
if(cljs.core.truth_(or__3576__auto____3398))
{return or__3576__auto____3398;
} else
{return (_prefers["_"]);
}
})().call(null,mf);
}
});
cljs.core._invoke = (function _invoke(mf,args){
if(cljs.core.truth_((function (){var and__3574__auto____3399 = mf;
if(cljs.core.truth_(and__3574__auto____3399))
{return mf.cljs$core$IMultiFn$_invoke;
} else
{return and__3574__auto____3399;
}
})()))
{return mf.cljs$core$IMultiFn$_invoke(mf,args);
} else
{return (function (){var or__3576__auto____3400 = (_invoke[goog.typeOf.call(null,mf)]);
if(cljs.core.truth_(or__3576__auto____3400))
{return or__3576__auto____3400;
} else
{return (_invoke["_"]);
}
})().call(null,mf,args);
}
});
cljs.core.do_invoke = (function do_invoke(mf,dispatch_fn,args){
var dispatch_val__3401 = cljs.core.apply.call(null,dispatch_fn,args);
var target_fn__3402 = cljs.core._get_method.call(null,mf,dispatch_val__3401);
if(cljs.core.truth_(target_fn__3402))
{} else
{throw cljs.core.str.call(null,"No method in multimethod '",cljs.core.name,"' for dispatch value: ",dispatch_val__3401);
}
return cljs.core.apply.call(null,target_fn__3402,args);
});
/**
* @constructor
*/
cljs.core.MultiFn = (function (name,dispatch_fn,default_dispatch_val,hierarchy,method_table,prefer_table,method_cache,cached_hierarchy){
this.name = name;
this.dispatch_fn = dispatch_fn;
this.default_dispatch_val = default_dispatch_val;
this.hierarchy = hierarchy;
this.method_table = method_table;
this.prefer_table = prefer_table;
this.method_cache = method_cache;
this.cached_hierarchy = cached_hierarchy;
})
cljs.core.MultiFn.prototype.cljs$core$IMultiFn$ = true;
cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_reset = (function (mf){
var this__3403 = this;
cljs.core.swap_BANG_.call(null,this__3403.method_table,(function (mf){
return cljs.core.ObjMap.fromObject([],{});
}));
cljs.core.swap_BANG_.call(null,this__3403.method_cache,(function (mf){
return cljs.core.ObjMap.fromObject([],{});
}));
cljs.core.swap_BANG_.call(null,this__3403.prefer_table,(function (mf){
return cljs.core.ObjMap.fromObject([],{});
}));
cljs.core.swap_BANG_.call(null,this__3403.cached_hierarchy,(function (mf){
return null;
}));
return mf;
});
cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_add_method = (function (mf,dispatch_val,method){
var this__3404 = this;
cljs.core.swap_BANG_.call(null,this__3404.method_table,cljs.core.assoc,dispatch_val,method);
cljs.core.reset_cache.call(null,this__3404.method_cache,this__3404.method_table,this__3404.cached_hierarchy,this__3404.hierarchy);
return mf;
});
cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_remove_method = (function (mf,dispatch_val){
var this__3405 = this;
cljs.core.swap_BANG_.call(null,this__3405.method_table,cljs.core.dissoc,dispatch_val);
cljs.core.reset_cache.call(null,this__3405.method_cache,this__3405.method_table,this__3405.cached_hierarchy,this__3405.hierarchy);
return mf;
});
cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_get_method = (function (mf,dispatch_val){
var this__3406 = this;
if(cljs.core.truth_(cljs.core._EQ_.call(null,cljs.core.deref.call(null,this__3406.cached_hierarchy),cljs.core.deref.call(null,this__3406.hierarchy))))
{} else
{cljs.core.reset_cache.call(null,this__3406.method_cache,this__3406.method_table,this__3406.cached_hierarchy,this__3406.hierarchy);
}
var temp__3723__auto____3407 = cljs.core.deref.call(null,this__3406.method_cache).call(null,dispatch_val);
if(cljs.core.truth_(temp__3723__auto____3407))
{var target_fn__3408 = temp__3723__auto____3407;
return target_fn__3408;
} else
{var temp__3723__auto____3409 = cljs.core.find_and_cache_best_method.call(null,this__3406.name,dispatch_val,this__3406.hierarchy,this__3406.method_table,this__3406.prefer_table,this__3406.method_cache,this__3406.cached_hierarchy);
if(cljs.core.truth_(temp__3723__auto____3409))
{var target_fn__3410 = temp__3723__auto____3409;
return target_fn__3410;
} else
{return cljs.core.deref.call(null,this__3406.method_table).call(null,this__3406.default_dispatch_val);
}
}
});
cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_prefer_method = (function (mf,dispatch_val_x,dispatch_val_y){
var this__3411 = this;
if(cljs.core.truth_(cljs.core.prefers_STAR_.call(null,dispatch_val_x,dispatch_val_y,this__3411.prefer_table)))
{throw cljs.core.str.call(null,"Preference conflict in multimethod '",this__3411.name,"': ",dispatch_val_y," is already preferred to ",dispatch_val_x);
} else
{}
cljs.core.swap_BANG_.call(null,this__3411.prefer_table,(function (old){
return cljs.core.assoc.call(null,old,dispatch_val_x,cljs.core.conj.call(null,cljs.core.get.call(null,old,dispatch_val_x,cljs.core.set([])),dispatch_val_y));
}));
return cljs.core.reset_cache.call(null,this__3411.method_cache,this__3411.method_table,this__3411.cached_hierarchy,this__3411.hierarchy);
});
cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_methods = (function (mf){
var this__3412 = this;
return cljs.core.deref.call(null,this__3412.method_table);
});
cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_prefers = (function (mf){
var this__3413 = this;
return cljs.core.deref.call(null,this__3413.prefer_table);
});
cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_invoke = (function (mf,args){
var this__3414 = this;
return cljs.core.do_invoke.call(null,mf,this__3414.dispatch_fn,args);
});
cljs.core.MultiFn.prototype.call = (function() {
var G__3415__delegate = function (_,args){
return cljs.core._invoke.call(null,this,args);
};
var G__3415 = function (_,var_args){
var args = null;
if (goog.isDef(var_args)) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 1),0);
}
return G__3415__delegate.call(this, _, args);
};
G__3415.cljs$lang$maxFixedArity = 1;
G__3415.cljs$lang$applyTo = (function (arglist__3416){
var _ = cljs.core.first(arglist__3416);
var args = cljs.core.rest(arglist__3416);
return G__3415__delegate.call(this, _, args);
});
return G__3415;
})()
;
/**
* Removes all of the methods of multimethod.
*/
cljs.core.remove_all_methods = (function remove_all_methods(multifn){
return cljs.core._reset.call(null,multifn);
});
/**
* Removes the method of multimethod associated with dispatch-value.
*/
cljs.core.remove_method = (function remove_method(multifn,dispatch_val){
return cljs.core._remove_method.call(null,multifn,dispatch_val);
});
/**
* Causes the multimethod to prefer matches of dispatch-val-x over dispatch-val-y
* when there is a conflict
*/
cljs.core.prefer_method = (function prefer_method(multifn,dispatch_val_x,dispatch_val_y){
return cljs.core._prefer_method.call(null,multifn,dispatch_val_x,dispatch_val_y);
});
/**
* Given a multimethod, returns a map of dispatch values -> dispatch fns
*/
cljs.core.methods$ = (function methods$(multifn){
return cljs.core._methods.call(null,multifn);
});
/**
* Given a multimethod and a dispatch value, returns the dispatch fn
* that would apply to that value, or nil if none apply and no default
*/
cljs.core.get_method = (function get_method(multifn,dispatch_val){
return cljs.core._get_method.call(null,multifn,dispatch_val);
});
/**
* Given a multimethod, returns a map of preferred value -> set of other values
*/
cljs.core.prefers = (function prefers(multifn){
return cljs.core._prefers.call(null,multifn);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment