Skip to content

Instantly share code, notes, and snippets.

@dbushenko
Created August 9, 2012 14:32
Show Gist options
  • Save dbushenko/3304677 to your computer and use it in GitHub Desktop.
Save dbushenko/3304677 to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
var COMPILED = false;
var goog = goog || {};
goog.global = this;
goog.DEBUG = true;
goog.LOCALE = "en";
goog.evalWorksForGlobals_ = null;
goog.provide = function(name) {
if(!COMPILED) {
if(goog.getObjectByName(name) && !goog.implicitNamespaces_[name]) {
throw Error('Namespace "' + name + '" already declared.');
}
var namespace = name;
while(namespace = namespace.substring(0, namespace.lastIndexOf("."))) {
goog.implicitNamespaces_[namespace] = true
}
}
goog.exportPath_(name)
};
goog.setTestOnly = function(opt_message) {
if(COMPILED && !goog.DEBUG) {
opt_message = opt_message || "";
throw Error("Importing test-only code into non-debug environment" + opt_message ? ": " + opt_message : ".");
}
};
if(!COMPILED) {
goog.implicitNamespaces_ = {}
}
goog.exportPath_ = function(name, opt_object, opt_objectToExportTo) {
var parts = name.split(".");
var cur = opt_objectToExportTo || goog.global;
if(!(parts[0] in cur) && cur.execScript) {
cur.execScript("var " + parts[0])
}
for(var part;parts.length && (part = parts.shift());) {
if(!parts.length && goog.isDef(opt_object)) {
cur[part] = opt_object
}else {
if(cur[part]) {
cur = cur[part]
}else {
cur = cur[part] = {}
}
}
}
};
goog.getObjectByName = function(name, opt_obj) {
var parts = name.split(".");
var cur = opt_obj || goog.global;
for(var part;part = parts.shift();) {
if(goog.isDefAndNotNull(cur[part])) {
cur = cur[part]
}else {
return null
}
}
return cur
};
goog.globalize = function(obj, opt_global) {
var global = opt_global || goog.global;
for(var x in obj) {
global[x] = obj[x]
}
};
goog.addDependency = function(relPath, provides, requires) {
if(!COMPILED) {
var provide, require;
var path = relPath.replace(/\\/g, "/");
var deps = goog.dependencies_;
for(var i = 0;provide = provides[i];i++) {
deps.nameToPath[provide] = path;
if(!(path in deps.pathToNames)) {
deps.pathToNames[path] = {}
}
deps.pathToNames[path][provide] = true
}
for(var j = 0;require = requires[j];j++) {
if(!(path in deps.requires)) {
deps.requires[path] = {}
}
deps.requires[path][require] = true
}
}
};
goog.require = function(rule) {
if(!COMPILED) {
if(goog.getObjectByName(rule)) {
return
}
var path = goog.getPathFromDeps_(rule);
if(path) {
goog.included_[path] = true;
goog.writeScripts_()
}else {
var errorMessage = "goog.require could not find: " + rule;
if(goog.global.console) {
goog.global.console["error"](errorMessage)
}
throw Error(errorMessage);
}
}
};
goog.basePath = "";
goog.global.CLOSURE_BASE_PATH;
goog.global.CLOSURE_NO_DEPS;
goog.global.CLOSURE_IMPORT_SCRIPT;
goog.nullFunction = function() {
};
goog.identityFunction = function(var_args) {
return arguments[0]
};
goog.abstractMethod = function() {
throw Error("unimplemented abstract method");
};
goog.addSingletonGetter = function(ctor) {
ctor.getInstance = function() {
return ctor.instance_ || (ctor.instance_ = new ctor)
}
};
if(!COMPILED) {
goog.included_ = {};
goog.dependencies_ = {pathToNames:{}, nameToPath:{}, requires:{}, visited:{}, written:{}};
goog.inHtmlDocument_ = function() {
var doc = goog.global.document;
return typeof doc != "undefined" && "write" in doc
};
goog.findBasePath_ = function() {
if(goog.global.CLOSURE_BASE_PATH) {
goog.basePath = goog.global.CLOSURE_BASE_PATH;
return
}else {
if(!goog.inHtmlDocument_()) {
return
}
}
var doc = goog.global.document;
var scripts = doc.getElementsByTagName("script");
for(var i = scripts.length - 1;i >= 0;--i) {
var src = scripts[i].src;
var qmark = src.lastIndexOf("?");
var l = qmark == -1 ? src.length : qmark;
if(src.substr(l - 7, 7) == "base.js") {
goog.basePath = src.substr(0, l - 7);
return
}
}
};
goog.importScript_ = function(src) {
var importScript = goog.global.CLOSURE_IMPORT_SCRIPT || goog.writeScriptTag_;
if(!goog.dependencies_.written[src] && importScript(src)) {
goog.dependencies_.written[src] = true
}
};
goog.writeScriptTag_ = function(src) {
if(goog.inHtmlDocument_()) {
var doc = goog.global.document;
doc.write('<script type="text/javascript" src="' + src + '"></' + "script>");
return true
}else {
return false
}
};
goog.writeScripts_ = function() {
var scripts = [];
var seenScript = {};
var deps = goog.dependencies_;
function visitNode(path) {
if(path in deps.written) {
return
}
if(path in deps.visited) {
if(!(path in seenScript)) {
seenScript[path] = true;
scripts.push(path)
}
return
}
deps.visited[path] = true;
if(path in deps.requires) {
for(var requireName in deps.requires[path]) {
if(requireName in deps.nameToPath) {
visitNode(deps.nameToPath[requireName])
}else {
if(!goog.getObjectByName(requireName)) {
throw Error("Undefined nameToPath for " + requireName);
}
}
}
}
if(!(path in seenScript)) {
seenScript[path] = true;
scripts.push(path)
}
}
for(var path in goog.included_) {
if(!deps.written[path]) {
visitNode(path)
}
}
for(var i = 0;i < scripts.length;i++) {
if(scripts[i]) {
goog.importScript_(goog.basePath + scripts[i])
}else {
throw Error("Undefined script input");
}
}
};
goog.getPathFromDeps_ = function(rule) {
if(rule in goog.dependencies_.nameToPath) {
return goog.dependencies_.nameToPath[rule]
}else {
return null
}
};
goog.findBasePath_();
if(!goog.global.CLOSURE_NO_DEPS) {
goog.importScript_(goog.basePath + "deps.js")
}
}
goog.typeOf = function(value) {
var s = typeof value;
if(s == "object") {
if(value) {
if(value instanceof Array) {
return"array"
}else {
if(value instanceof Object) {
return s
}
}
var className = Object.prototype.toString.call(value);
if(className == "[object Window]") {
return"object"
}
if(className == "[object Array]" || typeof value.length == "number" && typeof value.splice != "undefined" && typeof value.propertyIsEnumerable != "undefined" && !value.propertyIsEnumerable("splice")) {
return"array"
}
if(className == "[object Function]" || typeof value.call != "undefined" && typeof value.propertyIsEnumerable != "undefined" && !value.propertyIsEnumerable("call")) {
return"function"
}
}else {
return"null"
}
}else {
if(s == "function" && typeof value.call == "undefined") {
return"object"
}
}
return s
};
goog.propertyIsEnumerableCustom_ = function(object, propName) {
if(propName in object) {
for(var key in object) {
if(key == propName && Object.prototype.hasOwnProperty.call(object, propName)) {
return true
}
}
}
return false
};
goog.propertyIsEnumerable_ = function(object, propName) {
if(object instanceof Object) {
return Object.prototype.propertyIsEnumerable.call(object, propName)
}else {
return goog.propertyIsEnumerableCustom_(object, propName)
}
};
goog.isDef = function(val) {
return val !== undefined
};
goog.isNull = function(val) {
return val === null
};
goog.isDefAndNotNull = function(val) {
return val != null
};
goog.isArray = function(val) {
return goog.typeOf(val) == "array"
};
goog.isArrayLike = function(val) {
var type = goog.typeOf(val);
return type == "array" || type == "object" && typeof val.length == "number"
};
goog.isDateLike = function(val) {
return goog.isObject(val) && typeof val.getFullYear == "function"
};
goog.isString = function(val) {
return typeof val == "string"
};
goog.isBoolean = function(val) {
return typeof val == "boolean"
};
goog.isNumber = function(val) {
return typeof val == "number"
};
goog.isFunction = function(val) {
return goog.typeOf(val) == "function"
};
goog.isObject = function(val) {
var type = goog.typeOf(val);
return type == "object" || type == "array" || type == "function"
};
goog.getUid = function(obj) {
return obj[goog.UID_PROPERTY_] || (obj[goog.UID_PROPERTY_] = ++goog.uidCounter_)
};
goog.removeUid = function(obj) {
if("removeAttribute" in obj) {
obj.removeAttribute(goog.UID_PROPERTY_)
}
try {
delete obj[goog.UID_PROPERTY_]
}catch(ex) {
}
};
goog.UID_PROPERTY_ = "closure_uid_" + Math.floor(Math.random() * 2147483648).toString(36);
goog.uidCounter_ = 0;
goog.getHashCode = goog.getUid;
goog.removeHashCode = goog.removeUid;
goog.cloneObject = function(obj) {
var type = goog.typeOf(obj);
if(type == "object" || type == "array") {
if(obj.clone) {
return obj.clone()
}
var clone = type == "array" ? [] : {};
for(var key in obj) {
clone[key] = goog.cloneObject(obj[key])
}
return clone
}
return obj
};
Object.prototype.clone;
goog.bindNative_ = function(fn, selfObj, var_args) {
return fn.call.apply(fn.bind, arguments)
};
goog.bindJs_ = function(fn, selfObj, var_args) {
var context = selfObj || goog.global;
if(arguments.length > 2) {
var boundArgs = Array.prototype.slice.call(arguments, 2);
return function() {
var newArgs = Array.prototype.slice.call(arguments);
Array.prototype.unshift.apply(newArgs, boundArgs);
return fn.apply(context, newArgs)
}
}else {
return function() {
return fn.apply(context, arguments)
}
}
};
goog.bind = function(fn, selfObj, var_args) {
if(Function.prototype.bind && Function.prototype.bind.toString().indexOf("native code") != -1) {
goog.bind = goog.bindNative_
}else {
goog.bind = goog.bindJs_
}
return goog.bind.apply(null, arguments)
};
goog.partial = function(fn, var_args) {
var args = Array.prototype.slice.call(arguments, 1);
return function() {
var newArgs = Array.prototype.slice.call(arguments);
newArgs.unshift.apply(newArgs, args);
return fn.apply(this, newArgs)
}
};
goog.mixin = function(target, source) {
for(var x in source) {
target[x] = source[x]
}
};
goog.now = Date.now || function() {
return+new Date
};
goog.globalEval = function(script) {
if(goog.global.execScript) {
goog.global.execScript(script, "JavaScript")
}else {
if(goog.global.eval) {
if(goog.evalWorksForGlobals_ == null) {
goog.global.eval("var _et_ = 1;");
if(typeof goog.global["_et_"] != "undefined") {
delete goog.global["_et_"];
goog.evalWorksForGlobals_ = true
}else {
goog.evalWorksForGlobals_ = false
}
}
if(goog.evalWorksForGlobals_) {
goog.global.eval(script)
}else {
var doc = goog.global.document;
var scriptElt = doc.createElement("script");
scriptElt.type = "text/javascript";
scriptElt.defer = false;
scriptElt.appendChild(doc.createTextNode(script));
doc.body.appendChild(scriptElt);
doc.body.removeChild(scriptElt)
}
}else {
throw Error("goog.globalEval not available");
}
}
};
goog.cssNameMapping_;
goog.cssNameMappingStyle_;
goog.getCssName = function(className, opt_modifier) {
var getMapping = function(cssName) {
return goog.cssNameMapping_[cssName] || cssName
};
var renameByParts = function(cssName) {
var parts = cssName.split("-");
var mapped = [];
for(var i = 0;i < parts.length;i++) {
mapped.push(getMapping(parts[i]))
}
return mapped.join("-")
};
var rename;
if(goog.cssNameMapping_) {
rename = goog.cssNameMappingStyle_ == "BY_WHOLE" ? getMapping : renameByParts
}else {
rename = function(a) {
return a
}
}
if(opt_modifier) {
return className + "-" + rename(opt_modifier)
}else {
return rename(className)
}
};
goog.setCssNameMapping = function(mapping, style) {
goog.cssNameMapping_ = mapping;
goog.cssNameMappingStyle_ = style
};
goog.getMsg = function(str, opt_values) {
var values = opt_values || {};
for(var key in values) {
var value = ("" + values[key]).replace(/\$/g, "$$$$");
str = str.replace(new RegExp("\\{\\$" + key + "\\}", "gi"), value)
}
return str
};
goog.exportSymbol = function(publicPath, object, opt_objectToExportTo) {
goog.exportPath_(publicPath, object, opt_objectToExportTo)
};
goog.exportProperty = function(object, publicName, symbol) {
object[publicName] = symbol
};
goog.inherits = function(childCtor, parentCtor) {
function tempCtor() {
}
tempCtor.prototype = parentCtor.prototype;
childCtor.superClass_ = parentCtor.prototype;
childCtor.prototype = new tempCtor;
childCtor.prototype.constructor = childCtor
};
goog.base = function(me, opt_methodName, var_args) {
var caller = arguments.callee.caller;
if(caller.superClass_) {
return caller.superClass_.constructor.apply(me, Array.prototype.slice.call(arguments, 1))
}
var args = Array.prototype.slice.call(arguments, 2);
var foundCaller = false;
for(var ctor = me.constructor;ctor;ctor = ctor.superClass_ && ctor.superClass_.constructor) {
if(ctor.prototype[opt_methodName] === caller) {
foundCaller = true
}else {
if(foundCaller) {
return ctor.prototype[opt_methodName].apply(me, args)
}
}
}
if(me[opt_methodName] === caller) {
return me.constructor.prototype[opt_methodName].apply(me, args)
}else {
throw Error("goog.base called from a method of one name " + "to a method of a different name");
}
};
goog.scope = function(fn) {
fn.call(goog.global)
};
goog.provide("goog.string");
goog.provide("goog.string.Unicode");
goog.string.Unicode = {NBSP:"\u00a0"};
goog.string.startsWith = function(str, prefix) {
return str.lastIndexOf(prefix, 0) == 0
};
goog.string.endsWith = function(str, suffix) {
var l = str.length - suffix.length;
return l >= 0 && str.indexOf(suffix, l) == l
};
goog.string.caseInsensitiveStartsWith = function(str, prefix) {
return goog.string.caseInsensitiveCompare(prefix, str.substr(0, prefix.length)) == 0
};
goog.string.caseInsensitiveEndsWith = function(str, suffix) {
return goog.string.caseInsensitiveCompare(suffix, str.substr(str.length - suffix.length, suffix.length)) == 0
};
goog.string.subs = function(str, var_args) {
for(var i = 1;i < arguments.length;i++) {
var replacement = String(arguments[i]).replace(/\$/g, "$$$$");
str = str.replace(/\%s/, replacement)
}
return str
};
goog.string.collapseWhitespace = function(str) {
return str.replace(/[\s\xa0]+/g, " ").replace(/^\s+|\s+$/g, "")
};
goog.string.isEmpty = function(str) {
return/^[\s\xa0]*$/.test(str)
};
goog.string.isEmptySafe = function(str) {
return goog.string.isEmpty(goog.string.makeSafe(str))
};
goog.string.isBreakingWhitespace = function(str) {
return!/[^\t\n\r ]/.test(str)
};
goog.string.isAlpha = function(str) {
return!/[^a-zA-Z]/.test(str)
};
goog.string.isNumeric = function(str) {
return!/[^0-9]/.test(str)
};
goog.string.isAlphaNumeric = function(str) {
return!/[^a-zA-Z0-9]/.test(str)
};
goog.string.isSpace = function(ch) {
return ch == " "
};
goog.string.isUnicodeChar = function(ch) {
return ch.length == 1 && ch >= " " && ch <= "~" || ch >= "\u0080" && ch <= "\ufffd"
};
goog.string.stripNewlines = function(str) {
return str.replace(/(\r\n|\r|\n)+/g, " ")
};
goog.string.canonicalizeNewlines = function(str) {
return str.replace(/(\r\n|\r|\n)/g, "\n")
};
goog.string.normalizeWhitespace = function(str) {
return str.replace(/\xa0|\s/g, " ")
};
goog.string.normalizeSpaces = function(str) {
return str.replace(/\xa0|[ \t]+/g, " ")
};
goog.string.trim = function(str) {
return str.replace(/^[\s\xa0]+|[\s\xa0]+$/g, "")
};
goog.string.trimLeft = function(str) {
return str.replace(/^[\s\xa0]+/, "")
};
goog.string.trimRight = function(str) {
return str.replace(/[\s\xa0]+$/, "")
};
goog.string.caseInsensitiveCompare = function(str1, str2) {
var test1 = String(str1).toLowerCase();
var test2 = String(str2).toLowerCase();
if(test1 < test2) {
return-1
}else {
if(test1 == test2) {
return 0
}else {
return 1
}
}
};
goog.string.numerateCompareRegExp_ = /(\.\d+)|(\d+)|(\D+)/g;
goog.string.numerateCompare = function(str1, str2) {
if(str1 == str2) {
return 0
}
if(!str1) {
return-1
}
if(!str2) {
return 1
}
var tokens1 = str1.toLowerCase().match(goog.string.numerateCompareRegExp_);
var tokens2 = str2.toLowerCase().match(goog.string.numerateCompareRegExp_);
var count = Math.min(tokens1.length, tokens2.length);
for(var i = 0;i < count;i++) {
var a = tokens1[i];
var b = tokens2[i];
if(a != b) {
var num1 = parseInt(a, 10);
if(!isNaN(num1)) {
var num2 = parseInt(b, 10);
if(!isNaN(num2) && num1 - num2) {
return num1 - num2
}
}
return a < b ? -1 : 1
}
}
if(tokens1.length != tokens2.length) {
return tokens1.length - tokens2.length
}
return str1 < str2 ? -1 : 1
};
goog.string.encodeUriRegExp_ = /^[a-zA-Z0-9\-_.!~*'()]*$/;
goog.string.urlEncode = function(str) {
str = String(str);
if(!goog.string.encodeUriRegExp_.test(str)) {
return encodeURIComponent(str)
}
return str
};
goog.string.urlDecode = function(str) {
return decodeURIComponent(str.replace(/\+/g, " "))
};
goog.string.newLineToBr = function(str, opt_xml) {
return str.replace(/(\r\n|\r|\n)/g, opt_xml ? "<br />" : "<br>")
};
goog.string.htmlEscape = function(str, opt_isLikelyToContainHtmlChars) {
if(opt_isLikelyToContainHtmlChars) {
return str.replace(goog.string.amperRe_, "&amp;").replace(goog.string.ltRe_, "&lt;").replace(goog.string.gtRe_, "&gt;").replace(goog.string.quotRe_, "&quot;")
}else {
if(!goog.string.allRe_.test(str)) {
return str
}
if(str.indexOf("&") != -1) {
str = str.replace(goog.string.amperRe_, "&amp;")
}
if(str.indexOf("<") != -1) {
str = str.replace(goog.string.ltRe_, "&lt;")
}
if(str.indexOf(">") != -1) {
str = str.replace(goog.string.gtRe_, "&gt;")
}
if(str.indexOf('"') != -1) {
str = str.replace(goog.string.quotRe_, "&quot;")
}
return str
}
};
goog.string.amperRe_ = /&/g;
goog.string.ltRe_ = /</g;
goog.string.gtRe_ = />/g;
goog.string.quotRe_ = /\"/g;
goog.string.allRe_ = /[&<>\"]/;
goog.string.unescapeEntities = function(str) {
if(goog.string.contains(str, "&")) {
if("document" in goog.global && !goog.string.contains(str, "<")) {
return goog.string.unescapeEntitiesUsingDom_(str)
}else {
return goog.string.unescapePureXmlEntities_(str)
}
}
return str
};
goog.string.unescapeEntitiesUsingDom_ = function(str) {
var el = goog.global["document"]["createElement"]("div");
el["innerHTML"] = "<pre>x" + str + "</pre>";
if(el["firstChild"][goog.string.NORMALIZE_FN_]) {
el["firstChild"][goog.string.NORMALIZE_FN_]()
}
str = el["firstChild"]["firstChild"]["nodeValue"].slice(1);
el["innerHTML"] = "";
return goog.string.canonicalizeNewlines(str)
};
goog.string.unescapePureXmlEntities_ = function(str) {
return str.replace(/&([^;]+);/g, function(s, entity) {
switch(entity) {
case "amp":
return"&";
case "lt":
return"<";
case "gt":
return">";
case "quot":
return'"';
default:
if(entity.charAt(0) == "#") {
var n = Number("0" + entity.substr(1));
if(!isNaN(n)) {
return String.fromCharCode(n)
}
}
return s
}
})
};
goog.string.NORMALIZE_FN_ = "normalize";
goog.string.whitespaceEscape = function(str, opt_xml) {
return goog.string.newLineToBr(str.replace(/ /g, " &#160;"), opt_xml)
};
goog.string.stripQuotes = function(str, quoteChars) {
var length = quoteChars.length;
for(var i = 0;i < length;i++) {
var quoteChar = length == 1 ? quoteChars : quoteChars.charAt(i);
if(str.charAt(0) == quoteChar && str.charAt(str.length - 1) == quoteChar) {
return str.substring(1, str.length - 1)
}
}
return str
};
goog.string.truncate = function(str, chars, opt_protectEscapedCharacters) {
if(opt_protectEscapedCharacters) {
str = goog.string.unescapeEntities(str)
}
if(str.length > chars) {
str = str.substring(0, chars - 3) + "..."
}
if(opt_protectEscapedCharacters) {
str = goog.string.htmlEscape(str)
}
return str
};
goog.string.truncateMiddle = function(str, chars, opt_protectEscapedCharacters, opt_trailingChars) {
if(opt_protectEscapedCharacters) {
str = goog.string.unescapeEntities(str)
}
if(opt_trailingChars) {
if(opt_trailingChars > chars) {
opt_trailingChars = chars
}
var endPoint = str.length - opt_trailingChars;
var startPoint = chars - opt_trailingChars;
str = str.substring(0, startPoint) + "..." + str.substring(endPoint)
}else {
if(str.length > chars) {
var half = Math.floor(chars / 2);
var endPos = str.length - half;
half += chars % 2;
str = str.substring(0, half) + "..." + str.substring(endPos)
}
}
if(opt_protectEscapedCharacters) {
str = goog.string.htmlEscape(str)
}
return str
};
goog.string.specialEscapeChars_ = {"\x00":"\\0", "\u0008":"\\b", "\u000c":"\\f", "\n":"\\n", "\r":"\\r", "\t":"\\t", "\x0B":"\\x0B", '"':'\\"', "\\":"\\\\"};
goog.string.jsEscapeCache_ = {"'":"\\'"};
goog.string.quote = function(s) {
s = String(s);
if(s.quote) {
return s.quote()
}else {
var sb = ['"'];
for(var i = 0;i < s.length;i++) {
var ch = s.charAt(i);
var cc = ch.charCodeAt(0);
sb[i + 1] = goog.string.specialEscapeChars_[ch] || (cc > 31 && cc < 127 ? ch : goog.string.escapeChar(ch))
}
sb.push('"');
return sb.join("")
}
};
goog.string.escapeString = function(str) {
var sb = [];
for(var i = 0;i < str.length;i++) {
sb[i] = goog.string.escapeChar(str.charAt(i))
}
return sb.join("")
};
goog.string.escapeChar = function(c) {
if(c in goog.string.jsEscapeCache_) {
return goog.string.jsEscapeCache_[c]
}
if(c in goog.string.specialEscapeChars_) {
return goog.string.jsEscapeCache_[c] = goog.string.specialEscapeChars_[c]
}
var rv = c;
var cc = c.charCodeAt(0);
if(cc > 31 && cc < 127) {
rv = c
}else {
if(cc < 256) {
rv = "\\x";
if(cc < 16 || cc > 256) {
rv += "0"
}
}else {
rv = "\\u";
if(cc < 4096) {
rv += "0"
}
}
rv += cc.toString(16).toUpperCase()
}
return goog.string.jsEscapeCache_[c] = rv
};
goog.string.toMap = function(s) {
var rv = {};
for(var i = 0;i < s.length;i++) {
rv[s.charAt(i)] = true
}
return rv
};
goog.string.contains = function(s, ss) {
return s.indexOf(ss) != -1
};
goog.string.removeAt = function(s, index, stringLength) {
var resultStr = s;
if(index >= 0 && index < s.length && stringLength > 0) {
resultStr = s.substr(0, index) + s.substr(index + stringLength, s.length - index - stringLength)
}
return resultStr
};
goog.string.remove = function(s, ss) {
var re = new RegExp(goog.string.regExpEscape(ss), "");
return s.replace(re, "")
};
goog.string.removeAll = function(s, ss) {
var re = new RegExp(goog.string.regExpEscape(ss), "g");
return s.replace(re, "")
};
goog.string.regExpEscape = function(s) {
return String(s).replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g, "\\$1").replace(/\x08/g, "\\x08")
};
goog.string.repeat = function(string, length) {
return(new Array(length + 1)).join(string)
};
goog.string.padNumber = function(num, length, opt_precision) {
var s = goog.isDef(opt_precision) ? num.toFixed(opt_precision) : String(num);
var index = s.indexOf(".");
if(index == -1) {
index = s.length
}
return goog.string.repeat("0", Math.max(0, length - index)) + s
};
goog.string.makeSafe = function(obj) {
return obj == null ? "" : String(obj)
};
goog.string.buildString = function(var_args) {
return Array.prototype.join.call(arguments, "")
};
goog.string.getRandomString = function() {
var x = 2147483648;
return Math.floor(Math.random() * x).toString(36) + Math.abs(Math.floor(Math.random() * x) ^ goog.now()).toString(36)
};
goog.string.compareVersions = function(version1, version2) {
var order = 0;
var v1Subs = goog.string.trim(String(version1)).split(".");
var v2Subs = goog.string.trim(String(version2)).split(".");
var subCount = Math.max(v1Subs.length, v2Subs.length);
for(var subIdx = 0;order == 0 && subIdx < subCount;subIdx++) {
var v1Sub = v1Subs[subIdx] || "";
var v2Sub = v2Subs[subIdx] || "";
var v1CompParser = new RegExp("(\\d*)(\\D*)", "g");
var v2CompParser = new RegExp("(\\d*)(\\D*)", "g");
do {
var v1Comp = v1CompParser.exec(v1Sub) || ["", "", ""];
var v2Comp = v2CompParser.exec(v2Sub) || ["", "", ""];
if(v1Comp[0].length == 0 && v2Comp[0].length == 0) {
break
}
var v1CompNum = v1Comp[1].length == 0 ? 0 : parseInt(v1Comp[1], 10);
var v2CompNum = v2Comp[1].length == 0 ? 0 : parseInt(v2Comp[1], 10);
order = goog.string.compareElements_(v1CompNum, v2CompNum) || goog.string.compareElements_(v1Comp[2].length == 0, v2Comp[2].length == 0) || goog.string.compareElements_(v1Comp[2], v2Comp[2])
}while(order == 0)
}
return order
};
goog.string.compareElements_ = function(left, right) {
if(left < right) {
return-1
}else {
if(left > right) {
return 1
}
}
return 0
};
goog.string.HASHCODE_MAX_ = 4294967296;
goog.string.hashCode = function(str) {
var result = 0;
for(var i = 0;i < str.length;++i) {
result = 31 * result + str.charCodeAt(i);
result %= goog.string.HASHCODE_MAX_
}
return result
};
goog.string.uniqueStringCounter_ = Math.random() * 2147483648 | 0;
goog.string.createUniqueString = function() {
return"goog_" + goog.string.uniqueStringCounter_++
};
goog.string.toNumber = function(str) {
var num = Number(str);
if(num == 0 && goog.string.isEmpty(str)) {
return NaN
}
return num
};
goog.string.toCamelCaseCache_ = {};
goog.string.toCamelCase = function(str) {
return goog.string.toCamelCaseCache_[str] || (goog.string.toCamelCaseCache_[str] = String(str).replace(/\-([a-z])/g, function(all, match) {
return match.toUpperCase()
}))
};
goog.string.toSelectorCaseCache_ = {};
goog.string.toSelectorCase = function(str) {
return goog.string.toSelectorCaseCache_[str] || (goog.string.toSelectorCaseCache_[str] = String(str).replace(/([A-Z])/g, "-$1").toLowerCase())
};
goog.provide("goog.debug.Error");
goog.debug.Error = function(opt_msg) {
this.stack = (new Error).stack || "";
if(opt_msg) {
this.message = String(opt_msg)
}
};
goog.inherits(goog.debug.Error, Error);
goog.debug.Error.prototype.name = "CustomError";
goog.provide("goog.asserts");
goog.provide("goog.asserts.AssertionError");
goog.require("goog.debug.Error");
goog.require("goog.string");
goog.asserts.ENABLE_ASSERTS = goog.DEBUG;
goog.asserts.AssertionError = function(messagePattern, messageArgs) {
messageArgs.unshift(messagePattern);
goog.debug.Error.call(this, goog.string.subs.apply(null, messageArgs));
messageArgs.shift();
this.messagePattern = messagePattern
};
goog.inherits(goog.asserts.AssertionError, goog.debug.Error);
goog.asserts.AssertionError.prototype.name = "AssertionError";
goog.asserts.doAssertFailure_ = function(defaultMessage, defaultArgs, givenMessage, givenArgs) {
var message = "Assertion failed";
if(givenMessage) {
message += ": " + givenMessage;
var args = givenArgs
}else {
if(defaultMessage) {
message += ": " + defaultMessage;
args = defaultArgs
}
}
throw new goog.asserts.AssertionError("" + message, args || []);
};
goog.asserts.assert = function(condition, opt_message, var_args) {
if(goog.asserts.ENABLE_ASSERTS && !condition) {
goog.asserts.doAssertFailure_("", null, opt_message, Array.prototype.slice.call(arguments, 2))
}
return condition
};
goog.asserts.fail = function(opt_message, var_args) {
if(goog.asserts.ENABLE_ASSERTS) {
throw new goog.asserts.AssertionError("Failure" + (opt_message ? ": " + opt_message : ""), Array.prototype.slice.call(arguments, 1));
}
};
goog.asserts.assertNumber = function(value, opt_message, var_args) {
if(goog.asserts.ENABLE_ASSERTS && !goog.isNumber(value)) {
goog.asserts.doAssertFailure_("Expected number but got %s: %s.", [goog.typeOf(value), value], opt_message, Array.prototype.slice.call(arguments, 2))
}
return value
};
goog.asserts.assertString = function(value, opt_message, var_args) {
if(goog.asserts.ENABLE_ASSERTS && !goog.isString(value)) {
goog.asserts.doAssertFailure_("Expected string but got %s: %s.", [goog.typeOf(value), value], opt_message, Array.prototype.slice.call(arguments, 2))
}
return value
};
goog.asserts.assertFunction = function(value, opt_message, var_args) {
if(goog.asserts.ENABLE_ASSERTS && !goog.isFunction(value)) {
goog.asserts.doAssertFailure_("Expected function but got %s: %s.", [goog.typeOf(value), value], opt_message, Array.prototype.slice.call(arguments, 2))
}
return value
};
goog.asserts.assertObject = function(value, opt_message, var_args) {
if(goog.asserts.ENABLE_ASSERTS && !goog.isObject(value)) {
goog.asserts.doAssertFailure_("Expected object but got %s: %s.", [goog.typeOf(value), value], opt_message, Array.prototype.slice.call(arguments, 2))
}
return value
};
goog.asserts.assertArray = function(value, opt_message, var_args) {
if(goog.asserts.ENABLE_ASSERTS && !goog.isArray(value)) {
goog.asserts.doAssertFailure_("Expected array but got %s: %s.", [goog.typeOf(value), value], opt_message, Array.prototype.slice.call(arguments, 2))
}
return value
};
goog.asserts.assertBoolean = function(value, opt_message, var_args) {
if(goog.asserts.ENABLE_ASSERTS && !goog.isBoolean(value)) {
goog.asserts.doAssertFailure_("Expected boolean but got %s: %s.", [goog.typeOf(value), value], opt_message, Array.prototype.slice.call(arguments, 2))
}
return value
};
goog.asserts.assertInstanceof = function(value, type, opt_message, var_args) {
if(goog.asserts.ENABLE_ASSERTS && !(value instanceof type)) {
goog.asserts.doAssertFailure_("instanceof check failed.", null, opt_message, Array.prototype.slice.call(arguments, 3))
}
};
goog.provide("goog.array");
goog.provide("goog.array.ArrayLike");
goog.require("goog.asserts");
goog.NATIVE_ARRAY_PROTOTYPES = true;
goog.array.ArrayLike;
goog.array.peek = function(array) {
return array[array.length - 1]
};
goog.array.ARRAY_PROTOTYPE_ = Array.prototype;
goog.array.indexOf = goog.NATIVE_ARRAY_PROTOTYPES && goog.array.ARRAY_PROTOTYPE_.indexOf ? function(arr, obj, opt_fromIndex) {
goog.asserts.assert(arr.length != null);
return goog.array.ARRAY_PROTOTYPE_.indexOf.call(arr, obj, opt_fromIndex)
} : function(arr, obj, opt_fromIndex) {
var fromIndex = opt_fromIndex == null ? 0 : opt_fromIndex < 0 ? Math.max(0, arr.length + opt_fromIndex) : opt_fromIndex;
if(goog.isString(arr)) {
if(!goog.isString(obj) || obj.length != 1) {
return-1
}
return arr.indexOf(obj, fromIndex)
}
for(var i = fromIndex;i < arr.length;i++) {
if(i in arr && arr[i] === obj) {
return i
}
}
return-1
};
goog.array.lastIndexOf = goog.NATIVE_ARRAY_PROTOTYPES && goog.array.ARRAY_PROTOTYPE_.lastIndexOf ? function(arr, obj, opt_fromIndex) {
goog.asserts.assert(arr.length != null);
var fromIndex = opt_fromIndex == null ? arr.length - 1 : opt_fromIndex;
return goog.array.ARRAY_PROTOTYPE_.lastIndexOf.call(arr, obj, fromIndex)
} : function(arr, obj, opt_fromIndex) {
var fromIndex = opt_fromIndex == null ? arr.length - 1 : opt_fromIndex;
if(fromIndex < 0) {
fromIndex = Math.max(0, arr.length + fromIndex)
}
if(goog.isString(arr)) {
if(!goog.isString(obj) || obj.length != 1) {
return-1
}
return arr.lastIndexOf(obj, fromIndex)
}
for(var i = fromIndex;i >= 0;i--) {
if(i in arr && arr[i] === obj) {
return i
}
}
return-1
};
goog.array.forEach = goog.NATIVE_ARRAY_PROTOTYPES && goog.array.ARRAY_PROTOTYPE_.forEach ? function(arr, f, opt_obj) {
goog.asserts.assert(arr.length != null);
goog.array.ARRAY_PROTOTYPE_.forEach.call(arr, f, opt_obj)
} : function(arr, f, opt_obj) {
var l = arr.length;
var arr2 = goog.isString(arr) ? arr.split("") : arr;
for(var i = 0;i < l;i++) {
if(i in arr2) {
f.call(opt_obj, arr2[i], i, arr)
}
}
};
goog.array.forEachRight = function(arr, f, opt_obj) {
var l = arr.length;
var arr2 = goog.isString(arr) ? arr.split("") : arr;
for(var i = l - 1;i >= 0;--i) {
if(i in arr2) {
f.call(opt_obj, arr2[i], i, arr)
}
}
};
goog.array.filter = goog.NATIVE_ARRAY_PROTOTYPES && goog.array.ARRAY_PROTOTYPE_.filter ? function(arr, f, opt_obj) {
goog.asserts.assert(arr.length != null);
return goog.array.ARRAY_PROTOTYPE_.filter.call(arr, f, opt_obj)
} : function(arr, f, opt_obj) {
var l = arr.length;
var res = [];
var resLength = 0;
var arr2 = goog.isString(arr) ? arr.split("") : arr;
for(var i = 0;i < l;i++) {
if(i in arr2) {
var val = arr2[i];
if(f.call(opt_obj, val, i, arr)) {
res[resLength++] = val
}
}
}
return res
};
goog.array.map = goog.NATIVE_ARRAY_PROTOTYPES && goog.array.ARRAY_PROTOTYPE_.map ? function(arr, f, opt_obj) {
goog.asserts.assert(arr.length != null);
return goog.array.ARRAY_PROTOTYPE_.map.call(arr, f, opt_obj)
} : function(arr, f, opt_obj) {
var l = arr.length;
var res = new Array(l);
var arr2 = goog.isString(arr) ? arr.split("") : arr;
for(var i = 0;i < l;i++) {
if(i in arr2) {
res[i] = f.call(opt_obj, arr2[i], i, arr)
}
}
return res
};
goog.array.reduce = function(arr, f, val, opt_obj) {
if(arr.reduce) {
if(opt_obj) {
return arr.reduce(goog.bind(f, opt_obj), val)
}else {
return arr.reduce(f, val)
}
}
var rval = val;
goog.array.forEach(arr, function(val, index) {
rval = f.call(opt_obj, rval, val, index, arr)
});
return rval
};
goog.array.reduceRight = function(arr, f, val, opt_obj) {
if(arr.reduceRight) {
if(opt_obj) {
return arr.reduceRight(goog.bind(f, opt_obj), val)
}else {
return arr.reduceRight(f, val)
}
}
var rval = val;
goog.array.forEachRight(arr, function(val, index) {
rval = f.call(opt_obj, rval, val, index, arr)
});
return rval
};
goog.array.some = goog.NATIVE_ARRAY_PROTOTYPES && goog.array.ARRAY_PROTOTYPE_.some ? function(arr, f, opt_obj) {
goog.asserts.assert(arr.length != null);
return goog.array.ARRAY_PROTOTYPE_.some.call(arr, f, opt_obj)
} : function(arr, f, opt_obj) {
var l = arr.length;
var arr2 = goog.isString(arr) ? arr.split("") : arr;
for(var i = 0;i < l;i++) {
if(i in arr2 && f.call(opt_obj, arr2[i], i, arr)) {
return true
}
}
return false
};
goog.array.every = goog.NATIVE_ARRAY_PROTOTYPES && goog.array.ARRAY_PROTOTYPE_.every ? function(arr, f, opt_obj) {
goog.asserts.assert(arr.length != null);
return goog.array.ARRAY_PROTOTYPE_.every.call(arr, f, opt_obj)
} : function(arr, f, opt_obj) {
var l = arr.length;
var arr2 = goog.isString(arr) ? arr.split("") : arr;
for(var i = 0;i < l;i++) {
if(i in arr2 && !f.call(opt_obj, arr2[i], i, arr)) {
return false
}
}
return true
};
goog.array.find = function(arr, f, opt_obj) {
var i = goog.array.findIndex(arr, f, opt_obj);
return i < 0 ? null : goog.isString(arr) ? arr.charAt(i) : arr[i]
};
goog.array.findIndex = function(arr, f, opt_obj) {
var l = arr.length;
var arr2 = goog.isString(arr) ? arr.split("") : arr;
for(var i = 0;i < l;i++) {
if(i in arr2 && f.call(opt_obj, arr2[i], i, arr)) {
return i
}
}
return-1
};
goog.array.findRight = function(arr, f, opt_obj) {
var i = goog.array.findIndexRight(arr, f, opt_obj);
return i < 0 ? null : goog.isString(arr) ? arr.charAt(i) : arr[i]
};
goog.array.findIndexRight = function(arr, f, opt_obj) {
var l = arr.length;
var arr2 = goog.isString(arr) ? arr.split("") : arr;
for(var i = l - 1;i >= 0;i--) {
if(i in arr2 && f.call(opt_obj, arr2[i], i, arr)) {
return i
}
}
return-1
};
goog.array.contains = function(arr, obj) {
return goog.array.indexOf(arr, obj) >= 0
};
goog.array.isEmpty = function(arr) {
return arr.length == 0
};
goog.array.clear = function(arr) {
if(!goog.isArray(arr)) {
for(var i = arr.length - 1;i >= 0;i--) {
delete arr[i]
}
}
arr.length = 0
};
goog.array.insert = function(arr, obj) {
if(!goog.array.contains(arr, obj)) {
arr.push(obj)
}
};
goog.array.insertAt = function(arr, obj, opt_i) {
goog.array.splice(arr, opt_i, 0, obj)
};
goog.array.insertArrayAt = function(arr, elementsToAdd, opt_i) {
goog.partial(goog.array.splice, arr, opt_i, 0).apply(null, elementsToAdd)
};
goog.array.insertBefore = function(arr, obj, opt_obj2) {
var i;
if(arguments.length == 2 || (i = goog.array.indexOf(arr, opt_obj2)) < 0) {
arr.push(obj)
}else {
goog.array.insertAt(arr, obj, i)
}
};
goog.array.remove = function(arr, obj) {
var i = goog.array.indexOf(arr, obj);
var rv;
if(rv = i >= 0) {
goog.array.removeAt(arr, i)
}
return rv
};
goog.array.removeAt = function(arr, i) {
goog.asserts.assert(arr.length != null);
return goog.array.ARRAY_PROTOTYPE_.splice.call(arr, i, 1).length == 1
};
goog.array.removeIf = function(arr, f, opt_obj) {
var i = goog.array.findIndex(arr, f, opt_obj);
if(i >= 0) {
goog.array.removeAt(arr, i);
return true
}
return false
};
goog.array.concat = function(var_args) {
return goog.array.ARRAY_PROTOTYPE_.concat.apply(goog.array.ARRAY_PROTOTYPE_, arguments)
};
goog.array.clone = function(arr) {
if(goog.isArray(arr)) {
return goog.array.concat(arr)
}else {
var rv = [];
for(var i = 0, len = arr.length;i < len;i++) {
rv[i] = arr[i]
}
return rv
}
};
goog.array.toArray = function(object) {
if(goog.isArray(object)) {
return goog.array.concat(object)
}
return goog.array.clone(object)
};
goog.array.extend = function(arr1, var_args) {
for(var i = 1;i < arguments.length;i++) {
var arr2 = arguments[i];
var isArrayLike;
if(goog.isArray(arr2) || (isArrayLike = goog.isArrayLike(arr2)) && arr2.hasOwnProperty("callee")) {
arr1.push.apply(arr1, arr2)
}else {
if(isArrayLike) {
var len1 = arr1.length;
var len2 = arr2.length;
for(var j = 0;j < len2;j++) {
arr1[len1 + j] = arr2[j]
}
}else {
arr1.push(arr2)
}
}
}
};
goog.array.splice = function(arr, index, howMany, var_args) {
goog.asserts.assert(arr.length != null);
return goog.array.ARRAY_PROTOTYPE_.splice.apply(arr, goog.array.slice(arguments, 1))
};
goog.array.slice = function(arr, start, opt_end) {
goog.asserts.assert(arr.length != null);
if(arguments.length <= 2) {
return goog.array.ARRAY_PROTOTYPE_.slice.call(arr, start)
}else {
return goog.array.ARRAY_PROTOTYPE_.slice.call(arr, start, opt_end)
}
};
goog.array.removeDuplicates = function(arr, opt_rv) {
var returnArray = opt_rv || arr;
var seen = {}, cursorInsert = 0, cursorRead = 0;
while(cursorRead < arr.length) {
var current = arr[cursorRead++];
var key = goog.isObject(current) ? "o" + goog.getUid(current) : (typeof current).charAt(0) + current;
if(!Object.prototype.hasOwnProperty.call(seen, key)) {
seen[key] = true;
returnArray[cursorInsert++] = current
}
}
returnArray.length = cursorInsert
};
goog.array.binarySearch = function(arr, target, opt_compareFn) {
return goog.array.binarySearch_(arr, opt_compareFn || goog.array.defaultCompare, false, target)
};
goog.array.binarySelect = function(arr, evaluator, opt_obj) {
return goog.array.binarySearch_(arr, evaluator, true, undefined, opt_obj)
};
goog.array.binarySearch_ = function(arr, compareFn, isEvaluator, opt_target, opt_selfObj) {
var left = 0;
var right = arr.length;
var found;
while(left < right) {
var middle = left + right >> 1;
var compareResult;
if(isEvaluator) {
compareResult = compareFn.call(opt_selfObj, arr[middle], middle, arr)
}else {
compareResult = compareFn(opt_target, arr[middle])
}
if(compareResult > 0) {
left = middle + 1
}else {
right = middle;
found = !compareResult
}
}
return found ? left : ~left
};
goog.array.sort = function(arr, opt_compareFn) {
goog.asserts.assert(arr.length != null);
goog.array.ARRAY_PROTOTYPE_.sort.call(arr, opt_compareFn || goog.array.defaultCompare)
};
goog.array.stableSort = function(arr, opt_compareFn) {
for(var i = 0;i < arr.length;i++) {
arr[i] = {index:i, value:arr[i]}
}
var valueCompareFn = opt_compareFn || goog.array.defaultCompare;
function stableCompareFn(obj1, obj2) {
return valueCompareFn(obj1.value, obj2.value) || obj1.index - obj2.index
}
goog.array.sort(arr, stableCompareFn);
for(var i = 0;i < arr.length;i++) {
arr[i] = arr[i].value
}
};
goog.array.sortObjectsByKey = function(arr, key, opt_compareFn) {
var compare = opt_compareFn || goog.array.defaultCompare;
goog.array.sort(arr, function(a, b) {
return compare(a[key], b[key])
})
};
goog.array.isSorted = function(arr, opt_compareFn, opt_strict) {
var compare = opt_compareFn || goog.array.defaultCompare;
for(var i = 1;i < arr.length;i++) {
var compareResult = compare(arr[i - 1], arr[i]);
if(compareResult > 0 || compareResult == 0 && opt_strict) {
return false
}
}
return true
};
goog.array.equals = function(arr1, arr2, opt_equalsFn) {
if(!goog.isArrayLike(arr1) || !goog.isArrayLike(arr2) || arr1.length != arr2.length) {
return false
}
var l = arr1.length;
var equalsFn = opt_equalsFn || goog.array.defaultCompareEquality;
for(var i = 0;i < l;i++) {
if(!equalsFn(arr1[i], arr2[i])) {
return false
}
}
return true
};
goog.array.compare = function(arr1, arr2, opt_equalsFn) {
return goog.array.equals(arr1, arr2, opt_equalsFn)
};
goog.array.defaultCompare = function(a, b) {
return a > b ? 1 : a < b ? -1 : 0
};
goog.array.defaultCompareEquality = function(a, b) {
return a === b
};
goog.array.binaryInsert = function(array, value, opt_compareFn) {
var index = goog.array.binarySearch(array, value, opt_compareFn);
if(index < 0) {
goog.array.insertAt(array, value, -(index + 1));
return true
}
return false
};
goog.array.binaryRemove = function(array, value, opt_compareFn) {
var index = goog.array.binarySearch(array, value, opt_compareFn);
return index >= 0 ? goog.array.removeAt(array, index) : false
};
goog.array.bucket = function(array, sorter) {
var buckets = {};
for(var i = 0;i < array.length;i++) {
var value = array[i];
var key = sorter(value, i, array);
if(goog.isDef(key)) {
var bucket = buckets[key] || (buckets[key] = []);
bucket.push(value)
}
}
return buckets
};
goog.array.repeat = function(value, n) {
var array = [];
for(var i = 0;i < n;i++) {
array[i] = value
}
return array
};
goog.array.flatten = function(var_args) {
var result = [];
for(var i = 0;i < arguments.length;i++) {
var element = arguments[i];
if(goog.isArray(element)) {
result.push.apply(result, goog.array.flatten.apply(null, element))
}else {
result.push(element)
}
}
return result
};
goog.array.rotate = function(array, n) {
goog.asserts.assert(array.length != null);
if(array.length) {
n %= array.length;
if(n > 0) {
goog.array.ARRAY_PROTOTYPE_.unshift.apply(array, array.splice(-n, n))
}else {
if(n < 0) {
goog.array.ARRAY_PROTOTYPE_.push.apply(array, array.splice(0, -n))
}
}
}
return array
};
goog.array.zip = function(var_args) {
if(!arguments.length) {
return[]
}
var result = [];
for(var i = 0;true;i++) {
var value = [];
for(var j = 0;j < arguments.length;j++) {
var arr = arguments[j];
if(i >= arr.length) {
return result
}
value.push(arr[i])
}
result.push(value)
}
};
goog.array.shuffle = function(arr, opt_randFn) {
var randFn = opt_randFn || Math.random;
for(var i = arr.length - 1;i > 0;i--) {
var j = Math.floor(randFn() * (i + 1));
var tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp
}
};
goog.provide("goog.object");
goog.object.forEach = function(obj, f, opt_obj) {
for(var key in obj) {
f.call(opt_obj, obj[key], key, obj)
}
};
goog.object.filter = function(obj, f, opt_obj) {
var res = {};
for(var key in obj) {
if(f.call(opt_obj, obj[key], key, obj)) {
res[key] = obj[key]
}
}
return res
};
goog.object.map = function(obj, f, opt_obj) {
var res = {};
for(var key in obj) {
res[key] = f.call(opt_obj, obj[key], key, obj)
}
return res
};
goog.object.some = function(obj, f, opt_obj) {
for(var key in obj) {
if(f.call(opt_obj, obj[key], key, obj)) {
return true
}
}
return false
};
goog.object.every = function(obj, f, opt_obj) {
for(var key in obj) {
if(!f.call(opt_obj, obj[key], key, obj)) {
return false
}
}
return true
};
goog.object.getCount = function(obj) {
var rv = 0;
for(var key in obj) {
rv++
}
return rv
};
goog.object.getAnyKey = function(obj) {
for(var key in obj) {
return key
}
};
goog.object.getAnyValue = function(obj) {
for(var key in obj) {
return obj[key]
}
};
goog.object.contains = function(obj, val) {
return goog.object.containsValue(obj, val)
};
goog.object.getValues = function(obj) {
var res = [];
var i = 0;
for(var key in obj) {
res[i++] = obj[key]
}
return res
};
goog.object.getKeys = function(obj) {
var res = [];
var i = 0;
for(var key in obj) {
res[i++] = key
}
return res
};
goog.object.getValueByKeys = function(obj, var_args) {
var isArrayLike = goog.isArrayLike(var_args);
var keys = isArrayLike ? var_args : arguments;
for(var i = isArrayLike ? 0 : 1;i < keys.length;i++) {
obj = obj[keys[i]];
if(!goog.isDef(obj)) {
break
}
}
return obj
};
goog.object.containsKey = function(obj, key) {
return key in obj
};
goog.object.containsValue = function(obj, val) {
for(var key in obj) {
if(obj[key] == val) {
return true
}
}
return false
};
goog.object.findKey = function(obj, f, opt_this) {
for(var key in obj) {
if(f.call(opt_this, obj[key], key, obj)) {
return key
}
}
return undefined
};
goog.object.findValue = function(obj, f, opt_this) {
var key = goog.object.findKey(obj, f, opt_this);
return key && obj[key]
};
goog.object.isEmpty = function(obj) {
for(var key in obj) {
return false
}
return true
};
goog.object.clear = function(obj) {
for(var i in obj) {
delete obj[i]
}
};
goog.object.remove = function(obj, key) {
var rv;
if(rv = key in obj) {
delete obj[key]
}
return rv
};
goog.object.add = function(obj, key, val) {
if(key in obj) {
throw Error('The object already contains the key "' + key + '"');
}
goog.object.set(obj, key, val)
};
goog.object.get = function(obj, key, opt_val) {
if(key in obj) {
return obj[key]
}
return opt_val
};
goog.object.set = function(obj, key, value) {
obj[key] = value
};
goog.object.setIfUndefined = function(obj, key, value) {
return key in obj ? obj[key] : obj[key] = value
};
goog.object.clone = function(obj) {
var res = {};
for(var key in obj) {
res[key] = obj[key]
}
return res
};
goog.object.unsafeClone = function(obj) {
var type = goog.typeOf(obj);
if(type == "object" || type == "array") {
if(obj.clone) {
return obj.clone()
}
var clone = type == "array" ? [] : {};
for(var key in obj) {
clone[key] = goog.object.unsafeClone(obj[key])
}
return clone
}
return obj
};
goog.object.transpose = function(obj) {
var transposed = {};
for(var key in obj) {
transposed[obj[key]] = key
}
return transposed
};
goog.object.PROTOTYPE_FIELDS_ = ["constructor", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "toLocaleString", "toString", "valueOf"];
goog.object.extend = function(target, var_args) {
var key, source;
for(var i = 1;i < arguments.length;i++) {
source = arguments[i];
for(key in source) {
target[key] = source[key]
}
for(var j = 0;j < goog.object.PROTOTYPE_FIELDS_.length;j++) {
key = goog.object.PROTOTYPE_FIELDS_[j];
if(Object.prototype.hasOwnProperty.call(source, key)) {
target[key] = source[key]
}
}
}
};
goog.object.create = function(var_args) {
var argLength = arguments.length;
if(argLength == 1 && goog.isArray(arguments[0])) {
return goog.object.create.apply(null, arguments[0])
}
if(argLength % 2) {
throw Error("Uneven number of arguments");
}
var rv = {};
for(var i = 0;i < argLength;i += 2) {
rv[arguments[i]] = arguments[i + 1]
}
return rv
};
goog.object.createSet = function(var_args) {
var argLength = arguments.length;
if(argLength == 1 && goog.isArray(arguments[0])) {
return goog.object.createSet.apply(null, arguments[0])
}
var rv = {};
for(var i = 0;i < argLength;i++) {
rv[arguments[i]] = true
}
return rv
};
goog.provide("goog.string.format");
goog.require("goog.string");
goog.string.format = function(formatString, var_args) {
var args = Array.prototype.slice.call(arguments);
var template = args.shift();
if(typeof template == "undefined") {
throw Error("[goog.string.format] Template required");
}
var formatRe = /%([0\-\ \+]*)(\d+)?(\.(\d+))?([%sfdiu])/g;
function replacerDemuxer(match, flags, width, dotp, precision, type, offset, wholeString) {
if(type == "%") {
return"%"
}
var value = args.shift();
if(typeof value == "undefined") {
throw Error("[goog.string.format] Not enough arguments");
}
arguments[0] = value;
return goog.string.format.demuxes_[type].apply(null, arguments)
}
return template.replace(formatRe, replacerDemuxer)
};
goog.string.format.demuxes_ = {};
goog.string.format.demuxes_["s"] = function(value, flags, width, dotp, precision, type, offset, wholeString) {
var replacement = value;
if(isNaN(width) || replacement.length >= width) {
return replacement
}
if(flags.indexOf("-", 0) > -1) {
replacement = replacement + goog.string.repeat(" ", width - replacement.length)
}else {
replacement = goog.string.repeat(" ", width - replacement.length) + replacement
}
return replacement
};
goog.string.format.demuxes_["f"] = function(value, flags, width, dotp, precision, type, offset, wholeString) {
var replacement = value.toString();
if(!(isNaN(precision) || precision == "")) {
replacement = value.toFixed(precision)
}
var sign;
if(value < 0) {
sign = "-"
}else {
if(flags.indexOf("+") >= 0) {
sign = "+"
}else {
if(flags.indexOf(" ") >= 0) {
sign = " "
}else {
sign = ""
}
}
}
if(value >= 0) {
replacement = sign + replacement
}
if(isNaN(width) || replacement.length >= width) {
return replacement
}
replacement = isNaN(precision) ? Math.abs(value).toString() : Math.abs(value).toFixed(precision);
var padCount = width - replacement.length - sign.length;
if(flags.indexOf("-", 0) >= 0) {
replacement = sign + replacement + goog.string.repeat(" ", padCount)
}else {
var paddingChar = flags.indexOf("0", 0) >= 0 ? "0" : " ";
replacement = sign + goog.string.repeat(paddingChar, padCount) + replacement
}
return replacement
};
goog.string.format.demuxes_["d"] = function(value, flags, width, dotp, precision, type, offset, wholeString) {
value = parseInt(value, 10);
precision = 0;
return goog.string.format.demuxes_["f"](value, flags, width, dotp, precision, type, offset, wholeString)
};
goog.string.format.demuxes_["i"] = goog.string.format.demuxes_["d"];
goog.string.format.demuxes_["u"] = goog.string.format.demuxes_["d"];
goog.provide("goog.userAgent.jscript");
goog.require("goog.string");
goog.userAgent.jscript.ASSUME_NO_JSCRIPT = false;
goog.userAgent.jscript.init_ = function() {
var hasScriptEngine = "ScriptEngine" in goog.global;
goog.userAgent.jscript.DETECTED_HAS_JSCRIPT_ = hasScriptEngine && goog.global["ScriptEngine"]() == "JScript";
goog.userAgent.jscript.DETECTED_VERSION_ = goog.userAgent.jscript.DETECTED_HAS_JSCRIPT_ ? goog.global["ScriptEngineMajorVersion"]() + "." + goog.global["ScriptEngineMinorVersion"]() + "." + goog.global["ScriptEngineBuildVersion"]() : "0"
};
if(!goog.userAgent.jscript.ASSUME_NO_JSCRIPT) {
goog.userAgent.jscript.init_()
}
goog.userAgent.jscript.HAS_JSCRIPT = goog.userAgent.jscript.ASSUME_NO_JSCRIPT ? false : goog.userAgent.jscript.DETECTED_HAS_JSCRIPT_;
goog.userAgent.jscript.VERSION = goog.userAgent.jscript.ASSUME_NO_JSCRIPT ? "0" : goog.userAgent.jscript.DETECTED_VERSION_;
goog.userAgent.jscript.isVersion = function(version) {
return goog.string.compareVersions(goog.userAgent.jscript.VERSION, version) >= 0
};
goog.provide("goog.string.StringBuffer");
goog.require("goog.userAgent.jscript");
goog.string.StringBuffer = function(opt_a1, var_args) {
this.buffer_ = goog.userAgent.jscript.HAS_JSCRIPT ? [] : "";
if(opt_a1 != null) {
this.append.apply(this, arguments)
}
};
goog.string.StringBuffer.prototype.set = function(s) {
this.clear();
this.append(s)
};
if(goog.userAgent.jscript.HAS_JSCRIPT) {
goog.string.StringBuffer.prototype.bufferLength_ = 0;
goog.string.StringBuffer.prototype.append = function(a1, opt_a2, var_args) {
if(opt_a2 == null) {
this.buffer_[this.bufferLength_++] = a1
}else {
this.buffer_.push.apply(this.buffer_, arguments);
this.bufferLength_ = this.buffer_.length
}
return this
}
}else {
goog.string.StringBuffer.prototype.append = function(a1, opt_a2, var_args) {
this.buffer_ += a1;
if(opt_a2 != null) {
for(var i = 1;i < arguments.length;i++) {
this.buffer_ += arguments[i]
}
}
return this
}
}
goog.string.StringBuffer.prototype.clear = function() {
if(goog.userAgent.jscript.HAS_JSCRIPT) {
this.buffer_.length = 0;
this.bufferLength_ = 0
}else {
this.buffer_ = ""
}
};
goog.string.StringBuffer.prototype.getLength = function() {
return this.toString().length
};
goog.string.StringBuffer.prototype.toString = function() {
if(goog.userAgent.jscript.HAS_JSCRIPT) {
var str = this.buffer_.join("");
this.clear();
if(str) {
this.append(str)
}
return str
}else {
return this.buffer_
}
};
goog.provide("cljs.core");
goog.require("goog.array");
goog.require("goog.object");
goog.require("goog.string.format");
goog.require("goog.string.StringBuffer");
goog.require("goog.string");
cljs.core._STAR_unchecked_if_STAR_ = false;
cljs.core._STAR_print_fn_STAR_ = function _STAR_print_fn_STAR_(_) {
throw new Error("No *print-fn* fn set for evaluation environment");
};
cljs.core.truth_ = function truth_(x) {
return x != null && x !== false
};
cljs.core.type_satisfies_ = function type_satisfies_(p, x) {
var x__7699 = x == null ? null : x;
if(p[goog.typeOf(x__7699)]) {
return true
}else {
if(p["_"]) {
return true
}else {
if("\ufdd0'else") {
return false
}else {
return null
}
}
}
};
cljs.core.is_proto_ = function is_proto_(x) {
return x.constructor.prototype === x
};
cljs.core._STAR_main_cli_fn_STAR_ = null;
cljs.core.missing_protocol = function missing_protocol(proto, obj) {
return Error(["No protocol method ", proto, " defined for type ", goog.typeOf(obj), ": ", obj].join(""))
};
cljs.core.aclone = function aclone(array_like) {
return array_like.slice()
};
cljs.core.array = function array(var_args) {
return Array.prototype.slice.call(arguments)
};
cljs.core.make_array = function() {
var make_array = null;
var make_array__1 = function(size) {
return new Array(size)
};
var make_array__2 = function(type, size) {
return make_array.call(null, size)
};
make_array = function(type, size) {
switch(arguments.length) {
case 1:
return make_array__1.call(this, type);
case 2:
return make_array__2.call(this, type, size)
}
throw"Invalid arity: " + arguments.length;
};
make_array.cljs$lang$arity$1 = make_array__1;
make_array.cljs$lang$arity$2 = make_array__2;
return make_array
}();
cljs.core.aget = function() {
var aget = null;
var aget__2 = function(array, i) {
return array[i]
};
var aget__3 = function() {
var G__7700__delegate = function(array, i, idxs) {
return cljs.core.apply.call(null, aget, aget.call(null, array, i), idxs)
};
var G__7700 = function(array, i, var_args) {
var idxs = null;
if(goog.isDef(var_args)) {
idxs = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2), 0)
}
return G__7700__delegate.call(this, array, i, idxs)
};
G__7700.cljs$lang$maxFixedArity = 2;
G__7700.cljs$lang$applyTo = function(arglist__7701) {
var array = cljs.core.first(arglist__7701);
var i = cljs.core.first(cljs.core.next(arglist__7701));
var idxs = cljs.core.rest(cljs.core.next(arglist__7701));
return G__7700__delegate(array, i, idxs)
};
G__7700.cljs$lang$arity$variadic = G__7700__delegate;
return G__7700
}();
aget = function(array, i, var_args) {
var idxs = var_args;
switch(arguments.length) {
case 2:
return aget__2.call(this, array, i);
default:
return aget__3.cljs$lang$arity$variadic(array, i, cljs.core.array_seq(arguments, 2))
}
throw"Invalid arity: " + arguments.length;
};
aget.cljs$lang$maxFixedArity = 2;
aget.cljs$lang$applyTo = aget__3.cljs$lang$applyTo;
aget.cljs$lang$arity$2 = aget__2;
aget.cljs$lang$arity$variadic = aget__3.cljs$lang$arity$variadic;
return aget
}();
cljs.core.aset = function aset(array, i, val) {
return array[i] = val
};
cljs.core.alength = function alength(array) {
return array.length
};
cljs.core.into_array = function() {
var into_array = null;
var into_array__1 = function(aseq) {
return into_array.call(null, null, aseq)
};
var into_array__2 = function(type, aseq) {
return cljs.core.reduce.call(null, function(a, x) {
a.push(x);
return a
}, [], aseq)
};
into_array = function(type, aseq) {
switch(arguments.length) {
case 1:
return into_array__1.call(this, type);
case 2:
return into_array__2.call(this, type, aseq)
}
throw"Invalid arity: " + arguments.length;
};
into_array.cljs$lang$arity$1 = into_array__1;
into_array.cljs$lang$arity$2 = into_array__2;
return into_array
}();
cljs.core.IFn = {};
cljs.core._invoke = function() {
var _invoke = null;
var _invoke__1 = function(this$) {
if(function() {
var and__3822__auto____7786 = this$;
if(and__3822__auto____7786) {
return this$.cljs$core$IFn$_invoke$arity$1
}else {
return and__3822__auto____7786
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$1(this$)
}else {
var x__2387__auto____7787 = this$ == null ? null : this$;
return function() {
var or__3824__auto____7788 = cljs.core._invoke[goog.typeOf(x__2387__auto____7787)];
if(or__3824__auto____7788) {
return or__3824__auto____7788
}else {
var or__3824__auto____7789 = cljs.core._invoke["_"];
if(or__3824__auto____7789) {
return or__3824__auto____7789
}else {
throw cljs.core.missing_protocol.call(null, "IFn.-invoke", this$);
}
}
}().call(null, this$)
}
};
var _invoke__2 = function(this$, a) {
if(function() {
var and__3822__auto____7790 = this$;
if(and__3822__auto____7790) {
return this$.cljs$core$IFn$_invoke$arity$2
}else {
return and__3822__auto____7790
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$2(this$, a)
}else {
var x__2387__auto____7791 = this$ == null ? null : this$;
return function() {
var or__3824__auto____7792 = cljs.core._invoke[goog.typeOf(x__2387__auto____7791)];
if(or__3824__auto____7792) {
return or__3824__auto____7792
}else {
var or__3824__auto____7793 = cljs.core._invoke["_"];
if(or__3824__auto____7793) {
return or__3824__auto____7793
}else {
throw cljs.core.missing_protocol.call(null, "IFn.-invoke", this$);
}
}
}().call(null, this$, a)
}
};
var _invoke__3 = function(this$, a, b) {
if(function() {
var and__3822__auto____7794 = this$;
if(and__3822__auto____7794) {
return this$.cljs$core$IFn$_invoke$arity$3
}else {
return and__3822__auto____7794
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$3(this$, a, b)
}else {
var x__2387__auto____7795 = this$ == null ? null : this$;
return function() {
var or__3824__auto____7796 = cljs.core._invoke[goog.typeOf(x__2387__auto____7795)];
if(or__3824__auto____7796) {
return or__3824__auto____7796
}else {
var or__3824__auto____7797 = cljs.core._invoke["_"];
if(or__3824__auto____7797) {
return or__3824__auto____7797
}else {
throw cljs.core.missing_protocol.call(null, "IFn.-invoke", this$);
}
}
}().call(null, this$, a, b)
}
};
var _invoke__4 = function(this$, a, b, c) {
if(function() {
var and__3822__auto____7798 = this$;
if(and__3822__auto____7798) {
return this$.cljs$core$IFn$_invoke$arity$4
}else {
return and__3822__auto____7798
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$4(this$, a, b, c)
}else {
var x__2387__auto____7799 = this$ == null ? null : this$;
return function() {
var or__3824__auto____7800 = cljs.core._invoke[goog.typeOf(x__2387__auto____7799)];
if(or__3824__auto____7800) {
return or__3824__auto____7800
}else {
var or__3824__auto____7801 = cljs.core._invoke["_"];
if(or__3824__auto____7801) {
return or__3824__auto____7801
}else {
throw cljs.core.missing_protocol.call(null, "IFn.-invoke", this$);
}
}
}().call(null, this$, a, b, c)
}
};
var _invoke__5 = function(this$, a, b, c, d) {
if(function() {
var and__3822__auto____7802 = this$;
if(and__3822__auto____7802) {
return this$.cljs$core$IFn$_invoke$arity$5
}else {
return and__3822__auto____7802
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$5(this$, a, b, c, d)
}else {
var x__2387__auto____7803 = this$ == null ? null : this$;
return function() {
var or__3824__auto____7804 = cljs.core._invoke[goog.typeOf(x__2387__auto____7803)];
if(or__3824__auto____7804) {
return or__3824__auto____7804
}else {
var or__3824__auto____7805 = cljs.core._invoke["_"];
if(or__3824__auto____7805) {
return or__3824__auto____7805
}else {
throw cljs.core.missing_protocol.call(null, "IFn.-invoke", this$);
}
}
}().call(null, this$, a, b, c, d)
}
};
var _invoke__6 = function(this$, a, b, c, d, e) {
if(function() {
var and__3822__auto____7806 = this$;
if(and__3822__auto____7806) {
return this$.cljs$core$IFn$_invoke$arity$6
}else {
return and__3822__auto____7806
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$6(this$, a, b, c, d, e)
}else {
var x__2387__auto____7807 = this$ == null ? null : this$;
return function() {
var or__3824__auto____7808 = cljs.core._invoke[goog.typeOf(x__2387__auto____7807)];
if(or__3824__auto____7808) {
return or__3824__auto____7808
}else {
var or__3824__auto____7809 = cljs.core._invoke["_"];
if(or__3824__auto____7809) {
return or__3824__auto____7809
}else {
throw cljs.core.missing_protocol.call(null, "IFn.-invoke", this$);
}
}
}().call(null, this$, a, b, c, d, e)
}
};
var _invoke__7 = function(this$, a, b, c, d, e, f) {
if(function() {
var and__3822__auto____7810 = this$;
if(and__3822__auto____7810) {
return this$.cljs$core$IFn$_invoke$arity$7
}else {
return and__3822__auto____7810
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$7(this$, a, b, c, d, e, f)
}else {
var x__2387__auto____7811 = this$ == null ? null : this$;
return function() {
var or__3824__auto____7812 = cljs.core._invoke[goog.typeOf(x__2387__auto____7811)];
if(or__3824__auto____7812) {
return or__3824__auto____7812
}else {
var or__3824__auto____7813 = cljs.core._invoke["_"];
if(or__3824__auto____7813) {
return or__3824__auto____7813
}else {
throw cljs.core.missing_protocol.call(null, "IFn.-invoke", this$);
}
}
}().call(null, this$, a, b, c, d, e, f)
}
};
var _invoke__8 = function(this$, a, b, c, d, e, f, g) {
if(function() {
var and__3822__auto____7814 = this$;
if(and__3822__auto____7814) {
return this$.cljs$core$IFn$_invoke$arity$8
}else {
return and__3822__auto____7814
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$8(this$, a, b, c, d, e, f, g)
}else {
var x__2387__auto____7815 = this$ == null ? null : this$;
return function() {
var or__3824__auto____7816 = cljs.core._invoke[goog.typeOf(x__2387__auto____7815)];
if(or__3824__auto____7816) {
return or__3824__auto____7816
}else {
var or__3824__auto____7817 = cljs.core._invoke["_"];
if(or__3824__auto____7817) {
return or__3824__auto____7817
}else {
throw cljs.core.missing_protocol.call(null, "IFn.-invoke", this$);
}
}
}().call(null, this$, a, b, c, d, e, f, g)
}
};
var _invoke__9 = function(this$, a, b, c, d, e, f, g, h) {
if(function() {
var and__3822__auto____7818 = this$;
if(and__3822__auto____7818) {
return this$.cljs$core$IFn$_invoke$arity$9
}else {
return and__3822__auto____7818
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$9(this$, a, b, c, d, e, f, g, h)
}else {
var x__2387__auto____7819 = this$ == null ? null : this$;
return function() {
var or__3824__auto____7820 = cljs.core._invoke[goog.typeOf(x__2387__auto____7819)];
if(or__3824__auto____7820) {
return or__3824__auto____7820
}else {
var or__3824__auto____7821 = cljs.core._invoke["_"];
if(or__3824__auto____7821) {
return or__3824__auto____7821
}else {
throw cljs.core.missing_protocol.call(null, "IFn.-invoke", this$);
}
}
}().call(null, this$, a, b, c, d, e, f, g, h)
}
};
var _invoke__10 = function(this$, a, b, c, d, e, f, g, h, i) {
if(function() {
var and__3822__auto____7822 = this$;
if(and__3822__auto____7822) {
return this$.cljs$core$IFn$_invoke$arity$10
}else {
return and__3822__auto____7822
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$10(this$, a, b, c, d, e, f, g, h, i)
}else {
var x__2387__auto____7823 = this$ == null ? null : this$;
return function() {
var or__3824__auto____7824 = cljs.core._invoke[goog.typeOf(x__2387__auto____7823)];
if(or__3824__auto____7824) {
return or__3824__auto____7824
}else {
var or__3824__auto____7825 = cljs.core._invoke["_"];
if(or__3824__auto____7825) {
return or__3824__auto____7825
}else {
throw cljs.core.missing_protocol.call(null, "IFn.-invoke", this$);
}
}
}().call(null, this$, a, b, c, d, e, f, g, h, i)
}
};
var _invoke__11 = function(this$, a, b, c, d, e, f, g, h, i, j) {
if(function() {
var and__3822__auto____7826 = this$;
if(and__3822__auto____7826) {
return this$.cljs$core$IFn$_invoke$arity$11
}else {
return and__3822__auto____7826
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$11(this$, a, b, c, d, e, f, g, h, i, j)
}else {
var x__2387__auto____7827 = this$ == null ? null : this$;
return function() {
var or__3824__auto____7828 = cljs.core._invoke[goog.typeOf(x__2387__auto____7827)];
if(or__3824__auto____7828) {
return or__3824__auto____7828
}else {
var or__3824__auto____7829 = cljs.core._invoke["_"];
if(or__3824__auto____7829) {
return or__3824__auto____7829
}else {
throw cljs.core.missing_protocol.call(null, "IFn.-invoke", this$);
}
}
}().call(null, this$, a, b, c, d, e, f, g, h, i, j)
}
};
var _invoke__12 = function(this$, a, b, c, d, e, f, g, h, i, j, k) {
if(function() {
var and__3822__auto____7830 = this$;
if(and__3822__auto____7830) {
return this$.cljs$core$IFn$_invoke$arity$12
}else {
return and__3822__auto____7830
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$12(this$, a, b, c, d, e, f, g, h, i, j, k)
}else {
var x__2387__auto____7831 = this$ == null ? null : this$;
return function() {
var or__3824__auto____7832 = cljs.core._invoke[goog.typeOf(x__2387__auto____7831)];
if(or__3824__auto____7832) {
return or__3824__auto____7832
}else {
var or__3824__auto____7833 = cljs.core._invoke["_"];
if(or__3824__auto____7833) {
return or__3824__auto____7833
}else {
throw cljs.core.missing_protocol.call(null, "IFn.-invoke", this$);
}
}
}().call(null, this$, a, b, c, d, e, f, g, h, i, j, k)
}
};
var _invoke__13 = function(this$, a, b, c, d, e, f, g, h, i, j, k, l) {
if(function() {
var and__3822__auto____7834 = this$;
if(and__3822__auto____7834) {
return this$.cljs$core$IFn$_invoke$arity$13
}else {
return and__3822__auto____7834
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$13(this$, a, b, c, d, e, f, g, h, i, j, k, l)
}else {
var x__2387__auto____7835 = this$ == null ? null : this$;
return function() {
var or__3824__auto____7836 = cljs.core._invoke[goog.typeOf(x__2387__auto____7835)];
if(or__3824__auto____7836) {
return or__3824__auto____7836
}else {
var or__3824__auto____7837 = cljs.core._invoke["_"];
if(or__3824__auto____7837) {
return or__3824__auto____7837
}else {
throw cljs.core.missing_protocol.call(null, "IFn.-invoke", this$);
}
}
}().call(null, this$, a, b, c, d, e, f, g, h, i, j, k, l)
}
};
var _invoke__14 = function(this$, a, b, c, d, e, f, g, h, i, j, k, l, m) {
if(function() {
var and__3822__auto____7838 = this$;
if(and__3822__auto____7838) {
return this$.cljs$core$IFn$_invoke$arity$14
}else {
return and__3822__auto____7838
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$14(this$, a, b, c, d, e, f, g, h, i, j, k, l, m)
}else {
var x__2387__auto____7839 = this$ == null ? null : this$;
return function() {
var or__3824__auto____7840 = cljs.core._invoke[goog.typeOf(x__2387__auto____7839)];
if(or__3824__auto____7840) {
return or__3824__auto____7840
}else {
var or__3824__auto____7841 = cljs.core._invoke["_"];
if(or__3824__auto____7841) {
return or__3824__auto____7841
}else {
throw cljs.core.missing_protocol.call(null, "IFn.-invoke", this$);
}
}
}().call(null, this$, a, b, c, d, e, f, g, h, i, j, k, l, m)
}
};
var _invoke__15 = function(this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n) {
if(function() {
var and__3822__auto____7842 = this$;
if(and__3822__auto____7842) {
return this$.cljs$core$IFn$_invoke$arity$15
}else {
return and__3822__auto____7842
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$15(this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n)
}else {
var x__2387__auto____7843 = this$ == null ? null : this$;
return function() {
var or__3824__auto____7844 = cljs.core._invoke[goog.typeOf(x__2387__auto____7843)];
if(or__3824__auto____7844) {
return or__3824__auto____7844
}else {
var or__3824__auto____7845 = cljs.core._invoke["_"];
if(or__3824__auto____7845) {
return or__3824__auto____7845
}else {
throw cljs.core.missing_protocol.call(null, "IFn.-invoke", this$);
}
}
}().call(null, this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n)
}
};
var _invoke__16 = function(this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) {
if(function() {
var and__3822__auto____7846 = this$;
if(and__3822__auto____7846) {
return this$.cljs$core$IFn$_invoke$arity$16
}else {
return and__3822__auto____7846
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$16(this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)
}else {
var x__2387__auto____7847 = this$ == null ? null : this$;
return function() {
var or__3824__auto____7848 = cljs.core._invoke[goog.typeOf(x__2387__auto____7847)];
if(or__3824__auto____7848) {
return or__3824__auto____7848
}else {
var or__3824__auto____7849 = cljs.core._invoke["_"];
if(or__3824__auto____7849) {
return or__3824__auto____7849
}else {
throw cljs.core.missing_protocol.call(null, "IFn.-invoke", this$);
}
}
}().call(null, this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)
}
};
var _invoke__17 = function(this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {
if(function() {
var and__3822__auto____7850 = this$;
if(and__3822__auto____7850) {
return this$.cljs$core$IFn$_invoke$arity$17
}else {
return and__3822__auto____7850
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$17(this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p)
}else {
var x__2387__auto____7851 = this$ == null ? null : this$;
return function() {
var or__3824__auto____7852 = cljs.core._invoke[goog.typeOf(x__2387__auto____7851)];
if(or__3824__auto____7852) {
return or__3824__auto____7852
}else {
var or__3824__auto____7853 = cljs.core._invoke["_"];
if(or__3824__auto____7853) {
return or__3824__auto____7853
}else {
throw cljs.core.missing_protocol.call(null, "IFn.-invoke", this$);
}
}
}().call(null, this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p)
}
};
var _invoke__18 = function(this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) {
if(function() {
var and__3822__auto____7854 = this$;
if(and__3822__auto____7854) {
return this$.cljs$core$IFn$_invoke$arity$18
}else {
return and__3822__auto____7854
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$18(this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q)
}else {
var x__2387__auto____7855 = this$ == null ? null : this$;
return function() {
var or__3824__auto____7856 = cljs.core._invoke[goog.typeOf(x__2387__auto____7855)];
if(or__3824__auto____7856) {
return or__3824__auto____7856
}else {
var or__3824__auto____7857 = cljs.core._invoke["_"];
if(or__3824__auto____7857) {
return or__3824__auto____7857
}else {
throw cljs.core.missing_protocol.call(null, "IFn.-invoke", this$);
}
}
}().call(null, this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q)
}
};
var _invoke__19 = function(this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, s) {
if(function() {
var and__3822__auto____7858 = this$;
if(and__3822__auto____7858) {
return this$.cljs$core$IFn$_invoke$arity$19
}else {
return and__3822__auto____7858
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$19(this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, s)
}else {
var x__2387__auto____7859 = this$ == null ? null : this$;
return function() {
var or__3824__auto____7860 = cljs.core._invoke[goog.typeOf(x__2387__auto____7859)];
if(or__3824__auto____7860) {
return or__3824__auto____7860
}else {
var or__3824__auto____7861 = cljs.core._invoke["_"];
if(or__3824__auto____7861) {
return or__3824__auto____7861
}else {
throw cljs.core.missing_protocol.call(null, "IFn.-invoke", this$);
}
}
}().call(null, this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, s)
}
};
var _invoke__20 = function(this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, s, t) {
if(function() {
var and__3822__auto____7862 = this$;
if(and__3822__auto____7862) {
return this$.cljs$core$IFn$_invoke$arity$20
}else {
return and__3822__auto____7862
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$20(this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, s, t)
}else {
var x__2387__auto____7863 = this$ == null ? null : this$;
return function() {
var or__3824__auto____7864 = cljs.core._invoke[goog.typeOf(x__2387__auto____7863)];
if(or__3824__auto____7864) {
return or__3824__auto____7864
}else {
var or__3824__auto____7865 = cljs.core._invoke["_"];
if(or__3824__auto____7865) {
return or__3824__auto____7865
}else {
throw cljs.core.missing_protocol.call(null, "IFn.-invoke", this$);
}
}
}().call(null, this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, s, t)
}
};
var _invoke__21 = function(this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, s, t, rest) {
if(function() {
var and__3822__auto____7866 = this$;
if(and__3822__auto____7866) {
return this$.cljs$core$IFn$_invoke$arity$21
}else {
return and__3822__auto____7866
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$21(this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, s, t, rest)
}else {
var x__2387__auto____7867 = this$ == null ? null : this$;
return function() {
var or__3824__auto____7868 = cljs.core._invoke[goog.typeOf(x__2387__auto____7867)];
if(or__3824__auto____7868) {
return or__3824__auto____7868
}else {
var or__3824__auto____7869 = cljs.core._invoke["_"];
if(or__3824__auto____7869) {
return or__3824__auto____7869
}else {
throw cljs.core.missing_protocol.call(null, "IFn.-invoke", this$);
}
}
}().call(null, this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, s, t, rest)
}
};
_invoke = function(this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, s, t, rest) {
switch(arguments.length) {
case 1:
return _invoke__1.call(this, this$);
case 2:
return _invoke__2.call(this, this$, a);
case 3:
return _invoke__3.call(this, this$, a, b);
case 4:
return _invoke__4.call(this, this$, a, b, c);
case 5:
return _invoke__5.call(this, this$, a, b, c, d);
case 6:
return _invoke__6.call(this, this$, a, b, c, d, e);
case 7:
return _invoke__7.call(this, this$, a, b, c, d, e, f);
case 8:
return _invoke__8.call(this, this$, a, b, c, d, e, f, g);
case 9:
return _invoke__9.call(this, this$, a, b, c, d, e, f, g, h);
case 10:
return _invoke__10.call(this, this$, a, b, c, d, e, f, g, h, i);
case 11:
return _invoke__11.call(this, this$, a, b, c, d, e, f, g, h, i, j);
case 12:
return _invoke__12.call(this, this$, a, b, c, d, e, f, g, h, i, j, k);
case 13:
return _invoke__13.call(this, this$, a, b, c, d, e, f, g, h, i, j, k, l);
case 14:
return _invoke__14.call(this, this$, a, b, c, d, e, f, g, h, i, j, k, l, m);
case 15:
return _invoke__15.call(this, this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n);
case 16:
return _invoke__16.call(this, this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o);
case 17:
return _invoke__17.call(this, this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p);
case 18:
return _invoke__18.call(this, this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q);
case 19:
return _invoke__19.call(this, this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, s);
case 20:
return _invoke__20.call(this, this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, s, t);
case 21:
return _invoke__21.call(this, this$, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, s, t, rest)
}
throw"Invalid arity: " + arguments.length;
};
_invoke.cljs$lang$arity$1 = _invoke__1;
_invoke.cljs$lang$arity$2 = _invoke__2;
_invoke.cljs$lang$arity$3 = _invoke__3;
_invoke.cljs$lang$arity$4 = _invoke__4;
_invoke.cljs$lang$arity$5 = _invoke__5;
_invoke.cljs$lang$arity$6 = _invoke__6;
_invoke.cljs$lang$arity$7 = _invoke__7;
_invoke.cljs$lang$arity$8 = _invoke__8;
_invoke.cljs$lang$arity$9 = _invoke__9;
_invoke.cljs$lang$arity$10 = _invoke__10;
_invoke.cljs$lang$arity$11 = _invoke__11;
_invoke.cljs$lang$arity$12 = _invoke__12;
_invoke.cljs$lang$arity$13 = _invoke__13;
_invoke.cljs$lang$arity$14 = _invoke__14;
_invoke.cljs$lang$arity$15 = _invoke__15;
_invoke.cljs$lang$arity$16 = _invoke__16;
_invoke.cljs$lang$arity$17 = _invoke__17;
_invoke.cljs$lang$arity$18 = _invoke__18;
_invoke.cljs$lang$arity$19 = _invoke__19;
_invoke.cljs$lang$arity$20 = _invoke__20;
_invoke.cljs$lang$arity$21 = _invoke__21;
return _invoke
}();
cljs.core.ICounted = {};
cljs.core._count = function _count(coll) {
if(function() {
var and__3822__auto____7874 = coll;
if(and__3822__auto____7874) {
return coll.cljs$core$ICounted$_count$arity$1
}else {
return and__3822__auto____7874
}
}()) {
return coll.cljs$core$ICounted$_count$arity$1(coll)
}else {
var x__2387__auto____7875 = coll == null ? null : coll;
return function() {
var or__3824__auto____7876 = cljs.core._count[goog.typeOf(x__2387__auto____7875)];
if(or__3824__auto____7876) {
return or__3824__auto____7876
}else {
var or__3824__auto____7877 = cljs.core._count["_"];
if(or__3824__auto____7877) {
return or__3824__auto____7877
}else {
throw cljs.core.missing_protocol.call(null, "ICounted.-count", coll);
}
}
}().call(null, coll)
}
};
cljs.core.IEmptyableCollection = {};
cljs.core._empty = function _empty(coll) {
if(function() {
var and__3822__auto____7882 = coll;
if(and__3822__auto____7882) {
return coll.cljs$core$IEmptyableCollection$_empty$arity$1
}else {
return and__3822__auto____7882
}
}()) {
return coll.cljs$core$IEmptyableCollection$_empty$arity$1(coll)
}else {
var x__2387__auto____7883 = coll == null ? null : coll;
return function() {
var or__3824__auto____7884 = cljs.core._empty[goog.typeOf(x__2387__auto____7883)];
if(or__3824__auto____7884) {
return or__3824__auto____7884
}else {
var or__3824__auto____7885 = cljs.core._empty["_"];
if(or__3824__auto____7885) {
return or__3824__auto____7885
}else {
throw cljs.core.missing_protocol.call(null, "IEmptyableCollection.-empty", coll);
}
}
}().call(null, coll)
}
};
cljs.core.ICollection = {};
cljs.core._conj = function _conj(coll, o) {
if(function() {
var and__3822__auto____7890 = coll;
if(and__3822__auto____7890) {
return coll.cljs$core$ICollection$_conj$arity$2
}else {
return and__3822__auto____7890
}
}()) {
return coll.cljs$core$ICollection$_conj$arity$2(coll, o)
}else {
var x__2387__auto____7891 = coll == null ? null : coll;
return function() {
var or__3824__auto____7892 = cljs.core._conj[goog.typeOf(x__2387__auto____7891)];
if(or__3824__auto____7892) {
return or__3824__auto____7892
}else {
var or__3824__auto____7893 = cljs.core._conj["_"];
if(or__3824__auto____7893) {
return or__3824__auto____7893
}else {
throw cljs.core.missing_protocol.call(null, "ICollection.-conj", coll);
}
}
}().call(null, coll, o)
}
};
cljs.core.IIndexed = {};
cljs.core._nth = function() {
var _nth = null;
var _nth__2 = function(coll, n) {
if(function() {
var and__3822__auto____7902 = coll;
if(and__3822__auto____7902) {
return coll.cljs$core$IIndexed$_nth$arity$2
}else {
return and__3822__auto____7902
}
}()) {
return coll.cljs$core$IIndexed$_nth$arity$2(coll, n)
}else {
var x__2387__auto____7903 = coll == null ? null : coll;
return function() {
var or__3824__auto____7904 = cljs.core._nth[goog.typeOf(x__2387__auto____7903)];
if(or__3824__auto____7904) {
return or__3824__auto____7904
}else {
var or__3824__auto____7905 = cljs.core._nth["_"];
if(or__3824__auto____7905) {
return or__3824__auto____7905
}else {
throw cljs.core.missing_protocol.call(null, "IIndexed.-nth", coll);
}
}
}().call(null, coll, n)
}
};
var _nth__3 = function(coll, n, not_found) {
if(function() {
var and__3822__auto____7906 = coll;
if(and__3822__auto____7906) {
return coll.cljs$core$IIndexed$_nth$arity$3
}else {
return and__3822__auto____7906
}
}()) {
return coll.cljs$core$IIndexed$_nth$arity$3(coll, n, not_found)
}else {
var x__2387__auto____7907 = coll == null ? null : coll;
return function() {
var or__3824__auto____7908 = cljs.core._nth[goog.typeOf(x__2387__auto____7907)];
if(or__3824__auto____7908) {
return or__3824__auto____7908
}else {
var or__3824__auto____7909 = cljs.core._nth["_"];
if(or__3824__auto____7909) {
return or__3824__auto____7909
}else {
throw cljs.core.missing_protocol.call(null, "IIndexed.-nth", coll);
}
}
}().call(null, coll, n, not_found)
}
};
_nth = function(coll, n, not_found) {
switch(arguments.length) {
case 2:
return _nth__2.call(this, coll, n);
case 3:
return _nth__3.call(this, coll, n, not_found)
}
throw"Invalid arity: " + arguments.length;
};
_nth.cljs$lang$arity$2 = _nth__2;
_nth.cljs$lang$arity$3 = _nth__3;
return _nth
}();
cljs.core.ASeq = {};
cljs.core.ISeq = {};
cljs.core._first = function _first(coll) {
if(function() {
var and__3822__auto____7914 = coll;
if(and__3822__auto____7914) {
return coll.cljs$core$ISeq$_first$arity$1
}else {
return and__3822__auto____7914
}
}()) {
return coll.cljs$core$ISeq$_first$arity$1(coll)
}else {
var x__2387__auto____7915 = coll == null ? null : coll;
return function() {
var or__3824__auto____7916 = cljs.core._first[goog.typeOf(x__2387__auto____7915)];
if(or__3824__auto____7916) {
return or__3824__auto____7916
}else {
var or__3824__auto____7917 = cljs.core._first["_"];
if(or__3824__auto____7917) {
return or__3824__auto____7917
}else {
throw cljs.core.missing_protocol.call(null, "ISeq.-first", coll);
}
}
}().call(null, coll)
}
};
cljs.core._rest = function _rest(coll) {
if(function() {
var and__3822__auto____7922 = coll;
if(and__3822__auto____7922) {
return coll.cljs$core$ISeq$_rest$arity$1
}else {
return and__3822__auto____7922
}
}()) {
return coll.cljs$core$ISeq$_rest$arity$1(coll)
}else {
var x__2387__auto____7923 = coll == null ? null : coll;
return function() {
var or__3824__auto____7924 = cljs.core._rest[goog.typeOf(x__2387__auto____7923)];
if(or__3824__auto____7924) {
return or__3824__auto____7924
}else {
var or__3824__auto____7925 = cljs.core._rest["_"];
if(or__3824__auto____7925) {
return or__3824__auto____7925
}else {
throw cljs.core.missing_protocol.call(null, "ISeq.-rest", coll);
}
}
}().call(null, coll)
}
};
cljs.core.INext = {};
cljs.core._next = function _next(coll) {
if(function() {
var and__3822__auto____7930 = coll;
if(and__3822__auto____7930) {
return coll.cljs$core$INext$_next$arity$1
}else {
return and__3822__auto____7930
}
}()) {
return coll.cljs$core$INext$_next$arity$1(coll)
}else {
var x__2387__auto____7931 = coll == null ? null : coll;
return function() {
var or__3824__auto____7932 = cljs.core._next[goog.typeOf(x__2387__auto____7931)];
if(or__3824__auto____7932) {
return or__3824__auto____7932
}else {
var or__3824__auto____7933 = cljs.core._next["_"];
if(or__3824__auto____7933) {
return or__3824__auto____7933
}else {
throw cljs.core.missing_protocol.call(null, "INext.-next", coll);
}
}
}().call(null, coll)
}
};
cljs.core.ILookup = {};
cljs.core._lookup = function() {
var _lookup = null;
var _lookup__2 = function(o, k) {
if(function() {
var and__3822__auto____7942 = o;
if(and__3822__auto____7942) {
return o.cljs$core$ILookup$_lookup$arity$2
}else {
return and__3822__auto____7942
}
}()) {
return o.cljs$core$ILookup$_lookup$arity$2(o, k)
}else {
var x__2387__auto____7943 = o == null ? null : o;
return function() {
var or__3824__auto____7944 = cljs.core._lookup[goog.typeOf(x__2387__auto____7943)];
if(or__3824__auto____7944) {
return or__3824__auto____7944
}else {
var or__3824__auto____7945 = cljs.core._lookup["_"];
if(or__3824__auto____7945) {
return or__3824__auto____7945
}else {
throw cljs.core.missing_protocol.call(null, "ILookup.-lookup", o);
}
}
}().call(null, o, k)
}
};
var _lookup__3 = function(o, k, not_found) {
if(function() {
var and__3822__auto____7946 = o;
if(and__3822__auto____7946) {
return o.cljs$core$ILookup$_lookup$arity$3
}else {
return and__3822__auto____7946
}
}()) {
return o.cljs$core$ILookup$_lookup$arity$3(o, k, not_found)
}else {
var x__2387__auto____7947 = o == null ? null : o;
return function() {
var or__3824__auto____7948 = cljs.core._lookup[goog.typeOf(x__2387__auto____7947)];
if(or__3824__auto____7948) {
return or__3824__auto____7948
}else {
var or__3824__auto____7949 = cljs.core._lookup["_"];
if(or__3824__auto____7949) {
return or__3824__auto____7949
}else {
throw cljs.core.missing_protocol.call(null, "ILookup.-lookup", o);
}
}
}().call(null, o, k, not_found)
}
};
_lookup = function(o, k, not_found) {
switch(arguments.length) {
case 2:
return _lookup__2.call(this, o, k);
case 3:
return _lookup__3.call(this, o, k, not_found)
}
throw"Invalid arity: " + arguments.length;
};
_lookup.cljs$lang$arity$2 = _lookup__2;
_lookup.cljs$lang$arity$3 = _lookup__3;
return _lookup
}();
cljs.core.IAssociative = {};
cljs.core._contains_key_QMARK_ = function _contains_key_QMARK_(coll, k) {
if(function() {
var and__3822__auto____7954 = coll;
if(and__3822__auto____7954) {
return coll.cljs$core$IAssociative$_contains_key_QMARK_$arity$2
}else {
return and__3822__auto____7954
}
}()) {
return coll.cljs$core$IAssociative$_contains_key_QMARK_$arity$2(coll, k)
}else {
var x__2387__auto____7955 = coll == null ? null : coll;
return function() {
var or__3824__auto____7956 = cljs.core._contains_key_QMARK_[goog.typeOf(x__2387__auto____7955)];
if(or__3824__auto____7956) {
return or__3824__auto____7956
}else {
var or__3824__auto____7957 = cljs.core._contains_key_QMARK_["_"];
if(or__3824__auto____7957) {
return or__3824__auto____7957
}else {
throw cljs.core.missing_protocol.call(null, "IAssociative.-contains-key?", coll);
}
}
}().call(null, coll, k)
}
};
cljs.core._assoc = function _assoc(coll, k, v) {
if(function() {
var and__3822__auto____7962 = coll;
if(and__3822__auto____7962) {
return coll.cljs$core$IAssociative$_assoc$arity$3
}else {
return and__3822__auto____7962
}
}()) {
return coll.cljs$core$IAssociative$_assoc$arity$3(coll, k, v)
}else {
var x__2387__auto____7963 = coll == null ? null : coll;
return function() {
var or__3824__auto____7964 = cljs.core._assoc[goog.typeOf(x__2387__auto____7963)];
if(or__3824__auto____7964) {
return or__3824__auto____7964
}else {
var or__3824__auto____7965 = cljs.core._assoc["_"];
if(or__3824__auto____7965) {
return or__3824__auto____7965
}else {
throw cljs.core.missing_protocol.call(null, "IAssociative.-assoc", coll);
}
}
}().call(null, coll, k, v)
}
};
cljs.core.IMap = {};
cljs.core._dissoc = function _dissoc(coll, k) {
if(function() {
var and__3822__auto____7970 = coll;
if(and__3822__auto____7970) {
return coll.cljs$core$IMap$_dissoc$arity$2
}else {
return and__3822__auto____7970
}
}()) {
return coll.cljs$core$IMap$_dissoc$arity$2(coll, k)
}else {
var x__2387__auto____7971 = coll == null ? null : coll;
return function() {
var or__3824__auto____7972 = cljs.core._dissoc[goog.typeOf(x__2387__auto____7971)];
if(or__3824__auto____7972) {
return or__3824__auto____7972
}else {
var or__3824__auto____7973 = cljs.core._dissoc["_"];
if(or__3824__auto____7973) {
return or__3824__auto____7973
}else {
throw cljs.core.missing_protocol.call(null, "IMap.-dissoc", coll);
}
}
}().call(null, coll, k)
}
};
cljs.core.IMapEntry = {};
cljs.core._key = function _key(coll) {
if(function() {
var and__3822__auto____7978 = coll;
if(and__3822__auto____7978) {
return coll.cljs$core$IMapEntry$_key$arity$1
}else {
return and__3822__auto____7978
}
}()) {
return coll.cljs$core$IMapEntry$_key$arity$1(coll)
}else {
var x__2387__auto____7979 = coll == null ? null : coll;
return function() {
var or__3824__auto____7980 = cljs.core._key[goog.typeOf(x__2387__auto____7979)];
if(or__3824__auto____7980) {
return or__3824__auto____7980
}else {
var or__3824__auto____7981 = cljs.core._key["_"];
if(or__3824__auto____7981) {
return or__3824__auto____7981
}else {
throw cljs.core.missing_protocol.call(null, "IMapEntry.-key", coll);
}
}
}().call(null, coll)
}
};
cljs.core._val = function _val(coll) {
if(function() {
var and__3822__auto____7986 = coll;
if(and__3822__auto____7986) {
return coll.cljs$core$IMapEntry$_val$arity$1
}else {
return and__3822__auto____7986
}
}()) {
return coll.cljs$core$IMapEntry$_val$arity$1(coll)
}else {
var x__2387__auto____7987 = coll == null ? null : coll;
return function() {
var or__3824__auto____7988 = cljs.core._val[goog.typeOf(x__2387__auto____7987)];
if(or__3824__auto____7988) {
return or__3824__auto____7988
}else {
var or__3824__auto____7989 = cljs.core._val["_"];
if(or__3824__auto____7989) {
return or__3824__auto____7989
}else {
throw cljs.core.missing_protocol.call(null, "IMapEntry.-val", coll);
}
}
}().call(null, coll)
}
};
cljs.core.ISet = {};
cljs.core._disjoin = function _disjoin(coll, v) {
if(function() {
var and__3822__auto____7994 = coll;
if(and__3822__auto____7994) {
return coll.cljs$core$ISet$_disjoin$arity$2
}else {
return and__3822__auto____7994
}
}()) {
return coll.cljs$core$ISet$_disjoin$arity$2(coll, v)
}else {
var x__2387__auto____7995 = coll == null ? null : coll;
return function() {
var or__3824__auto____7996 = cljs.core._disjoin[goog.typeOf(x__2387__auto____7995)];
if(or__3824__auto____7996) {
return or__3824__auto____7996
}else {
var or__3824__auto____7997 = cljs.core._disjoin["_"];
if(or__3824__auto____7997) {
return or__3824__auto____7997
}else {
throw cljs.core.missing_protocol.call(null, "ISet.-disjoin", coll);
}
}
}().call(null, coll, v)
}
};
cljs.core.IStack = {};
cljs.core._peek = function _peek(coll) {
if(function() {
var and__3822__auto____8002 = coll;
if(and__3822__auto____8002) {
return coll.cljs$core$IStack$_peek$arity$1
}else {
return and__3822__auto____8002
}
}()) {
return coll.cljs$core$IStack$_peek$arity$1(coll)
}else {
var x__2387__auto____8003 = coll == null ? null : coll;
return function() {
var or__3824__auto____8004 = cljs.core._peek[goog.typeOf(x__2387__auto____8003)];
if(or__3824__auto____8004) {
return or__3824__auto____8004
}else {
var or__3824__auto____8005 = cljs.core._peek["_"];
if(or__3824__auto____8005) {
return or__3824__auto____8005
}else {
throw cljs.core.missing_protocol.call(null, "IStack.-peek", coll);
}
}
}().call(null, coll)
}
};
cljs.core._pop = function _pop(coll) {
if(function() {
var and__3822__auto____8010 = coll;
if(and__3822__auto____8010) {
return coll.cljs$core$IStack$_pop$arity$1
}else {
return and__3822__auto____8010
}
}()) {
return coll.cljs$core$IStack$_pop$arity$1(coll)
}else {
var x__2387__auto____8011 = coll == null ? null : coll;
return function() {
var or__3824__auto____8012 = cljs.core._pop[goog.typeOf(x__2387__auto____8011)];
if(or__3824__auto____8012) {
return or__3824__auto____8012
}else {
var or__3824__auto____8013 = cljs.core._pop["_"];
if(or__3824__auto____8013) {
return or__3824__auto____8013
}else {
throw cljs.core.missing_protocol.call(null, "IStack.-pop", coll);
}
}
}().call(null, coll)
}
};
cljs.core.IVector = {};
cljs.core._assoc_n = function _assoc_n(coll, n, val) {
if(function() {
var and__3822__auto____8018 = coll;
if(and__3822__auto____8018) {
return coll.cljs$core$IVector$_assoc_n$arity$3
}else {
return and__3822__auto____8018
}
}()) {
return coll.cljs$core$IVector$_assoc_n$arity$3(coll, n, val)
}else {
var x__2387__auto____8019 = coll == null ? null : coll;
return function() {
var or__3824__auto____8020 = cljs.core._assoc_n[goog.typeOf(x__2387__auto____8019)];
if(or__3824__auto____8020) {
return or__3824__auto____8020
}else {
var or__3824__auto____8021 = cljs.core._assoc_n["_"];
if(or__3824__auto____8021) {
return or__3824__auto____8021
}else {
throw cljs.core.missing_protocol.call(null, "IVector.-assoc-n", coll);
}
}
}().call(null, coll, n, val)
}
};
cljs.core.IDeref = {};
cljs.core._deref = function _deref(o) {
if(function() {
var and__3822__auto____8026 = o;
if(and__3822__auto____8026) {
return o.cljs$core$IDeref$_deref$arity$1
}else {
return and__3822__auto____8026
}
}()) {
return o.cljs$core$IDeref$_deref$arity$1(o)
}else {
var x__2387__auto____8027 = o == null ? null : o;
return function() {
var or__3824__auto____8028 = cljs.core._deref[goog.typeOf(x__2387__auto____8027)];
if(or__3824__auto____8028) {
return or__3824__auto____8028
}else {
var or__3824__auto____8029 = cljs.core._deref["_"];
if(or__3824__auto____8029) {
return or__3824__auto____8029
}else {
throw cljs.core.missing_protocol.call(null, "IDeref.-deref", o);
}
}
}().call(null, o)
}
};
cljs.core.IDerefWithTimeout = {};
cljs.core._deref_with_timeout = function _deref_with_timeout(o, msec, timeout_val) {
if(function() {
var and__3822__auto____8034 = o;
if(and__3822__auto____8034) {
return o.cljs$core$IDerefWithTimeout$_deref_with_timeout$arity$3
}else {
return and__3822__auto____8034
}
}()) {
return o.cljs$core$IDerefWithTimeout$_deref_with_timeout$arity$3(o, msec, timeout_val)
}else {
var x__2387__auto____8035 = o == null ? null : o;
return function() {
var or__3824__auto____8036 = cljs.core._deref_with_timeout[goog.typeOf(x__2387__auto____8035)];
if(or__3824__auto____8036) {
return or__3824__auto____8036
}else {
var or__3824__auto____8037 = cljs.core._deref_with_timeout["_"];
if(or__3824__auto____8037) {
return or__3824__auto____8037
}else {
throw cljs.core.missing_protocol.call(null, "IDerefWithTimeout.-deref-with-timeout", o);
}
}
}().call(null, o, msec, timeout_val)
}
};
cljs.core.IMeta = {};
cljs.core._meta = function _meta(o) {
if(function() {
var and__3822__auto____8042 = o;
if(and__3822__auto____8042) {
return o.cljs$core$IMeta$_meta$arity$1
}else {
return and__3822__auto____8042
}
}()) {
return o.cljs$core$IMeta$_meta$arity$1(o)
}else {
var x__2387__auto____8043 = o == null ? null : o;
return function() {
var or__3824__auto____8044 = cljs.core._meta[goog.typeOf(x__2387__auto____8043)];
if(or__3824__auto____8044) {
return or__3824__auto____8044
}else {
var or__3824__auto____8045 = cljs.core._meta["_"];
if(or__3824__auto____8045) {
return or__3824__auto____8045
}else {
throw cljs.core.missing_protocol.call(null, "IMeta.-meta", o);
}
}
}().call(null, o)
}
};
cljs.core.IWithMeta = {};
cljs.core._with_meta = function _with_meta(o, meta) {
if(function() {
var and__3822__auto____8050 = o;
if(and__3822__auto____8050) {
return o.cljs$core$IWithMeta$_with_meta$arity$2
}else {
return and__3822__auto____8050
}
}()) {
return o.cljs$core$IWithMeta$_with_meta$arity$2(o, meta)
}else {
var x__2387__auto____8051 = o == null ? null : o;
return function() {
var or__3824__auto____8052 = cljs.core._with_meta[goog.typeOf(x__2387__auto____8051)];
if(or__3824__auto____8052) {
return or__3824__auto____8052
}else {
var or__3824__auto____8053 = cljs.core._with_meta["_"];
if(or__3824__auto____8053) {
return or__3824__auto____8053
}else {
throw cljs.core.missing_protocol.call(null, "IWithMeta.-with-meta", o);
}
}
}().call(null, o, meta)
}
};
cljs.core.IReduce = {};
cljs.core._reduce = function() {
var _reduce = null;
var _reduce__2 = function(coll, f) {
if(function() {
var and__3822__auto____8062 = coll;
if(and__3822__auto____8062) {
return coll.cljs$core$IReduce$_reduce$arity$2
}else {
return and__3822__auto____8062
}
}()) {
return coll.cljs$core$IReduce$_reduce$arity$2(coll, f)
}else {
var x__2387__auto____8063 = coll == null ? null : coll;
return function() {
var or__3824__auto____8064 = cljs.core._reduce[goog.typeOf(x__2387__auto____8063)];
if(or__3824__auto____8064) {
return or__3824__auto____8064
}else {
var or__3824__auto____8065 = cljs.core._reduce["_"];
if(or__3824__auto____8065) {
return or__3824__auto____8065
}else {
throw cljs.core.missing_protocol.call(null, "IReduce.-reduce", coll);
}
}
}().call(null, coll, f)
}
};
var _reduce__3 = function(coll, f, start) {
if(function() {
var and__3822__auto____8066 = coll;
if(and__3822__auto____8066) {
return coll.cljs$core$IReduce$_reduce$arity$3
}else {
return and__3822__auto____8066
}
}()) {
return coll.cljs$core$IReduce$_reduce$arity$3(coll, f, start)
}else {
var x__2387__auto____8067 = coll == null ? null : coll;
return function() {
var or__3824__auto____8068 = cljs.core._reduce[goog.typeOf(x__2387__auto____8067)];
if(or__3824__auto____8068) {
return or__3824__auto____8068
}else {
var or__3824__auto____8069 = cljs.core._reduce["_"];
if(or__3824__auto____8069) {
return or__3824__auto____8069
}else {
throw cljs.core.missing_protocol.call(null, "IReduce.-reduce", coll);
}
}
}().call(null, coll, f, start)
}
};
_reduce = function(coll, f, start) {
switch(arguments.length) {
case 2:
return _reduce__2.call(this, coll, f);
case 3:
return _reduce__3.call(this, coll, f, start)
}
throw"Invalid arity: " + arguments.length;
};
_reduce.cljs$lang$arity$2 = _reduce__2;
_reduce.cljs$lang$arity$3 = _reduce__3;
return _reduce
}();
cljs.core.IKVReduce = {};
cljs.core._kv_reduce = function _kv_reduce(coll, f, init) {
if(function() {
var and__3822__auto____8074 = coll;
if(and__3822__auto____8074) {
return coll.cljs$core$IKVReduce$_kv_reduce$arity$3
}else {
return and__3822__auto____8074
}
}()) {
return coll.cljs$core$IKVReduce$_kv_reduce$arity$3(coll, f, init)
}else {
var x__2387__auto____8075 = coll == null ? null : coll;
return function() {
var or__3824__auto____8076 = cljs.core._kv_reduce[goog.typeOf(x__2387__auto____8075)];
if(or__3824__auto____8076) {
return or__3824__auto____8076
}else {
var or__3824__auto____8077 = cljs.core._kv_reduce["_"];
if(or__3824__auto____8077) {
return or__3824__auto____8077
}else {
throw cljs.core.missing_protocol.call(null, "IKVReduce.-kv-reduce", coll);
}
}
}().call(null, coll, f, init)
}
};
cljs.core.IEquiv = {};
cljs.core._equiv = function _equiv(o, other) {
if(function() {
var and__3822__auto____8082 = o;
if(and__3822__auto____8082) {
return o.cljs$core$IEquiv$_equiv$arity$2
}else {
return and__3822__auto____8082
}
}()) {
return o.cljs$core$IEquiv$_equiv$arity$2(o, other)
}else {
var x__2387__auto____8083 = o == null ? null : o;
return function() {
var or__3824__auto____8084 = cljs.core._equiv[goog.typeOf(x__2387__auto____8083)];
if(or__3824__auto____8084) {
return or__3824__auto____8084
}else {
var or__3824__auto____8085 = cljs.core._equiv["_"];
if(or__3824__auto____8085) {
return or__3824__auto____8085
}else {
throw cljs.core.missing_protocol.call(null, "IEquiv.-equiv", o);
}
}
}().call(null, o, other)
}
};
cljs.core.IHash = {};
cljs.core._hash = function _hash(o) {
if(function() {
var and__3822__auto____8090 = o;
if(and__3822__auto____8090) {
return o.cljs$core$IHash$_hash$arity$1
}else {
return and__3822__auto____8090
}
}()) {
return o.cljs$core$IHash$_hash$arity$1(o)
}else {
var x__2387__auto____8091 = o == null ? null : o;
return function() {
var or__3824__auto____8092 = cljs.core._hash[goog.typeOf(x__2387__auto____8091)];
if(or__3824__auto____8092) {
return or__3824__auto____8092
}else {
var or__3824__auto____8093 = cljs.core._hash["_"];
if(or__3824__auto____8093) {
return or__3824__auto____8093
}else {
throw cljs.core.missing_protocol.call(null, "IHash.-hash", o);
}
}
}().call(null, o)
}
};
cljs.core.ISeqable = {};
cljs.core._seq = function _seq(o) {
if(function() {
var and__3822__auto____8098 = o;
if(and__3822__auto____8098) {
return o.cljs$core$ISeqable$_seq$arity$1
}else {
return and__3822__auto____8098
}
}()) {
return o.cljs$core$ISeqable$_seq$arity$1(o)
}else {
var x__2387__auto____8099 = o == null ? null : o;
return function() {
var or__3824__auto____8100 = cljs.core._seq[goog.typeOf(x__2387__auto____8099)];
if(or__3824__auto____8100) {
return or__3824__auto____8100
}else {
var or__3824__auto____8101 = cljs.core._seq["_"];
if(or__3824__auto____8101) {
return or__3824__auto____8101
}else {
throw cljs.core.missing_protocol.call(null, "ISeqable.-seq", o);
}
}
}().call(null, o)
}
};
cljs.core.ISequential = {};
cljs.core.IList = {};
cljs.core.IRecord = {};
cljs.core.IReversible = {};
cljs.core._rseq = function _rseq(coll) {
if(function() {
var and__3822__auto____8106 = coll;
if(and__3822__auto____8106) {
return coll.cljs$core$IReversible$_rseq$arity$1
}else {
return and__3822__auto____8106
}
}()) {
return coll.cljs$core$IReversible$_rseq$arity$1(coll)
}else {
var x__2387__auto____8107 = coll == null ? null : coll;
return function() {
var or__3824__auto____8108 = cljs.core._rseq[goog.typeOf(x__2387__auto____8107)];
if(or__3824__auto____8108) {
return or__3824__auto____8108
}else {
var or__3824__auto____8109 = cljs.core._rseq["_"];
if(or__3824__auto____8109) {
return or__3824__auto____8109
}else {
throw cljs.core.missing_protocol.call(null, "IReversible.-rseq", coll);
}
}
}().call(null, coll)
}
};
cljs.core.ISorted = {};
cljs.core._sorted_seq = function _sorted_seq(coll, ascending_QMARK_) {
if(function() {
var and__3822__auto____8114 = coll;
if(and__3822__auto____8114) {
return coll.cljs$core$ISorted$_sorted_seq$arity$2
}else {
return and__3822__auto____8114
}
}()) {
return coll.cljs$core$ISorted$_sorted_seq$arity$2(coll, ascending_QMARK_)
}else {
var x__2387__auto____8115 = coll == null ? null : coll;
return function() {
var or__3824__auto____8116 = cljs.core._sorted_seq[goog.typeOf(x__2387__auto____8115)];
if(or__3824__auto____8116) {
return or__3824__auto____8116
}else {
var or__3824__auto____8117 = cljs.core._sorted_seq["_"];
if(or__3824__auto____8117) {
return or__3824__auto____8117
}else {
throw cljs.core.missing_protocol.call(null, "ISorted.-sorted-seq", coll);
}
}
}().call(null, coll, ascending_QMARK_)
}
};
cljs.core._sorted_seq_from = function _sorted_seq_from(coll, k, ascending_QMARK_) {
if(function() {
var and__3822__auto____8122 = coll;
if(and__3822__auto____8122) {
return coll.cljs$core$ISorted$_sorted_seq_from$arity$3
}else {
return and__3822__auto____8122
}
}()) {
return coll.cljs$core$ISorted$_sorted_seq_from$arity$3(coll, k, ascending_QMARK_)
}else {
var x__2387__auto____8123 = coll == null ? null : coll;
return function() {
var or__3824__auto____8124 = cljs.core._sorted_seq_from[goog.typeOf(x__2387__auto____8123)];
if(or__3824__auto____8124) {
return or__3824__auto____8124
}else {
var or__3824__auto____8125 = cljs.core._sorted_seq_from["_"];
if(or__3824__auto____8125) {
return or__3824__auto____8125
}else {
throw cljs.core.missing_protocol.call(null, "ISorted.-sorted-seq-from", coll);
}
}
}().call(null, coll, k, ascending_QMARK_)
}
};
cljs.core._entry_key = function _entry_key(coll, entry) {
if(function() {
var and__3822__auto____8130 = coll;
if(and__3822__auto____8130) {
return coll.cljs$core$ISorted$_entry_key$arity$2
}else {
return and__3822__auto____8130
}
}()) {
return coll.cljs$core$ISorted$_entry_key$arity$2(coll, entry)
}else {
var x__2387__auto____8131 = coll == null ? null : coll;
return function() {
var or__3824__auto____8132 = cljs.core._entry_key[goog.typeOf(x__2387__auto____8131)];
if(or__3824__auto____8132) {
return or__3824__auto____8132
}else {
var or__3824__auto____8133 = cljs.core._entry_key["_"];
if(or__3824__auto____8133) {
return or__3824__auto____8133
}else {
throw cljs.core.missing_protocol.call(null, "ISorted.-entry-key", coll);
}
}
}().call(null, coll, entry)
}
};
cljs.core._comparator = function _comparator(coll) {
if(function() {
var and__3822__auto____8138 = coll;
if(and__3822__auto____8138) {
return coll.cljs$core$ISorted$_comparator$arity$1
}else {
return and__3822__auto____8138
}
}()) {
return coll.cljs$core$ISorted$_comparator$arity$1(coll)
}else {
var x__2387__auto____8139 = coll == null ? null : coll;
return function() {
var or__3824__auto____8140 = cljs.core._comparator[goog.typeOf(x__2387__auto____8139)];
if(or__3824__auto____8140) {
return or__3824__auto____8140
}else {
var or__3824__auto____8141 = cljs.core._comparator["_"];
if(or__3824__auto____8141) {
return or__3824__auto____8141
}else {
throw cljs.core.missing_protocol.call(null, "ISorted.-comparator", coll);
}
}
}().call(null, coll)
}
};
cljs.core.IPrintable = {};
cljs.core._pr_seq = function _pr_seq(o, opts) {
if(function() {
var and__3822__auto____8146 = o;
if(and__3822__auto____8146) {
return o.cljs$core$IPrintable$_pr_seq$arity$2
}else {
return and__3822__auto____8146
}
}()) {
return o.cljs$core$IPrintable$_pr_seq$arity$2(o, opts)
}else {
var x__2387__auto____8147 = o == null ? null : o;
return function() {
var or__3824__auto____8148 = cljs.core._pr_seq[goog.typeOf(x__2387__auto____8147)];
if(or__3824__auto____8148) {
return or__3824__auto____8148
}else {
var or__3824__auto____8149 = cljs.core._pr_seq["_"];
if(or__3824__auto____8149) {
return or__3824__auto____8149
}else {
throw cljs.core.missing_protocol.call(null, "IPrintable.-pr-seq", o);
}
}
}().call(null, o, opts)
}
};
cljs.core.IPending = {};
cljs.core._realized_QMARK_ = function _realized_QMARK_(d) {
if(function() {
var and__3822__auto____8154 = d;
if(and__3822__auto____8154) {
return d.cljs$core$IPending$_realized_QMARK_$arity$1
}else {
return and__3822__auto____8154
}
}()) {
return d.cljs$core$IPending$_realized_QMARK_$arity$1(d)
}else {
var x__2387__auto____8155 = d == null ? null : d;
return function() {
var or__3824__auto____8156 = cljs.core._realized_QMARK_[goog.typeOf(x__2387__auto____8155)];
if(or__3824__auto____8156) {
return or__3824__auto____8156
}else {
var or__3824__auto____8157 = cljs.core._realized_QMARK_["_"];
if(or__3824__auto____8157) {
return or__3824__auto____8157
}else {
throw cljs.core.missing_protocol.call(null, "IPending.-realized?", d);
}
}
}().call(null, d)
}
};
cljs.core.IWatchable = {};
cljs.core._notify_watches = function _notify_watches(this$, oldval, newval) {
if(function() {
var and__3822__auto____8162 = this$;
if(and__3822__auto____8162) {
return this$.cljs$core$IWatchable$_notify_watches$arity$3
}else {
return and__3822__auto____8162
}
}()) {
return this$.cljs$core$IWatchable$_notify_watches$arity$3(this$, oldval, newval)
}else {
var x__2387__auto____8163 = this$ == null ? null : this$;
return function() {
var or__3824__auto____8164 = cljs.core._notify_watches[goog.typeOf(x__2387__auto____8163)];
if(or__3824__auto____8164) {
return or__3824__auto____8164
}else {
var or__3824__auto____8165 = cljs.core._notify_watches["_"];
if(or__3824__auto____8165) {
return or__3824__auto____8165
}else {
throw cljs.core.missing_protocol.call(null, "IWatchable.-notify-watches", this$);
}
}
}().call(null, this$, oldval, newval)
}
};
cljs.core._add_watch = function _add_watch(this$, key, f) {
if(function() {
var and__3822__auto____8170 = this$;
if(and__3822__auto____8170) {
return this$.cljs$core$IWatchable$_add_watch$arity$3
}else {
return and__3822__auto____8170
}
}()) {
return this$.cljs$core$IWatchable$_add_watch$arity$3(this$, key, f)
}else {
var x__2387__auto____8171 = this$ == null ? null : this$;
return function() {
var or__3824__auto____8172 = cljs.core._add_watch[goog.typeOf(x__2387__auto____8171)];
if(or__3824__auto____8172) {
return or__3824__auto____8172
}else {
var or__3824__auto____8173 = cljs.core._add_watch["_"];
if(or__3824__auto____8173) {
return or__3824__auto____8173
}else {
throw cljs.core.missing_protocol.call(null, "IWatchable.-add-watch", this$);
}
}
}().call(null, this$, key, f)
}
};
cljs.core._remove_watch = function _remove_watch(this$, key) {
if(function() {
var and__3822__auto____8178 = this$;
if(and__3822__auto____8178) {
return this$.cljs$core$IWatchable$_remove_watch$arity$2
}else {
return and__3822__auto____8178
}
}()) {
return this$.cljs$core$IWatchable$_remove_watch$arity$2(this$, key)
}else {
var x__2387__auto____8179 = this$ == null ? null : this$;
return function() {
var or__3824__auto____8180 = cljs.core._remove_watch[goog.typeOf(x__2387__auto____8179)];
if(or__3824__auto____8180) {
return or__3824__auto____8180
}else {
var or__3824__auto____8181 = cljs.core._remove_watch["_"];
if(or__3824__auto____8181) {
return or__3824__auto____8181
}else {
throw cljs.core.missing_protocol.call(null, "IWatchable.-remove-watch", this$);
}
}
}().call(null, this$, key)
}
};
cljs.core.IEditableCollection = {};
cljs.core._as_transient = function _as_transient(coll) {
if(function() {
var and__3822__auto____8186 = coll;
if(and__3822__auto____8186) {
return coll.cljs$core$IEditableCollection$_as_transient$arity$1
}else {
return and__3822__auto____8186
}
}()) {
return coll.cljs$core$IEditableCollection$_as_transient$arity$1(coll)
}else {
var x__2387__auto____8187 = coll == null ? null : coll;
return function() {
var or__3824__auto____8188 = cljs.core._as_transient[goog.typeOf(x__2387__auto____8187)];
if(or__3824__auto____8188) {
return or__3824__auto____8188
}else {
var or__3824__auto____8189 = cljs.core._as_transient["_"];
if(or__3824__auto____8189) {
return or__3824__auto____8189
}else {
throw cljs.core.missing_protocol.call(null, "IEditableCollection.-as-transient", coll);
}
}
}().call(null, coll)
}
};
cljs.core.ITransientCollection = {};
cljs.core._conj_BANG_ = function _conj_BANG_(tcoll, val) {
if(function() {
var and__3822__auto____8194 = tcoll;
if(and__3822__auto____8194) {
return tcoll.cljs$core$ITransientCollection$_conj_BANG_$arity$2
}else {
return and__3822__auto____8194
}
}()) {
return tcoll.cljs$core$ITransientCollection$_conj_BANG_$arity$2(tcoll, val)
}else {
var x__2387__auto____8195 = tcoll == null ? null : tcoll;
return function() {
var or__3824__auto____8196 = cljs.core._conj_BANG_[goog.typeOf(x__2387__auto____8195)];
if(or__3824__auto____8196) {
return or__3824__auto____8196
}else {
var or__3824__auto____8197 = cljs.core._conj_BANG_["_"];
if(or__3824__auto____8197) {
return or__3824__auto____8197
}else {
throw cljs.core.missing_protocol.call(null, "ITransientCollection.-conj!", tcoll);
}
}
}().call(null, tcoll, val)
}
};
cljs.core._persistent_BANG_ = function _persistent_BANG_(tcoll) {
if(function() {
var and__3822__auto____8202 = tcoll;
if(and__3822__auto____8202) {
return tcoll.cljs$core$ITransientCollection$_persistent_BANG_$arity$1
}else {
return and__3822__auto____8202
}
}()) {
return tcoll.cljs$core$ITransientCollection$_persistent_BANG_$arity$1(tcoll)
}else {
var x__2387__auto____8203 = tcoll == null ? null : tcoll;
return function() {
var or__3824__auto____8204 = cljs.core._persistent_BANG_[goog.typeOf(x__2387__auto____8203)];
if(or__3824__auto____8204) {
return or__3824__auto____8204
}else {
var or__3824__auto____8205 = cljs.core._persistent_BANG_["_"];
if(or__3824__auto____8205) {
return or__3824__auto____8205
}else {
throw cljs.core.missing_protocol.call(null, "ITransientCollection.-persistent!", tcoll);
}
}
}().call(null, tcoll)
}
};
cljs.core.ITransientAssociative = {};
cljs.core._assoc_BANG_ = function _assoc_BANG_(tcoll, key, val) {
if(function() {
var and__3822__auto____8210 = tcoll;
if(and__3822__auto____8210) {
return tcoll.cljs$core$ITransientAssociative$_assoc_BANG_$arity$3
}else {
return and__3822__auto____8210
}
}()) {
return tcoll.cljs$core$ITransientAssociative$_assoc_BANG_$arity$3(tcoll, key, val)
}else {
var x__2387__auto____8211 = tcoll == null ? null : tcoll;
return function() {
var or__3824__auto____8212 = cljs.core._assoc_BANG_[goog.typeOf(x__2387__auto____8211)];
if(or__3824__auto____8212) {
return or__3824__auto____8212
}else {
var or__3824__auto____8213 = cljs.core._assoc_BANG_["_"];
if(or__3824__auto____8213) {
return or__3824__auto____8213
}else {
throw cljs.core.missing_protocol.call(null, "ITransientAssociative.-assoc!", tcoll);
}
}
}().call(null, tcoll, key, val)
}
};
cljs.core.ITransientMap = {};
cljs.core._dissoc_BANG_ = function _dissoc_BANG_(tcoll, key) {
if(function() {
var and__3822__auto____8218 = tcoll;
if(and__3822__auto____8218) {
return tcoll.cljs$core$ITransientMap$_dissoc_BANG_$arity$2
}else {
return and__3822__auto____8218
}
}()) {
return tcoll.cljs$core$ITransientMap$_dissoc_BANG_$arity$2(tcoll, key)
}else {
var x__2387__auto____8219 = tcoll == null ? null : tcoll;
return function() {
var or__3824__auto____8220 = cljs.core._dissoc_BANG_[goog.typeOf(x__2387__auto____8219)];
if(or__3824__auto____8220) {
return or__3824__auto____8220
}else {
var or__3824__auto____8221 = cljs.core._dissoc_BANG_["_"];
if(or__3824__auto____8221) {
return or__3824__auto____8221
}else {
throw cljs.core.missing_protocol.call(null, "ITransientMap.-dissoc!", tcoll);
}
}
}().call(null, tcoll, key)
}
};
cljs.core.ITransientVector = {};
cljs.core._assoc_n_BANG_ = function _assoc_n_BANG_(tcoll, n, val) {
if(function() {
var and__3822__auto____8226 = tcoll;
if(and__3822__auto____8226) {
return tcoll.cljs$core$ITransientVector$_assoc_n_BANG_$arity$3
}else {
return and__3822__auto____8226
}
}()) {
return tcoll.cljs$core$ITransientVector$_assoc_n_BANG_$arity$3(tcoll, n, val)
}else {
var x__2387__auto____8227 = tcoll == null ? null : tcoll;
return function() {
var or__3824__auto____8228 = cljs.core._assoc_n_BANG_[goog.typeOf(x__2387__auto____8227)];
if(or__3824__auto____8228) {
return or__3824__auto____8228
}else {
var or__3824__auto____8229 = cljs.core._assoc_n_BANG_["_"];
if(or__3824__auto____8229) {
return or__3824__auto____8229
}else {
throw cljs.core.missing_protocol.call(null, "ITransientVector.-assoc-n!", tcoll);
}
}
}().call(null, tcoll, n, val)
}
};
cljs.core._pop_BANG_ = function _pop_BANG_(tcoll) {
if(function() {
var and__3822__auto____8234 = tcoll;
if(and__3822__auto____8234) {
return tcoll.cljs$core$ITransientVector$_pop_BANG_$arity$1
}else {
return and__3822__auto____8234
}
}()) {
return tcoll.cljs$core$ITransientVector$_pop_BANG_$arity$1(tcoll)
}else {
var x__2387__auto____8235 = tcoll == null ? null : tcoll;
return function() {
var or__3824__auto____8236 = cljs.core._pop_BANG_[goog.typeOf(x__2387__auto____8235)];
if(or__3824__auto____8236) {
return or__3824__auto____8236
}else {
var or__3824__auto____8237 = cljs.core._pop_BANG_["_"];
if(or__3824__auto____8237) {
return or__3824__auto____8237
}else {
throw cljs.core.missing_protocol.call(null, "ITransientVector.-pop!", tcoll);
}
}
}().call(null, tcoll)
}
};
cljs.core.ITransientSet = {};
cljs.core._disjoin_BANG_ = function _disjoin_BANG_(tcoll, v) {
if(function() {
var and__3822__auto____8242 = tcoll;
if(and__3822__auto____8242) {
return tcoll.cljs$core$ITransientSet$_disjoin_BANG_$arity$2
}else {
return and__3822__auto____8242
}
}()) {
return tcoll.cljs$core$ITransientSet$_disjoin_BANG_$arity$2(tcoll, v)
}else {
var x__2387__auto____8243 = tcoll == null ? null : tcoll;
return function() {
var or__3824__auto____8244 = cljs.core._disjoin_BANG_[goog.typeOf(x__2387__auto____8243)];
if(or__3824__auto____8244) {
return or__3824__auto____8244
}else {
var or__3824__auto____8245 = cljs.core._disjoin_BANG_["_"];
if(or__3824__auto____8245) {
return or__3824__auto____8245
}else {
throw cljs.core.missing_protocol.call(null, "ITransientSet.-disjoin!", tcoll);
}
}
}().call(null, tcoll, v)
}
};
cljs.core.IComparable = {};
cljs.core._compare = function _compare(x, y) {
if(function() {
var and__3822__auto____8250 = x;
if(and__3822__auto____8250) {
return x.cljs$core$IComparable$_compare$arity$2
}else {
return and__3822__auto____8250
}
}()) {
return x.cljs$core$IComparable$_compare$arity$2(x, y)
}else {
var x__2387__auto____8251 = x == null ? null : x;
return function() {
var or__3824__auto____8252 = cljs.core._compare[goog.typeOf(x__2387__auto____8251)];
if(or__3824__auto____8252) {
return or__3824__auto____8252
}else {
var or__3824__auto____8253 = cljs.core._compare["_"];
if(or__3824__auto____8253) {
return or__3824__auto____8253
}else {
throw cljs.core.missing_protocol.call(null, "IComparable.-compare", x);
}
}
}().call(null, x, y)
}
};
cljs.core.IChunk = {};
cljs.core._drop_first = function _drop_first(coll) {
if(function() {
var and__3822__auto____8258 = coll;
if(and__3822__auto____8258) {
return coll.cljs$core$IChunk$_drop_first$arity$1
}else {
return and__3822__auto____8258
}
}()) {
return coll.cljs$core$IChunk$_drop_first$arity$1(coll)
}else {
var x__2387__auto____8259 = coll == null ? null : coll;
return function() {
var or__3824__auto____8260 = cljs.core._drop_first[goog.typeOf(x__2387__auto____8259)];
if(or__3824__auto____8260) {
return or__3824__auto____8260
}else {
var or__3824__auto____8261 = cljs.core._drop_first["_"];
if(or__3824__auto____8261) {
return or__3824__auto____8261
}else {
throw cljs.core.missing_protocol.call(null, "IChunk.-drop-first", coll);
}
}
}().call(null, coll)
}
};
cljs.core.IChunkedSeq = {};
cljs.core._chunked_first = function _chunked_first(coll) {
if(function() {
var and__3822__auto____8266 = coll;
if(and__3822__auto____8266) {
return coll.cljs$core$IChunkedSeq$_chunked_first$arity$1
}else {
return and__3822__auto____8266
}
}()) {
return coll.cljs$core$IChunkedSeq$_chunked_first$arity$1(coll)
}else {
var x__2387__auto____8267 = coll == null ? null : coll;
return function() {
var or__3824__auto____8268 = cljs.core._chunked_first[goog.typeOf(x__2387__auto____8267)];
if(or__3824__auto____8268) {
return or__3824__auto____8268
}else {
var or__3824__auto____8269 = cljs.core._chunked_first["_"];
if(or__3824__auto____8269) {
return or__3824__auto____8269
}else {
throw cljs.core.missing_protocol.call(null, "IChunkedSeq.-chunked-first", coll);
}
}
}().call(null, coll)
}
};
cljs.core._chunked_rest = function _chunked_rest(coll) {
if(function() {
var and__3822__auto____8274 = coll;
if(and__3822__auto____8274) {
return coll.cljs$core$IChunkedSeq$_chunked_rest$arity$1
}else {
return and__3822__auto____8274
}
}()) {
return coll.cljs$core$IChunkedSeq$_chunked_rest$arity$1(coll)
}else {
var x__2387__auto____8275 = coll == null ? null : coll;
return function() {
var or__3824__auto____8276 = cljs.core._chunked_rest[goog.typeOf(x__2387__auto____8275)];
if(or__3824__auto____8276) {
return or__3824__auto____8276
}else {
var or__3824__auto____8277 = cljs.core._chunked_rest["_"];
if(or__3824__auto____8277) {
return or__3824__auto____8277
}else {
throw cljs.core.missing_protocol.call(null, "IChunkedSeq.-chunked-rest", coll);
}
}
}().call(null, coll)
}
};
cljs.core.IChunkedNext = {};
cljs.core._chunked_next = function _chunked_next(coll) {
if(function() {
var and__3822__auto____8282 = coll;
if(and__3822__auto____8282) {
return coll.cljs$core$IChunkedNext$_chunked_next$arity$1
}else {
return and__3822__auto____8282
}
}()) {
return coll.cljs$core$IChunkedNext$_chunked_next$arity$1(coll)
}else {
var x__2387__auto____8283 = coll == null ? null : coll;
return function() {
var or__3824__auto____8284 = cljs.core._chunked_next[goog.typeOf(x__2387__auto____8283)];
if(or__3824__auto____8284) {
return or__3824__auto____8284
}else {
var or__3824__auto____8285 = cljs.core._chunked_next["_"];
if(or__3824__auto____8285) {
return or__3824__auto____8285
}else {
throw cljs.core.missing_protocol.call(null, "IChunkedNext.-chunked-next", coll);
}
}
}().call(null, coll)
}
};
cljs.core.identical_QMARK_ = function identical_QMARK_(x, y) {
return x === y
};
cljs.core._EQ_ = function() {
var _EQ_ = null;
var _EQ___1 = function(x) {
return true
};
var _EQ___2 = function(x, y) {
var or__3824__auto____8287 = x === y;
if(or__3824__auto____8287) {
return or__3824__auto____8287
}else {
return cljs.core._equiv.call(null, x, y)
}
};
var _EQ___3 = function() {
var G__8288__delegate = function(x, y, more) {
while(true) {
if(cljs.core.truth_(_EQ_.call(null, x, y))) {
if(cljs.core.next.call(null, more)) {
var G__8289 = y;
var G__8290 = cljs.core.first.call(null, more);
var G__8291 = cljs.core.next.call(null, more);
x = G__8289;
y = G__8290;
more = G__8291;
continue
}else {
return _EQ_.call(null, y, cljs.core.first.call(null, more))
}
}else {
return false
}
break
}
};
var G__8288 = 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__8288__delegate.call(this, x, y, more)
};
G__8288.cljs$lang$maxFixedArity = 2;
G__8288.cljs$lang$applyTo = function(arglist__8292) {
var x = cljs.core.first(arglist__8292);
var y = cljs.core.first(cljs.core.next(arglist__8292));
var more = cljs.core.rest(cljs.core.next(arglist__8292));
return G__8288__delegate(x, y, more)
};
G__8288.cljs$lang$arity$variadic = G__8288__delegate;
return G__8288
}();
_EQ_ = function(x, y, var_args) {
var more = var_args;
switch(arguments.length) {
case 1:
return _EQ___1.call(this, x);
case 2:
return _EQ___2.call(this, x, y);
default:
return _EQ___3.cljs$lang$arity$variadic(x, y, cljs.core.array_seq(arguments, 2))
}
throw"Invalid arity: " + arguments.length;
};
_EQ_.cljs$lang$maxFixedArity = 2;
_EQ_.cljs$lang$applyTo = _EQ___3.cljs$lang$applyTo;
_EQ_.cljs$lang$arity$1 = _EQ___1;
_EQ_.cljs$lang$arity$2 = _EQ___2;
_EQ_.cljs$lang$arity$variadic = _EQ___3.cljs$lang$arity$variadic;
return _EQ_
}();
cljs.core.nil_QMARK_ = function nil_QMARK_(x) {
return x == null
};
cljs.core.type = function type(x) {
if(x == null) {
return null
}else {
return x.constructor
}
};
cljs.core.instance_QMARK_ = function instance_QMARK_(t, o) {
return o instanceof t
};
cljs.core.IHash["null"] = true;
cljs.core._hash["null"] = function(o) {
return 0
};
cljs.core.ILookup["null"] = true;
cljs.core._lookup["null"] = function() {
var G__8293 = null;
var G__8293__2 = function(o, k) {
return null
};
var G__8293__3 = function(o, k, not_found) {
return not_found
};
G__8293 = function(o, k, not_found) {
switch(arguments.length) {
case 2:
return G__8293__2.call(this, o, k);
case 3:
return G__8293__3.call(this, o, k, not_found)
}
throw"Invalid arity: " + arguments.length;
};
return G__8293
}();
cljs.core.IAssociative["null"] = true;
cljs.core._assoc["null"] = function(_, k, v) {
return cljs.core.hash_map.call(null, k, v)
};
cljs.core.INext["null"] = true;
cljs.core._next["null"] = function(_) {
return null
};
cljs.core.ICollection["null"] = true;
cljs.core._conj["null"] = function(_, o) {
return cljs.core.list.call(null, o)
};
cljs.core.IReduce["null"] = true;
cljs.core._reduce["null"] = function() {
var G__8294 = null;
var G__8294__2 = function(_, f) {
return f.call(null)
};
var G__8294__3 = function(_, f, start) {
return start
};
G__8294 = function(_, f, start) {
switch(arguments.length) {
case 2:
return G__8294__2.call(this, _, f);
case 3:
return G__8294__3.call(this, _, f, start)
}
throw"Invalid arity: " + arguments.length;
};
return G__8294
}();
cljs.core.IPrintable["null"] = true;
cljs.core._pr_seq["null"] = function(o) {
return cljs.core.list.call(null, "nil")
};
cljs.core.ISet["null"] = true;
cljs.core._disjoin["null"] = function(_, v) {
return null
};
cljs.core.ICounted["null"] = true;
cljs.core._count["null"] = function(_) {
return 0
};
cljs.core.IStack["null"] = true;
cljs.core._peek["null"] = function(_) {
return null
};
cljs.core._pop["null"] = function(_) {
return null
};
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.IEquiv["null"] = true;
cljs.core._equiv["null"] = function(_, o) {
return o == null
};
cljs.core.IWithMeta["null"] = true;
cljs.core._with_meta["null"] = function(_, meta) {
return null
};
cljs.core.IMeta["null"] = true;
cljs.core._meta["null"] = function(_) {
return null
};
cljs.core.IIndexed["null"] = true;
cljs.core._nth["null"] = function() {
var G__8295 = null;
var G__8295__2 = function(_, n) {
return null
};
var G__8295__3 = function(_, n, not_found) {
return not_found
};
G__8295 = function(_, n, not_found) {
switch(arguments.length) {
case 2:
return G__8295__2.call(this, _, n);
case 3:
return G__8295__3.call(this, _, n, not_found)
}
throw"Invalid arity: " + arguments.length;
};
return G__8295
}();
cljs.core.IEmptyableCollection["null"] = true;
cljs.core._empty["null"] = function(_) {
return null
};
cljs.core.IMap["null"] = true;
cljs.core._dissoc["null"] = function(_, k) {
return null
};
Date.prototype.cljs$core$IEquiv$ = true;
Date.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(o, other) {
var and__3822__auto____8296 = cljs.core.instance_QMARK_.call(null, Date, other);
if(and__3822__auto____8296) {
return o.toString() === other.toString()
}else {
return and__3822__auto____8296
}
};
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 x === o
};
cljs.core.IHash["boolean"] = true;
cljs.core._hash["boolean"] = function(o) {
if(o === true) {
return 1
}else {
return 0
}
};
cljs.core.IHash["_"] = true;
cljs.core._hash["_"] = function(o) {
return goog.getUid(o)
};
cljs.core.inc = function inc(x) {
return x + 1
};
cljs.core.ci_reduce = function() {
var ci_reduce = null;
var ci_reduce__2 = function(cicoll, f) {
var cnt__8309 = cljs.core._count.call(null, cicoll);
if(cnt__8309 === 0) {
return f.call(null)
}else {
var val__8310 = cljs.core._nth.call(null, cicoll, 0);
var n__8311 = 1;
while(true) {
if(n__8311 < cnt__8309) {
var nval__8312 = f.call(null, val__8310, cljs.core._nth.call(null, cicoll, n__8311));
if(cljs.core.reduced_QMARK_.call(null, nval__8312)) {
return cljs.core.deref.call(null, nval__8312)
}else {
var G__8321 = nval__8312;
var G__8322 = n__8311 + 1;
val__8310 = G__8321;
n__8311 = G__8322;
continue
}
}else {
return val__8310
}
break
}
}
};
var ci_reduce__3 = function(cicoll, f, val) {
var cnt__8313 = cljs.core._count.call(null, cicoll);
var val__8314 = val;
var n__8315 = 0;
while(true) {
if(n__8315 < cnt__8313) {
var nval__8316 = f.call(null, val__8314, cljs.core._nth.call(null, cicoll, n__8315));
if(cljs.core.reduced_QMARK_.call(null, nval__8316)) {
return cljs.core.deref.call(null, nval__8316)
}else {
var G__8323 = nval__8316;
var G__8324 = n__8315 + 1;
val__8314 = G__8323;
n__8315 = G__8324;
continue
}
}else {
return val__8314
}
break
}
};
var ci_reduce__4 = function(cicoll, f, val, idx) {
var cnt__8317 = cljs.core._count.call(null, cicoll);
var val__8318 = val;
var n__8319 = idx;
while(true) {
if(n__8319 < cnt__8317) {
var nval__8320 = f.call(null, val__8318, cljs.core._nth.call(null, cicoll, n__8319));
if(cljs.core.reduced_QMARK_.call(null, nval__8320)) {
return cljs.core.deref.call(null, nval__8320)
}else {
var G__8325 = nval__8320;
var G__8326 = n__8319 + 1;
val__8318 = G__8325;
n__8319 = G__8326;
continue
}
}else {
return val__8318
}
break
}
};
ci_reduce = function(cicoll, f, val, idx) {
switch(arguments.length) {
case 2:
return ci_reduce__2.call(this, cicoll, f);
case 3:
return ci_reduce__3.call(this, cicoll, f, val);
case 4:
return ci_reduce__4.call(this, cicoll, f, val, idx)
}
throw"Invalid arity: " + arguments.length;
};
ci_reduce.cljs$lang$arity$2 = ci_reduce__2;
ci_reduce.cljs$lang$arity$3 = ci_reduce__3;
ci_reduce.cljs$lang$arity$4 = ci_reduce__4;
return ci_reduce
}();
cljs.core.array_reduce = function() {
var array_reduce = null;
var array_reduce__2 = function(arr, f) {
var cnt__8339 = arr.length;
if(arr.length === 0) {
return f.call(null)
}else {
var val__8340 = arr[0];
var n__8341 = 1;
while(true) {
if(n__8341 < cnt__8339) {
var nval__8342 = f.call(null, val__8340, arr[n__8341]);
if(cljs.core.reduced_QMARK_.call(null, nval__8342)) {
return cljs.core.deref.call(null, nval__8342)
}else {
var G__8351 = nval__8342;
var G__8352 = n__8341 + 1;
val__8340 = G__8351;
n__8341 = G__8352;
continue
}
}else {
return val__8340
}
break
}
}
};
var array_reduce__3 = function(arr, f, val) {
var cnt__8343 = arr.length;
var val__8344 = val;
var n__8345 = 0;
while(true) {
if(n__8345 < cnt__8343) {
var nval__8346 = f.call(null, val__8344, arr[n__8345]);
if(cljs.core.reduced_QMARK_.call(null, nval__8346)) {
return cljs.core.deref.call(null, nval__8346)
}else {
var G__8353 = nval__8346;
var G__8354 = n__8345 + 1;
val__8344 = G__8353;
n__8345 = G__8354;
continue
}
}else {
return val__8344
}
break
}
};
var array_reduce__4 = function(arr, f, val, idx) {
var cnt__8347 = arr.length;
var val__8348 = val;
var n__8349 = idx;
while(true) {
if(n__8349 < cnt__8347) {
var nval__8350 = f.call(null, val__8348, arr[n__8349]);
if(cljs.core.reduced_QMARK_.call(null, nval__8350)) {
return cljs.core.deref.call(null, nval__8350)
}else {
var G__8355 = nval__8350;
var G__8356 = n__8349 + 1;
val__8348 = G__8355;
n__8349 = G__8356;
continue
}
}else {
return val__8348
}
break
}
};
array_reduce = function(arr, f, val, idx) {
switch(arguments.length) {
case 2:
return array_reduce__2.call(this, arr, f);
case 3:
return array_reduce__3.call(this, arr, f, val);
case 4:
return array_reduce__4.call(this, arr, f, val, idx)
}
throw"Invalid arity: " + arguments.length;
};
array_reduce.cljs$lang$arity$2 = array_reduce__2;
array_reduce.cljs$lang$arity$3 = array_reduce__3;
array_reduce.cljs$lang$arity$4 = array_reduce__4;
return array_reduce
}();
cljs.core.IndexedSeq = function(a, i) {
this.a = a;
this.i = i;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 166199546
};
cljs.core.IndexedSeq.cljs$lang$type = true;
cljs.core.IndexedSeq.cljs$lang$ctorPrSeq = function(this__2333__auto__) {
return cljs.core.list.call(null, "cljs.core/IndexedSeq")
};
cljs.core.IndexedSeq.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var this__8357 = this;
return cljs.core.hash_coll.call(null, coll)
};
cljs.core.IndexedSeq.prototype.cljs$core$INext$_next$arity$1 = function(_) {
var this__8358 = this;
if(this__8358.i + 1 < this__8358.a.length) {
return new cljs.core.IndexedSeq(this__8358.a, this__8358.i + 1)
}else {
return null
}
};
cljs.core.IndexedSeq.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var this__8359 = this;
return cljs.core.cons.call(null, o, coll)
};
cljs.core.IndexedSeq.prototype.cljs$core$IReversible$_rseq$arity$1 = function(coll) {
var this__8360 = this;
var c__8361 = coll.cljs$core$ICounted$_count$arity$1(coll);
if(c__8361 > 0) {
return new cljs.core.RSeq(coll, c__8361 - 1, null)
}else {
return cljs.core.List.EMPTY
}
};
cljs.core.IndexedSeq.prototype.toString = function() {
var this__8362 = this;
var this__8363 = this;
return cljs.core.pr_str.call(null, this__8363)
};
cljs.core.IndexedSeq.prototype.cljs$core$IReduce$_reduce$arity$2 = function(coll, f) {
var this__8364 = this;
if(cljs.core.counted_QMARK_.call(null, this__8364.a)) {
return cljs.core.ci_reduce.call(null, this__8364.a, f, this__8364.a[this__8364.i], this__8364.i + 1)
}else {
return cljs.core.ci_reduce.call(null, coll, f, this__8364.a[this__8364.i], 0)
}
};
cljs.core.IndexedSeq.prototype.cljs$core$IReduce$_reduce$arity$3 = function(coll, f, start) {
var this__8365 = this;
if(cljs.core.counted_QMARK_.call(null, this__8365.a)) {
return cljs.core.ci_reduce.call(null, this__8365.a, f, start, this__8365.i)
}else {
return cljs.core.ci_reduce.call(null, coll, f, start, 0)
}
};
cljs.core.IndexedSeq.prototype.cljs$core$ISeqable$_seq$arity$1 = function(this$) {
var this__8366 = this;
return this$
};
cljs.core.IndexedSeq.prototype.cljs$core$ICounted$_count$arity$1 = function(_) {
var this__8367 = this;
return this__8367.a.length - this__8367.i
};
cljs.core.IndexedSeq.prototype.cljs$core$ISeq$_first$arity$1 = function(_) {
var this__8368 = this;
return this__8368.a[this__8368.i]
};
cljs.core.IndexedSeq.prototype.cljs$core$ISeq$_rest$arity$1 = function(_) {
var this__8369 = this;
if(this__8369.i + 1 < this__8369.a.length) {
return new cljs.core.IndexedSeq(this__8369.a, this__8369.i + 1)
}else {
return cljs.core.list.call(null)
}
};
cljs.core.IndexedSeq.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var this__8370 = this;
return cljs.core.equiv_sequential.call(null, coll, other)
};
cljs.core.IndexedSeq.prototype.cljs$core$IIndexed$_nth$arity$2 = function(coll, n) {
var this__8371 = this;
var i__8372 = n + this__8371.i;
if(i__8372 < this__8371.a.length) {
return this__8371.a[i__8372]
}else {
return null
}
};
cljs.core.IndexedSeq.prototype.cljs$core$IIndexed$_nth$arity$3 = function(coll, n, not_found) {
var this__8373 = this;
var i__8374 = n + this__8373.i;
if(i__8374 < this__8373.a.length) {
return this__8373.a[i__8374]
}else {
return not_found
}
};
cljs.core.IndexedSeq;
cljs.core.prim_seq = function() {
var prim_seq = null;
var prim_seq__1 = function(prim) {
return prim_seq.call(null, prim, 0)
};
var prim_seq__2 = function(prim, i) {
if(prim.length === 0) {
return null
}else {
return new cljs.core.IndexedSeq(prim, i)
}
};
prim_seq = function(prim, i) {
switch(arguments.length) {
case 1:
return prim_seq__1.call(this, prim);
case 2:
return prim_seq__2.call(this, prim, i)
}
throw"Invalid arity: " + arguments.length;
};
prim_seq.cljs$lang$arity$1 = prim_seq__1;
prim_seq.cljs$lang$arity$2 = prim_seq__2;
return prim_seq
}();
cljs.core.array_seq = function() {
var array_seq = null;
var array_seq__1 = function(array) {
return cljs.core.prim_seq.call(null, array, 0)
};
var array_seq__2 = function(array, i) {
return cljs.core.prim_seq.call(null, array, i)
};
array_seq = function(array, i) {
switch(arguments.length) {
case 1:
return array_seq__1.call(this, array);
case 2:
return array_seq__2.call(this, array, i)
}
throw"Invalid arity: " + arguments.length;
};
array_seq.cljs$lang$arity$1 = array_seq__1;
array_seq.cljs$lang$arity$2 = array_seq__2;
return array_seq
}();
cljs.core.IReduce["array"] = true;
cljs.core._reduce["array"] = function() {
var G__8375 = null;
var G__8375__2 = function(array, f) {
return cljs.core.ci_reduce.call(null, array, f)
};
var G__8375__3 = function(array, f, start) {
return cljs.core.ci_reduce.call(null, array, f, start)
};
G__8375 = function(array, f, start) {
switch(arguments.length) {
case 2:
return G__8375__2.call(this, array, f);
case 3:
return G__8375__3.call(this, array, f, start)
}
throw"Invalid arity: " + arguments.length;
};
return G__8375
}();
cljs.core.ILookup["array"] = true;
cljs.core._lookup["array"] = function() {
var G__8376 = null;
var G__8376__2 = function(array, k) {
return array[k]
};
var G__8376__3 = function(array, k, not_found) {
return cljs.core._nth.call(null, array, k, not_found)
};
G__8376 = function(array, k, not_found) {
switch(arguments.length) {
case 2:
return G__8376__2.call(this, array, k);
case 3:
return G__8376__3.call(this, array, k, not_found)
}
throw"Invalid arity: " + arguments.length;
};
return G__8376
}();
cljs.core.IIndexed["array"] = true;
cljs.core._nth["array"] = function() {
var G__8377 = null;
var G__8377__2 = function(array, n) {
if(n < array.length) {
return array[n]
}else {
return null
}
};
var G__8377__3 = function(array, n, not_found) {
if(n < array.length) {
return array[n]
}else {
return not_found
}
};
G__8377 = function(array, n, not_found) {
switch(arguments.length) {
case 2:
return G__8377__2.call(this, array, n);
case 3:
return G__8377__3.call(this, array, n, not_found)
}
throw"Invalid arity: " + arguments.length;
};
return G__8377
}();
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)
};
cljs.core.RSeq = function(ci, i, meta) {
this.ci = ci;
this.i = i;
this.meta = meta;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 31850570
};
cljs.core.RSeq.cljs$lang$type = true;
cljs.core.RSeq.cljs$lang$ctorPrSeq = function(this__2333__auto__) {
return cljs.core.list.call(null, "cljs.core/RSeq")
};
cljs.core.RSeq.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var this__8378 = this;
return cljs.core.hash_coll.call(null, coll)
};
cljs.core.RSeq.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var this__8379 = this;
return cljs.core.cons.call(null, o, coll)
};
cljs.core.RSeq.prototype.toString = function() {
var this__8380 = this;
var this__8381 = this;
return cljs.core.pr_str.call(null, this__8381)
};
cljs.core.RSeq.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var this__8382 = this;
return coll
};
cljs.core.RSeq.prototype.cljs$core$ICounted$_count$arity$1 = function(coll) {
var this__8383 = this;
return this__8383.i + 1
};
cljs.core.RSeq.prototype.cljs$core$ISeq$_first$arity$1 = function(coll) {
var this__8384 = this;
return cljs.core._nth.call(null, this__8384.ci, this__8384.i)
};
cljs.core.RSeq.prototype.cljs$core$ISeq$_rest$arity$1 = function(coll) {
var this__8385 = this;
if(this__8385.i > 0) {
return new cljs.core.RSeq(this__8385.ci, this__8385.i - 1, null)
}else {
return cljs.core.List.EMPTY
}
};
cljs.core.RSeq.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var this__8386 = this;
return cljs.core.equiv_sequential.call(null, coll, other)
};
cljs.core.RSeq.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(coll, new_meta) {
var this__8387 = this;
return new cljs.core.RSeq(this__8387.ci, this__8387.i, new_meta)
};
cljs.core.RSeq.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var this__8388 = this;
return this__8388.meta
};
cljs.core.RSeq;
cljs.core.seq = function seq(coll) {
if(coll == null) {
return null
}else {
if(function() {
var G__8392__8393 = coll;
if(G__8392__8393) {
if(function() {
var or__3824__auto____8394 = G__8392__8393.cljs$lang$protocol_mask$partition0$ & 32;
if(or__3824__auto____8394) {
return or__3824__auto____8394
}else {
return G__8392__8393.cljs$core$ASeq$
}
}()) {
return true
}else {
if(!G__8392__8393.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.ASeq, G__8392__8393)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.ASeq, G__8392__8393)
}
}()) {
return coll
}else {
return cljs.core._seq.call(null, coll)
}
}
};
cljs.core.first = function first(coll) {
if(coll == null) {
return null
}else {
if(function() {
var G__8399__8400 = coll;
if(G__8399__8400) {
if(function() {
var or__3824__auto____8401 = G__8399__8400.cljs$lang$protocol_mask$partition0$ & 64;
if(or__3824__auto____8401) {
return or__3824__auto____8401
}else {
return G__8399__8400.cljs$core$ISeq$
}
}()) {
return true
}else {
if(!G__8399__8400.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.ISeq, G__8399__8400)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.ISeq, G__8399__8400)
}
}()) {
return cljs.core._first.call(null, coll)
}else {
var s__8402 = cljs.core.seq.call(null, coll);
if(s__8402 == null) {
return null
}else {
return cljs.core._first.call(null, s__8402)
}
}
}
};
cljs.core.rest = function rest(coll) {
if(!(coll == null)) {
if(function() {
var G__8407__8408 = coll;
if(G__8407__8408) {
if(function() {
var or__3824__auto____8409 = G__8407__8408.cljs$lang$protocol_mask$partition0$ & 64;
if(or__3824__auto____8409) {
return or__3824__auto____8409
}else {
return G__8407__8408.cljs$core$ISeq$
}
}()) {
return true
}else {
if(!G__8407__8408.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.ISeq, G__8407__8408)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.ISeq, G__8407__8408)
}
}()) {
return cljs.core._rest.call(null, coll)
}else {
var s__8410 = cljs.core.seq.call(null, coll);
if(!(s__8410 == null)) {
return cljs.core._rest.call(null, s__8410)
}else {
return cljs.core.List.EMPTY
}
}
}else {
return cljs.core.List.EMPTY
}
};
cljs.core.next = function next(coll) {
if(coll == null) {
return null
}else {
if(function() {
var G__8414__8415 = coll;
if(G__8414__8415) {
if(function() {
var or__3824__auto____8416 = G__8414__8415.cljs$lang$protocol_mask$partition0$ & 128;
if(or__3824__auto____8416) {
return or__3824__auto____8416
}else {
return G__8414__8415.cljs$core$INext$
}
}()) {
return true
}else {
if(!G__8414__8415.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.INext, G__8414__8415)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.INext, G__8414__8415)
}
}()) {
return cljs.core._next.call(null, coll)
}else {
return cljs.core.seq.call(null, cljs.core.rest.call(null, coll))
}
}
};
cljs.core.second = function second(coll) {
return cljs.core.first.call(null, cljs.core.next.call(null, coll))
};
cljs.core.ffirst = function ffirst(coll) {
return cljs.core.first.call(null, cljs.core.first.call(null, coll))
};
cljs.core.nfirst = function nfirst(coll) {
return cljs.core.next.call(null, cljs.core.first.call(null, coll))
};
cljs.core.fnext = function fnext(coll) {
return cljs.core.first.call(null, cljs.core.next.call(null, coll))
};
cljs.core.nnext = function nnext(coll) {
return cljs.core.next.call(null, cljs.core.next.call(null, coll))
};
cljs.core.last = function last(s) {
while(true) {
var sn__8418 = cljs.core.next.call(null, s);
if(!(sn__8418 == null)) {
var G__8419 = sn__8418;
s = G__8419;
continue
}else {
return cljs.core.first.call(null, s)
}
break
}
};
cljs.core.IEquiv["_"] = true;
cljs.core._equiv["_"] = function(x, o) {
return x === o
};
cljs.core.not = function not(x) {
if(cljs.core.truth_(x)) {
return false
}else {
return true
}
};
cljs.core.conj = function() {
var conj = null;
var conj__2 = function(coll, x) {
return cljs.core._conj.call(null, coll, x)
};
var conj__3 = function() {
var G__8420__delegate = function(coll, x, xs) {
while(true) {
if(cljs.core.truth_(xs)) {
var G__8421 = conj.call(null, coll, x);
var G__8422 = cljs.core.first.call(null, xs);
var G__8423 = cljs.core.next.call(null, xs);
coll = G__8421;
x = G__8422;
xs = G__8423;
continue
}else {
return conj.call(null, coll, x)
}
break
}
};
var G__8420 = 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__8420__delegate.call(this, coll, x, xs)
};
G__8420.cljs$lang$maxFixedArity = 2;
G__8420.cljs$lang$applyTo = function(arglist__8424) {
var coll = cljs.core.first(arglist__8424);
var x = cljs.core.first(cljs.core.next(arglist__8424));
var xs = cljs.core.rest(cljs.core.next(arglist__8424));
return G__8420__delegate(coll, x, xs)
};
G__8420.cljs$lang$arity$variadic = G__8420__delegate;
return G__8420
}();
conj = function(coll, x, var_args) {
var xs = var_args;
switch(arguments.length) {
case 2:
return conj__2.call(this, coll, x);
default:
return conj__3.cljs$lang$arity$variadic(coll, x, cljs.core.array_seq(arguments, 2))
}
throw"Invalid arity: " + arguments.length;
};
conj.cljs$lang$maxFixedArity = 2;
conj.cljs$lang$applyTo = conj__3.cljs$lang$applyTo;
conj.cljs$lang$arity$2 = conj__2;
conj.cljs$lang$arity$variadic = conj__3.cljs$lang$arity$variadic;
return conj
}();
cljs.core.empty = function empty(coll) {
return cljs.core._empty.call(null, coll)
};
cljs.core.accumulating_seq_count = function accumulating_seq_count(coll) {
var s__8427 = cljs.core.seq.call(null, coll);
var acc__8428 = 0;
while(true) {
if(cljs.core.counted_QMARK_.call(null, s__8427)) {
return acc__8428 + cljs.core._count.call(null, s__8427)
}else {
var G__8429 = cljs.core.next.call(null, s__8427);
var G__8430 = acc__8428 + 1;
s__8427 = G__8429;
acc__8428 = G__8430;
continue
}
break
}
};
cljs.core.count = function count(coll) {
if(cljs.core.counted_QMARK_.call(null, coll)) {
return cljs.core._count.call(null, coll)
}else {
return cljs.core.accumulating_seq_count.call(null, coll)
}
};
cljs.core.linear_traversal_nth = function() {
var linear_traversal_nth = null;
var linear_traversal_nth__2 = function(coll, n) {
if(coll == null) {
throw new Error("Index out of bounds");
}else {
if(n === 0) {
if(cljs.core.seq.call(null, coll)) {
return cljs.core.first.call(null, coll)
}else {
throw new Error("Index out of bounds");
}
}else {
if(cljs.core.indexed_QMARK_.call(null, coll)) {
return cljs.core._nth.call(null, coll, n)
}else {
if(cljs.core.seq.call(null, coll)) {
return linear_traversal_nth.call(null, cljs.core.next.call(null, coll), n - 1)
}else {
if("\ufdd0'else") {
throw new Error("Index out of bounds");
}else {
return null
}
}
}
}
}
};
var linear_traversal_nth__3 = function(coll, n, not_found) {
if(coll == null) {
return not_found
}else {
if(n === 0) {
if(cljs.core.seq.call(null, coll)) {
return cljs.core.first.call(null, coll)
}else {
return not_found
}
}else {
if(cljs.core.indexed_QMARK_.call(null, coll)) {
return cljs.core._nth.call(null, coll, n, not_found)
}else {
if(cljs.core.seq.call(null, coll)) {
return linear_traversal_nth.call(null, cljs.core.next.call(null, coll), n - 1, not_found)
}else {
if("\ufdd0'else") {
return not_found
}else {
return null
}
}
}
}
}
};
linear_traversal_nth = function(coll, n, not_found) {
switch(arguments.length) {
case 2:
return linear_traversal_nth__2.call(this, coll, n);
case 3:
return linear_traversal_nth__3.call(this, coll, n, not_found)
}
throw"Invalid arity: " + arguments.length;
};
linear_traversal_nth.cljs$lang$arity$2 = linear_traversal_nth__2;
linear_traversal_nth.cljs$lang$arity$3 = linear_traversal_nth__3;
return linear_traversal_nth
}();
cljs.core.nth = function() {
var nth = null;
var nth__2 = function(coll, n) {
if(coll == null) {
return null
}else {
if(function() {
var G__8437__8438 = coll;
if(G__8437__8438) {
if(function() {
var or__3824__auto____8439 = G__8437__8438.cljs$lang$protocol_mask$partition0$ & 16;
if(or__3824__auto____8439) {
return or__3824__auto____8439
}else {
return G__8437__8438.cljs$core$IIndexed$
}
}()) {
return true
}else {
if(!G__8437__8438.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IIndexed, G__8437__8438)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IIndexed, G__8437__8438)
}
}()) {
return cljs.core._nth.call(null, coll, Math.floor(n))
}else {
return cljs.core.linear_traversal_nth.call(null, coll, Math.floor(n))
}
}
};
var nth__3 = function(coll, n, not_found) {
if(!(coll == null)) {
if(function() {
var G__8440__8441 = coll;
if(G__8440__8441) {
if(function() {
var or__3824__auto____8442 = G__8440__8441.cljs$lang$protocol_mask$partition0$ & 16;
if(or__3824__auto____8442) {
return or__3824__auto____8442
}else {
return G__8440__8441.cljs$core$IIndexed$
}
}()) {
return true
}else {
if(!G__8440__8441.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IIndexed, G__8440__8441)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IIndexed, G__8440__8441)
}
}()) {
return cljs.core._nth.call(null, coll, Math.floor(n), not_found)
}else {
return cljs.core.linear_traversal_nth.call(null, coll, Math.floor(n), not_found)
}
}else {
return not_found
}
};
nth = function(coll, n, not_found) {
switch(arguments.length) {
case 2:
return nth__2.call(this, coll, n);
case 3:
return nth__3.call(this, coll, n, not_found)
}
throw"Invalid arity: " + arguments.length;
};
nth.cljs$lang$arity$2 = nth__2;
nth.cljs$lang$arity$3 = nth__3;
return nth
}();
cljs.core.get = function() {
var get = null;
var get__2 = function(o, k) {
return cljs.core._lookup.call(null, o, k)
};
var get__3 = 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__2.call(this, o, k);
case 3:
return get__3.call(this, o, k, not_found)
}
throw"Invalid arity: " + arguments.length;
};
get.cljs$lang$arity$2 = get__2;
get.cljs$lang$arity$3 = get__3;
return get
}();
cljs.core.assoc = function() {
var assoc = null;
var assoc__3 = function(coll, k, v) {
return cljs.core._assoc.call(null, coll, k, v)
};
var assoc__4 = function() {
var G__8445__delegate = function(coll, k, v, kvs) {
while(true) {
var ret__8444 = assoc.call(null, coll, k, v);
if(cljs.core.truth_(kvs)) {
var G__8446 = ret__8444;
var G__8447 = cljs.core.first.call(null, kvs);
var G__8448 = cljs.core.second.call(null, kvs);
var G__8449 = cljs.core.nnext.call(null, kvs);
coll = G__8446;
k = G__8447;
v = G__8448;
kvs = G__8449;
continue
}else {
return ret__8444
}
break
}
};
var G__8445 = 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__8445__delegate.call(this, coll, k, v, kvs)
};
G__8445.cljs$lang$maxFixedArity = 3;
G__8445.cljs$lang$applyTo = function(arglist__8450) {
var coll = cljs.core.first(arglist__8450);
var k = cljs.core.first(cljs.core.next(arglist__8450));
var v = cljs.core.first(cljs.core.next(cljs.core.next(arglist__8450)));
var kvs = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__8450)));
return G__8445__delegate(coll, k, v, kvs)
};
G__8445.cljs$lang$arity$variadic = G__8445__delegate;
return G__8445
}();
assoc = function(coll, k, v, var_args) {
var kvs = var_args;
switch(arguments.length) {
case 3:
return assoc__3.call(this, coll, k, v);
default:
return assoc__4.cljs$lang$arity$variadic(coll, k, v, cljs.core.array_seq(arguments, 3))
}
throw"Invalid arity: " + arguments.length;
};
assoc.cljs$lang$maxFixedArity = 3;
assoc.cljs$lang$applyTo = assoc__4.cljs$lang$applyTo;
assoc.cljs$lang$arity$3 = assoc__3;
assoc.cljs$lang$arity$variadic = assoc__4.cljs$lang$arity$variadic;
return assoc
}();
cljs.core.dissoc = function() {
var dissoc = null;
var dissoc__1 = function(coll) {
return coll
};
var dissoc__2 = function(coll, k) {
return cljs.core._dissoc.call(null, coll, k)
};
var dissoc__3 = function() {
var G__8453__delegate = function(coll, k, ks) {
while(true) {
var ret__8452 = dissoc.call(null, coll, k);
if(cljs.core.truth_(ks)) {
var G__8454 = ret__8452;
var G__8455 = cljs.core.first.call(null, ks);
var G__8456 = cljs.core.next.call(null, ks);
coll = G__8454;
k = G__8455;
ks = G__8456;
continue
}else {
return ret__8452
}
break
}
};
var G__8453 = 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__8453__delegate.call(this, coll, k, ks)
};
G__8453.cljs$lang$maxFixedArity = 2;
G__8453.cljs$lang$applyTo = function(arglist__8457) {
var coll = cljs.core.first(arglist__8457);
var k = cljs.core.first(cljs.core.next(arglist__8457));
var ks = cljs.core.rest(cljs.core.next(arglist__8457));
return G__8453__delegate(coll, k, ks)
};
G__8453.cljs$lang$arity$variadic = G__8453__delegate;
return G__8453
}();
dissoc = function(coll, k, var_args) {
var ks = var_args;
switch(arguments.length) {
case 1:
return dissoc__1.call(this, coll);
case 2:
return dissoc__2.call(this, coll, k);
default:
return dissoc__3.cljs$lang$arity$variadic(coll, k, cljs.core.array_seq(arguments, 2))
}
throw"Invalid arity: " + arguments.length;
};
dissoc.cljs$lang$maxFixedArity = 2;
dissoc.cljs$lang$applyTo = dissoc__3.cljs$lang$applyTo;
dissoc.cljs$lang$arity$1 = dissoc__1;
dissoc.cljs$lang$arity$2 = dissoc__2;
dissoc.cljs$lang$arity$variadic = dissoc__3.cljs$lang$arity$variadic;
return dissoc
}();
cljs.core.with_meta = function with_meta(o, meta) {
return cljs.core._with_meta.call(null, o, meta)
};
cljs.core.meta = function meta(o) {
if(function() {
var G__8461__8462 = o;
if(G__8461__8462) {
if(function() {
var or__3824__auto____8463 = G__8461__8462.cljs$lang$protocol_mask$partition0$ & 131072;
if(or__3824__auto____8463) {
return or__3824__auto____8463
}else {
return G__8461__8462.cljs$core$IMeta$
}
}()) {
return true
}else {
if(!G__8461__8462.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IMeta, G__8461__8462)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IMeta, G__8461__8462)
}
}()) {
return cljs.core._meta.call(null, o)
}else {
return null
}
};
cljs.core.peek = function peek(coll) {
return cljs.core._peek.call(null, coll)
};
cljs.core.pop = function pop(coll) {
return cljs.core._pop.call(null, coll)
};
cljs.core.disj = function() {
var disj = null;
var disj__1 = function(coll) {
return coll
};
var disj__2 = function(coll, k) {
return cljs.core._disjoin.call(null, coll, k)
};
var disj__3 = function() {
var G__8466__delegate = function(coll, k, ks) {
while(true) {
var ret__8465 = disj.call(null, coll, k);
if(cljs.core.truth_(ks)) {
var G__8467 = ret__8465;
var G__8468 = cljs.core.first.call(null, ks);
var G__8469 = cljs.core.next.call(null, ks);
coll = G__8467;
k = G__8468;
ks = G__8469;
continue
}else {
return ret__8465
}
break
}
};
var G__8466 = 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__8466__delegate.call(this, coll, k, ks)
};
G__8466.cljs$lang$maxFixedArity = 2;
G__8466.cljs$lang$applyTo = function(arglist__8470) {
var coll = cljs.core.first(arglist__8470);
var k = cljs.core.first(cljs.core.next(arglist__8470));
var ks = cljs.core.rest(cljs.core.next(arglist__8470));
return G__8466__delegate(coll, k, ks)
};
G__8466.cljs$lang$arity$variadic = G__8466__delegate;
return G__8466
}();
disj = function(coll, k, var_args) {
var ks = var_args;
switch(arguments.length) {
case 1:
return disj__1.call(this, coll);
case 2:
return disj__2.call(this, coll, k);
default:
return disj__3.cljs$lang$arity$variadic(coll, k, cljs.core.array_seq(arguments, 2))
}
throw"Invalid arity: " + arguments.length;
};
disj.cljs$lang$maxFixedArity = 2;
disj.cljs$lang$applyTo = disj__3.cljs$lang$applyTo;
disj.cljs$lang$arity$1 = disj__1;
disj.cljs$lang$arity$2 = disj__2;
disj.cljs$lang$arity$variadic = disj__3.cljs$lang$arity$variadic;
return disj
}();
cljs.core.string_hash_cache = {};
cljs.core.string_hash_cache_count = 0;
cljs.core.add_to_string_hash_cache = function add_to_string_hash_cache(k) {
var h__8472 = goog.string.hashCode(k);
cljs.core.string_hash_cache[k] = h__8472;
cljs.core.string_hash_cache_count = cljs.core.string_hash_cache_count + 1;
return h__8472
};
cljs.core.check_string_hash_cache = function check_string_hash_cache(k) {
if(cljs.core.string_hash_cache_count > 255) {
cljs.core.string_hash_cache = {};
cljs.core.string_hash_cache_count = 0
}else {
}
var h__8474 = cljs.core.string_hash_cache[k];
if(!(h__8474 == null)) {
return h__8474
}else {
return cljs.core.add_to_string_hash_cache.call(null, k)
}
};
cljs.core.hash = function() {
var hash = null;
var hash__1 = function(o) {
return hash.call(null, o, true)
};
var hash__2 = function(o, check_cache) {
if(function() {
var and__3822__auto____8476 = goog.isString(o);
if(and__3822__auto____8476) {
return check_cache
}else {
return and__3822__auto____8476
}
}()) {
return cljs.core.check_string_hash_cache.call(null, o)
}else {
return cljs.core._hash.call(null, o)
}
};
hash = function(o, check_cache) {
switch(arguments.length) {
case 1:
return hash__1.call(this, o);
case 2:
return hash__2.call(this, o, check_cache)
}
throw"Invalid arity: " + arguments.length;
};
hash.cljs$lang$arity$1 = hash__1;
hash.cljs$lang$arity$2 = hash__2;
return hash
}();
cljs.core.empty_QMARK_ = function empty_QMARK_(coll) {
return cljs.core.not.call(null, cljs.core.seq.call(null, coll))
};
cljs.core.coll_QMARK_ = function coll_QMARK_(x) {
if(x == null) {
return false
}else {
var G__8480__8481 = x;
if(G__8480__8481) {
if(function() {
var or__3824__auto____8482 = G__8480__8481.cljs$lang$protocol_mask$partition0$ & 8;
if(or__3824__auto____8482) {
return or__3824__auto____8482
}else {
return G__8480__8481.cljs$core$ICollection$
}
}()) {
return true
}else {
if(!G__8480__8481.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.ICollection, G__8480__8481)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.ICollection, G__8480__8481)
}
}
};
cljs.core.set_QMARK_ = function set_QMARK_(x) {
if(x == null) {
return false
}else {
var G__8486__8487 = x;
if(G__8486__8487) {
if(function() {
var or__3824__auto____8488 = G__8486__8487.cljs$lang$protocol_mask$partition0$ & 4096;
if(or__3824__auto____8488) {
return or__3824__auto____8488
}else {
return G__8486__8487.cljs$core$ISet$
}
}()) {
return true
}else {
if(!G__8486__8487.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.ISet, G__8486__8487)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.ISet, G__8486__8487)
}
}
};
cljs.core.associative_QMARK_ = function associative_QMARK_(x) {
var G__8492__8493 = x;
if(G__8492__8493) {
if(function() {
var or__3824__auto____8494 = G__8492__8493.cljs$lang$protocol_mask$partition0$ & 512;
if(or__3824__auto____8494) {
return or__3824__auto____8494
}else {
return G__8492__8493.cljs$core$IAssociative$
}
}()) {
return true
}else {
if(!G__8492__8493.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IAssociative, G__8492__8493)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IAssociative, G__8492__8493)
}
};
cljs.core.sequential_QMARK_ = function sequential_QMARK_(x) {
var G__8498__8499 = x;
if(G__8498__8499) {
if(function() {
var or__3824__auto____8500 = G__8498__8499.cljs$lang$protocol_mask$partition0$ & 16777216;
if(or__3824__auto____8500) {
return or__3824__auto____8500
}else {
return G__8498__8499.cljs$core$ISequential$
}
}()) {
return true
}else {
if(!G__8498__8499.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.ISequential, G__8498__8499)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.ISequential, G__8498__8499)
}
};
cljs.core.counted_QMARK_ = function counted_QMARK_(x) {
var G__8504__8505 = x;
if(G__8504__8505) {
if(function() {
var or__3824__auto____8506 = G__8504__8505.cljs$lang$protocol_mask$partition0$ & 2;
if(or__3824__auto____8506) {
return or__3824__auto____8506
}else {
return G__8504__8505.cljs$core$ICounted$
}
}()) {
return true
}else {
if(!G__8504__8505.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.ICounted, G__8504__8505)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.ICounted, G__8504__8505)
}
};
cljs.core.indexed_QMARK_ = function indexed_QMARK_(x) {
var G__8510__8511 = x;
if(G__8510__8511) {
if(function() {
var or__3824__auto____8512 = G__8510__8511.cljs$lang$protocol_mask$partition0$ & 16;
if(or__3824__auto____8512) {
return or__3824__auto____8512
}else {
return G__8510__8511.cljs$core$IIndexed$
}
}()) {
return true
}else {
if(!G__8510__8511.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IIndexed, G__8510__8511)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IIndexed, G__8510__8511)
}
};
cljs.core.reduceable_QMARK_ = function reduceable_QMARK_(x) {
var G__8516__8517 = x;
if(G__8516__8517) {
if(function() {
var or__3824__auto____8518 = G__8516__8517.cljs$lang$protocol_mask$partition0$ & 524288;
if(or__3824__auto____8518) {
return or__3824__auto____8518
}else {
return G__8516__8517.cljs$core$IReduce$
}
}()) {
return true
}else {
if(!G__8516__8517.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IReduce, G__8516__8517)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IReduce, G__8516__8517)
}
};
cljs.core.map_QMARK_ = function map_QMARK_(x) {
if(x == null) {
return false
}else {
var G__8522__8523 = x;
if(G__8522__8523) {
if(function() {
var or__3824__auto____8524 = G__8522__8523.cljs$lang$protocol_mask$partition0$ & 1024;
if(or__3824__auto____8524) {
return or__3824__auto____8524
}else {
return G__8522__8523.cljs$core$IMap$
}
}()) {
return true
}else {
if(!G__8522__8523.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IMap, G__8522__8523)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IMap, G__8522__8523)
}
}
};
cljs.core.vector_QMARK_ = function vector_QMARK_(x) {
var G__8528__8529 = x;
if(G__8528__8529) {
if(function() {
var or__3824__auto____8530 = G__8528__8529.cljs$lang$protocol_mask$partition0$ & 16384;
if(or__3824__auto____8530) {
return or__3824__auto____8530
}else {
return G__8528__8529.cljs$core$IVector$
}
}()) {
return true
}else {
if(!G__8528__8529.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IVector, G__8528__8529)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IVector, G__8528__8529)
}
};
cljs.core.chunked_seq_QMARK_ = function chunked_seq_QMARK_(x) {
var G__8534__8535 = x;
if(G__8534__8535) {
if(cljs.core.truth_(function() {
var or__3824__auto____8536 = null;
if(cljs.core.truth_(or__3824__auto____8536)) {
return or__3824__auto____8536
}else {
return G__8534__8535.cljs$core$IChunkedSeq$
}
}())) {
return true
}else {
if(!G__8534__8535.cljs$lang$protocol_mask$partition$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IChunkedSeq, G__8534__8535)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IChunkedSeq, G__8534__8535)
}
};
cljs.core.js_obj = function() {
var js_obj = null;
var js_obj__0 = function() {
return{}
};
var js_obj__1 = function() {
var G__8537__delegate = function(keyvals) {
return cljs.core.apply.call(null, goog.object.create, keyvals)
};
var G__8537 = function(var_args) {
var keyvals = null;
if(goog.isDef(var_args)) {
keyvals = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0), 0)
}
return G__8537__delegate.call(this, keyvals)
};
G__8537.cljs$lang$maxFixedArity = 0;
G__8537.cljs$lang$applyTo = function(arglist__8538) {
var keyvals = cljs.core.seq(arglist__8538);
return G__8537__delegate(keyvals)
};
G__8537.cljs$lang$arity$variadic = G__8537__delegate;
return G__8537
}();
js_obj = function(var_args) {
var keyvals = var_args;
switch(arguments.length) {
case 0:
return js_obj__0.call(this);
default:
return js_obj__1.cljs$lang$arity$variadic(cljs.core.array_seq(arguments, 0))
}
throw"Invalid arity: " + arguments.length;
};
js_obj.cljs$lang$maxFixedArity = 0;
js_obj.cljs$lang$applyTo = js_obj__1.cljs$lang$applyTo;
js_obj.cljs$lang$arity$0 = js_obj__0;
js_obj.cljs$lang$arity$variadic = js_obj__1.cljs$lang$arity$variadic;
return js_obj
}();
cljs.core.js_keys = function js_keys(obj) {
var keys__8540 = [];
goog.object.forEach(obj, function(val, key, obj) {
return keys__8540.push(key)
});
return keys__8540
};
cljs.core.js_delete = function js_delete(obj, key) {
return delete obj[key]
};
cljs.core.array_copy = function array_copy(from, i, to, j, len) {
var i__8544 = i;
var j__8545 = j;
var len__8546 = len;
while(true) {
if(len__8546 === 0) {
return to
}else {
to[j__8545] = from[i__8544];
var G__8547 = i__8544 + 1;
var G__8548 = j__8545 + 1;
var G__8549 = len__8546 - 1;
i__8544 = G__8547;
j__8545 = G__8548;
len__8546 = G__8549;
continue
}
break
}
};
cljs.core.array_copy_downward = function array_copy_downward(from, i, to, j, len) {
var i__8553 = i + (len - 1);
var j__8554 = j + (len - 1);
var len__8555 = len;
while(true) {
if(len__8555 === 0) {
return to
}else {
to[j__8554] = from[i__8553];
var G__8556 = i__8553 - 1;
var G__8557 = j__8554 - 1;
var G__8558 = len__8555 - 1;
i__8553 = G__8556;
j__8554 = G__8557;
len__8555 = G__8558;
continue
}
break
}
};
cljs.core.lookup_sentinel = {};
cljs.core.false_QMARK_ = function false_QMARK_(x) {
return x === false
};
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.seq_QMARK_ = function seq_QMARK_(s) {
if(s == null) {
return false
}else {
var G__8562__8563 = s;
if(G__8562__8563) {
if(function() {
var or__3824__auto____8564 = G__8562__8563.cljs$lang$protocol_mask$partition0$ & 64;
if(or__3824__auto____8564) {
return or__3824__auto____8564
}else {
return G__8562__8563.cljs$core$ISeq$
}
}()) {
return true
}else {
if(!G__8562__8563.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.ISeq, G__8562__8563)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.ISeq, G__8562__8563)
}
}
};
cljs.core.seqable_QMARK_ = function seqable_QMARK_(s) {
var G__8568__8569 = s;
if(G__8568__8569) {
if(function() {
var or__3824__auto____8570 = G__8568__8569.cljs$lang$protocol_mask$partition0$ & 8388608;
if(or__3824__auto____8570) {
return or__3824__auto____8570
}else {
return G__8568__8569.cljs$core$ISeqable$
}
}()) {
return true
}else {
if(!G__8568__8569.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.ISeqable, G__8568__8569)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.ISeqable, G__8568__8569)
}
};
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__3822__auto____8573 = goog.isString(x);
if(and__3822__auto____8573) {
return!function() {
var or__3824__auto____8574 = x.charAt(0) === "\ufdd0";
if(or__3824__auto____8574) {
return or__3824__auto____8574
}else {
return x.charAt(0) === "\ufdd1"
}
}()
}else {
return and__3822__auto____8573
}
};
cljs.core.keyword_QMARK_ = function keyword_QMARK_(x) {
var and__3822__auto____8576 = goog.isString(x);
if(and__3822__auto____8576) {
return x.charAt(0) === "\ufdd0"
}else {
return and__3822__auto____8576
}
};
cljs.core.symbol_QMARK_ = function symbol_QMARK_(x) {
var and__3822__auto____8578 = goog.isString(x);
if(and__3822__auto____8578) {
return x.charAt(0) === "\ufdd1"
}else {
return and__3822__auto____8578
}
};
cljs.core.number_QMARK_ = function number_QMARK_(n) {
return goog.isNumber(n)
};
cljs.core.fn_QMARK_ = function fn_QMARK_(f) {
return goog.isFunction(f)
};
cljs.core.ifn_QMARK_ = function ifn_QMARK_(f) {
var or__3824__auto____8583 = cljs.core.fn_QMARK_.call(null, f);
if(or__3824__auto____8583) {
return or__3824__auto____8583
}else {
var G__8584__8585 = f;
if(G__8584__8585) {
if(function() {
var or__3824__auto____8586 = G__8584__8585.cljs$lang$protocol_mask$partition0$ & 1;
if(or__3824__auto____8586) {
return or__3824__auto____8586
}else {
return G__8584__8585.cljs$core$IFn$
}
}()) {
return true
}else {
if(!G__8584__8585.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IFn, G__8584__8585)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IFn, G__8584__8585)
}
}
};
cljs.core.integer_QMARK_ = function integer_QMARK_(n) {
var and__3822__auto____8588 = cljs.core.number_QMARK_.call(null, n);
if(and__3822__auto____8588) {
return n == n.toFixed()
}else {
return and__3822__auto____8588
}
};
cljs.core.contains_QMARK_ = function contains_QMARK_(coll, v) {
if(cljs.core._lookup.call(null, coll, v, cljs.core.lookup_sentinel) === cljs.core.lookup_sentinel) {
return false
}else {
return true
}
};
cljs.core.find = function find(coll, k) {
if(cljs.core.truth_(function() {
var and__3822__auto____8591 = coll;
if(cljs.core.truth_(and__3822__auto____8591)) {
var and__3822__auto____8592 = cljs.core.associative_QMARK_.call(null, coll);
if(and__3822__auto____8592) {
return cljs.core.contains_QMARK_.call(null, coll, k)
}else {
return and__3822__auto____8592
}
}else {
return and__3822__auto____8591
}
}())) {
return cljs.core.PersistentVector.fromArray([k, cljs.core._lookup.call(null, coll, k)], true)
}else {
return null
}
};
cljs.core.distinct_QMARK_ = function() {
var distinct_QMARK_ = null;
var distinct_QMARK___1 = function(x) {
return true
};
var distinct_QMARK___2 = function(x, y) {
return!cljs.core._EQ_.call(null, x, y)
};
var distinct_QMARK___3 = function() {
var G__8601__delegate = function(x, y, more) {
if(!cljs.core._EQ_.call(null, x, y)) {
var s__8597 = cljs.core.PersistentHashSet.fromArray([y, x]);
var xs__8598 = more;
while(true) {
var x__8599 = cljs.core.first.call(null, xs__8598);
var etc__8600 = cljs.core.next.call(null, xs__8598);
if(cljs.core.truth_(xs__8598)) {
if(cljs.core.contains_QMARK_.call(null, s__8597, x__8599)) {
return false
}else {
var G__8602 = cljs.core.conj.call(null, s__8597, x__8599);
var G__8603 = etc__8600;
s__8597 = G__8602;
xs__8598 = G__8603;
continue
}
}else {
return true
}
break
}
}else {
return false
}
};
var G__8601 = 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__8601__delegate.call(this, x, y, more)
};
G__8601.cljs$lang$maxFixedArity = 2;
G__8601.cljs$lang$applyTo = function(arglist__8604) {
var x = cljs.core.first(arglist__8604);
var y = cljs.core.first(cljs.core.next(arglist__8604));
var more = cljs.core.rest(cljs.core.next(arglist__8604));
return G__8601__delegate(x, y, more)
};
G__8601.cljs$lang$arity$variadic = G__8601__delegate;
return G__8601
}();
distinct_QMARK_ = function(x, y, var_args) {
var more = var_args;
switch(arguments.length) {
case 1:
return distinct_QMARK___1.call(this, x);
case 2:
return distinct_QMARK___2.call(this, x, y);
default:
return distinct_QMARK___3.cljs$lang$arity$variadic(x, y, cljs.core.array_seq(arguments, 2))
}
throw"Invalid arity: " + arguments.length;
};
distinct_QMARK_.cljs$lang$maxFixedArity = 2;
distinct_QMARK_.cljs$lang$applyTo = distinct_QMARK___3.cljs$lang$applyTo;
distinct_QMARK_.cljs$lang$arity$1 = distinct_QMARK___1;
distinct_QMARK_.cljs$lang$arity$2 = distinct_QMARK___2;
distinct_QMARK_.cljs$lang$arity$variadic = distinct_QMARK___3.cljs$lang$arity$variadic;
return distinct_QMARK_
}();
cljs.core.compare = function compare(x, y) {
if(x === y) {
return 0
}else {
if(x == null) {
return-1
}else {
if(y == null) {
return 1
}else {
if(cljs.core.type.call(null, x) === cljs.core.type.call(null, y)) {
if(function() {
var G__8608__8609 = x;
if(G__8608__8609) {
if(cljs.core.truth_(function() {
var or__3824__auto____8610 = null;
if(cljs.core.truth_(or__3824__auto____8610)) {
return or__3824__auto____8610
}else {
return G__8608__8609.cljs$core$IComparable$
}
}())) {
return true
}else {
if(!G__8608__8609.cljs$lang$protocol_mask$partition$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IComparable, G__8608__8609)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IComparable, G__8608__8609)
}
}()) {
return cljs.core._compare.call(null, x, y)
}else {
return goog.array.defaultCompare(x, y)
}
}else {
if("\ufdd0'else") {
throw new Error("compare on non-nil objects of different types");
}else {
return null
}
}
}
}
}
};
cljs.core.compare_indexed = function() {
var compare_indexed = null;
var compare_indexed__2 = function(xs, ys) {
var xl__8615 = cljs.core.count.call(null, xs);
var yl__8616 = cljs.core.count.call(null, ys);
if(xl__8615 < yl__8616) {
return-1
}else {
if(xl__8615 > yl__8616) {
return 1
}else {
if("\ufdd0'else") {
return compare_indexed.call(null, xs, ys, xl__8615, 0)
}else {
return null
}
}
}
};
var compare_indexed__4 = function(xs, ys, len, n) {
while(true) {
var d__8617 = cljs.core.compare.call(null, cljs.core.nth.call(null, xs, n), cljs.core.nth.call(null, ys, n));
if(function() {
var and__3822__auto____8618 = d__8617 === 0;
if(and__3822__auto____8618) {
return n + 1 < len
}else {
return and__3822__auto____8618
}
}()) {
var G__8619 = xs;
var G__8620 = ys;
var G__8621 = len;
var G__8622 = n + 1;
xs = G__8619;
ys = G__8620;
len = G__8621;
n = G__8622;
continue
}else {
return d__8617
}
break
}
};
compare_indexed = function(xs, ys, len, n) {
switch(arguments.length) {
case 2:
return compare_indexed__2.call(this, xs, ys);
case 4:
return compare_indexed__4.call(this, xs, ys, len, n)
}
throw"Invalid arity: " + arguments.length;
};
compare_indexed.cljs$lang$arity$2 = compare_indexed__2;
compare_indexed.cljs$lang$arity$4 = compare_indexed__4;
return compare_indexed
}();
cljs.core.fn__GT_comparator = function fn__GT_comparator(f) {
if(cljs.core._EQ_.call(null, f, cljs.core.compare)) {
return cljs.core.compare
}else {
return function(x, y) {
var r__8624 = f.call(null, x, y);
if(cljs.core.number_QMARK_.call(null, r__8624)) {
return r__8624
}else {
if(cljs.core.truth_(r__8624)) {
return-1
}else {
if(cljs.core.truth_(f.call(null, y, x))) {
return 1
}else {
return 0
}
}
}
}
}
};
cljs.core.sort = function() {
var sort = null;
var sort__1 = function(coll) {
return sort.call(null, cljs.core.compare, coll)
};
var sort__2 = function(comp, coll) {
if(cljs.core.seq.call(null, coll)) {
var a__8626 = cljs.core.to_array.call(null, coll);
goog.array.stableSort(a__8626, cljs.core.fn__GT_comparator.call(null, comp));
return cljs.core.seq.call(null, a__8626)
}else {
return cljs.core.List.EMPTY
}
};
sort = function(comp, coll) {
switch(arguments.length) {
case 1:
return sort__1.call(this, comp);
case 2:
return sort__2.call(this, comp, coll)
}
throw"Invalid arity: " + arguments.length;
};
sort.cljs$lang$arity$1 = sort__1;
sort.cljs$lang$arity$2 = sort__2;
return sort
}();
cljs.core.sort_by = function() {
var sort_by = null;
var sort_by__2 = function(keyfn, coll) {
return sort_by.call(null, keyfn, cljs.core.compare, coll)
};
var sort_by__3 = 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__2.call(this, keyfn, comp);
case 3:
return sort_by__3.call(this, keyfn, comp, coll)
}
throw"Invalid arity: " + arguments.length;
};
sort_by.cljs$lang$arity$2 = sort_by__2;
sort_by.cljs$lang$arity$3 = sort_by__3;
return sort_by
}();
cljs.core.seq_reduce = function() {
var seq_reduce = null;
var seq_reduce__2 = function(f, coll) {
var temp__3971__auto____8632 = cljs.core.seq.call(null, coll);
if(temp__3971__auto____8632) {
var s__8633 = temp__3971__auto____8632;
return cljs.core.reduce.call(null, f, cljs.core.first.call(null, s__8633), cljs.core.next.call(null, s__8633))
}else {
return f.call(null)
}
};
var seq_reduce__3 = function(f, val, coll) {
var val__8634 = val;
var coll__8635 = cljs.core.seq.call(null, coll);
while(true) {
if(coll__8635) {
var nval__8636 = f.call(null, val__8634, cljs.core.first.call(null, coll__8635));
if(cljs.core.reduced_QMARK_.call(null, nval__8636)) {
return cljs.core.deref.call(null, nval__8636)
}else {
var G__8637 = nval__8636;
var G__8638 = cljs.core.next.call(null, coll__8635);
val__8634 = G__8637;
coll__8635 = G__8638;
continue
}
}else {
return val__8634
}
break
}
};
seq_reduce = function(f, val, coll) {
switch(arguments.length) {
case 2:
return seq_reduce__2.call(this, f, val);
case 3:
return seq_reduce__3.call(this, f, val, coll)
}
throw"Invalid arity: " + arguments.length;
};
seq_reduce.cljs$lang$arity$2 = seq_reduce__2;
seq_reduce.cljs$lang$arity$3 = seq_reduce__3;
return seq_reduce
}();
cljs.core.shuffle = function shuffle(coll) {
var a__8640 = cljs.core.to_array.call(null, coll);
goog.array.shuffle(a__8640);
return cljs.core.vec.call(null, a__8640)
};
cljs.core.reduce = function() {
var reduce = null;
var reduce__2 = function(f, coll) {
if(function() {
var G__8647__8648 = coll;
if(G__8647__8648) {
if(function() {
var or__3824__auto____8649 = G__8647__8648.cljs$lang$protocol_mask$partition0$ & 524288;
if(or__3824__auto____8649) {
return or__3824__auto____8649
}else {
return G__8647__8648.cljs$core$IReduce$
}
}()) {
return true
}else {
if(!G__8647__8648.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IReduce, G__8647__8648)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IReduce, G__8647__8648)
}
}()) {
return cljs.core._reduce.call(null, coll, f)
}else {
return cljs.core.seq_reduce.call(null, f, coll)
}
};
var reduce__3 = function(f, val, coll) {
if(function() {
var G__8650__8651 = coll;
if(G__8650__8651) {
if(function() {
var or__3824__auto____8652 = G__8650__8651.cljs$lang$protocol_mask$partition0$ & 524288;
if(or__3824__auto____8652) {
return or__3824__auto____8652
}else {
return G__8650__8651.cljs$core$IReduce$
}
}()) {
return true
}else {
if(!G__8650__8651.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IReduce, G__8650__8651)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IReduce, G__8650__8651)
}
}()) {
return cljs.core._reduce.call(null, coll, f, val)
}else {
return cljs.core.seq_reduce.call(null, f, val, coll)
}
};
reduce = function(f, val, coll) {
switch(arguments.length) {
case 2:
return reduce__2.call(this, f, val);
case 3:
return reduce__3.call(this, f, val, coll)
}
throw"Invalid arity: " + arguments.length;
};
reduce.cljs$lang$arity$2 = reduce__2;
reduce.cljs$lang$arity$3 = reduce__3;
return reduce
}();
cljs.core.reduce_kv = function reduce_kv(f, init, coll) {
return cljs.core._kv_reduce.call(null, coll, f, init)
};
cljs.core.Reduced = function(val) {
this.val = val;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 32768
};
cljs.core.Reduced.cljs$lang$type = true;
cljs.core.Reduced.cljs$lang$ctorPrSeq = function(this__2333__auto__) {
return cljs.core.list.call(null, "cljs.core/Reduced")
};
cljs.core.Reduced.prototype.cljs$core$IDeref$_deref$arity$1 = function(o) {
var this__8653 = this;
return this__8653.val
};
cljs.core.Reduced;
cljs.core.reduced_QMARK_ = function reduced_QMARK_(r) {
return cljs.core.instance_QMARK_.call(null, cljs.core.Reduced, r)
};
cljs.core.reduced = function reduced(x) {
return new cljs.core.Reduced(x)
};
cljs.core._PLUS_ = function() {
var _PLUS_ = null;
var _PLUS___0 = function() {
return 0
};
var _PLUS___1 = function(x) {
return x
};
var _PLUS___2 = function(x, y) {
return x + y
};
var _PLUS___3 = function() {
var G__8654__delegate = function(x, y, more) {
return cljs.core.reduce.call(null, _PLUS_, x + y, more)
};
var G__8654 = 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__8654__delegate.call(this, x, y, more)
};
G__8654.cljs$lang$maxFixedArity = 2;
G__8654.cljs$lang$applyTo = function(arglist__8655) {
var x = cljs.core.first(arglist__8655);
var y = cljs.core.first(cljs.core.next(arglist__8655));
var more = cljs.core.rest(cljs.core.next(arglist__8655));
return G__8654__delegate(x, y, more)
};
G__8654.cljs$lang$arity$variadic = G__8654__delegate;
return G__8654
}();
_PLUS_ = function(x, y, var_args) {
var more = var_args;
switch(arguments.length) {
case 0:
return _PLUS___0.call(this);
case 1:
return _PLUS___1.call(this, x);
case 2:
return _PLUS___2.call(this, x, y);
default:
return _PLUS___3.cljs$lang$arity$variadic(x, y, cljs.core.array_seq(arguments, 2))
}
throw"Invalid arity: " + arguments.length;
};
_PLUS_.cljs$lang$maxFixedArity = 2;
_PLUS_.cljs$lang$applyTo = _PLUS___3.cljs$lang$applyTo;
_PLUS_.cljs$lang$arity$0 = _PLUS___0;
_PLUS_.cljs$lang$arity$1 = _PLUS___1;
_PLUS_.cljs$lang$arity$2 = _PLUS___2;
_PLUS_.cljs$lang$arity$variadic = _PLUS___3.cljs$lang$arity$variadic;
return _PLUS_
}();
cljs.core._ = function() {
var _ = null;
var ___1 = function(x) {
return-x
};
var ___2 = function(x, y) {
return x - y
};
var ___3 = function() {
var G__8656__delegate = function(x, y, more) {
return cljs.core.reduce.call(null, _, x - y, more)
};
var G__8656 = 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__8656__delegate.call(this, x, y, more)
};
G__8656.cljs$lang$maxFixedArity = 2;
G__8656.cljs$lang$applyTo = function(arglist__8657) {
var x = cljs.core.first(arglist__8657);
var y = cljs.core.first(cljs.core.next(arglist__8657));
var more = cljs.core.rest(cljs.core.next(arglist__8657));
return G__8656__delegate(x, y, more)
};
G__8656.cljs$lang$arity$variadic = G__8656__delegate;
return G__8656
}();
_ = function(x, y, var_args) {
var more = var_args;
switch(arguments.length) {
case 1:
return ___1.call(this, x);
case 2:
return ___2.call(this, x, y);
default:
return ___3.cljs$lang$arity$variadic(x, y, cljs.core.array_seq(arguments, 2))
}
throw"Invalid arity: " + arguments.length;
};
_.cljs$lang$maxFixedArity = 2;
_.cljs$lang$applyTo = ___3.cljs$lang$applyTo;
_.cljs$lang$arity$1 = ___1;
_.cljs$lang$arity$2 = ___2;
_.cljs$lang$arity$variadic = ___3.cljs$lang$arity$variadic;
return _
}();
cljs.core._STAR_ = function() {
var _STAR_ = null;
var _STAR___0 = function() {
return 1
};
var _STAR___1 = function(x) {
return x
};
var _STAR___2 = function(x, y) {
return x * y
};
var _STAR___3 = function() {
var G__8658__delegate = function(x, y, more) {
return cljs.core.reduce.call(null, _STAR_, x * y, more)
};
var G__8658 = 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__8658__delegate.call(this, x, y, more)
};
G__8658.cljs$lang$maxFixedArity = 2;
G__8658.cljs$lang$applyTo = function(arglist__8659) {
var x = cljs.core.first(arglist__8659);
var y = cljs.core.first(cljs.core.next(arglist__8659));
var more = cljs.core.rest(cljs.core.next(arglist__8659));
return G__8658__delegate(x, y, more)
};
G__8658.cljs$lang$arity$variadic = G__8658__delegate;
return G__8658
}();
_STAR_ = function(x, y, var_args) {
var more = var_args;
switch(arguments.length) {
case 0:
return _STAR___0.call(this);
case 1:
return _STAR___1.call(this, x);
case 2:
return _STAR___2.call(this, x, y);
default:
return _STAR___3.cljs$lang$arity$variadic(x, y, cljs.core.array_seq(arguments, 2))
}
throw"Invalid arity: " + arguments.length;
};
_STAR_.cljs$lang$maxFixedArity = 2;
_STAR_.cljs$lang$applyTo = _STAR___3.cljs$lang$applyTo;
_STAR_.cljs$lang$arity$0 = _STAR___0;
_STAR_.cljs$lang$arity$1 = _STAR___1;
_STAR_.cljs$lang$arity$2 = _STAR___2;
_STAR_.cljs$lang$arity$variadic = _STAR___3.cljs$lang$arity$variadic;
return _STAR_
}();
cljs.core._SLASH_ = function() {
var _SLASH_ = null;
var _SLASH___1 = function(x) {
return _SLASH_.call(null, 1, x)
};
var _SLASH___2 = function(x, y) {
return x / y
};
var _SLASH___3 = function() {
var G__8660__delegate = function(x, y, more) {
return cljs.core.reduce.call(null, _SLASH_, _SLASH_.call(null, x, y), more)
};
var G__8660 = 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__8660__delegate.call(this, x, y, more)
};
G__8660.cljs$lang$maxFixedArity = 2;
G__8660.cljs$lang$applyTo = function(arglist__8661) {
var x = cljs.core.first(arglist__8661);
var y = cljs.core.first(cljs.core.next(arglist__8661));
var more = cljs.core.rest(cljs.core.next(arglist__8661));
return G__8660__delegate(x, y, more)
};
G__8660.cljs$lang$arity$variadic = G__8660__delegate;
return G__8660
}();
_SLASH_ = function(x, y, var_args) {
var more = var_args;
switch(arguments.length) {
case 1:
return _SLASH___1.call(this, x);
case 2:
return _SLASH___2.call(this, x, y);
default:
return _SLASH___3.cljs$lang$arity$variadic(x, y, cljs.core.array_seq(arguments, 2))
}
throw"Invalid arity: " + arguments.length;
};
_SLASH_.cljs$lang$maxFixedArity = 2;
_SLASH_.cljs$lang$applyTo = _SLASH___3.cljs$lang$applyTo;
_SLASH_.cljs$lang$arity$1 = _SLASH___1;
_SLASH_.cljs$lang$arity$2 = _SLASH___2;
_SLASH_.cljs$lang$arity$variadic = _SLASH___3.cljs$lang$arity$variadic;
return _SLASH_
}();
cljs.core._LT_ = function() {
var _LT_ = null;
var _LT___1 = function(x) {
return true
};
var _LT___2 = function(x, y) {
return x < y
};
var _LT___3 = function() {
var G__8662__delegate = function(x, y, more) {
while(true) {
if(x < y) {
if(cljs.core.next.call(null, more)) {
var G__8663 = y;
var G__8664 = cljs.core.first.call(null, more);
var G__8665 = cljs.core.next.call(null, more);
x = G__8663;
y = G__8664;
more = G__8665;
continue
}else {
return y < cljs.core.first.call(null, more)
}
}else {
return false
}
break
}
};
var G__8662 = 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__8662__delegate.call(this, x, y, more)
};
G__8662.cljs$lang$maxFixedArity = 2;
G__8662.cljs$lang$applyTo = function(arglist__8666) {
var x = cljs.core.first(arglist__8666);
var y = cljs.core.first(cljs.core.next(arglist__8666));
var more = cljs.core.rest(cljs.core.next(arglist__8666));
return G__8662__delegate(x, y, more)
};
G__8662.cljs$lang$arity$variadic = G__8662__delegate;
return G__8662
}();
_LT_ = function(x, y, var_args) {
var more = var_args;
switch(arguments.length) {
case 1:
return _LT___1.call(this, x);
case 2:
return _LT___2.call(this, x, y);
default:
return _LT___3.cljs$lang$arity$variadic(x, y, cljs.core.array_seq(arguments, 2))
}
throw"Invalid arity: " + arguments.length;
};
_LT_.cljs$lang$maxFixedArity = 2;
_LT_.cljs$lang$applyTo = _LT___3.cljs$lang$applyTo;
_LT_.cljs$lang$arity$1 = _LT___1;
_LT_.cljs$lang$arity$2 = _LT___2;
_LT_.cljs$lang$arity$variadic = _LT___3.cljs$lang$arity$variadic;
return _LT_
}();
cljs.core._LT__EQ_ = function() {
var _LT__EQ_ = null;
var _LT__EQ___1 = function(x) {
return true
};
var _LT__EQ___2 = function(x, y) {
return x <= y
};
var _LT__EQ___3 = function() {
var G__8667__delegate = function(x, y, more) {
while(true) {
if(x <= y) {
if(cljs.core.next.call(null, more)) {
var G__8668 = y;
var G__8669 = cljs.core.first.call(null, more);
var G__8670 = cljs.core.next.call(null, more);
x = G__8668;
y = G__8669;
more = G__8670;
continue
}else {
return y <= cljs.core.first.call(null, more)
}
}else {
return false
}
break
}
};
var G__8667 = 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__8667__delegate.call(this, x, y, more)
};
G__8667.cljs$lang$maxFixedArity = 2;
G__8667.cljs$lang$applyTo = function(arglist__8671) {
var x = cljs.core.first(arglist__8671);
var y = cljs.core.first(cljs.core.next(arglist__8671));
var more = cljs.core.rest(cljs.core.next(arglist__8671));
return G__8667__delegate(x, y, more)
};
G__8667.cljs$lang$arity$variadic = G__8667__delegate;
return G__8667
}();
_LT__EQ_ = function(x, y, var_args) {
var more = var_args;
switch(arguments.length) {
case 1:
return _LT__EQ___1.call(this, x);
case 2:
return _LT__EQ___2.call(this, x, y);
default:
return _LT__EQ___3.cljs$lang$arity$variadic(x, y, cljs.core.array_seq(arguments, 2))
}
throw"Invalid arity: " + arguments.length;
};
_LT__EQ_.cljs$lang$maxFixedArity = 2;
_LT__EQ_.cljs$lang$applyTo = _LT__EQ___3.cljs$lang$applyTo;
_LT__EQ_.cljs$lang$arity$1 = _LT__EQ___1;
_LT__EQ_.cljs$lang$arity$2 = _LT__EQ___2;
_LT__EQ_.cljs$lang$arity$variadic = _LT__EQ___3.cljs$lang$arity$variadic;
return _LT__EQ_
}();
cljs.core._GT_ = function() {
var _GT_ = null;
var _GT___1 = function(x) {
return true
};
var _GT___2 = function(x, y) {
return x > y
};
var _GT___3 = function() {
var G__8672__delegate = function(x, y, more) {
while(true) {
if(x > y) {
if(cljs.core.next.call(null, more)) {
var G__8673 = y;
var G__8674 = cljs.core.first.call(null, more);
var G__8675 = cljs.core.next.call(null, more);
x = G__8673;
y = G__8674;
more = G__8675;
continue
}else {
return y > cljs.core.first.call(null, more)
}
}else {
return false
}
break
}
};
var G__8672 = 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__8672__delegate.call(this, x, y, more)
};
G__8672.cljs$lang$maxFixedArity = 2;
G__8672.cljs$lang$applyTo = function(arglist__8676) {
var x = cljs.core.first(arglist__8676);
var y = cljs.core.first(cljs.core.next(arglist__8676));
var more = cljs.core.rest(cljs.core.next(arglist__8676));
return G__8672__delegate(x, y, more)
};
G__8672.cljs$lang$arity$variadic = G__8672__delegate;
return G__8672
}();
_GT_ = function(x, y, var_args) {
var more = var_args;
switch(arguments.length) {
case 1:
return _GT___1.call(this, x);
case 2:
return _GT___2.call(this, x, y);
default:
return _GT___3.cljs$lang$arity$variadic(x, y, cljs.core.array_seq(arguments, 2))
}
throw"Invalid arity: " + arguments.length;
};
_GT_.cljs$lang$maxFixedArity = 2;
_GT_.cljs$lang$applyTo = _GT___3.cljs$lang$applyTo;
_GT_.cljs$lang$arity$1 = _GT___1;
_GT_.cljs$lang$arity$2 = _GT___2;
_GT_.cljs$lang$arity$variadic = _GT___3.cljs$lang$arity$variadic;
return _GT_
}();
cljs.core._GT__EQ_ = function() {
var _GT__EQ_ = null;
var _GT__EQ___1 = function(x) {
return true
};
var _GT__EQ___2 = function(x, y) {
return x >= y
};
var _GT__EQ___3 = function() {
var G__8677__delegate = function(x, y, more) {
while(true) {
if(x >= y) {
if(cljs.core.next.call(null, more)) {
var G__8678 = y;
var G__8679 = cljs.core.first.call(null, more);
var G__8680 = cljs.core.next.call(null, more);
x = G__8678;
y = G__8679;
more = G__8680;
continue
}else {
return y >= cljs.core.first.call(null, more)
}
}else {
return false
}
break
}
};
var G__8677 = 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__8677__delegate.call(this, x, y, more)
};
G__8677.cljs$lang$maxFixedArity = 2;
G__8677.cljs$lang$applyTo = function(arglist__8681) {
var x = cljs.core.first(arglist__8681);
var y = cljs.core.first(cljs.core.next(arglist__8681));
var more = cljs.core.rest(cljs.core.next(arglist__8681));
return G__8677__delegate(x, y, more)
};
G__8677.cljs$lang$arity$variadic = G__8677__delegate;
return G__8677
}();
_GT__EQ_ = function(x, y, var_args) {
var more = var_args;
switch(arguments.length) {
case 1:
return _GT__EQ___1.call(this, x);
case 2:
return _GT__EQ___2.call(this, x, y);
default:
return _GT__EQ___3.cljs$lang$arity$variadic(x, y, cljs.core.array_seq(arguments, 2))
}
throw"Invalid arity: " + arguments.length;
};
_GT__EQ_.cljs$lang$maxFixedArity = 2;
_GT__EQ_.cljs$lang$applyTo = _GT__EQ___3.cljs$lang$applyTo;
_GT__EQ_.cljs$lang$arity$1 = _GT__EQ___1;
_GT__EQ_.cljs$lang$arity$2 = _GT__EQ___2;
_GT__EQ_.cljs$lang$arity$variadic = _GT__EQ___3.cljs$lang$arity$variadic;
return _GT__EQ_
}();
cljs.core.dec = function dec(x) {
return x - 1
};
cljs.core.max = function() {
var max = null;
var max__1 = function(x) {
return x
};
var max__2 = function(x, y) {
return x > y ? x : y
};
var max__3 = function() {
var G__8682__delegate = function(x, y, more) {
return cljs.core.reduce.call(null, max, x > y ? x : y, more)
};
var G__8682 = 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__8682__delegate.call(this, x, y, more)
};
G__8682.cljs$lang$maxFixedArity = 2;
G__8682.cljs$lang$applyTo = function(arglist__8683) {
var x = cljs.core.first(arglist__8683);
var y = cljs.core.first(cljs.core.next(arglist__8683));
var more = cljs.core.rest(cljs.core.next(arglist__8683));
return G__8682__delegate(x, y, more)
};
G__8682.cljs$lang$arity$variadic = G__8682__delegate;
return G__8682
}();
max = function(x, y, var_args) {
var more = var_args;
switch(arguments.length) {
case 1:
return max__1.call(this, x);
case 2:
return max__2.call(this, x, y);
default:
return max__3.cljs$lang$arity$variadic(x, y, cljs.core.array_seq(arguments, 2))
}
throw"Invalid arity: " + arguments.length;
};
max.cljs$lang$maxFixedArity = 2;
max.cljs$lang$applyTo = max__3.cljs$lang$applyTo;
max.cljs$lang$arity$1 = max__1;
max.cljs$lang$arity$2 = max__2;
max.cljs$lang$arity$variadic = max__3.cljs$lang$arity$variadic;
return max
}();
cljs.core.min = function() {
var min = null;
var min__1 = function(x) {
return x
};
var min__2 = function(x, y) {
return x < y ? x : y
};
var min__3 = function() {
var G__8684__delegate = function(x, y, more) {
return cljs.core.reduce.call(null, min, x < y ? x : y, more)
};
var G__8684 = 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__8684__delegate.call(this, x, y, more)
};
G__8684.cljs$lang$maxFixedArity = 2;
G__8684.cljs$lang$applyTo = function(arglist__8685) {
var x = cljs.core.first(arglist__8685);
var y = cljs.core.first(cljs.core.next(arglist__8685));
var more = cljs.core.rest(cljs.core.next(arglist__8685));
return G__8684__delegate(x, y, more)
};
G__8684.cljs$lang$arity$variadic = G__8684__delegate;
return G__8684
}();
min = function(x, y, var_args) {
var more = var_args;
switch(arguments.length) {
case 1:
return min__1.call(this, x);
case 2:
return min__2.call(this, x, y);
default:
return min__3.cljs$lang$arity$variadic(x, y, cljs.core.array_seq(arguments, 2))
}
throw"Invalid arity: " + arguments.length;
};
min.cljs$lang$maxFixedArity = 2;
min.cljs$lang$applyTo = min__3.cljs$lang$applyTo;
min.cljs$lang$arity$1 = min__1;
min.cljs$lang$arity$2 = min__2;
min.cljs$lang$arity$variadic = min__3.cljs$lang$arity$variadic;
return min
}();
cljs.core.fix = function fix(q) {
if(q >= 0) {
return Math.floor.call(null, q)
}else {
return Math.ceil.call(null, q)
}
};
cljs.core.int$ = function int$(x) {
return cljs.core.fix.call(null, x)
};
cljs.core.long$ = function long$(x) {
return cljs.core.fix.call(null, x)
};
cljs.core.mod = function mod(n, d) {
return n % d
};
cljs.core.quot = function quot(n, d) {
var rem__8687 = n % d;
return cljs.core.fix.call(null, (n - rem__8687) / d)
};
cljs.core.rem = function rem(n, d) {
var q__8689 = cljs.core.quot.call(null, n, d);
return n - d * q__8689
};
cljs.core.rand = function() {
var rand = null;
var rand__0 = function() {
return Math.random.call(null)
};
var rand__1 = function(n) {
return n * rand.call(null)
};
rand = function(n) {
switch(arguments.length) {
case 0:
return rand__0.call(this);
case 1:
return rand__1.call(this, n)
}
throw"Invalid arity: " + arguments.length;
};
rand.cljs$lang$arity$0 = rand__0;
rand.cljs$lang$arity$1 = rand__1;
return rand
}();
cljs.core.rand_int = function rand_int(n) {
return cljs.core.fix.call(null, cljs.core.rand.call(null, n))
};
cljs.core.bit_xor = function bit_xor(x, y) {
return x ^ y
};
cljs.core.bit_and = function bit_and(x, y) {
return x & y
};
cljs.core.bit_or = function bit_or(x, y) {
return x | y
};
cljs.core.bit_and_not = function bit_and_not(x, y) {
return x & ~y
};
cljs.core.bit_clear = function bit_clear(x, n) {
return x & ~(1 << n)
};
cljs.core.bit_flip = function bit_flip(x, n) {
return x ^ 1 << n
};
cljs.core.bit_not = function bit_not(x) {
return~x
};
cljs.core.bit_set = function bit_set(x, n) {
return x | 1 << n
};
cljs.core.bit_test = function bit_test(x, n) {
return(x & 1 << n) != 0
};
cljs.core.bit_shift_left = function bit_shift_left(x, n) {
return x << n
};
cljs.core.bit_shift_right = function bit_shift_right(x, n) {
return x >> n
};
cljs.core.bit_shift_right_zero_fill = function bit_shift_right_zero_fill(x, n) {
return x >>> n
};
cljs.core.bit_count = function bit_count(v) {
var v__8692 = v - (v >> 1 & 1431655765);
var v__8693 = (v__8692 & 858993459) + (v__8692 >> 2 & 858993459);
return(v__8693 + (v__8693 >> 4) & 252645135) * 16843009 >> 24
};
cljs.core._EQ__EQ_ = function() {
var _EQ__EQ_ = null;
var _EQ__EQ___1 = function(x) {
return true
};
var _EQ__EQ___2 = function(x, y) {
return cljs.core._equiv.call(null, x, y)
};
var _EQ__EQ___3 = function() {
var G__8694__delegate = function(x, y, more) {
while(true) {
if(cljs.core.truth_(_EQ__EQ_.call(null, x, y))) {
if(cljs.core.next.call(null, more)) {
var G__8695 = y;
var G__8696 = cljs.core.first.call(null, more);
var G__8697 = cljs.core.next.call(null, more);
x = G__8695;
y = G__8696;
more = G__8697;
continue
}else {
return _EQ__EQ_.call(null, y, cljs.core.first.call(null, more))
}
}else {
return false
}
break
}
};
var G__8694 = 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__8694__delegate.call(this, x, y, more)
};
G__8694.cljs$lang$maxFixedArity = 2;
G__8694.cljs$lang$applyTo = function(arglist__8698) {
var x = cljs.core.first(arglist__8698);
var y = cljs.core.first(cljs.core.next(arglist__8698));
var more = cljs.core.rest(cljs.core.next(arglist__8698));
return G__8694__delegate(x, y, more)
};
G__8694.cljs$lang$arity$variadic = G__8694__delegate;
return G__8694
}();
_EQ__EQ_ = function(x, y, var_args) {
var more = var_args;
switch(arguments.length) {
case 1:
return _EQ__EQ___1.call(this, x);
case 2:
return _EQ__EQ___2.call(this, x, y);
default:
return _EQ__EQ___3.cljs$lang$arity$variadic(x, y, cljs.core.array_seq(arguments, 2))
}
throw"Invalid arity: " + arguments.length;
};
_EQ__EQ_.cljs$lang$maxFixedArity = 2;
_EQ__EQ_.cljs$lang$applyTo = _EQ__EQ___3.cljs$lang$applyTo;
_EQ__EQ_.cljs$lang$arity$1 = _EQ__EQ___1;
_EQ__EQ_.cljs$lang$arity$2 = _EQ__EQ___2;
_EQ__EQ_.cljs$lang$arity$variadic = _EQ__EQ___3.cljs$lang$arity$variadic;
return _EQ__EQ_
}();
cljs.core.pos_QMARK_ = function pos_QMARK_(n) {
return n > 0
};
cljs.core.zero_QMARK_ = function zero_QMARK_(n) {
return n === 0
};
cljs.core.neg_QMARK_ = function neg_QMARK_(x) {
return x < 0
};
cljs.core.nthnext = function nthnext(coll, n) {
var n__8702 = n;
var xs__8703 = cljs.core.seq.call(null, coll);
while(true) {
if(cljs.core.truth_(function() {
var and__3822__auto____8704 = xs__8703;
if(and__3822__auto____8704) {
return n__8702 > 0
}else {
return and__3822__auto____8704
}
}())) {
var G__8705 = n__8702 - 1;
var G__8706 = cljs.core.next.call(null, xs__8703);
n__8702 = G__8705;
xs__8703 = G__8706;
continue
}else {
return xs__8703
}
break
}
};
cljs.core.str_STAR_ = function() {
var str_STAR_ = null;
var str_STAR___0 = function() {
return""
};
var str_STAR___1 = function(x) {
if(x == null) {
return""
}else {
if("\ufdd0'else") {
return x.toString()
}else {
return null
}
}
};
var str_STAR___2 = function() {
var G__8707__delegate = function(x, ys) {
return function(sb, more) {
while(true) {
if(cljs.core.truth_(more)) {
var G__8708 = sb.append(str_STAR_.call(null, cljs.core.first.call(null, more)));
var G__8709 = cljs.core.next.call(null, more);
sb = G__8708;
more = G__8709;
continue
}else {
return str_STAR_.call(null, sb)
}
break
}
}.call(null, new goog.string.StringBuffer(str_STAR_.call(null, x)), ys)
};
var G__8707 = 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__8707__delegate.call(this, x, ys)
};
G__8707.cljs$lang$maxFixedArity = 1;
G__8707.cljs$lang$applyTo = function(arglist__8710) {
var x = cljs.core.first(arglist__8710);
var ys = cljs.core.rest(arglist__8710);
return G__8707__delegate(x, ys)
};
G__8707.cljs$lang$arity$variadic = G__8707__delegate;
return G__8707
}();
str_STAR_ = function(x, var_args) {
var ys = var_args;
switch(arguments.length) {
case 0:
return str_STAR___0.call(this);
case 1:
return str_STAR___1.call(this, x);
default:
return str_STAR___2.cljs$lang$arity$variadic(x, cljs.core.array_seq(arguments, 1))
}
throw"Invalid arity: " + arguments.length;
};
str_STAR_.cljs$lang$maxFixedArity = 1;
str_STAR_.cljs$lang$applyTo = str_STAR___2.cljs$lang$applyTo;
str_STAR_.cljs$lang$arity$0 = str_STAR___0;
str_STAR_.cljs$lang$arity$1 = str_STAR___1;
str_STAR_.cljs$lang$arity$variadic = str_STAR___2.cljs$lang$arity$variadic;
return str_STAR_
}();
cljs.core.str = function() {
var str = null;
var str__0 = function() {
return""
};
var str__1 = function(x) {
if(cljs.core.symbol_QMARK_.call(null, x)) {
return x.substring(2, x.length)
}else {
if(cljs.core.keyword_QMARK_.call(null, x)) {
return cljs.core.str_STAR_.call(null, ":", x.substring(2, x.length))
}else {
if(x == null) {
return""
}else {
if("\ufdd0'else") {
return x.toString()
}else {
return null
}
}
}
}
};
var str__2 = function() {
var G__8711__delegate = function(x, ys) {
return function(sb, more) {
while(true) {
if(cljs.core.truth_(more)) {
var G__8712 = sb.append(str.call(null, cljs.core.first.call(null, more)));
var G__8713 = cljs.core.next.call(null, more);
sb = G__8712;
more = G__8713;
continue
}else {
return cljs.core.str_STAR_.call(null, sb)
}
break
}
}.call(null, new goog.string.StringBuffer(str.call(null, x)), ys)
};
var G__8711 = 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__8711__delegate.call(this, x, ys)
};
G__8711.cljs$lang$maxFixedArity = 1;
G__8711.cljs$lang$applyTo = function(arglist__8714) {
var x = cljs.core.first(arglist__8714);
var ys = cljs.core.rest(arglist__8714);
return G__8711__delegate(x, ys)
};
G__8711.cljs$lang$arity$variadic = G__8711__delegate;
return G__8711
}();
str = function(x, var_args) {
var ys = var_args;
switch(arguments.length) {
case 0:
return str__0.call(this);
case 1:
return str__1.call(this, x);
default:
return str__2.cljs$lang$arity$variadic(x, cljs.core.array_seq(arguments, 1))
}
throw"Invalid arity: " + arguments.length;
};
str.cljs$lang$maxFixedArity = 1;
str.cljs$lang$applyTo = str__2.cljs$lang$applyTo;
str.cljs$lang$arity$0 = str__0;
str.cljs$lang$arity$1 = str__1;
str.cljs$lang$arity$variadic = str__2.cljs$lang$arity$variadic;
return str
}();
cljs.core.subs = function() {
var subs = null;
var subs__2 = function(s, start) {
return s.substring(start)
};
var subs__3 = function(s, start, end) {
return s.substring(start, end)
};
subs = function(s, start, end) {
switch(arguments.length) {
case 2:
return subs__2.call(this, s, start);
case 3:
return subs__3.call(this, s, start, end)
}
throw"Invalid arity: " + arguments.length;
};
subs.cljs$lang$arity$2 = subs__2;
subs.cljs$lang$arity$3 = subs__3;
return subs
}();
cljs.core.format = function() {
var format__delegate = function(fmt, args) {
return cljs.core.apply.call(null, goog.string.format, fmt, args)
};
var format = function(fmt, var_args) {
var args = null;
if(goog.isDef(var_args)) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 1), 0)
}
return format__delegate.call(this, fmt, args)
};
format.cljs$lang$maxFixedArity = 1;
format.cljs$lang$applyTo = function(arglist__8715) {
var fmt = cljs.core.first(arglist__8715);
var args = cljs.core.rest(arglist__8715);
return format__delegate(fmt, args)
};
format.cljs$lang$arity$variadic = format__delegate;
return format
}();
cljs.core.symbol = function() {
var symbol = null;
var symbol__1 = function(name) {
if(cljs.core.symbol_QMARK_.call(null, name)) {
name
}else {
if(cljs.core.keyword_QMARK_.call(null, name)) {
cljs.core.str_STAR_.call(null, "\ufdd1", "'", cljs.core.subs.call(null, name, 2))
}else {
}
}
return cljs.core.str_STAR_.call(null, "\ufdd1", "'", name)
};
var symbol__2 = function(ns, name) {
return symbol.call(null, cljs.core.str_STAR_.call(null, ns, "/", name))
};
symbol = function(ns, name) {
switch(arguments.length) {
case 1:
return symbol__1.call(this, ns);
case 2:
return symbol__2.call(this, ns, name)
}
throw"Invalid arity: " + arguments.length;
};
symbol.cljs$lang$arity$1 = symbol__1;
symbol.cljs$lang$arity$2 = symbol__2;
return symbol
}();
cljs.core.keyword = function() {
var keyword = null;
var keyword__1 = function(name) {
if(cljs.core.keyword_QMARK_.call(null, name)) {
return name
}else {
if(cljs.core.symbol_QMARK_.call(null, name)) {
return cljs.core.str_STAR_.call(null, "\ufdd0", "'", cljs.core.subs.call(null, name, 2))
}else {
if("\ufdd0'else") {
return cljs.core.str_STAR_.call(null, "\ufdd0", "'", name)
}else {
return null
}
}
}
};
var keyword__2 = function(ns, name) {
return keyword.call(null, cljs.core.str_STAR_.call(null, ns, "/", name))
};
keyword = function(ns, name) {
switch(arguments.length) {
case 1:
return keyword__1.call(this, ns);
case 2:
return keyword__2.call(this, ns, name)
}
throw"Invalid arity: " + arguments.length;
};
keyword.cljs$lang$arity$1 = keyword__1;
keyword.cljs$lang$arity$2 = keyword__2;
return keyword
}();
cljs.core.equiv_sequential = function equiv_sequential(x, y) {
return cljs.core.boolean$.call(null, cljs.core.sequential_QMARK_.call(null, y) ? function() {
var xs__8718 = cljs.core.seq.call(null, x);
var ys__8719 = cljs.core.seq.call(null, y);
while(true) {
if(xs__8718 == null) {
return ys__8719 == null
}else {
if(ys__8719 == null) {
return false
}else {
if(cljs.core._EQ_.call(null, cljs.core.first.call(null, xs__8718), cljs.core.first.call(null, ys__8719))) {
var G__8720 = cljs.core.next.call(null, xs__8718);
var G__8721 = cljs.core.next.call(null, ys__8719);
xs__8718 = G__8720;
ys__8719 = G__8721;
continue
}else {
if("\ufdd0'else") {
return false
}else {
return null
}
}
}
}
break
}
}() : null)
};
cljs.core.hash_combine = function hash_combine(seed, hash) {
return seed ^ hash + 2654435769 + (seed << 6) + (seed >> 2)
};
cljs.core.hash_coll = function hash_coll(coll) {
return cljs.core.reduce.call(null, function(p1__8722_SHARP_, p2__8723_SHARP_) {
return cljs.core.hash_combine.call(null, p1__8722_SHARP_, cljs.core.hash.call(null, p2__8723_SHARP_, false))
}, cljs.core.hash.call(null, cljs.core.first.call(null, coll), false), cljs.core.next.call(null, coll))
};
cljs.core.hash_imap = function hash_imap(m) {
var h__8727 = 0;
var s__8728 = cljs.core.seq.call(null, m);
while(true) {
if(s__8728) {
var e__8729 = cljs.core.first.call(null, s__8728);
var G__8730 = (h__8727 + (cljs.core.hash.call(null, cljs.core.key.call(null, e__8729)) ^ cljs.core.hash.call(null, cljs.core.val.call(null, e__8729)))) % 4503599627370496;
var G__8731 = cljs.core.next.call(null, s__8728);
h__8727 = G__8730;
s__8728 = G__8731;
continue
}else {
return h__8727
}
break
}
};
cljs.core.hash_iset = function hash_iset(s) {
var h__8735 = 0;
var s__8736 = cljs.core.seq.call(null, s);
while(true) {
if(s__8736) {
var e__8737 = cljs.core.first.call(null, s__8736);
var G__8738 = (h__8735 + cljs.core.hash.call(null, e__8737)) % 4503599627370496;
var G__8739 = cljs.core.next.call(null, s__8736);
h__8735 = G__8738;
s__8736 = G__8739;
continue
}else {
return h__8735
}
break
}
};
cljs.core.extend_object_BANG_ = function extend_object_BANG_(obj, fn_map) {
var G__8760__8761 = cljs.core.seq.call(null, fn_map);
if(G__8760__8761) {
var G__8763__8765 = cljs.core.first.call(null, G__8760__8761);
var vec__8764__8766 = G__8763__8765;
var key_name__8767 = cljs.core.nth.call(null, vec__8764__8766, 0, null);
var f__8768 = cljs.core.nth.call(null, vec__8764__8766, 1, null);
var G__8760__8769 = G__8760__8761;
var G__8763__8770 = G__8763__8765;
var G__8760__8771 = G__8760__8769;
while(true) {
var vec__8772__8773 = G__8763__8770;
var key_name__8774 = cljs.core.nth.call(null, vec__8772__8773, 0, null);
var f__8775 = cljs.core.nth.call(null, vec__8772__8773, 1, null);
var G__8760__8776 = G__8760__8771;
var str_name__8777 = cljs.core.name.call(null, key_name__8774);
obj[str_name__8777] = f__8775;
var temp__3974__auto____8778 = cljs.core.next.call(null, G__8760__8776);
if(temp__3974__auto____8778) {
var G__8760__8779 = temp__3974__auto____8778;
var G__8780 = cljs.core.first.call(null, G__8760__8779);
var G__8781 = G__8760__8779;
G__8763__8770 = G__8780;
G__8760__8771 = G__8781;
continue
}else {
}
break
}
}else {
}
return obj
};
cljs.core.List = function(meta, first, rest, count, __hash) {
this.meta = meta;
this.first = first;
this.rest = rest;
this.count = count;
this.__hash = __hash;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 65413358
};
cljs.core.List.cljs$lang$type = true;
cljs.core.List.cljs$lang$ctorPrSeq = function(this__2333__auto__) {
return cljs.core.list.call(null, "cljs.core/List")
};
cljs.core.List.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var this__8782 = this;
var h__2216__auto____8783 = this__8782.__hash;
if(!(h__2216__auto____8783 == null)) {
return h__2216__auto____8783
}else {
var h__2216__auto____8784 = cljs.core.hash_coll.call(null, coll);
this__8782.__hash = h__2216__auto____8784;
return h__2216__auto____8784
}
};
cljs.core.List.prototype.cljs$core$INext$_next$arity$1 = function(coll) {
var this__8785 = this;
if(this__8785.count === 1) {
return null
}else {
return this__8785.rest
}
};
cljs.core.List.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var this__8786 = this;
return new cljs.core.List(this__8786.meta, o, coll, this__8786.count + 1, null)
};
cljs.core.List.prototype.toString = function() {
var this__8787 = this;
var this__8788 = this;
return cljs.core.pr_str.call(null, this__8788)
};
cljs.core.List.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var this__8789 = this;
return coll
};
cljs.core.List.prototype.cljs$core$ICounted$_count$arity$1 = function(coll) {
var this__8790 = this;
return this__8790.count
};
cljs.core.List.prototype.cljs$core$IStack$_peek$arity$1 = function(coll) {
var this__8791 = this;
return this__8791.first
};
cljs.core.List.prototype.cljs$core$IStack$_pop$arity$1 = function(coll) {
var this__8792 = this;
return coll.cljs$core$ISeq$_rest$arity$1(coll)
};
cljs.core.List.prototype.cljs$core$ISeq$_first$arity$1 = function(coll) {
var this__8793 = this;
return this__8793.first
};
cljs.core.List.prototype.cljs$core$ISeq$_rest$arity$1 = function(coll) {
var this__8794 = this;
if(this__8794.count === 1) {
return cljs.core.List.EMPTY
}else {
return this__8794.rest
}
};
cljs.core.List.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var this__8795 = this;
return cljs.core.equiv_sequential.call(null, coll, other)
};
cljs.core.List.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(coll, meta) {
var this__8796 = this;
return new cljs.core.List(meta, this__8796.first, this__8796.rest, this__8796.count, this__8796.__hash)
};
cljs.core.List.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var this__8797 = this;
return this__8797.meta
};
cljs.core.List.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var this__8798 = this;
return cljs.core.List.EMPTY
};
cljs.core.List;
cljs.core.EmptyList = function(meta) {
this.meta = meta;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 65413326
};
cljs.core.EmptyList.cljs$lang$type = true;
cljs.core.EmptyList.cljs$lang$ctorPrSeq = function(this__2333__auto__) {
return cljs.core.list.call(null, "cljs.core/EmptyList")
};
cljs.core.EmptyList.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var this__8799 = this;
return 0
};
cljs.core.EmptyList.prototype.cljs$core$INext$_next$arity$1 = function(coll) {
var this__8800 = this;
return null
};
cljs.core.EmptyList.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var this__8801 = this;
return new cljs.core.List(this__8801.meta, o, null, 1, null)
};
cljs.core.EmptyList.prototype.toString = function() {
var this__8802 = this;
var this__8803 = this;
return cljs.core.pr_str.call(null, this__8803)
};
cljs.core.EmptyList.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var this__8804 = this;
return null
};
cljs.core.EmptyList.prototype.cljs$core$ICounted$_count$arity$1 = function(coll) {
var this__8805 = this;
return 0
};
cljs.core.EmptyList.prototype.cljs$core$IStack$_peek$arity$1 = function(coll) {
var this__8806 = this;
return null
};
cljs.core.EmptyList.prototype.cljs$core$IStack$_pop$arity$1 = function(coll) {
var this__8807 = this;
throw new Error("Can't pop empty list");
};
cljs.core.EmptyList.prototype.cljs$core$ISeq$_first$arity$1 = function(coll) {
var this__8808 = this;
return null
};
cljs.core.EmptyList.prototype.cljs$core$ISeq$_rest$arity$1 = function(coll) {
var this__8809 = this;
return cljs.core.List.EMPTY
};
cljs.core.EmptyList.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var this__8810 = this;
return cljs.core.equiv_sequential.call(null, coll, other)
};
cljs.core.EmptyList.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(coll, meta) {
var this__8811 = this;
return new cljs.core.EmptyList(meta)
};
cljs.core.EmptyList.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var this__8812 = this;
return this__8812.meta
};
cljs.core.EmptyList.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var this__8813 = this;
return coll
};
cljs.core.EmptyList;
cljs.core.List.EMPTY = new cljs.core.EmptyList(null);
cljs.core.reversible_QMARK_ = function reversible_QMARK_(coll) {
var G__8817__8818 = coll;
if(G__8817__8818) {
if(function() {
var or__3824__auto____8819 = G__8817__8818.cljs$lang$protocol_mask$partition0$ & 134217728;
if(or__3824__auto____8819) {
return or__3824__auto____8819
}else {
return G__8817__8818.cljs$core$IReversible$
}
}()) {
return true
}else {
if(!G__8817__8818.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IReversible, G__8817__8818)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IReversible, G__8817__8818)
}
};
cljs.core.rseq = function rseq(coll) {
return cljs.core._rseq.call(null, coll)
};
cljs.core.reverse = function reverse(coll) {
if(cljs.core.reversible_QMARK_.call(null, coll)) {
return cljs.core.rseq.call(null, coll)
}else {
return cljs.core.reduce.call(null, cljs.core.conj, cljs.core.List.EMPTY, coll)
}
};
cljs.core.list = function() {
var list = null;
var list__0 = function() {
return cljs.core.List.EMPTY
};
var list__1 = function(x) {
return cljs.core.conj.call(null, cljs.core.List.EMPTY, x)
};
var list__2 = function(x, y) {
return cljs.core.conj.call(null, list.call(null, y), x)
};
var list__3 = function(x, y, z) {
return cljs.core.conj.call(null, list.call(null, y, z), x)
};
var list__4 = function() {
var G__8820__delegate = function(x, y, z, items) {
return cljs.core.conj.call(null, cljs.core.conj.call(null, cljs.core.conj.call(null, cljs.core.reduce.call(null, cljs.core.conj, cljs.core.List.EMPTY, cljs.core.reverse.call(null, items)), z), y), x)
};
var G__8820 = function(x, y, z, var_args) {
var items = null;
if(goog.isDef(var_args)) {
items = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3), 0)
}
return G__8820__delegate.call(this, x, y, z, items)
};
G__8820.cljs$lang$maxFixedArity = 3;
G__8820.cljs$lang$applyTo = function(arglist__8821) {
var x = cljs.core.first(arglist__8821);
var y = cljs.core.first(cljs.core.next(arglist__8821));
var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__8821)));
var items = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__8821)));
return G__8820__delegate(x, y, z, items)
};
G__8820.cljs$lang$arity$variadic = G__8820__delegate;
return G__8820
}();
list = function(x, y, z, var_args) {
var items = var_args;
switch(arguments.length) {
case 0:
return list__0.call(this);
case 1:
return list__1.call(this, x);
case 2:
return list__2.call(this, x, y);
case 3:
return list__3.call(this, x, y, z);
default:
return list__4.cljs$lang$arity$variadic(x, y, z, cljs.core.array_seq(arguments, 3))
}
throw"Invalid arity: " + arguments.length;
};
list.cljs$lang$maxFixedArity = 3;
list.cljs$lang$applyTo = list__4.cljs$lang$applyTo;
list.cljs$lang$arity$0 = list__0;
list.cljs$lang$arity$1 = list__1;
list.cljs$lang$arity$2 = list__2;
list.cljs$lang$arity$3 = list__3;
list.cljs$lang$arity$variadic = list__4.cljs$lang$arity$variadic;
return list
}();
cljs.core.Cons = function(meta, first, rest, __hash) {
this.meta = meta;
this.first = first;
this.rest = rest;
this.__hash = __hash;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 65405164
};
cljs.core.Cons.cljs$lang$type = true;
cljs.core.Cons.cljs$lang$ctorPrSeq = function(this__2333__auto__) {
return cljs.core.list.call(null, "cljs.core/Cons")
};
cljs.core.Cons.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var this__8822 = this;
var h__2216__auto____8823 = this__8822.__hash;
if(!(h__2216__auto____8823 == null)) {
return h__2216__auto____8823
}else {
var h__2216__auto____8824 = cljs.core.hash_coll.call(null, coll);
this__8822.__hash = h__2216__auto____8824;
return h__2216__auto____8824
}
};
cljs.core.Cons.prototype.cljs$core$INext$_next$arity$1 = function(coll) {
var this__8825 = this;
if(this__8825.rest == null) {
return null
}else {
return cljs.core._seq.call(null, this__8825.rest)
}
};
cljs.core.Cons.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var this__8826 = this;
return new cljs.core.Cons(null, o, coll, this__8826.__hash)
};
cljs.core.Cons.prototype.toString = function() {
var this__8827 = this;
var this__8828 = this;
return cljs.core.pr_str.call(null, this__8828)
};
cljs.core.Cons.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var this__8829 = this;
return coll
};
cljs.core.Cons.prototype.cljs$core$ISeq$_first$arity$1 = function(coll) {
var this__8830 = this;
return this__8830.first
};
cljs.core.Cons.prototype.cljs$core$ISeq$_rest$arity$1 = function(coll) {
var this__8831 = this;
if(this__8831.rest == null) {
return cljs.core.List.EMPTY
}else {
return this__8831.rest
}
};
cljs.core.Cons.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var this__8832 = this;
return cljs.core.equiv_sequential.call(null, coll, other)
};
cljs.core.Cons.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(coll, meta) {
var this__8833 = this;
return new cljs.core.Cons(meta, this__8833.first, this__8833.rest, this__8833.__hash)
};
cljs.core.Cons.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var this__8834 = this;
return this__8834.meta
};
cljs.core.Cons.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var this__8835 = this;
return cljs.core.with_meta.call(null, cljs.core.List.EMPTY, this__8835.meta)
};
cljs.core.Cons;
cljs.core.cons = function cons(x, coll) {
if(function() {
var or__3824__auto____8840 = coll == null;
if(or__3824__auto____8840) {
return or__3824__auto____8840
}else {
var G__8841__8842 = coll;
if(G__8841__8842) {
if(function() {
var or__3824__auto____8843 = G__8841__8842.cljs$lang$protocol_mask$partition0$ & 64;
if(or__3824__auto____8843) {
return or__3824__auto____8843
}else {
return G__8841__8842.cljs$core$ISeq$
}
}()) {
return true
}else {
if(!G__8841__8842.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.ISeq, G__8841__8842)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.ISeq, G__8841__8842)
}
}
}()) {
return new cljs.core.Cons(null, x, coll, null)
}else {
return new cljs.core.Cons(null, x, cljs.core.seq.call(null, coll), null)
}
};
cljs.core.list_QMARK_ = function list_QMARK_(x) {
var G__8847__8848 = x;
if(G__8847__8848) {
if(function() {
var or__3824__auto____8849 = G__8847__8848.cljs$lang$protocol_mask$partition0$ & 33554432;
if(or__3824__auto____8849) {
return or__3824__auto____8849
}else {
return G__8847__8848.cljs$core$IList$
}
}()) {
return true
}else {
if(!G__8847__8848.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IList, G__8847__8848)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IList, G__8847__8848)
}
};
cljs.core.IReduce["string"] = true;
cljs.core._reduce["string"] = function() {
var G__8850 = null;
var G__8850__2 = function(string, f) {
return cljs.core.ci_reduce.call(null, string, f)
};
var G__8850__3 = function(string, f, start) {
return cljs.core.ci_reduce.call(null, string, f, start)
};
G__8850 = function(string, f, start) {
switch(arguments.length) {
case 2:
return G__8850__2.call(this, string, f);
case 3:
return G__8850__3.call(this, string, f, start)
}
throw"Invalid arity: " + arguments.length;
};
return G__8850
}();
cljs.core.ILookup["string"] = true;
cljs.core._lookup["string"] = function() {
var G__8851 = null;
var G__8851__2 = function(string, k) {
return cljs.core._nth.call(null, string, k)
};
var G__8851__3 = function(string, k, not_found) {
return cljs.core._nth.call(null, string, k, not_found)
};
G__8851 = function(string, k, not_found) {
switch(arguments.length) {
case 2:
return G__8851__2.call(this, string, k);
case 3:
return G__8851__3.call(this, string, k, not_found)
}
throw"Invalid arity: " + arguments.length;
};
return G__8851
}();
cljs.core.IIndexed["string"] = true;
cljs.core._nth["string"] = function() {
var G__8852 = null;
var G__8852__2 = function(string, n) {
if(n < cljs.core._count.call(null, string)) {
return string.charAt(n)
}else {
return null
}
};
var G__8852__3 = function(string, n, not_found) {
if(n < cljs.core._count.call(null, string)) {
return string.charAt(n)
}else {
return not_found
}
};
G__8852 = function(string, n, not_found) {
switch(arguments.length) {
case 2:
return G__8852__2.call(this, string, n);
case 3:
return G__8852__3.call(this, string, n, not_found)
}
throw"Invalid arity: " + arguments.length;
};
return G__8852
}();
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(o)
};
cljs.core.Keyword = function(k) {
this.k = k;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 1
};
cljs.core.Keyword.cljs$lang$type = true;
cljs.core.Keyword.cljs$lang$ctorPrSeq = function(this__2333__auto__) {
return cljs.core.list.call(null, "cljs.core/Keyword")
};
cljs.core.Keyword.prototype.call = function() {
var G__8864 = null;
var G__8864__2 = function(this_sym8855, coll) {
var this__8857 = this;
var this_sym8855__8858 = this;
var ___8859 = this_sym8855__8858;
if(coll == null) {
return null
}else {
var strobj__8860 = coll.strobj;
if(strobj__8860 == null) {
return cljs.core._lookup.call(null, coll, this__8857.k, null)
}else {
return strobj__8860[this__8857.k]
}
}
};
var G__8864__3 = function(this_sym8856, coll, not_found) {
var this__8857 = this;
var this_sym8856__8861 = this;
var ___8862 = this_sym8856__8861;
if(coll == null) {
return not_found
}else {
return cljs.core._lookup.call(null, coll, this__8857.k, not_found)
}
};
G__8864 = function(this_sym8856, coll, not_found) {
switch(arguments.length) {
case 2:
return G__8864__2.call(this, this_sym8856, coll);
case 3:
return G__8864__3.call(this, this_sym8856, coll, not_found)
}
throw"Invalid arity: " + arguments.length;
};
return G__8864
}();
cljs.core.Keyword.prototype.apply = function(this_sym8853, args8854) {
var this__8863 = this;
return this_sym8853.call.apply(this_sym8853, [this_sym8853].concat(args8854.slice()))
};
cljs.core.Keyword;
String.prototype.cljs$core$IFn$ = true;
String.prototype.call = function() {
var G__8873 = null;
var G__8873__2 = function(this_sym8867, coll) {
var this_sym8867__8869 = this;
var this__8870 = this_sym8867__8869;
return cljs.core._lookup.call(null, coll, this__8870.toString(), null)
};
var G__8873__3 = function(this_sym8868, coll, not_found) {
var this_sym8868__8871 = this;
var this__8872 = this_sym8868__8871;
return cljs.core._lookup.call(null, coll, this__8872.toString(), not_found)
};
G__8873 = function(this_sym8868, coll, not_found) {
switch(arguments.length) {
case 2:
return G__8873__2.call(this, this_sym8868, coll);
case 3:
return G__8873__3.call(this, this_sym8868, coll, not_found)
}
throw"Invalid arity: " + arguments.length;
};
return G__8873
}();
String.prototype.apply = function(this_sym8865, args8866) {
return this_sym8865.call.apply(this_sym8865, [this_sym8865].concat(args8866.slice()))
};
String.prototype.apply = function(s, args) {
if(cljs.core.count.call(null, args) < 2) {
return cljs.core._lookup.call(null, args[0], s, null)
}else {
return cljs.core._lookup.call(null, args[0], s, args[1])
}
};
cljs.core.lazy_seq_value = function lazy_seq_value(lazy_seq) {
var x__8875 = lazy_seq.x;
if(lazy_seq.realized) {
return x__8875
}else {
lazy_seq.x = x__8875.call(null);
lazy_seq.realized = true;
return lazy_seq.x
}
};
cljs.core.LazySeq = function(meta, realized, x, __hash) {
this.meta = meta;
this.realized = realized;
this.x = x;
this.__hash = __hash;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 31850700
};
cljs.core.LazySeq.cljs$lang$type = true;
cljs.core.LazySeq.cljs$lang$ctorPrSeq = function(this__2333__auto__) {
return cljs.core.list.call(null, "cljs.core/LazySeq")
};
cljs.core.LazySeq.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var this__8876 = this;
var h__2216__auto____8877 = this__8876.__hash;
if(!(h__2216__auto____8877 == null)) {
return h__2216__auto____8877
}else {
var h__2216__auto____8878 = cljs.core.hash_coll.call(null, coll);
this__8876.__hash = h__2216__auto____8878;
return h__2216__auto____8878
}
};
cljs.core.LazySeq.prototype.cljs$core$INext$_next$arity$1 = function(coll) {
var this__8879 = this;
return cljs.core._seq.call(null, coll.cljs$core$ISeq$_rest$arity$1(coll))
};
cljs.core.LazySeq.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var this__8880 = this;
return cljs.core.cons.call(null, o, coll)
};
cljs.core.LazySeq.prototype.toString = function() {
var this__8881 = this;
var this__8882 = this;
return cljs.core.pr_str.call(null, this__8882)
};
cljs.core.LazySeq.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var this__8883 = this;
return cljs.core.seq.call(null, cljs.core.lazy_seq_value.call(null, coll))
};
cljs.core.LazySeq.prototype.cljs$core$ISeq$_first$arity$1 = function(coll) {
var this__8884 = this;
return cljs.core.first.call(null, cljs.core.lazy_seq_value.call(null, coll))
};
cljs.core.LazySeq.prototype.cljs$core$ISeq$_rest$arity$1 = function(coll) {
var this__8885 = this;
return cljs.core.rest.call(null, cljs.core.lazy_seq_value.call(null, coll))
};
cljs.core.LazySeq.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var this__8886 = this;
return cljs.core.equiv_sequential.call(null, coll, other)
};
cljs.core.LazySeq.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(coll, meta) {
var this__8887 = this;
return new cljs.core.LazySeq(meta, this__8887.realized, this__8887.x, this__8887.__hash)
};
cljs.core.LazySeq.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var this__8888 = this;
return this__8888.meta
};
cljs.core.LazySeq.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var this__8889 = this;
return cljs.core.with_meta.call(null, cljs.core.List.EMPTY, this__8889.meta)
};
cljs.core.LazySeq;
cljs.core.ChunkBuffer = function(buf, end) {
this.buf = buf;
this.end = end;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 2
};
cljs.core.ChunkBuffer.cljs$lang$type = true;
cljs.core.ChunkBuffer.cljs$lang$ctorPrSeq = function(this__2333__auto__) {
return cljs.core.list.call(null, "cljs.core/ChunkBuffer")
};
cljs.core.ChunkBuffer.prototype.cljs$core$ICounted$_count$arity$1 = function(_) {
var this__8890 = this;
return this__8890.end
};
cljs.core.ChunkBuffer.prototype.add = function(o) {
var this__8891 = this;
var ___8892 = this;
this__8891.buf[this__8891.end] = o;
return this__8891.end = this__8891.end + 1
};
cljs.core.ChunkBuffer.prototype.chunk = function(o) {
var this__8893 = this;
var ___8894 = this;
var ret__8895 = new cljs.core.ArrayChunk(this__8893.buf, 0, this__8893.end);
this__8893.buf = null;
return ret__8895
};
cljs.core.ChunkBuffer;
cljs.core.chunk_buffer = function chunk_buffer(capacity) {
return new cljs.core.ChunkBuffer(cljs.core.make_array.call(null, capacity), 0)
};
cljs.core.ArrayChunk = function(arr, off, end) {
this.arr = arr;
this.off = off;
this.end = end;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 524306
};
cljs.core.ArrayChunk.cljs$lang$type = true;
cljs.core.ArrayChunk.cljs$lang$ctorPrSeq = function(this__2333__auto__) {
return cljs.core.list.call(null, "cljs.core/ArrayChunk")
};
cljs.core.ArrayChunk.prototype.cljs$core$IReduce$_reduce$arity$2 = function(coll, f) {
var this__8896 = this;
return cljs.core.ci_reduce.call(null, coll, f, this__8896.arr[this__8896.off], this__8896.off + 1)
};
cljs.core.ArrayChunk.prototype.cljs$core$IReduce$_reduce$arity$3 = function(coll, f, start) {
var this__8897 = this;
return cljs.core.ci_reduce.call(null, coll, f, start, this__8897.off)
};
cljs.core.ArrayChunk.prototype.cljs$core$IChunk$ = true;
cljs.core.ArrayChunk.prototype.cljs$core$IChunk$_drop_first$arity$1 = function(coll) {
var this__8898 = this;
if(this__8898.off === this__8898.end) {
throw new Error("-drop-first of empty chunk");
}else {
return new cljs.core.ArrayChunk(this__8898.arr, this__8898.off + 1, this__8898.end)
}
};
cljs.core.ArrayChunk.prototype.cljs$core$IIndexed$_nth$arity$2 = function(coll, i) {
var this__8899 = this;
return this__8899.arr[this__8899.off + i]
};
cljs.core.ArrayChunk.prototype.cljs$core$IIndexed$_nth$arity$3 = function(coll, i, not_found) {
var this__8900 = this;
if(function() {
var and__3822__auto____8901 = i >= 0;
if(and__3822__auto____8901) {
return i < this__8900.end - this__8900.off
}else {
return and__3822__auto____8901
}
}()) {
return this__8900.arr[this__8900.off + i]
}else {
return not_found
}
};
cljs.core.ArrayChunk.prototype.cljs$core$ICounted$_count$arity$1 = function(_) {
var this__8902 = this;
return this__8902.end - this__8902.off
};
cljs.core.ArrayChunk;
cljs.core.array_chunk = function() {
var array_chunk = null;
var array_chunk__1 = function(arr) {
return array_chunk.call(null, arr, 0, arr.length)
};
var array_chunk__2 = function(arr, off) {
return array_chunk.call(null, arr, off, arr.length)
};
var array_chunk__3 = function(arr, off, end) {
return new cljs.core.ArrayChunk(arr, off, end)
};
array_chunk = function(arr, off, end) {
switch(arguments.length) {
case 1:
return array_chunk__1.call(this, arr);
case 2:
return array_chunk__2.call(this, arr, off);
case 3:
return array_chunk__3.call(this, arr, off, end)
}
throw"Invalid arity: " + arguments.length;
};
array_chunk.cljs$lang$arity$1 = array_chunk__1;
array_chunk.cljs$lang$arity$2 = array_chunk__2;
array_chunk.cljs$lang$arity$3 = array_chunk__3;
return array_chunk
}();
cljs.core.ChunkedCons = function(chunk, more, meta) {
this.chunk = chunk;
this.more = more;
this.meta = meta;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 27656296
};
cljs.core.ChunkedCons.cljs$lang$type = true;
cljs.core.ChunkedCons.cljs$lang$ctorPrSeq = function(this__2333__auto__) {
return cljs.core.list.call(null, "cljs.core/ChunkedCons")
};
cljs.core.ChunkedCons.prototype.cljs$core$ICollection$_conj$arity$2 = function(this$, o) {
var this__8903 = this;
return cljs.core.cons.call(null, o, this$)
};
cljs.core.ChunkedCons.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var this__8904 = this;
return coll
};
cljs.core.ChunkedCons.prototype.cljs$core$ISeq$_first$arity$1 = function(coll) {
var this__8905 = this;
return cljs.core._nth.call(null, this__8905.chunk, 0)
};
cljs.core.ChunkedCons.prototype.cljs$core$ISeq$_rest$arity$1 = function(coll) {
var this__8906 = this;
if(cljs.core._count.call(null, this__8906.chunk) > 1) {
return new cljs.core.ChunkedCons(cljs.core._drop_first.call(null, this__8906.chunk), this__8906.more, this__8906.meta)
}else {
if(this__8906.more == null) {
return cljs.core.List.EMPTY
}else {
return this__8906.more
}
}
};
cljs.core.ChunkedCons.prototype.cljs$core$IChunkedNext$ = true;
cljs.core.ChunkedCons.prototype.cljs$core$IChunkedNext$_chunked_next$arity$1 = function(coll) {
var this__8907 = this;
if(this__8907.more == null) {
return null
}else {
return this__8907.more
}
};
cljs.core.ChunkedCons.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var this__8908 = this;
return cljs.core.equiv_sequential.call(null, coll, other)
};
cljs.core.ChunkedCons.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(coll, m) {
var this__8909 = this;
return new cljs.core.ChunkedCons(this__8909.chunk, this__8909.more, m)
};
cljs.core.ChunkedCons.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var this__8910 = this;
return this__8910.meta
};
cljs.core.ChunkedCons.prototype.cljs$core$IChunkedSeq$ = true;
cljs.core.ChunkedCons.prototype.cljs$core$IChunkedSeq$_chunked_first$arity$1 = function(coll) {
var this__8911 = this;
return this__8911.chunk
};
cljs.core.ChunkedCons.prototype.cljs$core$IChunkedSeq$_chunked_rest$arity$1 = function(coll) {
var this__8912 = this;
if(this__8912.more == null) {
return cljs.core.List.EMPTY
}else {
return this__8912.more
}
};
cljs.core.ChunkedCons;
cljs.core.chunk_cons = function chunk_cons(chunk, rest) {
if(cljs.core._count.call(null, chunk) === 0) {
return rest
}else {
return new cljs.core.ChunkedCons(chunk, rest, null)
}
};
cljs.core.chunk_append = function chunk_append(b, x) {
return b.add(x)
};
cljs.core.chunk = function chunk(b) {
return b.chunk()
};
cljs.core.chunk_first = function chunk_first(s) {
return cljs.core._chunked_first.call(null, s)
};
cljs.core.chunk_rest = function chunk_rest(s) {
return cljs.core._chunked_rest.call(null, s)
};
cljs.core.chunk_next = function chunk_next(s) {
if(function() {
var G__8916__8917 = s;
if(G__8916__8917) {
if(cljs.core.truth_(function() {
var or__3824__auto____8918 = null;
if(cljs.core.truth_(or__3824__auto____8918)) {
return or__3824__auto____8918
}else {
return G__8916__8917.cljs$core$IChunkedNext$
}
}())) {
return true
}else {
if(!G__8916__8917.cljs$lang$protocol_mask$partition$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IChunkedNext, G__8916__8917)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IChunkedNext, G__8916__8917)
}
}()) {
return cljs.core._chunked_next.call(null, s)
}else {
return cljs.core.seq.call(null, cljs.core._chunked_rest.call(null, s))
}
};
cljs.core.to_array = function to_array(s) {
var ary__8921 = [];
var s__8922 = s;
while(true) {
if(cljs.core.seq.call(null, s__8922)) {
ary__8921.push(cljs.core.first.call(null, s__8922));
var G__8923 = cljs.core.next.call(null, s__8922);
s__8922 = G__8923;
continue
}else {
return ary__8921
}
break
}
};
cljs.core.to_array_2d = function to_array_2d(coll) {
var ret__8927 = cljs.core.make_array.call(null, cljs.core.count.call(null, coll));
var i__8928 = 0;
var xs__8929 = cljs.core.seq.call(null, coll);
while(true) {
if(xs__8929) {
ret__8927[i__8928] = cljs.core.to_array.call(null, cljs.core.first.call(null, xs__8929));
var G__8930 = i__8928 + 1;
var G__8931 = cljs.core.next.call(null, xs__8929);
i__8928 = G__8930;
xs__8929 = G__8931;
continue
}else {
}
break
}
return ret__8927
};
cljs.core.long_array = function() {
var long_array = null;
var long_array__1 = function(size_or_seq) {
if(cljs.core.number_QMARK_.call(null, size_or_seq)) {
return long_array.call(null, size_or_seq, null)
}else {
if(cljs.core.seq_QMARK_.call(null, size_or_seq)) {
return cljs.core.into_array.call(null, size_or_seq)
}else {
if("\ufdd0'else") {
throw new Error("long-array called with something other than size or ISeq");
}else {
return null
}
}
}
};
var long_array__2 = function(size, init_val_or_seq) {
var a__8939 = cljs.core.make_array.call(null, size);
if(cljs.core.seq_QMARK_.call(null, init_val_or_seq)) {
var s__8940 = cljs.core.seq.call(null, init_val_or_seq);
var i__8941 = 0;
var s__8942 = s__8940;
while(true) {
if(cljs.core.truth_(function() {
var and__3822__auto____8943 = s__8942;
if(and__3822__auto____8943) {
return i__8941 < size
}else {
return and__3822__auto____8943
}
}())) {
a__8939[i__8941] = cljs.core.first.call(null, s__8942);
var G__8946 = i__8941 + 1;
var G__8947 = cljs.core.next.call(null, s__8942);
i__8941 = G__8946;
s__8942 = G__8947;
continue
}else {
return a__8939
}
break
}
}else {
var n__2551__auto____8944 = size;
var i__8945 = 0;
while(true) {
if(i__8945 < n__2551__auto____8944) {
a__8939[i__8945] = init_val_or_seq;
var G__8948 = i__8945 + 1;
i__8945 = G__8948;
continue
}else {
}
break
}
return a__8939
}
};
long_array = function(size, init_val_or_seq) {
switch(arguments.length) {
case 1:
return long_array__1.call(this, size);
case 2:
return long_array__2.call(this, size, init_val_or_seq)
}
throw"Invalid arity: " + arguments.length;
};
long_array.cljs$lang$arity$1 = long_array__1;
long_array.cljs$lang$arity$2 = long_array__2;
return long_array
}();
cljs.core.double_array = function() {
var double_array = null;
var double_array__1 = function(size_or_seq) {
if(cljs.core.number_QMARK_.call(null, size_or_seq)) {
return double_array.call(null, size_or_seq, null)
}else {
if(cljs.core.seq_QMARK_.call(null, size_or_seq)) {
return cljs.core.into_array.call(null, size_or_seq)
}else {
if("\ufdd0'else") {
throw new Error("double-array called with something other than size or ISeq");
}else {
return null
}
}
}
};
var double_array__2 = function(size, init_val_or_seq) {
var a__8956 = cljs.core.make_array.call(null, size);
if(cljs.core.seq_QMARK_.call(null, init_val_or_seq)) {
var s__8957 = cljs.core.seq.call(null, init_val_or_seq);
var i__8958 = 0;
var s__8959 = s__8957;
while(true) {
if(cljs.core.truth_(function() {
var and__3822__auto____8960 = s__8959;
if(and__3822__auto____8960) {
return i__8958 < size
}else {
return and__3822__auto____8960
}
}())) {
a__8956[i__8958] = cljs.core.first.call(null, s__8959);
var G__8963 = i__8958 + 1;
var G__8964 = cljs.core.next.call(null, s__8959);
i__8958 = G__8963;
s__8959 = G__8964;
continue
}else {
return a__8956
}
break
}
}else {
var n__2551__auto____8961 = size;
var i__8962 = 0;
while(true) {
if(i__8962 < n__2551__auto____8961) {
a__8956[i__8962] = init_val_or_seq;
var G__8965 = i__8962 + 1;
i__8962 = G__8965;
continue
}else {
}
break
}
return a__8956
}
};
double_array = function(size, init_val_or_seq) {
switch(arguments.length) {
case 1:
return double_array__1.call(this, size);
case 2:
return double_array__2.call(this, size, init_val_or_seq)
}
throw"Invalid arity: " + arguments.length;
};
double_array.cljs$lang$arity$1 = double_array__1;
double_array.cljs$lang$arity$2 = double_array__2;
return double_array
}();
cljs.core.object_array = function() {
var object_array = null;
var object_array__1 = function(size_or_seq) {
if(cljs.core.number_QMARK_.call(null, size_or_seq)) {
return object_array.call(null, size_or_seq, null)
}else {
if(cljs.core.seq_QMARK_.call(null, size_or_seq)) {
return cljs.core.into_array.call(null, size_or_seq)
}else {
if("\ufdd0'else") {
throw new Error("object-array called with something other than size or ISeq");
}else {
return null
}
}
}
};
var object_array__2 = function(size, init_val_or_seq) {
var a__8973 = cljs.core.make_array.call(null, size);
if(cljs.core.seq_QMARK_.call(null, init_val_or_seq)) {
var s__8974 = cljs.core.seq.call(null, init_val_or_seq);
var i__8975 = 0;
var s__8976 = s__8974;
while(true) {
if(cljs.core.truth_(function() {
var and__3822__auto____8977 = s__8976;
if(and__3822__auto____8977) {
return i__8975 < size
}else {
return and__3822__auto____8977
}
}())) {
a__8973[i__8975] = cljs.core.first.call(null, s__8976);
var G__8980 = i__8975 + 1;
var G__8981 = cljs.core.next.call(null, s__8976);
i__8975 = G__8980;
s__8976 = G__8981;
continue
}else {
return a__8973
}
break
}
}else {
var n__2551__auto____8978 = size;
var i__8979 = 0;
while(true) {
if(i__8979 < n__2551__auto____8978) {
a__8973[i__8979] = init_val_or_seq;
var G__8982 = i__8979 + 1;
i__8979 = G__8982;
continue
}else {
}
break
}
return a__8973
}
};
object_array = function(size, init_val_or_seq) {
switch(arguments.length) {
case 1:
return object_array__1.call(this, size);
case 2:
return object_array__2.call(this, size, init_val_or_seq)
}
throw"Invalid arity: " + arguments.length;
};
object_array.cljs$lang$arity$1 = object_array__1;
object_array.cljs$lang$arity$2 = object_array__2;
return object_array
}();
cljs.core.bounded_count = function bounded_count(s, n) {
if(cljs.core.counted_QMARK_.call(null, s)) {
return cljs.core.count.call(null, s)
}else {
var s__8987 = s;
var i__8988 = n;
var sum__8989 = 0;
while(true) {
if(cljs.core.truth_(function() {
var and__3822__auto____8990 = i__8988 > 0;
if(and__3822__auto____8990) {
return cljs.core.seq.call(null, s__8987)
}else {
return and__3822__auto____8990
}
}())) {
var G__8991 = cljs.core.next.call(null, s__8987);
var G__8992 = i__8988 - 1;
var G__8993 = sum__8989 + 1;
s__8987 = G__8991;
i__8988 = G__8992;
sum__8989 = G__8993;
continue
}else {
return sum__8989
}
break
}
}
};
cljs.core.spread = function spread(arglist) {
if(arglist == null) {
return null
}else {
if(cljs.core.next.call(null, arglist) == null) {
return cljs.core.seq.call(null, cljs.core.first.call(null, arglist))
}else {
if("\ufdd0'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
}
}
}
};
cljs.core.concat = function() {
var concat = null;
var concat__0 = function() {
return new cljs.core.LazySeq(null, false, function() {
return null
}, null)
};
var concat__1 = function(x) {
return new cljs.core.LazySeq(null, false, function() {
return x
}, null)
};
var concat__2 = function(x, y) {
return new cljs.core.LazySeq(null, false, function() {
var s__8998 = cljs.core.seq.call(null, x);
if(s__8998) {
if(cljs.core.chunked_seq_QMARK_.call(null, s__8998)) {
return cljs.core.chunk_cons.call(null, cljs.core.chunk_first.call(null, s__8998), concat.call(null, cljs.core.chunk_rest.call(null, s__8998), y))
}else {
return cljs.core.cons.call(null, cljs.core.first.call(null, s__8998), concat.call(null, cljs.core.rest.call(null, s__8998), y))
}
}else {
return y
}
}, null)
};
var concat__3 = function() {
var G__9002__delegate = function(x, y, zs) {
var cat__9001 = function cat(xys, zs) {
return new cljs.core.LazySeq(null, false, function() {
var xys__9000 = cljs.core.seq.call(null, xys);
if(xys__9000) {
if(cljs.core.chunked_seq_QMARK_.call(null, xys__9000)) {
return cljs.core.chunk_cons.call(null, cljs.core.chunk_first.call(null, xys__9000), cat.call(null, cljs.core.chunk_rest.call(null, xys__9000), zs))
}else {
return cljs.core.cons.call(null, cljs.core.first.call(null, xys__9000), cat.call(null, cljs.core.rest.call(null, xys__9000), 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
}
}
}, null)
};
return cat__9001.call(null, concat.call(null, x, y), zs)
};
var G__9002 = 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__9002__delegate.call(this, x, y, zs)
};
G__9002.cljs$lang$maxFixedArity = 2;
G__9002.cljs$lang$applyTo = function(arglist__9003) {
var x = cljs.core.first(arglist__9003);
var y = cljs.core.first(cljs.core.next(arglist__9003));
var zs = cljs.core.rest(cljs.core.next(arglist__9003));
return G__9002__delegate(x, y, zs)
};
G__9002.cljs$lang$arity$variadic = G__9002__delegate;
return G__9002
}();
concat = function(x, y, var_args) {
var zs = var_args;
switch(arguments.length) {
case 0:
return concat__0.call(this);
case 1:
return concat__1.call(this, x);
case 2:
return concat__2.call(this, x, y);
default:
return concat__3.cljs$lang$arity$variadic(x, y, cljs.core.array_seq(arguments, 2))
}
throw"Invalid arity: " + arguments.length;
};
concat.cljs$lang$maxFixedArity = 2;
concat.cljs$lang$applyTo = concat__3.cljs$lang$applyTo;
concat.cljs$lang$arity$0 = concat__0;
concat.cljs$lang$arity$1 = concat__1;
concat.cljs$lang$arity$2 = concat__2;
concat.cljs$lang$arity$variadic = concat__3.cljs$lang$arity$variadic;
return concat
}();
cljs.core.list_STAR_ = function() {
var list_STAR_ = null;
var list_STAR___1 = function(args) {
return cljs.core.seq.call(null, args)
};
var list_STAR___2 = function(a, args) {
return cljs.core.cons.call(null, a, args)
};
var list_STAR___3 = function(a, b, args) {
return cljs.core.cons.call(null, a, cljs.core.cons.call(null, b, args))
};
var list_STAR___4 = 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___5 = function() {
var G__9004__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__9004 = 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__9004__delegate.call(this, a, b, c, d, more)
};
G__9004.cljs$lang$maxFixedArity = 4;
G__9004.cljs$lang$applyTo = function(arglist__9005) {
var a = cljs.core.first(arglist__9005);
var b = cljs.core.first(cljs.core.next(arglist__9005));
var c = cljs.core.first(cljs.core.next(cljs.core.next(arglist__9005)));
var d = cljs.core.first(cljs.core.next(cljs.core.next(cljs.core.next(arglist__9005))));
var more = cljs.core.rest(cljs.core.next(cljs.core.next(cljs.core.next(arglist__9005))));
return G__9004__delegate(a, b, c, d, more)
};
G__9004.cljs$lang$arity$variadic = G__9004__delegate;
return G__9004
}();
list_STAR_ = function(a, b, c, d, var_args) {
var more = var_args;
switch(arguments.length) {
case 1:
return list_STAR___1.call(this, a);
case 2:
return list_STAR___2.call(this, a, b);
case 3:
return list_STAR___3.call(this, a, b, c);
case 4:
return list_STAR___4.call(this, a, b, c, d);
default:
return list_STAR___5.cljs$lang$arity$variadic(a, b, c, d, cljs.core.array_seq(arguments, 4))
}
throw"Invalid arity: " + arguments.length;
};
list_STAR_.cljs$lang$maxFixedArity = 4;
list_STAR_.cljs$lang$applyTo = list_STAR___5.cljs$lang$applyTo;
list_STAR_.cljs$lang$arity$1 = list_STAR___1;
list_STAR_.cljs$lang$arity$2 = list_STAR___2;
list_STAR_.cljs$lang$arity$3 = list_STAR___3;
list_STAR_.cljs$lang$arity$4 = list_STAR___4;
list_STAR_.cljs$lang$arity$variadic = list_STAR___5.cljs$lang$arity$variadic;
return list_STAR_
}();
cljs.core.transient$ = function transient$(coll) {
return cljs.core._as_transient.call(null, coll)
};
cljs.core.persistent_BANG_ = function persistent_BANG_(tcoll) {
return cljs.core._persistent_BANG_.call(null, tcoll)
};
cljs.core.conj_BANG_ = function conj_BANG_(tcoll, val) {
return cljs.core._conj_BANG_.call(null, tcoll, val)
};
cljs.core.assoc_BANG_ = function assoc_BANG_(tcoll, key, val) {
return cljs.core._assoc_BANG_.call(null, tcoll, key, val)
};
cljs.core.dissoc_BANG_ = function dissoc_BANG_(tcoll, key) {
return cljs.core._dissoc_BANG_.call(null, tcoll, key)
};
cljs.core.pop_BANG_ = function pop_BANG_(tcoll) {
return cljs.core._pop_BANG_.call(null, tcoll)
};
cljs.core.disj_BANG_ = function disj_BANG_(tcoll, val) {
return cljs.core._disjoin_BANG_.call(null, tcoll, val)
};
cljs.core.apply_to = function apply_to(f, argc, args) {
var args__9047 = cljs.core.seq.call(null, args);
if(argc === 0) {
return f.call(null)
}else {
var a__9048 = cljs.core._first.call(null, args__9047);
var args__9049 = cljs.core._rest.call(null, args__9047);
if(argc === 1) {
if(f.cljs$lang$arity$1) {
return f.cljs$lang$arity$1(a__9048)
}else {
return f.call(null, a__9048)
}
}else {
var b__9050 = cljs.core._first.call(null, args__9049);
var args__9051 = cljs.core._rest.call(null, args__9049);
if(argc === 2) {
if(f.cljs$lang$arity$2) {
return f.cljs$lang$arity$2(a__9048, b__9050)
}else {
return f.call(null, a__9048, b__9050)
}
}else {
var c__9052 = cljs.core._first.call(null, args__9051);
var args__9053 = cljs.core._rest.call(null, args__9051);
if(argc === 3) {
if(f.cljs$lang$arity$3) {
return f.cljs$lang$arity$3(a__9048, b__9050, c__9052)
}else {
return f.call(null, a__9048, b__9050, c__9052)
}
}else {
var d__9054 = cljs.core._first.call(null, args__9053);
var args__9055 = cljs.core._rest.call(null, args__9053);
if(argc === 4) {
if(f.cljs$lang$arity$4) {
return f.cljs$lang$arity$4(a__9048, b__9050, c__9052, d__9054)
}else {
return f.call(null, a__9048, b__9050, c__9052, d__9054)
}
}else {
var e__9056 = cljs.core._first.call(null, args__9055);
var args__9057 = cljs.core._rest.call(null, args__9055);
if(argc === 5) {
if(f.cljs$lang$arity$5) {
return f.cljs$lang$arity$5(a__9048, b__9050, c__9052, d__9054, e__9056)
}else {
return f.call(null, a__9048, b__9050, c__9052, d__9054, e__9056)
}
}else {
var f__9058 = cljs.core._first.call(null, args__9057);
var args__9059 = cljs.core._rest.call(null, args__9057);
if(argc === 6) {
if(f__9058.cljs$lang$arity$6) {
return f__9058.cljs$lang$arity$6(a__9048, b__9050, c__9052, d__9054, e__9056, f__9058)
}else {
return f__9058.call(null, a__9048, b__9050, c__9052, d__9054, e__9056, f__9058)
}
}else {
var g__9060 = cljs.core._first.call(null, args__9059);
var args__9061 = cljs.core._rest.call(null, args__9059);
if(argc === 7) {
if(f__9058.cljs$lang$arity$7) {
return f__9058.cljs$lang$arity$7(a__9048, b__9050, c__9052, d__9054, e__9056, f__9058, g__9060)
}else {
return f__9058.call(null, a__9048, b__9050, c__9052, d__9054, e__9056, f__9058, g__9060)
}
}else {
var h__9062 = cljs.core._first.call(null, args__9061);
var args__9063 = cljs.core._rest.call(null, args__9061);
if(argc === 8) {
if(f__9058.cljs$lang$arity$8) {
return f__9058.cljs$lang$arity$8(a__9048, b__9050, c__9052, d__9054, e__9056, f__9058, g__9060, h__9062)
}else {
return f__9058.call(null, a__9048, b__9050, c__9052, d__9054, e__9056, f__9058, g__9060, h__9062)
}
}else {
var i__9064 = cljs.core._first.call(null, args__9063);
var args__9065 = cljs.core._rest.call(null, args__9063);
if(argc === 9) {
if(f__9058.cljs$lang$arity$9) {
return f__9058.cljs$lang$arity$9(a__9048, b__9050, c__9052, d__9054, e__9056, f__9058, g__9060, h__9062, i__9064)
}else {
return f__9058.call(null, a__9048, b__9050, c__9052, d__9054, e__9056, f__9058, g__9060, h__9062, i__9064)
}
}else {
var j__9066 = cljs.core._first.call(null, args__9065);
var args__9067 = cljs.core._rest.call(null, args__9065);
if(argc === 10) {
if(f__9058.cljs$lang$arity$10) {
return f__9058.cljs$lang$arity$10(a__9048, b__9050, c__9052, d__9054, e__9056, f__9058, g__9060, h__9062, i__9064, j__9066)
}else {
return f__9058.call(null, a__9048, b__9050, c__9052, d__9054, e__9056, f__9058, g__9060, h__9062, i__9064, j__9066)
}
}else {
var k__9068 = cljs.core._first.call(null, args__9067);
var args__9069 = cljs.core._rest.call(null, args__9067);
if(argc === 11) {
if(f__9058.cljs$lang$arity$11) {
return f__9058.cljs$lang$arity$11(a__9048, b__9050, c__9052, d__9054, e__9056, f__9058, g__9060, h__9062, i__9064, j__9066, k__9068)
}else {
return f__9058.call(null, a__9048, b__9050, c__9052, d__9054, e__9056, f__9058, g__9060, h__9062, i__9064, j__9066, k__9068)
}
}else {
var l__9070 = cljs.core._first.call(null, args__9069);
var args__9071 = cljs.core._rest.call(null, args__9069);
if(argc === 12) {
if(f__9058.cljs$lang$arity$12) {
return f__9058.cljs$lang$arity$12(a__9048, b__9050, c__9052, d__9054, e__9056, f__9058, g__9060, h__9062, i__9064, j__9066, k__9068, l__9070)
}else {
return f__9058.call(null, a__9048, b__9050, c__9052, d__9054, e__9056, f__9058, g__9060, h__9062, i__9064, j__9066, k__9068, l__9070)
}
}else {
var m__9072 = cljs.core._first.call(null, args__9071);
var args__9073 = cljs.core._rest.call(null, args__9071);
if(argc === 13) {
if(f__9058.cljs$lang$arity$13) {
return f__9058.cljs$lang$arity$13(a__9048, b__9050, c__9052, d__9054, e__9056, f__9058, g__9060, h__9062, i__9064, j__9066, k__9068, l__9070, m__9072)
}else {
return f__9058.call(null, a__9048, b__9050, c__9052, d__9054, e__9056, f__9058, g__9060, h__9062, i__9064, j__9066, k__9068, l__9070, m__9072)
}
}else {
var n__9074 = cljs.core._first.call(null, args__9073);
var args__9075 = cljs.core._rest.call(null, args__9073);
if(argc === 14) {
if(f__9058.cljs$lang$arity$14) {
return f__9058.cljs$lang$arity$14(a__9048, b__9050, c__9052, d__9054, e__9056, f__9058, g__9060, h__9062, i__9064, j__9066, k__9068, l__9070, m__9072, n__9074)
}else {
return f__9058.call(null, a__9048, b__9050, c__9052, d__9054, e__9056, f__9058, g__9060, h__9062, i__9064, j__9066, k__9068, l__9070, m__9072, n__9074)
}
}else {
var o__9076 = cljs.core._first.call(null, args__9075);
var args__9077 = cljs.core._rest.call(null, args__9075);
if(argc === 15) {
if(f__9058.cljs$lang$arity$15) {
return f__9058.cljs$lang$arity$15(a__9048, b__9050, c__9052, d__9054, e__9056, f__9058, g__9060, h__9062, i__9064, j__9066, k__9068, l__9070, m__9072, n__9074, o__9076)
}else {
return f__9058.call(null, a__9048, b__9050, c__9052, d__9054, e__9056, f__9058, g__9060, h__9062, i__9064, j__9066, k__9068, l__9070, m__9072, n__9074, o__9076)
}
}else {
var p__9078 = cljs.core._first.call(null, args__9077);
var args__9079 = cljs.core._rest.call(null, args__9077);
if(argc === 16) {
if(f__9058.cljs$lang$arity$16) {
return f__9058.cljs$lang$arity$16(a__9048, b__9050, c__9052, d__9054, e__9056, f__9058, g__9060, h__9062, i__9064, j__9066, k__9068, l__9070, m__9072, n__9074, o__9076, p__9078)
}else {
return f__9058.call(null, a__9048, b__9050, c__9052, d__9054, e__9056, f__9058, g__9060, h__9062, i__9064, j__9066, k__9068, l__9070, m__9072, n__9074, o__9076, p__9078)
}
}else {
var q__9080 = cljs.core._first.call(null, args__9079);
var args__9081 = cljs.core._rest.call(null, args__9079);
if(argc === 17) {
if(f__9058.cljs$lang$arity$17) {
return f__9058.cljs$lang$arity$17(a__9048, b__9050, c__9052, d__9054, e__9056, f__9058, g__9060, h__9062, i__9064, j__9066, k__9068, l__9070, m__9072, n__9074, o__9076, p__9078, q__9080)
}else {
return f__9058.call(null, a__9048, b__9050, c__9052, d__9054, e__9056, f__9058, g__9060, h__9062, i__9064, j__9066, k__9068, l__9070, m__9072, n__9074, o__9076, p__9078, q__9080)
}
}else {
var r__9082 = cljs.core._first.call(null, args__9081);
var args__9083 = cljs.core._rest.call(null, args__9081);
if(argc === 18) {
if(f__9058.cljs$lang$arity$18) {
return f__9058.cljs$lang$arity$18(a__9048, b__9050, c__9052, d__9054, e__9056, f__9058, g__9060, h__9062, i__9064, j__9066, k__9068, l__9070, m__9072, n__9074, o__9076, p__9078, q__9080, r__9082)
}else {
return f__9058.call(null, a__9048, b__9050, c__9052, d__9054, e__9056, f__9058, g__9060, h__9062, i__9064, j__9066, k__9068, l__9070, m__9072, n__9074, o__9076, p__9078, q__9080, r__9082)
}
}else {
var s__9084 = cljs.core._first.call(null, args__9083);
var args__9085 = cljs.core._rest.call(null, args__9083);
if(argc === 19) {
if(f__9058.cljs$lang$arity$19) {
return f__9058.cljs$lang$arity$19(a__9048, b__9050, c__9052, d__9054, e__9056, f__9058, g__9060, h__9062, i__9064, j__9066, k__9068, l__9070, m__9072, n__9074, o__9076, p__9078, q__9080, r__9082, s__9084)
}else {
return f__9058.call(null, a__9048, b__9050, c__9052, d__9054, e__9056, f__9058, g__9060, h__9062, i__9064, j__9066, k__9068, l__9070, m__9072, n__9074, o__9076, p__9078, q__9080, r__9082, s__9084)
}
}else {
var t__9086 = cljs.core._first.call(null, args__9085);
var args__9087 = cljs.core._rest.call(null, args__9085);
if(argc === 20) {
if(f__9058.cljs$lang$arity$20) {
return f__9058.cljs$lang$arity$20(a__9048, b__9050, c__9052, d__9054, e__9056, f__9058, g__9060, h__9062, i__9064, j__9066, k__9068, l__9070, m__9072, n__9074, o__9076, p__9078, q__9080, r__9082, s__9084, t__9086)
}else {
return f__9058.call(null, a__9048, b__9050, c__9052, d__9054, e__9056, f__9058, g__9060, h__9062, i__9064, j__9066, k__9068, l__9070, m__9072, n__9074, o__9076, p__9078, q__9080, r__9082, s__9084, t__9086)
}
}else {
throw new Error("Only up to 20 arguments supported on functions");
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
};
cljs.core.apply = function() {
var apply = null;
var apply__2 = function(f, args) {
var fixed_arity__9102 = f.cljs$lang$maxFixedArity;
if(cljs.core.truth_(f.cljs$lang$applyTo)) {
var bc__9103 = cljs.core.bounded_count.call(null, args, fixed_arity__9102 + 1);
if(bc__9103 <= fixed_arity__9102) {
return cljs.core.apply_to.call(null, f, bc__9103, args)
}else {
return f.cljs$lang$applyTo(args)
}
}else {
return f.apply(f, cljs.core.to_array.call(null, args))
}
};
var apply__3 = function(f, x, args) {
var arglist__9104 = cljs.core.list_STAR_.call(null, x, args);
var fixed_arity__9105 = f.cljs$lang$maxFixedArity;
if(cljs.core.truth_(f.cljs$lang$applyTo)) {
var bc__9106 = cljs.core.bounded_count.call(null, arglist__9104, fixed_arity__9105 + 1);
if(bc__9106 <= fixed_arity__9105) {
return cljs.core.apply_to.call(null, f, bc__9106, arglist__9104)
}else {
return f.cljs$lang$applyTo(arglist__9104)
}
}else {
return f.apply(f, cljs.core.to_array.call(null, arglist__9104))
}
};
var apply__4 = function(f, x, y, args) {
var arglist__9107 = cljs.core.list_STAR_.call(null, x, y, args);
var fixed_arity__9108 = f.cljs$lang$maxFixedArity;
if(cljs.core.truth_(f.cljs$lang$applyTo)) {
var bc__9109 = cljs.core.bounded_count.call(null, arglist__9107, fixed_arity__9108 + 1);
if(bc__9109 <= fixed_arity__9108) {
return cljs.core.apply_to.call(null, f, bc__9109, arglist__9107)
}else {
return f.cljs$lang$applyTo(arglist__9107)
}
}else {
return f.apply(f, cljs.core.to_array.call(null, arglist__9107))
}
};
var apply__5 = function(f, x, y, z, args) {
var arglist__9110 = cljs.core.list_STAR_.call(null, x, y, z, args);
var fixed_arity__9111 = f.cljs$lang$maxFixedArity;
if(cljs.core.truth_(f.cljs$lang$applyTo)) {
var bc__9112 = cljs.core.bounded_count.call(null, arglist__9110, fixed_arity__9111 + 1);
if(bc__9112 <= fixed_arity__9111) {
return cljs.core.apply_to.call(null, f, bc__9112, arglist__9110)
}else {
return f.cljs$lang$applyTo(arglist__9110)
}
}else {
return f.apply(f, cljs.core.to_array.call(null, arglist__9110))
}
};
var apply__6 = function() {
var G__9116__delegate = function(f, a, b, c, d, args) {
var arglist__9113 = 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__9114 = f.cljs$lang$maxFixedArity;
if(cljs.core.truth_(f.cljs$lang$applyTo)) {
var bc__9115 = cljs.core.bounded_count.call(null, arglist__9113, fixed_arity__9114 + 1);
if(bc__9115 <= fixed_arity__9114) {
return cljs.core.apply_to.call(null, f, bc__9115, arglist__9113)
}else {
return f.cljs$lang$applyTo(arglist__9113)
}
}else {
return f.apply(f, cljs.core.to_array.call(null, arglist__9113))
}
};
var G__9116 = 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__9116__delegate.call(this, f, a, b, c, d, args)
};
G__9116.cljs$lang$maxFixedArity = 5;
G__9116.cljs$lang$applyTo = function(arglist__9117) {
var f = cljs.core.first(arglist__9117);
var a = cljs.core.first(cljs.core.next(arglist__9117));
var b = cljs.core.first(cljs.core.next(cljs.core.next(arglist__9117)));
var c = cljs.core.first(cljs.core.next(cljs.core.next(cljs.core.next(arglist__9117))));
var d = cljs.core.first(cljs.core.next(cljs.core.next(cljs.core.next(cljs.core.next(arglist__9117)))));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(cljs.core.next(cljs.core.next(arglist__9117)))));
return G__9116__delegate(f, a, b, c, d, args)
};
G__9116.cljs$lang$arity$variadic = G__9116__delegate;
return G__9116
}();
apply = function(f, a, b, c, d, var_args) {
var args = var_args;
switch(arguments.length) {
case 2:
return apply__2.call(this, f, a);
case 3:
return apply__3.call(this, f, a, b);
case 4:
return apply__4.call(this, f, a, b, c);
case 5:
return apply__5.call(this, f, a, b, c, d);
default:
return apply__6.cljs$lang$arity$variadic(f, a, b, c, d, cljs.core.array_seq(arguments, 5))
}
throw"Invalid arity: " + arguments.length;
};
apply.cljs$lang$maxFixedArity = 5;
apply.cljs$lang$applyTo = apply__6.cljs$lang$applyTo;
apply.cljs$lang$arity$2 = apply__2;
apply.cljs$lang$arity$3 = apply__3;
apply.cljs$lang$arity$4 = apply__4;
apply.cljs$lang$arity$5 = apply__5;
apply.cljs$lang$arity$variadic = apply__6.cljs$lang$arity$variadic;
return apply
}();
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__9118) {
var obj = cljs.core.first(arglist__9118);
var f = cljs.core.first(cljs.core.next(arglist__9118));
var args = cljs.core.rest(cljs.core.next(arglist__9118));
return vary_meta__delegate(obj, f, args)
};
vary_meta.cljs$lang$arity$variadic = vary_meta__delegate;
return vary_meta
}();
cljs.core.not_EQ_ = function() {
var not_EQ_ = null;
var not_EQ___1 = function(x) {
return false
};
var not_EQ___2 = function(x, y) {
return!cljs.core._EQ_.call(null, x, y)
};
var not_EQ___3 = function() {
var G__9119__delegate = function(x, y, more) {
return cljs.core.not.call(null, cljs.core.apply.call(null, cljs.core._EQ_, x, y, more))
};
var G__9119 = 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__9119__delegate.call(this, x, y, more)
};
G__9119.cljs$lang$maxFixedArity = 2;
G__9119.cljs$lang$applyTo = function(arglist__9120) {
var x = cljs.core.first(arglist__9120);
var y = cljs.core.first(cljs.core.next(arglist__9120));
var more = cljs.core.rest(cljs.core.next(arglist__9120));
return G__9119__delegate(x, y, more)
};
G__9119.cljs$lang$arity$variadic = G__9119__delegate;
return G__9119
}();
not_EQ_ = function(x, y, var_args) {
var more = var_args;
switch(arguments.length) {
case 1:
return not_EQ___1.call(this, x);
case 2:
return not_EQ___2.call(this, x, y);
default:
return not_EQ___3.cljs$lang$arity$variadic(x, y, cljs.core.array_seq(arguments, 2))
}
throw"Invalid arity: " + arguments.length;
};
not_EQ_.cljs$lang$maxFixedArity = 2;
not_EQ_.cljs$lang$applyTo = not_EQ___3.cljs$lang$applyTo;
not_EQ_.cljs$lang$arity$1 = not_EQ___1;
not_EQ_.cljs$lang$arity$2 = not_EQ___2;
not_EQ_.cljs$lang$arity$variadic = not_EQ___3.cljs$lang$arity$variadic;
return not_EQ_
}();
cljs.core.not_empty = function not_empty(coll) {
if(cljs.core.seq.call(null, coll)) {
return coll
}else {
return null
}
};
cljs.core.every_QMARK_ = function every_QMARK_(pred, coll) {
while(true) {
if(cljs.core.seq.call(null, coll) == null) {
return true
}else {
if(cljs.core.truth_(pred.call(null, cljs.core.first.call(null, coll)))) {
var G__9121 = pred;
var G__9122 = cljs.core.next.call(null, coll);
pred = G__9121;
coll = G__9122;
continue
}else {
if("\ufdd0'else") {
return false
}else {
return null
}
}
}
break
}
};
cljs.core.not_every_QMARK_ = function not_every_QMARK_(pred, coll) {
return!cljs.core.every_QMARK_.call(null, pred, coll)
};
cljs.core.some = function some(pred, coll) {
while(true) {
if(cljs.core.seq.call(null, coll)) {
var or__3824__auto____9124 = pred.call(null, cljs.core.first.call(null, coll));
if(cljs.core.truth_(or__3824__auto____9124)) {
return or__3824__auto____9124
}else {
var G__9125 = pred;
var G__9126 = cljs.core.next.call(null, coll);
pred = G__9125;
coll = G__9126;
continue
}
}else {
return null
}
break
}
};
cljs.core.not_any_QMARK_ = function not_any_QMARK_(pred, coll) {
return cljs.core.not.call(null, cljs.core.some.call(null, pred, coll))
};
cljs.core.even_QMARK_ = function even_QMARK_(n) {
if(cljs.core.integer_QMARK_.call(null, n)) {
return(n & 1) === 0
}else {
throw new Error([cljs.core.str("Argument must be an integer: "), cljs.core.str(n)].join(""));
}
};
cljs.core.odd_QMARK_ = function odd_QMARK_(n) {
return!cljs.core.even_QMARK_.call(null, n)
};
cljs.core.identity = function identity(x) {
return x
};
cljs.core.complement = function complement(f) {
return function() {
var G__9127 = null;
var G__9127__0 = function() {
return cljs.core.not.call(null, f.call(null))
};
var G__9127__1 = function(x) {
return cljs.core.not.call(null, f.call(null, x))
};
var G__9127__2 = function(x, y) {
return cljs.core.not.call(null, f.call(null, x, y))
};
var G__9127__3 = function() {
var G__9128__delegate = function(x, y, zs) {
return cljs.core.not.call(null, cljs.core.apply.call(null, f, x, y, zs))
};
var G__9128 = 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__9128__delegate.call(this, x, y, zs)
};
G__9128.cljs$lang$maxFixedArity = 2;
G__9128.cljs$lang$applyTo = function(arglist__9129) {
var x = cljs.core.first(arglist__9129);
var y = cljs.core.first(cljs.core.next(arglist__9129));
var zs = cljs.core.rest(cljs.core.next(arglist__9129));
return G__9128__delegate(x, y, zs)
};
G__9128.cljs$lang$arity$variadic = G__9128__delegate;
return G__9128
}();
G__9127 = function(x, y, var_args) {
var zs = var_args;
switch(arguments.length) {
case 0:
return G__9127__0.call(this);
case 1:
return G__9127__1.call(this, x);
case 2:
return G__9127__2.call(this, x, y);
default:
return G__9127__3.cljs$lang$arity$variadic(x, y, cljs.core.array_seq(arguments, 2))
}
throw"Invalid arity: " + arguments.length;
};
G__9127.cljs$lang$maxFixedArity = 2;
G__9127.cljs$lang$applyTo = G__9127__3.cljs$lang$applyTo;
return G__9127
}()
};
cljs.core.constantly = function constantly(x) {
return function() {
var G__9130__delegate = function(args) {
return x
};
var G__9130 = 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__9130__delegate.call(this, args)
};
G__9130.cljs$lang$maxFixedArity = 0;
G__9130.cljs$lang$applyTo = function(arglist__9131) {
var args = cljs.core.seq(arglist__9131);
return G__9130__delegate(args)
};
G__9130.cljs$lang$arity$variadic = G__9130__delegate;
return G__9130
}()
};
cljs.core.comp = function() {
var comp = null;
var comp__0 = function() {
return cljs.core.identity
};
var comp__1 = function(f) {
return f
};
var comp__2 = function(f, g) {
return function() {
var G__9138 = null;
var G__9138__0 = function() {
return f.call(null, g.call(null))
};
var G__9138__1 = function(x) {
return f.call(null, g.call(null, x))
};
var G__9138__2 = function(x, y) {
return f.call(null, g.call(null, x, y))
};
var G__9138__3 = function(x, y, z) {
return f.call(null, g.call(null, x, y, z))
};
var G__9138__4 = function() {
var G__9139__delegate = function(x, y, z, args) {
return f.call(null, cljs.core.apply.call(null, g, x, y, z, args))
};
var G__9139 = 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__9139__delegate.call(this, x, y, z, args)
};
G__9139.cljs$lang$maxFixedArity = 3;
G__9139.cljs$lang$applyTo = function(arglist__9140) {
var x = cljs.core.first(arglist__9140);
var y = cljs.core.first(cljs.core.next(arglist__9140));
var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__9140)));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__9140)));
return G__9139__delegate(x, y, z, args)
};
G__9139.cljs$lang$arity$variadic = G__9139__delegate;
return G__9139
}();
G__9138 = function(x, y, z, var_args) {
var args = var_args;
switch(arguments.length) {
case 0:
return G__9138__0.call(this);
case 1:
return G__9138__1.call(this, x);
case 2:
return G__9138__2.call(this, x, y);
case 3:
return G__9138__3.call(this, x, y, z);
default:
return G__9138__4.cljs$lang$arity$variadic(x, y, z, cljs.core.array_seq(arguments, 3))
}
throw"Invalid arity: " + arguments.length;
};
G__9138.cljs$lang$maxFixedArity = 3;
G__9138.cljs$lang$applyTo = G__9138__4.cljs$lang$applyTo;
return G__9138
}()
};
var comp__3 = function(f, g, h) {
return function() {
var G__9141 = null;
var G__9141__0 = function() {
return f.call(null, g.call(null, h.call(null)))
};
var G__9141__1 = function(x) {
return f.call(null, g.call(null, h.call(null, x)))
};
var G__9141__2 = function(x, y) {
return f.call(null, g.call(null, h.call(null, x, y)))
};
var G__9141__3 = function(x, y, z) {
return f.call(null, g.call(null, h.call(null, x, y, z)))
};
var G__9141__4 = function() {
var G__9142__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__9142 = 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__9142__delegate.call(this, x, y, z, args)
};
G__9142.cljs$lang$maxFixedArity = 3;
G__9142.cljs$lang$applyTo = function(arglist__9143) {
var x = cljs.core.first(arglist__9143);
var y = cljs.core.first(cljs.core.next(arglist__9143));
var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__9143)));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__9143)));
return G__9142__delegate(x, y, z, args)
};
G__9142.cljs$lang$arity$variadic = G__9142__delegate;
return G__9142
}();
G__9141 = function(x, y, z, var_args) {
var args = var_args;
switch(arguments.length) {
case 0:
return G__9141__0.call(this);
case 1:
return G__9141__1.call(this, x);
case 2:
return G__9141__2.call(this, x, y);
case 3:
return G__9141__3.call(this, x, y, z);
default:
return G__9141__4.cljs$lang$arity$variadic(x, y, z, cljs.core.array_seq(arguments, 3))
}
throw"Invalid arity: " + arguments.length;
};
G__9141.cljs$lang$maxFixedArity = 3;
G__9141.cljs$lang$applyTo = G__9141__4.cljs$lang$applyTo;
return G__9141
}()
};
var comp__4 = function() {
var G__9144__delegate = function(f1, f2, f3, fs) {
var fs__9135 = cljs.core.reverse.call(null, cljs.core.list_STAR_.call(null, f1, f2, f3, fs));
return function() {
var G__9145__delegate = function(args) {
var ret__9136 = cljs.core.apply.call(null, cljs.core.first.call(null, fs__9135), args);
var fs__9137 = cljs.core.next.call(null, fs__9135);
while(true) {
if(fs__9137) {
var G__9146 = cljs.core.first.call(null, fs__9137).call(null, ret__9136);
var G__9147 = cljs.core.next.call(null, fs__9137);
ret__9136 = G__9146;
fs__9137 = G__9147;
continue
}else {
return ret__9136
}
break
}
};
var G__9145 = 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__9145__delegate.call(this, args)
};
G__9145.cljs$lang$maxFixedArity = 0;
G__9145.cljs$lang$applyTo = function(arglist__9148) {
var args = cljs.core.seq(arglist__9148);
return G__9145__delegate(args)
};
G__9145.cljs$lang$arity$variadic = G__9145__delegate;
return G__9145
}()
};
var G__9144 = 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__9144__delegate.call(this, f1, f2, f3, fs)
};
G__9144.cljs$lang$maxFixedArity = 3;
G__9144.cljs$lang$applyTo = function(arglist__9149) {
var f1 = cljs.core.first(arglist__9149);
var f2 = cljs.core.first(cljs.core.next(arglist__9149));
var f3 = cljs.core.first(cljs.core.next(cljs.core.next(arglist__9149)));
var fs = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__9149)));
return G__9144__delegate(f1, f2, f3, fs)
};
G__9144.cljs$lang$arity$variadic = G__9144__delegate;
return G__9144
}();
comp = function(f1, f2, f3, var_args) {
var fs = var_args;
switch(arguments.length) {
case 0:
return comp__0.call(this);
case 1:
return comp__1.call(this, f1);
case 2:
return comp__2.call(this, f1, f2);
case 3:
return comp__3.call(this, f1, f2, f3);
default:
return comp__4.cljs$lang$arity$variadic(f1, f2, f3, cljs.core.array_seq(arguments, 3))
}
throw"Invalid arity: " + arguments.length;
};
comp.cljs$lang$maxFixedArity = 3;
comp.cljs$lang$applyTo = comp__4.cljs$lang$applyTo;
comp.cljs$lang$arity$0 = comp__0;
comp.cljs$lang$arity$1 = comp__1;
comp.cljs$lang$arity$2 = comp__2;
comp.cljs$lang$arity$3 = comp__3;
comp.cljs$lang$arity$variadic = comp__4.cljs$lang$arity$variadic;
return comp
}();
cljs.core.partial = function() {
var partial = null;
var partial__2 = function(f, arg1) {
return function() {
var G__9150__delegate = function(args) {
return cljs.core.apply.call(null, f, arg1, args)
};
var G__9150 = 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__9150__delegate.call(this, args)
};
G__9150.cljs$lang$maxFixedArity = 0;
G__9150.cljs$lang$applyTo = function(arglist__9151) {
var args = cljs.core.seq(arglist__9151);
return G__9150__delegate(args)
};
G__9150.cljs$lang$arity$variadic = G__9150__delegate;
return G__9150
}()
};
var partial__3 = function(f, arg1, arg2) {
return function() {
var G__9152__delegate = function(args) {
return cljs.core.apply.call(null, f, arg1, arg2, args)
};
var G__9152 = 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__9152__delegate.call(this, args)
};
G__9152.cljs$lang$maxFixedArity = 0;
G__9152.cljs$lang$applyTo = function(arglist__9153) {
var args = cljs.core.seq(arglist__9153);
return G__9152__delegate(args)
};
G__9152.cljs$lang$arity$variadic = G__9152__delegate;
return G__9152
}()
};
var partial__4 = function(f, arg1, arg2, arg3) {
return function() {
var G__9154__delegate = function(args) {
return cljs.core.apply.call(null, f, arg1, arg2, arg3, args)
};
var G__9154 = 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__9154__delegate.call(this, args)
};
G__9154.cljs$lang$maxFixedArity = 0;
G__9154.cljs$lang$applyTo = function(arglist__9155) {
var args = cljs.core.seq(arglist__9155);
return G__9154__delegate(args)
};
G__9154.cljs$lang$arity$variadic = G__9154__delegate;
return G__9154
}()
};
var partial__5 = function() {
var G__9156__delegate = function(f, arg1, arg2, arg3, more) {
return function() {
var G__9157__delegate = function(args) {
return cljs.core.apply.call(null, f, arg1, arg2, arg3, cljs.core.concat.call(null, more, args))
};
var G__9157 = 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__9157__delegate.call(this, args)
};
G__9157.cljs$lang$maxFixedArity = 0;
G__9157.cljs$lang$applyTo = function(arglist__9158) {
var args = cljs.core.seq(arglist__9158);
return G__9157__delegate(args)
};
G__9157.cljs$lang$arity$variadic = G__9157__delegate;
return G__9157
}()
};
var G__9156 = 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__9156__delegate.call(this, f, arg1, arg2, arg3, more)
};
G__9156.cljs$lang$maxFixedArity = 4;
G__9156.cljs$lang$applyTo = function(arglist__9159) {
var f = cljs.core.first(arglist__9159);
var arg1 = cljs.core.first(cljs.core.next(arglist__9159));
var arg2 = cljs.core.first(cljs.core.next(cljs.core.next(arglist__9159)));
var arg3 = cljs.core.first(cljs.core.next(cljs.core.next(cljs.core.next(arglist__9159))));
var more = cljs.core.rest(cljs.core.next(cljs.core.next(cljs.core.next(arglist__9159))));
return G__9156__delegate(f, arg1, arg2, arg3, more)
};
G__9156.cljs$lang$arity$variadic = G__9156__delegate;
return G__9156
}();
partial = function(f, arg1, arg2, arg3, var_args) {
var more = var_args;
switch(arguments.length) {
case 2:
return partial__2.call(this, f, arg1);
case 3:
return partial__3.call(this, f, arg1, arg2);
case 4:
return partial__4.call(this, f, arg1, arg2, arg3);
default:
return partial__5.cljs$lang$arity$variadic(f, arg1, arg2, arg3, cljs.core.array_seq(arguments, 4))
}
throw"Invalid arity: " + arguments.length;
};
partial.cljs$lang$maxFixedArity = 4;
partial.cljs$lang$applyTo = partial__5.cljs$lang$applyTo;
partial.cljs$lang$arity$2 = partial__2;
partial.cljs$lang$arity$3 = partial__3;
partial.cljs$lang$arity$4 = partial__4;
partial.cljs$lang$arity$variadic = partial__5.cljs$lang$arity$variadic;
return partial
}();
cljs.core.fnil = function() {
var fnil = null;
var fnil__2 = function(f, x) {
return function() {
var G__9160 = null;
var G__9160__1 = function(a) {
return f.call(null, a == null ? x : a)
};
var G__9160__2 = function(a, b) {
return f.call(null, a == null ? x : a, b)
};
var G__9160__3 = function(a, b, c) {
return f.call(null, a == null ? x : a, b, c)
};
var G__9160__4 = function() {
var G__9161__delegate = function(a, b, c, ds) {
return cljs.core.apply.call(null, f, a == null ? x : a, b, c, ds)
};
var G__9161 = 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__9161__delegate.call(this, a, b, c, ds)
};
G__9161.cljs$lang$maxFixedArity = 3;
G__9161.cljs$lang$applyTo = function(arglist__9162) {
var a = cljs.core.first(arglist__9162);
var b = cljs.core.first(cljs.core.next(arglist__9162));
var c = cljs.core.first(cljs.core.next(cljs.core.next(arglist__9162)));
var ds = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__9162)));
return G__9161__delegate(a, b, c, ds)
};
G__9161.cljs$lang$arity$variadic = G__9161__delegate;
return G__9161
}();
G__9160 = function(a, b, c, var_args) {
var ds = var_args;
switch(arguments.length) {
case 1:
return G__9160__1.call(this, a);
case 2:
return G__9160__2.call(this, a, b);
case 3:
return G__9160__3.call(this, a, b, c);
default:
return G__9160__4.cljs$lang$arity$variadic(a, b, c, cljs.core.array_seq(arguments, 3))
}
throw"Invalid arity: " + arguments.length;
};
G__9160.cljs$lang$maxFixedArity = 3;
G__9160.cljs$lang$applyTo = G__9160__4.cljs$lang$applyTo;
return G__9160
}()
};
var fnil__3 = function(f, x, y) {
return function() {
var G__9163 = null;
var G__9163__2 = function(a, b) {
return f.call(null, a == null ? x : a, b == null ? y : b)
};
var G__9163__3 = function(a, b, c) {
return f.call(null, a == null ? x : a, b == null ? y : b, c)
};
var G__9163__4 = function() {
var G__9164__delegate = function(a, b, c, ds) {
return cljs.core.apply.call(null, f, a == null ? x : a, b == null ? y : b, c, ds)
};
var G__9164 = 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__9164__delegate.call(this, a, b, c, ds)
};
G__9164.cljs$lang$maxFixedArity = 3;
G__9164.cljs$lang$applyTo = function(arglist__9165) {
var a = cljs.core.first(arglist__9165);
var b = cljs.core.first(cljs.core.next(arglist__9165));
var c = cljs.core.first(cljs.core.next(cljs.core.next(arglist__9165)));
var ds = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__9165)));
return G__9164__delegate(a, b, c, ds)
};
G__9164.cljs$lang$arity$variadic = G__9164__delegate;
return G__9164
}();
G__9163 = function(a, b, c, var_args) {
var ds = var_args;
switch(arguments.length) {
case 2:
return G__9163__2.call(this, a, b);
case 3:
return G__9163__3.call(this, a, b, c);
default:
return G__9163__4.cljs$lang$arity$variadic(a, b, c, cljs.core.array_seq(arguments, 3))
}
throw"Invalid arity: " + arguments.length;
};
G__9163.cljs$lang$maxFixedArity = 3;
G__9163.cljs$lang$applyTo = G__9163__4.cljs$lang$applyTo;
return G__9163
}()
};
var fnil__4 = function(f, x, y, z) {
return function() {
var G__9166 = null;
var G__9166__2 = function(a, b) {
return f.call(null, a == null ? x : a, b == null ? y : b)
};
var G__9166__3 = function(a, b, c) {
return f.call(null, a == null ? x : a, b == null ? y : b, c == null ? z : c)
};
var G__9166__4 = function() {
var G__9167__delegate = function(a, b, c, ds) {
return cljs.core.apply.call(null, f, a == null ? x : a, b == null ? y : b, c == null ? z : c, ds)
};
var G__9167 = 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__9167__delegate.call(this, a, b, c, ds)
};
G__9167.cljs$lang$maxFixedArity = 3;
G__9167.cljs$lang$applyTo = function(arglist__9168) {
var a = cljs.core.first(arglist__9168);
var b = cljs.core.first(cljs.core.next(arglist__9168));
var c = cljs.core.first(cljs.core.next(cljs.core.next(arglist__9168)));
var ds = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__9168)));
return G__9167__delegate(a, b, c, ds)
};
G__9167.cljs$lang$arity$variadic = G__9167__delegate;
return G__9167
}();
G__9166 = function(a, b, c, var_args) {
var ds = var_args;
switch(arguments.length) {
case 2:
return G__9166__2.call(this, a, b);
case 3:
return G__9166__3.call(this, a, b, c);
default:
return G__9166__4.cljs$lang$arity$variadic(a, b, c, cljs.core.array_seq(arguments, 3))
}
throw"Invalid arity: " + arguments.length;
};
G__9166.cljs$lang$maxFixedArity = 3;
G__9166.cljs$lang$applyTo = G__9166__4.cljs$lang$applyTo;
return G__9166
}()
};
fnil = function(f, x, y, z) {
switch(arguments.length) {
case 2:
return fnil__2.call(this, f, x);
case 3:
return fnil__3.call(this, f, x, y);
case 4:
return fnil__4.call(this, f, x, y, z)
}
throw"Invalid arity: " + arguments.length;
};
fnil.cljs$lang$arity$2 = fnil__2;
fnil.cljs$lang$arity$3 = fnil__3;
fnil.cljs$lang$arity$4 = fnil__4;
return fnil
}();
cljs.core.map_indexed = function map_indexed(f, coll) {
var mapi__9184 = function mapi(idx, coll) {
return new cljs.core.LazySeq(null, false, function() {
var temp__3974__auto____9192 = cljs.core.seq.call(null, coll);
if(temp__3974__auto____9192) {
var s__9193 = temp__3974__auto____9192;
if(cljs.core.chunked_seq_QMARK_.call(null, s__9193)) {
var c__9194 = cljs.core.chunk_first.call(null, s__9193);
var size__9195 = cljs.core.count.call(null, c__9194);
var b__9196 = cljs.core.chunk_buffer.call(null, size__9195);
var n__2551__auto____9197 = size__9195;
var i__9198 = 0;
while(true) {
if(i__9198 < n__2551__auto____9197) {
cljs.core.chunk_append.call(null, b__9196, f.call(null, idx + i__9198, cljs.core._nth.call(null, c__9194, i__9198)));
var G__9199 = i__9198 + 1;
i__9198 = G__9199;
continue
}else {
}
break
}
return cljs.core.chunk_cons.call(null, cljs.core.chunk.call(null, b__9196), mapi.call(null, idx + size__9195, cljs.core.chunk_rest.call(null, s__9193)))
}else {
return cljs.core.cons.call(null, f.call(null, idx, cljs.core.first.call(null, s__9193)), mapi.call(null, idx + 1, cljs.core.rest.call(null, s__9193)))
}
}else {
return null
}
}, null)
};
return mapi__9184.call(null, 0, coll)
};
cljs.core.keep = function keep(f, coll) {
return new cljs.core.LazySeq(null, false, function() {
var temp__3974__auto____9209 = cljs.core.seq.call(null, coll);
if(temp__3974__auto____9209) {
var s__9210 = temp__3974__auto____9209;
if(cljs.core.chunked_seq_QMARK_.call(null, s__9210)) {
var c__9211 = cljs.core.chunk_first.call(null, s__9210);
var size__9212 = cljs.core.count.call(null, c__9211);
var b__9213 = cljs.core.chunk_buffer.call(null, size__9212);
var n__2551__auto____9214 = size__9212;
var i__9215 = 0;
while(true) {
if(i__9215 < n__2551__auto____9214) {
var x__9216 = f.call(null, cljs.core._nth.call(null, c__9211, i__9215));
if(x__9216 == null) {
}else {
cljs.core.chunk_append.call(null, b__9213, x__9216)
}
var G__9218 = i__9215 + 1;
i__9215 = G__9218;
continue
}else {
}
break
}
return cljs.core.chunk_cons.call(null, cljs.core.chunk.call(null, b__9213), keep.call(null, f, cljs.core.chunk_rest.call(null, s__9210)))
}else {
var x__9217 = f.call(null, cljs.core.first.call(null, s__9210));
if(x__9217 == null) {
return keep.call(null, f, cljs.core.rest.call(null, s__9210))
}else {
return cljs.core.cons.call(null, x__9217, keep.call(null, f, cljs.core.rest.call(null, s__9210)))
}
}
}else {
return null
}
}, null)
};
cljs.core.keep_indexed = function keep_indexed(f, coll) {
var keepi__9244 = function keepi(idx, coll) {
return new cljs.core.LazySeq(null, false, function() {
var temp__3974__auto____9254 = cljs.core.seq.call(null, coll);
if(temp__3974__auto____9254) {
var s__9255 = temp__3974__auto____9254;
if(cljs.core.chunked_seq_QMARK_.call(null, s__9255)) {
var c__9256 = cljs.core.chunk_first.call(null, s__9255);
var size__9257 = cljs.core.count.call(null, c__9256);
var b__9258 = cljs.core.chunk_buffer.call(null, size__9257);
var n__2551__auto____9259 = size__9257;
var i__9260 = 0;
while(true) {
if(i__9260 < n__2551__auto____9259) {
var x__9261 = f.call(null, idx + i__9260, cljs.core._nth.call(null, c__9256, i__9260));
if(x__9261 == null) {
}else {
cljs.core.chunk_append.call(null, b__9258, x__9261)
}
var G__9263 = i__9260 + 1;
i__9260 = G__9263;
continue
}else {
}
break
}
return cljs.core.chunk_cons.call(null, cljs.core.chunk.call(null, b__9258), keepi.call(null, idx + size__9257, cljs.core.chunk_rest.call(null, s__9255)))
}else {
var x__9262 = f.call(null, idx, cljs.core.first.call(null, s__9255));
if(x__9262 == null) {
return keepi.call(null, idx + 1, cljs.core.rest.call(null, s__9255))
}else {
return cljs.core.cons.call(null, x__9262, keepi.call(null, idx + 1, cljs.core.rest.call(null, s__9255)))
}
}
}else {
return null
}
}, null)
};
return keepi__9244.call(null, 0, coll)
};
cljs.core.every_pred = function() {
var every_pred = null;
var every_pred__1 = function(p) {
return function() {
var ep1 = null;
var ep1__0 = function() {
return true
};
var ep1__1 = function(x) {
return cljs.core.boolean$.call(null, p.call(null, x))
};
var ep1__2 = function(x, y) {
return cljs.core.boolean$.call(null, function() {
var and__3822__auto____9349 = p.call(null, x);
if(cljs.core.truth_(and__3822__auto____9349)) {
return p.call(null, y)
}else {
return and__3822__auto____9349
}
}())
};
var ep1__3 = function(x, y, z) {
return cljs.core.boolean$.call(null, function() {
var and__3822__auto____9350 = p.call(null, x);
if(cljs.core.truth_(and__3822__auto____9350)) {
var and__3822__auto____9351 = p.call(null, y);
if(cljs.core.truth_(and__3822__auto____9351)) {
return p.call(null, z)
}else {
return and__3822__auto____9351
}
}else {
return and__3822__auto____9350
}
}())
};
var ep1__4 = function() {
var G__9420__delegate = function(x, y, z, args) {
return cljs.core.boolean$.call(null, function() {
var and__3822__auto____9352 = ep1.call(null, x, y, z);
if(cljs.core.truth_(and__3822__auto____9352)) {
return cljs.core.every_QMARK_.call(null, p, args)
}else {
return and__3822__auto____9352
}
}())
};
var G__9420 = 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__9420__delegate.call(this, x, y, z, args)
};
G__9420.cljs$lang$maxFixedArity = 3;
G__9420.cljs$lang$applyTo = function(arglist__9421) {
var x = cljs.core.first(arglist__9421);
var y = cljs.core.first(cljs.core.next(arglist__9421));
var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__9421)));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__9421)));
return G__9420__delegate(x, y, z, args)
};
G__9420.cljs$lang$arity$variadic = G__9420__delegate;
return G__9420
}();
ep1 = function(x, y, z, var_args) {
var args = var_args;
switch(arguments.length) {
case 0:
return ep1__0.call(this);
case 1:
return ep1__1.call(this, x);
case 2:
return ep1__2.call(this, x, y);
case 3:
return ep1__3.call(this, x, y, z);
default:
return ep1__4.cljs$lang$arity$variadic(x, y, z, cljs.core.array_seq(arguments, 3))
}
throw"Invalid arity: " + arguments.length;
};
ep1.cljs$lang$maxFixedArity = 3;
ep1.cljs$lang$applyTo = ep1__4.cljs$lang$applyTo;
ep1.cljs$lang$arity$0 = ep1__0;
ep1.cljs$lang$arity$1 = ep1__1;
ep1.cljs$lang$arity$2 = ep1__2;
ep1.cljs$lang$arity$3 = ep1__3;
ep1.cljs$lang$arity$variadic = ep1__4.cljs$lang$arity$variadic;
return ep1
}()
};
var every_pred__2 = function(p1, p2) {
return function() {
var ep2 = null;
var ep2__0 = function() {
return true
};
var ep2__1 = function(x) {
return cljs.core.boolean$.call(null, function() {
var and__3822__auto____9364 = p1.call(null, x);
if(cljs.core.truth_(and__3822__auto____9364)) {
return p2.call(null, x)
}else {
return and__3822__auto____9364
}
}())
};
var ep2__2 = function(x, y) {
return cljs.core.boolean$.call(null, function() {
var and__3822__auto____9365 = p1.call(null, x);
if(cljs.core.truth_(and__3822__auto____9365)) {
var and__3822__auto____9366 = p1.call(null, y);
if(cljs.core.truth_(and__3822__auto____9366)) {
var and__3822__auto____9367 = p2.call(null, x);
if(cljs.core.truth_(and__3822__auto____9367)) {
return p2.call(null, y)
}else {
return and__3822__auto____9367
}
}else {
return and__3822__auto____9366
}
}else {
return and__3822__auto____9365
}
}())
};
var ep2__3 = function(x, y, z) {
return cljs.core.boolean$.call(null, function() {
var and__3822__auto____9368 = p1.call(null, x);
if(cljs.core.truth_(and__3822__auto____9368)) {
var and__3822__auto____9369 = p1.call(null, y);
if(cljs.core.truth_(and__3822__auto____9369)) {
var and__3822__auto____9370 = p1.call(null, z);
if(cljs.core.truth_(and__3822__auto____9370)) {
var and__3822__auto____9371 = p2.call(null, x);
if(cljs.core.truth_(and__3822__auto____9371)) {
var and__3822__auto____9372 = p2.call(null, y);
if(cljs.core.truth_(and__3822__auto____9372)) {
return p2.call(null, z)
}else {
return and__3822__auto____9372
}
}else {
return and__3822__auto____9371
}
}else {
return and__3822__auto____9370
}
}else {
return and__3822__auto____9369
}
}else {
return and__3822__auto____9368
}
}())
};
var ep2__4 = function() {
var G__9422__delegate = function(x, y, z, args) {
return cljs.core.boolean$.call(null, function() {
var and__3822__auto____9373 = ep2.call(null, x, y, z);
if(cljs.core.truth_(and__3822__auto____9373)) {
return cljs.core.every_QMARK_.call(null, function(p1__9219_SHARP_) {
var and__3822__auto____9374 = p1.call(null, p1__9219_SHARP_);
if(cljs.core.truth_(and__3822__auto____9374)) {
return p2.call(null, p1__9219_SHARP_)
}else {
return and__3822__auto____9374
}
}, args)
}else {
return and__3822__auto____9373
}
}())
};
var G__9422 = 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__9422__delegate.call(this, x, y, z, args)
};
G__9422.cljs$lang$maxFixedArity = 3;
G__9422.cljs$lang$applyTo = function(arglist__9423) {
var x = cljs.core.first(arglist__9423);
var y = cljs.core.first(cljs.core.next(arglist__9423));
var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__9423)));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__9423)));
return G__9422__delegate(x, y, z, args)
};
G__9422.cljs$lang$arity$variadic = G__9422__delegate;
return G__9422
}();
ep2 = function(x, y, z, var_args) {
var args = var_args;
switch(arguments.length) {
case 0:
return ep2__0.call(this);
case 1:
return ep2__1.call(this, x);
case 2:
return ep2__2.call(this, x, y);
case 3:
return ep2__3.call(this, x, y, z);
default:
return ep2__4.cljs$lang$arity$variadic(x, y, z, cljs.core.array_seq(arguments, 3))
}
throw"Invalid arity: " + arguments.length;
};
ep2.cljs$lang$maxFixedArity = 3;
ep2.cljs$lang$applyTo = ep2__4.cljs$lang$applyTo;
ep2.cljs$lang$arity$0 = ep2__0;
ep2.cljs$lang$arity$1 = ep2__1;
ep2.cljs$lang$arity$2 = ep2__2;
ep2.cljs$lang$arity$3 = ep2__3;
ep2.cljs$lang$arity$variadic = ep2__4.cljs$lang$arity$variadic;
return ep2
}()
};
var every_pred__3 = function(p1, p2, p3) {
return function() {
var ep3 = null;
var ep3__0 = function() {
return true
};
var ep3__1 = function(x) {
return cljs.core.boolean$.call(null, function() {
var and__3822__auto____9393 = p1.call(null, x);
if(cljs.core.truth_(and__3822__auto____9393)) {
var and__3822__auto____9394 = p2.call(null, x);
if(cljs.core.truth_(and__3822__auto____9394)) {
return p3.call(null, x)
}else {
return and__3822__auto____9394
}
}else {
return and__3822__auto____9393
}
}())
};
var ep3__2 = function(x, y) {
return cljs.core.boolean$.call(null, function() {
var and__3822__auto____9395 = p1.call(null, x);
if(cljs.core.truth_(and__3822__auto____9395)) {
var and__3822__auto____9396 = p2.call(null, x);
if(cljs.core.truth_(and__3822__auto____9396)) {
var and__3822__auto____9397 = p3.call(null, x);
if(cljs.core.truth_(and__3822__auto____9397)) {
var and__3822__auto____9398 = p1.call(null, y);
if(cljs.core.truth_(and__3822__auto____9398)) {
var and__3822__auto____9399 = p2.call(null, y);
if(cljs.core.truth_(and__3822__auto____9399)) {
return p3.call(null, y)
}else {
return and__3822__auto____9399
}
}else {
return and__3822__auto____9398
}
}else {
return and__3822__auto____9397
}
}else {
return and__3822__auto____9396
}
}else {
return and__3822__auto____9395
}
}())
};
var ep3__3 = function(x, y, z) {
return cljs.core.boolean$.call(null, function() {
var and__3822__auto____9400 = p1.call(null, x);
if(cljs.core.truth_(and__3822__auto____9400)) {
var and__3822__auto____9401 = p2.call(null, x);
if(cljs.core.truth_(and__3822__auto____9401)) {
var and__3822__auto____9402 = p3.call(null, x);
if(cljs.core.truth_(and__3822__auto____9402)) {
var and__3822__auto____9403 = p1.call(null, y);
if(cljs.core.truth_(and__3822__auto____9403)) {
var and__3822__auto____9404 = p2.call(null, y);
if(cljs.core.truth_(and__3822__auto____9404)) {
var and__3822__auto____9405 = p3.call(null, y);
if(cljs.core.truth_(and__3822__auto____9405)) {
var and__3822__auto____9406 = p1.call(null, z);
if(cljs.core.truth_(and__3822__auto____9406)) {
var and__3822__auto____9407 = p2.call(null, z);
if(cljs.core.truth_(and__3822__auto____9407)) {
return p3.call(null, z)
}else {
return and__3822__auto____9407
}
}else {
return and__3822__auto____9406
}
}else {
return and__3822__auto____9405
}
}else {
return and__3822__auto____9404
}
}else {
return and__3822__auto____9403
}
}else {
return and__3822__auto____9402
}
}else {
return and__3822__auto____9401
}
}else {
return and__3822__auto____9400
}
}())
};
var ep3__4 = function() {
var G__9424__delegate = function(x, y, z, args) {
return cljs.core.boolean$.call(null, function() {
var and__3822__auto____9408 = ep3.call(null, x, y, z);
if(cljs.core.truth_(and__3822__auto____9408)) {
return cljs.core.every_QMARK_.call(null, function(p1__9220_SHARP_) {
var and__3822__auto____9409 = p1.call(null, p1__9220_SHARP_);
if(cljs.core.truth_(and__3822__auto____9409)) {
var and__3822__auto____9410 = p2.call(null, p1__9220_SHARP_);
if(cljs.core.truth_(and__3822__auto____9410)) {
return p3.call(null, p1__9220_SHARP_)
}else {
return and__3822__auto____9410
}
}else {
return and__3822__auto____9409
}
}, args)
}else {
return and__3822__auto____9408
}
}())
};
var G__9424 = 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__9424__delegate.call(this, x, y, z, args)
};
G__9424.cljs$lang$maxFixedArity = 3;
G__9424.cljs$lang$applyTo = function(arglist__9425) {
var x = cljs.core.first(arglist__9425);
var y = cljs.core.first(cljs.core.next(arglist__9425));
var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__9425)));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__9425)));
return G__9424__delegate(x, y, z, args)
};
G__9424.cljs$lang$arity$variadic = G__9424__delegate;
return G__9424
}();
ep3 = function(x, y, z, var_args) {
var args = var_args;
switch(arguments.length) {
case 0:
return ep3__0.call(this);
case 1:
return ep3__1.call(this, x);
case 2:
return ep3__2.call(this, x, y);
case 3:
return ep3__3.call(this, x, y, z);
default:
return ep3__4.cljs$lang$arity$variadic(x, y, z, cljs.core.array_seq(arguments, 3))
}
throw"Invalid arity: " + arguments.length;
};
ep3.cljs$lang$maxFixedArity = 3;
ep3.cljs$lang$applyTo = ep3__4.cljs$lang$applyTo;
ep3.cljs$lang$arity$0 = ep3__0;
ep3.cljs$lang$arity$1 = ep3__1;
ep3.cljs$lang$arity$2 = ep3__2;
ep3.cljs$lang$arity$3 = ep3__3;
ep3.cljs$lang$arity$variadic = ep3__4.cljs$lang$arity$variadic;
return ep3
}()
};
var every_pred__4 = function() {
var G__9426__delegate = function(p1, p2, p3, ps) {
var ps__9411 = cljs.core.list_STAR_.call(null, p1, p2, p3, ps);
return function() {
var epn = null;
var epn__0 = function() {
return true
};
var epn__1 = function(x) {
return cljs.core.every_QMARK_.call(null, function(p1__9221_SHARP_) {
return p1__9221_SHARP_.call(null, x)
}, ps__9411)
};
var epn__2 = function(x, y) {
return cljs.core.every_QMARK_.call(null, function(p1__9222_SHARP_) {
var and__3822__auto____9416 = p1__9222_SHARP_.call(null, x);
if(cljs.core.truth_(and__3822__auto____9416)) {
return p1__9222_SHARP_.call(null, y)
}else {
return and__3822__auto____9416
}
}, ps__9411)
};
var epn__3 = function(x, y, z) {
return cljs.core.every_QMARK_.call(null, function(p1__9223_SHARP_) {
var and__3822__auto____9417 = p1__9223_SHARP_.call(null, x);
if(cljs.core.truth_(and__3822__auto____9417)) {
var and__3822__auto____9418 = p1__9223_SHARP_.call(null, y);
if(cljs.core.truth_(and__3822__auto____9418)) {
return p1__9223_SHARP_.call(null, z)
}else {
return and__3822__auto____9418
}
}else {
return and__3822__auto____9417
}
}, ps__9411)
};
var epn__4 = function() {
var G__9427__delegate = function(x, y, z, args) {
return cljs.core.boolean$.call(null, function() {
var and__3822__auto____9419 = epn.call(null, x, y, z);
if(cljs.core.truth_(and__3822__auto____9419)) {
return cljs.core.every_QMARK_.call(null, function(p1__9224_SHARP_) {
return cljs.core.every_QMARK_.call(null, p1__9224_SHARP_, args)
}, ps__9411)
}else {
return and__3822__auto____9419
}
}())
};
var G__9427 = 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__9427__delegate.call(this, x, y, z, args)
};
G__9427.cljs$lang$maxFixedArity = 3;
G__9427.cljs$lang$applyTo = function(arglist__9428) {
var x = cljs.core.first(arglist__9428);
var y = cljs.core.first(cljs.core.next(arglist__9428));
var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__9428)));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__9428)));
return G__9427__delegate(x, y, z, args)
};
G__9427.cljs$lang$arity$variadic = G__9427__delegate;
return G__9427
}();
epn = function(x, y, z, var_args) {
var args = var_args;
switch(arguments.length) {
case 0:
return epn__0.call(this);
case 1:
return epn__1.call(this, x);
case 2:
return epn__2.call(this, x, y);
case 3:
return epn__3.call(this, x, y, z);
default:
return epn__4.cljs$lang$arity$variadic(x, y, z, cljs.core.array_seq(arguments, 3))
}
throw"Invalid arity: " + arguments.length;
};
epn.cljs$lang$maxFixedArity = 3;
epn.cljs$lang$applyTo = epn__4.cljs$lang$applyTo;
epn.cljs$lang$arity$0 = epn__0;
epn.cljs$lang$arity$1 = epn__1;
epn.cljs$lang$arity$2 = epn__2;
epn.cljs$lang$arity$3 = epn__3;
epn.cljs$lang$arity$variadic = epn__4.cljs$lang$arity$variadic;
return epn
}()
};
var G__9426 = 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__9426__delegate.call(this, p1, p2, p3, ps)
};
G__9426.cljs$lang$maxFixedArity = 3;
G__9426.cljs$lang$applyTo = function(arglist__9429) {
var p1 = cljs.core.first(arglist__9429);
var p2 = cljs.core.first(cljs.core.next(arglist__9429));
var p3 = cljs.core.first(cljs.core.next(cljs.core.next(arglist__9429)));
var ps = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__9429)));
return G__9426__delegate(p1, p2, p3, ps)
};
G__9426.cljs$lang$arity$variadic = G__9426__delegate;
return G__9426
}();
every_pred = function(p1, p2, p3, var_args) {
var ps = var_args;
switch(arguments.length) {
case 1:
return every_pred__1.call(this, p1);
case 2:
return every_pred__2.call(this, p1, p2);
case 3:
return every_pred__3.call(this, p1, p2, p3);
default:
return every_pred__4.cljs$lang$arity$variadic(p1, p2, p3, cljs.core.array_seq(arguments, 3))
}
throw"Invalid arity: " + arguments.length;
};
every_pred.cljs$lang$maxFixedArity = 3;
every_pred.cljs$lang$applyTo = every_pred__4.cljs$lang$applyTo;
every_pred.cljs$lang$arity$1 = every_pred__1;
every_pred.cljs$lang$arity$2 = every_pred__2;
every_pred.cljs$lang$arity$3 = every_pred__3;
every_pred.cljs$lang$arity$variadic = every_pred__4.cljs$lang$arity$variadic;
return every_pred
}();
cljs.core.some_fn = function() {
var some_fn = null;
var some_fn__1 = function(p) {
return function() {
var sp1 = null;
var sp1__0 = function() {
return null
};
var sp1__1 = function(x) {
return p.call(null, x)
};
var sp1__2 = function(x, y) {
var or__3824__auto____9510 = p.call(null, x);
if(cljs.core.truth_(or__3824__auto____9510)) {
return or__3824__auto____9510
}else {
return p.call(null, y)
}
};
var sp1__3 = function(x, y, z) {
var or__3824__auto____9511 = p.call(null, x);
if(cljs.core.truth_(or__3824__auto____9511)) {
return or__3824__auto____9511
}else {
var or__3824__auto____9512 = p.call(null, y);
if(cljs.core.truth_(or__3824__auto____9512)) {
return or__3824__auto____9512
}else {
return p.call(null, z)
}
}
};
var sp1__4 = function() {
var G__9581__delegate = function(x, y, z, args) {
var or__3824__auto____9513 = sp1.call(null, x, y, z);
if(cljs.core.truth_(or__3824__auto____9513)) {
return or__3824__auto____9513
}else {
return cljs.core.some.call(null, p, args)
}
};
var G__9581 = 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__9581__delegate.call(this, x, y, z, args)
};
G__9581.cljs$lang$maxFixedArity = 3;
G__9581.cljs$lang$applyTo = function(arglist__9582) {
var x = cljs.core.first(arglist__9582);
var y = cljs.core.first(cljs.core.next(arglist__9582));
var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__9582)));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__9582)));
return G__9581__delegate(x, y, z, args)
};
G__9581.cljs$lang$arity$variadic = G__9581__delegate;
return G__9581
}();
sp1 = function(x, y, z, var_args) {
var args = var_args;
switch(arguments.length) {
case 0:
return sp1__0.call(this);
case 1:
return sp1__1.call(this, x);
case 2:
return sp1__2.call(this, x, y);
case 3:
return sp1__3.call(this, x, y, z);
default:
return sp1__4.cljs$lang$arity$variadic(x, y, z, cljs.core.array_seq(arguments, 3))
}
throw"Invalid arity: " + arguments.length;
};
sp1.cljs$lang$maxFixedArity = 3;
sp1.cljs$lang$applyTo = sp1__4.cljs$lang$applyTo;
sp1.cljs$lang$arity$0 = sp1__0;
sp1.cljs$lang$arity$1 = sp1__1;
sp1.cljs$lang$arity$2 = sp1__2;
sp1.cljs$lang$arity$3 = sp1__3;
sp1.cljs$lang$arity$variadic = sp1__4.cljs$lang$arity$variadic;
return sp1
}()
};
var some_fn__2 = function(p1, p2) {
return function() {
var sp2 = null;
var sp2__0 = function() {
return null
};
var sp2__1 = function(x) {
var or__3824__auto____9525 = p1.call(null, x);
if(cljs.core.truth_(or__3824__auto____9525)) {
return or__3824__auto____9525
}else {
return p2.call(null, x)
}
};
var sp2__2 = function(x, y) {
var or__3824__auto____9526 = p1.call(null, x);
if(cljs.core.truth_(or__3824__auto____9526)) {
return or__3824__auto____9526
}else {
var or__3824__auto____9527 = p1.call(null, y);
if(cljs.core.truth_(or__3824__auto____9527)) {
return or__3824__auto____9527
}else {
var or__3824__auto____9528 = p2.call(null, x);
if(cljs.core.truth_(or__3824__auto____9528)) {
return or__3824__auto____9528
}else {
return p2.call(null, y)
}
}
}
};
var sp2__3 = function(x, y, z) {
var or__3824__auto____9529 = p1.call(null, x);
if(cljs.core.truth_(or__3824__auto____9529)) {
return or__3824__auto____9529
}else {
var or__3824__auto____9530 = p1.call(null, y);
if(cljs.core.truth_(or__3824__auto____9530)) {
return or__3824__auto____9530
}else {
var or__3824__auto____9531 = p1.call(null, z);
if(cljs.core.truth_(or__3824__auto____9531)) {
return or__3824__auto____9531
}else {
var or__3824__auto____9532 = p2.call(null, x);
if(cljs.core.truth_(or__3824__auto____9532)) {
return or__3824__auto____9532
}else {
var or__3824__auto____9533 = p2.call(null, y);
if(cljs.core.truth_(or__3824__auto____9533)) {
return or__3824__auto____9533
}else {
return p2.call(null, z)
}
}
}
}
}
};
var sp2__4 = function() {
var G__9583__delegate = function(x, y, z, args) {
var or__3824__auto____9534 = sp2.call(null, x, y, z);
if(cljs.core.truth_(or__3824__auto____9534)) {
return or__3824__auto____9534
}else {
return cljs.core.some.call(null, function(p1__9264_SHARP_) {
var or__3824__auto____9535 = p1.call(null, p1__9264_SHARP_);
if(cljs.core.truth_(or__3824__auto____9535)) {
return or__3824__auto____9535
}else {
return p2.call(null, p1__9264_SHARP_)
}
}, args)
}
};
var G__9583 = 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__9583__delegate.call(this, x, y, z, args)
};
G__9583.cljs$lang$maxFixedArity = 3;
G__9583.cljs$lang$applyTo = function(arglist__9584) {
var x = cljs.core.first(arglist__9584);
var y = cljs.core.first(cljs.core.next(arglist__9584));
var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__9584)));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__9584)));
return G__9583__delegate(x, y, z, args)
};
G__9583.cljs$lang$arity$variadic = G__9583__delegate;
return G__9583
}();
sp2 = function(x, y, z, var_args) {
var args = var_args;
switch(arguments.length) {
case 0:
return sp2__0.call(this);
case 1:
return sp2__1.call(this, x);
case 2:
return sp2__2.call(this, x, y);
case 3:
return sp2__3.call(this, x, y, z);
default:
return sp2__4.cljs$lang$arity$variadic(x, y, z, cljs.core.array_seq(arguments, 3))
}
throw"Invalid arity: " + arguments.length;
};
sp2.cljs$lang$maxFixedArity = 3;
sp2.cljs$lang$applyTo = sp2__4.cljs$lang$applyTo;
sp2.cljs$lang$arity$0 = sp2__0;
sp2.cljs$lang$arity$1 = sp2__1;
sp2.cljs$lang$arity$2 = sp2__2;
sp2.cljs$lang$arity$3 = sp2__3;
sp2.cljs$lang$arity$variadic = sp2__4.cljs$lang$arity$variadic;
return sp2
}()
};
var some_fn__3 = function(p1, p2, p3) {
return function() {
var sp3 = null;
var sp3__0 = function() {
return null
};
var sp3__1 = function(x) {
var or__3824__auto____9554 = p1.call(null, x);
if(cljs.core.truth_(or__3824__auto____9554)) {
return or__3824__auto____9554
}else {
var or__3824__auto____9555 = p2.call(null, x);
if(cljs.core.truth_(or__3824__auto____9555)) {
return or__3824__auto____9555
}else {
return p3.call(null, x)
}
}
};
var sp3__2 = function(x, y) {
var or__3824__auto____9556 = p1.call(null, x);
if(cljs.core.truth_(or__3824__auto____9556)) {
return or__3824__auto____9556
}else {
var or__3824__auto____9557 = p2.call(null, x);
if(cljs.core.truth_(or__3824__auto____9557)) {
return or__3824__auto____9557
}else {
var or__3824__auto____9558 = p3.call(null, x);
if(cljs.core.truth_(or__3824__auto____9558)) {
return or__3824__auto____9558
}else {
var or__3824__auto____9559 = p1.call(null, y);
if(cljs.core.truth_(or__3824__auto____9559)) {
return or__3824__auto____9559
}else {
var or__3824__auto____9560 = p2.call(null, y);
if(cljs.core.truth_(or__3824__auto____9560)) {
return or__3824__auto____9560
}else {
return p3.call(null, y)
}
}
}
}
}
};
var sp3__3 = function(x, y, z) {
var or__3824__auto____9561 = p1.call(null, x);
if(cljs.core.truth_(or__3824__auto____9561)) {
return or__3824__auto____9561
}else {
var or__3824__auto____9562 = p2.call(null, x);
if(cljs.core.truth_(or__3824__auto____9562)) {
return or__3824__auto____9562
}else {
var or__3824__auto____9563 = p3.call(null, x);
if(cljs.core.truth_(or__3824__auto____9563)) {
return or__3824__auto____9563
}else {
var or__3824__auto____9564 = p1.call(null, y);
if(cljs.core.truth_(or__3824__auto____9564)) {
return or__3824__auto____9564
}else {
var or__3824__auto____9565 = p2.call(null, y);
if(cljs.core.truth_(or__3824__auto____9565)) {
return or__3824__auto____9565
}else {
var or__3824__auto____9566 = p3.call(null, y);
if(cljs.core.truth_(or__3824__auto____9566)) {
return or__3824__auto____9566
}else {
var or__3824__auto____9567 = p1.call(null, z);
if(cljs.core.truth_(or__3824__auto____9567)) {
return or__3824__auto____9567
}else {
var or__3824__auto____9568 = p2.call(null, z);
if(cljs.core.truth_(or__3824__auto____9568)) {
return or__3824__auto____9568
}else {
return p3.call(null, z)
}
}
}
}
}
}
}
}
};
var sp3__4 = function() {
var G__9585__delegate = function(x, y, z, args) {
var or__3824__auto____9569 = sp3.call(null, x, y, z);
if(cljs.core.truth_(or__3824__auto____9569)) {
return or__3824__auto____9569
}else {
return cljs.core.some.call(null, function(p1__9265_SHARP_) {
var or__3824__auto____9570 = p1.call(null, p1__9265_SHARP_);
if(cljs.core.truth_(or__3824__auto____9570)) {
return or__3824__auto____9570
}else {
var or__3824__auto____9571 = p2.call(null, p1__9265_SHARP_);
if(cljs.core.truth_(or__3824__auto____9571)) {
return or__3824__auto____9571
}else {
return p3.call(null, p1__9265_SHARP_)
}
}
}, args)
}
};
var G__9585 = 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__9585__delegate.call(this, x, y, z, args)
};
G__9585.cljs$lang$maxFixedArity = 3;
G__9585.cljs$lang$applyTo = function(arglist__9586) {
var x = cljs.core.first(arglist__9586);
var y = cljs.core.first(cljs.core.next(arglist__9586));
var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__9586)));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__9586)));
return G__9585__delegate(x, y, z, args)
};
G__9585.cljs$lang$arity$variadic = G__9585__delegate;
return G__9585
}();
sp3 = function(x, y, z, var_args) {
var args = var_args;
switch(arguments.length) {
case 0:
return sp3__0.call(this);
case 1:
return sp3__1.call(this, x);
case 2:
return sp3__2.call(this, x, y);
case 3:
return sp3__3.call(this, x, y, z);
default:
return sp3__4.cljs$lang$arity$variadic(x, y, z, cljs.core.array_seq(arguments, 3))
}
throw"Invalid arity: " + arguments.length;
};
sp3.cljs$lang$maxFixedArity = 3;
sp3.cljs$lang$applyTo = sp3__4.cljs$lang$applyTo;
sp3.cljs$lang$arity$0 = sp3__0;
sp3.cljs$lang$arity$1 = sp3__1;
sp3.cljs$lang$arity$2 = sp3__2;
sp3.cljs$lang$arity$3 = sp3__3;
sp3.cljs$lang$arity$variadic = sp3__4.cljs$lang$arity$variadic;
return sp3
}()
};
var some_fn__4 = function() {
var G__9587__delegate = function(p1, p2, p3, ps) {
var ps__9572 = cljs.core.list_STAR_.call(null, p1, p2, p3, ps);
return function() {
var spn = null;
var spn__0 = function() {
return null
};
var spn__1 = function(x) {
return cljs.core.some.call(null, function(p1__9266_SHARP_) {
return p1__9266_SHARP_.call(null, x)
}, ps__9572)
};
var spn__2 = function(x, y) {
return cljs.core.some.call(null, function(p1__9267_SHARP_) {
var or__3824__auto____9577 = p1__9267_SHARP_.call(null, x);
if(cljs.core.truth_(or__3824__auto____9577)) {
return or__3824__auto____9577
}else {
return p1__9267_SHARP_.call(null, y)
}
}, ps__9572)
};
var spn__3 = function(x, y, z) {
return cljs.core.some.call(null, function(p1__9268_SHARP_) {
var or__3824__auto____9578 = p1__9268_SHARP_.call(null, x);
if(cljs.core.truth_(or__3824__auto____9578)) {
return or__3824__auto____9578
}else {
var or__3824__auto____9579 = p1__9268_SHARP_.call(null, y);
if(cljs.core.truth_(or__3824__auto____9579)) {
return or__3824__auto____9579
}else {
return p1__9268_SHARP_.call(null, z)
}
}
}, ps__9572)
};
var spn__4 = function() {
var G__9588__delegate = function(x, y, z, args) {
var or__3824__auto____9580 = spn.call(null, x, y, z);
if(cljs.core.truth_(or__3824__auto____9580)) {
return or__3824__auto____9580
}else {
return cljs.core.some.call(null, function(p1__9269_SHARP_) {
return cljs.core.some.call(null, p1__9269_SHARP_, args)
}, ps__9572)
}
};
var G__9588 = 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__9588__delegate.call(this, x, y, z, args)
};
G__9588.cljs$lang$maxFixedArity = 3;
G__9588.cljs$lang$applyTo = function(arglist__9589) {
var x = cljs.core.first(arglist__9589);
var y = cljs.core.first(cljs.core.next(arglist__9589));
var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__9589)));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__9589)));
return G__9588__delegate(x, y, z, args)
};
G__9588.cljs$lang$arity$variadic = G__9588__delegate;
return G__9588
}();
spn = function(x, y, z, var_args) {
var args = var_args;
switch(arguments.length) {
case 0:
return spn__0.call(this);
case 1:
return spn__1.call(this, x);
case 2:
return spn__2.call(this, x, y);
case 3:
return spn__3.call(this, x, y, z);
default:
return spn__4.cljs$lang$arity$variadic(x, y, z, cljs.core.array_seq(arguments, 3))
}
throw"Invalid arity: " + arguments.length;
};
spn.cljs$lang$maxFixedArity = 3;
spn.cljs$lang$applyTo = spn__4.cljs$lang$applyTo;
spn.cljs$lang$arity$0 = spn__0;
spn.cljs$lang$arity$1 = spn__1;
spn.cljs$lang$arity$2 = spn__2;
spn.cljs$lang$arity$3 = spn__3;
spn.cljs$lang$arity$variadic = spn__4.cljs$lang$arity$variadic;
return spn
}()
};
var G__9587 = 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__9587__delegate.call(this, p1, p2, p3, ps)
};
G__9587.cljs$lang$maxFixedArity = 3;
G__9587.cljs$lang$applyTo = function(arglist__9590) {
var p1 = cljs.core.first(arglist__9590);
var p2 = cljs.core.first(cljs.core.next(arglist__9590));
var p3 = cljs.core.first(cljs.core.next(cljs.core.next(arglist__9590)));
var ps = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__9590)));
return G__9587__delegate(p1, p2, p3, ps)
};
G__9587.cljs$lang$arity$variadic = G__9587__delegate;
return G__9587
}();
some_fn = function(p1, p2, p3, var_args) {
var ps = var_args;
switch(arguments.length) {
case 1:
return some_fn__1.call(this, p1);
case 2:
return some_fn__2.call(this, p1, p2);
case 3:
return some_fn__3.call(this, p1, p2, p3);
default:
return some_fn__4.cljs$lang$arity$variadic(p1, p2, p3, cljs.core.array_seq(arguments, 3))
}
throw"Invalid arity: " + arguments.length;
};
some_fn.cljs$lang$maxFixedArity = 3;
some_fn.cljs$lang$applyTo = some_fn__4.cljs$lang$applyTo;
some_fn.cljs$lang$arity$1 = some_fn__1;
some_fn.cljs$lang$arity$2 = some_fn__2;
some_fn.cljs$lang$arity$3 = some_fn__3;
some_fn.cljs$lang$arity$variadic = some_fn__4.cljs$lang$arity$variadic;
return some_fn
}();
cljs.core.map = function() {
var map = null;
var map__2 = function(f, coll) {
return new cljs.core.LazySeq(null, false, function() {
var temp__3974__auto____9609 = cljs.core.seq.call(null, coll);
if(temp__3974__auto____9609) {
var s__9610 = temp__3974__auto____9609;
if(cljs.core.chunked_seq_QMARK_.call(null, s__9610)) {
var c__9611 = cljs.core.chunk_first.call(null, s__9610);
var size__9612 = cljs.core.count.call(null, c__9611);
var b__9613 = cljs.core.chunk_buffer.call(null, size__9612);
var n__2551__auto____9614 = size__9612;
var i__9615 = 0;
while(true) {
if(i__9615 < n__2551__auto____9614) {
cljs.core.chunk_append.call(null, b__9613, f.call(null, cljs.core._nth.call(null, c__9611, i__9615)));
var G__9627 = i__9615 + 1;
i__9615 = G__9627;
continue
}else {
}
break
}
return cljs.core.chunk_cons.call(null, cljs.core.chunk.call(null, b__9613), map.call(null, f, cljs.core.chunk_rest.call(null, s__9610)))
}else {
return cljs.core.cons.call(null, f.call(null, cljs.core.first.call(null, s__9610)), map.call(null, f, cljs.core.rest.call(null, s__9610)))
}
}else {
return null
}
}, null)
};
var map__3 = function(f, c1, c2) {
return new cljs.core.LazySeq(null, false, function() {
var s1__9616 = cljs.core.seq.call(null, c1);
var s2__9617 = cljs.core.seq.call(null, c2);
if(function() {
var and__3822__auto____9618 = s1__9616;
if(and__3822__auto____9618) {
return s2__9617
}else {
return and__3822__auto____9618
}
}()) {
return cljs.core.cons.call(null, f.call(null, cljs.core.first.call(null, s1__9616), cljs.core.first.call(null, s2__9617)), map.call(null, f, cljs.core.rest.call(null, s1__9616), cljs.core.rest.call(null, s2__9617)))
}else {
return null
}
}, null)
};
var map__4 = function(f, c1, c2, c3) {
return new cljs.core.LazySeq(null, false, function() {
var s1__9619 = cljs.core.seq.call(null, c1);
var s2__9620 = cljs.core.seq.call(null, c2);
var s3__9621 = cljs.core.seq.call(null, c3);
if(function() {
var and__3822__auto____9622 = s1__9619;
if(and__3822__auto____9622) {
var and__3822__auto____9623 = s2__9620;
if(and__3822__auto____9623) {
return s3__9621
}else {
return and__3822__auto____9623
}
}else {
return and__3822__auto____9622
}
}()) {
return cljs.core.cons.call(null, f.call(null, cljs.core.first.call(null, s1__9619), cljs.core.first.call(null, s2__9620), cljs.core.first.call(null, s3__9621)), map.call(null, f, cljs.core.rest.call(null, s1__9619), cljs.core.rest.call(null, s2__9620), cljs.core.rest.call(null, s3__9621)))
}else {
return null
}
}, null)
};
var map__5 = function() {
var G__9628__delegate = function(f, c1, c2, c3, colls) {
var step__9626 = function step(cs) {
return new cljs.core.LazySeq(null, false, function() {
var ss__9625 = map.call(null, cljs.core.seq, cs);
if(cljs.core.every_QMARK_.call(null, cljs.core.identity, ss__9625)) {
return cljs.core.cons.call(null, map.call(null, cljs.core.first, ss__9625), step.call(null, map.call(null, cljs.core.rest, ss__9625)))
}else {
return null
}
}, null)
};
return map.call(null, function(p1__9430_SHARP_) {
return cljs.core.apply.call(null, f, p1__9430_SHARP_)
}, step__9626.call(null, cljs.core.conj.call(null, colls, c3, c2, c1)))
};
var G__9628 = 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__9628__delegate.call(this, f, c1, c2, c3, colls)
};
G__9628.cljs$lang$maxFixedArity = 4;
G__9628.cljs$lang$applyTo = function(arglist__9629) {
var f = cljs.core.first(arglist__9629);
var c1 = cljs.core.first(cljs.core.next(arglist__9629));
var c2 = cljs.core.first(cljs.core.next(cljs.core.next(arglist__9629)));
var c3 = cljs.core.first(cljs.core.next(cljs.core.next(cljs.core.next(arglist__9629))));
var colls = cljs.core.rest(cljs.core.next(cljs.core.next(cljs.core.next(arglist__9629))));
return G__9628__delegate(f, c1, c2, c3, colls)
};
G__9628.cljs$lang$arity$variadic = G__9628__delegate;
return G__9628
}();
map = function(f, c1, c2, c3, var_args) {
var colls = var_args;
switch(arguments.length) {
case 2:
return map__2.call(this, f, c1);
case 3:
return map__3.call(this, f, c1, c2);
case 4:
return map__4.call(this, f, c1, c2, c3);
default:
return map__5.cljs$lang$arity$variadic(f, c1, c2, c3, cljs.core.array_seq(arguments, 4))
}
throw"Invalid arity: " + arguments.length;
};
map.cljs$lang$maxFixedArity = 4;
map.cljs$lang$applyTo = map__5.cljs$lang$applyTo;
map.cljs$lang$arity$2 = map__2;
map.cljs$lang$arity$3 = map__3;
map.cljs$lang$arity$4 = map__4;
map.cljs$lang$arity$variadic = map__5.cljs$lang$arity$variadic;
return map
}();
cljs.core.take = function take(n, coll) {
return new cljs.core.LazySeq(null, false, function() {
if(n > 0) {
var temp__3974__auto____9632 = cljs.core.seq.call(null, coll);
if(temp__3974__auto____9632) {
var s__9633 = temp__3974__auto____9632;
return cljs.core.cons.call(null, cljs.core.first.call(null, s__9633), take.call(null, n - 1, cljs.core.rest.call(null, s__9633)))
}else {
return null
}
}else {
return null
}
}, null)
};
cljs.core.drop = function drop(n, coll) {
var step__9639 = function(n, coll) {
while(true) {
var s__9637 = cljs.core.seq.call(null, coll);
if(cljs.core.truth_(function() {
var and__3822__auto____9638 = n > 0;
if(and__3822__auto____9638) {
return s__9637
}else {
return and__3822__auto____9638
}
}())) {
var G__9640 = n - 1;
var G__9641 = cljs.core.rest.call(null, s__9637);
n = G__9640;
coll = G__9641;
continue
}else {
return s__9637
}
break
}
};
return new cljs.core.LazySeq(null, false, function() {
return step__9639.call(null, n, coll)
}, null)
};
cljs.core.drop_last = function() {
var drop_last = null;
var drop_last__1 = function(s) {
return drop_last.call(null, 1, s)
};
var drop_last__2 = 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__1.call(this, n);
case 2:
return drop_last__2.call(this, n, s)
}
throw"Invalid arity: " + arguments.length;
};
drop_last.cljs$lang$arity$1 = drop_last__1;
drop_last.cljs$lang$arity$2 = drop_last__2;
return drop_last
}();
cljs.core.take_last = function take_last(n, coll) {
var s__9644 = cljs.core.seq.call(null, coll);
var lead__9645 = cljs.core.seq.call(null, cljs.core.drop.call(null, n, coll));
while(true) {
if(lead__9645) {
var G__9646 = cljs.core.next.call(null, s__9644);
var G__9647 = cljs.core.next.call(null, lead__9645);
s__9644 = G__9646;
lead__9645 = G__9647;
continue
}else {
return s__9644
}
break
}
};
cljs.core.drop_while = function drop_while(pred, coll) {
var step__9653 = function(pred, coll) {
while(true) {
var s__9651 = cljs.core.seq.call(null, coll);
if(cljs.core.truth_(function() {
var and__3822__auto____9652 = s__9651;
if(and__3822__auto____9652) {
return pred.call(null, cljs.core.first.call(null, s__9651))
}else {
return and__3822__auto____9652
}
}())) {
var G__9654 = pred;
var G__9655 = cljs.core.rest.call(null, s__9651);
pred = G__9654;
coll = G__9655;
continue
}else {
return s__9651
}
break
}
};
return new cljs.core.LazySeq(null, false, function() {
return step__9653.call(null, pred, coll)
}, null)
};
cljs.core.cycle = function cycle(coll) {
return new cljs.core.LazySeq(null, false, function() {
var temp__3974__auto____9658 = cljs.core.seq.call(null, coll);
if(temp__3974__auto____9658) {
var s__9659 = temp__3974__auto____9658;
return cljs.core.concat.call(null, s__9659, cycle.call(null, s__9659))
}else {
return null
}
}, null)
};
cljs.core.split_at = function split_at(n, coll) {
return cljs.core.PersistentVector.fromArray([cljs.core.take.call(null, n, coll), cljs.core.drop.call(null, n, coll)], true)
};
cljs.core.repeat = function() {
var repeat = null;
var repeat__1 = function(x) {
return new cljs.core.LazySeq(null, false, function() {
return cljs.core.cons.call(null, x, repeat.call(null, x))
}, null)
};
var repeat__2 = 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__1.call(this, n);
case 2:
return repeat__2.call(this, n, x)
}
throw"Invalid arity: " + arguments.length;
};
repeat.cljs$lang$arity$1 = repeat__1;
repeat.cljs$lang$arity$2 = repeat__2;
return repeat
}();
cljs.core.replicate = function replicate(n, x) {
return cljs.core.take.call(null, n, cljs.core.repeat.call(null, x))
};
cljs.core.repeatedly = function() {
var repeatedly = null;
var repeatedly__1 = function(f) {
return new cljs.core.LazySeq(null, false, function() {
return cljs.core.cons.call(null, f.call(null), repeatedly.call(null, f))
}, null)
};
var repeatedly__2 = 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__1.call(this, n);
case 2:
return repeatedly__2.call(this, n, f)
}
throw"Invalid arity: " + arguments.length;
};
repeatedly.cljs$lang$arity$1 = repeatedly__1;
repeatedly.cljs$lang$arity$2 = repeatedly__2;
return repeatedly
}();
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))
}, null))
};
cljs.core.interleave = function() {
var interleave = null;
var interleave__2 = function(c1, c2) {
return new cljs.core.LazySeq(null, false, function() {
var s1__9664 = cljs.core.seq.call(null, c1);
var s2__9665 = cljs.core.seq.call(null, c2);
if(function() {
var and__3822__auto____9666 = s1__9664;
if(and__3822__auto____9666) {
return s2__9665
}else {
return and__3822__auto____9666
}
}()) {
return cljs.core.cons.call(null, cljs.core.first.call(null, s1__9664), cljs.core.cons.call(null, cljs.core.first.call(null, s2__9665), interleave.call(null, cljs.core.rest.call(null, s1__9664), cljs.core.rest.call(null, s2__9665))))
}else {
return null
}
}, null)
};
var interleave__3 = function() {
var G__9668__delegate = function(c1, c2, colls) {
return new cljs.core.LazySeq(null, false, function() {
var ss__9667 = cljs.core.map.call(null, cljs.core.seq, cljs.core.conj.call(null, colls, c2, c1));
if(cljs.core.every_QMARK_.call(null, cljs.core.identity, ss__9667)) {
return cljs.core.concat.call(null, cljs.core.map.call(null, cljs.core.first, ss__9667), cljs.core.apply.call(null, interleave, cljs.core.map.call(null, cljs.core.rest, ss__9667)))
}else {
return null
}
}, null)
};
var G__9668 = 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__9668__delegate.call(this, c1, c2, colls)
};
G__9668.cljs$lang$maxFixedArity = 2;
G__9668.cljs$lang$applyTo = function(arglist__9669) {
var c1 = cljs.core.first(arglist__9669);
var c2 = cljs.core.first(cljs.core.next(arglist__9669));
var colls = cljs.core.rest(cljs.core.next(arglist__9669));
return G__9668__delegate(c1, c2, colls)
};
G__9668.cljs$lang$arity$variadic = G__9668__delegate;
return G__9668
}();
interleave = function(c1, c2, var_args) {
var colls = var_args;
switch(arguments.length) {
case 2:
return interleave__2.call(this, c1, c2);
default:
return interleave__3.cljs$lang$arity$variadic(c1, c2, cljs.core.array_seq(arguments, 2))
}
throw"Invalid arity: " + arguments.length;
};
interleave.cljs$lang$maxFixedArity = 2;
interleave.cljs$lang$applyTo = interleave__3.cljs$lang$applyTo;
interleave.cljs$lang$arity$2 = interleave__2;
interleave.cljs$lang$arity$variadic = interleave__3.cljs$lang$arity$variadic;
return interleave
}();
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))
};
cljs.core.flatten1 = function flatten1(colls) {
var cat__9679 = function cat(coll, colls) {
return new cljs.core.LazySeq(null, false, function() {
var temp__3971__auto____9677 = cljs.core.seq.call(null, coll);
if(temp__3971__auto____9677) {
var coll__9678 = temp__3971__auto____9677;
return cljs.core.cons.call(null, cljs.core.first.call(null, coll__9678), cat.call(null, cljs.core.rest.call(null, coll__9678), colls))
}else {
if(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
}
}
}, null)
};
return cat__9679.call(null, null, colls)
};
cljs.core.mapcat = function() {
var mapcat = null;
var mapcat__2 = function(f, coll) {
return cljs.core.flatten1.call(null, cljs.core.map.call(null, f, coll))
};
var mapcat__3 = function() {
var G__9680__delegate = function(f, coll, colls) {
return cljs.core.flatten1.call(null, cljs.core.apply.call(null, cljs.core.map, f, coll, colls))
};
var G__9680 = 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__9680__delegate.call(this, f, coll, colls)
};
G__9680.cljs$lang$maxFixedArity = 2;
G__9680.cljs$lang$applyTo = function(arglist__9681) {
var f = cljs.core.first(arglist__9681);
var coll = cljs.core.first(cljs.core.next(arglist__9681));
var colls = cljs.core.rest(cljs.core.next(arglist__9681));
return G__9680__delegate(f, coll, colls)
};
G__9680.cljs$lang$arity$variadic = G__9680__delegate;
return G__9680
}();
mapcat = function(f, coll, var_args) {
var colls = var_args;
switch(arguments.length) {
case 2:
return mapcat__2.call(this, f, coll);
default:
return mapcat__3.cljs$lang$arity$variadic(f, coll, cljs.core.array_seq(arguments, 2))
}
throw"Invalid arity: " + arguments.length;
};
mapcat.cljs$lang$maxFixedArity = 2;
mapcat.cljs$lang$applyTo = mapcat__3.cljs$lang$applyTo;
mapcat.cljs$lang$arity$2 = mapcat__2;
mapcat.cljs$lang$arity$variadic = mapcat__3.cljs$lang$arity$variadic;
return mapcat
}();
cljs.core.filter = function filter(pred, coll) {
return new cljs.core.LazySeq(null, false, function() {
var temp__3974__auto____9691 = cljs.core.seq.call(null, coll);
if(temp__3974__auto____9691) {
var s__9692 = temp__3974__auto____9691;
if(cljs.core.chunked_seq_QMARK_.call(null, s__9692)) {
var c__9693 = cljs.core.chunk_first.call(null, s__9692);
var size__9694 = cljs.core.count.call(null, c__9693);
var b__9695 = cljs.core.chunk_buffer.call(null, size__9694);
var n__2551__auto____9696 = size__9694;
var i__9697 = 0;
while(true) {
if(i__9697 < n__2551__auto____9696) {
if(cljs.core.truth_(pred.call(null, cljs.core._nth.call(null, c__9693, i__9697)))) {
cljs.core.chunk_append.call(null, b__9695, cljs.core._nth.call(null, c__9693, i__9697))
}else {
}
var G__9700 = i__9697 + 1;
i__9697 = G__9700;
continue
}else {
}
break
}
return cljs.core.chunk_cons.call(null, cljs.core.chunk.call(null, b__9695), filter.call(null, pred, cljs.core.chunk_rest.call(null, s__9692)))
}else {
var f__9698 = cljs.core.first.call(null, s__9692);
var r__9699 = cljs.core.rest.call(null, s__9692);
if(cljs.core.truth_(pred.call(null, f__9698))) {
return cljs.core.cons.call(null, f__9698, filter.call(null, pred, r__9699))
}else {
return filter.call(null, pred, r__9699)
}
}
}else {
return null
}
}, null)
};
cljs.core.remove = function remove(pred, coll) {
return cljs.core.filter.call(null, cljs.core.complement.call(null, pred), coll)
};
cljs.core.tree_seq = function tree_seq(branch_QMARK_, children, root) {
var walk__9703 = 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)
}, null)
};
return walk__9703.call(null, root)
};
cljs.core.flatten = function flatten(x) {
return cljs.core.filter.call(null, function(p1__9701_SHARP_) {
return!cljs.core.sequential_QMARK_.call(null, p1__9701_SHARP_)
}, cljs.core.rest.call(null, cljs.core.tree_seq.call(null, cljs.core.sequential_QMARK_, cljs.core.seq, x)))
};
cljs.core.into = function into(to, from) {
if(function() {
var G__9707__9708 = to;
if(G__9707__9708) {
if(function() {
var or__3824__auto____9709 = G__9707__9708.cljs$lang$protocol_mask$partition1$ & 1;
if(or__3824__auto____9709) {
return or__3824__auto____9709
}else {
return G__9707__9708.cljs$core$IEditableCollection$
}
}()) {
return true
}else {
if(!G__9707__9708.cljs$lang$protocol_mask$partition1$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IEditableCollection, G__9707__9708)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IEditableCollection, G__9707__9708)
}
}()) {
return cljs.core.persistent_BANG_.call(null, cljs.core.reduce.call(null, cljs.core._conj_BANG_, cljs.core.transient$.call(null, to), from))
}else {
return cljs.core.reduce.call(null, cljs.core._conj, to, from)
}
};
cljs.core.mapv = function() {
var mapv = null;
var mapv__2 = function(f, coll) {
return cljs.core.persistent_BANG_.call(null, cljs.core.reduce.call(null, function(v, o) {
return cljs.core.conj_BANG_.call(null, v, f.call(null, o))
}, cljs.core.transient$.call(null, cljs.core.PersistentVector.EMPTY), coll))
};
var mapv__3 = function(f, c1, c2) {
return cljs.core.into.call(null, cljs.core.PersistentVector.EMPTY, cljs.core.map.call(null, f, c1, c2))
};
var mapv__4 = function(f, c1, c2, c3) {
return cljs.core.into.call(null, cljs.core.PersistentVector.EMPTY, cljs.core.map.call(null, f, c1, c2, c3))
};
var mapv__5 = function() {
var G__9710__delegate = function(f, c1, c2, c3, colls) {
return cljs.core.into.call(null, cljs.core.PersistentVector.EMPTY, cljs.core.apply.call(null, cljs.core.map, f, c1, c2, c3, colls))
};
var G__9710 = 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__9710__delegate.call(this, f, c1, c2, c3, colls)
};
G__9710.cljs$lang$maxFixedArity = 4;
G__9710.cljs$lang$applyTo = function(arglist__9711) {
var f = cljs.core.first(arglist__9711);
var c1 = cljs.core.first(cljs.core.next(arglist__9711));
var c2 = cljs.core.first(cljs.core.next(cljs.core.next(arglist__9711)));
var c3 = cljs.core.first(cljs.core.next(cljs.core.next(cljs.core.next(arglist__9711))));
var colls = cljs.core.rest(cljs.core.next(cljs.core.next(cljs.core.next(arglist__9711))));
return G__9710__delegate(f, c1, c2, c3, colls)
};
G__9710.cljs$lang$arity$variadic = G__9710__delegate;
return G__9710
}();
mapv = function(f, c1, c2, c3, var_args) {
var colls = var_args;
switch(arguments.length) {
case 2:
return mapv__2.call(this, f, c1);
case 3:
return mapv__3.call(this, f, c1, c2);
case 4:
return mapv__4.call(this, f, c1, c2, c3);
default:
return mapv__5.cljs$lang$arity$variadic(f, c1, c2, c3, cljs.core.array_seq(arguments, 4))
}
throw"Invalid arity: " + arguments.length;
};
mapv.cljs$lang$maxFixedArity = 4;
mapv.cljs$lang$applyTo = mapv__5.cljs$lang$applyTo;
mapv.cljs$lang$arity$2 = mapv__2;
mapv.cljs$lang$arity$3 = mapv__3;
mapv.cljs$lang$arity$4 = mapv__4;
mapv.cljs$lang$arity$variadic = mapv__5.cljs$lang$arity$variadic;
return mapv
}();
cljs.core.filterv = function filterv(pred, coll) {
return cljs.core.persistent_BANG_.call(null, cljs.core.reduce.call(null, function(v, o) {
if(cljs.core.truth_(pred.call(null, o))) {
return cljs.core.conj_BANG_.call(null, v, o)
}else {
return v
}
}, cljs.core.transient$.call(null, cljs.core.PersistentVector.EMPTY), coll))
};
cljs.core.partition = function() {
var partition = null;
var partition__2 = function(n, coll) {
return partition.call(null, n, n, coll)
};
var partition__3 = function(n, step, coll) {
return new cljs.core.LazySeq(null, false, function() {
var temp__3974__auto____9718 = cljs.core.seq.call(null, coll);
if(temp__3974__auto____9718) {
var s__9719 = temp__3974__auto____9718;
var p__9720 = cljs.core.take.call(null, n, s__9719);
if(n === cljs.core.count.call(null, p__9720)) {
return cljs.core.cons.call(null, p__9720, partition.call(null, n, step, cljs.core.drop.call(null, step, s__9719)))
}else {
return null
}
}else {
return null
}
}, null)
};
var partition__4 = function(n, step, pad, coll) {
return new cljs.core.LazySeq(null, false, function() {
var temp__3974__auto____9721 = cljs.core.seq.call(null, coll);
if(temp__3974__auto____9721) {
var s__9722 = temp__3974__auto____9721;
var p__9723 = cljs.core.take.call(null, n, s__9722);
if(n === cljs.core.count.call(null, p__9723)) {
return cljs.core.cons.call(null, p__9723, partition.call(null, n, step, pad, cljs.core.drop.call(null, step, s__9722)))
}else {
return cljs.core.list.call(null, cljs.core.take.call(null, n, cljs.core.concat.call(null, p__9723, pad)))
}
}else {
return null
}
}, null)
};
partition = function(n, step, pad, coll) {
switch(arguments.length) {
case 2:
return partition__2.call(this, n, step);
case 3:
return partition__3.call(this, n, step, pad);
case 4:
return partition__4.call(this, n, step, pad, coll)
}
throw"Invalid arity: " + arguments.length;
};
partition.cljs$lang$arity$2 = partition__2;
partition.cljs$lang$arity$3 = partition__3;
partition.cljs$lang$arity$4 = partition__4;
return partition
}();
cljs.core.get_in = function() {
var get_in = null;
var get_in__2 = function(m, ks) {
return cljs.core.reduce.call(null, cljs.core.get, m, ks)
};
var get_in__3 = function(m, ks, not_found) {
var sentinel__9728 = cljs.core.lookup_sentinel;
var m__9729 = m;
var ks__9730 = cljs.core.seq.call(null, ks);
while(true) {
if(ks__9730) {
var m__9731 = cljs.core._lookup.call(null, m__9729, cljs.core.first.call(null, ks__9730), sentinel__9728);
if(sentinel__9728 === m__9731) {
return not_found
}else {
var G__9732 = sentinel__9728;
var G__9733 = m__9731;
var G__9734 = cljs.core.next.call(null, ks__9730);
sentinel__9728 = G__9732;
m__9729 = G__9733;
ks__9730 = G__9734;
continue
}
}else {
return m__9729
}
break
}
};
get_in = function(m, ks, not_found) {
switch(arguments.length) {
case 2:
return get_in__2.call(this, m, ks);
case 3:
return get_in__3.call(this, m, ks, not_found)
}
throw"Invalid arity: " + arguments.length;
};
get_in.cljs$lang$arity$2 = get_in__2;
get_in.cljs$lang$arity$3 = get_in__3;
return get_in
}();
cljs.core.assoc_in = function assoc_in(m, p__9735, v) {
var vec__9740__9741 = p__9735;
var k__9742 = cljs.core.nth.call(null, vec__9740__9741, 0, null);
var ks__9743 = cljs.core.nthnext.call(null, vec__9740__9741, 1);
if(cljs.core.truth_(ks__9743)) {
return cljs.core.assoc.call(null, m, k__9742, assoc_in.call(null, cljs.core._lookup.call(null, m, k__9742, null), ks__9743, v))
}else {
return cljs.core.assoc.call(null, m, k__9742, v)
}
};
cljs.core.update_in = function() {
var update_in__delegate = function(m, p__9744, f, args) {
var vec__9749__9750 = p__9744;
var k__9751 = cljs.core.nth.call(null, vec__9749__9750, 0, null);
var ks__9752 = cljs.core.nthnext.call(null, vec__9749__9750, 1);
if(cljs.core.truth_(ks__9752)) {
return cljs.core.assoc.call(null, m, k__9751, cljs.core.apply.call(null, update_in, cljs.core._lookup.call(null, m, k__9751, null), ks__9752, f, args))
}else {
return cljs.core.assoc.call(null, m, k__9751, cljs.core.apply.call(null, f, cljs.core._lookup.call(null, m, k__9751, null), args))
}
};
var update_in = function(m, p__9744, 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__9744, f, args)
};
update_in.cljs$lang$maxFixedArity = 3;
update_in.cljs$lang$applyTo = function(arglist__9753) {
var m = cljs.core.first(arglist__9753);
var p__9744 = cljs.core.first(cljs.core.next(arglist__9753));
var f = cljs.core.first(cljs.core.next(cljs.core.next(arglist__9753)));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__9753)));
return update_in__delegate(m, p__9744, f, args)
};
update_in.cljs$lang$arity$variadic = update_in__delegate;
return update_in
}();
cljs.core.Vector = function(meta, array, __hash) {
this.meta = meta;
this.array = array;
this.__hash = __hash;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 32400159
};
cljs.core.Vector.cljs$lang$type = true;
cljs.core.Vector.cljs$lang$ctorPrSeq = function(this__2333__auto__) {
return cljs.core.list.call(null, "cljs.core/Vector")
};
cljs.core.Vector.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var this__9756 = this;
var h__2216__auto____9757 = this__9756.__hash;
if(!(h__2216__auto____9757 == null)) {
return h__2216__auto____9757
}else {
var h__2216__auto____9758 = cljs.core.hash_coll.call(null, coll);
this__9756.__hash = h__2216__auto____9758;
return h__2216__auto____9758
}
};
cljs.core.Vector.prototype.cljs$core$ILookup$_lookup$arity$2 = function(coll, k) {
var this__9759 = this;
return coll.cljs$core$IIndexed$_nth$arity$3(coll, k, null)
};
cljs.core.Vector.prototype.cljs$core$ILookup$_lookup$arity$3 = function(coll, k, not_found) {
var this__9760 = this;
return coll.cljs$core$IIndexed$_nth$arity$3(coll, k, not_found)
};
cljs.core.Vector.prototype.cljs$core$IAssociative$_assoc$arity$3 = function(coll, k, v) {
var this__9761 = this;
var new_array__9762 = this__9761.array.slice();
new_array__9762[k] = v;
return new cljs.core.Vector(this__9761.meta, new_array__9762, null)
};
cljs.core.Vector.prototype.call = function() {
var G__9793 = null;
var G__9793__2 = function(this_sym9763, k) {
var this__9765 = this;
var this_sym9763__9766 = this;
var coll__9767 = this_sym9763__9766;
return coll__9767.cljs$core$ILookup$_lookup$arity$2(coll__9767, k)
};
var G__9793__3 = function(this_sym9764, k, not_found) {
var this__9765 = this;
var this_sym9764__9768 = this;
var coll__9769 = this_sym9764__9768;
return coll__9769.cljs$core$ILookup$_lookup$arity$3(coll__9769, k, not_found)
};
G__9793 = function(this_sym9764, k, not_found) {
switch(arguments.length) {
case 2:
return G__9793__2.call(this, this_sym9764, k);
case 3:
return G__9793__3.call(this, this_sym9764, k, not_found)
}
throw"Invalid arity: " + arguments.length;
};
return G__9793
}();
cljs.core.Vector.prototype.apply = function(this_sym9754, args9755) {
var this__9770 = this;
return this_sym9754.call.apply(this_sym9754, [this_sym9754].concat(args9755.slice()))
};
cljs.core.Vector.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var this__9771 = this;
var new_array__9772 = this__9771.array.slice();
new_array__9772.push(o);
return new cljs.core.Vector(this__9771.meta, new_array__9772, null)
};
cljs.core.Vector.prototype.toString = function() {
var this__9773 = this;
var this__9774 = this;
return cljs.core.pr_str.call(null, this__9774)
};
cljs.core.Vector.prototype.cljs$core$IReduce$_reduce$arity$2 = function(v, f) {
var this__9775 = this;
return cljs.core.ci_reduce.call(null, this__9775.array, f)
};
cljs.core.Vector.prototype.cljs$core$IReduce$_reduce$arity$3 = function(v, f, start) {
var this__9776 = this;
return cljs.core.ci_reduce.call(null, this__9776.array, f, start)
};
cljs.core.Vector.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var this__9777 = this;
if(this__9777.array.length > 0) {
var vector_seq__9778 = function vector_seq(i) {
return new cljs.core.LazySeq(null, false, function() {
if(i < this__9777.array.length) {
return cljs.core.cons.call(null, this__9777.array[i], vector_seq.call(null, i + 1))
}else {
return null
}
}, null)
};
return vector_seq__9778.call(null, 0)
}else {
return null
}
};
cljs.core.Vector.prototype.cljs$core$ICounted$_count$arity$1 = function(coll) {
var this__9779 = this;
return this__9779.array.length
};
cljs.core.Vector.prototype.cljs$core$IStack$_peek$arity$1 = function(coll) {
var this__9780 = this;
var count__9781 = this__9780.array.length;
if(count__9781 > 0) {
return this__9780.array[count__9781 - 1]
}else {
return null
}
};
cljs.core.Vector.prototype.cljs$core$IStack$_pop$arity$1 = function(coll) {
var this__9782 = this;
if(this__9782.array.length > 0) {
var new_array__9783 = this__9782.array.slice();
new_array__9783.pop();
return new cljs.core.Vector(this__9782.meta, new_array__9783, null)
}else {
throw new Error("Can't pop empty vector");
}
};
cljs.core.Vector.prototype.cljs$core$IVector$_assoc_n$arity$3 = function(coll, n, val) {
var this__9784 = this;
return coll.cljs$core$IAssociative$_assoc$arity$3(coll, n, val)
};
cljs.core.Vector.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var this__9785 = this;
return cljs.core.equiv_sequential.call(null, coll, other)
};
cljs.core.Vector.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(coll, meta) {
var this__9786 = this;
return new cljs.core.Vector(meta, this__9786.array, this__9786.__hash)
};
cljs.core.Vector.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var this__9787 = this;
return this__9787.meta
};
cljs.core.Vector.prototype.cljs$core$IIndexed$_nth$arity$2 = function(coll, n) {
var this__9788 = this;
if(function() {
var and__3822__auto____9789 = 0 <= n;
if(and__3822__auto____9789) {
return n < this__9788.array.length
}else {
return and__3822__auto____9789
}
}()) {
return this__9788.array[n]
}else {
return null
}
};
cljs.core.Vector.prototype.cljs$core$IIndexed$_nth$arity$3 = function(coll, n, not_found) {
var this__9790 = this;
if(function() {
var and__3822__auto____9791 = 0 <= n;
if(and__3822__auto____9791) {
return n < this__9790.array.length
}else {
return and__3822__auto____9791
}
}()) {
return this__9790.array[n]
}else {
return not_found
}
};
cljs.core.Vector.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var this__9792 = this;
return cljs.core.with_meta.call(null, cljs.core.Vector.EMPTY, this__9792.meta)
};
cljs.core.Vector;
cljs.core.Vector.EMPTY = new cljs.core.Vector(null, [], 0);
cljs.core.Vector.fromArray = function(xs) {
return new cljs.core.Vector(null, xs, null)
};
cljs.core.VectorNode = function(edit, arr) {
this.edit = edit;
this.arr = arr
};
cljs.core.VectorNode.cljs$lang$type = true;
cljs.core.VectorNode.cljs$lang$ctorPrSeq = function(this__2334__auto__) {
return cljs.core.list.call(null, "cljs.core/VectorNode")
};
cljs.core.VectorNode;
cljs.core.pv_fresh_node = function pv_fresh_node(edit) {
return new cljs.core.VectorNode(edit, cljs.core.make_array.call(null, 32))
};
cljs.core.pv_aget = function pv_aget(node, idx) {
return node.arr[idx]
};
cljs.core.pv_aset = function pv_aset(node, idx, val) {
return node.arr[idx] = val
};
cljs.core.pv_clone_node = function pv_clone_node(node) {
return new cljs.core.VectorNode(node.edit, node.arr.slice())
};
cljs.core.tail_off = function tail_off(pv) {
var cnt__9795 = pv.cnt;
if(cnt__9795 < 32) {
return 0
}else {
return cnt__9795 - 1 >>> 5 << 5
}
};
cljs.core.new_path = function new_path(edit, level, node) {
var ll__9801 = level;
var ret__9802 = node;
while(true) {
if(ll__9801 === 0) {
return ret__9802
}else {
var embed__9803 = ret__9802;
var r__9804 = cljs.core.pv_fresh_node.call(null, edit);
var ___9805 = cljs.core.pv_aset.call(null, r__9804, 0, embed__9803);
var G__9806 = ll__9801 - 5;
var G__9807 = r__9804;
ll__9801 = G__9806;
ret__9802 = G__9807;
continue
}
break
}
};
cljs.core.push_tail = function push_tail(pv, level, parent, tailnode) {
var ret__9813 = cljs.core.pv_clone_node.call(null, parent);
var subidx__9814 = pv.cnt - 1 >>> level & 31;
if(5 === level) {
cljs.core.pv_aset.call(null, ret__9813, subidx__9814, tailnode);
return ret__9813
}else {
var child__9815 = cljs.core.pv_aget.call(null, parent, subidx__9814);
if(!(child__9815 == null)) {
var node_to_insert__9816 = push_tail.call(null, pv, level - 5, child__9815, tailnode);
cljs.core.pv_aset.call(null, ret__9813, subidx__9814, node_to_insert__9816);
return ret__9813
}else {
var node_to_insert__9817 = cljs.core.new_path.call(null, null, level - 5, tailnode);
cljs.core.pv_aset.call(null, ret__9813, subidx__9814, node_to_insert__9817);
return ret__9813
}
}
};
cljs.core.array_for = function array_for(pv, i) {
if(function() {
var and__3822__auto____9821 = 0 <= i;
if(and__3822__auto____9821) {
return i < pv.cnt
}else {
return and__3822__auto____9821
}
}()) {
if(i >= cljs.core.tail_off.call(null, pv)) {
return pv.tail
}else {
var node__9822 = pv.root;
var level__9823 = pv.shift;
while(true) {
if(level__9823 > 0) {
var G__9824 = cljs.core.pv_aget.call(null, node__9822, i >>> level__9823 & 31);
var G__9825 = level__9823 - 5;
node__9822 = G__9824;
level__9823 = G__9825;
continue
}else {
return node__9822.arr
}
break
}
}
}else {
throw new Error([cljs.core.str("No item "), cljs.core.str(i), cljs.core.str(" in vector of length "), cljs.core.str(pv.cnt)].join(""));
}
};
cljs.core.do_assoc = function do_assoc(pv, level, node, i, val) {
var ret__9828 = cljs.core.pv_clone_node.call(null, node);
if(level === 0) {
cljs.core.pv_aset.call(null, ret__9828, i & 31, val);
return ret__9828
}else {
var subidx__9829 = i >>> level & 31;
cljs.core.pv_aset.call(null, ret__9828, subidx__9829, do_assoc.call(null, pv, level - 5, cljs.core.pv_aget.call(null, node, subidx__9829), i, val));
return ret__9828
}
};
cljs.core.pop_tail = function pop_tail(pv, level, node) {
var subidx__9835 = pv.cnt - 2 >>> level & 31;
if(level > 5) {
var new_child__9836 = pop_tail.call(null, pv, level - 5, cljs.core.pv_aget.call(null, node, subidx__9835));
if(function() {
var and__3822__auto____9837 = new_child__9836 == null;
if(and__3822__auto____9837) {
return subidx__9835 === 0
}else {
return and__3822__auto____9837
}
}()) {
return null
}else {
var ret__9838 = cljs.core.pv_clone_node.call(null, node);
cljs.core.pv_aset.call(null, ret__9838, subidx__9835, new_child__9836);
return ret__9838
}
}else {
if(subidx__9835 === 0) {
return null
}else {
if("\ufdd0'else") {
var ret__9839 = cljs.core.pv_clone_node.call(null, node);
cljs.core.pv_aset.call(null, ret__9839, subidx__9835, null);
return ret__9839
}else {
return null
}
}
}
};
cljs.core.PersistentVector = function(meta, cnt, shift, root, tail, __hash) {
this.meta = meta;
this.cnt = cnt;
this.shift = shift;
this.root = root;
this.tail = tail;
this.__hash = __hash;
this.cljs$lang$protocol_mask$partition1$ = 1;
this.cljs$lang$protocol_mask$partition0$ = 167668511
};
cljs.core.PersistentVector.cljs$lang$type = true;
cljs.core.PersistentVector.cljs$lang$ctorPrSeq = function(this__2333__auto__) {
return cljs.core.list.call(null, "cljs.core/PersistentVector")
};
cljs.core.PersistentVector.prototype.cljs$core$IEditableCollection$_as_transient$arity$1 = function(coll) {
var this__9842 = this;
return new cljs.core.TransientVector(this__9842.cnt, this__9842.shift, cljs.core.tv_editable_root.call(null, this__9842.root), cljs.core.tv_editable_tail.call(null, this__9842.tail))
};
cljs.core.PersistentVector.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var this__9843 = this;
var h__2216__auto____9844 = this__9843.__hash;
if(!(h__2216__auto____9844 == null)) {
return h__2216__auto____9844
}else {
var h__2216__auto____9845 = cljs.core.hash_coll.call(null, coll);
this__9843.__hash = h__2216__auto____9845;
return h__2216__auto____9845
}
};
cljs.core.PersistentVector.prototype.cljs$core$ILookup$_lookup$arity$2 = function(coll, k) {
var this__9846 = this;
return coll.cljs$core$IIndexed$_nth$arity$3(coll, k, null)
};
cljs.core.PersistentVector.prototype.cljs$core$ILookup$_lookup$arity$3 = function(coll, k, not_found) {
var this__9847 = this;
return coll.cljs$core$IIndexed$_nth$arity$3(coll, k, not_found)
};
cljs.core.PersistentVector.prototype.cljs$core$IAssociative$_assoc$arity$3 = function(coll, k, v) {
var this__9848 = this;
if(function() {
var and__3822__auto____9849 = 0 <= k;
if(and__3822__auto____9849) {
return k < this__9848.cnt
}else {
return and__3822__auto____9849
}
}()) {
if(cljs.core.tail_off.call(null, coll) <= k) {
var new_tail__9850 = this__9848.tail.slice();
new_tail__9850[k & 31] = v;
return new cljs.core.PersistentVector(this__9848.meta, this__9848.cnt, this__9848.shift, this__9848.root, new_tail__9850, null)
}else {
return new cljs.core.PersistentVector(this__9848.meta, this__9848.cnt, this__9848.shift, cljs.core.do_assoc.call(null, coll, this__9848.shift, this__9848.root, k, v), this__9848.tail, null)
}
}else {
if(k === this__9848.cnt) {
return coll.cljs$core$ICollection$_conj$arity$2(coll, v)
}else {
if("\ufdd0'else") {
throw new Error([cljs.core.str("Index "), cljs.core.str(k), cljs.core.str(" out of bounds [0,"), cljs.core.str(this__9848.cnt), cljs.core.str("]")].join(""));
}else {
return null
}
}
}
};
cljs.core.PersistentVector.prototype.call = function() {
var G__9898 = null;
var G__9898__2 = function(this_sym9851, k) {
var this__9853 = this;
var this_sym9851__9854 = this;
var coll__9855 = this_sym9851__9854;
return coll__9855.cljs$core$ILookup$_lookup$arity$2(coll__9855, k)
};
var G__9898__3 = function(this_sym9852, k, not_found) {
var this__9853 = this;
var this_sym9852__9856 = this;
var coll__9857 = this_sym9852__9856;
return coll__9857.cljs$core$ILookup$_lookup$arity$3(coll__9857, k, not_found)
};
G__9898 = function(this_sym9852, k, not_found) {
switch(arguments.length) {
case 2:
return G__9898__2.call(this, this_sym9852, k);
case 3:
return G__9898__3.call(this, this_sym9852, k, not_found)
}
throw"Invalid arity: " + arguments.length;
};
return G__9898
}();
cljs.core.PersistentVector.prototype.apply = function(this_sym9840, args9841) {
var this__9858 = this;
return this_sym9840.call.apply(this_sym9840, [this_sym9840].concat(args9841.slice()))
};
cljs.core.PersistentVector.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 = function(v, f, init) {
var this__9859 = this;
var step_init__9860 = [0, init];
var i__9861 = 0;
while(true) {
if(i__9861 < this__9859.cnt) {
var arr__9862 = cljs.core.array_for.call(null, v, i__9861);
var len__9863 = arr__9862.length;
var init__9867 = function() {
var j__9864 = 0;
var init__9865 = step_init__9860[1];
while(true) {
if(j__9864 < len__9863) {
var init__9866 = f.call(null, init__9865, j__9864 + i__9861, arr__9862[j__9864]);
if(cljs.core.reduced_QMARK_.call(null, init__9866)) {
return init__9866
}else {
var G__9899 = j__9864 + 1;
var G__9900 = init__9866;
j__9864 = G__9899;
init__9865 = G__9900;
continue
}
}else {
step_init__9860[0] = len__9863;
step_init__9860[1] = init__9865;
return init__9865
}
break
}
}();
if(cljs.core.reduced_QMARK_.call(null, init__9867)) {
return cljs.core.deref.call(null, init__9867)
}else {
var G__9901 = i__9861 + step_init__9860[0];
i__9861 = G__9901;
continue
}
}else {
return step_init__9860[1]
}
break
}
};
cljs.core.PersistentVector.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var this__9868 = this;
if(this__9868.cnt - cljs.core.tail_off.call(null, coll) < 32) {
var new_tail__9869 = this__9868.tail.slice();
new_tail__9869.push(o);
return new cljs.core.PersistentVector(this__9868.meta, this__9868.cnt + 1, this__9868.shift, this__9868.root, new_tail__9869, null)
}else {
var root_overflow_QMARK___9870 = this__9868.cnt >>> 5 > 1 << this__9868.shift;
var new_shift__9871 = root_overflow_QMARK___9870 ? this__9868.shift + 5 : this__9868.shift;
var new_root__9873 = root_overflow_QMARK___9870 ? function() {
var n_r__9872 = cljs.core.pv_fresh_node.call(null, null);
cljs.core.pv_aset.call(null, n_r__9872, 0, this__9868.root);
cljs.core.pv_aset.call(null, n_r__9872, 1, cljs.core.new_path.call(null, null, this__9868.shift, new cljs.core.VectorNode(null, this__9868.tail)));
return n_r__9872
}() : cljs.core.push_tail.call(null, coll, this__9868.shift, this__9868.root, new cljs.core.VectorNode(null, this__9868.tail));
return new cljs.core.PersistentVector(this__9868.meta, this__9868.cnt + 1, new_shift__9871, new_root__9873, [o], null)
}
};
cljs.core.PersistentVector.prototype.cljs$core$IReversible$_rseq$arity$1 = function(coll) {
var this__9874 = this;
if(this__9874.cnt > 0) {
return new cljs.core.RSeq(coll, this__9874.cnt - 1, null)
}else {
return cljs.core.List.EMPTY
}
};
cljs.core.PersistentVector.prototype.cljs$core$IMapEntry$_key$arity$1 = function(coll) {
var this__9875 = this;
return coll.cljs$core$IIndexed$_nth$arity$2(coll, 0)
};
cljs.core.PersistentVector.prototype.cljs$core$IMapEntry$_val$arity$1 = function(coll) {
var this__9876 = this;
return coll.cljs$core$IIndexed$_nth$arity$2(coll, 1)
};
cljs.core.PersistentVector.prototype.toString = function() {
var this__9877 = this;
var this__9878 = this;
return cljs.core.pr_str.call(null, this__9878)
};
cljs.core.PersistentVector.prototype.cljs$core$IReduce$_reduce$arity$2 = function(v, f) {
var this__9879 = this;
return cljs.core.ci_reduce.call(null, v, f)
};
cljs.core.PersistentVector.prototype.cljs$core$IReduce$_reduce$arity$3 = function(v, f, start) {
var this__9880 = this;
return cljs.core.ci_reduce.call(null, v, f, start)
};
cljs.core.PersistentVector.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var this__9881 = this;
if(this__9881.cnt === 0) {
return null
}else {
return cljs.core.chunked_seq.call(null, coll, 0, 0)
}
};
cljs.core.PersistentVector.prototype.cljs$core$ICounted$_count$arity$1 = function(coll) {
var this__9882 = this;
return this__9882.cnt
};
cljs.core.PersistentVector.prototype.cljs$core$IStack$_peek$arity$1 = function(coll) {
var this__9883 = this;
if(this__9883.cnt > 0) {
return coll.cljs$core$IIndexed$_nth$arity$2(coll, this__9883.cnt - 1)
}else {
return null
}
};
cljs.core.PersistentVector.prototype.cljs$core$IStack$_pop$arity$1 = function(coll) {
var this__9884 = this;
if(this__9884.cnt === 0) {
throw new Error("Can't pop empty vector");
}else {
if(1 === this__9884.cnt) {
return cljs.core._with_meta.call(null, cljs.core.PersistentVector.EMPTY, this__9884.meta)
}else {
if(1 < this__9884.cnt - cljs.core.tail_off.call(null, coll)) {
return new cljs.core.PersistentVector(this__9884.meta, this__9884.cnt - 1, this__9884.shift, this__9884.root, this__9884.tail.slice(0, -1), null)
}else {
if("\ufdd0'else") {
var new_tail__9885 = cljs.core.array_for.call(null, coll, this__9884.cnt - 2);
var nr__9886 = cljs.core.pop_tail.call(null, coll, this__9884.shift, this__9884.root);
var new_root__9887 = nr__9886 == null ? cljs.core.PersistentVector.EMPTY_NODE : nr__9886;
var cnt_1__9888 = this__9884.cnt - 1;
if(function() {
var and__3822__auto____9889 = 5 < this__9884.shift;
if(and__3822__auto____9889) {
return cljs.core.pv_aget.call(null, new_root__9887, 1) == null
}else {
return and__3822__auto____9889
}
}()) {
return new cljs.core.PersistentVector(this__9884.meta, cnt_1__9888, this__9884.shift - 5, cljs.core.pv_aget.call(null, new_root__9887, 0), new_tail__9885, null)
}else {
return new cljs.core.PersistentVector(this__9884.meta, cnt_1__9888, this__9884.shift, new_root__9887, new_tail__9885, null)
}
}else {
return null
}
}
}
}
};
cljs.core.PersistentVector.prototype.cljs$core$IVector$_assoc_n$arity$3 = function(coll, n, val) {
var this__9890 = this;
return coll.cljs$core$IAssociative$_assoc$arity$3(coll, n, val)
};
cljs.core.PersistentVector.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var this__9891 = this;
return cljs.core.equiv_sequential.call(null, coll, other)
};
cljs.core.PersistentVector.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(coll, meta) {
var this__9892 = this;
return new cljs.core.PersistentVector(meta, this__9892.cnt, this__9892.shift, this__9892.root, this__9892.tail, this__9892.__hash)
};
cljs.core.PersistentVector.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var this__9893 = this;
return this__9893.meta
};
cljs.core.PersistentVector.prototype.cljs$core$IIndexed$_nth$arity$2 = function(coll, n) {
var this__9894 = this;
return cljs.core.array_for.call(null, coll, n)[n & 31]
};
cljs.core.PersistentVector.prototype.cljs$core$IIndexed$_nth$arity$3 = function(coll, n, not_found) {
var this__9895 = this;
if(function() {
var and__3822__auto____9896 = 0 <= n;
if(and__3822__auto____9896) {
return n < this__9895.cnt
}else {
return and__3822__auto____9896
}
}()) {
return coll.cljs$core$IIndexed$_nth$arity$2(coll, n)
}else {
return not_found
}
};
cljs.core.PersistentVector.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var this__9897 = this;
return cljs.core.with_meta.call(null, cljs.core.PersistentVector.EMPTY, this__9897.meta)
};
cljs.core.PersistentVector;
cljs.core.PersistentVector.EMPTY_NODE = cljs.core.pv_fresh_node.call(null, null);
cljs.core.PersistentVector.EMPTY = new cljs.core.PersistentVector(null, 0, 5, cljs.core.PersistentVector.EMPTY_NODE, [], 0);
cljs.core.PersistentVector.fromArray = function(xs, no_clone) {
var l__9902 = xs.length;
var xs__9903 = no_clone === true ? xs : xs.slice();
if(l__9902 < 32) {
return new cljs.core.PersistentVector(null, l__9902, 5, cljs.core.PersistentVector.EMPTY_NODE, xs__9903, null)
}else {
var node__9904 = xs__9903.slice(0, 32);
var v__9905 = new cljs.core.PersistentVector(null, 32, 5, cljs.core.PersistentVector.EMPTY_NODE, node__9904, null);
var i__9906 = 32;
var out__9907 = cljs.core._as_transient.call(null, v__9905);
while(true) {
if(i__9906 < l__9902) {
var G__9908 = i__9906 + 1;
var G__9909 = cljs.core.conj_BANG_.call(null, out__9907, xs__9903[i__9906]);
i__9906 = G__9908;
out__9907 = G__9909;
continue
}else {
return cljs.core.persistent_BANG_.call(null, out__9907)
}
break
}
}
};
cljs.core.vec = function vec(coll) {
return cljs.core._persistent_BANG_.call(null, cljs.core.reduce.call(null, cljs.core._conj_BANG_, cljs.core._as_transient.call(null, cljs.core.PersistentVector.EMPTY), coll))
};
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__9910) {
var args = cljs.core.seq(arglist__9910);
return vector__delegate(args)
};
vector.cljs$lang$arity$variadic = vector__delegate;
return vector
}();
cljs.core.ChunkedSeq = function(vec, node, i, off, meta) {
this.vec = vec;
this.node = node;
this.i = i;
this.off = off;
this.meta = meta;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 27525356
};
cljs.core.ChunkedSeq.cljs$lang$type = true;
cljs.core.ChunkedSeq.cljs$lang$ctorPrSeq = function(this__2333__auto__) {
return cljs.core.list.call(null, "cljs.core/ChunkedSeq")
};
cljs.core.ChunkedSeq.prototype.cljs$core$INext$_next$arity$1 = function(coll) {
var this__9911 = this;
if(this__9911.off + 1 < this__9911.node.length) {
var s__9912 = cljs.core.chunked_seq.call(null, this__9911.vec, this__9911.node, this__9911.i, this__9911.off + 1);
if(s__9912 == null) {
return null
}else {
return s__9912
}
}else {
return coll.cljs$core$IChunkedNext$_chunked_next$arity$1(coll)
}
};
cljs.core.ChunkedSeq.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var this__9913 = this;
return cljs.core.cons.call(null, o, coll)
};
cljs.core.ChunkedSeq.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var this__9914 = this;
return coll
};
cljs.core.ChunkedSeq.prototype.cljs$core$ISeq$_first$arity$1 = function(coll) {
var this__9915 = this;
return this__9915.node[this__9915.off]
};
cljs.core.ChunkedSeq.prototype.cljs$core$ISeq$_rest$arity$1 = function(coll) {
var this__9916 = this;
if(this__9916.off + 1 < this__9916.node.length) {
var s__9917 = cljs.core.chunked_seq.call(null, this__9916.vec, this__9916.node, this__9916.i, this__9916.off + 1);
if(s__9917 == null) {
return cljs.core.List.EMPTY
}else {
return s__9917
}
}else {
return coll.cljs$core$IChunkedSeq$_chunked_rest$arity$1(coll)
}
};
cljs.core.ChunkedSeq.prototype.cljs$core$IChunkedNext$ = true;
cljs.core.ChunkedSeq.prototype.cljs$core$IChunkedNext$_chunked_next$arity$1 = function(coll) {
var this__9918 = this;
var l__9919 = this__9918.node.length;
var s__9920 = this__9918.i + l__9919 < cljs.core._count.call(null, this__9918.vec) ? cljs.core.chunked_seq.call(null, this__9918.vec, this__9918.i + l__9919, 0) : null;
if(s__9920 == null) {
return null
}else {
return s__9920
}
};
cljs.core.ChunkedSeq.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var this__9921 = this;
return cljs.core.equiv_sequential.call(null, coll, other)
};
cljs.core.ChunkedSeq.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(coll, m) {
var this__9922 = this;
return cljs.core.chunked_seq.call(null, this__9922.vec, this__9922.node, this__9922.i, this__9922.off, m)
};
cljs.core.ChunkedSeq.prototype.cljs$core$IWithMeta$_meta$arity$1 = function(coll) {
var this__9923 = this;
return this__9923.meta
};
cljs.core.ChunkedSeq.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var this__9924 = this;
return cljs.core.with_meta.call(null, cljs.core.PersistentVector.EMPTY, this__9924.meta)
};
cljs.core.ChunkedSeq.prototype.cljs$core$IChunkedSeq$ = true;
cljs.core.ChunkedSeq.prototype.cljs$core$IChunkedSeq$_chunked_first$arity$1 = function(coll) {
var this__9925 = this;
return cljs.core.array_chunk.call(null, this__9925.node, this__9925.off)
};
cljs.core.ChunkedSeq.prototype.cljs$core$IChunkedSeq$_chunked_rest$arity$1 = function(coll) {
var this__9926 = this;
var l__9927 = this__9926.node.length;
var s__9928 = this__9926.i + l__9927 < cljs.core._count.call(null, this__9926.vec) ? cljs.core.chunked_seq.call(null, this__9926.vec, this__9926.i + l__9927, 0) : null;
if(s__9928 == null) {
return cljs.core.List.EMPTY
}else {
return s__9928
}
};
cljs.core.ChunkedSeq;
cljs.core.chunked_seq = function() {
var chunked_seq = null;
var chunked_seq__3 = function(vec, i, off) {
return chunked_seq.call(null, vec, cljs.core.array_for.call(null, vec, i), i, off, null)
};
var chunked_seq__4 = function(vec, node, i, off) {
return chunked_seq.call(null, vec, node, i, off, null)
};
var chunked_seq__5 = function(vec, node, i, off, meta) {
return new cljs.core.ChunkedSeq(vec, node, i, off, meta)
};
chunked_seq = function(vec, node, i, off, meta) {
switch(arguments.length) {
case 3:
return chunked_seq__3.call(this, vec, node, i);
case 4:
return chunked_seq__4.call(this, vec, node, i, off);
case 5:
return chunked_seq__5.call(this, vec, node, i, off, meta)
}
throw"Invalid arity: " + arguments.length;
};
chunked_seq.cljs$lang$arity$3 = chunked_seq__3;
chunked_seq.cljs$lang$arity$4 = chunked_seq__4;
chunked_seq.cljs$lang$arity$5 = chunked_seq__5;
return chunked_seq
}();
cljs.core.Subvec = function(meta, v, start, end, __hash) {
this.meta = meta;
this.v = v;
this.start = start;
this.end = end;
this.__hash = __hash;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 32400159
};
cljs.core.Subvec.cljs$lang$type = true;
cljs.core.Subvec.cljs$lang$ctorPrSeq = function(this__2333__auto__) {
return cljs.core.list.call(null, "cljs.core/Subvec")
};
cljs.core.Subvec.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var this__9931 = this;
var h__2216__auto____9932 = this__9931.__hash;
if(!(h__2216__auto____9932 == null)) {
return h__2216__auto____9932
}else {
var h__2216__auto____9933 = cljs.core.hash_coll.call(null, coll);
this__9931.__hash = h__2216__auto____9933;
return h__2216__auto____9933
}
};
cljs.core.Subvec.prototype.cljs$core$ILookup$_lookup$arity$2 = function(coll, k) {
var this__9934 = this;
return coll.cljs$core$IIndexed$_nth$arity$3(coll, k, null)
};
cljs.core.Subvec.prototype.cljs$core$ILookup$_lookup$arity$3 = function(coll, k, not_found) {
var this__9935 = this;
return coll.cljs$core$IIndexed$_nth$arity$3(coll, k, not_found)
};
cljs.core.Subvec.prototype.cljs$core$IAssociative$_assoc$arity$3 = function(coll, key, val) {
var this__9936 = this;
var v_pos__9937 = this__9936.start + key;
return new cljs.core.Subvec(this__9936.meta, cljs.core._assoc.call(null, this__9936.v, v_pos__9937, val), this__9936.start, this__9936.end > v_pos__9937 + 1 ? this__9936.end : v_pos__9937 + 1, null)
};
cljs.core.Subvec.prototype.call = function() {
var G__9963 = null;
var G__9963__2 = function(this_sym9938, k) {
var this__9940 = this;
var this_sym9938__9941 = this;
var coll__9942 = this_sym9938__9941;
return coll__9942.cljs$core$ILookup$_lookup$arity$2(coll__9942, k)
};
var G__9963__3 = function(this_sym9939, k, not_found) {
var this__9940 = this;
var this_sym9939__9943 = this;
var coll__9944 = this_sym9939__9943;
return coll__9944.cljs$core$ILookup$_lookup$arity$3(coll__9944, k, not_found)
};
G__9963 = function(this_sym9939, k, not_found) {
switch(arguments.length) {
case 2:
return G__9963__2.call(this, this_sym9939, k);
case 3:
return G__9963__3.call(this, this_sym9939, k, not_found)
}
throw"Invalid arity: " + arguments.length;
};
return G__9963
}();
cljs.core.Subvec.prototype.apply = function(this_sym9929, args9930) {
var this__9945 = this;
return this_sym9929.call.apply(this_sym9929, [this_sym9929].concat(args9930.slice()))
};
cljs.core.Subvec.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var this__9946 = this;
return new cljs.core.Subvec(this__9946.meta, cljs.core._assoc_n.call(null, this__9946.v, this__9946.end, o), this__9946.start, this__9946.end + 1, null)
};
cljs.core.Subvec.prototype.toString = function() {
var this__9947 = this;
var this__9948 = this;
return cljs.core.pr_str.call(null, this__9948)
};
cljs.core.Subvec.prototype.cljs$core$IReduce$_reduce$arity$2 = function(coll, f) {
var this__9949 = this;
return cljs.core.ci_reduce.call(null, coll, f)
};
cljs.core.Subvec.prototype.cljs$core$IReduce$_reduce$arity$3 = function(coll, f, start) {
var this__9950 = this;
return cljs.core.ci_reduce.call(null, coll, f, start)
};
cljs.core.Subvec.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var this__9951 = this;
var subvec_seq__9952 = function subvec_seq(i) {
if(i === this__9951.end) {
return null
}else {
return cljs.core.cons.call(null, cljs.core._nth.call(null, this__9951.v, i), new cljs.core.LazySeq(null, false, function() {
return subvec_seq.call(null, i + 1)
}, null))
}
};
return subvec_seq__9952.call(null, this__9951.start)
};
cljs.core.Subvec.prototype.cljs$core$ICounted$_count$arity$1 = function(coll) {
var this__9953 = this;
return this__9953.end - this__9953.start
};
cljs.core.Subvec.prototype.cljs$core$IStack$_peek$arity$1 = function(coll) {
var this__9954 = this;
return cljs.core._nth.call(null, this__9954.v, this__9954.end - 1)
};
cljs.core.Subvec.prototype.cljs$core$IStack$_pop$arity$1 = function(coll) {
var this__9955 = this;
if(this__9955.start === this__9955.end) {
throw new Error("Can't pop empty vector");
}else {
return new cljs.core.Subvec(this__9955.meta, this__9955.v, this__9955.start, this__9955.end - 1, null)
}
};
cljs.core.Subvec.prototype.cljs$core$IVector$_assoc_n$arity$3 = function(coll, n, val) {
var this__9956 = this;
return coll.cljs$core$IAssociative$_assoc$arity$3(coll, n, val)
};
cljs.core.Subvec.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var this__9957 = this;
return cljs.core.equiv_sequential.call(null, coll, other)
};
cljs.core.Subvec.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(coll, meta) {
var this__9958 = this;
return new cljs.core.Subvec(meta, this__9958.v, this__9958.start, this__9958.end, this__9958.__hash)
};
cljs.core.Subvec.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var this__9959 = this;
return this__9959.meta
};
cljs.core.Subvec.prototype.cljs$core$IIndexed$_nth$arity$2 = function(coll, n) {
var this__9960 = this;
return cljs.core._nth.call(null, this__9960.v, this__9960.start + n)
};
cljs.core.Subvec.prototype.cljs$core$IIndexed$_nth$arity$3 = function(coll, n, not_found) {
var this__9961 = this;
return cljs.core._nth.call(null, this__9961.v, this__9961.start + n, not_found)
};
cljs.core.Subvec.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var this__9962 = this;
return cljs.core.with_meta.call(null, cljs.core.Vector.EMPTY, this__9962.meta)
};
cljs.core.Subvec;
cljs.core.subvec = function() {
var subvec = null;
var subvec__2 = function(v, start) {
return subvec.call(null, v, start, cljs.core.count.call(null, v))
};
var subvec__3 = function(v, start, end) {
return new cljs.core.Subvec(null, v, start, end, null)
};
subvec = function(v, start, end) {
switch(arguments.length) {
case 2:
return subvec__2.call(this, v, start);
case 3:
return subvec__3.call(this, v, start, end)
}
throw"Invalid arity: " + arguments.length;
};
subvec.cljs$lang$arity$2 = subvec__2;
subvec.cljs$lang$arity$3 = subvec__3;
return subvec
}();
cljs.core.tv_ensure_editable = function tv_ensure_editable(edit, node) {
if(edit === node.edit) {
return node
}else {
return new cljs.core.VectorNode(edit, node.arr.slice())
}
};
cljs.core.tv_editable_root = function tv_editable_root(node) {
return new cljs.core.VectorNode({}, node.arr.slice())
};
cljs.core.tv_editable_tail = function tv_editable_tail(tl) {
var ret__9965 = cljs.core.make_array.call(null, 32);
cljs.core.array_copy.call(null, tl, 0, ret__9965, 0, tl.length);
return ret__9965
};
cljs.core.tv_push_tail = function tv_push_tail(tv, level, parent, tail_node) {
var ret__9969 = cljs.core.tv_ensure_editable.call(null, tv.root.edit, parent);
var subidx__9970 = tv.cnt - 1 >>> level & 31;
cljs.core.pv_aset.call(null, ret__9969, subidx__9970, level === 5 ? tail_node : function() {
var child__9971 = cljs.core.pv_aget.call(null, ret__9969, subidx__9970);
if(!(child__9971 == null)) {
return tv_push_tail.call(null, tv, level - 5, child__9971, tail_node)
}else {
return cljs.core.new_path.call(null, tv.root.edit, level - 5, tail_node)
}
}());
return ret__9969
};
cljs.core.tv_pop_tail = function tv_pop_tail(tv, level, node) {
var node__9976 = cljs.core.tv_ensure_editable.call(null, tv.root.edit, node);
var subidx__9977 = tv.cnt - 2 >>> level & 31;
if(level > 5) {
var new_child__9978 = tv_pop_tail.call(null, tv, level - 5, cljs.core.pv_aget.call(null, node__9976, subidx__9977));
if(function() {
var and__3822__auto____9979 = new_child__9978 == null;
if(and__3822__auto____9979) {
return subidx__9977 === 0
}else {
return and__3822__auto____9979
}
}()) {
return null
}else {
cljs.core.pv_aset.call(null, node__9976, subidx__9977, new_child__9978);
return node__9976
}
}else {
if(subidx__9977 === 0) {
return null
}else {
if("\ufdd0'else") {
cljs.core.pv_aset.call(null, node__9976, subidx__9977, null);
return node__9976
}else {
return null
}
}
}
};
cljs.core.editable_array_for = function editable_array_for(tv, i) {
if(function() {
var and__3822__auto____9984 = 0 <= i;
if(and__3822__auto____9984) {
return i < tv.cnt
}else {
return and__3822__auto____9984
}
}()) {
if(i >= cljs.core.tail_off.call(null, tv)) {
return tv.tail
}else {
var root__9985 = tv.root;
var node__9986 = root__9985;
var level__9987 = tv.shift;
while(true) {
if(level__9987 > 0) {
var G__9988 = cljs.core.tv_ensure_editable.call(null, root__9985.edit, cljs.core.pv_aget.call(null, node__9986, i >>> level__9987 & 31));
var G__9989 = level__9987 - 5;
node__9986 = G__9988;
level__9987 = G__9989;
continue
}else {
return node__9986.arr
}
break
}
}
}else {
throw new Error([cljs.core.str("No item "), cljs.core.str(i), cljs.core.str(" in transient vector of length "), cljs.core.str(tv.cnt)].join(""));
}
};
cljs.core.TransientVector = function(cnt, shift, root, tail) {
this.cnt = cnt;
this.shift = shift;
this.root = root;
this.tail = tail;
this.cljs$lang$protocol_mask$partition0$ = 275;
this.cljs$lang$protocol_mask$partition1$ = 22
};
cljs.core.TransientVector.cljs$lang$type = true;
cljs.core.TransientVector.cljs$lang$ctorPrSeq = function(this__2333__auto__) {
return cljs.core.list.call(null, "cljs.core/TransientVector")
};
cljs.core.TransientVector.prototype.call = function() {
var G__10029 = null;
var G__10029__2 = function(this_sym9992, k) {
var this__9994 = this;
var this_sym9992__9995 = this;
var coll__9996 = this_sym9992__9995;
return coll__9996.cljs$core$ILookup$_lookup$arity$2(coll__9996, k)
};
var G__10029__3 = function(this_sym9993, k, not_found) {
var this__9994 = this;
var this_sym9993__9997 = this;
var coll__9998 = this_sym9993__9997;
return coll__9998.cljs$core$ILookup$_lookup$arity$3(coll__9998, k, not_found)
};
G__10029 = function(this_sym9993, k, not_found) {
switch(arguments.length) {
case 2:
return G__10029__2.call(this, this_sym9993, k);
case 3:
return G__10029__3.call(this, this_sym9993, k, not_found)
}
throw"Invalid arity: " + arguments.length;
};
return G__10029
}();
cljs.core.TransientVector.prototype.apply = function(this_sym9990, args9991) {
var this__9999 = this;
return this_sym9990.call.apply(this_sym9990, [this_sym9990].concat(args9991.slice()))
};
cljs.core.TransientVector.prototype.cljs$core$ILookup$_lookup$arity$2 = function(coll, k) {
var this__10000 = this;
return coll.cljs$core$IIndexed$_nth$arity$3(coll, k, null)
};
cljs.core.TransientVector.prototype.cljs$core$ILookup$_lookup$arity$3 = function(coll, k, not_found) {
var this__10001 = this;
return coll.cljs$core$IIndexed$_nth$arity$3(coll, k, not_found)
};
cljs.core.TransientVector.prototype.cljs$core$IIndexed$_nth$arity$2 = function(coll, n) {
var this__10002 = this;
if(this__10002.root.edit) {
return cljs.core.array_for.call(null, coll, n)[n & 31]
}else {
throw new Error("nth after persistent!");
}
};
cljs.core.TransientVector.prototype.cljs$core$IIndexed$_nth$arity$3 = function(coll, n, not_found) {
var this__10003 = this;
if(function() {
var and__3822__auto____10004 = 0 <= n;
if(and__3822__auto____10004) {
return n < this__10003.cnt
}else {
return and__3822__auto____10004
}
}()) {
return coll.cljs$core$IIndexed$_nth$arity$2(coll, n)
}else {
return not_found
}
};
cljs.core.TransientVector.prototype.cljs$core$ICounted$_count$arity$1 = function(coll) {
var this__10005 = this;
if(this__10005.root.edit) {
return this__10005.cnt
}else {
throw new Error("count after persistent!");
}
};
cljs.core.TransientVector.prototype.cljs$core$ITransientVector$_assoc_n_BANG_$arity$3 = function(tcoll, n, val) {
var this__10006 = this;
if(this__10006.root.edit) {
if(function() {
var and__3822__auto____10007 = 0 <= n;
if(and__3822__auto____10007) {
return n < this__10006.cnt
}else {
return and__3822__auto____10007
}
}()) {
if(cljs.core.tail_off.call(null, tcoll) <= n) {
this__10006.tail[n & 31] = val;
return tcoll
}else {
var new_root__10012 = function go(level, node) {
var node__10010 = cljs.core.tv_ensure_editable.call(null, this__10006.root.edit, node);
if(level === 0) {
cljs.core.pv_aset.call(null, node__10010, n & 31, val);
return node__10010
}else {
var subidx__10011 = n >>> level & 31;
cljs.core.pv_aset.call(null, node__10010, subidx__10011, go.call(null, level - 5, cljs.core.pv_aget.call(null, node__10010, subidx__10011)));
return node__10010
}
}.call(null, this__10006.shift, this__10006.root);
this__10006.root = new_root__10012;
return tcoll
}
}else {
if(n === this__10006.cnt) {
return tcoll.cljs$core$ITransientCollection$_conj_BANG_$arity$2(tcoll, val)
}else {
if("\ufdd0'else") {
throw new Error([cljs.core.str("Index "), cljs.core.str(n), cljs.core.str(" out of bounds for TransientVector of length"), cljs.core.str(this__10006.cnt)].join(""));
}else {
return null
}
}
}
}else {
throw new Error("assoc! after persistent!");
}
};
cljs.core.TransientVector.prototype.cljs$core$ITransientVector$_pop_BANG_$arity$1 = function(tcoll) {
var this__10013 = this;
if(this__10013.root.edit) {
if(this__10013.cnt === 0) {
throw new Error("Can't pop empty vector");
}else {
if(1 === this__10013.cnt) {
this__10013.cnt = 0;
return tcoll
}else {
if((this__10013.cnt - 1 & 31) > 0) {
this__10013.cnt = this__10013.cnt - 1;
return tcoll
}else {
if("\ufdd0'else") {
var new_tail__10014 = cljs.core.editable_array_for.call(null, tcoll, this__10013.cnt - 2);
var new_root__10016 = function() {
var nr__10015 = cljs.core.tv_pop_tail.call(null, tcoll, this__10013.shift, this__10013.root);
if(!(nr__10015 == null)) {
return nr__10015
}else {
return new cljs.core.VectorNode(this__10013.root.edit, cljs.core.make_array.call(null, 32))
}
}();
if(function() {
var and__3822__auto____10017 = 5 < this__10013.shift;
if(and__3822__auto____10017) {
return cljs.core.pv_aget.call(null, new_root__10016, 1) == null
}else {
return and__3822__auto____10017
}
}()) {
var new_root__10018 = cljs.core.tv_ensure_editable.call(null, this__10013.root.edit, cljs.core.pv_aget.call(null, new_root__10016, 0));
this__10013.root = new_root__10018;
this__10013.shift = this__10013.shift - 5;
this__10013.cnt = this__10013.cnt - 1;
this__10013.tail = new_tail__10014;
return tcoll
}else {
this__10013.root = new_root__10016;
this__10013.cnt = this__10013.cnt - 1;
this__10013.tail = new_tail__10014;
return tcoll
}
}else {
return null
}
}
}
}
}else {
throw new Error("pop! after persistent!");
}
};
cljs.core.TransientVector.prototype.cljs$core$ITransientAssociative$_assoc_BANG_$arity$3 = function(tcoll, key, val) {
var this__10019 = this;
return tcoll.cljs$core$ITransientVector$_assoc_n_BANG_$arity$3(tcoll, key, val)
};
cljs.core.TransientVector.prototype.cljs$core$ITransientCollection$_conj_BANG_$arity$2 = function(tcoll, o) {
var this__10020 = this;
if(this__10020.root.edit) {
if(this__10020.cnt - cljs.core.tail_off.call(null, tcoll) < 32) {
this__10020.tail[this__10020.cnt & 31] = o;
this__10020.cnt = this__10020.cnt + 1;
return tcoll
}else {
var tail_node__10021 = new cljs.core.VectorNode(this__10020.root.edit, this__10020.tail);
var new_tail__10022 = cljs.core.make_array.call(null, 32);
new_tail__10022[0] = o;
this__10020.tail = new_tail__10022;
if(this__10020.cnt >>> 5 > 1 << this__10020.shift) {
var new_root_array__10023 = cljs.core.make_array.call(null, 32);
var new_shift__10024 = this__10020.shift + 5;
new_root_array__10023[0] = this__10020.root;
new_root_array__10023[1] = cljs.core.new_path.call(null, this__10020.root.edit, this__10020.shift, tail_node__10021);
this__10020.root = new cljs.core.VectorNode(this__10020.root.edit, new_root_array__10023);
this__10020.shift = new_shift__10024;
this__10020.cnt = this__10020.cnt + 1;
return tcoll
}else {
var new_root__10025 = cljs.core.tv_push_tail.call(null, tcoll, this__10020.shift, this__10020.root, tail_node__10021);
this__10020.root = new_root__10025;
this__10020.cnt = this__10020.cnt + 1;
return tcoll
}
}
}else {
throw new Error("conj! after persistent!");
}
};
cljs.core.TransientVector.prototype.cljs$core$ITransientCollection$_persistent_BANG_$arity$1 = function(tcoll) {
var this__10026 = this;
if(this__10026.root.edit) {
this__10026.root.edit = null;
var len__10027 = this__10026.cnt - cljs.core.tail_off.call(null, tcoll);
var trimmed_tail__10028 = cljs.core.make_array.call(null, len__10027);
cljs.core.array_copy.call(null, this__10026.tail, 0, trimmed_tail__10028, 0, len__10027);
return new cljs.core.PersistentVector(null, this__10026.cnt, this__10026.shift, this__10026.root, trimmed_tail__10028, null)
}else {
throw new Error("persistent! called twice");
}
};
cljs.core.TransientVector;
cljs.core.PersistentQueueSeq = function(meta, front, rear, __hash) {
this.meta = meta;
this.front = front;
this.rear = rear;
this.__hash = __hash;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 31850572
};
cljs.core.PersistentQueueSeq.cljs$lang$type = true;
cljs.core.PersistentQueueSeq.cljs$lang$ctorPrSeq = function(this__2333__auto__) {
return cljs.core.list.call(null, "cljs.core/PersistentQueueSeq")
};
cljs.core.PersistentQueueSeq.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var this__10030 = this;
var h__2216__auto____10031 = this__10030.__hash;
if(!(h__2216__auto____10031 == null)) {
return h__2216__auto____10031
}else {
var h__2216__auto____10032 = cljs.core.hash_coll.call(null, coll);
this__10030.__hash = h__2216__auto____10032;
return h__2216__auto____10032
}
};
cljs.core.PersistentQueueSeq.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var this__10033 = this;
return cljs.core.cons.call(null, o, coll)
};
cljs.core.PersistentQueueSeq.prototype.toString = function() {
var this__10034 = this;
var this__10035 = this;
return cljs.core.pr_str.call(null, this__10035)
};
cljs.core.PersistentQueueSeq.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var this__10036 = this;
return coll
};
cljs.core.PersistentQueueSeq.prototype.cljs$core$ISeq$_first$arity$1 = function(coll) {
var this__10037 = this;
return cljs.core._first.call(null, this__10037.front)
};
cljs.core.PersistentQueueSeq.prototype.cljs$core$ISeq$_rest$arity$1 = function(coll) {
var this__10038 = this;
var temp__3971__auto____10039 = cljs.core.next.call(null, this__10038.front);
if(temp__3971__auto____10039) {
var f1__10040 = temp__3971__auto____10039;
return new cljs.core.PersistentQueueSeq(this__10038.meta, f1__10040, this__10038.rear, null)
}else {
if(this__10038.rear == null) {
return coll.cljs$core$IEmptyableCollection$_empty$arity$1(coll)
}else {
return new cljs.core.PersistentQueueSeq(this__10038.meta, this__10038.rear, null, null)
}
}
};
cljs.core.PersistentQueueSeq.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var this__10041 = this;
return cljs.core.equiv_sequential.call(null, coll, other)
};
cljs.core.PersistentQueueSeq.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(coll, meta) {
var this__10042 = this;
return new cljs.core.PersistentQueueSeq(meta, this__10042.front, this__10042.rear, this__10042.__hash)
};
cljs.core.PersistentQueueSeq.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var this__10043 = this;
return this__10043.meta
};
cljs.core.PersistentQueueSeq.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var this__10044 = this;
return cljs.core.with_meta.call(null, cljs.core.List.EMPTY, this__10044.meta)
};
cljs.core.PersistentQueueSeq;
cljs.core.PersistentQueue = function(meta, count, front, rear, __hash) {
this.meta = meta;
this.count = count;
this.front = front;
this.rear = rear;
this.__hash = __hash;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 31858766
};
cljs.core.PersistentQueue.cljs$lang$type = true;
cljs.core.PersistentQueue.cljs$lang$ctorPrSeq = function(this__2333__auto__) {
return cljs.core.list.call(null, "cljs.core/PersistentQueue")
};
cljs.core.PersistentQueue.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var this__10045 = this;
var h__2216__auto____10046 = this__10045.__hash;
if(!(h__2216__auto____10046 == null)) {
return h__2216__auto____10046
}else {
var h__2216__auto____10047 = cljs.core.hash_coll.call(null, coll);
this__10045.__hash = h__2216__auto____10047;
return h__2216__auto____10047
}
};
cljs.core.PersistentQueue.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var this__10048 = this;
if(cljs.core.truth_(this__10048.front)) {
return new cljs.core.PersistentQueue(this__10048.meta, this__10048.count + 1, this__10048.front, cljs.core.conj.call(null, function() {
var or__3824__auto____10049 = this__10048.rear;
if(cljs.core.truth_(or__3824__auto____10049)) {
return or__3824__auto____10049
}else {
return cljs.core.PersistentVector.EMPTY
}
}(), o), null)
}else {
return new cljs.core.PersistentQueue(this__10048.meta, this__10048.count + 1, cljs.core.conj.call(null, this__10048.front, o), cljs.core.PersistentVector.EMPTY, null)
}
};
cljs.core.PersistentQueue.prototype.toString = function() {
var this__10050 = this;
var this__10051 = this;
return cljs.core.pr_str.call(null, this__10051)
};
cljs.core.PersistentQueue.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var this__10052 = this;
var rear__10053 = cljs.core.seq.call(null, this__10052.rear);
if(cljs.core.truth_(function() {
var or__3824__auto____10054 = this__10052.front;
if(cljs.core.truth_(or__3824__auto____10054)) {
return or__3824__auto____10054
}else {
return rear__10053
}
}())) {
return new cljs.core.PersistentQueueSeq(null, this__10052.front, cljs.core.seq.call(null, rear__10053), null)
}else {
return null
}
};
cljs.core.PersistentQueue.prototype.cljs$core$ICounted$_count$arity$1 = function(coll) {
var this__10055 = this;
return this__10055.count
};
cljs.core.PersistentQueue.prototype.cljs$core$IStack$_peek$arity$1 = function(coll) {
var this__10056 = this;
return cljs.core._first.call(null, this__10056.front)
};
cljs.core.PersistentQueue.prototype.cljs$core$IStack$_pop$arity$1 = function(coll) {
var this__10057 = this;
if(cljs.core.truth_(this__10057.front)) {
var temp__3971__auto____10058 = cljs.core.next.call(null, this__10057.front);
if(temp__3971__auto____10058) {
var f1__10059 = temp__3971__auto____10058;
return new cljs.core.PersistentQueue(this__10057.meta, this__10057.count - 1, f1__10059, this__10057.rear, null)
}else {
return new cljs.core.PersistentQueue(this__10057.meta, this__10057.count - 1, cljs.core.seq.call(null, this__10057.rear), cljs.core.PersistentVector.EMPTY, null)
}
}else {
return coll
}
};
cljs.core.PersistentQueue.prototype.cljs$core$ISeq$_first$arity$1 = function(coll) {
var this__10060 = this;
return cljs.core.first.call(null, this__10060.front)
};
cljs.core.PersistentQueue.prototype.cljs$core$ISeq$_rest$arity$1 = function(coll) {
var this__10061 = this;
return cljs.core.rest.call(null, cljs.core.seq.call(null, coll))
};
cljs.core.PersistentQueue.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var this__10062 = this;
return cljs.core.equiv_sequential.call(null, coll, other)
};
cljs.core.PersistentQueue.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(coll, meta) {
var this__10063 = this;
return new cljs.core.PersistentQueue(meta, this__10063.count, this__10063.front, this__10063.rear, this__10063.__hash)
};
cljs.core.PersistentQueue.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var this__10064 = this;
return this__10064.meta
};
cljs.core.PersistentQueue.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var this__10065 = this;
return cljs.core.PersistentQueue.EMPTY
};
cljs.core.PersistentQueue;
cljs.core.PersistentQueue.EMPTY = new cljs.core.PersistentQueue(null, 0, null, cljs.core.PersistentVector.EMPTY, 0);
cljs.core.NeverEquiv = function() {
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 2097152
};
cljs.core.NeverEquiv.cljs$lang$type = true;
cljs.core.NeverEquiv.cljs$lang$ctorPrSeq = function(this__2333__auto__) {
return cljs.core.list.call(null, "cljs.core/NeverEquiv")
};
cljs.core.NeverEquiv.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(o, other) {
var this__10066 = this;
return false
};
cljs.core.NeverEquiv;
cljs.core.never_equiv = new cljs.core.NeverEquiv;
cljs.core.equiv_map = function equiv_map(x, y) {
return cljs.core.boolean$.call(null, cljs.core.map_QMARK_.call(null, y) ? 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._lookup.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__10069 = array.length;
var i__10070 = 0;
while(true) {
if(i__10070 < len__10069) {
if(k === array[i__10070]) {
return i__10070
}else {
var G__10071 = i__10070 + incr;
i__10070 = G__10071;
continue
}
}else {
return null
}
break
}
};
cljs.core.obj_map_compare_keys = function obj_map_compare_keys(a, b) {
var a__10074 = cljs.core.hash.call(null, a);
var b__10075 = cljs.core.hash.call(null, b);
if(a__10074 < b__10075) {
return-1
}else {
if(a__10074 > b__10075) {
return 1
}else {
if("\ufdd0'else") {
return 0
}else {
return null
}
}
}
};
cljs.core.obj_map__GT_hash_map = function obj_map__GT_hash_map(m, k, v) {
var ks__10083 = m.keys;
var len__10084 = ks__10083.length;
var so__10085 = m.strobj;
var out__10086 = cljs.core.with_meta.call(null, cljs.core.PersistentHashMap.EMPTY, cljs.core.meta.call(null, m));
var i__10087 = 0;
var out__10088 = cljs.core.transient$.call(null, out__10086);
while(true) {
if(i__10087 < len__10084) {
var k__10089 = ks__10083[i__10087];
var G__10090 = i__10087 + 1;
var G__10091 = cljs.core.assoc_BANG_.call(null, out__10088, k__10089, so__10085[k__10089]);
i__10087 = G__10090;
out__10088 = G__10091;
continue
}else {
return cljs.core.persistent_BANG_.call(null, cljs.core.assoc_BANG_.call(null, out__10088, k, v))
}
break
}
};
cljs.core.obj_clone = function obj_clone(obj, ks) {
var new_obj__10097 = {};
var l__10098 = ks.length;
var i__10099 = 0;
while(true) {
if(i__10099 < l__10098) {
var k__10100 = ks[i__10099];
new_obj__10097[k__10100] = obj[k__10100];
var G__10101 = i__10099 + 1;
i__10099 = G__10101;
continue
}else {
}
break
}
return new_obj__10097
};
cljs.core.ObjMap = function(meta, keys, strobj, update_count, __hash) {
this.meta = meta;
this.keys = keys;
this.strobj = strobj;
this.update_count = update_count;
this.__hash = __hash;
this.cljs$lang$protocol_mask$partition1$ = 1;
this.cljs$lang$protocol_mask$partition0$ = 15075087
};
cljs.core.ObjMap.cljs$lang$type = true;
cljs.core.ObjMap.cljs$lang$ctorPrSeq = function(this__2333__auto__) {
return cljs.core.list.call(null, "cljs.core/ObjMap")
};
cljs.core.ObjMap.prototype.cljs$core$IEditableCollection$_as_transient$arity$1 = function(coll) {
var this__10104 = this;
return cljs.core.transient$.call(null, cljs.core.into.call(null, cljs.core.hash_map.call(null), coll))
};
cljs.core.ObjMap.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var this__10105 = this;
var h__2216__auto____10106 = this__10105.__hash;
if(!(h__2216__auto____10106 == null)) {
return h__2216__auto____10106
}else {
var h__2216__auto____10107 = cljs.core.hash_imap.call(null, coll);
this__10105.__hash = h__2216__auto____10107;
return h__2216__auto____10107
}
};
cljs.core.ObjMap.prototype.cljs$core$ILookup$_lookup$arity$2 = function(coll, k) {
var this__10108 = this;
return coll.cljs$core$ILookup$_lookup$arity$3(coll, k, null)
};
cljs.core.ObjMap.prototype.cljs$core$ILookup$_lookup$arity$3 = function(coll, k, not_found) {
var this__10109 = this;
if(function() {
var and__3822__auto____10110 = goog.isString(k);
if(and__3822__auto____10110) {
return!(cljs.core.scan_array.call(null, 1, k, this__10109.keys) == null)
}else {
return and__3822__auto____10110
}
}()) {
return this__10109.strobj[k]
}else {
return not_found
}
};
cljs.core.ObjMap.prototype.cljs$core$IAssociative$_assoc$arity$3 = function(coll, k, v) {
var this__10111 = this;
if(goog.isString(k)) {
if(function() {
var or__3824__auto____10112 = this__10111.update_count > cljs.core.ObjMap.HASHMAP_THRESHOLD;
if(or__3824__auto____10112) {
return or__3824__auto____10112
}else {
return this__10111.keys.length >= cljs.core.ObjMap.HASHMAP_THRESHOLD
}
}()) {
return cljs.core.obj_map__GT_hash_map.call(null, coll, k, v)
}else {
if(!(cljs.core.scan_array.call(null, 1, k, this__10111.keys) == null)) {
var new_strobj__10113 = cljs.core.obj_clone.call(null, this__10111.strobj, this__10111.keys);
new_strobj__10113[k] = v;
return new cljs.core.ObjMap(this__10111.meta, this__10111.keys, new_strobj__10113, this__10111.update_count + 1, null)
}else {
var new_strobj__10114 = cljs.core.obj_clone.call(null, this__10111.strobj, this__10111.keys);
var new_keys__10115 = this__10111.keys.slice();
new_strobj__10114[k] = v;
new_keys__10115.push(k);
return new cljs.core.ObjMap(this__10111.meta, new_keys__10115, new_strobj__10114, this__10111.update_count + 1, null)
}
}
}else {
return cljs.core.obj_map__GT_hash_map.call(null, coll, k, v)
}
};
cljs.core.ObjMap.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 = function(coll, k) {
var this__10116 = this;
if(function() {
var and__3822__auto____10117 = goog.isString(k);
if(and__3822__auto____10117) {
return!(cljs.core.scan_array.call(null, 1, k, this__10116.keys) == null)
}else {
return and__3822__auto____10117
}
}()) {
return true
}else {
return false
}
};
cljs.core.ObjMap.prototype.call = function() {
var G__10139 = null;
var G__10139__2 = function(this_sym10118, k) {
var this__10120 = this;
var this_sym10118__10121 = this;
var coll__10122 = this_sym10118__10121;
return coll__10122.cljs$core$ILookup$_lookup$arity$2(coll__10122, k)
};
var G__10139__3 = function(this_sym10119, k, not_found) {
var this__10120 = this;
var this_sym10119__10123 = this;
var coll__10124 = this_sym10119__10123;
return coll__10124.cljs$core$ILookup$_lookup$arity$3(coll__10124, k, not_found)
};
G__10139 = function(this_sym10119, k, not_found) {
switch(arguments.length) {
case 2:
return G__10139__2.call(this, this_sym10119, k);
case 3:
return G__10139__3.call(this, this_sym10119, k, not_found)
}
throw"Invalid arity: " + arguments.length;
};
return G__10139
}();
cljs.core.ObjMap.prototype.apply = function(this_sym10102, args10103) {
var this__10125 = this;
return this_sym10102.call.apply(this_sym10102, [this_sym10102].concat(args10103.slice()))
};
cljs.core.ObjMap.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, entry) {
var this__10126 = this;
if(cljs.core.vector_QMARK_.call(null, entry)) {
return coll.cljs$core$IAssociative$_assoc$arity$3(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.toString = function() {
var this__10127 = this;
var this__10128 = this;
return cljs.core.pr_str.call(null, this__10128)
};
cljs.core.ObjMap.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var this__10129 = this;
if(this__10129.keys.length > 0) {
return cljs.core.map.call(null, function(p1__10092_SHARP_) {
return cljs.core.vector.call(null, p1__10092_SHARP_, this__10129.strobj[p1__10092_SHARP_])
}, this__10129.keys.sort(cljs.core.obj_map_compare_keys))
}else {
return null
}
};
cljs.core.ObjMap.prototype.cljs$core$ICounted$_count$arity$1 = function(coll) {
var this__10130 = this;
return this__10130.keys.length
};
cljs.core.ObjMap.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var this__10131 = this;
return cljs.core.equiv_map.call(null, coll, other)
};
cljs.core.ObjMap.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(coll, meta) {
var this__10132 = this;
return new cljs.core.ObjMap(meta, this__10132.keys, this__10132.strobj, this__10132.update_count, this__10132.__hash)
};
cljs.core.ObjMap.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var this__10133 = this;
return this__10133.meta
};
cljs.core.ObjMap.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var this__10134 = this;
return cljs.core.with_meta.call(null, cljs.core.ObjMap.EMPTY, this__10134.meta)
};
cljs.core.ObjMap.prototype.cljs$core$IMap$_dissoc$arity$2 = function(coll, k) {
var this__10135 = this;
if(function() {
var and__3822__auto____10136 = goog.isString(k);
if(and__3822__auto____10136) {
return!(cljs.core.scan_array.call(null, 1, k, this__10135.keys) == null)
}else {
return and__3822__auto____10136
}
}()) {
var new_keys__10137 = this__10135.keys.slice();
var new_strobj__10138 = cljs.core.obj_clone.call(null, this__10135.strobj, this__10135.keys);
new_keys__10137.splice(cljs.core.scan_array.call(null, 1, k, new_keys__10137), 1);
cljs.core.js_delete.call(null, new_strobj__10138, k);
return new cljs.core.ObjMap(this__10135.meta, new_keys__10137, new_strobj__10138, this__10135.update_count + 1, null)
}else {
return coll
}
};
cljs.core.ObjMap;
cljs.core.ObjMap.EMPTY = new cljs.core.ObjMap(null, [], {}, 0, 0);
cljs.core.ObjMap.HASHMAP_THRESHOLD = 32;
cljs.core.ObjMap.fromObject = function(ks, obj) {
return new cljs.core.ObjMap(null, ks, obj, 0, null)
};
cljs.core.HashMap = function(meta, count, hashobj, __hash) {
this.meta = meta;
this.count = count;
this.hashobj = hashobj;
this.__hash = __hash;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 15075087
};
cljs.core.HashMap.cljs$lang$type = true;
cljs.core.HashMap.cljs$lang$ctorPrSeq = function(this__2333__auto__) {
return cljs.core.list.call(null, "cljs.core/HashMap")
};
cljs.core.HashMap.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var this__10143 = this;
var h__2216__auto____10144 = this__10143.__hash;
if(!(h__2216__auto____10144 == null)) {
return h__2216__auto____10144
}else {
var h__2216__auto____10145 = cljs.core.hash_imap.call(null, coll);
this__10143.__hash = h__2216__auto____10145;
return h__2216__auto____10145
}
};
cljs.core.HashMap.prototype.cljs$core$ILookup$_lookup$arity$2 = function(coll, k) {
var this__10146 = this;
return coll.cljs$core$ILookup$_lookup$arity$3(coll, k, null)
};
cljs.core.HashMap.prototype.cljs$core$ILookup$_lookup$arity$3 = function(coll, k, not_found) {
var this__10147 = this;
var bucket__10148 = this__10147.hashobj[cljs.core.hash.call(null, k)];
var i__10149 = cljs.core.truth_(bucket__10148) ? cljs.core.scan_array.call(null, 2, k, bucket__10148) : null;
if(cljs.core.truth_(i__10149)) {
return bucket__10148[i__10149 + 1]
}else {
return not_found
}
};
cljs.core.HashMap.prototype.cljs$core$IAssociative$_assoc$arity$3 = function(coll, k, v) {
var this__10150 = this;
var h__10151 = cljs.core.hash.call(null, k);
var bucket__10152 = this__10150.hashobj[h__10151];
if(cljs.core.truth_(bucket__10152)) {
var new_bucket__10153 = bucket__10152.slice();
var new_hashobj__10154 = goog.object.clone(this__10150.hashobj);
new_hashobj__10154[h__10151] = new_bucket__10153;
var temp__3971__auto____10155 = cljs.core.scan_array.call(null, 2, k, new_bucket__10153);
if(cljs.core.truth_(temp__3971__auto____10155)) {
var i__10156 = temp__3971__auto____10155;
new_bucket__10153[i__10156 + 1] = v;
return new cljs.core.HashMap(this__10150.meta, this__10150.count, new_hashobj__10154, null)
}else {
new_bucket__10153.push(k, v);
return new cljs.core.HashMap(this__10150.meta, this__10150.count + 1, new_hashobj__10154, null)
}
}else {
var new_hashobj__10157 = goog.object.clone(this__10150.hashobj);
new_hashobj__10157[h__10151] = [k, v];
return new cljs.core.HashMap(this__10150.meta, this__10150.count + 1, new_hashobj__10157, null)
}
};
cljs.core.HashMap.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 = function(coll, k) {
var this__10158 = this;
var bucket__10159 = this__10158.hashobj[cljs.core.hash.call(null, k)];
var i__10160 = cljs.core.truth_(bucket__10159) ? cljs.core.scan_array.call(null, 2, k, bucket__10159) : null;
if(cljs.core.truth_(i__10160)) {
return true
}else {
return false
}
};
cljs.core.HashMap.prototype.call = function() {
var G__10185 = null;
var G__10185__2 = function(this_sym10161, k) {
var this__10163 = this;
var this_sym10161__10164 = this;
var coll__10165 = this_sym10161__10164;
return coll__10165.cljs$core$ILookup$_lookup$arity$2(coll__10165, k)
};
var G__10185__3 = function(this_sym10162, k, not_found) {
var this__10163 = this;
var this_sym10162__10166 = this;
var coll__10167 = this_sym10162__10166;
return coll__10167.cljs$core$ILookup$_lookup$arity$3(coll__10167, k, not_found)
};
G__10185 = function(this_sym10162, k, not_found) {
switch(arguments.length) {
case 2:
return G__10185__2.call(this, this_sym10162, k);
case 3:
return G__10185__3.call(this, this_sym10162, k, not_found)
}
throw"Invalid arity: " + arguments.length;
};
return G__10185
}();
cljs.core.HashMap.prototype.apply = function(this_sym10141, args10142) {
var this__10168 = this;
return this_sym10141.call.apply(this_sym10141, [this_sym10141].concat(args10142.slice()))
};
cljs.core.HashMap.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, entry) {
var this__10169 = this;
if(cljs.core.vector_QMARK_.call(null, entry)) {
return coll.cljs$core$IAssociative$_assoc$arity$3(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.toString = function() {
var this__10170 = this;
var this__10171 = this;
return cljs.core.pr_str.call(null, this__10171)
};
cljs.core.HashMap.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var this__10172 = this;
if(this__10172.count > 0) {
var hashes__10173 = cljs.core.js_keys.call(null, this__10172.hashobj).sort();
return cljs.core.mapcat.call(null, function(p1__10140_SHARP_) {
return cljs.core.map.call(null, cljs.core.vec, cljs.core.partition.call(null, 2, this__10172.hashobj[p1__10140_SHARP_]))
}, hashes__10173)
}else {
return null
}
};
cljs.core.HashMap.prototype.cljs$core$ICounted$_count$arity$1 = function(coll) {
var this__10174 = this;
return this__10174.count
};
cljs.core.HashMap.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var this__10175 = this;
return cljs.core.equiv_map.call(null, coll, other)
};
cljs.core.HashMap.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(coll, meta) {
var this__10176 = this;
return new cljs.core.HashMap(meta, this__10176.count, this__10176.hashobj, this__10176.__hash)
};
cljs.core.HashMap.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var this__10177 = this;
return this__10177.meta
};
cljs.core.HashMap.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var this__10178 = this;
return cljs.core.with_meta.call(null, cljs.core.HashMap.EMPTY, this__10178.meta)
};
cljs.core.HashMap.prototype.cljs$core$IMap$_dissoc$arity$2 = function(coll, k) {
var this__10179 = this;
var h__10180 = cljs.core.hash.call(null, k);
var bucket__10181 = this__10179.hashobj[h__10180];
var i__10182 = cljs.core.truth_(bucket__10181) ? cljs.core.scan_array.call(null, 2, k, bucket__10181) : null;
if(cljs.core.not.call(null, i__10182)) {
return coll
}else {
var new_hashobj__10183 = goog.object.clone(this__10179.hashobj);
if(3 > bucket__10181.length) {
cljs.core.js_delete.call(null, new_hashobj__10183, h__10180)
}else {
var new_bucket__10184 = bucket__10181.slice();
new_bucket__10184.splice(i__10182, 2);
new_hashobj__10183[h__10180] = new_bucket__10184
}
return new cljs.core.HashMap(this__10179.meta, this__10179.count - 1, new_hashobj__10183, null)
}
};
cljs.core.HashMap;
cljs.core.HashMap.EMPTY = new cljs.core.HashMap(null, 0, {}, 0);
cljs.core.HashMap.fromArrays = function(ks, vs) {
var len__10186 = ks.length;
var i__10187 = 0;
var out__10188 = cljs.core.HashMap.EMPTY;
while(true) {
if(i__10187 < len__10186) {
var G__10189 = i__10187 + 1;
var G__10190 = cljs.core.assoc.call(null, out__10188, ks[i__10187], vs[i__10187]);
i__10187 = G__10189;
out__10188 = G__10190;
continue
}else {
return out__10188
}
break
}
};
cljs.core.array_map_index_of = function array_map_index_of(m, k) {
var arr__10194 = m.arr;
var len__10195 = arr__10194.length;
var i__10196 = 0;
while(true) {
if(len__10195 <= i__10196) {
return-1
}else {
if(cljs.core._EQ_.call(null, arr__10194[i__10196], k)) {
return i__10196
}else {
if("\ufdd0'else") {
var G__10197 = i__10196 + 2;
i__10196 = G__10197;
continue
}else {
return null
}
}
}
break
}
};
cljs.core.PersistentArrayMap = function(meta, cnt, arr, __hash) {
this.meta = meta;
this.cnt = cnt;
this.arr = arr;
this.__hash = __hash;
this.cljs$lang$protocol_mask$partition1$ = 1;
this.cljs$lang$protocol_mask$partition0$ = 16123663
};
cljs.core.PersistentArrayMap.cljs$lang$type = true;
cljs.core.PersistentArrayMap.cljs$lang$ctorPrSeq = function(this__2333__auto__) {
return cljs.core.list.call(null, "cljs.core/PersistentArrayMap")
};
cljs.core.PersistentArrayMap.prototype.cljs$core$IEditableCollection$_as_transient$arity$1 = function(coll) {
var this__10200 = this;
return new cljs.core.TransientArrayMap({}, this__10200.arr.length, this__10200.arr.slice())
};
cljs.core.PersistentArrayMap.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var this__10201 = this;
var h__2216__auto____10202 = this__10201.__hash;
if(!(h__2216__auto____10202 == null)) {
return h__2216__auto____10202
}else {
var h__2216__auto____10203 = cljs.core.hash_imap.call(null, coll);
this__10201.__hash = h__2216__auto____10203;
return h__2216__auto____10203
}
};
cljs.core.PersistentArrayMap.prototype.cljs$core$ILookup$_lookup$arity$2 = function(coll, k) {
var this__10204 = this;
return coll.cljs$core$ILookup$_lookup$arity$3(coll, k, null)
};
cljs.core.PersistentArrayMap.prototype.cljs$core$ILookup$_lookup$arity$3 = function(coll, k, not_found) {
var this__10205 = this;
var idx__10206 = cljs.core.array_map_index_of.call(null, coll, k);
if(idx__10206 === -1) {
return not_found
}else {
return this__10205.arr[idx__10206 + 1]
}
};
cljs.core.PersistentArrayMap.prototype.cljs$core$IAssociative$_assoc$arity$3 = function(coll, k, v) {
var this__10207 = this;
var idx__10208 = cljs.core.array_map_index_of.call(null, coll, k);
if(idx__10208 === -1) {
if(this__10207.cnt < cljs.core.PersistentArrayMap.HASHMAP_THRESHOLD) {
return new cljs.core.PersistentArrayMap(this__10207.meta, this__10207.cnt + 1, function() {
var G__10209__10210 = this__10207.arr.slice();
G__10209__10210.push(k);
G__10209__10210.push(v);
return G__10209__10210
}(), null)
}else {
return cljs.core.persistent_BANG_.call(null, cljs.core.assoc_BANG_.call(null, cljs.core.transient$.call(null, cljs.core.into.call(null, cljs.core.PersistentHashMap.EMPTY, coll)), k, v))
}
}else {
if(v === this__10207.arr[idx__10208 + 1]) {
return coll
}else {
if("\ufdd0'else") {
return new cljs.core.PersistentArrayMap(this__10207.meta, this__10207.cnt, function() {
var G__10211__10212 = this__10207.arr.slice();
G__10211__10212[idx__10208 + 1] = v;
return G__10211__10212
}(), null)
}else {
return null
}
}
}
};
cljs.core.PersistentArrayMap.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 = function(coll, k) {
var this__10213 = this;
return!(cljs.core.array_map_index_of.call(null, coll, k) === -1)
};
cljs.core.PersistentArrayMap.prototype.call = function() {
var G__10245 = null;
var G__10245__2 = function(this_sym10214, k) {
var this__10216 = this;
var this_sym10214__10217 = this;
var coll__10218 = this_sym10214__10217;
return coll__10218.cljs$core$ILookup$_lookup$arity$2(coll__10218, k)
};
var G__10245__3 = function(this_sym10215, k, not_found) {
var this__10216 = this;
var this_sym10215__10219 = this;
var coll__10220 = this_sym10215__10219;
return coll__10220.cljs$core$ILookup$_lookup$arity$3(coll__10220, k, not_found)
};
G__10245 = function(this_sym10215, k, not_found) {
switch(arguments.length) {
case 2:
return G__10245__2.call(this, this_sym10215, k);
case 3:
return G__10245__3.call(this, this_sym10215, k, not_found)
}
throw"Invalid arity: " + arguments.length;
};
return G__10245
}();
cljs.core.PersistentArrayMap.prototype.apply = function(this_sym10198, args10199) {
var this__10221 = this;
return this_sym10198.call.apply(this_sym10198, [this_sym10198].concat(args10199.slice()))
};
cljs.core.PersistentArrayMap.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 = function(coll, f, init) {
var this__10222 = this;
var len__10223 = this__10222.arr.length;
var i__10224 = 0;
var init__10225 = init;
while(true) {
if(i__10224 < len__10223) {
var init__10226 = f.call(null, init__10225, this__10222.arr[i__10224], this__10222.arr[i__10224 + 1]);
if(cljs.core.reduced_QMARK_.call(null, init__10226)) {
return cljs.core.deref.call(null, init__10226)
}else {
var G__10246 = i__10224 + 2;
var G__10247 = init__10226;
i__10224 = G__10246;
init__10225 = G__10247;
continue
}
}else {
return null
}
break
}
};
cljs.core.PersistentArrayMap.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, entry) {
var this__10227 = this;
if(cljs.core.vector_QMARK_.call(null, entry)) {
return coll.cljs$core$IAssociative$_assoc$arity$3(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.PersistentArrayMap.prototype.toString = function() {
var this__10228 = this;
var this__10229 = this;
return cljs.core.pr_str.call(null, this__10229)
};
cljs.core.PersistentArrayMap.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var this__10230 = this;
if(this__10230.cnt > 0) {
var len__10231 = this__10230.arr.length;
var array_map_seq__10232 = function array_map_seq(i) {
return new cljs.core.LazySeq(null, false, function() {
if(i < len__10231) {
return cljs.core.cons.call(null, cljs.core.PersistentVector.fromArray([this__10230.arr[i], this__10230.arr[i + 1]], true), array_map_seq.call(null, i + 2))
}else {
return null
}
}, null)
};
return array_map_seq__10232.call(null, 0)
}else {
return null
}
};
cljs.core.PersistentArrayMap.prototype.cljs$core$ICounted$_count$arity$1 = function(coll) {
var this__10233 = this;
return this__10233.cnt
};
cljs.core.PersistentArrayMap.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var this__10234 = this;
return cljs.core.equiv_map.call(null, coll, other)
};
cljs.core.PersistentArrayMap.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(coll, meta) {
var this__10235 = this;
return new cljs.core.PersistentArrayMap(meta, this__10235.cnt, this__10235.arr, this__10235.__hash)
};
cljs.core.PersistentArrayMap.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var this__10236 = this;
return this__10236.meta
};
cljs.core.PersistentArrayMap.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var this__10237 = this;
return cljs.core._with_meta.call(null, cljs.core.PersistentArrayMap.EMPTY, this__10237.meta)
};
cljs.core.PersistentArrayMap.prototype.cljs$core$IMap$_dissoc$arity$2 = function(coll, k) {
var this__10238 = this;
var idx__10239 = cljs.core.array_map_index_of.call(null, coll, k);
if(idx__10239 >= 0) {
var len__10240 = this__10238.arr.length;
var new_len__10241 = len__10240 - 2;
if(new_len__10241 === 0) {
return coll.cljs$core$IEmptyableCollection$_empty$arity$1(coll)
}else {
var new_arr__10242 = cljs.core.make_array.call(null, new_len__10241);
var s__10243 = 0;
var d__10244 = 0;
while(true) {
if(s__10243 >= len__10240) {
return new cljs.core.PersistentArrayMap(this__10238.meta, this__10238.cnt - 1, new_arr__10242, null)
}else {
if(cljs.core._EQ_.call(null, k, this__10238.arr[s__10243])) {
var G__10248 = s__10243 + 2;
var G__10249 = d__10244;
s__10243 = G__10248;
d__10244 = G__10249;
continue
}else {
if("\ufdd0'else") {
new_arr__10242[d__10244] = this__10238.arr[s__10243];
new_arr__10242[d__10244 + 1] = this__10238.arr[s__10243 + 1];
var G__10250 = s__10243 + 2;
var G__10251 = d__10244 + 2;
s__10243 = G__10250;
d__10244 = G__10251;
continue
}else {
return null
}
}
}
break
}
}
}else {
return coll
}
};
cljs.core.PersistentArrayMap;
cljs.core.PersistentArrayMap.EMPTY = new cljs.core.PersistentArrayMap(null, 0, [], null);
cljs.core.PersistentArrayMap.HASHMAP_THRESHOLD = 16;
cljs.core.PersistentArrayMap.fromArrays = function(ks, vs) {
var len__10252 = cljs.core.count.call(null, ks);
var i__10253 = 0;
var out__10254 = cljs.core.transient$.call(null, cljs.core.PersistentArrayMap.EMPTY);
while(true) {
if(i__10253 < len__10252) {
var G__10255 = i__10253 + 1;
var G__10256 = cljs.core.assoc_BANG_.call(null, out__10254, ks[i__10253], vs[i__10253]);
i__10253 = G__10255;
out__10254 = G__10256;
continue
}else {
return cljs.core.persistent_BANG_.call(null, out__10254)
}
break
}
};
cljs.core.TransientArrayMap = function(editable_QMARK_, len, arr) {
this.editable_QMARK_ = editable_QMARK_;
this.len = len;
this.arr = arr;
this.cljs$lang$protocol_mask$partition1$ = 14;
this.cljs$lang$protocol_mask$partition0$ = 258
};
cljs.core.TransientArrayMap.cljs$lang$type = true;
cljs.core.TransientArrayMap.cljs$lang$ctorPrSeq = function(this__2333__auto__) {
return cljs.core.list.call(null, "cljs.core/TransientArrayMap")
};
cljs.core.TransientArrayMap.prototype.cljs$core$ITransientMap$_dissoc_BANG_$arity$2 = function(tcoll, key) {
var this__10257 = this;
if(cljs.core.truth_(this__10257.editable_QMARK_)) {
var idx__10258 = cljs.core.array_map_index_of.call(null, tcoll, key);
if(idx__10258 >= 0) {
this__10257.arr[idx__10258] = this__10257.arr[this__10257.len - 2];
this__10257.arr[idx__10258 + 1] = this__10257.arr[this__10257.len - 1];
var G__10259__10260 = this__10257.arr;
G__10259__10260.pop();
G__10259__10260.pop();
G__10259__10260;
this__10257.len = this__10257.len - 2
}else {
}
return tcoll
}else {
throw new Error("dissoc! after persistent!");
}
};
cljs.core.TransientArrayMap.prototype.cljs$core$ITransientAssociative$_assoc_BANG_$arity$3 = function(tcoll, key, val) {
var this__10261 = this;
if(cljs.core.truth_(this__10261.editable_QMARK_)) {
var idx__10262 = cljs.core.array_map_index_of.call(null, tcoll, key);
if(idx__10262 === -1) {
if(this__10261.len + 2 <= 2 * cljs.core.PersistentArrayMap.HASHMAP_THRESHOLD) {
this__10261.len = this__10261.len + 2;
this__10261.arr.push(key);
this__10261.arr.push(val);
return tcoll
}else {
return cljs.core.assoc_BANG_.call(null, cljs.core.array__GT_transient_hash_map.call(null, this__10261.len, this__10261.arr), key, val)
}
}else {
if(val === this__10261.arr[idx__10262 + 1]) {
return tcoll
}else {
this__10261.arr[idx__10262 + 1] = val;
return tcoll
}
}
}else {
throw new Error("assoc! after persistent!");
}
};
cljs.core.TransientArrayMap.prototype.cljs$core$ITransientCollection$_conj_BANG_$arity$2 = function(tcoll, o) {
var this__10263 = this;
if(cljs.core.truth_(this__10263.editable_QMARK_)) {
if(function() {
var G__10264__10265 = o;
if(G__10264__10265) {
if(function() {
var or__3824__auto____10266 = G__10264__10265.cljs$lang$protocol_mask$partition0$ & 2048;
if(or__3824__auto____10266) {
return or__3824__auto____10266
}else {
return G__10264__10265.cljs$core$IMapEntry$
}
}()) {
return true
}else {
if(!G__10264__10265.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IMapEntry, G__10264__10265)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IMapEntry, G__10264__10265)
}
}()) {
return tcoll.cljs$core$ITransientAssociative$_assoc_BANG_$arity$3(tcoll, cljs.core.key.call(null, o), cljs.core.val.call(null, o))
}else {
var es__10267 = cljs.core.seq.call(null, o);
var tcoll__10268 = tcoll;
while(true) {
var temp__3971__auto____10269 = cljs.core.first.call(null, es__10267);
if(cljs.core.truth_(temp__3971__auto____10269)) {
var e__10270 = temp__3971__auto____10269;
var G__10276 = cljs.core.next.call(null, es__10267);
var G__10277 = tcoll__10268.cljs$core$ITransientAssociative$_assoc_BANG_$arity$3(tcoll__10268, cljs.core.key.call(null, e__10270), cljs.core.val.call(null, e__10270));
es__10267 = G__10276;
tcoll__10268 = G__10277;
continue
}else {
return tcoll__10268
}
break
}
}
}else {
throw new Error("conj! after persistent!");
}
};
cljs.core.TransientArrayMap.prototype.cljs$core$ITransientCollection$_persistent_BANG_$arity$1 = function(tcoll) {
var this__10271 = this;
if(cljs.core.truth_(this__10271.editable_QMARK_)) {
this__10271.editable_QMARK_ = false;
return new cljs.core.PersistentArrayMap(null, cljs.core.quot.call(null, this__10271.len, 2), this__10271.arr, null)
}else {
throw new Error("persistent! called twice");
}
};
cljs.core.TransientArrayMap.prototype.cljs$core$ILookup$_lookup$arity$2 = function(tcoll, k) {
var this__10272 = this;
return tcoll.cljs$core$ILookup$_lookup$arity$3(tcoll, k, null)
};
cljs.core.TransientArrayMap.prototype.cljs$core$ILookup$_lookup$arity$3 = function(tcoll, k, not_found) {
var this__10273 = this;
if(cljs.core.truth_(this__10273.editable_QMARK_)) {
var idx__10274 = cljs.core.array_map_index_of.call(null, tcoll, k);
if(idx__10274 === -1) {
return not_found
}else {
return this__10273.arr[idx__10274 + 1]
}
}else {
throw new Error("lookup after persistent!");
}
};
cljs.core.TransientArrayMap.prototype.cljs$core$ICounted$_count$arity$1 = function(tcoll) {
var this__10275 = this;
if(cljs.core.truth_(this__10275.editable_QMARK_)) {
return cljs.core.quot.call(null, this__10275.len, 2)
}else {
throw new Error("count after persistent!");
}
};
cljs.core.TransientArrayMap;
cljs.core.array__GT_transient_hash_map = function array__GT_transient_hash_map(len, arr) {
var out__10280 = cljs.core.transient$.call(null, cljs.core.ObjMap.EMPTY);
var i__10281 = 0;
while(true) {
if(i__10281 < len) {
var G__10282 = cljs.core.assoc_BANG_.call(null, out__10280, arr[i__10281], arr[i__10281 + 1]);
var G__10283 = i__10281 + 2;
out__10280 = G__10282;
i__10281 = G__10283;
continue
}else {
return out__10280
}
break
}
};
cljs.core.Box = function(val) {
this.val = val
};
cljs.core.Box.cljs$lang$type = true;
cljs.core.Box.cljs$lang$ctorPrSeq = function(this__2334__auto__) {
return cljs.core.list.call(null, "cljs.core/Box")
};
cljs.core.Box;
cljs.core.key_test = function key_test(key, other) {
if(goog.isString(key)) {
return key === other
}else {
return cljs.core._EQ_.call(null, key, other)
}
};
cljs.core.mask = function mask(hash, shift) {
return hash >>> shift & 31
};
cljs.core.clone_and_set = function() {
var clone_and_set = null;
var clone_and_set__3 = function(arr, i, a) {
var G__10288__10289 = arr.slice();
G__10288__10289[i] = a;
return G__10288__10289
};
var clone_and_set__5 = function(arr, i, a, j, b) {
var G__10290__10291 = arr.slice();
G__10290__10291[i] = a;
G__10290__10291[j] = b;
return G__10290__10291
};
clone_and_set = function(arr, i, a, j, b) {
switch(arguments.length) {
case 3:
return clone_and_set__3.call(this, arr, i, a);
case 5:
return clone_and_set__5.call(this, arr, i, a, j, b)
}
throw"Invalid arity: " + arguments.length;
};
clone_and_set.cljs$lang$arity$3 = clone_and_set__3;
clone_and_set.cljs$lang$arity$5 = clone_and_set__5;
return clone_and_set
}();
cljs.core.remove_pair = function remove_pair(arr, i) {
var new_arr__10293 = cljs.core.make_array.call(null, arr.length - 2);
cljs.core.array_copy.call(null, arr, 0, new_arr__10293, 0, 2 * i);
cljs.core.array_copy.call(null, arr, 2 * (i + 1), new_arr__10293, 2 * i, new_arr__10293.length - 2 * i);
return new_arr__10293
};
cljs.core.bitmap_indexed_node_index = function bitmap_indexed_node_index(bitmap, bit) {
return cljs.core.bit_count.call(null, bitmap & bit - 1)
};
cljs.core.bitpos = function bitpos(hash, shift) {
return 1 << (hash >>> shift & 31)
};
cljs.core.edit_and_set = function() {
var edit_and_set = null;
var edit_and_set__4 = function(inode, edit, i, a) {
var editable__10296 = inode.ensure_editable(edit);
editable__10296.arr[i] = a;
return editable__10296
};
var edit_and_set__6 = function(inode, edit, i, a, j, b) {
var editable__10297 = inode.ensure_editable(edit);
editable__10297.arr[i] = a;
editable__10297.arr[j] = b;
return editable__10297
};
edit_and_set = function(inode, edit, i, a, j, b) {
switch(arguments.length) {
case 4:
return edit_and_set__4.call(this, inode, edit, i, a);
case 6:
return edit_and_set__6.call(this, inode, edit, i, a, j, b)
}
throw"Invalid arity: " + arguments.length;
};
edit_and_set.cljs$lang$arity$4 = edit_and_set__4;
edit_and_set.cljs$lang$arity$6 = edit_and_set__6;
return edit_and_set
}();
cljs.core.inode_kv_reduce = function inode_kv_reduce(arr, f, init) {
var len__10304 = arr.length;
var i__10305 = 0;
var init__10306 = init;
while(true) {
if(i__10305 < len__10304) {
var init__10309 = function() {
var k__10307 = arr[i__10305];
if(!(k__10307 == null)) {
return f.call(null, init__10306, k__10307, arr[i__10305 + 1])
}else {
var node__10308 = arr[i__10305 + 1];
if(!(node__10308 == null)) {
return node__10308.kv_reduce(f, init__10306)
}else {
return init__10306
}
}
}();
if(cljs.core.reduced_QMARK_.call(null, init__10309)) {
return cljs.core.deref.call(null, init__10309)
}else {
var G__10310 = i__10305 + 2;
var G__10311 = init__10309;
i__10305 = G__10310;
init__10306 = G__10311;
continue
}
}else {
return init__10306
}
break
}
};
cljs.core.BitmapIndexedNode = function(edit, bitmap, arr) {
this.edit = edit;
this.bitmap = bitmap;
this.arr = arr
};
cljs.core.BitmapIndexedNode.cljs$lang$type = true;
cljs.core.BitmapIndexedNode.cljs$lang$ctorPrSeq = function(this__2333__auto__) {
return cljs.core.list.call(null, "cljs.core/BitmapIndexedNode")
};
cljs.core.BitmapIndexedNode.prototype.edit_and_remove_pair = function(e, bit, i) {
var this__10312 = this;
var inode__10313 = this;
if(this__10312.bitmap === bit) {
return null
}else {
var editable__10314 = inode__10313.ensure_editable(e);
var earr__10315 = editable__10314.arr;
var len__10316 = earr__10315.length;
editable__10314.bitmap = bit ^ editable__10314.bitmap;
cljs.core.array_copy.call(null, earr__10315, 2 * (i + 1), earr__10315, 2 * i, len__10316 - 2 * (i + 1));
earr__10315[len__10316 - 2] = null;
earr__10315[len__10316 - 1] = null;
return editable__10314
}
};
cljs.core.BitmapIndexedNode.prototype.inode_assoc_BANG_ = function(edit, shift, hash, key, val, added_leaf_QMARK_) {
var this__10317 = this;
var inode__10318 = this;
var bit__10319 = 1 << (hash >>> shift & 31);
var idx__10320 = cljs.core.bitmap_indexed_node_index.call(null, this__10317.bitmap, bit__10319);
if((this__10317.bitmap & bit__10319) === 0) {
var n__10321 = cljs.core.bit_count.call(null, this__10317.bitmap);
if(2 * n__10321 < this__10317.arr.length) {
var editable__10322 = inode__10318.ensure_editable(edit);
var earr__10323 = editable__10322.arr;
added_leaf_QMARK_.val = true;
cljs.core.array_copy_downward.call(null, earr__10323, 2 * idx__10320, earr__10323, 2 * (idx__10320 + 1), 2 * (n__10321 - idx__10320));
earr__10323[2 * idx__10320] = key;
earr__10323[2 * idx__10320 + 1] = val;
editable__10322.bitmap = editable__10322.bitmap | bit__10319;
return editable__10322
}else {
if(n__10321 >= 16) {
var nodes__10324 = cljs.core.make_array.call(null, 32);
var jdx__10325 = hash >>> shift & 31;
nodes__10324[jdx__10325] = cljs.core.BitmapIndexedNode.EMPTY.inode_assoc_BANG_(edit, shift + 5, hash, key, val, added_leaf_QMARK_);
var i__10326 = 0;
var j__10327 = 0;
while(true) {
if(i__10326 < 32) {
if((this__10317.bitmap >>> i__10326 & 1) === 0) {
var G__10380 = i__10326 + 1;
var G__10381 = j__10327;
i__10326 = G__10380;
j__10327 = G__10381;
continue
}else {
nodes__10324[i__10326] = !(this__10317.arr[j__10327] == null) ? cljs.core.BitmapIndexedNode.EMPTY.inode_assoc_BANG_(edit, shift + 5, cljs.core.hash.call(null, this__10317.arr[j__10327]), this__10317.arr[j__10327], this__10317.arr[j__10327 + 1], added_leaf_QMARK_) : this__10317.arr[j__10327 + 1];
var G__10382 = i__10326 + 1;
var G__10383 = j__10327 + 2;
i__10326 = G__10382;
j__10327 = G__10383;
continue
}
}else {
}
break
}
return new cljs.core.ArrayNode(edit, n__10321 + 1, nodes__10324)
}else {
if("\ufdd0'else") {
var new_arr__10328 = cljs.core.make_array.call(null, 2 * (n__10321 + 4));
cljs.core.array_copy.call(null, this__10317.arr, 0, new_arr__10328, 0, 2 * idx__10320);
new_arr__10328[2 * idx__10320] = key;
new_arr__10328[2 * idx__10320 + 1] = val;
cljs.core.array_copy.call(null, this__10317.arr, 2 * idx__10320, new_arr__10328, 2 * (idx__10320 + 1), 2 * (n__10321 - idx__10320));
added_leaf_QMARK_.val = true;
var editable__10329 = inode__10318.ensure_editable(edit);
editable__10329.arr = new_arr__10328;
editable__10329.bitmap = editable__10329.bitmap | bit__10319;
return editable__10329
}else {
return null
}
}
}
}else {
var key_or_nil__10330 = this__10317.arr[2 * idx__10320];
var val_or_node__10331 = this__10317.arr[2 * idx__10320 + 1];
if(key_or_nil__10330 == null) {
var n__10332 = val_or_node__10331.inode_assoc_BANG_(edit, shift + 5, hash, key, val, added_leaf_QMARK_);
if(n__10332 === val_or_node__10331) {
return inode__10318
}else {
return cljs.core.edit_and_set.call(null, inode__10318, edit, 2 * idx__10320 + 1, n__10332)
}
}else {
if(cljs.core.key_test.call(null, key, key_or_nil__10330)) {
if(val === val_or_node__10331) {
return inode__10318
}else {
return cljs.core.edit_and_set.call(null, inode__10318, edit, 2 * idx__10320 + 1, val)
}
}else {
if("\ufdd0'else") {
added_leaf_QMARK_.val = true;
return cljs.core.edit_and_set.call(null, inode__10318, edit, 2 * idx__10320, null, 2 * idx__10320 + 1, cljs.core.create_node.call(null, edit, shift + 5, key_or_nil__10330, val_or_node__10331, hash, key, val))
}else {
return null
}
}
}
}
};
cljs.core.BitmapIndexedNode.prototype.inode_seq = function() {
var this__10333 = this;
var inode__10334 = this;
return cljs.core.create_inode_seq.call(null, this__10333.arr)
};
cljs.core.BitmapIndexedNode.prototype.inode_without_BANG_ = function(edit, shift, hash, key, removed_leaf_QMARK_) {
var this__10335 = this;
var inode__10336 = this;
var bit__10337 = 1 << (hash >>> shift & 31);
if((this__10335.bitmap & bit__10337) === 0) {
return inode__10336
}else {
var idx__10338 = cljs.core.bitmap_indexed_node_index.call(null, this__10335.bitmap, bit__10337);
var key_or_nil__10339 = this__10335.arr[2 * idx__10338];
var val_or_node__10340 = this__10335.arr[2 * idx__10338 + 1];
if(key_or_nil__10339 == null) {
var n__10341 = val_or_node__10340.inode_without_BANG_(edit, shift + 5, hash, key, removed_leaf_QMARK_);
if(n__10341 === val_or_node__10340) {
return inode__10336
}else {
if(!(n__10341 == null)) {
return cljs.core.edit_and_set.call(null, inode__10336, edit, 2 * idx__10338 + 1, n__10341)
}else {
if(this__10335.bitmap === bit__10337) {
return null
}else {
if("\ufdd0'else") {
return inode__10336.edit_and_remove_pair(edit, bit__10337, idx__10338)
}else {
return null
}
}
}
}
}else {
if(cljs.core.key_test.call(null, key, key_or_nil__10339)) {
removed_leaf_QMARK_[0] = true;
return inode__10336.edit_and_remove_pair(edit, bit__10337, idx__10338)
}else {
if("\ufdd0'else") {
return inode__10336
}else {
return null
}
}
}
}
};
cljs.core.BitmapIndexedNode.prototype.ensure_editable = function(e) {
var this__10342 = this;
var inode__10343 = this;
if(e === this__10342.edit) {
return inode__10343
}else {
var n__10344 = cljs.core.bit_count.call(null, this__10342.bitmap);
var new_arr__10345 = cljs.core.make_array.call(null, n__10344 < 0 ? 4 : 2 * (n__10344 + 1));
cljs.core.array_copy.call(null, this__10342.arr, 0, new_arr__10345, 0, 2 * n__10344);
return new cljs.core.BitmapIndexedNode(e, this__10342.bitmap, new_arr__10345)
}
};
cljs.core.BitmapIndexedNode.prototype.kv_reduce = function(f, init) {
var this__10346 = this;
var inode__10347 = this;
return cljs.core.inode_kv_reduce.call(null, this__10346.arr, f, init)
};
cljs.core.BitmapIndexedNode.prototype.inode_find = function(shift, hash, key, not_found) {
var this__10348 = this;
var inode__10349 = this;
var bit__10350 = 1 << (hash >>> shift & 31);
if((this__10348.bitmap & bit__10350) === 0) {
return not_found
}else {
var idx__10351 = cljs.core.bitmap_indexed_node_index.call(null, this__10348.bitmap, bit__10350);
var key_or_nil__10352 = this__10348.arr[2 * idx__10351];
var val_or_node__10353 = this__10348.arr[2 * idx__10351 + 1];
if(key_or_nil__10352 == null) {
return val_or_node__10353.inode_find(shift + 5, hash, key, not_found)
}else {
if(cljs.core.key_test.call(null, key, key_or_nil__10352)) {
return cljs.core.PersistentVector.fromArray([key_or_nil__10352, val_or_node__10353], true)
}else {
if("\ufdd0'else") {
return not_found
}else {
return null
}
}
}
}
};
cljs.core.BitmapIndexedNode.prototype.inode_without = function(shift, hash, key) {
var this__10354 = this;
var inode__10355 = this;
var bit__10356 = 1 << (hash >>> shift & 31);
if((this__10354.bitmap & bit__10356) === 0) {
return inode__10355
}else {
var idx__10357 = cljs.core.bitmap_indexed_node_index.call(null, this__10354.bitmap, bit__10356);
var key_or_nil__10358 = this__10354.arr[2 * idx__10357];
var val_or_node__10359 = this__10354.arr[2 * idx__10357 + 1];
if(key_or_nil__10358 == null) {
var n__10360 = val_or_node__10359.inode_without(shift + 5, hash, key);
if(n__10360 === val_or_node__10359) {
return inode__10355
}else {
if(!(n__10360 == null)) {
return new cljs.core.BitmapIndexedNode(null, this__10354.bitmap, cljs.core.clone_and_set.call(null, this__10354.arr, 2 * idx__10357 + 1, n__10360))
}else {
if(this__10354.bitmap === bit__10356) {
return null
}else {
if("\ufdd0'else") {
return new cljs.core.BitmapIndexedNode(null, this__10354.bitmap ^ bit__10356, cljs.core.remove_pair.call(null, this__10354.arr, idx__10357))
}else {
return null
}
}
}
}
}else {
if(cljs.core.key_test.call(null, key, key_or_nil__10358)) {
return new cljs.core.BitmapIndexedNode(null, this__10354.bitmap ^ bit__10356, cljs.core.remove_pair.call(null, this__10354.arr, idx__10357))
}else {
if("\ufdd0'else") {
return inode__10355
}else {
return null
}
}
}
}
};
cljs.core.BitmapIndexedNode.prototype.inode_assoc = function(shift, hash, key, val, added_leaf_QMARK_) {
var this__10361 = this;
var inode__10362 = this;
var bit__10363 = 1 << (hash >>> shift & 31);
var idx__10364 = cljs.core.bitmap_indexed_node_index.call(null, this__10361.bitmap, bit__10363);
if((this__10361.bitmap & bit__10363) === 0) {
var n__10365 = cljs.core.bit_count.call(null, this__10361.bitmap);
if(n__10365 >= 16) {
var nodes__10366 = cljs.core.make_array.call(null, 32);
var jdx__10367 = hash >>> shift & 31;
nodes__10366[jdx__10367] = cljs.core.BitmapIndexedNode.EMPTY.inode_assoc(shift + 5, hash, key, val, added_leaf_QMARK_);
var i__10368 = 0;
var j__10369 = 0;
while(true) {
if(i__10368 < 32) {
if((this__10361.bitmap >>> i__10368 & 1) === 0) {
var G__10384 = i__10368 + 1;
var G__10385 = j__10369;
i__10368 = G__10384;
j__10369 = G__10385;
continue
}else {
nodes__10366[i__10368] = !(this__10361.arr[j__10369] == null) ? cljs.core.BitmapIndexedNode.EMPTY.inode_assoc(shift + 5, cljs.core.hash.call(null, this__10361.arr[j__10369]), this__10361.arr[j__10369], this__10361.arr[j__10369 + 1], added_leaf_QMARK_) : this__10361.arr[j__10369 + 1];
var G__10386 = i__10368 + 1;
var G__10387 = j__10369 + 2;
i__10368 = G__10386;
j__10369 = G__10387;
continue
}
}else {
}
break
}
return new cljs.core.ArrayNode(null, n__10365 + 1, nodes__10366)
}else {
var new_arr__10370 = cljs.core.make_array.call(null, 2 * (n__10365 + 1));
cljs.core.array_copy.call(null, this__10361.arr, 0, new_arr__10370, 0, 2 * idx__10364);
new_arr__10370[2 * idx__10364] = key;
new_arr__10370[2 * idx__10364 + 1] = val;
cljs.core.array_copy.call(null, this__10361.arr, 2 * idx__10364, new_arr__10370, 2 * (idx__10364 + 1), 2 * (n__10365 - idx__10364));
added_leaf_QMARK_.val = true;
return new cljs.core.BitmapIndexedNode(null, this__10361.bitmap | bit__10363, new_arr__10370)
}
}else {
var key_or_nil__10371 = this__10361.arr[2 * idx__10364];
var val_or_node__10372 = this__10361.arr[2 * idx__10364 + 1];
if(key_or_nil__10371 == null) {
var n__10373 = val_or_node__10372.inode_assoc(shift + 5, hash, key, val, added_leaf_QMARK_);
if(n__10373 === val_or_node__10372) {
return inode__10362
}else {
return new cljs.core.BitmapIndexedNode(null, this__10361.bitmap, cljs.core.clone_and_set.call(null, this__10361.arr, 2 * idx__10364 + 1, n__10373))
}
}else {
if(cljs.core.key_test.call(null, key, key_or_nil__10371)) {
if(val === val_or_node__10372) {
return inode__10362
}else {
return new cljs.core.BitmapIndexedNode(null, this__10361.bitmap, cljs.core.clone_and_set.call(null, this__10361.arr, 2 * idx__10364 + 1, val))
}
}else {
if("\ufdd0'else") {
added_leaf_QMARK_.val = true;
return new cljs.core.BitmapIndexedNode(null, this__10361.bitmap, cljs.core.clone_and_set.call(null, this__10361.arr, 2 * idx__10364, null, 2 * idx__10364 + 1, cljs.core.create_node.call(null, shift + 5, key_or_nil__10371, val_or_node__10372, hash, key, val)))
}else {
return null
}
}
}
}
};
cljs.core.BitmapIndexedNode.prototype.inode_lookup = function(shift, hash, key, not_found) {
var this__10374 = this;
var inode__10375 = this;
var bit__10376 = 1 << (hash >>> shift & 31);
if((this__10374.bitmap & bit__10376) === 0) {
return not_found
}else {
var idx__10377 = cljs.core.bitmap_indexed_node_index.call(null, this__10374.bitmap, bit__10376);
var key_or_nil__10378 = this__10374.arr[2 * idx__10377];
var val_or_node__10379 = this__10374.arr[2 * idx__10377 + 1];
if(key_or_nil__10378 == null) {
return val_or_node__10379.inode_lookup(shift + 5, hash, key, not_found)
}else {
if(cljs.core.key_test.call(null, key, key_or_nil__10378)) {
return val_or_node__10379
}else {
if("\ufdd0'else") {
return not_found
}else {
return null
}
}
}
}
};
cljs.core.BitmapIndexedNode;
cljs.core.BitmapIndexedNode.EMPTY = new cljs.core.BitmapIndexedNode(null, 0, cljs.core.make_array.call(null, 0));
cljs.core.pack_array_node = function pack_array_node(array_node, edit, idx) {
var arr__10395 = array_node.arr;
var len__10396 = 2 * (array_node.cnt - 1);
var new_arr__10397 = cljs.core.make_array.call(null, len__10396);
var i__10398 = 0;
var j__10399 = 1;
var bitmap__10400 = 0;
while(true) {
if(i__10398 < len__10396) {
if(function() {
var and__3822__auto____10401 = !(i__10398 === idx);
if(and__3822__auto____10401) {
return!(arr__10395[i__10398] == null)
}else {
return and__3822__auto____10401
}
}()) {
new_arr__10397[j__10399] = arr__10395[i__10398];
var G__10402 = i__10398 + 1;
var G__10403 = j__10399 + 2;
var G__10404 = bitmap__10400 | 1 << i__10398;
i__10398 = G__10402;
j__10399 = G__10403;
bitmap__10400 = G__10404;
continue
}else {
var G__10405 = i__10398 + 1;
var G__10406 = j__10399;
var G__10407 = bitmap__10400;
i__10398 = G__10405;
j__10399 = G__10406;
bitmap__10400 = G__10407;
continue
}
}else {
return new cljs.core.BitmapIndexedNode(edit, bitmap__10400, new_arr__10397)
}
break
}
};
cljs.core.ArrayNode = function(edit, cnt, arr) {
this.edit = edit;
this.cnt = cnt;
this.arr = arr
};
cljs.core.ArrayNode.cljs$lang$type = true;
cljs.core.ArrayNode.cljs$lang$ctorPrSeq = function(this__2333__auto__) {
return cljs.core.list.call(null, "cljs.core/ArrayNode")
};
cljs.core.ArrayNode.prototype.inode_assoc_BANG_ = function(edit, shift, hash, key, val, added_leaf_QMARK_) {
var this__10408 = this;
var inode__10409 = this;
var idx__10410 = hash >>> shift & 31;
var node__10411 = this__10408.arr[idx__10410];
if(node__10411 == null) {
var editable__10412 = cljs.core.edit_and_set.call(null, inode__10409, edit, idx__10410, cljs.core.BitmapIndexedNode.EMPTY.inode_assoc_BANG_(edit, shift + 5, hash, key, val, added_leaf_QMARK_));
editable__10412.cnt = editable__10412.cnt + 1;
return editable__10412
}else {
var n__10413 = node__10411.inode_assoc_BANG_(edit, shift + 5, hash, key, val, added_leaf_QMARK_);
if(n__10413 === node__10411) {
return inode__10409
}else {
return cljs.core.edit_and_set.call(null, inode__10409, edit, idx__10410, n__10413)
}
}
};
cljs.core.ArrayNode.prototype.inode_seq = function() {
var this__10414 = this;
var inode__10415 = this;
return cljs.core.create_array_node_seq.call(null, this__10414.arr)
};
cljs.core.ArrayNode.prototype.inode_without_BANG_ = function(edit, shift, hash, key, removed_leaf_QMARK_) {
var this__10416 = this;
var inode__10417 = this;
var idx__10418 = hash >>> shift & 31;
var node__10419 = this__10416.arr[idx__10418];
if(node__10419 == null) {
return inode__10417
}else {
var n__10420 = node__10419.inode_without_BANG_(edit, shift + 5, hash, key, removed_leaf_QMARK_);
if(n__10420 === node__10419) {
return inode__10417
}else {
if(n__10420 == null) {
if(this__10416.cnt <= 8) {
return cljs.core.pack_array_node.call(null, inode__10417, edit, idx__10418)
}else {
var editable__10421 = cljs.core.edit_and_set.call(null, inode__10417, edit, idx__10418, n__10420);
editable__10421.cnt = editable__10421.cnt - 1;
return editable__10421
}
}else {
if("\ufdd0'else") {
return cljs.core.edit_and_set.call(null, inode__10417, edit, idx__10418, n__10420)
}else {
return null
}
}
}
}
};
cljs.core.ArrayNode.prototype.ensure_editable = function(e) {
var this__10422 = this;
var inode__10423 = this;
if(e === this__10422.edit) {
return inode__10423
}else {
return new cljs.core.ArrayNode(e, this__10422.cnt, this__10422.arr.slice())
}
};
cljs.core.ArrayNode.prototype.kv_reduce = function(f, init) {
var this__10424 = this;
var inode__10425 = this;
var len__10426 = this__10424.arr.length;
var i__10427 = 0;
var init__10428 = init;
while(true) {
if(i__10427 < len__10426) {
var node__10429 = this__10424.arr[i__10427];
if(!(node__10429 == null)) {
var init__10430 = node__10429.kv_reduce(f, init__10428);
if(cljs.core.reduced_QMARK_.call(null, init__10430)) {
return cljs.core.deref.call(null, init__10430)
}else {
var G__10449 = i__10427 + 1;
var G__10450 = init__10430;
i__10427 = G__10449;
init__10428 = G__10450;
continue
}
}else {
return null
}
}else {
return init__10428
}
break
}
};
cljs.core.ArrayNode.prototype.inode_find = function(shift, hash, key, not_found) {
var this__10431 = this;
var inode__10432 = this;
var idx__10433 = hash >>> shift & 31;
var node__10434 = this__10431.arr[idx__10433];
if(!(node__10434 == null)) {
return node__10434.inode_find(shift + 5, hash, key, not_found)
}else {
return not_found
}
};
cljs.core.ArrayNode.prototype.inode_without = function(shift, hash, key) {
var this__10435 = this;
var inode__10436 = this;
var idx__10437 = hash >>> shift & 31;
var node__10438 = this__10435.arr[idx__10437];
if(!(node__10438 == null)) {
var n__10439 = node__10438.inode_without(shift + 5, hash, key);
if(n__10439 === node__10438) {
return inode__10436
}else {
if(n__10439 == null) {
if(this__10435.cnt <= 8) {
return cljs.core.pack_array_node.call(null, inode__10436, null, idx__10437)
}else {
return new cljs.core.ArrayNode(null, this__10435.cnt - 1, cljs.core.clone_and_set.call(null, this__10435.arr, idx__10437, n__10439))
}
}else {
if("\ufdd0'else") {
return new cljs.core.ArrayNode(null, this__10435.cnt, cljs.core.clone_and_set.call(null, this__10435.arr, idx__10437, n__10439))
}else {
return null
}
}
}
}else {
return inode__10436
}
};
cljs.core.ArrayNode.prototype.inode_assoc = function(shift, hash, key, val, added_leaf_QMARK_) {
var this__10440 = this;
var inode__10441 = this;
var idx__10442 = hash >>> shift & 31;
var node__10443 = this__10440.arr[idx__10442];
if(node__10443 == null) {
return new cljs.core.ArrayNode(null, this__10440.cnt + 1, cljs.core.clone_and_set.call(null, this__10440.arr, idx__10442, cljs.core.BitmapIndexedNode.EMPTY.inode_assoc(shift + 5, hash, key, val, added_leaf_QMARK_)))
}else {
var n__10444 = node__10443.inode_assoc(shift + 5, hash, key, val, added_leaf_QMARK_);
if(n__10444 === node__10443) {
return inode__10441
}else {
return new cljs.core.ArrayNode(null, this__10440.cnt, cljs.core.clone_and_set.call(null, this__10440.arr, idx__10442, n__10444))
}
}
};
cljs.core.ArrayNode.prototype.inode_lookup = function(shift, hash, key, not_found) {
var this__10445 = this;
var inode__10446 = this;
var idx__10447 = hash >>> shift & 31;
var node__10448 = this__10445.arr[idx__10447];
if(!(node__10448 == null)) {
return node__10448.inode_lookup(shift + 5, hash, key, not_found)
}else {
return not_found
}
};
cljs.core.ArrayNode;
cljs.core.hash_collision_node_find_index = function hash_collision_node_find_index(arr, cnt, key) {
var lim__10453 = 2 * cnt;
var i__10454 = 0;
while(true) {
if(i__10454 < lim__10453) {
if(cljs.core.key_test.call(null, key, arr[i__10454])) {
return i__10454
}else {
var G__10455 = i__10454 + 2;
i__10454 = G__10455;
continue
}
}else {
return-1
}
break
}
};
cljs.core.HashCollisionNode = function(edit, collision_hash, cnt, arr) {
this.edit = edit;
this.collision_hash = collision_hash;
this.cnt = cnt;
this.arr = arr
};
cljs.core.HashCollisionNode.cljs$lang$type = true;
cljs.core.HashCollisionNode.cljs$lang$ctorPrSeq = function(this__2333__auto__) {
return cljs.core.list.call(null, "cljs.core/HashCollisionNode")
};
cljs.core.HashCollisionNode.prototype.inode_assoc_BANG_ = function(edit, shift, hash, key, val, added_leaf_QMARK_) {
var this__10456 = this;
var inode__10457 = this;
if(hash === this__10456.collision_hash) {
var idx__10458 = cljs.core.hash_collision_node_find_index.call(null, this__10456.arr, this__10456.cnt, key);
if(idx__10458 === -1) {
if(this__10456.arr.length > 2 * this__10456.cnt) {
var editable__10459 = cljs.core.edit_and_set.call(null, inode__10457, edit, 2 * this__10456.cnt, key, 2 * this__10456.cnt + 1, val);
added_leaf_QMARK_.val = true;
editable__10459.cnt = editable__10459.cnt + 1;
return editable__10459
}else {
var len__10460 = this__10456.arr.length;
var new_arr__10461 = cljs.core.make_array.call(null, len__10460 + 2);
cljs.core.array_copy.call(null, this__10456.arr, 0, new_arr__10461, 0, len__10460);
new_arr__10461[len__10460] = key;
new_arr__10461[len__10460 + 1] = val;
added_leaf_QMARK_.val = true;
return inode__10457.ensure_editable_array(edit, this__10456.cnt + 1, new_arr__10461)
}
}else {
if(this__10456.arr[idx__10458 + 1] === val) {
return inode__10457
}else {
return cljs.core.edit_and_set.call(null, inode__10457, edit, idx__10458 + 1, val)
}
}
}else {
return(new cljs.core.BitmapIndexedNode(edit, 1 << (this__10456.collision_hash >>> shift & 31), [null, inode__10457, null, null])).inode_assoc_BANG_(edit, shift, hash, key, val, added_leaf_QMARK_)
}
};
cljs.core.HashCollisionNode.prototype.inode_seq = function() {
var this__10462 = this;
var inode__10463 = this;
return cljs.core.create_inode_seq.call(null, this__10462.arr)
};
cljs.core.HashCollisionNode.prototype.inode_without_BANG_ = function(edit, shift, hash, key, removed_leaf_QMARK_) {
var this__10464 = this;
var inode__10465 = this;
var idx__10466 = cljs.core.hash_collision_node_find_index.call(null, this__10464.arr, this__10464.cnt, key);
if(idx__10466 === -1) {
return inode__10465
}else {
removed_leaf_QMARK_[0] = true;
if(this__10464.cnt === 1) {
return null
}else {
var editable__10467 = inode__10465.ensure_editable(edit);
var earr__10468 = editable__10467.arr;
earr__10468[idx__10466] = earr__10468[2 * this__10464.cnt - 2];
earr__10468[idx__10466 + 1] = earr__10468[2 * this__10464.cnt - 1];
earr__10468[2 * this__10464.cnt - 1] = null;
earr__10468[2 * this__10464.cnt - 2] = null;
editable__10467.cnt = editable__10467.cnt - 1;
return editable__10467
}
}
};
cljs.core.HashCollisionNode.prototype.ensure_editable = function(e) {
var this__10469 = this;
var inode__10470 = this;
if(e === this__10469.edit) {
return inode__10470
}else {
var new_arr__10471 = cljs.core.make_array.call(null, 2 * (this__10469.cnt + 1));
cljs.core.array_copy.call(null, this__10469.arr, 0, new_arr__10471, 0, 2 * this__10469.cnt);
return new cljs.core.HashCollisionNode(e, this__10469.collision_hash, this__10469.cnt, new_arr__10471)
}
};
cljs.core.HashCollisionNode.prototype.kv_reduce = function(f, init) {
var this__10472 = this;
var inode__10473 = this;
return cljs.core.inode_kv_reduce.call(null, this__10472.arr, f, init)
};
cljs.core.HashCollisionNode.prototype.inode_find = function(shift, hash, key, not_found) {
var this__10474 = this;
var inode__10475 = this;
var idx__10476 = cljs.core.hash_collision_node_find_index.call(null, this__10474.arr, this__10474.cnt, key);
if(idx__10476 < 0) {
return not_found
}else {
if(cljs.core.key_test.call(null, key, this__10474.arr[idx__10476])) {
return cljs.core.PersistentVector.fromArray([this__10474.arr[idx__10476], this__10474.arr[idx__10476 + 1]], true)
}else {
if("\ufdd0'else") {
return not_found
}else {
return null
}
}
}
};
cljs.core.HashCollisionNode.prototype.inode_without = function(shift, hash, key) {
var this__10477 = this;
var inode__10478 = this;
var idx__10479 = cljs.core.hash_collision_node_find_index.call(null, this__10477.arr, this__10477.cnt, key);
if(idx__10479 === -1) {
return inode__10478
}else {
if(this__10477.cnt === 1) {
return null
}else {
if("\ufdd0'else") {
return new cljs.core.HashCollisionNode(null, this__10477.collision_hash, this__10477.cnt - 1, cljs.core.remove_pair.call(null, this__10477.arr, cljs.core.quot.call(null, idx__10479, 2)))
}else {
return null
}
}
}
};
cljs.core.HashCollisionNode.prototype.inode_assoc = function(shift, hash, key, val, added_leaf_QMARK_) {
var this__10480 = this;
var inode__10481 = this;
if(hash === this__10480.collision_hash) {
var idx__10482 = cljs.core.hash_collision_node_find_index.call(null, this__10480.arr, this__10480.cnt, key);
if(idx__10482 === -1) {
var len__10483 = this__10480.arr.length;
var new_arr__10484 = cljs.core.make_array.call(null, len__10483 + 2);
cljs.core.array_copy.call(null, this__10480.arr, 0, new_arr__10484, 0, len__10483);
new_arr__10484[len__10483] = key;
new_arr__10484[len__10483 + 1] = val;
added_leaf_QMARK_.val = true;
return new cljs.core.HashCollisionNode(null, this__10480.collision_hash, this__10480.cnt + 1, new_arr__10484)
}else {
if(cljs.core._EQ_.call(null, this__10480.arr[idx__10482], val)) {
return inode__10481
}else {
return new cljs.core.HashCollisionNode(null, this__10480.collision_hash, this__10480.cnt, cljs.core.clone_and_set.call(null, this__10480.arr, idx__10482 + 1, val))
}
}
}else {
return(new cljs.core.BitmapIndexedNode(null, 1 << (this__10480.collision_hash >>> shift & 31), [null, inode__10481])).inode_assoc(shift, hash, key, val, added_leaf_QMARK_)
}
};
cljs.core.HashCollisionNode.prototype.inode_lookup = function(shift, hash, key, not_found) {
var this__10485 = this;
var inode__10486 = this;
var idx__10487 = cljs.core.hash_collision_node_find_index.call(null, this__10485.arr, this__10485.cnt, key);
if(idx__10487 < 0) {
return not_found
}else {
if(cljs.core.key_test.call(null, key, this__10485.arr[idx__10487])) {
return this__10485.arr[idx__10487 + 1]
}else {
if("\ufdd0'else") {
return not_found
}else {
return null
}
}
}
};
cljs.core.HashCollisionNode.prototype.ensure_editable_array = function(e, count, array) {
var this__10488 = this;
var inode__10489 = this;
if(e === this__10488.edit) {
this__10488.arr = array;
this__10488.cnt = count;
return inode__10489
}else {
return new cljs.core.HashCollisionNode(this__10488.edit, this__10488.collision_hash, count, array)
}
};
cljs.core.HashCollisionNode;
cljs.core.create_node = function() {
var create_node = null;
var create_node__6 = function(shift, key1, val1, key2hash, key2, val2) {
var key1hash__10494 = cljs.core.hash.call(null, key1);
if(key1hash__10494 === key2hash) {
return new cljs.core.HashCollisionNode(null, key1hash__10494, 2, [key1, val1, key2, val2])
}else {
var added_leaf_QMARK___10495 = new cljs.core.Box(false);
return cljs.core.BitmapIndexedNode.EMPTY.inode_assoc(shift, key1hash__10494, key1, val1, added_leaf_QMARK___10495).inode_assoc(shift, key2hash, key2, val2, added_leaf_QMARK___10495)
}
};
var create_node__7 = function(edit, shift, key1, val1, key2hash, key2, val2) {
var key1hash__10496 = cljs.core.hash.call(null, key1);
if(key1hash__10496 === key2hash) {
return new cljs.core.HashCollisionNode(null, key1hash__10496, 2, [key1, val1, key2, val2])
}else {
var added_leaf_QMARK___10497 = new cljs.core.Box(false);
return cljs.core.BitmapIndexedNode.EMPTY.inode_assoc_BANG_(edit, shift, key1hash__10496, key1, val1, added_leaf_QMARK___10497).inode_assoc_BANG_(edit, shift, key2hash, key2, val2, added_leaf_QMARK___10497)
}
};
create_node = function(edit, shift, key1, val1, key2hash, key2, val2) {
switch(arguments.length) {
case 6:
return create_node__6.call(this, edit, shift, key1, val1, key2hash, key2);
case 7:
return create_node__7.call(this, edit, shift, key1, val1, key2hash, key2, val2)
}
throw"Invalid arity: " + arguments.length;
};
create_node.cljs$lang$arity$6 = create_node__6;
create_node.cljs$lang$arity$7 = create_node__7;
return create_node
}();
cljs.core.NodeSeq = function(meta, nodes, i, s, __hash) {
this.meta = meta;
this.nodes = nodes;
this.i = i;
this.s = s;
this.__hash = __hash;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 31850572
};
cljs.core.NodeSeq.cljs$lang$type = true;
cljs.core.NodeSeq.cljs$lang$ctorPrSeq = function(this__2333__auto__) {
return cljs.core.list.call(null, "cljs.core/NodeSeq")
};
cljs.core.NodeSeq.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var this__10498 = this;
var h__2216__auto____10499 = this__10498.__hash;
if(!(h__2216__auto____10499 == null)) {
return h__2216__auto____10499
}else {
var h__2216__auto____10500 = cljs.core.hash_coll.call(null, coll);
this__10498.__hash = h__2216__auto____10500;
return h__2216__auto____10500
}
};
cljs.core.NodeSeq.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var this__10501 = this;
return cljs.core.cons.call(null, o, coll)
};
cljs.core.NodeSeq.prototype.toString = function() {
var this__10502 = this;
var this__10503 = this;
return cljs.core.pr_str.call(null, this__10503)
};
cljs.core.NodeSeq.prototype.cljs$core$ISeqable$_seq$arity$1 = function(this$) {
var this__10504 = this;
return this$
};
cljs.core.NodeSeq.prototype.cljs$core$ISeq$_first$arity$1 = function(coll) {
var this__10505 = this;
if(this__10505.s == null) {
return cljs.core.PersistentVector.fromArray([this__10505.nodes[this__10505.i], this__10505.nodes[this__10505.i + 1]], true)
}else {
return cljs.core.first.call(null, this__10505.s)
}
};
cljs.core.NodeSeq.prototype.cljs$core$ISeq$_rest$arity$1 = function(coll) {
var this__10506 = this;
if(this__10506.s == null) {
return cljs.core.create_inode_seq.call(null, this__10506.nodes, this__10506.i + 2, null)
}else {
return cljs.core.create_inode_seq.call(null, this__10506.nodes, this__10506.i, cljs.core.next.call(null, this__10506.s))
}
};
cljs.core.NodeSeq.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var this__10507 = this;
return cljs.core.equiv_sequential.call(null, coll, other)
};
cljs.core.NodeSeq.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(coll, meta) {
var this__10508 = this;
return new cljs.core.NodeSeq(meta, this__10508.nodes, this__10508.i, this__10508.s, this__10508.__hash)
};
cljs.core.NodeSeq.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var this__10509 = this;
return this__10509.meta
};
cljs.core.NodeSeq.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var this__10510 = this;
return cljs.core.with_meta.call(null, cljs.core.List.EMPTY, this__10510.meta)
};
cljs.core.NodeSeq;
cljs.core.create_inode_seq = function() {
var create_inode_seq = null;
var create_inode_seq__1 = function(nodes) {
return create_inode_seq.call(null, nodes, 0, null)
};
var create_inode_seq__3 = function(nodes, i, s) {
if(s == null) {
var len__10517 = nodes.length;
var j__10518 = i;
while(true) {
if(j__10518 < len__10517) {
if(!(nodes[j__10518] == null)) {
return new cljs.core.NodeSeq(null, nodes, j__10518, null, null)
}else {
var temp__3971__auto____10519 = nodes[j__10518 + 1];
if(cljs.core.truth_(temp__3971__auto____10519)) {
var node__10520 = temp__3971__auto____10519;
var temp__3971__auto____10521 = node__10520.inode_seq();
if(cljs.core.truth_(temp__3971__auto____10521)) {
var node_seq__10522 = temp__3971__auto____10521;
return new cljs.core.NodeSeq(null, nodes, j__10518 + 2, node_seq__10522, null)
}else {
var G__10523 = j__10518 + 2;
j__10518 = G__10523;
continue
}
}else {
var G__10524 = j__10518 + 2;
j__10518 = G__10524;
continue
}
}
}else {
return null
}
break
}
}else {
return new cljs.core.NodeSeq(null, nodes, i, s, null)
}
};
create_inode_seq = function(nodes, i, s) {
switch(arguments.length) {
case 1:
return create_inode_seq__1.call(this, nodes);
case 3:
return create_inode_seq__3.call(this, nodes, i, s)
}
throw"Invalid arity: " + arguments.length;
};
create_inode_seq.cljs$lang$arity$1 = create_inode_seq__1;
create_inode_seq.cljs$lang$arity$3 = create_inode_seq__3;
return create_inode_seq
}();
cljs.core.ArrayNodeSeq = function(meta, nodes, i, s, __hash) {
this.meta = meta;
this.nodes = nodes;
this.i = i;
this.s = s;
this.__hash = __hash;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 31850572
};
cljs.core.ArrayNodeSeq.cljs$lang$type = true;
cljs.core.ArrayNodeSeq.cljs$lang$ctorPrSeq = function(this__2333__auto__) {
return cljs.core.list.call(null, "cljs.core/ArrayNodeSeq")
};
cljs.core.ArrayNodeSeq.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var this__10525 = this;
var h__2216__auto____10526 = this__10525.__hash;
if(!(h__2216__auto____10526 == null)) {
return h__2216__auto____10526
}else {
var h__2216__auto____10527 = cljs.core.hash_coll.call(null, coll);
this__10525.__hash = h__2216__auto____10527;
return h__2216__auto____10527
}
};
cljs.core.ArrayNodeSeq.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var this__10528 = this;
return cljs.core.cons.call(null, o, coll)
};
cljs.core.ArrayNodeSeq.prototype.toString = function() {
var this__10529 = this;
var this__10530 = this;
return cljs.core.pr_str.call(null, this__10530)
};
cljs.core.ArrayNodeSeq.prototype.cljs$core$ISeqable$_seq$arity$1 = function(this$) {
var this__10531 = this;
return this$
};
cljs.core.ArrayNodeSeq.prototype.cljs$core$ISeq$_first$arity$1 = function(coll) {
var this__10532 = this;
return cljs.core.first.call(null, this__10532.s)
};
cljs.core.ArrayNodeSeq.prototype.cljs$core$ISeq$_rest$arity$1 = function(coll) {
var this__10533 = this;
return cljs.core.create_array_node_seq.call(null, null, this__10533.nodes, this__10533.i, cljs.core.next.call(null, this__10533.s))
};
cljs.core.ArrayNodeSeq.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var this__10534 = this;
return cljs.core.equiv_sequential.call(null, coll, other)
};
cljs.core.ArrayNodeSeq.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(coll, meta) {
var this__10535 = this;
return new cljs.core.ArrayNodeSeq(meta, this__10535.nodes, this__10535.i, this__10535.s, this__10535.__hash)
};
cljs.core.ArrayNodeSeq.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var this__10536 = this;
return this__10536.meta
};
cljs.core.ArrayNodeSeq.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var this__10537 = this;
return cljs.core.with_meta.call(null, cljs.core.List.EMPTY, this__10537.meta)
};
cljs.core.ArrayNodeSeq;
cljs.core.create_array_node_seq = function() {
var create_array_node_seq = null;
var create_array_node_seq__1 = function(nodes) {
return create_array_node_seq.call(null, null, nodes, 0, null)
};
var create_array_node_seq__4 = function(meta, nodes, i, s) {
if(s == null) {
var len__10544 = nodes.length;
var j__10545 = i;
while(true) {
if(j__10545 < len__10544) {
var temp__3971__auto____10546 = nodes[j__10545];
if(cljs.core.truth_(temp__3971__auto____10546)) {
var nj__10547 = temp__3971__auto____10546;
var temp__3971__auto____10548 = nj__10547.inode_seq();
if(cljs.core.truth_(temp__3971__auto____10548)) {
var ns__10549 = temp__3971__auto____10548;
return new cljs.core.ArrayNodeSeq(meta, nodes, j__10545 + 1, ns__10549, null)
}else {
var G__10550 = j__10545 + 1;
j__10545 = G__10550;
continue
}
}else {
var G__10551 = j__10545 + 1;
j__10545 = G__10551;
continue
}
}else {
return null
}
break
}
}else {
return new cljs.core.ArrayNodeSeq(meta, nodes, i, s, null)
}
};
create_array_node_seq = function(meta, nodes, i, s) {
switch(arguments.length) {
case 1:
return create_array_node_seq__1.call(this, meta);
case 4:
return create_array_node_seq__4.call(this, meta, nodes, i, s)
}
throw"Invalid arity: " + arguments.length;
};
create_array_node_seq.cljs$lang$arity$1 = create_array_node_seq__1;
create_array_node_seq.cljs$lang$arity$4 = create_array_node_seq__4;
return create_array_node_seq
}();
cljs.core.PersistentHashMap = function(meta, cnt, root, has_nil_QMARK_, nil_val, __hash) {
this.meta = meta;
this.cnt = cnt;
this.root = root;
this.has_nil_QMARK_ = has_nil_QMARK_;
this.nil_val = nil_val;
this.__hash = __hash;
this.cljs$lang$protocol_mask$partition1$ = 1;
this.cljs$lang$protocol_mask$partition0$ = 16123663
};
cljs.core.PersistentHashMap.cljs$lang$type = true;
cljs.core.PersistentHashMap.cljs$lang$ctorPrSeq = function(this__2333__auto__) {
return cljs.core.list.call(null, "cljs.core/PersistentHashMap")
};
cljs.core.PersistentHashMap.prototype.cljs$core$IEditableCollection$_as_transient$arity$1 = function(coll) {
var this__10554 = this;
return new cljs.core.TransientHashMap({}, this__10554.root, this__10554.cnt, this__10554.has_nil_QMARK_, this__10554.nil_val)
};
cljs.core.PersistentHashMap.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var this__10555 = this;
var h__2216__auto____10556 = this__10555.__hash;
if(!(h__2216__auto____10556 == null)) {
return h__2216__auto____10556
}else {
var h__2216__auto____10557 = cljs.core.hash_imap.call(null, coll);
this__10555.__hash = h__2216__auto____10557;
return h__2216__auto____10557
}
};
cljs.core.PersistentHashMap.prototype.cljs$core$ILookup$_lookup$arity$2 = function(coll, k) {
var this__10558 = this;
return coll.cljs$core$ILookup$_lookup$arity$3(coll, k, null)
};
cljs.core.PersistentHashMap.prototype.cljs$core$ILookup$_lookup$arity$3 = function(coll, k, not_found) {
var this__10559 = this;
if(k == null) {
if(this__10559.has_nil_QMARK_) {
return this__10559.nil_val
}else {
return not_found
}
}else {
if(this__10559.root == null) {
return not_found
}else {
if("\ufdd0'else") {
return this__10559.root.inode_lookup(0, cljs.core.hash.call(null, k), k, not_found)
}else {
return null
}
}
}
};
cljs.core.PersistentHashMap.prototype.cljs$core$IAssociative$_assoc$arity$3 = function(coll, k, v) {
var this__10560 = this;
if(k == null) {
if(function() {
var and__3822__auto____10561 = this__10560.has_nil_QMARK_;
if(and__3822__auto____10561) {
return v === this__10560.nil_val
}else {
return and__3822__auto____10561
}
}()) {
return coll
}else {
return new cljs.core.PersistentHashMap(this__10560.meta, this__10560.has_nil_QMARK_ ? this__10560.cnt : this__10560.cnt + 1, this__10560.root, true, v, null)
}
}else {
var added_leaf_QMARK___10562 = new cljs.core.Box(false);
var new_root__10563 = (this__10560.root == null ? cljs.core.BitmapIndexedNode.EMPTY : this__10560.root).inode_assoc(0, cljs.core.hash.call(null, k), k, v, added_leaf_QMARK___10562);
if(new_root__10563 === this__10560.root) {
return coll
}else {
return new cljs.core.PersistentHashMap(this__10560.meta, added_leaf_QMARK___10562.val ? this__10560.cnt + 1 : this__10560.cnt, new_root__10563, this__10560.has_nil_QMARK_, this__10560.nil_val, null)
}
}
};
cljs.core.PersistentHashMap.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 = function(coll, k) {
var this__10564 = this;
if(k == null) {
return this__10564.has_nil_QMARK_
}else {
if(this__10564.root == null) {
return false
}else {
if("\ufdd0'else") {
return!(this__10564.root.inode_lookup(0, cljs.core.hash.call(null, k), k, cljs.core.lookup_sentinel) === cljs.core.lookup_sentinel)
}else {
return null
}
}
}
};
cljs.core.PersistentHashMap.prototype.call = function() {
var G__10587 = null;
var G__10587__2 = function(this_sym10565, k) {
var this__10567 = this;
var this_sym10565__10568 = this;
var coll__10569 = this_sym10565__10568;
return coll__10569.cljs$core$ILookup$_lookup$arity$2(coll__10569, k)
};
var G__10587__3 = function(this_sym10566, k, not_found) {
var this__10567 = this;
var this_sym10566__10570 = this;
var coll__10571 = this_sym10566__10570;
return coll__10571.cljs$core$ILookup$_lookup$arity$3(coll__10571, k, not_found)
};
G__10587 = function(this_sym10566, k, not_found) {
switch(arguments.length) {
case 2:
return G__10587__2.call(this, this_sym10566, k);
case 3:
return G__10587__3.call(this, this_sym10566, k, not_found)
}
throw"Invalid arity: " + arguments.length;
};
return G__10587
}();
cljs.core.PersistentHashMap.prototype.apply = function(this_sym10552, args10553) {
var this__10572 = this;
return this_sym10552.call.apply(this_sym10552, [this_sym10552].concat(args10553.slice()))
};
cljs.core.PersistentHashMap.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 = function(coll, f, init) {
var this__10573 = this;
var init__10574 = this__10573.has_nil_QMARK_ ? f.call(null, init, null, this__10573.nil_val) : init;
if(cljs.core.reduced_QMARK_.call(null, init__10574)) {
return cljs.core.deref.call(null, init__10574)
}else {
if(!(this__10573.root == null)) {
return this__10573.root.kv_reduce(f, init__10574)
}else {
if("\ufdd0'else") {
return init__10574
}else {
return null
}
}
}
};
cljs.core.PersistentHashMap.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, entry) {
var this__10575 = this;
if(cljs.core.vector_QMARK_.call(null, entry)) {
return coll.cljs$core$IAssociative$_assoc$arity$3(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.PersistentHashMap.prototype.toString = function() {
var this__10576 = this;
var this__10577 = this;
return cljs.core.pr_str.call(null, this__10577)
};
cljs.core.PersistentHashMap.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var this__10578 = this;
if(this__10578.cnt > 0) {
var s__10579 = !(this__10578.root == null) ? this__10578.root.inode_seq() : null;
if(this__10578.has_nil_QMARK_) {
return cljs.core.cons.call(null, cljs.core.PersistentVector.fromArray([null, this__10578.nil_val], true), s__10579)
}else {
return s__10579
}
}else {
return null
}
};
cljs.core.PersistentHashMap.prototype.cljs$core$ICounted$_count$arity$1 = function(coll) {
var this__10580 = this;
return this__10580.cnt
};
cljs.core.PersistentHashMap.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var this__10581 = this;
return cljs.core.equiv_map.call(null, coll, other)
};
cljs.core.PersistentHashMap.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(coll, meta) {
var this__10582 = this;
return new cljs.core.PersistentHashMap(meta, this__10582.cnt, this__10582.root, this__10582.has_nil_QMARK_, this__10582.nil_val, this__10582.__hash)
};
cljs.core.PersistentHashMap.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var this__10583 = this;
return this__10583.meta
};
cljs.core.PersistentHashMap.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var this__10584 = this;
return cljs.core._with_meta.call(null, cljs.core.PersistentHashMap.EMPTY, this__10584.meta)
};
cljs.core.PersistentHashMap.prototype.cljs$core$IMap$_dissoc$arity$2 = function(coll, k) {
var this__10585 = this;
if(k == null) {
if(this__10585.has_nil_QMARK_) {
return new cljs.core.PersistentHashMap(this__10585.meta, this__10585.cnt - 1, this__10585.root, false, null, null)
}else {
return coll
}
}else {
if(this__10585.root == null) {
return coll
}else {
if("\ufdd0'else") {
var new_root__10586 = this__10585.root.inode_without(0, cljs.core.hash.call(null, k), k);
if(new_root__10586 === this__10585.root) {
return coll
}else {
return new cljs.core.PersistentHashMap(this__10585.meta, this__10585.cnt - 1, new_root__10586, this__10585.has_nil_QMARK_, this__10585.nil_val, null)
}
}else {
return null
}
}
}
};
cljs.core.PersistentHashMap;
cljs.core.PersistentHashMap.EMPTY = new cljs.core.PersistentHashMap(null, 0, null, false, null, 0);
cljs.core.PersistentHashMap.fromArrays = function(ks, vs) {
var len__10588 = ks.length;
var i__10589 = 0;
var out__10590 = cljs.core.transient$.call(null, cljs.core.PersistentHashMap.EMPTY);
while(true) {
if(i__10589 < len__10588) {
var G__10591 = i__10589 + 1;
var G__10592 = cljs.core.assoc_BANG_.call(null, out__10590, ks[i__10589], vs[i__10589]);
i__10589 = G__10591;
out__10590 = G__10592;
continue
}else {
return cljs.core.persistent_BANG_.call(null, out__10590)
}
break
}
};
cljs.core.TransientHashMap = function(edit, root, count, has_nil_QMARK_, nil_val) {
this.edit = edit;
this.root = root;
this.count = count;
this.has_nil_QMARK_ = has_nil_QMARK_;
this.nil_val = nil_val;
this.cljs$lang$protocol_mask$partition1$ = 14;
this.cljs$lang$protocol_mask$partition0$ = 258
};
cljs.core.TransientHashMap.cljs$lang$type = true;
cljs.core.TransientHashMap.cljs$lang$ctorPrSeq = function(this__2333__auto__) {
return cljs.core.list.call(null, "cljs.core/TransientHashMap")
};
cljs.core.TransientHashMap.prototype.cljs$core$ITransientMap$_dissoc_BANG_$arity$2 = function(tcoll, key) {
var this__10593 = this;
return tcoll.without_BANG_(key)
};
cljs.core.TransientHashMap.prototype.cljs$core$ITransientAssociative$_assoc_BANG_$arity$3 = function(tcoll, key, val) {
var this__10594 = this;
return tcoll.assoc_BANG_(key, val)
};
cljs.core.TransientHashMap.prototype.cljs$core$ITransientCollection$_conj_BANG_$arity$2 = function(tcoll, val) {
var this__10595 = this;
return tcoll.conj_BANG_(val)
};
cljs.core.TransientHashMap.prototype.cljs$core$ITransientCollection$_persistent_BANG_$arity$1 = function(tcoll) {
var this__10596 = this;
return tcoll.persistent_BANG_()
};
cljs.core.TransientHashMap.prototype.cljs$core$ILookup$_lookup$arity$2 = function(tcoll, k) {
var this__10597 = this;
if(k == null) {
if(this__10597.has_nil_QMARK_) {
return this__10597.nil_val
}else {
return null
}
}else {
if(this__10597.root == null) {
return null
}else {
return this__10597.root.inode_lookup(0, cljs.core.hash.call(null, k), k)
}
}
};
cljs.core.TransientHashMap.prototype.cljs$core$ILookup$_lookup$arity$3 = function(tcoll, k, not_found) {
var this__10598 = this;
if(k == null) {
if(this__10598.has_nil_QMARK_) {
return this__10598.nil_val
}else {
return not_found
}
}else {
if(this__10598.root == null) {
return not_found
}else {
return this__10598.root.inode_lookup(0, cljs.core.hash.call(null, k), k, not_found)
}
}
};
cljs.core.TransientHashMap.prototype.cljs$core$ICounted$_count$arity$1 = function(coll) {
var this__10599 = this;
if(this__10599.edit) {
return this__10599.count
}else {
throw new Error("count after persistent!");
}
};
cljs.core.TransientHashMap.prototype.conj_BANG_ = function(o) {
var this__10600 = this;
var tcoll__10601 = this;
if(this__10600.edit) {
if(function() {
var G__10602__10603 = o;
if(G__10602__10603) {
if(function() {
var or__3824__auto____10604 = G__10602__10603.cljs$lang$protocol_mask$partition0$ & 2048;
if(or__3824__auto____10604) {
return or__3824__auto____10604
}else {
return G__10602__10603.cljs$core$IMapEntry$
}
}()) {
return true
}else {
if(!G__10602__10603.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IMapEntry, G__10602__10603)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IMapEntry, G__10602__10603)
}
}()) {
return tcoll__10601.assoc_BANG_(cljs.core.key.call(null, o), cljs.core.val.call(null, o))
}else {
var es__10605 = cljs.core.seq.call(null, o);
var tcoll__10606 = tcoll__10601;
while(true) {
var temp__3971__auto____10607 = cljs.core.first.call(null, es__10605);
if(cljs.core.truth_(temp__3971__auto____10607)) {
var e__10608 = temp__3971__auto____10607;
var G__10619 = cljs.core.next.call(null, es__10605);
var G__10620 = tcoll__10606.assoc_BANG_(cljs.core.key.call(null, e__10608), cljs.core.val.call(null, e__10608));
es__10605 = G__10619;
tcoll__10606 = G__10620;
continue
}else {
return tcoll__10606
}
break
}
}
}else {
throw new Error("conj! after persistent");
}
};
cljs.core.TransientHashMap.prototype.assoc_BANG_ = function(k, v) {
var this__10609 = this;
var tcoll__10610 = this;
if(this__10609.edit) {
if(k == null) {
if(this__10609.nil_val === v) {
}else {
this__10609.nil_val = v
}
if(this__10609.has_nil_QMARK_) {
}else {
this__10609.count = this__10609.count + 1;
this__10609.has_nil_QMARK_ = true
}
return tcoll__10610
}else {
var added_leaf_QMARK___10611 = new cljs.core.Box(false);
var node__10612 = (this__10609.root == null ? cljs.core.BitmapIndexedNode.EMPTY : this__10609.root).inode_assoc_BANG_(this__10609.edit, 0, cljs.core.hash.call(null, k), k, v, added_leaf_QMARK___10611);
if(node__10612 === this__10609.root) {
}else {
this__10609.root = node__10612
}
if(added_leaf_QMARK___10611.val) {
this__10609.count = this__10609.count + 1
}else {
}
return tcoll__10610
}
}else {
throw new Error("assoc! after persistent!");
}
};
cljs.core.TransientHashMap.prototype.without_BANG_ = function(k) {
var this__10613 = this;
var tcoll__10614 = this;
if(this__10613.edit) {
if(k == null) {
if(this__10613.has_nil_QMARK_) {
this__10613.has_nil_QMARK_ = false;
this__10613.nil_val = null;
this__10613.count = this__10613.count - 1;
return tcoll__10614
}else {
return tcoll__10614
}
}else {
if(this__10613.root == null) {
return tcoll__10614
}else {
var removed_leaf_QMARK___10615 = new cljs.core.Box(false);
var node__10616 = this__10613.root.inode_without_BANG_(this__10613.edit, 0, cljs.core.hash.call(null, k), k, removed_leaf_QMARK___10615);
if(node__10616 === this__10613.root) {
}else {
this__10613.root = node__10616
}
if(cljs.core.truth_(removed_leaf_QMARK___10615[0])) {
this__10613.count = this__10613.count - 1
}else {
}
return tcoll__10614
}
}
}else {
throw new Error("dissoc! after persistent!");
}
};
cljs.core.TransientHashMap.prototype.persistent_BANG_ = function() {
var this__10617 = this;
var tcoll__10618 = this;
if(this__10617.edit) {
this__10617.edit = null;
return new cljs.core.PersistentHashMap(null, this__10617.count, this__10617.root, this__10617.has_nil_QMARK_, this__10617.nil_val, null)
}else {
throw new Error("persistent! called twice");
}
};
cljs.core.TransientHashMap;
cljs.core.tree_map_seq_push = function tree_map_seq_push(node, stack, ascending_QMARK_) {
var t__10623 = node;
var stack__10624 = stack;
while(true) {
if(!(t__10623 == null)) {
var G__10625 = ascending_QMARK_ ? t__10623.left : t__10623.right;
var G__10626 = cljs.core.conj.call(null, stack__10624, t__10623);
t__10623 = G__10625;
stack__10624 = G__10626;
continue
}else {
return stack__10624
}
break
}
};
cljs.core.PersistentTreeMapSeq = function(meta, stack, ascending_QMARK_, cnt, __hash) {
this.meta = meta;
this.stack = stack;
this.ascending_QMARK_ = ascending_QMARK_;
this.cnt = cnt;
this.__hash = __hash;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 31850570
};
cljs.core.PersistentTreeMapSeq.cljs$lang$type = true;
cljs.core.PersistentTreeMapSeq.cljs$lang$ctorPrSeq = function(this__2333__auto__) {
return cljs.core.list.call(null, "cljs.core/PersistentTreeMapSeq")
};
cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var this__10627 = this;
var h__2216__auto____10628 = this__10627.__hash;
if(!(h__2216__auto____10628 == null)) {
return h__2216__auto____10628
}else {
var h__2216__auto____10629 = cljs.core.hash_coll.call(null, coll);
this__10627.__hash = h__2216__auto____10629;
return h__2216__auto____10629
}
};
cljs.core.PersistentTreeMapSeq.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var this__10630 = this;
return cljs.core.cons.call(null, o, coll)
};
cljs.core.PersistentTreeMapSeq.prototype.toString = function() {
var this__10631 = this;
var this__10632 = this;
return cljs.core.pr_str.call(null, this__10632)
};
cljs.core.PersistentTreeMapSeq.prototype.cljs$core$ISeqable$_seq$arity$1 = function(this$) {
var this__10633 = this;
return this$
};
cljs.core.PersistentTreeMapSeq.prototype.cljs$core$ICounted$_count$arity$1 = function(coll) {
var this__10634 = this;
if(this__10634.cnt < 0) {
return cljs.core.count.call(null, cljs.core.next.call(null, coll)) + 1
}else {
return this__10634.cnt
}
};
cljs.core.PersistentTreeMapSeq.prototype.cljs$core$ISeq$_first$arity$1 = function(this$) {
var this__10635 = this;
return cljs.core.peek.call(null, this__10635.stack)
};
cljs.core.PersistentTreeMapSeq.prototype.cljs$core$ISeq$_rest$arity$1 = function(this$) {
var this__10636 = this;
var t__10637 = cljs.core.first.call(null, this__10636.stack);
var next_stack__10638 = cljs.core.tree_map_seq_push.call(null, this__10636.ascending_QMARK_ ? t__10637.right : t__10637.left, cljs.core.next.call(null, this__10636.stack), this__10636.ascending_QMARK_);
if(!(next_stack__10638 == null)) {
return new cljs.core.PersistentTreeMapSeq(null, next_stack__10638, this__10636.ascending_QMARK_, this__10636.cnt - 1, null)
}else {
return cljs.core.List.EMPTY
}
};
cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var this__10639 = this;
return cljs.core.equiv_sequential.call(null, coll, other)
};
cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(coll, meta) {
var this__10640 = this;
return new cljs.core.PersistentTreeMapSeq(meta, this__10640.stack, this__10640.ascending_QMARK_, this__10640.cnt, this__10640.__hash)
};
cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var this__10641 = this;
return this__10641.meta
};
cljs.core.PersistentTreeMapSeq;
cljs.core.create_tree_map_seq = function create_tree_map_seq(tree, ascending_QMARK_, cnt) {
return new cljs.core.PersistentTreeMapSeq(null, cljs.core.tree_map_seq_push.call(null, tree, null, ascending_QMARK_), ascending_QMARK_, cnt, null)
};
cljs.core.balance_left = function balance_left(key, val, ins, right) {
if(cljs.core.instance_QMARK_.call(null, cljs.core.RedNode, ins)) {
if(cljs.core.instance_QMARK_.call(null, cljs.core.RedNode, ins.left)) {
return new cljs.core.RedNode(ins.key, ins.val, ins.left.blacken(), new cljs.core.BlackNode(key, val, ins.right, right, null), null)
}else {
if(cljs.core.instance_QMARK_.call(null, cljs.core.RedNode, ins.right)) {
return new cljs.core.RedNode(ins.right.key, ins.right.val, new cljs.core.BlackNode(ins.key, ins.val, ins.left, ins.right.left, null), new cljs.core.BlackNode(key, val, ins.right.right, right, null), null)
}else {
if("\ufdd0'else") {
return new cljs.core.BlackNode(key, val, ins, right, null)
}else {
return null
}
}
}
}else {
return new cljs.core.BlackNode(key, val, ins, right, null)
}
};
cljs.core.balance_right = function balance_right(key, val, left, ins) {
if(cljs.core.instance_QMARK_.call(null, cljs.core.RedNode, ins)) {
if(cljs.core.instance_QMARK_.call(null, cljs.core.RedNode, ins.right)) {
return new cljs.core.RedNode(ins.key, ins.val, new cljs.core.BlackNode(key, val, left, ins.left, null), ins.right.blacken(), null)
}else {
if(cljs.core.instance_QMARK_.call(null, cljs.core.RedNode, ins.left)) {
return new cljs.core.RedNode(ins.left.key, ins.left.val, new cljs.core.BlackNode(key, val, left, ins.left.left, null), new cljs.core.BlackNode(ins.key, ins.val, ins.left.right, ins.right, null), null)
}else {
if("\ufdd0'else") {
return new cljs.core.BlackNode(key, val, left, ins, null)
}else {
return null
}
}
}
}else {
return new cljs.core.BlackNode(key, val, left, ins, null)
}
};
cljs.core.balance_left_del = function balance_left_del(key, val, del, right) {
if(cljs.core.instance_QMARK_.call(null, cljs.core.RedNode, del)) {
return new cljs.core.RedNode(key, val, del.blacken(), right, null)
}else {
if(cljs.core.instance_QMARK_.call(null, cljs.core.BlackNode, right)) {
return cljs.core.balance_right.call(null, key, val, del, right.redden())
}else {
if(function() {
var and__3822__auto____10643 = cljs.core.instance_QMARK_.call(null, cljs.core.RedNode, right);
if(and__3822__auto____10643) {
return cljs.core.instance_QMARK_.call(null, cljs.core.BlackNode, right.left)
}else {
return and__3822__auto____10643
}
}()) {
return new cljs.core.RedNode(right.left.key, right.left.val, new cljs.core.BlackNode(key, val, del, right.left.left, null), cljs.core.balance_right.call(null, right.key, right.val, right.left.right, right.right.redden()), null)
}else {
if("\ufdd0'else") {
throw new Error("red-black tree invariant violation");
}else {
return null
}
}
}
}
};
cljs.core.balance_right_del = function balance_right_del(key, val, left, del) {
if(cljs.core.instance_QMARK_.call(null, cljs.core.RedNode, del)) {
return new cljs.core.RedNode(key, val, left, del.blacken(), null)
}else {
if(cljs.core.instance_QMARK_.call(null, cljs.core.BlackNode, left)) {
return cljs.core.balance_left.call(null, key, val, left.redden(), del)
}else {
if(function() {
var and__3822__auto____10645 = cljs.core.instance_QMARK_.call(null, cljs.core.RedNode, left);
if(and__3822__auto____10645) {
return cljs.core.instance_QMARK_.call(null, cljs.core.BlackNode, left.right)
}else {
return and__3822__auto____10645
}
}()) {
return new cljs.core.RedNode(left.right.key, left.right.val, cljs.core.balance_left.call(null, left.key, left.val, left.left.redden(), left.right.left), new cljs.core.BlackNode(key, val, left.right.right, del, null), null)
}else {
if("\ufdd0'else") {
throw new Error("red-black tree invariant violation");
}else {
return null
}
}
}
}
};
cljs.core.tree_map_kv_reduce = function tree_map_kv_reduce(node, f, init) {
var init__10649 = f.call(null, init, node.key, node.val);
if(cljs.core.reduced_QMARK_.call(null, init__10649)) {
return cljs.core.deref.call(null, init__10649)
}else {
var init__10650 = !(node.left == null) ? tree_map_kv_reduce.call(null, node.left, f, init__10649) : init__10649;
if(cljs.core.reduced_QMARK_.call(null, init__10650)) {
return cljs.core.deref.call(null, init__10650)
}else {
var init__10651 = !(node.right == null) ? tree_map_kv_reduce.call(null, node.right, f, init__10650) : init__10650;
if(cljs.core.reduced_QMARK_.call(null, init__10651)) {
return cljs.core.deref.call(null, init__10651)
}else {
return init__10651
}
}
}
};
cljs.core.BlackNode = function(key, val, left, right, __hash) {
this.key = key;
this.val = val;
this.left = left;
this.right = right;
this.__hash = __hash;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 32402207
};
cljs.core.BlackNode.cljs$lang$type = true;
cljs.core.BlackNode.cljs$lang$ctorPrSeq = function(this__2333__auto__) {
return cljs.core.list.call(null, "cljs.core/BlackNode")
};
cljs.core.BlackNode.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var this__10654 = this;
var h__2216__auto____10655 = this__10654.__hash;
if(!(h__2216__auto____10655 == null)) {
return h__2216__auto____10655
}else {
var h__2216__auto____10656 = cljs.core.hash_coll.call(null, coll);
this__10654.__hash = h__2216__auto____10656;
return h__2216__auto____10656
}
};
cljs.core.BlackNode.prototype.cljs$core$ILookup$_lookup$arity$2 = function(node, k) {
var this__10657 = this;
return node.cljs$core$IIndexed$_nth$arity$3(node, k, null)
};
cljs.core.BlackNode.prototype.cljs$core$ILookup$_lookup$arity$3 = function(node, k, not_found) {
var this__10658 = this;
return node.cljs$core$IIndexed$_nth$arity$3(node, k, not_found)
};
cljs.core.BlackNode.prototype.cljs$core$IAssociative$_assoc$arity$3 = function(node, k, v) {
var this__10659 = this;
return cljs.core.assoc.call(null, cljs.core.PersistentVector.fromArray([this__10659.key, this__10659.val], true), k, v)
};
cljs.core.BlackNode.prototype.call = function() {
var G__10707 = null;
var G__10707__2 = function(this_sym10660, k) {
var this__10662 = this;
var this_sym10660__10663 = this;
var node__10664 = this_sym10660__10663;
return node__10664.cljs$core$ILookup$_lookup$arity$2(node__10664, k)
};
var G__10707__3 = function(this_sym10661, k, not_found) {
var this__10662 = this;
var this_sym10661__10665 = this;
var node__10666 = this_sym10661__10665;
return node__10666.cljs$core$ILookup$_lookup$arity$3(node__10666, k, not_found)
};
G__10707 = function(this_sym10661, k, not_found) {
switch(arguments.length) {
case 2:
return G__10707__2.call(this, this_sym10661, k);
case 3:
return G__10707__3.call(this, this_sym10661, k, not_found)
}
throw"Invalid arity: " + arguments.length;
};
return G__10707
}();
cljs.core.BlackNode.prototype.apply = function(this_sym10652, args10653) {
var this__10667 = this;
return this_sym10652.call.apply(this_sym10652, [this_sym10652].concat(args10653.slice()))
};
cljs.core.BlackNode.prototype.cljs$core$ICollection$_conj$arity$2 = function(node, o) {
var this__10668 = this;
return cljs.core.PersistentVector.fromArray([this__10668.key, this__10668.val, o], true)
};
cljs.core.BlackNode.prototype.cljs$core$IMapEntry$_key$arity$1 = function(node) {
var this__10669 = this;
return this__10669.key
};
cljs.core.BlackNode.prototype.cljs$core$IMapEntry$_val$arity$1 = function(node) {
var this__10670 = this;
return this__10670.val
};
cljs.core.BlackNode.prototype.add_right = function(ins) {
var this__10671 = this;
var node__10672 = this;
return ins.balance_right(node__10672)
};
cljs.core.BlackNode.prototype.redden = function() {
var this__10673 = this;
var node__10674 = this;
return new cljs.core.RedNode(this__10673.key, this__10673.val, this__10673.left, this__10673.right, null)
};
cljs.core.BlackNode.prototype.remove_right = function(del) {
var this__10675 = this;
var node__10676 = this;
return cljs.core.balance_right_del.call(null, this__10675.key, this__10675.val, this__10675.left, del)
};
cljs.core.BlackNode.prototype.replace = function(key, val, left, right) {
var this__10677 = this;
var node__10678 = this;
return new cljs.core.BlackNode(key, val, left, right, null)
};
cljs.core.BlackNode.prototype.kv_reduce = function(f, init) {
var this__10679 = this;
var node__10680 = this;
return cljs.core.tree_map_kv_reduce.call(null, node__10680, f, init)
};
cljs.core.BlackNode.prototype.remove_left = function(del) {
var this__10681 = this;
var node__10682 = this;
return cljs.core.balance_left_del.call(null, this__10681.key, this__10681.val, del, this__10681.right)
};
cljs.core.BlackNode.prototype.add_left = function(ins) {
var this__10683 = this;
var node__10684 = this;
return ins.balance_left(node__10684)
};
cljs.core.BlackNode.prototype.balance_left = function(parent) {
var this__10685 = this;
var node__10686 = this;
return new cljs.core.BlackNode(parent.key, parent.val, node__10686, parent.right, null)
};
cljs.core.BlackNode.prototype.toString = function() {
var G__10708 = null;
var G__10708__0 = function() {
var this__10687 = this;
var this__10689 = this;
return cljs.core.pr_str.call(null, this__10689)
};
G__10708 = function() {
switch(arguments.length) {
case 0:
return G__10708__0.call(this)
}
throw"Invalid arity: " + arguments.length;
};
return G__10708
}();
cljs.core.BlackNode.prototype.balance_right = function(parent) {
var this__10690 = this;
var node__10691 = this;
return new cljs.core.BlackNode(parent.key, parent.val, parent.left, node__10691, null)
};
cljs.core.BlackNode.prototype.blacken = function() {
var this__10692 = this;
var node__10693 = this;
return node__10693
};
cljs.core.BlackNode.prototype.cljs$core$IReduce$_reduce$arity$2 = function(node, f) {
var this__10694 = this;
return cljs.core.ci_reduce.call(null, node, f)
};
cljs.core.BlackNode.prototype.cljs$core$IReduce$_reduce$arity$3 = function(node, f, start) {
var this__10695 = this;
return cljs.core.ci_reduce.call(null, node, f, start)
};
cljs.core.BlackNode.prototype.cljs$core$ISeqable$_seq$arity$1 = function(node) {
var this__10696 = this;
return cljs.core.list.call(null, this__10696.key, this__10696.val)
};
cljs.core.BlackNode.prototype.cljs$core$ICounted$_count$arity$1 = function(node) {
var this__10697 = this;
return 2
};
cljs.core.BlackNode.prototype.cljs$core$IStack$_peek$arity$1 = function(node) {
var this__10698 = this;
return this__10698.val
};
cljs.core.BlackNode.prototype.cljs$core$IStack$_pop$arity$1 = function(node) {
var this__10699 = this;
return cljs.core.PersistentVector.fromArray([this__10699.key], true)
};
cljs.core.BlackNode.prototype.cljs$core$IVector$_assoc_n$arity$3 = function(node, n, v) {
var this__10700 = this;
return cljs.core._assoc_n.call(null, cljs.core.PersistentVector.fromArray([this__10700.key, this__10700.val], true), n, v)
};
cljs.core.BlackNode.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var this__10701 = this;
return cljs.core.equiv_sequential.call(null, coll, other)
};
cljs.core.BlackNode.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(node, meta) {
var this__10702 = this;
return cljs.core.with_meta.call(null, cljs.core.PersistentVector.fromArray([this__10702.key, this__10702.val], true), meta)
};
cljs.core.BlackNode.prototype.cljs$core$IMeta$_meta$arity$1 = function(node) {
var this__10703 = this;
return null
};
cljs.core.BlackNode.prototype.cljs$core$IIndexed$_nth$arity$2 = function(node, n) {
var this__10704 = this;
if(n === 0) {
return this__10704.key
}else {
if(n === 1) {
return this__10704.val
}else {
if("\ufdd0'else") {
return null
}else {
return null
}
}
}
};
cljs.core.BlackNode.prototype.cljs$core$IIndexed$_nth$arity$3 = function(node, n, not_found) {
var this__10705 = this;
if(n === 0) {
return this__10705.key
}else {
if(n === 1) {
return this__10705.val
}else {
if("\ufdd0'else") {
return not_found
}else {
return null
}
}
}
};
cljs.core.BlackNode.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(node) {
var this__10706 = this;
return cljs.core.PersistentVector.EMPTY
};
cljs.core.BlackNode;
cljs.core.RedNode = function(key, val, left, right, __hash) {
this.key = key;
this.val = val;
this.left = left;
this.right = right;
this.__hash = __hash;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 32402207
};
cljs.core.RedNode.cljs$lang$type = true;
cljs.core.RedNode.cljs$lang$ctorPrSeq = function(this__2333__auto__) {
return cljs.core.list.call(null, "cljs.core/RedNode")
};
cljs.core.RedNode.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var this__10711 = this;
var h__2216__auto____10712 = this__10711.__hash;
if(!(h__2216__auto____10712 == null)) {
return h__2216__auto____10712
}else {
var h__2216__auto____10713 = cljs.core.hash_coll.call(null, coll);
this__10711.__hash = h__2216__auto____10713;
return h__2216__auto____10713
}
};
cljs.core.RedNode.prototype.cljs$core$ILookup$_lookup$arity$2 = function(node, k) {
var this__10714 = this;
return node.cljs$core$IIndexed$_nth$arity$3(node, k, null)
};
cljs.core.RedNode.prototype.cljs$core$ILookup$_lookup$arity$3 = function(node, k, not_found) {
var this__10715 = this;
return node.cljs$core$IIndexed$_nth$arity$3(node, k, not_found)
};
cljs.core.RedNode.prototype.cljs$core$IAssociative$_assoc$arity$3 = function(node, k, v) {
var this__10716 = this;
return cljs.core.assoc.call(null, cljs.core.PersistentVector.fromArray([this__10716.key, this__10716.val], true), k, v)
};
cljs.core.RedNode.prototype.call = function() {
var G__10764 = null;
var G__10764__2 = function(this_sym10717, k) {
var this__10719 = this;
var this_sym10717__10720 = this;
var node__10721 = this_sym10717__10720;
return node__10721.cljs$core$ILookup$_lookup$arity$2(node__10721, k)
};
var G__10764__3 = function(this_sym10718, k, not_found) {
var this__10719 = this;
var this_sym10718__10722 = this;
var node__10723 = this_sym10718__10722;
return node__10723.cljs$core$ILookup$_lookup$arity$3(node__10723, k, not_found)
};
G__10764 = function(this_sym10718, k, not_found) {
switch(arguments.length) {
case 2:
return G__10764__2.call(this, this_sym10718, k);
case 3:
return G__10764__3.call(this, this_sym10718, k, not_found)
}
throw"Invalid arity: " + arguments.length;
};
return G__10764
}();
cljs.core.RedNode.prototype.apply = function(this_sym10709, args10710) {
var this__10724 = this;
return this_sym10709.call.apply(this_sym10709, [this_sym10709].concat(args10710.slice()))
};
cljs.core.RedNode.prototype.cljs$core$ICollection$_conj$arity$2 = function(node, o) {
var this__10725 = this;
return cljs.core.PersistentVector.fromArray([this__10725.key, this__10725.val, o], true)
};
cljs.core.RedNode.prototype.cljs$core$IMapEntry$_key$arity$1 = function(node) {
var this__10726 = this;
return this__10726.key
};
cljs.core.RedNode.prototype.cljs$core$IMapEntry$_val$arity$1 = function(node) {
var this__10727 = this;
return this__10727.val
};
cljs.core.RedNode.prototype.add_right = function(ins) {
var this__10728 = this;
var node__10729 = this;
return new cljs.core.RedNode(this__10728.key, this__10728.val, this__10728.left, ins, null)
};
cljs.core.RedNode.prototype.redden = function() {
var this__10730 = this;
var node__10731 = this;
throw new Error("red-black tree invariant violation");
};
cljs.core.RedNode.prototype.remove_right = function(del) {
var this__10732 = this;
var node__10733 = this;
return new cljs.core.RedNode(this__10732.key, this__10732.val, this__10732.left, del, null)
};
cljs.core.RedNode.prototype.replace = function(key, val, left, right) {
var this__10734 = this;
var node__10735 = this;
return new cljs.core.RedNode(key, val, left, right, null)
};
cljs.core.RedNode.prototype.kv_reduce = function(f, init) {
var this__10736 = this;
var node__10737 = this;
return cljs.core.tree_map_kv_reduce.call(null, node__10737, f, init)
};
cljs.core.RedNode.prototype.remove_left = function(del) {
var this__10738 = this;
var node__10739 = this;
return new cljs.core.RedNode(this__10738.key, this__10738.val, del, this__10738.right, null)
};
cljs.core.RedNode.prototype.add_left = function(ins) {
var this__10740 = this;
var node__10741 = this;
return new cljs.core.RedNode(this__10740.key, this__10740.val, ins, this__10740.right, null)
};
cljs.core.RedNode.prototype.balance_left = function(parent) {
var this__10742 = this;
var node__10743 = this;
if(cljs.core.instance_QMARK_.call(null, cljs.core.RedNode, this__10742.left)) {
return new cljs.core.RedNode(this__10742.key, this__10742.val, this__10742.left.blacken(), new cljs.core.BlackNode(parent.key, parent.val, this__10742.right, parent.right, null), null)
}else {
if(cljs.core.instance_QMARK_.call(null, cljs.core.RedNode, this__10742.right)) {
return new cljs.core.RedNode(this__10742.right.key, this__10742.right.val, new cljs.core.BlackNode(this__10742.key, this__10742.val, this__10742.left, this__10742.right.left, null), new cljs.core.BlackNode(parent.key, parent.val, this__10742.right.right, parent.right, null), null)
}else {
if("\ufdd0'else") {
return new cljs.core.BlackNode(parent.key, parent.val, node__10743, parent.right, null)
}else {
return null
}
}
}
};
cljs.core.RedNode.prototype.toString = function() {
var G__10765 = null;
var G__10765__0 = function() {
var this__10744 = this;
var this__10746 = this;
return cljs.core.pr_str.call(null, this__10746)
};
G__10765 = function() {
switch(arguments.length) {
case 0:
return G__10765__0.call(this)
}
throw"Invalid arity: " + arguments.length;
};
return G__10765
}();
cljs.core.RedNode.prototype.balance_right = function(parent) {
var this__10747 = this;
var node__10748 = this;
if(cljs.core.instance_QMARK_.call(null, cljs.core.RedNode, this__10747.right)) {
return new cljs.core.RedNode(this__10747.key, this__10747.val, new cljs.core.BlackNode(parent.key, parent.val, parent.left, this__10747.left, null), this__10747.right.blacken(), null)
}else {
if(cljs.core.instance_QMARK_.call(null, cljs.core.RedNode, this__10747.left)) {
return new cljs.core.RedNode(this__10747.left.key, this__10747.left.val, new cljs.core.BlackNode(parent.key, parent.val, parent.left, this__10747.left.left, null), new cljs.core.BlackNode(this__10747.key, this__10747.val, this__10747.left.right, this__10747.right, null), null)
}else {
if("\ufdd0'else") {
return new cljs.core.BlackNode(parent.key, parent.val, parent.left, node__10748, null)
}else {
return null
}
}
}
};
cljs.core.RedNode.prototype.blacken = function() {
var this__10749 = this;
var node__10750 = this;
return new cljs.core.BlackNode(this__10749.key, this__10749.val, this__10749.left, this__10749.right, null)
};
cljs.core.RedNode.prototype.cljs$core$IReduce$_reduce$arity$2 = function(node, f) {
var this__10751 = this;
return cljs.core.ci_reduce.call(null, node, f)
};
cljs.core.RedNode.prototype.cljs$core$IReduce$_reduce$arity$3 = function(node, f, start) {
var this__10752 = this;
return cljs.core.ci_reduce.call(null, node, f, start)
};
cljs.core.RedNode.prototype.cljs$core$ISeqable$_seq$arity$1 = function(node) {
var this__10753 = this;
return cljs.core.list.call(null, this__10753.key, this__10753.val)
};
cljs.core.RedNode.prototype.cljs$core$ICounted$_count$arity$1 = function(node) {
var this__10754 = this;
return 2
};
cljs.core.RedNode.prototype.cljs$core$IStack$_peek$arity$1 = function(node) {
var this__10755 = this;
return this__10755.val
};
cljs.core.RedNode.prototype.cljs$core$IStack$_pop$arity$1 = function(node) {
var this__10756 = this;
return cljs.core.PersistentVector.fromArray([this__10756.key], true)
};
cljs.core.RedNode.prototype.cljs$core$IVector$_assoc_n$arity$3 = function(node, n, v) {
var this__10757 = this;
return cljs.core._assoc_n.call(null, cljs.core.PersistentVector.fromArray([this__10757.key, this__10757.val], true), n, v)
};
cljs.core.RedNode.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var this__10758 = this;
return cljs.core.equiv_sequential.call(null, coll, other)
};
cljs.core.RedNode.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(node, meta) {
var this__10759 = this;
return cljs.core.with_meta.call(null, cljs.core.PersistentVector.fromArray([this__10759.key, this__10759.val], true), meta)
};
cljs.core.RedNode.prototype.cljs$core$IMeta$_meta$arity$1 = function(node) {
var this__10760 = this;
return null
};
cljs.core.RedNode.prototype.cljs$core$IIndexed$_nth$arity$2 = function(node, n) {
var this__10761 = this;
if(n === 0) {
return this__10761.key
}else {
if(n === 1) {
return this__10761.val
}else {
if("\ufdd0'else") {
return null
}else {
return null
}
}
}
};
cljs.core.RedNode.prototype.cljs$core$IIndexed$_nth$arity$3 = function(node, n, not_found) {
var this__10762 = this;
if(n === 0) {
return this__10762.key
}else {
if(n === 1) {
return this__10762.val
}else {
if("\ufdd0'else") {
return not_found
}else {
return null
}
}
}
};
cljs.core.RedNode.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(node) {
var this__10763 = this;
return cljs.core.PersistentVector.EMPTY
};
cljs.core.RedNode;
cljs.core.tree_map_add = function tree_map_add(comp, tree, k, v, found) {
if(tree == null) {
return new cljs.core.RedNode(k, v, null, null, null)
}else {
var c__10769 = comp.call(null, k, tree.key);
if(c__10769 === 0) {
found[0] = tree;
return null
}else {
if(c__10769 < 0) {
var ins__10770 = tree_map_add.call(null, comp, tree.left, k, v, found);
if(!(ins__10770 == null)) {
return tree.add_left(ins__10770)
}else {
return null
}
}else {
if("\ufdd0'else") {
var ins__10771 = tree_map_add.call(null, comp, tree.right, k, v, found);
if(!(ins__10771 == null)) {
return tree.add_right(ins__10771)
}else {
return null
}
}else {
return null
}
}
}
}
};
cljs.core.tree_map_append = function tree_map_append(left, right) {
if(left == null) {
return right
}else {
if(right == null) {
return left
}else {
if(cljs.core.instance_QMARK_.call(null, cljs.core.RedNode, left)) {
if(cljs.core.instance_QMARK_.call(null, cljs.core.RedNode, right)) {
var app__10774 = tree_map_append.call(null, left.right, right.left);
if(cljs.core.instance_QMARK_.call(null, cljs.core.RedNode, app__10774)) {
return new cljs.core.RedNode(app__10774.key, app__10774.val, new cljs.core.RedNode(left.key, left.val, left.left, app__10774.left, null), new cljs.core.RedNode(right.key, right.val, app__10774.right, right.right, null), null)
}else {
return new cljs.core.RedNode(left.key, left.val, left.left, new cljs.core.RedNode(right.key, right.val, app__10774, right.right, null), null)
}
}else {
return new cljs.core.RedNode(left.key, left.val, left.left, tree_map_append.call(null, left.right, right), null)
}
}else {
if(cljs.core.instance_QMARK_.call(null, cljs.core.RedNode, right)) {
return new cljs.core.RedNode(right.key, right.val, tree_map_append.call(null, left, right.left), right.right, null)
}else {
if("\ufdd0'else") {
var app__10775 = tree_map_append.call(null, left.right, right.left);
if(cljs.core.instance_QMARK_.call(null, cljs.core.RedNode, app__10775)) {
return new cljs.core.RedNode(app__10775.key, app__10775.val, new cljs.core.BlackNode(left.key, left.val, left.left, app__10775.left, null), new cljs.core.BlackNode(right.key, right.val, app__10775.right, right.right, null), null)
}else {
return cljs.core.balance_left_del.call(null, left.key, left.val, left.left, new cljs.core.BlackNode(right.key, right.val, app__10775, right.right, null))
}
}else {
return null
}
}
}
}
}
};
cljs.core.tree_map_remove = function tree_map_remove(comp, tree, k, found) {
if(!(tree == null)) {
var c__10781 = comp.call(null, k, tree.key);
if(c__10781 === 0) {
found[0] = tree;
return cljs.core.tree_map_append.call(null, tree.left, tree.right)
}else {
if(c__10781 < 0) {
var del__10782 = tree_map_remove.call(null, comp, tree.left, k, found);
if(function() {
var or__3824__auto____10783 = !(del__10782 == null);
if(or__3824__auto____10783) {
return or__3824__auto____10783
}else {
return!(found[0] == null)
}
}()) {
if(cljs.core.instance_QMARK_.call(null, cljs.core.BlackNode, tree.left)) {
return cljs.core.balance_left_del.call(null, tree.key, tree.val, del__10782, tree.right)
}else {
return new cljs.core.RedNode(tree.key, tree.val, del__10782, tree.right, null)
}
}else {
return null
}
}else {
if("\ufdd0'else") {
var del__10784 = tree_map_remove.call(null, comp, tree.right, k, found);
if(function() {
var or__3824__auto____10785 = !(del__10784 == null);
if(or__3824__auto____10785) {
return or__3824__auto____10785
}else {
return!(found[0] == null)
}
}()) {
if(cljs.core.instance_QMARK_.call(null, cljs.core.BlackNode, tree.right)) {
return cljs.core.balance_right_del.call(null, tree.key, tree.val, tree.left, del__10784)
}else {
return new cljs.core.RedNode(tree.key, tree.val, tree.left, del__10784, null)
}
}else {
return null
}
}else {
return null
}
}
}
}else {
return null
}
};
cljs.core.tree_map_replace = function tree_map_replace(comp, tree, k, v) {
var tk__10788 = tree.key;
var c__10789 = comp.call(null, k, tk__10788);
if(c__10789 === 0) {
return tree.replace(tk__10788, v, tree.left, tree.right)
}else {
if(c__10789 < 0) {
return tree.replace(tk__10788, tree.val, tree_map_replace.call(null, comp, tree.left, k, v), tree.right)
}else {
if("\ufdd0'else") {
return tree.replace(tk__10788, tree.val, tree.left, tree_map_replace.call(null, comp, tree.right, k, v))
}else {
return null
}
}
}
};
cljs.core.PersistentTreeMap = function(comp, tree, cnt, meta, __hash) {
this.comp = comp;
this.tree = tree;
this.cnt = cnt;
this.meta = meta;
this.__hash = __hash;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 418776847
};
cljs.core.PersistentTreeMap.cljs$lang$type = true;
cljs.core.PersistentTreeMap.cljs$lang$ctorPrSeq = function(this__2333__auto__) {
return cljs.core.list.call(null, "cljs.core/PersistentTreeMap")
};
cljs.core.PersistentTreeMap.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var this__10792 = this;
var h__2216__auto____10793 = this__10792.__hash;
if(!(h__2216__auto____10793 == null)) {
return h__2216__auto____10793
}else {
var h__2216__auto____10794 = cljs.core.hash_imap.call(null, coll);
this__10792.__hash = h__2216__auto____10794;
return h__2216__auto____10794
}
};
cljs.core.PersistentTreeMap.prototype.cljs$core$ILookup$_lookup$arity$2 = function(coll, k) {
var this__10795 = this;
return coll.cljs$core$ILookup$_lookup$arity$3(coll, k, null)
};
cljs.core.PersistentTreeMap.prototype.cljs$core$ILookup$_lookup$arity$3 = function(coll, k, not_found) {
var this__10796 = this;
var n__10797 = coll.entry_at(k);
if(!(n__10797 == null)) {
return n__10797.val
}else {
return not_found
}
};
cljs.core.PersistentTreeMap.prototype.cljs$core$IAssociative$_assoc$arity$3 = function(coll, k, v) {
var this__10798 = this;
var found__10799 = [null];
var t__10800 = cljs.core.tree_map_add.call(null, this__10798.comp, this__10798.tree, k, v, found__10799);
if(t__10800 == null) {
var found_node__10801 = cljs.core.nth.call(null, found__10799, 0);
if(cljs.core._EQ_.call(null, v, found_node__10801.val)) {
return coll
}else {
return new cljs.core.PersistentTreeMap(this__10798.comp, cljs.core.tree_map_replace.call(null, this__10798.comp, this__10798.tree, k, v), this__10798.cnt, this__10798.meta, null)
}
}else {
return new cljs.core.PersistentTreeMap(this__10798.comp, t__10800.blacken(), this__10798.cnt + 1, this__10798.meta, null)
}
};
cljs.core.PersistentTreeMap.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 = function(coll, k) {
var this__10802 = this;
return!(coll.entry_at(k) == null)
};
cljs.core.PersistentTreeMap.prototype.call = function() {
var G__10836 = null;
var G__10836__2 = function(this_sym10803, k) {
var this__10805 = this;
var this_sym10803__10806 = this;
var coll__10807 = this_sym10803__10806;
return coll__10807.cljs$core$ILookup$_lookup$arity$2(coll__10807, k)
};
var G__10836__3 = function(this_sym10804, k, not_found) {
var this__10805 = this;
var this_sym10804__10808 = this;
var coll__10809 = this_sym10804__10808;
return coll__10809.cljs$core$ILookup$_lookup$arity$3(coll__10809, k, not_found)
};
G__10836 = function(this_sym10804, k, not_found) {
switch(arguments.length) {
case 2:
return G__10836__2.call(this, this_sym10804, k);
case 3:
return G__10836__3.call(this, this_sym10804, k, not_found)
}
throw"Invalid arity: " + arguments.length;
};
return G__10836
}();
cljs.core.PersistentTreeMap.prototype.apply = function(this_sym10790, args10791) {
var this__10810 = this;
return this_sym10790.call.apply(this_sym10790, [this_sym10790].concat(args10791.slice()))
};
cljs.core.PersistentTreeMap.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 = function(coll, f, init) {
var this__10811 = this;
if(!(this__10811.tree == null)) {
return cljs.core.tree_map_kv_reduce.call(null, this__10811.tree, f, init)
}else {
return init
}
};
cljs.core.PersistentTreeMap.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, entry) {
var this__10812 = this;
if(cljs.core.vector_QMARK_.call(null, entry)) {
return coll.cljs$core$IAssociative$_assoc$arity$3(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.PersistentTreeMap.prototype.cljs$core$IReversible$_rseq$arity$1 = function(coll) {
var this__10813 = this;
if(this__10813.cnt > 0) {
return cljs.core.create_tree_map_seq.call(null, this__10813.tree, false, this__10813.cnt)
}else {
return null
}
};
cljs.core.PersistentTreeMap.prototype.toString = function() {
var this__10814 = this;
var this__10815 = this;
return cljs.core.pr_str.call(null, this__10815)
};
cljs.core.PersistentTreeMap.prototype.entry_at = function(k) {
var this__10816 = this;
var coll__10817 = this;
var t__10818 = this__10816.tree;
while(true) {
if(!(t__10818 == null)) {
var c__10819 = this__10816.comp.call(null, k, t__10818.key);
if(c__10819 === 0) {
return t__10818
}else {
if(c__10819 < 0) {
var G__10837 = t__10818.left;
t__10818 = G__10837;
continue
}else {
if("\ufdd0'else") {
var G__10838 = t__10818.right;
t__10818 = G__10838;
continue
}else {
return null
}
}
}
}else {
return null
}
break
}
};
cljs.core.PersistentTreeMap.prototype.cljs$core$ISorted$_sorted_seq$arity$2 = function(coll, ascending_QMARK_) {
var this__10820 = this;
if(this__10820.cnt > 0) {
return cljs.core.create_tree_map_seq.call(null, this__10820.tree, ascending_QMARK_, this__10820.cnt)
}else {
return null
}
};
cljs.core.PersistentTreeMap.prototype.cljs$core$ISorted$_sorted_seq_from$arity$3 = function(coll, k, ascending_QMARK_) {
var this__10821 = this;
if(this__10821.cnt > 0) {
var stack__10822 = null;
var t__10823 = this__10821.tree;
while(true) {
if(!(t__10823 == null)) {
var c__10824 = this__10821.comp.call(null, k, t__10823.key);
if(c__10824 === 0) {
return new cljs.core.PersistentTreeMapSeq(null, cljs.core.conj.call(null, stack__10822, t__10823), ascending_QMARK_, -1, null)
}else {
if(cljs.core.truth_(ascending_QMARK_)) {
if(c__10824 < 0) {
var G__10839 = cljs.core.conj.call(null, stack__10822, t__10823);
var G__10840 = t__10823.left;
stack__10822 = G__10839;
t__10823 = G__10840;
continue
}else {
var G__10841 = stack__10822;
var G__10842 = t__10823.right;
stack__10822 = G__10841;
t__10823 = G__10842;
continue
}
}else {
if("\ufdd0'else") {
if(c__10824 > 0) {
var G__10843 = cljs.core.conj.call(null, stack__10822, t__10823);
var G__10844 = t__10823.right;
stack__10822 = G__10843;
t__10823 = G__10844;
continue
}else {
var G__10845 = stack__10822;
var G__10846 = t__10823.left;
stack__10822 = G__10845;
t__10823 = G__10846;
continue
}
}else {
return null
}
}
}
}else {
if(stack__10822 == null) {
return new cljs.core.PersistentTreeMapSeq(null, stack__10822, ascending_QMARK_, -1, null)
}else {
return null
}
}
break
}
}else {
return null
}
};
cljs.core.PersistentTreeMap.prototype.cljs$core$ISorted$_entry_key$arity$2 = function(coll, entry) {
var this__10825 = this;
return cljs.core.key.call(null, entry)
};
cljs.core.PersistentTreeMap.prototype.cljs$core$ISorted$_comparator$arity$1 = function(coll) {
var this__10826 = this;
return this__10826.comp
};
cljs.core.PersistentTreeMap.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var this__10827 = this;
if(this__10827.cnt > 0) {
return cljs.core.create_tree_map_seq.call(null, this__10827.tree, true, this__10827.cnt)
}else {
return null
}
};
cljs.core.PersistentTreeMap.prototype.cljs$core$ICounted$_count$arity$1 = function(coll) {
var this__10828 = this;
return this__10828.cnt
};
cljs.core.PersistentTreeMap.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var this__10829 = this;
return cljs.core.equiv_map.call(null, coll, other)
};
cljs.core.PersistentTreeMap.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(coll, meta) {
var this__10830 = this;
return new cljs.core.PersistentTreeMap(this__10830.comp, this__10830.tree, this__10830.cnt, meta, this__10830.__hash)
};
cljs.core.PersistentTreeMap.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var this__10831 = this;
return this__10831.meta
};
cljs.core.PersistentTreeMap.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var this__10832 = this;
return cljs.core.with_meta.call(null, cljs.core.PersistentTreeMap.EMPTY, this__10832.meta)
};
cljs.core.PersistentTreeMap.prototype.cljs$core$IMap$_dissoc$arity$2 = function(coll, k) {
var this__10833 = this;
var found__10834 = [null];
var t__10835 = cljs.core.tree_map_remove.call(null, this__10833.comp, this__10833.tree, k, found__10834);
if(t__10835 == null) {
if(cljs.core.nth.call(null, found__10834, 0) == null) {
return coll
}else {
return new cljs.core.PersistentTreeMap(this__10833.comp, null, 0, this__10833.meta, null)
}
}else {
return new cljs.core.PersistentTreeMap(this__10833.comp, t__10835.blacken(), this__10833.cnt - 1, this__10833.meta, null)
}
};
cljs.core.PersistentTreeMap;
cljs.core.PersistentTreeMap.EMPTY = new cljs.core.PersistentTreeMap(cljs.core.compare, null, 0, null, 0);
cljs.core.hash_map = function() {
var hash_map__delegate = function(keyvals) {
var in__10849 = cljs.core.seq.call(null, keyvals);
var out__10850 = cljs.core.transient$.call(null, cljs.core.PersistentHashMap.EMPTY);
while(true) {
if(in__10849) {
var G__10851 = cljs.core.nnext.call(null, in__10849);
var G__10852 = cljs.core.assoc_BANG_.call(null, out__10850, cljs.core.first.call(null, in__10849), cljs.core.second.call(null, in__10849));
in__10849 = G__10851;
out__10850 = G__10852;
continue
}else {
return cljs.core.persistent_BANG_.call(null, out__10850)
}
break
}
};
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__10853) {
var keyvals = cljs.core.seq(arglist__10853);
return hash_map__delegate(keyvals)
};
hash_map.cljs$lang$arity$variadic = hash_map__delegate;
return hash_map
}();
cljs.core.array_map = function() {
var array_map__delegate = function(keyvals) {
return new cljs.core.PersistentArrayMap(null, cljs.core.quot.call(null, cljs.core.count.call(null, keyvals), 2), cljs.core.apply.call(null, cljs.core.array, keyvals), null)
};
var array_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 array_map__delegate.call(this, keyvals)
};
array_map.cljs$lang$maxFixedArity = 0;
array_map.cljs$lang$applyTo = function(arglist__10854) {
var keyvals = cljs.core.seq(arglist__10854);
return array_map__delegate(keyvals)
};
array_map.cljs$lang$arity$variadic = array_map__delegate;
return array_map
}();
cljs.core.obj_map = function() {
var obj_map__delegate = function(keyvals) {
var ks__10858 = [];
var obj__10859 = {};
var kvs__10860 = cljs.core.seq.call(null, keyvals);
while(true) {
if(kvs__10860) {
ks__10858.push(cljs.core.first.call(null, kvs__10860));
obj__10859[cljs.core.first.call(null, kvs__10860)] = cljs.core.second.call(null, kvs__10860);
var G__10861 = cljs.core.nnext.call(null, kvs__10860);
kvs__10860 = G__10861;
continue
}else {
return cljs.core.ObjMap.fromObject.call(null, ks__10858, obj__10859)
}
break
}
};
var obj_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 obj_map__delegate.call(this, keyvals)
};
obj_map.cljs$lang$maxFixedArity = 0;
obj_map.cljs$lang$applyTo = function(arglist__10862) {
var keyvals = cljs.core.seq(arglist__10862);
return obj_map__delegate(keyvals)
};
obj_map.cljs$lang$arity$variadic = obj_map__delegate;
return obj_map
}();
cljs.core.sorted_map = function() {
var sorted_map__delegate = function(keyvals) {
var in__10865 = cljs.core.seq.call(null, keyvals);
var out__10866 = cljs.core.PersistentTreeMap.EMPTY;
while(true) {
if(in__10865) {
var G__10867 = cljs.core.nnext.call(null, in__10865);
var G__10868 = cljs.core.assoc.call(null, out__10866, cljs.core.first.call(null, in__10865), cljs.core.second.call(null, in__10865));
in__10865 = G__10867;
out__10866 = G__10868;
continue
}else {
return out__10866
}
break
}
};
var sorted_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 sorted_map__delegate.call(this, keyvals)
};
sorted_map.cljs$lang$maxFixedArity = 0;
sorted_map.cljs$lang$applyTo = function(arglist__10869) {
var keyvals = cljs.core.seq(arglist__10869);
return sorted_map__delegate(keyvals)
};
sorted_map.cljs$lang$arity$variadic = sorted_map__delegate;
return sorted_map
}();
cljs.core.sorted_map_by = function() {
var sorted_map_by__delegate = function(comparator, keyvals) {
var in__10872 = cljs.core.seq.call(null, keyvals);
var out__10873 = new cljs.core.PersistentTreeMap(comparator, null, 0, null, 0);
while(true) {
if(in__10872) {
var G__10874 = cljs.core.nnext.call(null, in__10872);
var G__10875 = cljs.core.assoc.call(null, out__10873, cljs.core.first.call(null, in__10872), cljs.core.second.call(null, in__10872));
in__10872 = G__10874;
out__10873 = G__10875;
continue
}else {
return out__10873
}
break
}
};
var sorted_map_by = function(comparator, var_args) {
var keyvals = null;
if(goog.isDef(var_args)) {
keyvals = cljs.core.array_seq(Array.prototype.slice.call(arguments, 1), 0)
}
return sorted_map_by__delegate.call(this, comparator, keyvals)
};
sorted_map_by.cljs$lang$maxFixedArity = 1;
sorted_map_by.cljs$lang$applyTo = function(arglist__10876) {
var comparator = cljs.core.first(arglist__10876);
var keyvals = cljs.core.rest(arglist__10876);
return sorted_map_by__delegate(comparator, keyvals)
};
sorted_map_by.cljs$lang$arity$variadic = sorted_map_by__delegate;
return sorted_map_by
}();
cljs.core.keys = function keys(hash_map) {
return cljs.core.seq.call(null, cljs.core.map.call(null, cljs.core.first, hash_map))
};
cljs.core.key = function key(map_entry) {
return cljs.core._key.call(null, map_entry)
};
cljs.core.vals = function vals(hash_map) {
return cljs.core.seq.call(null, cljs.core.map.call(null, cljs.core.second, hash_map))
};
cljs.core.val = function val(map_entry) {
return cljs.core._val.call(null, map_entry)
};
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__10877_SHARP_, p2__10878_SHARP_) {
return cljs.core.conj.call(null, function() {
var or__3824__auto____10880 = p1__10877_SHARP_;
if(cljs.core.truth_(or__3824__auto____10880)) {
return or__3824__auto____10880
}else {
return cljs.core.ObjMap.EMPTY
}
}(), p2__10878_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__10881) {
var maps = cljs.core.seq(arglist__10881);
return merge__delegate(maps)
};
merge.cljs$lang$arity$variadic = merge__delegate;
return merge
}();
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__10889 = function(m, e) {
var k__10887 = cljs.core.first.call(null, e);
var v__10888 = cljs.core.second.call(null, e);
if(cljs.core.contains_QMARK_.call(null, m, k__10887)) {
return cljs.core.assoc.call(null, m, k__10887, f.call(null, cljs.core._lookup.call(null, m, k__10887, null), v__10888))
}else {
return cljs.core.assoc.call(null, m, k__10887, v__10888)
}
};
var merge2__10891 = function(m1, m2) {
return cljs.core.reduce.call(null, merge_entry__10889, function() {
var or__3824__auto____10890 = m1;
if(cljs.core.truth_(or__3824__auto____10890)) {
return or__3824__auto____10890
}else {
return cljs.core.ObjMap.EMPTY
}
}(), cljs.core.seq.call(null, m2))
};
return cljs.core.reduce.call(null, merge2__10891, 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__10892) {
var f = cljs.core.first(arglist__10892);
var maps = cljs.core.rest(arglist__10892);
return merge_with__delegate(f, maps)
};
merge_with.cljs$lang$arity$variadic = merge_with__delegate;
return merge_with
}();
cljs.core.select_keys = function select_keys(map, keyseq) {
var ret__10897 = cljs.core.ObjMap.EMPTY;
var keys__10898 = cljs.core.seq.call(null, keyseq);
while(true) {
if(keys__10898) {
var key__10899 = cljs.core.first.call(null, keys__10898);
var entry__10900 = cljs.core._lookup.call(null, map, key__10899, "\ufdd0'cljs.core/not-found");
var G__10901 = cljs.core.not_EQ_.call(null, entry__10900, "\ufdd0'cljs.core/not-found") ? cljs.core.assoc.call(null, ret__10897, key__10899, entry__10900) : ret__10897;
var G__10902 = cljs.core.next.call(null, keys__10898);
ret__10897 = G__10901;
keys__10898 = G__10902;
continue
}else {
return ret__10897
}
break
}
};
cljs.core.PersistentHashSet = function(meta, hash_map, __hash) {
this.meta = meta;
this.hash_map = hash_map;
this.__hash = __hash;
this.cljs$lang$protocol_mask$partition1$ = 1;
this.cljs$lang$protocol_mask$partition0$ = 15077647
};
cljs.core.PersistentHashSet.cljs$lang$type = true;
cljs.core.PersistentHashSet.cljs$lang$ctorPrSeq = function(this__2333__auto__) {
return cljs.core.list.call(null, "cljs.core/PersistentHashSet")
};
cljs.core.PersistentHashSet.prototype.cljs$core$IEditableCollection$_as_transient$arity$1 = function(coll) {
var this__10906 = this;
return new cljs.core.TransientHashSet(cljs.core.transient$.call(null, this__10906.hash_map))
};
cljs.core.PersistentHashSet.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var this__10907 = this;
var h__2216__auto____10908 = this__10907.__hash;
if(!(h__2216__auto____10908 == null)) {
return h__2216__auto____10908
}else {
var h__2216__auto____10909 = cljs.core.hash_iset.call(null, coll);
this__10907.__hash = h__2216__auto____10909;
return h__2216__auto____10909
}
};
cljs.core.PersistentHashSet.prototype.cljs$core$ILookup$_lookup$arity$2 = function(coll, v) {
var this__10910 = this;
return coll.cljs$core$ILookup$_lookup$arity$3(coll, v, null)
};
cljs.core.PersistentHashSet.prototype.cljs$core$ILookup$_lookup$arity$3 = function(coll, v, not_found) {
var this__10911 = this;
if(cljs.core.truth_(cljs.core._contains_key_QMARK_.call(null, this__10911.hash_map, v))) {
return v
}else {
return not_found
}
};
cljs.core.PersistentHashSet.prototype.call = function() {
var G__10932 = null;
var G__10932__2 = function(this_sym10912, k) {
var this__10914 = this;
var this_sym10912__10915 = this;
var coll__10916 = this_sym10912__10915;
return coll__10916.cljs$core$ILookup$_lookup$arity$2(coll__10916, k)
};
var G__10932__3 = function(this_sym10913, k, not_found) {
var this__10914 = this;
var this_sym10913__10917 = this;
var coll__10918 = this_sym10913__10917;
return coll__10918.cljs$core$ILookup$_lookup$arity$3(coll__10918, k, not_found)
};
G__10932 = function(this_sym10913, k, not_found) {
switch(arguments.length) {
case 2:
return G__10932__2.call(this, this_sym10913, k);
case 3:
return G__10932__3.call(this, this_sym10913, k, not_found)
}
throw"Invalid arity: " + arguments.length;
};
return G__10932
}();
cljs.core.PersistentHashSet.prototype.apply = function(this_sym10904, args10905) {
var this__10919 = this;
return this_sym10904.call.apply(this_sym10904, [this_sym10904].concat(args10905.slice()))
};
cljs.core.PersistentHashSet.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var this__10920 = this;
return new cljs.core.PersistentHashSet(this__10920.meta, cljs.core.assoc.call(null, this__10920.hash_map, o, null), null)
};
cljs.core.PersistentHashSet.prototype.toString = function() {
var this__10921 = this;
var this__10922 = this;
return cljs.core.pr_str.call(null, this__10922)
};
cljs.core.PersistentHashSet.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var this__10923 = this;
return cljs.core.keys.call(null, this__10923.hash_map)
};
cljs.core.PersistentHashSet.prototype.cljs$core$ISet$_disjoin$arity$2 = function(coll, v) {
var this__10924 = this;
return new cljs.core.PersistentHashSet(this__10924.meta, cljs.core.dissoc.call(null, this__10924.hash_map, v), null)
};
cljs.core.PersistentHashSet.prototype.cljs$core$ICounted$_count$arity$1 = function(coll) {
var this__10925 = this;
return cljs.core.count.call(null, cljs.core.seq.call(null, coll))
};
cljs.core.PersistentHashSet.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var this__10926 = this;
var and__3822__auto____10927 = cljs.core.set_QMARK_.call(null, other);
if(and__3822__auto____10927) {
var and__3822__auto____10928 = cljs.core.count.call(null, coll) === cljs.core.count.call(null, other);
if(and__3822__auto____10928) {
return cljs.core.every_QMARK_.call(null, function(p1__10903_SHARP_) {
return cljs.core.contains_QMARK_.call(null, coll, p1__10903_SHARP_)
}, other)
}else {
return and__3822__auto____10928
}
}else {
return and__3822__auto____10927
}
};
cljs.core.PersistentHashSet.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(coll, meta) {
var this__10929 = this;
return new cljs.core.PersistentHashSet(meta, this__10929.hash_map, this__10929.__hash)
};
cljs.core.PersistentHashSet.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var this__10930 = this;
return this__10930.meta
};
cljs.core.PersistentHashSet.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var this__10931 = this;
return cljs.core.with_meta.call(null, cljs.core.PersistentHashSet.EMPTY, this__10931.meta)
};
cljs.core.PersistentHashSet;
cljs.core.PersistentHashSet.EMPTY = new cljs.core.PersistentHashSet(null, cljs.core.hash_map.call(null), 0);
cljs.core.PersistentHashSet.fromArray = function(items) {
var len__10933 = cljs.core.count.call(null, items);
var i__10934 = 0;
var out__10935 = cljs.core.transient$.call(null, cljs.core.PersistentHashSet.EMPTY);
while(true) {
if(i__10934 < len__10933) {
var G__10936 = i__10934 + 1;
var G__10937 = cljs.core.conj_BANG_.call(null, out__10935, items[i__10934]);
i__10934 = G__10936;
out__10935 = G__10937;
continue
}else {
return cljs.core.persistent_BANG_.call(null, out__10935)
}
break
}
};
cljs.core.TransientHashSet = function(transient_map) {
this.transient_map = transient_map;
this.cljs$lang$protocol_mask$partition0$ = 259;
this.cljs$lang$protocol_mask$partition1$ = 34
};
cljs.core.TransientHashSet.cljs$lang$type = true;
cljs.core.TransientHashSet.cljs$lang$ctorPrSeq = function(this__2333__auto__) {
return cljs.core.list.call(null, "cljs.core/TransientHashSet")
};
cljs.core.TransientHashSet.prototype.call = function() {
var G__10955 = null;
var G__10955__2 = function(this_sym10941, k) {
var this__10943 = this;
var this_sym10941__10944 = this;
var tcoll__10945 = this_sym10941__10944;
if(cljs.core._lookup.call(null, this__10943.transient_map, k, cljs.core.lookup_sentinel) === cljs.core.lookup_sentinel) {
return null
}else {
return k
}
};
var G__10955__3 = function(this_sym10942, k, not_found) {
var this__10943 = this;
var this_sym10942__10946 = this;
var tcoll__10947 = this_sym10942__10946;
if(cljs.core._lookup.call(null, this__10943.transient_map, k, cljs.core.lookup_sentinel) === cljs.core.lookup_sentinel) {
return not_found
}else {
return k
}
};
G__10955 = function(this_sym10942, k, not_found) {
switch(arguments.length) {
case 2:
return G__10955__2.call(this, this_sym10942, k);
case 3:
return G__10955__3.call(this, this_sym10942, k, not_found)
}
throw"Invalid arity: " + arguments.length;
};
return G__10955
}();
cljs.core.TransientHashSet.prototype.apply = function(this_sym10939, args10940) {
var this__10948 = this;
return this_sym10939.call.apply(this_sym10939, [this_sym10939].concat(args10940.slice()))
};
cljs.core.TransientHashSet.prototype.cljs$core$ILookup$_lookup$arity$2 = function(tcoll, v) {
var this__10949 = this;
return tcoll.cljs$core$ILookup$_lookup$arity$3(tcoll, v, null)
};
cljs.core.TransientHashSet.prototype.cljs$core$ILookup$_lookup$arity$3 = function(tcoll, v, not_found) {
var this__10950 = this;
if(cljs.core._lookup.call(null, this__10950.transient_map, v, cljs.core.lookup_sentinel) === cljs.core.lookup_sentinel) {
return not_found
}else {
return v
}
};
cljs.core.TransientHashSet.prototype.cljs$core$ICounted$_count$arity$1 = function(tcoll) {
var this__10951 = this;
return cljs.core.count.call(null, this__10951.transient_map)
};
cljs.core.TransientHashSet.prototype.cljs$core$ITransientSet$_disjoin_BANG_$arity$2 = function(tcoll, v) {
var this__10952 = this;
this__10952.transient_map = cljs.core.dissoc_BANG_.call(null, this__10952.transient_map, v);
return tcoll
};
cljs.core.TransientHashSet.prototype.cljs$core$ITransientCollection$_conj_BANG_$arity$2 = function(tcoll, o) {
var this__10953 = this;
this__10953.transient_map = cljs.core.assoc_BANG_.call(null, this__10953.transient_map, o, null);
return tcoll
};
cljs.core.TransientHashSet.prototype.cljs$core$ITransientCollection$_persistent_BANG_$arity$1 = function(tcoll) {
var this__10954 = this;
return new cljs.core.PersistentHashSet(null, cljs.core.persistent_BANG_.call(null, this__10954.transient_map), null)
};
cljs.core.TransientHashSet;
cljs.core.PersistentTreeSet = function(meta, tree_map, __hash) {
this.meta = meta;
this.tree_map = tree_map;
this.__hash = __hash;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 417730831
};
cljs.core.PersistentTreeSet.cljs$lang$type = true;
cljs.core.PersistentTreeSet.cljs$lang$ctorPrSeq = function(this__2333__auto__) {
return cljs.core.list.call(null, "cljs.core/PersistentTreeSet")
};
cljs.core.PersistentTreeSet.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var this__10958 = this;
var h__2216__auto____10959 = this__10958.__hash;
if(!(h__2216__auto____10959 == null)) {
return h__2216__auto____10959
}else {
var h__2216__auto____10960 = cljs.core.hash_iset.call(null, coll);
this__10958.__hash = h__2216__auto____10960;
return h__2216__auto____10960
}
};
cljs.core.PersistentTreeSet.prototype.cljs$core$ILookup$_lookup$arity$2 = function(coll, v) {
var this__10961 = this;
return coll.cljs$core$ILookup$_lookup$arity$3(coll, v, null)
};
cljs.core.PersistentTreeSet.prototype.cljs$core$ILookup$_lookup$arity$3 = function(coll, v, not_found) {
var this__10962 = this;
if(cljs.core.truth_(cljs.core._contains_key_QMARK_.call(null, this__10962.tree_map, v))) {
return v
}else {
return not_found
}
};
cljs.core.PersistentTreeSet.prototype.call = function() {
var G__10988 = null;
var G__10988__2 = function(this_sym10963, k) {
var this__10965 = this;
var this_sym10963__10966 = this;
var coll__10967 = this_sym10963__10966;
return coll__10967.cljs$core$ILookup$_lookup$arity$2(coll__10967, k)
};
var G__10988__3 = function(this_sym10964, k, not_found) {
var this__10965 = this;
var this_sym10964__10968 = this;
var coll__10969 = this_sym10964__10968;
return coll__10969.cljs$core$ILookup$_lookup$arity$3(coll__10969, k, not_found)
};
G__10988 = function(this_sym10964, k, not_found) {
switch(arguments.length) {
case 2:
return G__10988__2.call(this, this_sym10964, k);
case 3:
return G__10988__3.call(this, this_sym10964, k, not_found)
}
throw"Invalid arity: " + arguments.length;
};
return G__10988
}();
cljs.core.PersistentTreeSet.prototype.apply = function(this_sym10956, args10957) {
var this__10970 = this;
return this_sym10956.call.apply(this_sym10956, [this_sym10956].concat(args10957.slice()))
};
cljs.core.PersistentTreeSet.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var this__10971 = this;
return new cljs.core.PersistentTreeSet(this__10971.meta, cljs.core.assoc.call(null, this__10971.tree_map, o, null), null)
};
cljs.core.PersistentTreeSet.prototype.cljs$core$IReversible$_rseq$arity$1 = function(coll) {
var this__10972 = this;
return cljs.core.map.call(null, cljs.core.key, cljs.core.rseq.call(null, this__10972.tree_map))
};
cljs.core.PersistentTreeSet.prototype.toString = function() {
var this__10973 = this;
var this__10974 = this;
return cljs.core.pr_str.call(null, this__10974)
};
cljs.core.PersistentTreeSet.prototype.cljs$core$ISorted$_sorted_seq$arity$2 = function(coll, ascending_QMARK_) {
var this__10975 = this;
return cljs.core.map.call(null, cljs.core.key, cljs.core._sorted_seq.call(null, this__10975.tree_map, ascending_QMARK_))
};
cljs.core.PersistentTreeSet.prototype.cljs$core$ISorted$_sorted_seq_from$arity$3 = function(coll, k, ascending_QMARK_) {
var this__10976 = this;
return cljs.core.map.call(null, cljs.core.key, cljs.core._sorted_seq_from.call(null, this__10976.tree_map, k, ascending_QMARK_))
};
cljs.core.PersistentTreeSet.prototype.cljs$core$ISorted$_entry_key$arity$2 = function(coll, entry) {
var this__10977 = this;
return entry
};
cljs.core.PersistentTreeSet.prototype.cljs$core$ISorted$_comparator$arity$1 = function(coll) {
var this__10978 = this;
return cljs.core._comparator.call(null, this__10978.tree_map)
};
cljs.core.PersistentTreeSet.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var this__10979 = this;
return cljs.core.keys.call(null, this__10979.tree_map)
};
cljs.core.PersistentTreeSet.prototype.cljs$core$ISet$_disjoin$arity$2 = function(coll, v) {
var this__10980 = this;
return new cljs.core.PersistentTreeSet(this__10980.meta, cljs.core.dissoc.call(null, this__10980.tree_map, v), null)
};
cljs.core.PersistentTreeSet.prototype.cljs$core$ICounted$_count$arity$1 = function(coll) {
var this__10981 = this;
return cljs.core.count.call(null, this__10981.tree_map)
};
cljs.core.PersistentTreeSet.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var this__10982 = this;
var and__3822__auto____10983 = cljs.core.set_QMARK_.call(null, other);
if(and__3822__auto____10983) {
var and__3822__auto____10984 = cljs.core.count.call(null, coll) === cljs.core.count.call(null, other);
if(and__3822__auto____10984) {
return cljs.core.every_QMARK_.call(null, function(p1__10938_SHARP_) {
return cljs.core.contains_QMARK_.call(null, coll, p1__10938_SHARP_)
}, other)
}else {
return and__3822__auto____10984
}
}else {
return and__3822__auto____10983
}
};
cljs.core.PersistentTreeSet.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(coll, meta) {
var this__10985 = this;
return new cljs.core.PersistentTreeSet(meta, this__10985.tree_map, this__10985.__hash)
};
cljs.core.PersistentTreeSet.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var this__10986 = this;
return this__10986.meta
};
cljs.core.PersistentTreeSet.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var this__10987 = this;
return cljs.core.with_meta.call(null, cljs.core.PersistentTreeSet.EMPTY, this__10987.meta)
};
cljs.core.PersistentTreeSet;
cljs.core.PersistentTreeSet.EMPTY = new cljs.core.PersistentTreeSet(null, cljs.core.sorted_map.call(null), 0);
cljs.core.hash_set = function() {
var hash_set = null;
var hash_set__0 = function() {
return cljs.core.PersistentHashSet.EMPTY
};
var hash_set__1 = function() {
var G__10993__delegate = function(keys) {
var in__10991 = cljs.core.seq.call(null, keys);
var out__10992 = cljs.core.transient$.call(null, cljs.core.PersistentHashSet.EMPTY);
while(true) {
if(cljs.core.seq.call(null, in__10991)) {
var G__10994 = cljs.core.next.call(null, in__10991);
var G__10995 = cljs.core.conj_BANG_.call(null, out__10992, cljs.core.first.call(null, in__10991));
in__10991 = G__10994;
out__10992 = G__10995;
continue
}else {
return cljs.core.persistent_BANG_.call(null, out__10992)
}
break
}
};
var G__10993 = function(var_args) {
var keys = null;
if(goog.isDef(var_args)) {
keys = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0), 0)
}
return G__10993__delegate.call(this, keys)
};
G__10993.cljs$lang$maxFixedArity = 0;
G__10993.cljs$lang$applyTo = function(arglist__10996) {
var keys = cljs.core.seq(arglist__10996);
return G__10993__delegate(keys)
};
G__10993.cljs$lang$arity$variadic = G__10993__delegate;
return G__10993
}();
hash_set = function(var_args) {
var keys = var_args;
switch(arguments.length) {
case 0:
return hash_set__0.call(this);
default:
return hash_set__1.cljs$lang$arity$variadic(cljs.core.array_seq(arguments, 0))
}
throw"Invalid arity: " + arguments.length;
};
hash_set.cljs$lang$maxFixedArity = 0;
hash_set.cljs$lang$applyTo = hash_set__1.cljs$lang$applyTo;
hash_set.cljs$lang$arity$0 = hash_set__0;
hash_set.cljs$lang$arity$variadic = hash_set__1.cljs$lang$arity$variadic;
return hash_set
}();
cljs.core.set = function set(coll) {
return cljs.core.apply.call(null, cljs.core.hash_set, coll)
};
cljs.core.sorted_set = function() {
var sorted_set__delegate = function(keys) {
return cljs.core.reduce.call(null, cljs.core._conj, cljs.core.PersistentTreeSet.EMPTY, keys)
};
var sorted_set = function(var_args) {
var keys = null;
if(goog.isDef(var_args)) {
keys = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0), 0)
}
return sorted_set__delegate.call(this, keys)
};
sorted_set.cljs$lang$maxFixedArity = 0;
sorted_set.cljs$lang$applyTo = function(arglist__10997) {
var keys = cljs.core.seq(arglist__10997);
return sorted_set__delegate(keys)
};
sorted_set.cljs$lang$arity$variadic = sorted_set__delegate;
return sorted_set
}();
cljs.core.sorted_set_by = function() {
var sorted_set_by__delegate = function(comparator, keys) {
return cljs.core.reduce.call(null, cljs.core._conj, new cljs.core.PersistentTreeSet(null, cljs.core.sorted_map_by.call(null, comparator), 0), keys)
};
var sorted_set_by = function(comparator, var_args) {
var keys = null;
if(goog.isDef(var_args)) {
keys = cljs.core.array_seq(Array.prototype.slice.call(arguments, 1), 0)
}
return sorted_set_by__delegate.call(this, comparator, keys)
};
sorted_set_by.cljs$lang$maxFixedArity = 1;
sorted_set_by.cljs$lang$applyTo = function(arglist__10999) {
var comparator = cljs.core.first(arglist__10999);
var keys = cljs.core.rest(arglist__10999);
return sorted_set_by__delegate(comparator, keys)
};
sorted_set_by.cljs$lang$arity$variadic = sorted_set_by__delegate;
return sorted_set_by
}();
cljs.core.replace = function replace(smap, coll) {
if(cljs.core.vector_QMARK_.call(null, coll)) {
var n__11005 = cljs.core.count.call(null, coll);
return cljs.core.reduce.call(null, function(v, i) {
var temp__3971__auto____11006 = cljs.core.find.call(null, smap, cljs.core.nth.call(null, v, i));
if(cljs.core.truth_(temp__3971__auto____11006)) {
var e__11007 = temp__3971__auto____11006;
return cljs.core.assoc.call(null, v, i, cljs.core.second.call(null, e__11007))
}else {
return v
}
}, coll, cljs.core.take.call(null, n__11005, cljs.core.iterate.call(null, cljs.core.inc, 0)))
}else {
return cljs.core.map.call(null, function(p1__10998_SHARP_) {
var temp__3971__auto____11008 = cljs.core.find.call(null, smap, p1__10998_SHARP_);
if(cljs.core.truth_(temp__3971__auto____11008)) {
var e__11009 = temp__3971__auto____11008;
return cljs.core.second.call(null, e__11009)
}else {
return p1__10998_SHARP_
}
}, coll)
}
};
cljs.core.distinct = function distinct(coll) {
var step__11039 = function step(xs, seen) {
return new cljs.core.LazySeq(null, false, function() {
return function(p__11032, seen) {
while(true) {
var vec__11033__11034 = p__11032;
var f__11035 = cljs.core.nth.call(null, vec__11033__11034, 0, null);
var xs__11036 = vec__11033__11034;
var temp__3974__auto____11037 = cljs.core.seq.call(null, xs__11036);
if(temp__3974__auto____11037) {
var s__11038 = temp__3974__auto____11037;
if(cljs.core.contains_QMARK_.call(null, seen, f__11035)) {
var G__11040 = cljs.core.rest.call(null, s__11038);
var G__11041 = seen;
p__11032 = G__11040;
seen = G__11041;
continue
}else {
return cljs.core.cons.call(null, f__11035, step.call(null, cljs.core.rest.call(null, s__11038), cljs.core.conj.call(null, seen, f__11035)))
}
}else {
return null
}
break
}
}.call(null, xs, seen)
}, null)
};
return step__11039.call(null, coll, cljs.core.PersistentHashSet.EMPTY)
};
cljs.core.butlast = function butlast(s) {
var ret__11044 = cljs.core.PersistentVector.EMPTY;
var s__11045 = s;
while(true) {
if(cljs.core.next.call(null, s__11045)) {
var G__11046 = cljs.core.conj.call(null, ret__11044, cljs.core.first.call(null, s__11045));
var G__11047 = cljs.core.next.call(null, s__11045);
ret__11044 = G__11046;
s__11045 = G__11047;
continue
}else {
return cljs.core.seq.call(null, ret__11044)
}
break
}
};
cljs.core.name = function name(x) {
if(cljs.core.string_QMARK_.call(null, x)) {
return x
}else {
if(function() {
var or__3824__auto____11050 = cljs.core.keyword_QMARK_.call(null, x);
if(or__3824__auto____11050) {
return or__3824__auto____11050
}else {
return cljs.core.symbol_QMARK_.call(null, x)
}
}()) {
var i__11051 = x.lastIndexOf("/");
if(i__11051 < 0) {
return cljs.core.subs.call(null, x, 2)
}else {
return cljs.core.subs.call(null, x, i__11051 + 1)
}
}else {
if("\ufdd0'else") {
throw new Error([cljs.core.str("Doesn't support name: "), cljs.core.str(x)].join(""));
}else {
return null
}
}
}
};
cljs.core.namespace = function namespace(x) {
if(function() {
var or__3824__auto____11054 = cljs.core.keyword_QMARK_.call(null, x);
if(or__3824__auto____11054) {
return or__3824__auto____11054
}else {
return cljs.core.symbol_QMARK_.call(null, x)
}
}()) {
var i__11055 = x.lastIndexOf("/");
if(i__11055 > -1) {
return cljs.core.subs.call(null, x, 2, i__11055)
}else {
return null
}
}else {
throw new Error([cljs.core.str("Doesn't support namespace: "), cljs.core.str(x)].join(""));
}
};
cljs.core.zipmap = function zipmap(keys, vals) {
var map__11062 = cljs.core.ObjMap.EMPTY;
var ks__11063 = cljs.core.seq.call(null, keys);
var vs__11064 = cljs.core.seq.call(null, vals);
while(true) {
if(function() {
var and__3822__auto____11065 = ks__11063;
if(and__3822__auto____11065) {
return vs__11064
}else {
return and__3822__auto____11065
}
}()) {
var G__11066 = cljs.core.assoc.call(null, map__11062, cljs.core.first.call(null, ks__11063), cljs.core.first.call(null, vs__11064));
var G__11067 = cljs.core.next.call(null, ks__11063);
var G__11068 = cljs.core.next.call(null, vs__11064);
map__11062 = G__11066;
ks__11063 = G__11067;
vs__11064 = G__11068;
continue
}else {
return map__11062
}
break
}
};
cljs.core.max_key = function() {
var max_key = null;
var max_key__2 = function(k, x) {
return x
};
var max_key__3 = function(k, x, y) {
if(k.call(null, x) > k.call(null, y)) {
return x
}else {
return y
}
};
var max_key__4 = function() {
var G__11071__delegate = function(k, x, y, more) {
return cljs.core.reduce.call(null, function(p1__11056_SHARP_, p2__11057_SHARP_) {
return max_key.call(null, k, p1__11056_SHARP_, p2__11057_SHARP_)
}, max_key.call(null, k, x, y), more)
};
var G__11071 = 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__11071__delegate.call(this, k, x, y, more)
};
G__11071.cljs$lang$maxFixedArity = 3;
G__11071.cljs$lang$applyTo = function(arglist__11072) {
var k = cljs.core.first(arglist__11072);
var x = cljs.core.first(cljs.core.next(arglist__11072));
var y = cljs.core.first(cljs.core.next(cljs.core.next(arglist__11072)));
var more = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__11072)));
return G__11071__delegate(k, x, y, more)
};
G__11071.cljs$lang$arity$variadic = G__11071__delegate;
return G__11071
}();
max_key = function(k, x, y, var_args) {
var more = var_args;
switch(arguments.length) {
case 2:
return max_key__2.call(this, k, x);
case 3:
return max_key__3.call(this, k, x, y);
default:
return max_key__4.cljs$lang$arity$variadic(k, x, y, cljs.core.array_seq(arguments, 3))
}
throw"Invalid arity: " + arguments.length;
};
max_key.cljs$lang$maxFixedArity = 3;
max_key.cljs$lang$applyTo = max_key__4.cljs$lang$applyTo;
max_key.cljs$lang$arity$2 = max_key__2;
max_key.cljs$lang$arity$3 = max_key__3;
max_key.cljs$lang$arity$variadic = max_key__4.cljs$lang$arity$variadic;
return max_key
}();
cljs.core.min_key = function() {
var min_key = null;
var min_key__2 = function(k, x) {
return x
};
var min_key__3 = function(k, x, y) {
if(k.call(null, x) < k.call(null, y)) {
return x
}else {
return y
}
};
var min_key__4 = function() {
var G__11073__delegate = function(k, x, y, more) {
return cljs.core.reduce.call(null, function(p1__11069_SHARP_, p2__11070_SHARP_) {
return min_key.call(null, k, p1__11069_SHARP_, p2__11070_SHARP_)
}, min_key.call(null, k, x, y), more)
};
var G__11073 = 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__11073__delegate.call(this, k, x, y, more)
};
G__11073.cljs$lang$maxFixedArity = 3;
G__11073.cljs$lang$applyTo = function(arglist__11074) {
var k = cljs.core.first(arglist__11074);
var x = cljs.core.first(cljs.core.next(arglist__11074));
var y = cljs.core.first(cljs.core.next(cljs.core.next(arglist__11074)));
var more = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__11074)));
return G__11073__delegate(k, x, y, more)
};
G__11073.cljs$lang$arity$variadic = G__11073__delegate;
return G__11073
}();
min_key = function(k, x, y, var_args) {
var more = var_args;
switch(arguments.length) {
case 2:
return min_key__2.call(this, k, x);
case 3:
return min_key__3.call(this, k, x, y);
default:
return min_key__4.cljs$lang$arity$variadic(k, x, y, cljs.core.array_seq(arguments, 3))
}
throw"Invalid arity: " + arguments.length;
};
min_key.cljs$lang$maxFixedArity = 3;
min_key.cljs$lang$applyTo = min_key__4.cljs$lang$applyTo;
min_key.cljs$lang$arity$2 = min_key__2;
min_key.cljs$lang$arity$3 = min_key__3;
min_key.cljs$lang$arity$variadic = min_key__4.cljs$lang$arity$variadic;
return min_key
}();
cljs.core.partition_all = function() {
var partition_all = null;
var partition_all__2 = function(n, coll) {
return partition_all.call(null, n, n, coll)
};
var partition_all__3 = function(n, step, coll) {
return new cljs.core.LazySeq(null, false, function() {
var temp__3974__auto____11077 = cljs.core.seq.call(null, coll);
if(temp__3974__auto____11077) {
var s__11078 = temp__3974__auto____11077;
return cljs.core.cons.call(null, cljs.core.take.call(null, n, s__11078), partition_all.call(null, n, step, cljs.core.drop.call(null, step, s__11078)))
}else {
return null
}
}, null)
};
partition_all = function(n, step, coll) {
switch(arguments.length) {
case 2:
return partition_all__2.call(this, n, step);
case 3:
return partition_all__3.call(this, n, step, coll)
}
throw"Invalid arity: " + arguments.length;
};
partition_all.cljs$lang$arity$2 = partition_all__2;
partition_all.cljs$lang$arity$3 = partition_all__3;
return partition_all
}();
cljs.core.take_while = function take_while(pred, coll) {
return new cljs.core.LazySeq(null, false, function() {
var temp__3974__auto____11081 = cljs.core.seq.call(null, coll);
if(temp__3974__auto____11081) {
var s__11082 = temp__3974__auto____11081;
if(cljs.core.truth_(pred.call(null, cljs.core.first.call(null, s__11082)))) {
return cljs.core.cons.call(null, cljs.core.first.call(null, s__11082), take_while.call(null, pred, cljs.core.rest.call(null, s__11082)))
}else {
return null
}
}else {
return null
}
}, null)
};
cljs.core.mk_bound_fn = function mk_bound_fn(sc, test, key) {
return function(e) {
var comp__11084 = cljs.core._comparator.call(null, sc);
return test.call(null, comp__11084.call(null, cljs.core._entry_key.call(null, sc, e), key), 0)
}
};
cljs.core.subseq = function() {
var subseq = null;
var subseq__3 = function(sc, test, key) {
var include__11096 = cljs.core.mk_bound_fn.call(null, sc, test, key);
if(cljs.core.truth_(cljs.core.PersistentHashSet.fromArray([cljs.core._GT_, cljs.core._GT__EQ_]).call(null, test))) {
var temp__3974__auto____11097 = cljs.core._sorted_seq_from.call(null, sc, key, true);
if(cljs.core.truth_(temp__3974__auto____11097)) {
var vec__11098__11099 = temp__3974__auto____11097;
var e__11100 = cljs.core.nth.call(null, vec__11098__11099, 0, null);
var s__11101 = vec__11098__11099;
if(cljs.core.truth_(include__11096.call(null, e__11100))) {
return s__11101
}else {
return cljs.core.next.call(null, s__11101)
}
}else {
return null
}
}else {
return cljs.core.take_while.call(null, include__11096, cljs.core._sorted_seq.call(null, sc, true))
}
};
var subseq__5 = function(sc, start_test, start_key, end_test, end_key) {
var temp__3974__auto____11102 = cljs.core._sorted_seq_from.call(null, sc, start_key, true);
if(cljs.core.truth_(temp__3974__auto____11102)) {
var vec__11103__11104 = temp__3974__auto____11102;
var e__11105 = cljs.core.nth.call(null, vec__11103__11104, 0, null);
var s__11106 = vec__11103__11104;
return cljs.core.take_while.call(null, cljs.core.mk_bound_fn.call(null, sc, end_test, end_key), cljs.core.truth_(cljs.core.mk_bound_fn.call(null, sc, start_test, start_key).call(null, e__11105)) ? s__11106 : cljs.core.next.call(null, s__11106))
}else {
return null
}
};
subseq = function(sc, start_test, start_key, end_test, end_key) {
switch(arguments.length) {
case 3:
return subseq__3.call(this, sc, start_test, start_key);
case 5:
return subseq__5.call(this, sc, start_test, start_key, end_test, end_key)
}
throw"Invalid arity: " + arguments.length;
};
subseq.cljs$lang$arity$3 = subseq__3;
subseq.cljs$lang$arity$5 = subseq__5;
return subseq
}();
cljs.core.rsubseq = function() {
var rsubseq = null;
var rsubseq__3 = function(sc, test, key) {
var include__11118 = cljs.core.mk_bound_fn.call(null, sc, test, key);
if(cljs.core.truth_(cljs.core.PersistentHashSet.fromArray([cljs.core._LT_, cljs.core._LT__EQ_]).call(null, test))) {
var temp__3974__auto____11119 = cljs.core._sorted_seq_from.call(null, sc, key, false);
if(cljs.core.truth_(temp__3974__auto____11119)) {
var vec__11120__11121 = temp__3974__auto____11119;
var e__11122 = cljs.core.nth.call(null, vec__11120__11121, 0, null);
var s__11123 = vec__11120__11121;
if(cljs.core.truth_(include__11118.call(null, e__11122))) {
return s__11123
}else {
return cljs.core.next.call(null, s__11123)
}
}else {
return null
}
}else {
return cljs.core.take_while.call(null, include__11118, cljs.core._sorted_seq.call(null, sc, false))
}
};
var rsubseq__5 = function(sc, start_test, start_key, end_test, end_key) {
var temp__3974__auto____11124 = cljs.core._sorted_seq_from.call(null, sc, end_key, false);
if(cljs.core.truth_(temp__3974__auto____11124)) {
var vec__11125__11126 = temp__3974__auto____11124;
var e__11127 = cljs.core.nth.call(null, vec__11125__11126, 0, null);
var s__11128 = vec__11125__11126;
return cljs.core.take_while.call(null, cljs.core.mk_bound_fn.call(null, sc, start_test, start_key), cljs.core.truth_(cljs.core.mk_bound_fn.call(null, sc, end_test, end_key).call(null, e__11127)) ? s__11128 : cljs.core.next.call(null, s__11128))
}else {
return null
}
};
rsubseq = function(sc, start_test, start_key, end_test, end_key) {
switch(arguments.length) {
case 3:
return rsubseq__3.call(this, sc, start_test, start_key);
case 5:
return rsubseq__5.call(this, sc, start_test, start_key, end_test, end_key)
}
throw"Invalid arity: " + arguments.length;
};
rsubseq.cljs$lang$arity$3 = rsubseq__3;
rsubseq.cljs$lang$arity$5 = rsubseq__5;
return rsubseq
}();
cljs.core.Range = function(meta, start, end, step, __hash) {
this.meta = meta;
this.start = start;
this.end = end;
this.step = step;
this.__hash = __hash;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 32375006
};
cljs.core.Range.cljs$lang$type = true;
cljs.core.Range.cljs$lang$ctorPrSeq = function(this__2333__auto__) {
return cljs.core.list.call(null, "cljs.core/Range")
};
cljs.core.Range.prototype.cljs$core$IHash$_hash$arity$1 = function(rng) {
var this__11129 = this;
var h__2216__auto____11130 = this__11129.__hash;
if(!(h__2216__auto____11130 == null)) {
return h__2216__auto____11130
}else {
var h__2216__auto____11131 = cljs.core.hash_coll.call(null, rng);
this__11129.__hash = h__2216__auto____11131;
return h__2216__auto____11131
}
};
cljs.core.Range.prototype.cljs$core$INext$_next$arity$1 = function(rng) {
var this__11132 = this;
if(this__11132.step > 0) {
if(this__11132.start + this__11132.step < this__11132.end) {
return new cljs.core.Range(this__11132.meta, this__11132.start + this__11132.step, this__11132.end, this__11132.step, null)
}else {
return null
}
}else {
if(this__11132.start + this__11132.step > this__11132.end) {
return new cljs.core.Range(this__11132.meta, this__11132.start + this__11132.step, this__11132.end, this__11132.step, null)
}else {
return null
}
}
};
cljs.core.Range.prototype.cljs$core$ICollection$_conj$arity$2 = function(rng, o) {
var this__11133 = this;
return cljs.core.cons.call(null, o, rng)
};
cljs.core.Range.prototype.toString = function() {
var this__11134 = this;
var this__11135 = this;
return cljs.core.pr_str.call(null, this__11135)
};
cljs.core.Range.prototype.cljs$core$IReduce$_reduce$arity$2 = function(rng, f) {
var this__11136 = this;
return cljs.core.ci_reduce.call(null, rng, f)
};
cljs.core.Range.prototype.cljs$core$IReduce$_reduce$arity$3 = function(rng, f, s) {
var this__11137 = this;
return cljs.core.ci_reduce.call(null, rng, f, s)
};
cljs.core.Range.prototype.cljs$core$ISeqable$_seq$arity$1 = function(rng) {
var this__11138 = this;
if(this__11138.step > 0) {
if(this__11138.start < this__11138.end) {
return rng
}else {
return null
}
}else {
if(this__11138.start > this__11138.end) {
return rng
}else {
return null
}
}
};
cljs.core.Range.prototype.cljs$core$ICounted$_count$arity$1 = function(rng) {
var this__11139 = this;
if(cljs.core.not.call(null, rng.cljs$core$ISeqable$_seq$arity$1(rng))) {
return 0
}else {
return Math.ceil((this__11139.end - this__11139.start) / this__11139.step)
}
};
cljs.core.Range.prototype.cljs$core$ISeq$_first$arity$1 = function(rng) {
var this__11140 = this;
return this__11140.start
};
cljs.core.Range.prototype.cljs$core$ISeq$_rest$arity$1 = function(rng) {
var this__11141 = this;
if(!(rng.cljs$core$ISeqable$_seq$arity$1(rng) == null)) {
return new cljs.core.Range(this__11141.meta, this__11141.start + this__11141.step, this__11141.end, this__11141.step, null)
}else {
return cljs.core.List.EMPTY
}
};
cljs.core.Range.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(rng, other) {
var this__11142 = this;
return cljs.core.equiv_sequential.call(null, rng, other)
};
cljs.core.Range.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(rng, meta) {
var this__11143 = this;
return new cljs.core.Range(meta, this__11143.start, this__11143.end, this__11143.step, this__11143.__hash)
};
cljs.core.Range.prototype.cljs$core$IMeta$_meta$arity$1 = function(rng) {
var this__11144 = this;
return this__11144.meta
};
cljs.core.Range.prototype.cljs$core$IIndexed$_nth$arity$2 = function(rng, n) {
var this__11145 = this;
if(n < rng.cljs$core$ICounted$_count$arity$1(rng)) {
return this__11145.start + n * this__11145.step
}else {
if(function() {
var and__3822__auto____11146 = this__11145.start > this__11145.end;
if(and__3822__auto____11146) {
return this__11145.step === 0
}else {
return and__3822__auto____11146
}
}()) {
return this__11145.start
}else {
throw new Error("Index out of bounds");
}
}
};
cljs.core.Range.prototype.cljs$core$IIndexed$_nth$arity$3 = function(rng, n, not_found) {
var this__11147 = this;
if(n < rng.cljs$core$ICounted$_count$arity$1(rng)) {
return this__11147.start + n * this__11147.step
}else {
if(function() {
var and__3822__auto____11148 = this__11147.start > this__11147.end;
if(and__3822__auto____11148) {
return this__11147.step === 0
}else {
return and__3822__auto____11148
}
}()) {
return this__11147.start
}else {
return not_found
}
}
};
cljs.core.Range.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(rng) {
var this__11149 = this;
return cljs.core.with_meta.call(null, cljs.core.List.EMPTY, this__11149.meta)
};
cljs.core.Range;
cljs.core.range = function() {
var range = null;
var range__0 = function() {
return range.call(null, 0, Number.MAX_VALUE, 1)
};
var range__1 = function(end) {
return range.call(null, 0, end, 1)
};
var range__2 = function(start, end) {
return range.call(null, start, end, 1)
};
var range__3 = function(start, end, step) {
return new cljs.core.Range(null, start, end, step, null)
};
range = function(start, end, step) {
switch(arguments.length) {
case 0:
return range__0.call(this);
case 1:
return range__1.call(this, start);
case 2:
return range__2.call(this, start, end);
case 3:
return range__3.call(this, start, end, step)
}
throw"Invalid arity: " + arguments.length;
};
range.cljs$lang$arity$0 = range__0;
range.cljs$lang$arity$1 = range__1;
range.cljs$lang$arity$2 = range__2;
range.cljs$lang$arity$3 = range__3;
return range
}();
cljs.core.take_nth = function take_nth(n, coll) {
return new cljs.core.LazySeq(null, false, function() {
var temp__3974__auto____11152 = cljs.core.seq.call(null, coll);
if(temp__3974__auto____11152) {
var s__11153 = temp__3974__auto____11152;
return cljs.core.cons.call(null, cljs.core.first.call(null, s__11153), take_nth.call(null, n, cljs.core.drop.call(null, n, s__11153)))
}else {
return null
}
}, null)
};
cljs.core.split_with = function split_with(pred, coll) {
return cljs.core.PersistentVector.fromArray([cljs.core.take_while.call(null, pred, coll), cljs.core.drop_while.call(null, pred, coll)], true)
};
cljs.core.partition_by = function partition_by(f, coll) {
return new cljs.core.LazySeq(null, false, function() {
var temp__3974__auto____11160 = cljs.core.seq.call(null, coll);
if(temp__3974__auto____11160) {
var s__11161 = temp__3974__auto____11160;
var fst__11162 = cljs.core.first.call(null, s__11161);
var fv__11163 = f.call(null, fst__11162);
var run__11164 = cljs.core.cons.call(null, fst__11162, cljs.core.take_while.call(null, function(p1__11154_SHARP_) {
return cljs.core._EQ_.call(null, fv__11163, f.call(null, p1__11154_SHARP_))
}, cljs.core.next.call(null, s__11161)));
return cljs.core.cons.call(null, run__11164, partition_by.call(null, f, cljs.core.seq.call(null, cljs.core.drop.call(null, cljs.core.count.call(null, run__11164), s__11161))))
}else {
return null
}
}, null)
};
cljs.core.frequencies = function frequencies(coll) {
return cljs.core.persistent_BANG_.call(null, cljs.core.reduce.call(null, function(counts, x) {
return cljs.core.assoc_BANG_.call(null, counts, x, cljs.core._lookup.call(null, counts, x, 0) + 1)
}, cljs.core.transient$.call(null, cljs.core.ObjMap.EMPTY), coll))
};
cljs.core.reductions = function() {
var reductions = null;
var reductions__2 = function(f, coll) {
return new cljs.core.LazySeq(null, false, function() {
var temp__3971__auto____11179 = cljs.core.seq.call(null, coll);
if(temp__3971__auto____11179) {
var s__11180 = temp__3971__auto____11179;
return reductions.call(null, f, cljs.core.first.call(null, s__11180), cljs.core.rest.call(null, s__11180))
}else {
return cljs.core.list.call(null, f.call(null))
}
}, null)
};
var reductions__3 = function(f, init, coll) {
return cljs.core.cons.call(null, init, new cljs.core.LazySeq(null, false, function() {
var temp__3974__auto____11181 = cljs.core.seq.call(null, coll);
if(temp__3974__auto____11181) {
var s__11182 = temp__3974__auto____11181;
return reductions.call(null, f, f.call(null, init, cljs.core.first.call(null, s__11182)), cljs.core.rest.call(null, s__11182))
}else {
return null
}
}, null))
};
reductions = function(f, init, coll) {
switch(arguments.length) {
case 2:
return reductions__2.call(this, f, init);
case 3:
return reductions__3.call(this, f, init, coll)
}
throw"Invalid arity: " + arguments.length;
};
reductions.cljs$lang$arity$2 = reductions__2;
reductions.cljs$lang$arity$3 = reductions__3;
return reductions
}();
cljs.core.juxt = function() {
var juxt = null;
var juxt__1 = function(f) {
return function() {
var G__11185 = null;
var G__11185__0 = function() {
return cljs.core.vector.call(null, f.call(null))
};
var G__11185__1 = function(x) {
return cljs.core.vector.call(null, f.call(null, x))
};
var G__11185__2 = function(x, y) {
return cljs.core.vector.call(null, f.call(null, x, y))
};
var G__11185__3 = function(x, y, z) {
return cljs.core.vector.call(null, f.call(null, x, y, z))
};
var G__11185__4 = function() {
var G__11186__delegate = function(x, y, z, args) {
return cljs.core.vector.call(null, cljs.core.apply.call(null, f, x, y, z, args))
};
var G__11186 = 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__11186__delegate.call(this, x, y, z, args)
};
G__11186.cljs$lang$maxFixedArity = 3;
G__11186.cljs$lang$applyTo = function(arglist__11187) {
var x = cljs.core.first(arglist__11187);
var y = cljs.core.first(cljs.core.next(arglist__11187));
var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__11187)));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__11187)));
return G__11186__delegate(x, y, z, args)
};
G__11186.cljs$lang$arity$variadic = G__11186__delegate;
return G__11186
}();
G__11185 = function(x, y, z, var_args) {
var args = var_args;
switch(arguments.length) {
case 0:
return G__11185__0.call(this);
case 1:
return G__11185__1.call(this, x);
case 2:
return G__11185__2.call(this, x, y);
case 3:
return G__11185__3.call(this, x, y, z);
default:
return G__11185__4.cljs$lang$arity$variadic(x, y, z, cljs.core.array_seq(arguments, 3))
}
throw"Invalid arity: " + arguments.length;
};
G__11185.cljs$lang$maxFixedArity = 3;
G__11185.cljs$lang$applyTo = G__11185__4.cljs$lang$applyTo;
return G__11185
}()
};
var juxt__2 = function(f, g) {
return function() {
var G__11188 = null;
var G__11188__0 = function() {
return cljs.core.vector.call(null, f.call(null), g.call(null))
};
var G__11188__1 = function(x) {
return cljs.core.vector.call(null, f.call(null, x), g.call(null, x))
};
var G__11188__2 = function(x, y) {
return cljs.core.vector.call(null, f.call(null, x, y), g.call(null, x, y))
};
var G__11188__3 = function(x, y, z) {
return cljs.core.vector.call(null, f.call(null, x, y, z), g.call(null, x, y, z))
};
var G__11188__4 = function() {
var G__11189__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__11189 = 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__11189__delegate.call(this, x, y, z, args)
};
G__11189.cljs$lang$maxFixedArity = 3;
G__11189.cljs$lang$applyTo = function(arglist__11190) {
var x = cljs.core.first(arglist__11190);
var y = cljs.core.first(cljs.core.next(arglist__11190));
var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__11190)));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__11190)));
return G__11189__delegate(x, y, z, args)
};
G__11189.cljs$lang$arity$variadic = G__11189__delegate;
return G__11189
}();
G__11188 = function(x, y, z, var_args) {
var args = var_args;
switch(arguments.length) {
case 0:
return G__11188__0.call(this);
case 1:
return G__11188__1.call(this, x);
case 2:
return G__11188__2.call(this, x, y);
case 3:
return G__11188__3.call(this, x, y, z);
default:
return G__11188__4.cljs$lang$arity$variadic(x, y, z, cljs.core.array_seq(arguments, 3))
}
throw"Invalid arity: " + arguments.length;
};
G__11188.cljs$lang$maxFixedArity = 3;
G__11188.cljs$lang$applyTo = G__11188__4.cljs$lang$applyTo;
return G__11188
}()
};
var juxt__3 = function(f, g, h) {
return function() {
var G__11191 = null;
var G__11191__0 = function() {
return cljs.core.vector.call(null, f.call(null), g.call(null), h.call(null))
};
var G__11191__1 = function(x) {
return cljs.core.vector.call(null, f.call(null, x), g.call(null, x), h.call(null, x))
};
var G__11191__2 = 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__11191__3 = 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__11191__4 = function() {
var G__11192__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__11192 = 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__11192__delegate.call(this, x, y, z, args)
};
G__11192.cljs$lang$maxFixedArity = 3;
G__11192.cljs$lang$applyTo = function(arglist__11193) {
var x = cljs.core.first(arglist__11193);
var y = cljs.core.first(cljs.core.next(arglist__11193));
var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__11193)));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__11193)));
return G__11192__delegate(x, y, z, args)
};
G__11192.cljs$lang$arity$variadic = G__11192__delegate;
return G__11192
}();
G__11191 = function(x, y, z, var_args) {
var args = var_args;
switch(arguments.length) {
case 0:
return G__11191__0.call(this);
case 1:
return G__11191__1.call(this, x);
case 2:
return G__11191__2.call(this, x, y);
case 3:
return G__11191__3.call(this, x, y, z);
default:
return G__11191__4.cljs$lang$arity$variadic(x, y, z, cljs.core.array_seq(arguments, 3))
}
throw"Invalid arity: " + arguments.length;
};
G__11191.cljs$lang$maxFixedArity = 3;
G__11191.cljs$lang$applyTo = G__11191__4.cljs$lang$applyTo;
return G__11191
}()
};
var juxt__4 = function() {
var G__11194__delegate = function(f, g, h, fs) {
var fs__11184 = cljs.core.list_STAR_.call(null, f, g, h, fs);
return function() {
var G__11195 = null;
var G__11195__0 = function() {
return cljs.core.reduce.call(null, function(p1__11165_SHARP_, p2__11166_SHARP_) {
return cljs.core.conj.call(null, p1__11165_SHARP_, p2__11166_SHARP_.call(null))
}, cljs.core.PersistentVector.EMPTY, fs__11184)
};
var G__11195__1 = function(x) {
return cljs.core.reduce.call(null, function(p1__11167_SHARP_, p2__11168_SHARP_) {
return cljs.core.conj.call(null, p1__11167_SHARP_, p2__11168_SHARP_.call(null, x))
}, cljs.core.PersistentVector.EMPTY, fs__11184)
};
var G__11195__2 = function(x, y) {
return cljs.core.reduce.call(null, function(p1__11169_SHARP_, p2__11170_SHARP_) {
return cljs.core.conj.call(null, p1__11169_SHARP_, p2__11170_SHARP_.call(null, x, y))
}, cljs.core.PersistentVector.EMPTY, fs__11184)
};
var G__11195__3 = function(x, y, z) {
return cljs.core.reduce.call(null, function(p1__11171_SHARP_, p2__11172_SHARP_) {
return cljs.core.conj.call(null, p1__11171_SHARP_, p2__11172_SHARP_.call(null, x, y, z))
}, cljs.core.PersistentVector.EMPTY, fs__11184)
};
var G__11195__4 = function() {
var G__11196__delegate = function(x, y, z, args) {
return cljs.core.reduce.call(null, function(p1__11173_SHARP_, p2__11174_SHARP_) {
return cljs.core.conj.call(null, p1__11173_SHARP_, cljs.core.apply.call(null, p2__11174_SHARP_, x, y, z, args))
}, cljs.core.PersistentVector.EMPTY, fs__11184)
};
var G__11196 = 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__11196__delegate.call(this, x, y, z, args)
};
G__11196.cljs$lang$maxFixedArity = 3;
G__11196.cljs$lang$applyTo = function(arglist__11197) {
var x = cljs.core.first(arglist__11197);
var y = cljs.core.first(cljs.core.next(arglist__11197));
var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__11197)));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__11197)));
return G__11196__delegate(x, y, z, args)
};
G__11196.cljs$lang$arity$variadic = G__11196__delegate;
return G__11196
}();
G__11195 = function(x, y, z, var_args) {
var args = var_args;
switch(arguments.length) {
case 0:
return G__11195__0.call(this);
case 1:
return G__11195__1.call(this, x);
case 2:
return G__11195__2.call(this, x, y);
case 3:
return G__11195__3.call(this, x, y, z);
default:
return G__11195__4.cljs$lang$arity$variadic(x, y, z, cljs.core.array_seq(arguments, 3))
}
throw"Invalid arity: " + arguments.length;
};
G__11195.cljs$lang$maxFixedArity = 3;
G__11195.cljs$lang$applyTo = G__11195__4.cljs$lang$applyTo;
return G__11195
}()
};
var G__11194 = 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__11194__delegate.call(this, f, g, h, fs)
};
G__11194.cljs$lang$maxFixedArity = 3;
G__11194.cljs$lang$applyTo = function(arglist__11198) {
var f = cljs.core.first(arglist__11198);
var g = cljs.core.first(cljs.core.next(arglist__11198));
var h = cljs.core.first(cljs.core.next(cljs.core.next(arglist__11198)));
var fs = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__11198)));
return G__11194__delegate(f, g, h, fs)
};
G__11194.cljs$lang$arity$variadic = G__11194__delegate;
return G__11194
}();
juxt = function(f, g, h, var_args) {
var fs = var_args;
switch(arguments.length) {
case 1:
return juxt__1.call(this, f);
case 2:
return juxt__2.call(this, f, g);
case 3:
return juxt__3.call(this, f, g, h);
default:
return juxt__4.cljs$lang$arity$variadic(f, g, h, cljs.core.array_seq(arguments, 3))
}
throw"Invalid arity: " + arguments.length;
};
juxt.cljs$lang$maxFixedArity = 3;
juxt.cljs$lang$applyTo = juxt__4.cljs$lang$applyTo;
juxt.cljs$lang$arity$1 = juxt__1;
juxt.cljs$lang$arity$2 = juxt__2;
juxt.cljs$lang$arity$3 = juxt__3;
juxt.cljs$lang$arity$variadic = juxt__4.cljs$lang$arity$variadic;
return juxt
}();
cljs.core.dorun = function() {
var dorun = null;
var dorun__1 = function(coll) {
while(true) {
if(cljs.core.seq.call(null, coll)) {
var G__11201 = cljs.core.next.call(null, coll);
coll = G__11201;
continue
}else {
return null
}
break
}
};
var dorun__2 = function(n, coll) {
while(true) {
if(cljs.core.truth_(function() {
var and__3822__auto____11200 = cljs.core.seq.call(null, coll);
if(and__3822__auto____11200) {
return n > 0
}else {
return and__3822__auto____11200
}
}())) {
var G__11202 = n - 1;
var G__11203 = cljs.core.next.call(null, coll);
n = G__11202;
coll = G__11203;
continue
}else {
return null
}
break
}
};
dorun = function(n, coll) {
switch(arguments.length) {
case 1:
return dorun__1.call(this, n);
case 2:
return dorun__2.call(this, n, coll)
}
throw"Invalid arity: " + arguments.length;
};
dorun.cljs$lang$arity$1 = dorun__1;
dorun.cljs$lang$arity$2 = dorun__2;
return dorun
}();
cljs.core.doall = function() {
var doall = null;
var doall__1 = function(coll) {
cljs.core.dorun.call(null, coll);
return coll
};
var doall__2 = function(n, coll) {
cljs.core.dorun.call(null, n, coll);
return coll
};
doall = function(n, coll) {
switch(arguments.length) {
case 1:
return doall__1.call(this, n);
case 2:
return doall__2.call(this, n, coll)
}
throw"Invalid arity: " + arguments.length;
};
doall.cljs$lang$arity$1 = doall__1;
doall.cljs$lang$arity$2 = doall__2;
return doall
}();
cljs.core.regexp_QMARK_ = function regexp_QMARK_(o) {
return o instanceof RegExp
};
cljs.core.re_matches = function re_matches(re, s) {
var matches__11205 = re.exec(s);
if(cljs.core._EQ_.call(null, cljs.core.first.call(null, matches__11205), s)) {
if(cljs.core.count.call(null, matches__11205) === 1) {
return cljs.core.first.call(null, matches__11205)
}else {
return cljs.core.vec.call(null, matches__11205)
}
}else {
return null
}
};
cljs.core.re_find = function re_find(re, s) {
var matches__11207 = re.exec(s);
if(matches__11207 == null) {
return null
}else {
if(cljs.core.count.call(null, matches__11207) === 1) {
return cljs.core.first.call(null, matches__11207)
}else {
return cljs.core.vec.call(null, matches__11207)
}
}
};
cljs.core.re_seq = function re_seq(re, s) {
var match_data__11212 = cljs.core.re_find.call(null, re, s);
var match_idx__11213 = s.search(re);
var match_str__11214 = cljs.core.coll_QMARK_.call(null, match_data__11212) ? cljs.core.first.call(null, match_data__11212) : match_data__11212;
var post_match__11215 = cljs.core.subs.call(null, s, match_idx__11213 + cljs.core.count.call(null, match_str__11214));
if(cljs.core.truth_(match_data__11212)) {
return new cljs.core.LazySeq(null, false, function() {
return cljs.core.cons.call(null, match_data__11212, re_seq.call(null, re, post_match__11215))
}, null)
}else {
return null
}
};
cljs.core.re_pattern = function re_pattern(s) {
var vec__11222__11223 = cljs.core.re_find.call(null, /^(?:\(\?([idmsux]*)\))?(.*)/, s);
var ___11224 = cljs.core.nth.call(null, vec__11222__11223, 0, null);
var flags__11225 = cljs.core.nth.call(null, vec__11222__11223, 1, null);
var pattern__11226 = cljs.core.nth.call(null, vec__11222__11223, 2, null);
return new RegExp(pattern__11226, flags__11225)
};
cljs.core.pr_sequential = function pr_sequential(print_one, begin, sep, end, opts, coll) {
return cljs.core.concat.call(null, cljs.core.PersistentVector.fromArray([begin], true), cljs.core.flatten1.call(null, cljs.core.interpose.call(null, cljs.core.PersistentVector.fromArray([sep], true), cljs.core.map.call(null, function(p1__11216_SHARP_) {
return print_one.call(null, p1__11216_SHARP_, opts)
}, coll))), cljs.core.PersistentVector.fromArray([end], true))
};
cljs.core.string_print = function string_print(x) {
cljs.core._STAR_print_fn_STAR_.call(null, x);
return null
};
cljs.core.flush = function flush() {
return null
};
cljs.core.pr_seq = function pr_seq(obj, opts) {
if(obj == null) {
return cljs.core.list.call(null, "nil")
}else {
if(void 0 === obj) {
return cljs.core.list.call(null, "#<undefined>")
}else {
if("\ufdd0'else") {
return cljs.core.concat.call(null, cljs.core.truth_(function() {
var and__3822__auto____11236 = cljs.core._lookup.call(null, opts, "\ufdd0'meta", null);
if(cljs.core.truth_(and__3822__auto____11236)) {
var and__3822__auto____11240 = function() {
var G__11237__11238 = obj;
if(G__11237__11238) {
if(function() {
var or__3824__auto____11239 = G__11237__11238.cljs$lang$protocol_mask$partition0$ & 131072;
if(or__3824__auto____11239) {
return or__3824__auto____11239
}else {
return G__11237__11238.cljs$core$IMeta$
}
}()) {
return true
}else {
if(!G__11237__11238.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IMeta, G__11237__11238)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IMeta, G__11237__11238)
}
}();
if(cljs.core.truth_(and__3822__auto____11240)) {
return cljs.core.meta.call(null, obj)
}else {
return and__3822__auto____11240
}
}else {
return and__3822__auto____11236
}
}()) ? cljs.core.concat.call(null, cljs.core.PersistentVector.fromArray(["^"], true), pr_seq.call(null, cljs.core.meta.call(null, obj), opts), cljs.core.PersistentVector.fromArray([" "], true)) : null, function() {
var and__3822__auto____11241 = !(obj == null);
if(and__3822__auto____11241) {
return obj.cljs$lang$type
}else {
return and__3822__auto____11241
}
}() ? obj.cljs$lang$ctorPrSeq(obj) : function() {
var G__11242__11243 = obj;
if(G__11242__11243) {
if(function() {
var or__3824__auto____11244 = G__11242__11243.cljs$lang$protocol_mask$partition0$ & 536870912;
if(or__3824__auto____11244) {
return or__3824__auto____11244
}else {
return G__11242__11243.cljs$core$IPrintable$
}
}()) {
return true
}else {
if(!G__11242__11243.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IPrintable, G__11242__11243)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IPrintable, G__11242__11243)
}
}() ? cljs.core._pr_seq.call(null, obj, opts) : cljs.core.truth_(cljs.core.regexp_QMARK_.call(null, obj)) ? cljs.core.list.call(null, '#"', obj.source, '"') : "\ufdd0'else" ? cljs.core.list.call(null, "#<", [cljs.core.str(obj)].join(""), ">") : null)
}else {
return null
}
}
}
};
cljs.core.pr_sb = function pr_sb(objs, opts) {
var sb__11264 = new goog.string.StringBuffer;
var G__11265__11266 = cljs.core.seq.call(null, cljs.core.pr_seq.call(null, cljs.core.first.call(null, objs), opts));
if(G__11265__11266) {
var string__11267 = cljs.core.first.call(null, G__11265__11266);
var G__11265__11268 = G__11265__11266;
while(true) {
sb__11264.append(string__11267);
var temp__3974__auto____11269 = cljs.core.next.call(null, G__11265__11268);
if(temp__3974__auto____11269) {
var G__11265__11270 = temp__3974__auto____11269;
var G__11283 = cljs.core.first.call(null, G__11265__11270);
var G__11284 = G__11265__11270;
string__11267 = G__11283;
G__11265__11268 = G__11284;
continue
}else {
}
break
}
}else {
}
var G__11271__11272 = cljs.core.seq.call(null, cljs.core.next.call(null, objs));
if(G__11271__11272) {
var obj__11273 = cljs.core.first.call(null, G__11271__11272);
var G__11271__11274 = G__11271__11272;
while(true) {
sb__11264.append(" ");
var G__11275__11276 = cljs.core.seq.call(null, cljs.core.pr_seq.call(null, obj__11273, opts));
if(G__11275__11276) {
var string__11277 = cljs.core.first.call(null, G__11275__11276);
var G__11275__11278 = G__11275__11276;
while(true) {
sb__11264.append(string__11277);
var temp__3974__auto____11279 = cljs.core.next.call(null, G__11275__11278);
if(temp__3974__auto____11279) {
var G__11275__11280 = temp__3974__auto____11279;
var G__11285 = cljs.core.first.call(null, G__11275__11280);
var G__11286 = G__11275__11280;
string__11277 = G__11285;
G__11275__11278 = G__11286;
continue
}else {
}
break
}
}else {
}
var temp__3974__auto____11281 = cljs.core.next.call(null, G__11271__11274);
if(temp__3974__auto____11281) {
var G__11271__11282 = temp__3974__auto____11281;
var G__11287 = cljs.core.first.call(null, G__11271__11282);
var G__11288 = G__11271__11282;
obj__11273 = G__11287;
G__11271__11274 = G__11288;
continue
}else {
}
break
}
}else {
}
return sb__11264
};
cljs.core.pr_str_with_opts = function pr_str_with_opts(objs, opts) {
return[cljs.core.str(cljs.core.pr_sb.call(null, objs, opts))].join("")
};
cljs.core.prn_str_with_opts = function prn_str_with_opts(objs, opts) {
var sb__11290 = cljs.core.pr_sb.call(null, objs, opts);
sb__11290.append("\n");
return[cljs.core.str(sb__11290)].join("")
};
cljs.core.pr_with_opts = function pr_with_opts(objs, opts) {
var G__11309__11310 = cljs.core.seq.call(null, cljs.core.pr_seq.call(null, cljs.core.first.call(null, objs), opts));
if(G__11309__11310) {
var string__11311 = cljs.core.first.call(null, G__11309__11310);
var G__11309__11312 = G__11309__11310;
while(true) {
cljs.core.string_print.call(null, string__11311);
var temp__3974__auto____11313 = cljs.core.next.call(null, G__11309__11312);
if(temp__3974__auto____11313) {
var G__11309__11314 = temp__3974__auto____11313;
var G__11327 = cljs.core.first.call(null, G__11309__11314);
var G__11328 = G__11309__11314;
string__11311 = G__11327;
G__11309__11312 = G__11328;
continue
}else {
}
break
}
}else {
}
var G__11315__11316 = cljs.core.seq.call(null, cljs.core.next.call(null, objs));
if(G__11315__11316) {
var obj__11317 = cljs.core.first.call(null, G__11315__11316);
var G__11315__11318 = G__11315__11316;
while(true) {
cljs.core.string_print.call(null, " ");
var G__11319__11320 = cljs.core.seq.call(null, cljs.core.pr_seq.call(null, obj__11317, opts));
if(G__11319__11320) {
var string__11321 = cljs.core.first.call(null, G__11319__11320);
var G__11319__11322 = G__11319__11320;
while(true) {
cljs.core.string_print.call(null, string__11321);
var temp__3974__auto____11323 = cljs.core.next.call(null, G__11319__11322);
if(temp__3974__auto____11323) {
var G__11319__11324 = temp__3974__auto____11323;
var G__11329 = cljs.core.first.call(null, G__11319__11324);
var G__11330 = G__11319__11324;
string__11321 = G__11329;
G__11319__11322 = G__11330;
continue
}else {
}
break
}
}else {
}
var temp__3974__auto____11325 = cljs.core.next.call(null, G__11315__11318);
if(temp__3974__auto____11325) {
var G__11315__11326 = temp__3974__auto____11325;
var G__11331 = cljs.core.first.call(null, G__11315__11326);
var G__11332 = G__11315__11326;
obj__11317 = G__11331;
G__11315__11318 = G__11332;
continue
}else {
return null
}
break
}
}else {
return null
}
};
cljs.core.newline = function newline(opts) {
cljs.core.string_print.call(null, "\n");
if(cljs.core.truth_(cljs.core._lookup.call(null, opts, "\ufdd0'flush-on-newline", null))) {
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(["\ufdd0'flush-on-newline", "\ufdd0'readably", "\ufdd0'meta", "\ufdd0'dup"], {"\ufdd0'flush-on-newline":cljs.core._STAR_flush_on_newline_STAR_, "\ufdd0'readably":cljs.core._STAR_print_readably_STAR_, "\ufdd0'meta":cljs.core._STAR_print_meta_STAR_, "\ufdd0'dup":cljs.core._STAR_print_dup_STAR_})
};
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__11333) {
var objs = cljs.core.seq(arglist__11333);
return pr_str__delegate(objs)
};
pr_str.cljs$lang$arity$variadic = pr_str__delegate;
return pr_str
}();
cljs.core.prn_str = function() {
var prn_str__delegate = function(objs) {
return cljs.core.prn_str_with_opts.call(null, objs, cljs.core.pr_opts.call(null))
};
var prn_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 prn_str__delegate.call(this, objs)
};
prn_str.cljs$lang$maxFixedArity = 0;
prn_str.cljs$lang$applyTo = function(arglist__11334) {
var objs = cljs.core.seq(arglist__11334);
return prn_str__delegate(objs)
};
prn_str.cljs$lang$arity$variadic = prn_str__delegate;
return prn_str
}();
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__11335) {
var objs = cljs.core.seq(arglist__11335);
return pr__delegate(objs)
};
pr.cljs$lang$arity$variadic = pr__delegate;
return pr
}();
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), "\ufdd0'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__11336) {
var objs = cljs.core.seq(arglist__11336);
return cljs_core_print__delegate(objs)
};
cljs_core_print.cljs$lang$arity$variadic = cljs_core_print__delegate;
return cljs_core_print
}();
cljs.core.print_str = function() {
var print_str__delegate = function(objs) {
return cljs.core.pr_str_with_opts.call(null, objs, cljs.core.assoc.call(null, cljs.core.pr_opts.call(null), "\ufdd0'readably", false))
};
var print_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 print_str__delegate.call(this, objs)
};
print_str.cljs$lang$maxFixedArity = 0;
print_str.cljs$lang$applyTo = function(arglist__11337) {
var objs = cljs.core.seq(arglist__11337);
return print_str__delegate(objs)
};
print_str.cljs$lang$arity$variadic = print_str__delegate;
return print_str
}();
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), "\ufdd0'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__11338) {
var objs = cljs.core.seq(arglist__11338);
return println__delegate(objs)
};
println.cljs$lang$arity$variadic = println__delegate;
return println
}();
cljs.core.println_str = function() {
var println_str__delegate = function(objs) {
return cljs.core.prn_str_with_opts.call(null, objs, cljs.core.assoc.call(null, cljs.core.pr_opts.call(null), "\ufdd0'readably", false))
};
var println_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 println_str__delegate.call(this, objs)
};
println_str.cljs$lang$maxFixedArity = 0;
println_str.cljs$lang$applyTo = function(arglist__11339) {
var objs = cljs.core.seq(arglist__11339);
return println_str__delegate(objs)
};
println_str.cljs$lang$arity$variadic = println_str__delegate;
return println_str
}();
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__11340) {
var objs = cljs.core.seq(arglist__11340);
return prn__delegate(objs)
};
prn.cljs$lang$arity$variadic = prn__delegate;
return prn
}();
cljs.core.printf = function() {
var printf__delegate = function(fmt, args) {
return cljs.core.print.call(null, cljs.core.apply.call(null, cljs.core.format, fmt, args))
};
var printf = function(fmt, var_args) {
var args = null;
if(goog.isDef(var_args)) {
args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 1), 0)
}
return printf__delegate.call(this, fmt, args)
};
printf.cljs$lang$maxFixedArity = 1;
printf.cljs$lang$applyTo = function(arglist__11341) {
var fmt = cljs.core.first(arglist__11341);
var args = cljs.core.rest(arglist__11341);
return printf__delegate(fmt, args)
};
printf.cljs$lang$arity$variadic = printf__delegate;
return printf
}();
cljs.core.HashMap.prototype.cljs$core$IPrintable$ = true;
cljs.core.HashMap.prototype.cljs$core$IPrintable$_pr_seq$arity$2 = function(coll, opts) {
var pr_pair__11342 = function(keyval) {
return cljs.core.pr_sequential.call(null, cljs.core.pr_seq, "", " ", "", opts, keyval)
};
return cljs.core.pr_sequential.call(null, pr_pair__11342, "{", ", ", "}", opts, coll)
};
cljs.core.IPrintable["number"] = true;
cljs.core._pr_seq["number"] = function(n, opts) {
return cljs.core.list.call(null, [cljs.core.str(n)].join(""))
};
cljs.core.IndexedSeq.prototype.cljs$core$IPrintable$ = true;
cljs.core.IndexedSeq.prototype.cljs$core$IPrintable$_pr_seq$arity$2 = function(coll, opts) {
return cljs.core.pr_sequential.call(null, cljs.core.pr_seq, "(", " ", ")", opts, coll)
};
cljs.core.Subvec.prototype.cljs$core$IPrintable$ = true;
cljs.core.Subvec.prototype.cljs$core$IPrintable$_pr_seq$arity$2 = function(coll, opts) {
return cljs.core.pr_sequential.call(null, cljs.core.pr_seq, "[", " ", "]", opts, coll)
};
cljs.core.ChunkedCons.prototype.cljs$core$IPrintable$ = true;
cljs.core.ChunkedCons.prototype.cljs$core$IPrintable$_pr_seq$arity$2 = function(coll, opts) {
return cljs.core.pr_sequential.call(null, cljs.core.pr_seq, "(", " ", ")", opts, coll)
};
cljs.core.PersistentTreeMap.prototype.cljs$core$IPrintable$ = true;
cljs.core.PersistentTreeMap.prototype.cljs$core$IPrintable$_pr_seq$arity$2 = function(coll, opts) {
var pr_pair__11343 = function(keyval) {
return cljs.core.pr_sequential.call(null, cljs.core.pr_seq, "", " ", "", opts, keyval)
};
return cljs.core.pr_sequential.call(null, pr_pair__11343, "{", ", ", "}", opts, coll)
};
cljs.core.PersistentArrayMap.prototype.cljs$core$IPrintable$ = true;
cljs.core.PersistentArrayMap.prototype.cljs$core$IPrintable$_pr_seq$arity$2 = function(coll, opts) {
var pr_pair__11344 = function(keyval) {
return cljs.core.pr_sequential.call(null, cljs.core.pr_seq, "", " ", "", opts, keyval)
};
return cljs.core.pr_sequential.call(null, pr_pair__11344, "{", ", ", "}", opts, coll)
};
cljs.core.PersistentQueue.prototype.cljs$core$IPrintable$ = true;
cljs.core.PersistentQueue.prototype.cljs$core$IPrintable$_pr_seq$arity$2 = function(coll, opts) {
return cljs.core.pr_sequential.call(null, cljs.core.pr_seq, "#queue [", " ", "]", opts, cljs.core.seq.call(null, coll))
};
cljs.core.LazySeq.prototype.cljs$core$IPrintable$ = true;
cljs.core.LazySeq.prototype.cljs$core$IPrintable$_pr_seq$arity$2 = function(coll, opts) {
return cljs.core.pr_sequential.call(null, cljs.core.pr_seq, "(", " ", ")", opts, coll)
};
cljs.core.RSeq.prototype.cljs$core$IPrintable$ = true;
cljs.core.RSeq.prototype.cljs$core$IPrintable$_pr_seq$arity$2 = function(coll, opts) {
return cljs.core.pr_sequential.call(null, cljs.core.pr_seq, "(", " ", ")", opts, coll)
};
cljs.core.PersistentTreeSet.prototype.cljs$core$IPrintable$ = true;
cljs.core.PersistentTreeSet.prototype.cljs$core$IPrintable$_pr_seq$arity$2 = 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(bool)].join(""))
};
cljs.core.IPrintable["string"] = true;
cljs.core._pr_seq["string"] = function(obj, opts) {
if(cljs.core.keyword_QMARK_.call(null, obj)) {
return cljs.core.list.call(null, [cljs.core.str(":"), cljs.core.str(function() {
var temp__3974__auto____11345 = cljs.core.namespace.call(null, obj);
if(cljs.core.truth_(temp__3974__auto____11345)) {
var nspc__11346 = temp__3974__auto____11345;
return[cljs.core.str(nspc__11346), cljs.core.str("/")].join("")
}else {
return null
}
}()), cljs.core.str(cljs.core.name.call(null, obj))].join(""))
}else {
if(cljs.core.symbol_QMARK_.call(null, obj)) {
return cljs.core.list.call(null, [cljs.core.str(function() {
var temp__3974__auto____11347 = cljs.core.namespace.call(null, obj);
if(cljs.core.truth_(temp__3974__auto____11347)) {
var nspc__11348 = temp__3974__auto____11347;
return[cljs.core.str(nspc__11348), cljs.core.str("/")].join("")
}else {
return null
}
}()), cljs.core.str(cljs.core.name.call(null, obj))].join(""))
}else {
if("\ufdd0'else") {
return cljs.core.list.call(null, cljs.core.truth_((new cljs.core.Keyword("\ufdd0'readably")).call(null, opts)) ? goog.string.quote(obj) : obj)
}else {
return null
}
}
}
};
cljs.core.NodeSeq.prototype.cljs$core$IPrintable$ = true;
cljs.core.NodeSeq.prototype.cljs$core$IPrintable$_pr_seq$arity$2 = function(coll, opts) {
return cljs.core.pr_sequential.call(null, cljs.core.pr_seq, "(", " ", ")", opts, coll)
};
cljs.core.RedNode.prototype.cljs$core$IPrintable$ = true;
cljs.core.RedNode.prototype.cljs$core$IPrintable$_pr_seq$arity$2 = function(coll, opts) {
return cljs.core.pr_sequential.call(null, cljs.core.pr_seq, "[", " ", "]", opts, coll)
};
cljs.core.ChunkedSeq.prototype.cljs$core$IPrintable$ = true;
cljs.core.ChunkedSeq.prototype.cljs$core$IPrintable$_pr_seq$arity$2 = function(coll, opts) {
return cljs.core.pr_sequential.call(null, cljs.core.pr_seq, "(", " ", ")", opts, coll)
};
cljs.core.PersistentHashMap.prototype.cljs$core$IPrintable$ = true;
cljs.core.PersistentHashMap.prototype.cljs$core$IPrintable$_pr_seq$arity$2 = function(coll, opts) {
var pr_pair__11349 = function(keyval) {
return cljs.core.pr_sequential.call(null, cljs.core.pr_seq, "", " ", "", opts, keyval)
};
return cljs.core.pr_sequential.call(null, pr_pair__11349, "{", ", ", "}", opts, coll)
};
cljs.core.Vector.prototype.cljs$core$IPrintable$ = true;
cljs.core.Vector.prototype.cljs$core$IPrintable$_pr_seq$arity$2 = function(coll, opts) {
return cljs.core.pr_sequential.call(null, cljs.core.pr_seq, "[", " ", "]", opts, coll)
};
cljs.core.PersistentHashSet.prototype.cljs$core$IPrintable$ = true;
cljs.core.PersistentHashSet.prototype.cljs$core$IPrintable$_pr_seq$arity$2 = function(coll, opts) {
return cljs.core.pr_sequential.call(null, cljs.core.pr_seq, "#{", " ", "}", opts, coll)
};
cljs.core.PersistentVector.prototype.cljs$core$IPrintable$ = true;
cljs.core.PersistentVector.prototype.cljs$core$IPrintable$_pr_seq$arity$2 = 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$arity$2 = 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.IPrintable["function"] = true;
cljs.core._pr_seq["function"] = function(this$) {
return cljs.core.list.call(null, "#<", [cljs.core.str(this$)].join(""), ">")
};
cljs.core.EmptyList.prototype.cljs$core$IPrintable$ = true;
cljs.core.EmptyList.prototype.cljs$core$IPrintable$_pr_seq$arity$2 = function(coll, opts) {
return cljs.core.list.call(null, "()")
};
cljs.core.BlackNode.prototype.cljs$core$IPrintable$ = true;
cljs.core.BlackNode.prototype.cljs$core$IPrintable$_pr_seq$arity$2 = function(coll, opts) {
return cljs.core.pr_sequential.call(null, cljs.core.pr_seq, "[", " ", "]", opts, coll)
};
Date.prototype.cljs$core$IPrintable$ = true;
Date.prototype.cljs$core$IPrintable$_pr_seq$arity$2 = function(d, _) {
var normalize__11351 = function(n, len) {
var ns__11350 = [cljs.core.str(n)].join("");
while(true) {
if(cljs.core.count.call(null, ns__11350) < len) {
var G__11353 = [cljs.core.str("0"), cljs.core.str(ns__11350)].join("");
ns__11350 = G__11353;
continue
}else {
return ns__11350
}
break
}
};
return cljs.core.list.call(null, [cljs.core.str('#inst "'), cljs.core.str(d.getUTCFullYear()), cljs.core.str("-"), cljs.core.str(normalize__11351.call(null, d.getUTCMonth() + 1, 2)), cljs.core.str("-"), cljs.core.str(normalize__11351.call(null, d.getUTCDate(), 2)), cljs.core.str("T"), cljs.core.str(normalize__11351.call(null, d.getUTCHours(), 2)), cljs.core.str(":"), cljs.core.str(normalize__11351.call(null, d.getUTCMinutes(), 2)), cljs.core.str(":"), cljs.core.str(normalize__11351.call(null, d.getUTCSeconds(),
2)), cljs.core.str("."), cljs.core.str(normalize__11351.call(null, d.getUTCMilliseconds(), 3)), cljs.core.str("-"), cljs.core.str('00:00"')].join(""))
};
cljs.core.Cons.prototype.cljs$core$IPrintable$ = true;
cljs.core.Cons.prototype.cljs$core$IPrintable$_pr_seq$arity$2 = function(coll, opts) {
return cljs.core.pr_sequential.call(null, cljs.core.pr_seq, "(", " ", ")", opts, coll)
};
cljs.core.Range.prototype.cljs$core$IPrintable$ = true;
cljs.core.Range.prototype.cljs$core$IPrintable$_pr_seq$arity$2 = function(coll, opts) {
return cljs.core.pr_sequential.call(null, cljs.core.pr_seq, "(", " ", ")", opts, coll)
};
cljs.core.ArrayNodeSeq.prototype.cljs$core$IPrintable$ = true;
cljs.core.ArrayNodeSeq.prototype.cljs$core$IPrintable$_pr_seq$arity$2 = 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$arity$2 = function(coll, opts) {
var pr_pair__11352 = function(keyval) {
return cljs.core.pr_sequential.call(null, cljs.core.pr_seq, "", " ", "", opts, keyval)
};
return cljs.core.pr_sequential.call(null, pr_pair__11352, "{", ", ", "}", opts, coll)
};
cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IPrintable$ = true;
cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IPrintable$_pr_seq$arity$2 = function(coll, opts) {
return cljs.core.pr_sequential.call(null, cljs.core.pr_seq, "(", " ", ")", opts, coll)
};
cljs.core.PersistentVector.prototype.cljs$core$IComparable$ = true;
cljs.core.PersistentVector.prototype.cljs$core$IComparable$_compare$arity$2 = function(x, y) {
return cljs.core.compare_indexed.call(null, x, y)
};
cljs.core.Atom = function(state, meta, validator, watches) {
this.state = state;
this.meta = meta;
this.validator = validator;
this.watches = watches;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 2690809856
};
cljs.core.Atom.cljs$lang$type = true;
cljs.core.Atom.cljs$lang$ctorPrSeq = function(this__2333__auto__) {
return cljs.core.list.call(null, "cljs.core/Atom")
};
cljs.core.Atom.prototype.cljs$core$IHash$_hash$arity$1 = function(this$) {
var this__11354 = this;
return goog.getUid(this$)
};
cljs.core.Atom.prototype.cljs$core$IWatchable$_notify_watches$arity$3 = function(this$, oldval, newval) {
var this__11355 = this;
var G__11356__11357 = cljs.core.seq.call(null, this__11355.watches);
if(G__11356__11357) {
var G__11359__11361 = cljs.core.first.call(null, G__11356__11357);
var vec__11360__11362 = G__11359__11361;
var key__11363 = cljs.core.nth.call(null, vec__11360__11362, 0, null);
var f__11364 = cljs.core.nth.call(null, vec__11360__11362, 1, null);
var G__11356__11365 = G__11356__11357;
var G__11359__11366 = G__11359__11361;
var G__11356__11367 = G__11356__11365;
while(true) {
var vec__11368__11369 = G__11359__11366;
var key__11370 = cljs.core.nth.call(null, vec__11368__11369, 0, null);
var f__11371 = cljs.core.nth.call(null, vec__11368__11369, 1, null);
var G__11356__11372 = G__11356__11367;
f__11371.call(null, key__11370, this$, oldval, newval);
var temp__3974__auto____11373 = cljs.core.next.call(null, G__11356__11372);
if(temp__3974__auto____11373) {
var G__11356__11374 = temp__3974__auto____11373;
var G__11381 = cljs.core.first.call(null, G__11356__11374);
var G__11382 = G__11356__11374;
G__11359__11366 = G__11381;
G__11356__11367 = G__11382;
continue
}else {
return null
}
break
}
}else {
return null
}
};
cljs.core.Atom.prototype.cljs$core$IWatchable$_add_watch$arity$3 = function(this$, key, f) {
var this__11375 = this;
return this$.watches = cljs.core.assoc.call(null, this__11375.watches, key, f)
};
cljs.core.Atom.prototype.cljs$core$IWatchable$_remove_watch$arity$2 = function(this$, key) {
var this__11376 = this;
return this$.watches = cljs.core.dissoc.call(null, this__11376.watches, key)
};
cljs.core.Atom.prototype.cljs$core$IPrintable$_pr_seq$arity$2 = function(a, opts) {
var this__11377 = this;
return cljs.core.concat.call(null, cljs.core.PersistentVector.fromArray(["#<Atom: "], true), cljs.core._pr_seq.call(null, this__11377.state, opts), ">")
};
cljs.core.Atom.prototype.cljs$core$IMeta$_meta$arity$1 = function(_) {
var this__11378 = this;
return this__11378.meta
};
cljs.core.Atom.prototype.cljs$core$IDeref$_deref$arity$1 = function(_) {
var this__11379 = this;
return this__11379.state
};
cljs.core.Atom.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(o, other) {
var this__11380 = this;
return o === other
};
cljs.core.Atom;
cljs.core.atom = function() {
var atom = null;
var atom__1 = function(x) {
return new cljs.core.Atom(x, null, null, null)
};
var atom__2 = function() {
var G__11394__delegate = function(x, p__11383) {
var map__11389__11390 = p__11383;
var map__11389__11391 = cljs.core.seq_QMARK_.call(null, map__11389__11390) ? cljs.core.apply.call(null, cljs.core.hash_map, map__11389__11390) : map__11389__11390;
var validator__11392 = cljs.core._lookup.call(null, map__11389__11391, "\ufdd0'validator", null);
var meta__11393 = cljs.core._lookup.call(null, map__11389__11391, "\ufdd0'meta", null);
return new cljs.core.Atom(x, meta__11393, validator__11392, null)
};
var G__11394 = function(x, var_args) {
var p__11383 = null;
if(goog.isDef(var_args)) {
p__11383 = cljs.core.array_seq(Array.prototype.slice.call(arguments, 1), 0)
}
return G__11394__delegate.call(this, x, p__11383)
};
G__11394.cljs$lang$maxFixedArity = 1;
G__11394.cljs$lang$applyTo = function(arglist__11395) {
var x = cljs.core.first(arglist__11395);
var p__11383 = cljs.core.rest(arglist__11395);
return G__11394__delegate(x, p__11383)
};
G__11394.cljs$lang$arity$variadic = G__11394__delegate;
return G__11394
}();
atom = function(x, var_args) {
var p__11383 = var_args;
switch(arguments.length) {
case 1:
return atom__1.call(this, x);
default:
return atom__2.cljs$lang$arity$variadic(x, cljs.core.array_seq(arguments, 1))
}
throw"Invalid arity: " + arguments.length;
};
atom.cljs$lang$maxFixedArity = 1;
atom.cljs$lang$applyTo = atom__2.cljs$lang$applyTo;
atom.cljs$lang$arity$1 = atom__1;
atom.cljs$lang$arity$variadic = atom__2.cljs$lang$arity$variadic;
return atom
}();
cljs.core.reset_BANG_ = function reset_BANG_(a, new_value) {
var temp__3974__auto____11399 = a.validator;
if(cljs.core.truth_(temp__3974__auto____11399)) {
var validate__11400 = temp__3974__auto____11399;
if(cljs.core.truth_(validate__11400.call(null, new_value))) {
}else {
throw new Error([cljs.core.str("Assert failed: "), cljs.core.str("Validator rejected reference state"), cljs.core.str("\n"), cljs.core.str(cljs.core.pr_str.call(null, cljs.core.with_meta(cljs.core.list("\ufdd1'validate", "\ufdd1'new-value"), cljs.core.hash_map("\ufdd0'line", 6440))))].join(""));
}
}else {
}
var old_value__11401 = a.state;
a.state = new_value;
cljs.core._notify_watches.call(null, a, old_value__11401, new_value);
return new_value
};
cljs.core.swap_BANG_ = function() {
var swap_BANG_ = null;
var swap_BANG___2 = function(a, f) {
return cljs.core.reset_BANG_.call(null, a, f.call(null, a.state))
};
var swap_BANG___3 = function(a, f, x) {
return cljs.core.reset_BANG_.call(null, a, f.call(null, a.state, x))
};
var swap_BANG___4 = function(a, f, x, y) {
return cljs.core.reset_BANG_.call(null, a, f.call(null, a.state, x, y))
};
var swap_BANG___5 = 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___6 = function() {
var G__11402__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__11402 = 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__11402__delegate.call(this, a, f, x, y, z, more)
};
G__11402.cljs$lang$maxFixedArity = 5;
G__11402.cljs$lang$applyTo = function(arglist__11403) {
var a = cljs.core.first(arglist__11403);
var f = cljs.core.first(cljs.core.next(arglist__11403));
var x = cljs.core.first(cljs.core.next(cljs.core.next(arglist__11403)));
var y = cljs.core.first(cljs.core.next(cljs.core.next(cljs.core.next(arglist__11403))));
var z = cljs.core.first(cljs.core.next(cljs.core.next(cljs.core.next(cljs.core.next(arglist__11403)))));
var more = cljs.core.rest(cljs.core.next(cljs.core.next(cljs.core.next(cljs.core.next(arglist__11403)))));
return G__11402__delegate(a, f, x, y, z, more)
};
G__11402.cljs$lang$arity$variadic = G__11402__delegate;
return G__11402
}();
swap_BANG_ = function(a, f, x, y, z, var_args) {
var more = var_args;
switch(arguments.length) {
case 2:
return swap_BANG___2.call(this, a, f);
case 3:
return swap_BANG___3.call(this, a, f, x);
case 4:
return swap_BANG___4.call(this, a, f, x, y);
case 5:
return swap_BANG___5.call(this, a, f, x, y, z);
default:
return swap_BANG___6.cljs$lang$arity$variadic(a, f, x, y, z, cljs.core.array_seq(arguments, 5))
}
throw"Invalid arity: " + arguments.length;
};
swap_BANG_.cljs$lang$maxFixedArity = 5;
swap_BANG_.cljs$lang$applyTo = swap_BANG___6.cljs$lang$applyTo;
swap_BANG_.cljs$lang$arity$2 = swap_BANG___2;
swap_BANG_.cljs$lang$arity$3 = swap_BANG___3;
swap_BANG_.cljs$lang$arity$4 = swap_BANG___4;
swap_BANG_.cljs$lang$arity$5 = swap_BANG___5;
swap_BANG_.cljs$lang$arity$variadic = swap_BANG___6.cljs$lang$arity$variadic;
return swap_BANG_
}();
cljs.core.compare_and_set_BANG_ = function compare_and_set_BANG_(a, oldval, newval) {
if(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)
};
cljs.core.set_validator_BANG_ = function set_validator_BANG_(iref, val) {
return iref.validator = val
};
cljs.core.get_validator = function get_validator(iref) {
return iref.validator
};
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__11404) {
var iref = cljs.core.first(arglist__11404);
var f = cljs.core.first(cljs.core.next(arglist__11404));
var args = cljs.core.rest(cljs.core.next(arglist__11404));
return alter_meta_BANG___delegate(iref, f, args)
};
alter_meta_BANG_.cljs$lang$arity$variadic = alter_meta_BANG___delegate;
return alter_meta_BANG_
}();
cljs.core.reset_meta_BANG_ = function reset_meta_BANG_(iref, m) {
return iref.meta = m
};
cljs.core.add_watch = function add_watch(iref, key, f) {
return cljs.core._add_watch.call(null, iref, key, f)
};
cljs.core.remove_watch = function remove_watch(iref, key) {
return cljs.core._remove_watch.call(null, iref, key)
};
cljs.core.gensym_counter = null;
cljs.core.gensym = function() {
var gensym = null;
var gensym__0 = function() {
return gensym.call(null, "G__")
};
var gensym__1 = function(prefix_string) {
if(cljs.core.gensym_counter == null) {
cljs.core.gensym_counter = cljs.core.atom.call(null, 0)
}else {
}
return cljs.core.symbol.call(null, [cljs.core.str(prefix_string), cljs.core.str(cljs.core.swap_BANG_.call(null, cljs.core.gensym_counter, cljs.core.inc))].join(""))
};
gensym = function(prefix_string) {
switch(arguments.length) {
case 0:
return gensym__0.call(this);
case 1:
return gensym__1.call(this, prefix_string)
}
throw"Invalid arity: " + arguments.length;
};
gensym.cljs$lang$arity$0 = gensym__0;
gensym.cljs$lang$arity$1 = gensym__1;
return gensym
}();
cljs.core.fixture1 = 1;
cljs.core.fixture2 = 2;
cljs.core.Delay = function(state, f) {
this.state = state;
this.f = f;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 1073774592
};
cljs.core.Delay.cljs$lang$type = true;
cljs.core.Delay.cljs$lang$ctorPrSeq = function(this__2333__auto__) {
return cljs.core.list.call(null, "cljs.core/Delay")
};
cljs.core.Delay.prototype.cljs$core$IPending$_realized_QMARK_$arity$1 = function(d) {
var this__11405 = this;
return(new cljs.core.Keyword("\ufdd0'done")).call(null, cljs.core.deref.call(null, this__11405.state))
};
cljs.core.Delay.prototype.cljs$core$IDeref$_deref$arity$1 = function(_) {
var this__11406 = this;
return(new cljs.core.Keyword("\ufdd0'value")).call(null, cljs.core.swap_BANG_.call(null, this__11406.state, function(p__11407) {
var map__11408__11409 = p__11407;
var map__11408__11410 = cljs.core.seq_QMARK_.call(null, map__11408__11409) ? cljs.core.apply.call(null, cljs.core.hash_map, map__11408__11409) : map__11408__11409;
var curr_state__11411 = map__11408__11410;
var done__11412 = cljs.core._lookup.call(null, map__11408__11410, "\ufdd0'done", null);
if(cljs.core.truth_(done__11412)) {
return curr_state__11411
}else {
return cljs.core.ObjMap.fromObject(["\ufdd0'done", "\ufdd0'value"], {"\ufdd0'done":true, "\ufdd0'value":this__11406.f.call(null)})
}
}))
};
cljs.core.Delay;
cljs.core.delay_QMARK_ = function delay_QMARK_(x) {
return cljs.core.instance_QMARK_.call(null, cljs.core.Delay, x)
};
cljs.core.force = function force(x) {
if(cljs.core.delay_QMARK_.call(null, x)) {
return cljs.core.deref.call(null, x)
}else {
return x
}
};
cljs.core.realized_QMARK_ = function realized_QMARK_(d) {
return cljs.core._realized_QMARK_.call(null, d)
};
cljs.core.js__GT_clj = function() {
var js__GT_clj__delegate = function(x, options) {
var map__11433__11434 = options;
var map__11433__11435 = cljs.core.seq_QMARK_.call(null, map__11433__11434) ? cljs.core.apply.call(null, cljs.core.hash_map, map__11433__11434) : map__11433__11434;
var keywordize_keys__11436 = cljs.core._lookup.call(null, map__11433__11435, "\ufdd0'keywordize-keys", null);
var keyfn__11437 = cljs.core.truth_(keywordize_keys__11436) ? cljs.core.keyword : cljs.core.str;
var f__11452 = function thisfn(x) {
if(cljs.core.seq_QMARK_.call(null, x)) {
return cljs.core.doall.call(null, cljs.core.map.call(null, thisfn, x))
}else {
if(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(x))) {
return cljs.core.vec.call(null, cljs.core.map.call(null, thisfn, x))
}else {
if(cljs.core.type.call(null, x) === Object) {
return cljs.core.into.call(null, cljs.core.ObjMap.EMPTY, function() {
var iter__2486__auto____11451 = function iter__11445(s__11446) {
return new cljs.core.LazySeq(null, false, function() {
var s__11446__11449 = s__11446;
while(true) {
if(cljs.core.seq.call(null, s__11446__11449)) {
var k__11450 = cljs.core.first.call(null, s__11446__11449);
return cljs.core.cons.call(null, cljs.core.PersistentVector.fromArray([keyfn__11437.call(null, k__11450), thisfn.call(null, x[k__11450])], true), iter__11445.call(null, cljs.core.rest.call(null, s__11446__11449)))
}else {
return null
}
break
}
}, null)
};
return iter__2486__auto____11451.call(null, cljs.core.js_keys.call(null, x))
}())
}else {
if("\ufdd0'else") {
return x
}else {
return null
}
}
}
}
}
};
return f__11452.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__11453) {
var x = cljs.core.first(arglist__11453);
var options = cljs.core.rest(arglist__11453);
return js__GT_clj__delegate(x, options)
};
js__GT_clj.cljs$lang$arity$variadic = js__GT_clj__delegate;
return js__GT_clj
}();
cljs.core.memoize = function memoize(f) {
var mem__11458 = cljs.core.atom.call(null, cljs.core.ObjMap.EMPTY);
return function() {
var G__11462__delegate = function(args) {
var temp__3971__auto____11459 = cljs.core._lookup.call(null, cljs.core.deref.call(null, mem__11458), args, null);
if(cljs.core.truth_(temp__3971__auto____11459)) {
var v__11460 = temp__3971__auto____11459;
return v__11460
}else {
var ret__11461 = cljs.core.apply.call(null, f, args);
cljs.core.swap_BANG_.call(null, mem__11458, cljs.core.assoc, args, ret__11461);
return ret__11461
}
};
var G__11462 = 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__11462__delegate.call(this, args)
};
G__11462.cljs$lang$maxFixedArity = 0;
G__11462.cljs$lang$applyTo = function(arglist__11463) {
var args = cljs.core.seq(arglist__11463);
return G__11462__delegate(args)
};
G__11462.cljs$lang$arity$variadic = G__11462__delegate;
return G__11462
}()
};
cljs.core.trampoline = function() {
var trampoline = null;
var trampoline__1 = function(f) {
while(true) {
var ret__11465 = f.call(null);
if(cljs.core.fn_QMARK_.call(null, ret__11465)) {
var G__11466 = ret__11465;
f = G__11466;
continue
}else {
return ret__11465
}
break
}
};
var trampoline__2 = function() {
var G__11467__delegate = function(f, args) {
return trampoline.call(null, function() {
return cljs.core.apply.call(null, f, args)
})
};
var G__11467 = 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__11467__delegate.call(this, f, args)
};
G__11467.cljs$lang$maxFixedArity = 1;
G__11467.cljs$lang$applyTo = function(arglist__11468) {
var f = cljs.core.first(arglist__11468);
var args = cljs.core.rest(arglist__11468);
return G__11467__delegate(f, args)
};
G__11467.cljs$lang$arity$variadic = G__11467__delegate;
return G__11467
}();
trampoline = function(f, var_args) {
var args = var_args;
switch(arguments.length) {
case 1:
return trampoline__1.call(this, f);
default:
return trampoline__2.cljs$lang$arity$variadic(f, cljs.core.array_seq(arguments, 1))
}
throw"Invalid arity: " + arguments.length;
};
trampoline.cljs$lang$maxFixedArity = 1;
trampoline.cljs$lang$applyTo = trampoline__2.cljs$lang$applyTo;
trampoline.cljs$lang$arity$1 = trampoline__1;
trampoline.cljs$lang$arity$variadic = trampoline__2.cljs$lang$arity$variadic;
return trampoline
}();
cljs.core.rand = function() {
var rand = null;
var rand__0 = function() {
return rand.call(null, 1)
};
var rand__1 = function(n) {
return Math.random.call(null) * n
};
rand = function(n) {
switch(arguments.length) {
case 0:
return rand__0.call(this);
case 1:
return rand__1.call(this, n)
}
throw"Invalid arity: " + arguments.length;
};
rand.cljs$lang$arity$0 = rand__0;
rand.cljs$lang$arity$1 = rand__1;
return rand
}();
cljs.core.rand_int = function rand_int(n) {
return Math.floor.call(null, Math.random.call(null) * n)
};
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)))
};
cljs.core.group_by = function group_by(f, coll) {
return cljs.core.reduce.call(null, function(ret, x) {
var k__11470 = f.call(null, x);
return cljs.core.assoc.call(null, ret, k__11470, cljs.core.conj.call(null, cljs.core._lookup.call(null, ret, k__11470, cljs.core.PersistentVector.EMPTY), x))
}, cljs.core.ObjMap.EMPTY, coll)
};
cljs.core.make_hierarchy = function make_hierarchy() {
return cljs.core.ObjMap.fromObject(["\ufdd0'parents", "\ufdd0'descendants", "\ufdd0'ancestors"], {"\ufdd0'parents":cljs.core.ObjMap.EMPTY, "\ufdd0'descendants":cljs.core.ObjMap.EMPTY, "\ufdd0'ancestors":cljs.core.ObjMap.EMPTY})
};
cljs.core.global_hierarchy = cljs.core.atom.call(null, cljs.core.make_hierarchy.call(null));
cljs.core.isa_QMARK_ = function() {
var isa_QMARK_ = null;
var isa_QMARK___2 = function(child, parent) {
return isa_QMARK_.call(null, cljs.core.deref.call(null, cljs.core.global_hierarchy), child, parent)
};
var isa_QMARK___3 = function(h, child, parent) {
var or__3824__auto____11479 = cljs.core._EQ_.call(null, child, parent);
if(or__3824__auto____11479) {
return or__3824__auto____11479
}else {
var or__3824__auto____11480 = cljs.core.contains_QMARK_.call(null, (new cljs.core.Keyword("\ufdd0'ancestors")).call(null, h).call(null, child), parent);
if(or__3824__auto____11480) {
return or__3824__auto____11480
}else {
var and__3822__auto____11481 = cljs.core.vector_QMARK_.call(null, parent);
if(and__3822__auto____11481) {
var and__3822__auto____11482 = cljs.core.vector_QMARK_.call(null, child);
if(and__3822__auto____11482) {
var and__3822__auto____11483 = cljs.core.count.call(null, parent) === cljs.core.count.call(null, child);
if(and__3822__auto____11483) {
var ret__11484 = true;
var i__11485 = 0;
while(true) {
if(function() {
var or__3824__auto____11486 = cljs.core.not.call(null, ret__11484);
if(or__3824__auto____11486) {
return or__3824__auto____11486
}else {
return i__11485 === cljs.core.count.call(null, parent)
}
}()) {
return ret__11484
}else {
var G__11487 = isa_QMARK_.call(null, h, child.call(null, i__11485), parent.call(null, i__11485));
var G__11488 = i__11485 + 1;
ret__11484 = G__11487;
i__11485 = G__11488;
continue
}
break
}
}else {
return and__3822__auto____11483
}
}else {
return and__3822__auto____11482
}
}else {
return and__3822__auto____11481
}
}
}
};
isa_QMARK_ = function(h, child, parent) {
switch(arguments.length) {
case 2:
return isa_QMARK___2.call(this, h, child);
case 3:
return isa_QMARK___3.call(this, h, child, parent)
}
throw"Invalid arity: " + arguments.length;
};
isa_QMARK_.cljs$lang$arity$2 = isa_QMARK___2;
isa_QMARK_.cljs$lang$arity$3 = isa_QMARK___3;
return isa_QMARK_
}();
cljs.core.parents = function() {
var parents = null;
var parents__1 = function(tag) {
return parents.call(null, cljs.core.deref.call(null, cljs.core.global_hierarchy), tag)
};
var parents__2 = function(h, tag) {
return cljs.core.not_empty.call(null, cljs.core._lookup.call(null, (new cljs.core.Keyword("\ufdd0'parents")).call(null, h), tag, null))
};
parents = function(h, tag) {
switch(arguments.length) {
case 1:
return parents__1.call(this, h);
case 2:
return parents__2.call(this, h, tag)
}
throw"Invalid arity: " + arguments.length;
};
parents.cljs$lang$arity$1 = parents__1;
parents.cljs$lang$arity$2 = parents__2;
return parents
}();
cljs.core.ancestors = function() {
var ancestors = null;
var ancestors__1 = function(tag) {
return ancestors.call(null, cljs.core.deref.call(null, cljs.core.global_hierarchy), tag)
};
var ancestors__2 = function(h, tag) {
return cljs.core.not_empty.call(null, cljs.core._lookup.call(null, (new cljs.core.Keyword("\ufdd0'ancestors")).call(null, h), tag, null))
};
ancestors = function(h, tag) {
switch(arguments.length) {
case 1:
return ancestors__1.call(this, h);
case 2:
return ancestors__2.call(this, h, tag)
}
throw"Invalid arity: " + arguments.length;
};
ancestors.cljs$lang$arity$1 = ancestors__1;
ancestors.cljs$lang$arity$2 = ancestors__2;
return ancestors
}();
cljs.core.descendants = function() {
var descendants = null;
var descendants__1 = function(tag) {
return descendants.call(null, cljs.core.deref.call(null, cljs.core.global_hierarchy), tag)
};
var descendants__2 = function(h, tag) {
return cljs.core.not_empty.call(null, cljs.core._lookup.call(null, (new cljs.core.Keyword("\ufdd0'descendants")).call(null, h), tag, null))
};
descendants = function(h, tag) {
switch(arguments.length) {
case 1:
return descendants__1.call(this, h);
case 2:
return descendants__2.call(this, h, tag)
}
throw"Invalid arity: " + arguments.length;
};
descendants.cljs$lang$arity$1 = descendants__1;
descendants.cljs$lang$arity$2 = descendants__2;
return descendants
}();
cljs.core.derive = function() {
var derive = null;
var derive__2 = function(tag, parent) {
if(cljs.core.truth_(cljs.core.namespace.call(null, parent))) {
}else {
throw new Error([cljs.core.str("Assert failed: "), cljs.core.str(cljs.core.pr_str.call(null, cljs.core.with_meta(cljs.core.list("\ufdd1'namespace", "\ufdd1'parent"), cljs.core.hash_map("\ufdd0'line", 6724))))].join(""));
}
cljs.core.swap_BANG_.call(null, cljs.core.global_hierarchy, derive, tag, parent);
return null
};
var derive__3 = function(h, tag, parent) {
if(cljs.core.not_EQ_.call(null, tag, parent)) {
}else {
throw new Error([cljs.core.str("Assert failed: "), cljs.core.str(cljs.core.pr_str.call(null, cljs.core.with_meta(cljs.core.list("\ufdd1'not=", "\ufdd1'tag", "\ufdd1'parent"), cljs.core.hash_map("\ufdd0'line", 6728))))].join(""));
}
var tp__11497 = (new cljs.core.Keyword("\ufdd0'parents")).call(null, h);
var td__11498 = (new cljs.core.Keyword("\ufdd0'descendants")).call(null, h);
var ta__11499 = (new cljs.core.Keyword("\ufdd0'ancestors")).call(null, h);
var tf__11500 = 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._lookup.call(null, targets, k, cljs.core.PersistentHashSet.EMPTY), cljs.core.cons.call(null, target, targets.call(null, target))))
}, m, cljs.core.cons.call(null, source, sources.call(null, source)))
};
var or__3824__auto____11501 = cljs.core.contains_QMARK_.call(null, tp__11497.call(null, tag), parent) ? null : function() {
if(cljs.core.contains_QMARK_.call(null, ta__11499.call(null, tag), parent)) {
throw new Error([cljs.core.str(tag), cljs.core.str("already has"), cljs.core.str(parent), cljs.core.str("as ancestor")].join(""));
}else {
}
if(cljs.core.contains_QMARK_.call(null, ta__11499.call(null, parent), tag)) {
throw new Error([cljs.core.str("Cyclic derivation:"), cljs.core.str(parent), cljs.core.str("has"), cljs.core.str(tag), cljs.core.str("as ancestor")].join(""));
}else {
}
return cljs.core.ObjMap.fromObject(["\ufdd0'parents", "\ufdd0'ancestors", "\ufdd0'descendants"], {"\ufdd0'parents":cljs.core.assoc.call(null, (new cljs.core.Keyword("\ufdd0'parents")).call(null, h), tag, cljs.core.conj.call(null, cljs.core._lookup.call(null, tp__11497, tag, cljs.core.PersistentHashSet.EMPTY), parent)), "\ufdd0'ancestors":tf__11500.call(null, (new cljs.core.Keyword("\ufdd0'ancestors")).call(null, h), tag, td__11498, parent, ta__11499), "\ufdd0'descendants":tf__11500.call(null,
(new cljs.core.Keyword("\ufdd0'descendants")).call(null, h), parent, ta__11499, tag, td__11498)})
}();
if(cljs.core.truth_(or__3824__auto____11501)) {
return or__3824__auto____11501
}else {
return h
}
};
derive = function(h, tag, parent) {
switch(arguments.length) {
case 2:
return derive__2.call(this, h, tag);
case 3:
return derive__3.call(this, h, tag, parent)
}
throw"Invalid arity: " + arguments.length;
};
derive.cljs$lang$arity$2 = derive__2;
derive.cljs$lang$arity$3 = derive__3;
return derive
}();
cljs.core.underive = function() {
var underive = null;
var underive__2 = function(tag, parent) {
cljs.core.swap_BANG_.call(null, cljs.core.global_hierarchy, underive, tag, parent);
return null
};
var underive__3 = function(h, tag, parent) {
var parentMap__11506 = (new cljs.core.Keyword("\ufdd0'parents")).call(null, h);
var childsParents__11507 = cljs.core.truth_(parentMap__11506.call(null, tag)) ? cljs.core.disj.call(null, parentMap__11506.call(null, tag), parent) : cljs.core.PersistentHashSet.EMPTY;
var newParents__11508 = cljs.core.truth_(cljs.core.not_empty.call(null, childsParents__11507)) ? cljs.core.assoc.call(null, parentMap__11506, tag, childsParents__11507) : cljs.core.dissoc.call(null, parentMap__11506, tag);
var deriv_seq__11509 = cljs.core.flatten.call(null, cljs.core.map.call(null, function(p1__11489_SHARP_) {
return cljs.core.cons.call(null, cljs.core.first.call(null, p1__11489_SHARP_), cljs.core.interpose.call(null, cljs.core.first.call(null, p1__11489_SHARP_), cljs.core.second.call(null, p1__11489_SHARP_)))
}, cljs.core.seq.call(null, newParents__11508)));
if(cljs.core.contains_QMARK_.call(null, parentMap__11506.call(null, tag), parent)) {
return cljs.core.reduce.call(null, function(p1__11490_SHARP_, p2__11491_SHARP_) {
return cljs.core.apply.call(null, cljs.core.derive, p1__11490_SHARP_, p2__11491_SHARP_)
}, cljs.core.make_hierarchy.call(null), cljs.core.partition.call(null, 2, deriv_seq__11509))
}else {
return h
}
};
underive = function(h, tag, parent) {
switch(arguments.length) {
case 2:
return underive__2.call(this, h, tag);
case 3:
return underive__3.call(this, h, tag, parent)
}
throw"Invalid arity: " + arguments.length;
};
underive.cljs$lang$arity$2 = underive__2;
underive.cljs$lang$arity$3 = underive__3;
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__11517 = cljs.core.deref.call(null, prefer_table).call(null, x);
var or__3824__auto____11519 = cljs.core.truth_(function() {
var and__3822__auto____11518 = xprefs__11517;
if(cljs.core.truth_(and__3822__auto____11518)) {
return xprefs__11517.call(null, y)
}else {
return and__3822__auto____11518
}
}()) ? true : null;
if(cljs.core.truth_(or__3824__auto____11519)) {
return or__3824__auto____11519
}else {
var or__3824__auto____11521 = function() {
var ps__11520 = cljs.core.parents.call(null, y);
while(true) {
if(cljs.core.count.call(null, ps__11520) > 0) {
if(cljs.core.truth_(prefers_STAR_.call(null, x, cljs.core.first.call(null, ps__11520), prefer_table))) {
}else {
}
var G__11524 = cljs.core.rest.call(null, ps__11520);
ps__11520 = G__11524;
continue
}else {
return null
}
break
}
}();
if(cljs.core.truth_(or__3824__auto____11521)) {
return or__3824__auto____11521
}else {
var or__3824__auto____11523 = function() {
var ps__11522 = cljs.core.parents.call(null, x);
while(true) {
if(cljs.core.count.call(null, ps__11522) > 0) {
if(cljs.core.truth_(prefers_STAR_.call(null, cljs.core.first.call(null, ps__11522), y, prefer_table))) {
}else {
}
var G__11525 = cljs.core.rest.call(null, ps__11522);
ps__11522 = G__11525;
continue
}else {
return null
}
break
}
}();
if(cljs.core.truth_(or__3824__auto____11523)) {
return or__3824__auto____11523
}else {
return false
}
}
}
};
cljs.core.dominates = function dominates(x, y, prefer_table) {
var or__3824__auto____11527 = cljs.core.prefers_STAR_.call(null, x, y, prefer_table);
if(cljs.core.truth_(or__3824__auto____11527)) {
return or__3824__auto____11527
}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__11545 = cljs.core.reduce.call(null, function(be, p__11537) {
var vec__11538__11539 = p__11537;
var k__11540 = cljs.core.nth.call(null, vec__11538__11539, 0, null);
var ___11541 = cljs.core.nth.call(null, vec__11538__11539, 1, null);
var e__11542 = vec__11538__11539;
if(cljs.core.isa_QMARK_.call(null, dispatch_val, k__11540)) {
var be2__11544 = cljs.core.truth_(function() {
var or__3824__auto____11543 = be == null;
if(or__3824__auto____11543) {
return or__3824__auto____11543
}else {
return cljs.core.dominates.call(null, k__11540, cljs.core.first.call(null, be), prefer_table)
}
}()) ? e__11542 : be;
if(cljs.core.truth_(cljs.core.dominates.call(null, cljs.core.first.call(null, be2__11544), k__11540, prefer_table))) {
}else {
throw new Error([cljs.core.str("Multiple methods in multimethod '"), cljs.core.str(name), cljs.core.str("' match dispatch value: "), cljs.core.str(dispatch_val), cljs.core.str(" -> "), cljs.core.str(k__11540), cljs.core.str(" and "), cljs.core.str(cljs.core.first.call(null, be2__11544)), cljs.core.str(", and neither is preferred")].join(""));
}
return be2__11544
}else {
return be
}
}, null, cljs.core.deref.call(null, method_table));
if(cljs.core.truth_(best_entry__11545)) {
if(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__11545));
return cljs.core.second.call(null, best_entry__11545)
}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(function() {
var and__3822__auto____11550 = mf;
if(and__3822__auto____11550) {
return mf.cljs$core$IMultiFn$_reset$arity$1
}else {
return and__3822__auto____11550
}
}()) {
return mf.cljs$core$IMultiFn$_reset$arity$1(mf)
}else {
var x__2387__auto____11551 = mf == null ? null : mf;
return function() {
var or__3824__auto____11552 = cljs.core._reset[goog.typeOf(x__2387__auto____11551)];
if(or__3824__auto____11552) {
return or__3824__auto____11552
}else {
var or__3824__auto____11553 = cljs.core._reset["_"];
if(or__3824__auto____11553) {
return or__3824__auto____11553
}else {
throw cljs.core.missing_protocol.call(null, "IMultiFn.-reset", mf);
}
}
}().call(null, mf)
}
};
cljs.core._add_method = function _add_method(mf, dispatch_val, method) {
if(function() {
var and__3822__auto____11558 = mf;
if(and__3822__auto____11558) {
return mf.cljs$core$IMultiFn$_add_method$arity$3
}else {
return and__3822__auto____11558
}
}()) {
return mf.cljs$core$IMultiFn$_add_method$arity$3(mf, dispatch_val, method)
}else {
var x__2387__auto____11559 = mf == null ? null : mf;
return function() {
var or__3824__auto____11560 = cljs.core._add_method[goog.typeOf(x__2387__auto____11559)];
if(or__3824__auto____11560) {
return or__3824__auto____11560
}else {
var or__3824__auto____11561 = cljs.core._add_method["_"];
if(or__3824__auto____11561) {
return or__3824__auto____11561
}else {
throw cljs.core.missing_protocol.call(null, "IMultiFn.-add-method", mf);
}
}
}().call(null, mf, dispatch_val, method)
}
};
cljs.core._remove_method = function _remove_method(mf, dispatch_val) {
if(function() {
var and__3822__auto____11566 = mf;
if(and__3822__auto____11566) {
return mf.cljs$core$IMultiFn$_remove_method$arity$2
}else {
return and__3822__auto____11566
}
}()) {
return mf.cljs$core$IMultiFn$_remove_method$arity$2(mf, dispatch_val)
}else {
var x__2387__auto____11567 = mf == null ? null : mf;
return function() {
var or__3824__auto____11568 = cljs.core._remove_method[goog.typeOf(x__2387__auto____11567)];
if(or__3824__auto____11568) {
return or__3824__auto____11568
}else {
var or__3824__auto____11569 = cljs.core._remove_method["_"];
if(or__3824__auto____11569) {
return or__3824__auto____11569
}else {
throw cljs.core.missing_protocol.call(null, "IMultiFn.-remove-method", mf);
}
}
}().call(null, mf, dispatch_val)
}
};
cljs.core._prefer_method = function _prefer_method(mf, dispatch_val, dispatch_val_y) {
if(function() {
var and__3822__auto____11574 = mf;
if(and__3822__auto____11574) {
return mf.cljs$core$IMultiFn$_prefer_method$arity$3
}else {
return and__3822__auto____11574
}
}()) {
return mf.cljs$core$IMultiFn$_prefer_method$arity$3(mf, dispatch_val, dispatch_val_y)
}else {
var x__2387__auto____11575 = mf == null ? null : mf;
return function() {
var or__3824__auto____11576 = cljs.core._prefer_method[goog.typeOf(x__2387__auto____11575)];
if(or__3824__auto____11576) {
return or__3824__auto____11576
}else {
var or__3824__auto____11577 = cljs.core._prefer_method["_"];
if(or__3824__auto____11577) {
return or__3824__auto____11577
}else {
throw cljs.core.missing_protocol.call(null, "IMultiFn.-prefer-method", mf);
}
}
}().call(null, mf, dispatch_val, dispatch_val_y)
}
};
cljs.core._get_method = function _get_method(mf, dispatch_val) {
if(function() {
var and__3822__auto____11582 = mf;
if(and__3822__auto____11582) {
return mf.cljs$core$IMultiFn$_get_method$arity$2
}else {
return and__3822__auto____11582
}
}()) {
return mf.cljs$core$IMultiFn$_get_method$arity$2(mf, dispatch_val)
}else {
var x__2387__auto____11583 = mf == null ? null : mf;
return function() {
var or__3824__auto____11584 = cljs.core._get_method[goog.typeOf(x__2387__auto____11583)];
if(or__3824__auto____11584) {
return or__3824__auto____11584
}else {
var or__3824__auto____11585 = cljs.core._get_method["_"];
if(or__3824__auto____11585) {
return or__3824__auto____11585
}else {
throw cljs.core.missing_protocol.call(null, "IMultiFn.-get-method", mf);
}
}
}().call(null, mf, dispatch_val)
}
};
cljs.core._methods = function _methods(mf) {
if(function() {
var and__3822__auto____11590 = mf;
if(and__3822__auto____11590) {
return mf.cljs$core$IMultiFn$_methods$arity$1
}else {
return and__3822__auto____11590
}
}()) {
return mf.cljs$core$IMultiFn$_methods$arity$1(mf)
}else {
var x__2387__auto____11591 = mf == null ? null : mf;
return function() {
var or__3824__auto____11592 = cljs.core._methods[goog.typeOf(x__2387__auto____11591)];
if(or__3824__auto____11592) {
return or__3824__auto____11592
}else {
var or__3824__auto____11593 = cljs.core._methods["_"];
if(or__3824__auto____11593) {
return or__3824__auto____11593
}else {
throw cljs.core.missing_protocol.call(null, "IMultiFn.-methods", mf);
}
}
}().call(null, mf)
}
};
cljs.core._prefers = function _prefers(mf) {
if(function() {
var and__3822__auto____11598 = mf;
if(and__3822__auto____11598) {
return mf.cljs$core$IMultiFn$_prefers$arity$1
}else {
return and__3822__auto____11598
}
}()) {
return mf.cljs$core$IMultiFn$_prefers$arity$1(mf)
}else {
var x__2387__auto____11599 = mf == null ? null : mf;
return function() {
var or__3824__auto____11600 = cljs.core._prefers[goog.typeOf(x__2387__auto____11599)];
if(or__3824__auto____11600) {
return or__3824__auto____11600
}else {
var or__3824__auto____11601 = cljs.core._prefers["_"];
if(or__3824__auto____11601) {
return or__3824__auto____11601
}else {
throw cljs.core.missing_protocol.call(null, "IMultiFn.-prefers", mf);
}
}
}().call(null, mf)
}
};
cljs.core._dispatch = function _dispatch(mf, args) {
if(function() {
var and__3822__auto____11606 = mf;
if(and__3822__auto____11606) {
return mf.cljs$core$IMultiFn$_dispatch$arity$2
}else {
return and__3822__auto____11606
}
}()) {
return mf.cljs$core$IMultiFn$_dispatch$arity$2(mf, args)
}else {
var x__2387__auto____11607 = mf == null ? null : mf;
return function() {
var or__3824__auto____11608 = cljs.core._dispatch[goog.typeOf(x__2387__auto____11607)];
if(or__3824__auto____11608) {
return or__3824__auto____11608
}else {
var or__3824__auto____11609 = cljs.core._dispatch["_"];
if(or__3824__auto____11609) {
return or__3824__auto____11609
}else {
throw cljs.core.missing_protocol.call(null, "IMultiFn.-dispatch", mf);
}
}
}().call(null, mf, args)
}
};
cljs.core.do_dispatch = function do_dispatch(mf, dispatch_fn, args) {
var dispatch_val__11612 = cljs.core.apply.call(null, dispatch_fn, args);
var target_fn__11613 = cljs.core._get_method.call(null, mf, dispatch_val__11612);
if(cljs.core.truth_(target_fn__11613)) {
}else {
throw new Error([cljs.core.str("No method in multimethod '"), cljs.core.str(cljs.core.name), cljs.core.str("' for dispatch value: "), cljs.core.str(dispatch_val__11612)].join(""));
}
return cljs.core.apply.call(null, target_fn__11613, args)
};
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;
this.cljs$lang$protocol_mask$partition0$ = 4194304;
this.cljs$lang$protocol_mask$partition1$ = 64
};
cljs.core.MultiFn.cljs$lang$type = true;
cljs.core.MultiFn.cljs$lang$ctorPrSeq = function(this__2333__auto__) {
return cljs.core.list.call(null, "cljs.core/MultiFn")
};
cljs.core.MultiFn.prototype.cljs$core$IHash$_hash$arity$1 = function(this$) {
var this__11614 = this;
return goog.getUid(this$)
};
cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_reset$arity$1 = function(mf) {
var this__11615 = this;
cljs.core.swap_BANG_.call(null, this__11615.method_table, function(mf) {
return cljs.core.ObjMap.EMPTY
});
cljs.core.swap_BANG_.call(null, this__11615.method_cache, function(mf) {
return cljs.core.ObjMap.EMPTY
});
cljs.core.swap_BANG_.call(null, this__11615.prefer_table, function(mf) {
return cljs.core.ObjMap.EMPTY
});
cljs.core.swap_BANG_.call(null, this__11615.cached_hierarchy, function(mf) {
return null
});
return mf
};
cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_add_method$arity$3 = function(mf, dispatch_val, method) {
var this__11616 = this;
cljs.core.swap_BANG_.call(null, this__11616.method_table, cljs.core.assoc, dispatch_val, method);
cljs.core.reset_cache.call(null, this__11616.method_cache, this__11616.method_table, this__11616.cached_hierarchy, this__11616.hierarchy);
return mf
};
cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_remove_method$arity$2 = function(mf, dispatch_val) {
var this__11617 = this;
cljs.core.swap_BANG_.call(null, this__11617.method_table, cljs.core.dissoc, dispatch_val);
cljs.core.reset_cache.call(null, this__11617.method_cache, this__11617.method_table, this__11617.cached_hierarchy, this__11617.hierarchy);
return mf
};
cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_get_method$arity$2 = function(mf, dispatch_val) {
var this__11618 = this;
if(cljs.core._EQ_.call(null, cljs.core.deref.call(null, this__11618.cached_hierarchy), cljs.core.deref.call(null, this__11618.hierarchy))) {
}else {
cljs.core.reset_cache.call(null, this__11618.method_cache, this__11618.method_table, this__11618.cached_hierarchy, this__11618.hierarchy)
}
var temp__3971__auto____11619 = cljs.core.deref.call(null, this__11618.method_cache).call(null, dispatch_val);
if(cljs.core.truth_(temp__3971__auto____11619)) {
var target_fn__11620 = temp__3971__auto____11619;
return target_fn__11620
}else {
var temp__3971__auto____11621 = cljs.core.find_and_cache_best_method.call(null, this__11618.name, dispatch_val, this__11618.hierarchy, this__11618.method_table, this__11618.prefer_table, this__11618.method_cache, this__11618.cached_hierarchy);
if(cljs.core.truth_(temp__3971__auto____11621)) {
var target_fn__11622 = temp__3971__auto____11621;
return target_fn__11622
}else {
return cljs.core.deref.call(null, this__11618.method_table).call(null, this__11618.default_dispatch_val)
}
}
};
cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_prefer_method$arity$3 = function(mf, dispatch_val_x, dispatch_val_y) {
var this__11623 = this;
if(cljs.core.truth_(cljs.core.prefers_STAR_.call(null, dispatch_val_x, dispatch_val_y, this__11623.prefer_table))) {
throw new Error([cljs.core.str("Preference conflict in multimethod '"), cljs.core.str(this__11623.name), cljs.core.str("': "), cljs.core.str(dispatch_val_y), cljs.core.str(" is already preferred to "), cljs.core.str(dispatch_val_x)].join(""));
}else {
}
cljs.core.swap_BANG_.call(null, this__11623.prefer_table, function(old) {
return cljs.core.assoc.call(null, old, dispatch_val_x, cljs.core.conj.call(null, cljs.core._lookup.call(null, old, dispatch_val_x, cljs.core.PersistentHashSet.EMPTY), dispatch_val_y))
});
return cljs.core.reset_cache.call(null, this__11623.method_cache, this__11623.method_table, this__11623.cached_hierarchy, this__11623.hierarchy)
};
cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_methods$arity$1 = function(mf) {
var this__11624 = this;
return cljs.core.deref.call(null, this__11624.method_table)
};
cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_prefers$arity$1 = function(mf) {
var this__11625 = this;
return cljs.core.deref.call(null, this__11625.prefer_table)
};
cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_dispatch$arity$2 = function(mf, args) {
var this__11626 = this;
return cljs.core.do_dispatch.call(null, mf, this__11626.dispatch_fn, args)
};
cljs.core.MultiFn;
cljs.core.MultiFn.prototype.call = function() {
var G__11628__delegate = function(_, args) {
var self__11627 = this;
return cljs.core._dispatch.call(null, self__11627, args)
};
var G__11628 = 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__11628__delegate.call(this, _, args)
};
G__11628.cljs$lang$maxFixedArity = 1;
G__11628.cljs$lang$applyTo = function(arglist__11629) {
var _ = cljs.core.first(arglist__11629);
var args = cljs.core.rest(arglist__11629);
return G__11628__delegate(_, args)
};
G__11628.cljs$lang$arity$variadic = G__11628__delegate;
return G__11628
}();
cljs.core.MultiFn.prototype.apply = function(_, args) {
var self__11630 = this;
return cljs.core._dispatch.call(null, self__11630, args)
};
cljs.core.remove_all_methods = function remove_all_methods(multifn) {
return cljs.core._reset.call(null, multifn)
};
cljs.core.remove_method = function remove_method(multifn, dispatch_val) {
return cljs.core._remove_method.call(null, multifn, dispatch_val)
};
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)
};
cljs.core.methods$ = function methods$(multifn) {
return cljs.core._methods.call(null, multifn)
};
cljs.core.get_method = function get_method(multifn, dispatch_val) {
return cljs.core._get_method.call(null, multifn, dispatch_val)
};
cljs.core.prefers = function prefers(multifn) {
return cljs.core._prefers.call(null, multifn)
};
cljs.core.UUID = function(uuid) {
this.uuid = uuid;
this.cljs$lang$protocol_mask$partition1$ = 0;
this.cljs$lang$protocol_mask$partition0$ = 543162368
};
cljs.core.UUID.cljs$lang$type = true;
cljs.core.UUID.cljs$lang$ctorPrSeq = function(this__2333__auto__) {
return cljs.core.list.call(null, "cljs.core/UUID")
};
cljs.core.UUID.prototype.cljs$core$IHash$_hash$arity$1 = function(this$) {
var this__11631 = this;
return goog.string.hashCode(cljs.core.pr_str.call(null, this$))
};
cljs.core.UUID.prototype.cljs$core$IPrintable$_pr_seq$arity$2 = function(_11633, _) {
var this__11632 = this;
return cljs.core.list.call(null, [cljs.core.str('#uuid "'), cljs.core.str(this__11632.uuid), cljs.core.str('"')].join(""))
};
cljs.core.UUID.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(_, other) {
var this__11634 = this;
var and__3822__auto____11635 = cljs.core.instance_QMARK_.call(null, cljs.core.UUID, other);
if(and__3822__auto____11635) {
return this__11634.uuid === other.uuid
}else {
return and__3822__auto____11635
}
};
cljs.core.UUID.prototype.toString = function() {
var this__11636 = this;
var this__11637 = this;
return cljs.core.pr_str.call(null, this__11637)
};
cljs.core.UUID;
goog.provide("goog.dom.classes");
goog.require("goog.array");
goog.dom.classes.set = function(element, className) {
element.className = className
};
goog.dom.classes.get = function(element) {
var className = element.className;
return className && typeof className.split == "function" ? className.split(/\s+/) : []
};
goog.dom.classes.add = function(element, var_args) {
var classes = goog.dom.classes.get(element);
var args = goog.array.slice(arguments, 1);
var b = goog.dom.classes.add_(classes, args);
element.className = classes.join(" ");
return b
};
goog.dom.classes.remove = function(element, var_args) {
var classes = goog.dom.classes.get(element);
var args = goog.array.slice(arguments, 1);
var b = goog.dom.classes.remove_(classes, args);
element.className = classes.join(" ");
return b
};
goog.dom.classes.add_ = function(classes, args) {
var rv = 0;
for(var i = 0;i < args.length;i++) {
if(!goog.array.contains(classes, args[i])) {
classes.push(args[i]);
rv++
}
}
return rv == args.length
};
goog.dom.classes.remove_ = function(classes, args) {
var rv = 0;
for(var i = 0;i < classes.length;i++) {
if(goog.array.contains(args, classes[i])) {
goog.array.splice(classes, i--, 1);
rv++
}
}
return rv == args.length
};
goog.dom.classes.swap = function(element, fromClass, toClass) {
var classes = goog.dom.classes.get(element);
var removed = false;
for(var i = 0;i < classes.length;i++) {
if(classes[i] == fromClass) {
goog.array.splice(classes, i--, 1);
removed = true
}
}
if(removed) {
classes.push(toClass);
element.className = classes.join(" ")
}
return removed
};
goog.dom.classes.addRemove = function(element, classesToRemove, classesToAdd) {
var classes = goog.dom.classes.get(element);
if(goog.isString(classesToRemove)) {
goog.array.remove(classes, classesToRemove)
}else {
if(goog.isArray(classesToRemove)) {
goog.dom.classes.remove_(classes, classesToRemove)
}
}
if(goog.isString(classesToAdd) && !goog.array.contains(classes, classesToAdd)) {
classes.push(classesToAdd)
}else {
if(goog.isArray(classesToAdd)) {
goog.dom.classes.add_(classes, classesToAdd)
}
}
element.className = classes.join(" ")
};
goog.dom.classes.has = function(element, className) {
return goog.array.contains(goog.dom.classes.get(element), className)
};
goog.dom.classes.enable = function(element, className, enabled) {
if(enabled) {
goog.dom.classes.add(element, className)
}else {
goog.dom.classes.remove(element, className)
}
};
goog.dom.classes.toggle = function(element, className) {
var add = !goog.dom.classes.has(element, className);
goog.dom.classes.enable(element, className, add);
return add
};
goog.provide("goog.disposable.IDisposable");
goog.disposable.IDisposable = function() {
};
goog.disposable.IDisposable.prototype.dispose;
goog.disposable.IDisposable.prototype.isDisposed;
goog.provide("goog.Disposable");
goog.provide("goog.dispose");
goog.require("goog.disposable.IDisposable");
goog.Disposable = function() {
if(goog.Disposable.ENABLE_MONITORING) {
goog.Disposable.instances_[goog.getUid(this)] = this
}
};
goog.Disposable.ENABLE_MONITORING = false;
goog.Disposable.instances_ = {};
goog.Disposable.getUndisposedObjects = function() {
var ret = [];
for(var id in goog.Disposable.instances_) {
if(goog.Disposable.instances_.hasOwnProperty(id)) {
ret.push(goog.Disposable.instances_[Number(id)])
}
}
return ret
};
goog.Disposable.clearUndisposedObjects = function() {
goog.Disposable.instances_ = {}
};
goog.Disposable.prototype.disposed_ = false;
goog.Disposable.prototype.isDisposed = function() {
return this.disposed_
};
goog.Disposable.prototype.getDisposed = goog.Disposable.prototype.isDisposed;
goog.Disposable.prototype.dispose = function() {
if(!this.disposed_) {
this.disposed_ = true;
this.disposeInternal();
if(goog.Disposable.ENABLE_MONITORING) {
var uid = goog.getUid(this);
if(!goog.Disposable.instances_.hasOwnProperty(uid)) {
throw Error(this + " did not call the goog.Disposable base " + "constructor or was disposed of after a clearUndisposedObjects " + "call");
}
delete goog.Disposable.instances_[uid]
}
}
};
goog.Disposable.prototype.disposeInternal = function() {
};
goog.dispose = function(obj) {
if(obj && typeof obj.dispose == "function") {
obj.dispose()
}
};
goog.provide("goog.debug.EntryPointMonitor");
goog.provide("goog.debug.entryPointRegistry");
goog.debug.EntryPointMonitor = function() {
};
goog.debug.EntryPointMonitor.prototype.wrap;
goog.debug.EntryPointMonitor.prototype.unwrap;
goog.debug.entryPointRegistry.refList_ = [];
goog.debug.entryPointRegistry.register = function(callback) {
goog.debug.entryPointRegistry.refList_[goog.debug.entryPointRegistry.refList_.length] = callback
};
goog.debug.entryPointRegistry.monitorAll = function(monitor) {
var transformer = goog.bind(monitor.wrap, monitor);
for(var i = 0;i < goog.debug.entryPointRegistry.refList_.length;i++) {
goog.debug.entryPointRegistry.refList_[i](transformer)
}
};
goog.debug.entryPointRegistry.unmonitorAllIfPossible = function(monitor) {
var transformer = goog.bind(monitor.unwrap, monitor);
for(var i = 0;i < goog.debug.entryPointRegistry.refList_.length;i++) {
goog.debug.entryPointRegistry.refList_[i](transformer)
}
};
goog.provide("goog.debug.errorHandlerWeakDep");
goog.debug.errorHandlerWeakDep = {protectEntryPoint:function(fn, opt_tracers) {
return fn
}};
goog.provide("goog.userAgent");
goog.require("goog.string");
goog.userAgent.ASSUME_IE = false;
goog.userAgent.ASSUME_GECKO = false;
goog.userAgent.ASSUME_WEBKIT = false;
goog.userAgent.ASSUME_MOBILE_WEBKIT = false;
goog.userAgent.ASSUME_OPERA = false;
goog.userAgent.BROWSER_KNOWN_ = goog.userAgent.ASSUME_IE || goog.userAgent.ASSUME_GECKO || goog.userAgent.ASSUME_MOBILE_WEBKIT || goog.userAgent.ASSUME_WEBKIT || goog.userAgent.ASSUME_OPERA;
goog.userAgent.getUserAgentString = function() {
return goog.global["navigator"] ? goog.global["navigator"].userAgent : null
};
goog.userAgent.getNavigator = function() {
return goog.global["navigator"]
};
goog.userAgent.init_ = function() {
goog.userAgent.detectedOpera_ = false;
goog.userAgent.detectedIe_ = false;
goog.userAgent.detectedWebkit_ = false;
goog.userAgent.detectedMobile_ = false;
goog.userAgent.detectedGecko_ = false;
var ua;
if(!goog.userAgent.BROWSER_KNOWN_ && (ua = goog.userAgent.getUserAgentString())) {
var navigator = goog.userAgent.getNavigator();
goog.userAgent.detectedOpera_ = ua.indexOf("Opera") == 0;
goog.userAgent.detectedIe_ = !goog.userAgent.detectedOpera_ && ua.indexOf("MSIE") != -1;
goog.userAgent.detectedWebkit_ = !goog.userAgent.detectedOpera_ && ua.indexOf("WebKit") != -1;
goog.userAgent.detectedMobile_ = goog.userAgent.detectedWebkit_ && ua.indexOf("Mobile") != -1;
goog.userAgent.detectedGecko_ = !goog.userAgent.detectedOpera_ && !goog.userAgent.detectedWebkit_ && navigator.product == "Gecko"
}
};
if(!goog.userAgent.BROWSER_KNOWN_) {
goog.userAgent.init_()
}
goog.userAgent.OPERA = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_OPERA : goog.userAgent.detectedOpera_;
goog.userAgent.IE = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_IE : goog.userAgent.detectedIe_;
goog.userAgent.GECKO = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_GECKO : goog.userAgent.detectedGecko_;
goog.userAgent.WEBKIT = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_WEBKIT || goog.userAgent.ASSUME_MOBILE_WEBKIT : goog.userAgent.detectedWebkit_;
goog.userAgent.MOBILE = goog.userAgent.ASSUME_MOBILE_WEBKIT || goog.userAgent.detectedMobile_;
goog.userAgent.SAFARI = goog.userAgent.WEBKIT;
goog.userAgent.determinePlatform_ = function() {
var navigator = goog.userAgent.getNavigator();
return navigator && navigator.platform || ""
};
goog.userAgent.PLATFORM = goog.userAgent.determinePlatform_();
goog.userAgent.ASSUME_MAC = false;
goog.userAgent.ASSUME_WINDOWS = false;
goog.userAgent.ASSUME_LINUX = false;
goog.userAgent.ASSUME_X11 = false;
goog.userAgent.PLATFORM_KNOWN_ = goog.userAgent.ASSUME_MAC || goog.userAgent.ASSUME_WINDOWS || goog.userAgent.ASSUME_LINUX || goog.userAgent.ASSUME_X11;
goog.userAgent.initPlatform_ = function() {
goog.userAgent.detectedMac_ = goog.string.contains(goog.userAgent.PLATFORM, "Mac");
goog.userAgent.detectedWindows_ = goog.string.contains(goog.userAgent.PLATFORM, "Win");
goog.userAgent.detectedLinux_ = goog.string.contains(goog.userAgent.PLATFORM, "Linux");
goog.userAgent.detectedX11_ = !!goog.userAgent.getNavigator() && goog.string.contains(goog.userAgent.getNavigator()["appVersion"] || "", "X11")
};
if(!goog.userAgent.PLATFORM_KNOWN_) {
goog.userAgent.initPlatform_()
}
goog.userAgent.MAC = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_MAC : goog.userAgent.detectedMac_;
goog.userAgent.WINDOWS = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_WINDOWS : goog.userAgent.detectedWindows_;
goog.userAgent.LINUX = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_LINUX : goog.userAgent.detectedLinux_;
goog.userAgent.X11 = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_X11 : goog.userAgent.detectedX11_;
goog.userAgent.determineVersion_ = function() {
var version = "", re;
if(goog.userAgent.OPERA && goog.global["opera"]) {
var operaVersion = goog.global["opera"].version;
version = typeof operaVersion == "function" ? operaVersion() : operaVersion
}else {
if(goog.userAgent.GECKO) {
re = /rv\:([^\);]+)(\)|;)/
}else {
if(goog.userAgent.IE) {
re = /MSIE\s+([^\);]+)(\)|;)/
}else {
if(goog.userAgent.WEBKIT) {
re = /WebKit\/(\S+)/
}
}
}
if(re) {
var arr = re.exec(goog.userAgent.getUserAgentString());
version = arr ? arr[1] : ""
}
}
if(goog.userAgent.IE) {
var docMode = goog.userAgent.getDocumentMode_();
if(docMode > parseFloat(version)) {
return String(docMode)
}
}
return version
};
goog.userAgent.getDocumentMode_ = function() {
var doc = goog.global["document"];
return doc ? doc["documentMode"] : undefined
};
goog.userAgent.VERSION = goog.userAgent.determineVersion_();
goog.userAgent.compare = function(v1, v2) {
return goog.string.compareVersions(v1, v2)
};
goog.userAgent.isVersionCache_ = {};
goog.userAgent.isVersion = function(version) {
return goog.userAgent.isVersionCache_[version] || (goog.userAgent.isVersionCache_[version] = goog.string.compareVersions(goog.userAgent.VERSION, version) >= 0)
};
goog.provide("goog.events.BrowserFeature");
goog.require("goog.userAgent");
goog.events.BrowserFeature = {HAS_W3C_BUTTON:!goog.userAgent.IE || goog.userAgent.isVersion("9"), SET_KEY_CODE_TO_PREVENT_DEFAULT:goog.userAgent.IE && !goog.userAgent.isVersion("8")};
goog.provide("goog.events.Event");
goog.require("goog.Disposable");
goog.events.Event = function(type, opt_target) {
goog.Disposable.call(this);
this.type = type;
this.target = opt_target;
this.currentTarget = this.target
};
goog.inherits(goog.events.Event, goog.Disposable);
goog.events.Event.prototype.disposeInternal = function() {
delete this.type;
delete this.target;
delete this.currentTarget
};
goog.events.Event.prototype.propagationStopped_ = false;
goog.events.Event.prototype.returnValue_ = true;
goog.events.Event.prototype.stopPropagation = function() {
this.propagationStopped_ = true
};
goog.events.Event.prototype.preventDefault = function() {
this.returnValue_ = false
};
goog.events.Event.stopPropagation = function(e) {
e.stopPropagation()
};
goog.events.Event.preventDefault = function(e) {
e.preventDefault()
};
goog.provide("goog.events.EventType");
goog.require("goog.userAgent");
goog.events.EventType = {CLICK:"click", DBLCLICK:"dblclick", MOUSEDOWN:"mousedown", MOUSEUP:"mouseup", MOUSEOVER:"mouseover", MOUSEOUT:"mouseout", MOUSEMOVE:"mousemove", SELECTSTART:"selectstart", KEYPRESS:"keypress", KEYDOWN:"keydown", KEYUP:"keyup", BLUR:"blur", FOCUS:"focus", DEACTIVATE:"deactivate", FOCUSIN:goog.userAgent.IE ? "focusin" : "DOMFocusIn", FOCUSOUT:goog.userAgent.IE ? "focusout" : "DOMFocusOut", CHANGE:"change", SELECT:"select", SUBMIT:"submit", INPUT:"input", PROPERTYCHANGE:"propertychange",
DRAGSTART:"dragstart", DRAGENTER:"dragenter", DRAGOVER:"dragover", DRAGLEAVE:"dragleave", DROP:"drop", TOUCHSTART:"touchstart", TOUCHMOVE:"touchmove", TOUCHEND:"touchend", TOUCHCANCEL:"touchcancel", CONTEXTMENU:"contextmenu", ERROR:"error", HELP:"help", LOAD:"load", LOSECAPTURE:"losecapture", READYSTATECHANGE:"readystatechange", RESIZE:"resize", SCROLL:"scroll", UNLOAD:"unload", HASHCHANGE:"hashchange", PAGEHIDE:"pagehide", PAGESHOW:"pageshow", POPSTATE:"popstate", COPY:"copy", PASTE:"paste", CUT:"cut",
MESSAGE:"message", CONNECT:"connect"};
goog.provide("goog.reflect");
goog.reflect.object = function(type, object) {
return object
};
goog.reflect.sinkValue = new Function("a", "return a");
goog.provide("goog.events.BrowserEvent");
goog.provide("goog.events.BrowserEvent.MouseButton");
goog.require("goog.events.BrowserFeature");
goog.require("goog.events.Event");
goog.require("goog.events.EventType");
goog.require("goog.reflect");
goog.require("goog.userAgent");
goog.events.BrowserEvent = function(opt_e, opt_currentTarget) {
if(opt_e) {
this.init(opt_e, opt_currentTarget)
}
};
goog.inherits(goog.events.BrowserEvent, goog.events.Event);
goog.events.BrowserEvent.MouseButton = {LEFT:0, MIDDLE:1, RIGHT:2};
goog.events.BrowserEvent.IEButtonMap = [1, 4, 2];
goog.events.BrowserEvent.prototype.target = null;
goog.events.BrowserEvent.prototype.currentTarget;
goog.events.BrowserEvent.prototype.relatedTarget = null;
goog.events.BrowserEvent.prototype.offsetX = 0;
goog.events.BrowserEvent.prototype.offsetY = 0;
goog.events.BrowserEvent.prototype.clientX = 0;
goog.events.BrowserEvent.prototype.clientY = 0;
goog.events.BrowserEvent.prototype.screenX = 0;
goog.events.BrowserEvent.prototype.screenY = 0;
goog.events.BrowserEvent.prototype.button = 0;
goog.events.BrowserEvent.prototype.keyCode = 0;
goog.events.BrowserEvent.prototype.charCode = 0;
goog.events.BrowserEvent.prototype.ctrlKey = false;
goog.events.BrowserEvent.prototype.altKey = false;
goog.events.BrowserEvent.prototype.shiftKey = false;
goog.events.BrowserEvent.prototype.metaKey = false;
goog.events.BrowserEvent.prototype.state;
goog.events.BrowserEvent.prototype.platformModifierKey = false;
goog.events.BrowserEvent.prototype.event_ = null;
goog.events.BrowserEvent.prototype.init = function(e, opt_currentTarget) {
var type = this.type = e.type;
goog.events.Event.call(this, type);
this.target = e.target || e.srcElement;
this.currentTarget = opt_currentTarget;
var relatedTarget = e.relatedTarget;
if(relatedTarget) {
if(goog.userAgent.GECKO) {
try {
goog.reflect.sinkValue(relatedTarget.nodeName)
}catch(err) {
relatedTarget = null
}
}
}else {
if(type == goog.events.EventType.MOUSEOVER) {
relatedTarget = e.fromElement
}else {
if(type == goog.events.EventType.MOUSEOUT) {
relatedTarget = e.toElement
}
}
}
this.relatedTarget = relatedTarget;
this.offsetX = e.offsetX !== undefined ? e.offsetX : e.layerX;
this.offsetY = e.offsetY !== undefined ? e.offsetY : e.layerY;
this.clientX = e.clientX !== undefined ? e.clientX : e.pageX;
this.clientY = e.clientY !== undefined ? e.clientY : e.pageY;
this.screenX = e.screenX || 0;
this.screenY = e.screenY || 0;
this.button = e.button;
this.keyCode = e.keyCode || 0;
this.charCode = e.charCode || (type == "keypress" ? e.keyCode : 0);
this.ctrlKey = e.ctrlKey;
this.altKey = e.altKey;
this.shiftKey = e.shiftKey;
this.metaKey = e.metaKey;
this.platformModifierKey = goog.userAgent.MAC ? e.metaKey : e.ctrlKey;
this.state = e.state;
this.event_ = e;
delete this.returnValue_;
delete this.propagationStopped_
};
goog.events.BrowserEvent.prototype.isButton = function(button) {
if(!goog.events.BrowserFeature.HAS_W3C_BUTTON) {
if(this.type == "click") {
return button == goog.events.BrowserEvent.MouseButton.LEFT
}else {
return!!(this.event_.button & goog.events.BrowserEvent.IEButtonMap[button])
}
}else {
return this.event_.button == button
}
};
goog.events.BrowserEvent.prototype.isMouseActionButton = function() {
return this.isButton(goog.events.BrowserEvent.MouseButton.LEFT) && !(goog.userAgent.WEBKIT && goog.userAgent.MAC && this.ctrlKey)
};
goog.events.BrowserEvent.prototype.stopPropagation = function() {
goog.events.BrowserEvent.superClass_.stopPropagation.call(this);
if(this.event_.stopPropagation) {
this.event_.stopPropagation()
}else {
this.event_.cancelBubble = true
}
};
goog.events.BrowserEvent.prototype.preventDefault = function() {
goog.events.BrowserEvent.superClass_.preventDefault.call(this);
var be = this.event_;
if(!be.preventDefault) {
be.returnValue = false;
if(goog.events.BrowserFeature.SET_KEY_CODE_TO_PREVENT_DEFAULT) {
try {
var VK_F1 = 112;
var VK_F12 = 123;
if(be.ctrlKey || be.keyCode >= VK_F1 && be.keyCode <= VK_F12) {
be.keyCode = -1
}
}catch(ex) {
}
}
}else {
be.preventDefault()
}
};
goog.events.BrowserEvent.prototype.getBrowserEvent = function() {
return this.event_
};
goog.events.BrowserEvent.prototype.disposeInternal = function() {
goog.events.BrowserEvent.superClass_.disposeInternal.call(this);
this.event_ = null;
this.target = null;
this.currentTarget = null;
this.relatedTarget = null
};
goog.provide("goog.events.EventWrapper");
goog.events.EventWrapper = function() {
};
goog.events.EventWrapper.prototype.listen = function(src, listener, opt_capt, opt_scope, opt_eventHandler) {
};
goog.events.EventWrapper.prototype.unlisten = function(src, listener, opt_capt, opt_scope, opt_eventHandler) {
};
goog.provide("goog.events.Listener");
goog.events.Listener = function() {
};
goog.events.Listener.counter_ = 0;
goog.events.Listener.prototype.isFunctionListener_;
goog.events.Listener.prototype.listener;
goog.events.Listener.prototype.proxy;
goog.events.Listener.prototype.src;
goog.events.Listener.prototype.type;
goog.events.Listener.prototype.capture;
goog.events.Listener.prototype.handler;
goog.events.Listener.prototype.key = 0;
goog.events.Listener.prototype.removed = false;
goog.events.Listener.prototype.callOnce = false;
goog.events.Listener.prototype.init = function(listener, proxy, src, type, capture, opt_handler) {
if(goog.isFunction(listener)) {
this.isFunctionListener_ = true
}else {
if(listener && listener.handleEvent && goog.isFunction(listener.handleEvent)) {
this.isFunctionListener_ = false
}else {
throw Error("Invalid listener argument");
}
}
this.listener = listener;
this.proxy = proxy;
this.src = src;
this.type = type;
this.capture = !!capture;
this.handler = opt_handler;
this.callOnce = false;
this.key = ++goog.events.Listener.counter_;
this.removed = false
};
goog.events.Listener.prototype.handleEvent = function(eventObject) {
if(this.isFunctionListener_) {
return this.listener.call(this.handler || this.src, eventObject)
}
return this.listener.handleEvent.call(this.listener, eventObject)
};
goog.provide("goog.structs.SimplePool");
goog.require("goog.Disposable");
goog.structs.SimplePool = function(initialCount, maxCount) {
goog.Disposable.call(this);
this.maxCount_ = maxCount;
this.freeQueue_ = [];
this.createInitial_(initialCount)
};
goog.inherits(goog.structs.SimplePool, goog.Disposable);
goog.structs.SimplePool.prototype.createObjectFn_ = null;
goog.structs.SimplePool.prototype.disposeObjectFn_ = null;
goog.structs.SimplePool.prototype.setCreateObjectFn = function(createObjectFn) {
this.createObjectFn_ = createObjectFn
};
goog.structs.SimplePool.prototype.setDisposeObjectFn = function(disposeObjectFn) {
this.disposeObjectFn_ = disposeObjectFn
};
goog.structs.SimplePool.prototype.getObject = function() {
if(this.freeQueue_.length) {
return this.freeQueue_.pop()
}
return this.createObject()
};
goog.structs.SimplePool.prototype.releaseObject = function(obj) {
if(this.freeQueue_.length < this.maxCount_) {
this.freeQueue_.push(obj)
}else {
this.disposeObject(obj)
}
};
goog.structs.SimplePool.prototype.createInitial_ = function(initialCount) {
if(initialCount > this.maxCount_) {
throw Error("[goog.structs.SimplePool] Initial cannot be greater than max");
}
for(var i = 0;i < initialCount;i++) {
this.freeQueue_.push(this.createObject())
}
};
goog.structs.SimplePool.prototype.createObject = function() {
if(this.createObjectFn_) {
return this.createObjectFn_()
}else {
return{}
}
};
goog.structs.SimplePool.prototype.disposeObject = function(obj) {
if(this.disposeObjectFn_) {
this.disposeObjectFn_(obj)
}else {
if(goog.isObject(obj)) {
if(goog.isFunction(obj.dispose)) {
obj.dispose()
}else {
for(var i in obj) {
delete obj[i]
}
}
}
}
};
goog.structs.SimplePool.prototype.disposeInternal = function() {
goog.structs.SimplePool.superClass_.disposeInternal.call(this);
var freeQueue = this.freeQueue_;
while(freeQueue.length) {
this.disposeObject(freeQueue.pop())
}
delete this.freeQueue_
};
goog.provide("goog.events.pools");
goog.require("goog.events.BrowserEvent");
goog.require("goog.events.Listener");
goog.require("goog.structs.SimplePool");
goog.require("goog.userAgent.jscript");
goog.events.ASSUME_GOOD_GC = false;
goog.events.pools.getObject;
goog.events.pools.releaseObject;
goog.events.pools.getArray;
goog.events.pools.releaseArray;
goog.events.pools.getProxy;
goog.events.pools.setProxyCallbackFunction;
goog.events.pools.releaseProxy;
goog.events.pools.getListener;
goog.events.pools.releaseListener;
goog.events.pools.getEvent;
goog.events.pools.releaseEvent;
(function() {
var BAD_GC = !goog.events.ASSUME_GOOD_GC && goog.userAgent.jscript.HAS_JSCRIPT && !goog.userAgent.jscript.isVersion("5.7");
function getObject() {
return{count_:0, remaining_:0}
}
function getArray() {
return[]
}
var proxyCallbackFunction;
goog.events.pools.setProxyCallbackFunction = function(cb) {
proxyCallbackFunction = cb
};
function getProxy() {
var f = function(eventObject) {
return proxyCallbackFunction.call(f.src, f.key, eventObject)
};
return f
}
function getListener() {
return new goog.events.Listener
}
function getEvent() {
return new goog.events.BrowserEvent
}
if(!BAD_GC) {
goog.events.pools.getObject = getObject;
goog.events.pools.releaseObject = goog.nullFunction;
goog.events.pools.getArray = getArray;
goog.events.pools.releaseArray = goog.nullFunction;
goog.events.pools.getProxy = getProxy;
goog.events.pools.releaseProxy = goog.nullFunction;
goog.events.pools.getListener = getListener;
goog.events.pools.releaseListener = goog.nullFunction;
goog.events.pools.getEvent = getEvent;
goog.events.pools.releaseEvent = goog.nullFunction
}else {
goog.events.pools.getObject = function() {
return objectPool.getObject()
};
goog.events.pools.releaseObject = function(obj) {
objectPool.releaseObject(obj)
};
goog.events.pools.getArray = function() {
return arrayPool.getObject()
};
goog.events.pools.releaseArray = function(obj) {
arrayPool.releaseObject(obj)
};
goog.events.pools.getProxy = function() {
return proxyPool.getObject()
};
goog.events.pools.releaseProxy = function(obj) {
proxyPool.releaseObject(getProxy())
};
goog.events.pools.getListener = function() {
return listenerPool.getObject()
};
goog.events.pools.releaseListener = function(obj) {
listenerPool.releaseObject(obj)
};
goog.events.pools.getEvent = function() {
return eventPool.getObject()
};
goog.events.pools.releaseEvent = function(obj) {
eventPool.releaseObject(obj)
};
var OBJECT_POOL_INITIAL_COUNT = 0;
var OBJECT_POOL_MAX_COUNT = 600;
var objectPool = new goog.structs.SimplePool(OBJECT_POOL_INITIAL_COUNT, OBJECT_POOL_MAX_COUNT);
objectPool.setCreateObjectFn(getObject);
var ARRAY_POOL_INITIAL_COUNT = 0;
var ARRAY_POOL_MAX_COUNT = 600;
var arrayPool = new goog.structs.SimplePool(ARRAY_POOL_INITIAL_COUNT, ARRAY_POOL_MAX_COUNT);
arrayPool.setCreateObjectFn(getArray);
var HANDLE_EVENT_PROXY_POOL_INITIAL_COUNT = 0;
var HANDLE_EVENT_PROXY_POOL_MAX_COUNT = 600;
var proxyPool = new goog.structs.SimplePool(HANDLE_EVENT_PROXY_POOL_INITIAL_COUNT, HANDLE_EVENT_PROXY_POOL_MAX_COUNT);
proxyPool.setCreateObjectFn(getProxy);
var LISTENER_POOL_INITIAL_COUNT = 0;
var LISTENER_POOL_MAX_COUNT = 600;
var listenerPool = new goog.structs.SimplePool(LISTENER_POOL_INITIAL_COUNT, LISTENER_POOL_MAX_COUNT);
listenerPool.setCreateObjectFn(getListener);
var EVENT_POOL_INITIAL_COUNT = 0;
var EVENT_POOL_MAX_COUNT = 600;
var eventPool = new goog.structs.SimplePool(EVENT_POOL_INITIAL_COUNT, EVENT_POOL_MAX_COUNT);
eventPool.setCreateObjectFn(getEvent)
}
})();
goog.provide("goog.events");
goog.require("goog.array");
goog.require("goog.debug.entryPointRegistry");
goog.require("goog.debug.errorHandlerWeakDep");
goog.require("goog.events.BrowserEvent");
goog.require("goog.events.Event");
goog.require("goog.events.EventWrapper");
goog.require("goog.events.pools");
goog.require("goog.object");
goog.require("goog.userAgent");
goog.events.listeners_ = {};
goog.events.listenerTree_ = {};
goog.events.sources_ = {};
goog.events.onString_ = "on";
goog.events.onStringMap_ = {};
goog.events.keySeparator_ = "_";
goog.events.requiresSyntheticEventPropagation_;
goog.events.listen = function(src, type, listener, opt_capt, opt_handler) {
if(!type) {
throw Error("Invalid event type");
}else {
if(goog.isArray(type)) {
for(var i = 0;i < type.length;i++) {
goog.events.listen(src, type[i], listener, opt_capt, opt_handler)
}
return null
}else {
var capture = !!opt_capt;
var map = goog.events.listenerTree_;
if(!(type in map)) {
map[type] = goog.events.pools.getObject()
}
map = map[type];
if(!(capture in map)) {
map[capture] = goog.events.pools.getObject();
map.count_++
}
map = map[capture];
var srcUid = goog.getUid(src);
var listenerArray, listenerObj;
map.remaining_++;
if(!map[srcUid]) {
listenerArray = map[srcUid] = goog.events.pools.getArray();
map.count_++
}else {
listenerArray = map[srcUid];
for(var i = 0;i < listenerArray.length;i++) {
listenerObj = listenerArray[i];
if(listenerObj.listener == listener && listenerObj.handler == opt_handler) {
if(listenerObj.removed) {
break
}
return listenerArray[i].key
}
}
}
var proxy = goog.events.pools.getProxy();
proxy.src = src;
listenerObj = goog.events.pools.getListener();
listenerObj.init(listener, proxy, src, type, capture, opt_handler);
var key = listenerObj.key;
proxy.key = key;
listenerArray.push(listenerObj);
goog.events.listeners_[key] = listenerObj;
if(!goog.events.sources_[srcUid]) {
goog.events.sources_[srcUid] = goog.events.pools.getArray()
}
goog.events.sources_[srcUid].push(listenerObj);
if(src.addEventListener) {
if(src == goog.global || !src.customEvent_) {
src.addEventListener(type, proxy, capture)
}
}else {
src.attachEvent(goog.events.getOnString_(type), proxy)
}
return key
}
}
};
goog.events.listenOnce = function(src, type, listener, opt_capt, opt_handler) {
if(goog.isArray(type)) {
for(var i = 0;i < type.length;i++) {
goog.events.listenOnce(src, type[i], listener, opt_capt, opt_handler)
}
return null
}
var key = goog.events.listen(src, type, listener, opt_capt, opt_handler);
var listenerObj = goog.events.listeners_[key];
listenerObj.callOnce = true;
return key
};
goog.events.listenWithWrapper = function(src, wrapper, listener, opt_capt, opt_handler) {
wrapper.listen(src, listener, opt_capt, opt_handler)
};
goog.events.unlisten = function(src, type, listener, opt_capt, opt_handler) {
if(goog.isArray(type)) {
for(var i = 0;i < type.length;i++) {
goog.events.unlisten(src, type[i], listener, opt_capt, opt_handler)
}
return null
}
var capture = !!opt_capt;
var listenerArray = goog.events.getListeners_(src, type, capture);
if(!listenerArray) {
return false
}
for(var i = 0;i < listenerArray.length;i++) {
if(listenerArray[i].listener == listener && listenerArray[i].capture == capture && listenerArray[i].handler == opt_handler) {
return goog.events.unlistenByKey(listenerArray[i].key)
}
}
return false
};
goog.events.unlistenByKey = function(key) {
if(!goog.events.listeners_[key]) {
return false
}
var listener = goog.events.listeners_[key];
if(listener.removed) {
return false
}
var src = listener.src;
var type = listener.type;
var proxy = listener.proxy;
var capture = listener.capture;
if(src.removeEventListener) {
if(src == goog.global || !src.customEvent_) {
src.removeEventListener(type, proxy, capture)
}
}else {
if(src.detachEvent) {
src.detachEvent(goog.events.getOnString_(type), proxy)
}
}
var srcUid = goog.getUid(src);
var listenerArray = goog.events.listenerTree_[type][capture][srcUid];
if(goog.events.sources_[srcUid]) {
var sourcesArray = goog.events.sources_[srcUid];
goog.array.remove(sourcesArray, listener);
if(sourcesArray.length == 0) {
delete goog.events.sources_[srcUid]
}
}
listener.removed = true;
listenerArray.needsCleanup_ = true;
goog.events.cleanUp_(type, capture, srcUid, listenerArray);
delete goog.events.listeners_[key];
return true
};
goog.events.unlistenWithWrapper = function(src, wrapper, listener, opt_capt, opt_handler) {
wrapper.unlisten(src, listener, opt_capt, opt_handler)
};
goog.events.cleanUp_ = function(type, capture, srcUid, listenerArray) {
if(!listenerArray.locked_) {
if(listenerArray.needsCleanup_) {
for(var oldIndex = 0, newIndex = 0;oldIndex < listenerArray.length;oldIndex++) {
if(listenerArray[oldIndex].removed) {
var proxy = listenerArray[oldIndex].proxy;
proxy.src = null;
goog.events.pools.releaseProxy(proxy);
goog.events.pools.releaseListener(listenerArray[oldIndex]);
continue
}
if(oldIndex != newIndex) {
listenerArray[newIndex] = listenerArray[oldIndex]
}
newIndex++
}
listenerArray.length = newIndex;
listenerArray.needsCleanup_ = false;
if(newIndex == 0) {
goog.events.pools.releaseArray(listenerArray);
delete goog.events.listenerTree_[type][capture][srcUid];
goog.events.listenerTree_[type][capture].count_--;
if(goog.events.listenerTree_[type][capture].count_ == 0) {
goog.events.pools.releaseObject(goog.events.listenerTree_[type][capture]);
delete goog.events.listenerTree_[type][capture];
goog.events.listenerTree_[type].count_--
}
if(goog.events.listenerTree_[type].count_ == 0) {
goog.events.pools.releaseObject(goog.events.listenerTree_[type]);
delete goog.events.listenerTree_[type]
}
}
}
}
};
goog.events.removeAll = function(opt_obj, opt_type, opt_capt) {
var count = 0;
var noObj = opt_obj == null;
var noType = opt_type == null;
var noCapt = opt_capt == null;
opt_capt = !!opt_capt;
if(!noObj) {
var srcUid = goog.getUid(opt_obj);
if(goog.events.sources_[srcUid]) {
var sourcesArray = goog.events.sources_[srcUid];
for(var i = sourcesArray.length - 1;i >= 0;i--) {
var listener = sourcesArray[i];
if((noType || opt_type == listener.type) && (noCapt || opt_capt == listener.capture)) {
goog.events.unlistenByKey(listener.key);
count++
}
}
}
}else {
goog.object.forEach(goog.events.sources_, function(listeners) {
for(var i = listeners.length - 1;i >= 0;i--) {
var listener = listeners[i];
if((noType || opt_type == listener.type) && (noCapt || opt_capt == listener.capture)) {
goog.events.unlistenByKey(listener.key);
count++
}
}
})
}
return count
};
goog.events.getListeners = function(obj, type, capture) {
return goog.events.getListeners_(obj, type, capture) || []
};
goog.events.getListeners_ = function(obj, type, capture) {
var map = goog.events.listenerTree_;
if(type in map) {
map = map[type];
if(capture in map) {
map = map[capture];
var objUid = goog.getUid(obj);
if(map[objUid]) {
return map[objUid]
}
}
}
return null
};
goog.events.getListener = function(src, type, listener, opt_capt, opt_handler) {
var capture = !!opt_capt;
var listenerArray = goog.events.getListeners_(src, type, capture);
if(listenerArray) {
for(var i = 0;i < listenerArray.length;i++) {
if(listenerArray[i].listener == listener && listenerArray[i].capture == capture && listenerArray[i].handler == opt_handler) {
return listenerArray[i]
}
}
}
return null
};
goog.events.hasListener = function(obj, opt_type, opt_capture) {
var objUid = goog.getUid(obj);
var listeners = goog.events.sources_[objUid];
if(listeners) {
var hasType = goog.isDef(opt_type);
var hasCapture = goog.isDef(opt_capture);
if(hasType && hasCapture) {
var map = goog.events.listenerTree_[opt_type];
return!!map && !!map[opt_capture] && objUid in map[opt_capture]
}else {
if(!(hasType || hasCapture)) {
return true
}else {
return goog.array.some(listeners, function(listener) {
return hasType && listener.type == opt_type || hasCapture && listener.capture == opt_capture
})
}
}
}
return false
};
goog.events.expose = function(e) {
var str = [];
for(var key in e) {
if(e[key] && e[key].id) {
str.push(key + " = " + e[key] + " (" + e[key].id + ")")
}else {
str.push(key + " = " + e[key])
}
}
return str.join("\n")
};
goog.events.getOnString_ = function(type) {
if(type in goog.events.onStringMap_) {
return goog.events.onStringMap_[type]
}
return goog.events.onStringMap_[type] = goog.events.onString_ + type
};
goog.events.fireListeners = function(obj, type, capture, eventObject) {
var map = goog.events.listenerTree_;
if(type in map) {
map = map[type];
if(capture in map) {
return goog.events.fireListeners_(map[capture], obj, type, capture, eventObject)
}
}
return true
};
goog.events.fireListeners_ = function(map, obj, type, capture, eventObject) {
var retval = 1;
var objUid = goog.getUid(obj);
if(map[objUid]) {
map.remaining_--;
var listenerArray = map[objUid];
if(!listenerArray.locked_) {
listenerArray.locked_ = 1
}else {
listenerArray.locked_++
}
try {
var length = listenerArray.length;
for(var i = 0;i < length;i++) {
var listener = listenerArray[i];
if(listener && !listener.removed) {
retval &= goog.events.fireListener(listener, eventObject) !== false
}
}
}finally {
listenerArray.locked_--;
goog.events.cleanUp_(type, capture, objUid, listenerArray)
}
}
return Boolean(retval)
};
goog.events.fireListener = function(listener, eventObject) {
var rv = listener.handleEvent(eventObject);
if(listener.callOnce) {
goog.events.unlistenByKey(listener.key)
}
return rv
};
goog.events.getTotalListenerCount = function() {
return goog.object.getCount(goog.events.listeners_)
};
goog.events.dispatchEvent = function(src, e) {
var type = e.type || e;
var map = goog.events.listenerTree_;
if(!(type in map)) {
return true
}
if(goog.isString(e)) {
e = new goog.events.Event(e, src)
}else {
if(!(e instanceof goog.events.Event)) {
var oldEvent = e;
e = new goog.events.Event(type, src);
goog.object.extend(e, oldEvent)
}else {
e.target = e.target || src
}
}
var rv = 1, ancestors;
map = map[type];
var hasCapture = true in map;
var targetsMap;
if(hasCapture) {
ancestors = [];
for(var parent = src;parent;parent = parent.getParentEventTarget()) {
ancestors.push(parent)
}
targetsMap = map[true];
targetsMap.remaining_ = targetsMap.count_;
for(var i = ancestors.length - 1;!e.propagationStopped_ && i >= 0 && targetsMap.remaining_;i--) {
e.currentTarget = ancestors[i];
rv &= goog.events.fireListeners_(targetsMap, ancestors[i], e.type, true, e) && e.returnValue_ != false
}
}
var hasBubble = false in map;
if(hasBubble) {
targetsMap = map[false];
targetsMap.remaining_ = targetsMap.count_;
if(hasCapture) {
for(var i = 0;!e.propagationStopped_ && i < ancestors.length && targetsMap.remaining_;i++) {
e.currentTarget = ancestors[i];
rv &= goog.events.fireListeners_(targetsMap, ancestors[i], e.type, false, e) && e.returnValue_ != false
}
}else {
for(var current = src;!e.propagationStopped_ && current && targetsMap.remaining_;current = current.getParentEventTarget()) {
e.currentTarget = current;
rv &= goog.events.fireListeners_(targetsMap, current, e.type, false, e) && e.returnValue_ != false
}
}
}
return Boolean(rv)
};
goog.events.protectBrowserEventEntryPoint = function(errorHandler) {
goog.events.handleBrowserEvent_ = errorHandler.protectEntryPoint(goog.events.handleBrowserEvent_);
goog.events.pools.setProxyCallbackFunction(goog.events.handleBrowserEvent_)
};
goog.events.handleBrowserEvent_ = function(key, opt_evt) {
if(!goog.events.listeners_[key]) {
return true
}
var listener = goog.events.listeners_[key];
var type = listener.type;
var map = goog.events.listenerTree_;
if(!(type in map)) {
return true
}
map = map[type];
var retval, targetsMap;
if(goog.events.synthesizeEventPropagation_()) {
var ieEvent = opt_evt || goog.getObjectByName("window.event");
var hasCapture = true in map;
var hasBubble = false in map;
if(hasCapture) {
if(goog.events.isMarkedIeEvent_(ieEvent)) {
return true
}
goog.events.markIeEvent_(ieEvent)
}
var evt = goog.events.pools.getEvent();
evt.init(ieEvent, this);
retval = true;
try {
if(hasCapture) {
var ancestors = goog.events.pools.getArray();
for(var parent = evt.currentTarget;parent;parent = parent.parentNode) {
ancestors.push(parent)
}
targetsMap = map[true];
targetsMap.remaining_ = targetsMap.count_;
for(var i = ancestors.length - 1;!evt.propagationStopped_ && i >= 0 && targetsMap.remaining_;i--) {
evt.currentTarget = ancestors[i];
retval &= goog.events.fireListeners_(targetsMap, ancestors[i], type, true, evt)
}
if(hasBubble) {
targetsMap = map[false];
targetsMap.remaining_ = targetsMap.count_;
for(var i = 0;!evt.propagationStopped_ && i < ancestors.length && targetsMap.remaining_;i++) {
evt.currentTarget = ancestors[i];
retval &= goog.events.fireListeners_(targetsMap, ancestors[i], type, false, evt)
}
}
}else {
retval = goog.events.fireListener(listener, evt)
}
}finally {
if(ancestors) {
ancestors.length = 0;
goog.events.pools.releaseArray(ancestors)
}
evt.dispose();
goog.events.pools.releaseEvent(evt)
}
return retval
}
var be = new goog.events.BrowserEvent(opt_evt, this);
try {
retval = goog.events.fireListener(listener, be)
}finally {
be.dispose()
}
return retval
};
goog.events.pools.setProxyCallbackFunction(goog.events.handleBrowserEvent_);
goog.events.markIeEvent_ = function(e) {
var useReturnValue = false;
if(e.keyCode == 0) {
try {
e.keyCode = -1;
return
}catch(ex) {
useReturnValue = true
}
}
if(useReturnValue || e.returnValue == undefined) {
e.returnValue = true
}
};
goog.events.isMarkedIeEvent_ = function(e) {
return e.keyCode < 0 || e.returnValue != undefined
};
goog.events.uniqueIdCounter_ = 0;
goog.events.getUniqueId = function(identifier) {
return identifier + "_" + goog.events.uniqueIdCounter_++
};
goog.events.synthesizeEventPropagation_ = function() {
if(goog.events.requiresSyntheticEventPropagation_ === undefined) {
goog.events.requiresSyntheticEventPropagation_ = goog.userAgent.IE && !goog.global["addEventListener"]
}
return goog.events.requiresSyntheticEventPropagation_
};
goog.debug.entryPointRegistry.register(function(transformer) {
goog.events.handleBrowserEvent_ = transformer(goog.events.handleBrowserEvent_);
goog.events.pools.setProxyCallbackFunction(goog.events.handleBrowserEvent_)
});
goog.provide("goog.events.EventTarget");
goog.require("goog.Disposable");
goog.require("goog.events");
goog.events.EventTarget = function() {
goog.Disposable.call(this)
};
goog.inherits(goog.events.EventTarget, goog.Disposable);
goog.events.EventTarget.prototype.customEvent_ = true;
goog.events.EventTarget.prototype.parentEventTarget_ = null;
goog.events.EventTarget.prototype.getParentEventTarget = function() {
return this.parentEventTarget_
};
goog.events.EventTarget.prototype.setParentEventTarget = function(parent) {
this.parentEventTarget_ = parent
};
goog.events.EventTarget.prototype.addEventListener = function(type, handler, opt_capture, opt_handlerScope) {
goog.events.listen(this, type, handler, opt_capture, opt_handlerScope)
};
goog.events.EventTarget.prototype.removeEventListener = function(type, handler, opt_capture, opt_handlerScope) {
goog.events.unlisten(this, type, handler, opt_capture, opt_handlerScope)
};
goog.events.EventTarget.prototype.dispatchEvent = function(e) {
return goog.events.dispatchEvent(this, e)
};
goog.events.EventTarget.prototype.disposeInternal = function() {
goog.events.EventTarget.superClass_.disposeInternal.call(this);
goog.events.removeAll(this);
this.parentEventTarget_ = null
};
goog.provide("goog.Timer");
goog.require("goog.events.EventTarget");
goog.Timer = function(opt_interval, opt_timerObject) {
goog.events.EventTarget.call(this);
this.interval_ = opt_interval || 1;
this.timerObject_ = opt_timerObject || goog.Timer.defaultTimerObject;
this.boundTick_ = goog.bind(this.tick_, this);
this.last_ = goog.now()
};
goog.inherits(goog.Timer, goog.events.EventTarget);
goog.Timer.MAX_TIMEOUT_ = 2147483647;
goog.Timer.prototype.enabled = false;
goog.Timer.defaultTimerObject = goog.global["window"];
goog.Timer.intervalScale = 0.8;
goog.Timer.prototype.timer_ = null;
goog.Timer.prototype.getInterval = function() {
return this.interval_
};
goog.Timer.prototype.setInterval = function(interval) {
this.interval_ = interval;
if(this.timer_ && this.enabled) {
this.stop();
this.start()
}else {
if(this.timer_) {
this.stop()
}
}
};
goog.Timer.prototype.tick_ = function() {
if(this.enabled) {
var elapsed = goog.now() - this.last_;
if(elapsed > 0 && elapsed < this.interval_ * goog.Timer.intervalScale) {
this.timer_ = this.timerObject_.setTimeout(this.boundTick_, this.interval_ - elapsed);
return
}
this.dispatchTick();
if(this.enabled) {
this.timer_ = this.timerObject_.setTimeout(this.boundTick_, this.interval_);
this.last_ = goog.now()
}
}
};
goog.Timer.prototype.dispatchTick = function() {
this.dispatchEvent(goog.Timer.TICK)
};
goog.Timer.prototype.start = function() {
this.enabled = true;
if(!this.timer_) {
this.timer_ = this.timerObject_.setTimeout(this.boundTick_, this.interval_);
this.last_ = goog.now()
}
};
goog.Timer.prototype.stop = function() {
this.enabled = false;
if(this.timer_) {
this.timerObject_.clearTimeout(this.timer_);
this.timer_ = null
}
};
goog.Timer.prototype.disposeInternal = function() {
goog.Timer.superClass_.disposeInternal.call(this);
this.stop();
delete this.timerObject_
};
goog.Timer.TICK = "tick";
goog.Timer.callOnce = function(listener, opt_delay, opt_handler) {
if(goog.isFunction(listener)) {
if(opt_handler) {
listener = goog.bind(listener, opt_handler)
}
}else {
if(listener && typeof listener.handleEvent == "function") {
listener = goog.bind(listener.handleEvent, listener)
}else {
throw Error("Invalid listener argument");
}
}
if(opt_delay > goog.Timer.MAX_TIMEOUT_) {
return-1
}else {
return goog.Timer.defaultTimerObject.setTimeout(listener, opt_delay || 0)
}
};
goog.Timer.clear = function(timerId) {
goog.Timer.defaultTimerObject.clearTimeout(timerId)
};
goog.provide("enfocus.enlive.syntax");
goog.require("cljs.core");
enfocus.enlive.syntax.sel_to_string = function sel_to_string(item) {
if(cljs.core.keyword_QMARK_.call(null, item)) {
return cljs.core.name.call(null, item)
}else {
if(cljs.core.string_QMARK_.call(null, item)) {
return item
}else {
if(cljs.core.coll_QMARK_.call(null, item)) {
return cljs.core.apply.call(null, cljs.core.str, cljs.core.map.call(null, function(p1__12679_SHARP_) {
return sel_to_string.call(null, p1__12679_SHARP_)
}, item))
}else {
return null
}
}
}
};
enfocus.enlive.syntax.convert = function convert(sel) {
if(cljs.core.string_QMARK_.call(null, sel)) {
return sel
}else {
return cljs.core.apply.call(null, cljs.core.str, cljs.core.interpose.call(null, " ", cljs.core.map.call(null, enfocus.enlive.syntax.sel_to_string, sel)))
}
};
enfocus.enlive.syntax.attr_pairs = function attr_pairs(op, elms) {
var ts__12692 = function(p__12687) {
var vec__12688__12689 = p__12687;
var x__12690 = cljs.core.nth.call(null, vec__12688__12689, 0, null);
var y__12691 = cljs.core.nth.call(null, vec__12688__12689, 1, null);
return[cljs.core.str("["), cljs.core.str(cljs.core.name.call(null, x__12690)), cljs.core.str(op), cljs.core.str("='"), cljs.core.str(y__12691), cljs.core.str("']")].join("")
};
return cljs.core.apply.call(null, cljs.core.str, cljs.core.map.call(null, ts__12692, cljs.core.partition.call(null, 2, elms)))
};
enfocus.enlive.syntax.attr_QMARK_ = function() {
var attr_QMARK___delegate = function(elms) {
return cljs.core.apply.call(null, cljs.core.str, cljs.core.map.call(null, function(p1__12680_SHARP_) {
return[cljs.core.str("["), cljs.core.str(cljs.core.name.call(null, p1__12680_SHARP_)), cljs.core.str("]")].join("")
}, elms))
};
var attr_QMARK_ = function(var_args) {
var elms = null;
if(goog.isDef(var_args)) {
elms = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0), 0)
}
return attr_QMARK___delegate.call(this, elms)
};
attr_QMARK_.cljs$lang$maxFixedArity = 0;
attr_QMARK_.cljs$lang$applyTo = function(arglist__12693) {
var elms = cljs.core.seq(arglist__12693);
return attr_QMARK___delegate(elms)
};
attr_QMARK_.cljs$lang$arity$variadic = attr_QMARK___delegate;
return attr_QMARK_
}();
enfocus.enlive.syntax.attr_EQ_ = function() {
var attr_EQ___delegate = function(elms) {
return enfocus.enlive.syntax.attr_pairs.call(null, "", elms)
};
var attr_EQ_ = function(var_args) {
var elms = null;
if(goog.isDef(var_args)) {
elms = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0), 0)
}
return attr_EQ___delegate.call(this, elms)
};
attr_EQ_.cljs$lang$maxFixedArity = 0;
attr_EQ_.cljs$lang$applyTo = function(arglist__12694) {
var elms = cljs.core.seq(arglist__12694);
return attr_EQ___delegate(elms)
};
attr_EQ_.cljs$lang$arity$variadic = attr_EQ___delegate;
return attr_EQ_
}();
enfocus.enlive.syntax.attr_has = function() {
var attr_has__delegate = function(x, vals) {
var ts__12696 = function(y) {
return[cljs.core.str("["), cljs.core.str(cljs.core.name.call(null, x)), cljs.core.str("~='"), cljs.core.str(y), cljs.core.str("']")].join("")
};
return cljs.core.apply.call(null, cljs.core.str, cljs.core.map.call(null, ts__12696, vals))
};
var attr_has = function(x, var_args) {
var vals = null;
if(goog.isDef(var_args)) {
vals = cljs.core.array_seq(Array.prototype.slice.call(arguments, 1), 0)
}
return attr_has__delegate.call(this, x, vals)
};
attr_has.cljs$lang$maxFixedArity = 1;
attr_has.cljs$lang$applyTo = function(arglist__12697) {
var x = cljs.core.first(arglist__12697);
var vals = cljs.core.rest(arglist__12697);
return attr_has__delegate(x, vals)
};
attr_has.cljs$lang$arity$variadic = attr_has__delegate;
return attr_has
}();
enfocus.enlive.syntax.attr_starts = function() {
var attr_starts__delegate = function(elms) {
return enfocus.enlive.syntax.attr_pairs.call(null, "^", elms)
};
var attr_starts = function(var_args) {
var elms = null;
if(goog.isDef(var_args)) {
elms = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0), 0)
}
return attr_starts__delegate.call(this, elms)
};
attr_starts.cljs$lang$maxFixedArity = 0;
attr_starts.cljs$lang$applyTo = function(arglist__12698) {
var elms = cljs.core.seq(arglist__12698);
return attr_starts__delegate(elms)
};
attr_starts.cljs$lang$arity$variadic = attr_starts__delegate;
return attr_starts
}();
enfocus.enlive.syntax.attr_ends = function() {
var attr_ends__delegate = function(elms) {
return enfocus.enlive.syntax.attr_pairs.call(null, "$", elms)
};
var attr_ends = function(var_args) {
var elms = null;
if(goog.isDef(var_args)) {
elms = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0), 0)
}
return attr_ends__delegate.call(this, elms)
};
attr_ends.cljs$lang$maxFixedArity = 0;
attr_ends.cljs$lang$applyTo = function(arglist__12699) {
var elms = cljs.core.seq(arglist__12699);
return attr_ends__delegate(elms)
};
attr_ends.cljs$lang$arity$variadic = attr_ends__delegate;
return attr_ends
}();
enfocus.enlive.syntax.attr_contains = function() {
var attr_contains__delegate = function(elms) {
return enfocus.enlive.syntax.attr_pairs.call(null, "*", elms)
};
var attr_contains = function(var_args) {
var elms = null;
if(goog.isDef(var_args)) {
elms = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0), 0)
}
return attr_contains__delegate.call(this, elms)
};
attr_contains.cljs$lang$maxFixedArity = 0;
attr_contains.cljs$lang$applyTo = function(arglist__12700) {
var elms = cljs.core.seq(arglist__12700);
return attr_contains__delegate(elms)
};
attr_contains.cljs$lang$arity$variadic = attr_contains__delegate;
return attr_contains
}();
enfocus.enlive.syntax.attr_BAR__EQ_ = function() {
var attr_BAR__EQ___delegate = function(elms) {
return enfocus.enlive.syntax.attr_pairs.call(null, "|", elms)
};
var attr_BAR__EQ_ = function(var_args) {
var elms = null;
if(goog.isDef(var_args)) {
elms = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0), 0)
}
return attr_BAR__EQ___delegate.call(this, elms)
};
attr_BAR__EQ_.cljs$lang$maxFixedArity = 0;
attr_BAR__EQ_.cljs$lang$applyTo = function(arglist__12701) {
var elms = cljs.core.seq(arglist__12701);
return attr_BAR__EQ___delegate(elms)
};
attr_BAR__EQ_.cljs$lang$arity$variadic = attr_BAR__EQ___delegate;
return attr_BAR__EQ_
}();
enfocus.enlive.syntax.nth_op = function() {
var nth_op = null;
var nth_op__2 = function(op, x) {
return[cljs.core.str(":nth-"), cljs.core.str(op), cljs.core.str("("), cljs.core.str(x), cljs.core.str(")")].join("")
};
var nth_op__3 = function(op, x, y) {
return[cljs.core.str(":nth-"), cljs.core.str(op), cljs.core.str("("), cljs.core.str(x), cljs.core.str("n"), cljs.core.str(y > 0 ? "+" : null), cljs.core.str(y)].join("")
};
nth_op = function(op, x, y) {
switch(arguments.length) {
case 2:
return nth_op__2.call(this, op, x);
case 3:
return nth_op__3.call(this, op, x, y)
}
throw"Invalid arity: " + arguments.length;
};
nth_op.cljs$lang$arity$2 = nth_op__2;
nth_op.cljs$lang$arity$3 = nth_op__3;
return nth_op
}();
enfocus.enlive.syntax.nth_child = function() {
var nth_child = null;
var nth_child__1 = function(x) {
return enfocus.enlive.syntax.nth_op.call(null, "child", x)
};
var nth_child__2 = function(x, y) {
return enfocus.enlive.syntax.nth_op.call(null, "child", x, y)
};
nth_child = function(x, y) {
switch(arguments.length) {
case 1:
return nth_child__1.call(this, x);
case 2:
return nth_child__2.call(this, x, y)
}
throw"Invalid arity: " + arguments.length;
};
nth_child.cljs$lang$arity$1 = nth_child__1;
nth_child.cljs$lang$arity$2 = nth_child__2;
return nth_child
}();
enfocus.enlive.syntax.nth_last_child = function() {
var nth_last_child = null;
var nth_last_child__1 = function(x) {
return enfocus.enlive.syntax.nth_op.call(null, "last-child", x)
};
var nth_last_child__2 = function(x, y) {
return enfocus.enlive.syntax.nth_op.call(null, "last-child", x, y)
};
nth_last_child = function(x, y) {
switch(arguments.length) {
case 1:
return nth_last_child__1.call(this, x);
case 2:
return nth_last_child__2.call(this, x, y)
}
throw"Invalid arity: " + arguments.length;
};
nth_last_child.cljs$lang$arity$1 = nth_last_child__1;
nth_last_child.cljs$lang$arity$2 = nth_last_child__2;
return nth_last_child
}();
enfocus.enlive.syntax.nth_of_type = function() {
var nth_of_type = null;
var nth_of_type__1 = function(x) {
return enfocus.enlive.syntax.nth_op.call(null, "of-type", x)
};
var nth_of_type__2 = function(x, y) {
return enfocus.enlive.syntax.nth_op.call(null, "of-type", x, y)
};
nth_of_type = function(x, y) {
switch(arguments.length) {
case 1:
return nth_of_type__1.call(this, x);
case 2:
return nth_of_type__2.call(this, x, y)
}
throw"Invalid arity: " + arguments.length;
};
nth_of_type.cljs$lang$arity$1 = nth_of_type__1;
nth_of_type.cljs$lang$arity$2 = nth_of_type__2;
return nth_of_type
}();
enfocus.enlive.syntax.nth_last_of_type = function() {
var nth_last_of_type = null;
var nth_last_of_type__1 = function(x) {
return enfocus.enlive.syntax.nth_op.call(null, "last-of-type", x)
};
var nth_last_of_type__2 = function(x, y) {
return enfocus.enlive.syntax.nth_op.call(null, "last-of-type", x, y)
};
nth_last_of_type = function(x, y) {
switch(arguments.length) {
case 1:
return nth_last_of_type__1.call(this, x);
case 2:
return nth_last_of_type__2.call(this, x, y)
}
throw"Invalid arity: " + arguments.length;
};
nth_last_of_type.cljs$lang$arity$1 = nth_last_of_type__1;
nth_last_of_type.cljs$lang$arity$2 = nth_last_of_type__2;
return nth_last_of_type
}();
enfocus.enlive.syntax.but = function() {
var but__delegate = function(sel) {
return[cljs.core.str("not("), cljs.core.str(enfocus.enlive.syntax.convert.call(null, sel)), cljs.core.str(")")].join("")
};
var but = function(var_args) {
var sel = null;
if(goog.isDef(var_args)) {
sel = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0), 0)
}
return but__delegate.call(this, sel)
};
but.cljs$lang$maxFixedArity = 0;
but.cljs$lang$applyTo = function(arglist__12702) {
var sel = cljs.core.seq(arglist__12702);
return but__delegate(sel)
};
but.cljs$lang$arity$variadic = but__delegate;
return but
}();
goog.provide("goog.dom.BrowserFeature");
goog.require("goog.userAgent");
goog.dom.BrowserFeature = {CAN_ADD_NAME_OR_TYPE_ATTRIBUTES:!goog.userAgent.IE || goog.userAgent.isVersion("9"), CAN_USE_CHILDREN_ATTRIBUTE:!goog.userAgent.GECKO && !goog.userAgent.IE || goog.userAgent.IE && goog.userAgent.isVersion("9") || goog.userAgent.GECKO && goog.userAgent.isVersion("1.9.1"), CAN_USE_INNER_TEXT:goog.userAgent.IE && !goog.userAgent.isVersion("9"), INNER_HTML_NEEDS_SCOPED_ELEMENT:goog.userAgent.IE};
goog.provide("goog.dom.TagName");
goog.dom.TagName = {A:"A", ABBR:"ABBR", ACRONYM:"ACRONYM", ADDRESS:"ADDRESS", APPLET:"APPLET", AREA:"AREA", B:"B", BASE:"BASE", BASEFONT:"BASEFONT", BDO:"BDO", BIG:"BIG", BLOCKQUOTE:"BLOCKQUOTE", BODY:"BODY", BR:"BR", BUTTON:"BUTTON", CANVAS:"CANVAS", CAPTION:"CAPTION", CENTER:"CENTER", CITE:"CITE", CODE:"CODE", COL:"COL", COLGROUP:"COLGROUP", DD:"DD", DEL:"DEL", DFN:"DFN", DIR:"DIR", DIV:"DIV", DL:"DL", DT:"DT", EM:"EM", FIELDSET:"FIELDSET", FONT:"FONT", FORM:"FORM", FRAME:"FRAME", FRAMESET:"FRAMESET",
H1:"H1", H2:"H2", H3:"H3", H4:"H4", H5:"H5", H6:"H6", HEAD:"HEAD", HR:"HR", HTML:"HTML", I:"I", IFRAME:"IFRAME", IMG:"IMG", INPUT:"INPUT", INS:"INS", ISINDEX:"ISINDEX", KBD:"KBD", LABEL:"LABEL", LEGEND:"LEGEND", LI:"LI", LINK:"LINK", MAP:"MAP", MENU:"MENU", META:"META", NOFRAMES:"NOFRAMES", NOSCRIPT:"NOSCRIPT", OBJECT:"OBJECT", OL:"OL", OPTGROUP:"OPTGROUP", OPTION:"OPTION", P:"P", PARAM:"PARAM", PRE:"PRE", Q:"Q", S:"S", SAMP:"SAMP", SCRIPT:"SCRIPT", SELECT:"SELECT", SMALL:"SMALL", SPAN:"SPAN", STRIKE:"STRIKE",
STRONG:"STRONG", STYLE:"STYLE", SUB:"SUB", SUP:"SUP", TABLE:"TABLE", TBODY:"TBODY", TD:"TD", TEXTAREA:"TEXTAREA", TFOOT:"TFOOT", TH:"TH", THEAD:"THEAD", TITLE:"TITLE", TR:"TR", TT:"TT", U:"U", UL:"UL", VAR:"VAR"};
goog.provide("goog.math.Coordinate");
goog.math.Coordinate = function(opt_x, opt_y) {
this.x = goog.isDef(opt_x) ? opt_x : 0;
this.y = goog.isDef(opt_y) ? opt_y : 0
};
goog.math.Coordinate.prototype.clone = function() {
return new goog.math.Coordinate(this.x, this.y)
};
if(goog.DEBUG) {
goog.math.Coordinate.prototype.toString = function() {
return"(" + this.x + ", " + this.y + ")"
}
}
goog.math.Coordinate.equals = function(a, b) {
if(a == b) {
return true
}
if(!a || !b) {
return false
}
return a.x == b.x && a.y == b.y
};
goog.math.Coordinate.distance = function(a, b) {
var dx = a.x - b.x;
var dy = a.y - b.y;
return Math.sqrt(dx * dx + dy * dy)
};
goog.math.Coordinate.squaredDistance = function(a, b) {
var dx = a.x - b.x;
var dy = a.y - b.y;
return dx * dx + dy * dy
};
goog.math.Coordinate.difference = function(a, b) {
return new goog.math.Coordinate(a.x - b.x, a.y - b.y)
};
goog.math.Coordinate.sum = function(a, b) {
return new goog.math.Coordinate(a.x + b.x, a.y + b.y)
};
goog.provide("goog.math.Size");
goog.math.Size = function(width, height) {
this.width = width;
this.height = height
};
goog.math.Size.equals = function(a, b) {
if(a == b) {
return true
}
if(!a || !b) {
return false
}
return a.width == b.width && a.height == b.height
};
goog.math.Size.prototype.clone = function() {
return new goog.math.Size(this.width, this.height)
};
if(goog.DEBUG) {
goog.math.Size.prototype.toString = function() {
return"(" + this.width + " x " + this.height + ")"
}
}
goog.math.Size.prototype.getLongest = function() {
return Math.max(this.width, this.height)
};
goog.math.Size.prototype.getShortest = function() {
return Math.min(this.width, this.height)
};
goog.math.Size.prototype.area = function() {
return this.width * this.height
};
goog.math.Size.prototype.perimeter = function() {
return(this.width + this.height) * 2
};
goog.math.Size.prototype.aspectRatio = function() {
return this.width / this.height
};
goog.math.Size.prototype.isEmpty = function() {
return!this.area()
};
goog.math.Size.prototype.ceil = function() {
this.width = Math.ceil(this.width);
this.height = Math.ceil(this.height);
return this
};
goog.math.Size.prototype.fitsInside = function(target) {
return this.width <= target.width && this.height <= target.height
};
goog.math.Size.prototype.floor = function() {
this.width = Math.floor(this.width);
this.height = Math.floor(this.height);
return this
};
goog.math.Size.prototype.round = function() {
this.width = Math.round(this.width);
this.height = Math.round(this.height);
return this
};
goog.math.Size.prototype.scale = function(s) {
this.width *= s;
this.height *= s;
return this
};
goog.math.Size.prototype.scaleToFit = function(target) {
var s = this.aspectRatio() > target.aspectRatio() ? target.width / this.width : target.height / this.height;
return this.scale(s)
};
goog.provide("goog.dom");
goog.provide("goog.dom.DomHelper");
goog.provide("goog.dom.NodeType");
goog.require("goog.array");
goog.require("goog.dom.BrowserFeature");
goog.require("goog.dom.TagName");
goog.require("goog.dom.classes");
goog.require("goog.math.Coordinate");
goog.require("goog.math.Size");
goog.require("goog.object");
goog.require("goog.string");
goog.require("goog.userAgent");
goog.dom.ASSUME_QUIRKS_MODE = false;
goog.dom.ASSUME_STANDARDS_MODE = false;
goog.dom.COMPAT_MODE_KNOWN_ = goog.dom.ASSUME_QUIRKS_MODE || goog.dom.ASSUME_STANDARDS_MODE;
goog.dom.NodeType = {ELEMENT:1, ATTRIBUTE:2, TEXT:3, CDATA_SECTION:4, ENTITY_REFERENCE:5, ENTITY:6, PROCESSING_INSTRUCTION:7, COMMENT:8, DOCUMENT:9, DOCUMENT_TYPE:10, DOCUMENT_FRAGMENT:11, NOTATION:12};
goog.dom.getDomHelper = function(opt_element) {
return opt_element ? new goog.dom.DomHelper(goog.dom.getOwnerDocument(opt_element)) : goog.dom.defaultDomHelper_ || (goog.dom.defaultDomHelper_ = new goog.dom.DomHelper)
};
goog.dom.defaultDomHelper_;
goog.dom.getDocument = function() {
return document
};
goog.dom.getElement = function(element) {
return goog.isString(element) ? document.getElementById(element) : element
};
goog.dom.$ = goog.dom.getElement;
goog.dom.getElementsByTagNameAndClass = function(opt_tag, opt_class, opt_el) {
return goog.dom.getElementsByTagNameAndClass_(document, opt_tag, opt_class, opt_el)
};
goog.dom.getElementsByClass = function(className, opt_el) {
var parent = opt_el || document;
if(goog.dom.canUseQuerySelector_(parent)) {
return parent.querySelectorAll("." + className)
}else {
if(parent.getElementsByClassName) {
return parent.getElementsByClassName(className)
}
}
return goog.dom.getElementsByTagNameAndClass_(document, "*", className, opt_el)
};
goog.dom.getElementByClass = function(className, opt_el) {
var parent = opt_el || document;
var retVal = null;
if(goog.dom.canUseQuerySelector_(parent)) {
retVal = parent.querySelector("." + className)
}else {
retVal = goog.dom.getElementsByClass(className, opt_el)[0]
}
return retVal || null
};
goog.dom.canUseQuerySelector_ = function(parent) {
return parent.querySelectorAll && parent.querySelector && (!goog.userAgent.WEBKIT || goog.dom.isCss1CompatMode_(document) || goog.userAgent.isVersion("528"))
};
goog.dom.getElementsByTagNameAndClass_ = function(doc, opt_tag, opt_class, opt_el) {
var parent = opt_el || doc;
var tagName = opt_tag && opt_tag != "*" ? opt_tag.toUpperCase() : "";
if(goog.dom.canUseQuerySelector_(parent) && (tagName || opt_class)) {
var query = tagName + (opt_class ? "." + opt_class : "");
return parent.querySelectorAll(query)
}
if(opt_class && parent.getElementsByClassName) {
var els = parent.getElementsByClassName(opt_class);
if(tagName) {
var arrayLike = {};
var len = 0;
for(var i = 0, el;el = els[i];i++) {
if(tagName == el.nodeName) {
arrayLike[len++] = el
}
}
arrayLike.length = len;
return arrayLike
}else {
return els
}
}
var els = parent.getElementsByTagName(tagName || "*");
if(opt_class) {
var arrayLike = {};
var len = 0;
for(var i = 0, el;el = els[i];i++) {
var className = el.className;
if(typeof className.split == "function" && goog.array.contains(className.split(/\s+/), opt_class)) {
arrayLike[len++] = el
}
}
arrayLike.length = len;
return arrayLike
}else {
return els
}
};
goog.dom.$$ = goog.dom.getElementsByTagNameAndClass;
goog.dom.setProperties = function(element, properties) {
goog.object.forEach(properties, function(val, key) {
if(key == "style") {
element.style.cssText = val
}else {
if(key == "class") {
element.className = val
}else {
if(key == "for") {
element.htmlFor = val
}else {
if(key in goog.dom.DIRECT_ATTRIBUTE_MAP_) {
element.setAttribute(goog.dom.DIRECT_ATTRIBUTE_MAP_[key], val)
}else {
element[key] = val
}
}
}
}
})
};
goog.dom.DIRECT_ATTRIBUTE_MAP_ = {"cellpadding":"cellPadding", "cellspacing":"cellSpacing", "colspan":"colSpan", "rowspan":"rowSpan", "valign":"vAlign", "height":"height", "width":"width", "usemap":"useMap", "frameborder":"frameBorder", "maxlength":"maxLength", "type":"type"};
goog.dom.getViewportSize = function(opt_window) {
return goog.dom.getViewportSize_(opt_window || window)
};
goog.dom.getViewportSize_ = function(win) {
var doc = win.document;
if(goog.userAgent.WEBKIT && !goog.userAgent.isVersion("500") && !goog.userAgent.MOBILE) {
if(typeof win.innerHeight == "undefined") {
win = window
}
var innerHeight = win.innerHeight;
var scrollHeight = win.document.documentElement.scrollHeight;
if(win == win.top) {
if(scrollHeight < innerHeight) {
innerHeight -= 15
}
}
return new goog.math.Size(win.innerWidth, innerHeight)
}
var el = goog.dom.isCss1CompatMode_(doc) ? doc.documentElement : doc.body;
return new goog.math.Size(el.clientWidth, el.clientHeight)
};
goog.dom.getDocumentHeight = function() {
return goog.dom.getDocumentHeight_(window)
};
goog.dom.getDocumentHeight_ = function(win) {
var doc = win.document;
var height = 0;
if(doc) {
var vh = goog.dom.getViewportSize_(win).height;
var body = doc.body;
var docEl = doc.documentElement;
if(goog.dom.isCss1CompatMode_(doc) && docEl.scrollHeight) {
height = docEl.scrollHeight != vh ? docEl.scrollHeight : docEl.offsetHeight
}else {
var sh = docEl.scrollHeight;
var oh = docEl.offsetHeight;
if(docEl.clientHeight != oh) {
sh = body.scrollHeight;
oh = body.offsetHeight
}
if(sh > vh) {
height = sh > oh ? sh : oh
}else {
height = sh < oh ? sh : oh
}
}
}
return height
};
goog.dom.getPageScroll = function(opt_window) {
var win = opt_window || goog.global || window;
return goog.dom.getDomHelper(win.document).getDocumentScroll()
};
goog.dom.getDocumentScroll = function() {
return goog.dom.getDocumentScroll_(document)
};
goog.dom.getDocumentScroll_ = function(doc) {
var el = goog.dom.getDocumentScrollElement_(doc);
var win = goog.dom.getWindow_(doc);
return new goog.math.Coordinate(win.pageXOffset || el.scrollLeft, win.pageYOffset || el.scrollTop)
};
goog.dom.getDocumentScrollElement = function() {
return goog.dom.getDocumentScrollElement_(document)
};
goog.dom.getDocumentScrollElement_ = function(doc) {
return!goog.userAgent.WEBKIT && goog.dom.isCss1CompatMode_(doc) ? doc.documentElement : doc.body
};
goog.dom.getWindow = function(opt_doc) {
return opt_doc ? goog.dom.getWindow_(opt_doc) : window
};
goog.dom.getWindow_ = function(doc) {
return doc.parentWindow || doc.defaultView
};
goog.dom.createDom = function(tagName, opt_attributes, var_args) {
return goog.dom.createDom_(document, arguments)
};
goog.dom.createDom_ = function(doc, args) {
var tagName = args[0];
var attributes = args[1];
if(!goog.dom.BrowserFeature.CAN_ADD_NAME_OR_TYPE_ATTRIBUTES && attributes && (attributes.name || attributes.type)) {
var tagNameArr = ["<", tagName];
if(attributes.name) {
tagNameArr.push(' name="', goog.string.htmlEscape(attributes.name), '"')
}
if(attributes.type) {
tagNameArr.push(' type="', goog.string.htmlEscape(attributes.type), '"');
var clone = {};
goog.object.extend(clone, attributes);
attributes = clone;
delete attributes.type
}
tagNameArr.push(">");
tagName = tagNameArr.join("")
}
var element = doc.createElement(tagName);
if(attributes) {
if(goog.isString(attributes)) {
element.className = attributes
}else {
if(goog.isArray(attributes)) {
goog.dom.classes.add.apply(null, [element].concat(attributes))
}else {
goog.dom.setProperties(element, attributes)
}
}
}
if(args.length > 2) {
goog.dom.append_(doc, element, args, 2)
}
return element
};
goog.dom.append_ = function(doc, parent, args, startIndex) {
function childHandler(child) {
if(child) {
parent.appendChild(goog.isString(child) ? doc.createTextNode(child) : child)
}
}
for(var i = startIndex;i < args.length;i++) {
var arg = args[i];
if(goog.isArrayLike(arg) && !goog.dom.isNodeLike(arg)) {
goog.array.forEach(goog.dom.isNodeList(arg) ? goog.array.clone(arg) : arg, childHandler)
}else {
childHandler(arg)
}
}
};
goog.dom.$dom = goog.dom.createDom;
goog.dom.createElement = function(name) {
return document.createElement(name)
};
goog.dom.createTextNode = function(content) {
return document.createTextNode(content)
};
goog.dom.createTable = function(rows, columns, opt_fillWithNbsp) {
return goog.dom.createTable_(document, rows, columns, !!opt_fillWithNbsp)
};
goog.dom.createTable_ = function(doc, rows, columns, fillWithNbsp) {
var rowHtml = ["<tr>"];
for(var i = 0;i < columns;i++) {
rowHtml.push(fillWithNbsp ? "<td>&nbsp;</td>" : "<td></td>")
}
rowHtml.push("</tr>");
rowHtml = rowHtml.join("");
var totalHtml = ["<table>"];
for(i = 0;i < rows;i++) {
totalHtml.push(rowHtml)
}
totalHtml.push("</table>");
var elem = doc.createElement(goog.dom.TagName.DIV);
elem.innerHTML = totalHtml.join("");
return elem.removeChild(elem.firstChild)
};
goog.dom.htmlToDocumentFragment = function(htmlString) {
return goog.dom.htmlToDocumentFragment_(document, htmlString)
};
goog.dom.htmlToDocumentFragment_ = function(doc, htmlString) {
var tempDiv = doc.createElement("div");
if(goog.dom.BrowserFeature.INNER_HTML_NEEDS_SCOPED_ELEMENT) {
tempDiv.innerHTML = "<br>" + htmlString;
tempDiv.removeChild(tempDiv.firstChild)
}else {
tempDiv.innerHTML = htmlString
}
if(tempDiv.childNodes.length == 1) {
return tempDiv.removeChild(tempDiv.firstChild)
}else {
var fragment = doc.createDocumentFragment();
while(tempDiv.firstChild) {
fragment.appendChild(tempDiv.firstChild)
}
return fragment
}
};
goog.dom.getCompatMode = function() {
return goog.dom.isCss1CompatMode() ? "CSS1Compat" : "BackCompat"
};
goog.dom.isCss1CompatMode = function() {
return goog.dom.isCss1CompatMode_(document)
};
goog.dom.isCss1CompatMode_ = function(doc) {
if(goog.dom.COMPAT_MODE_KNOWN_) {
return goog.dom.ASSUME_STANDARDS_MODE
}
return doc.compatMode == "CSS1Compat"
};
goog.dom.canHaveChildren = function(node) {
if(node.nodeType != goog.dom.NodeType.ELEMENT) {
return false
}
switch(node.tagName) {
case goog.dom.TagName.APPLET:
;
case goog.dom.TagName.AREA:
;
case goog.dom.TagName.BASE:
;
case goog.dom.TagName.BR:
;
case goog.dom.TagName.COL:
;
case goog.dom.TagName.FRAME:
;
case goog.dom.TagName.HR:
;
case goog.dom.TagName.IMG:
;
case goog.dom.TagName.INPUT:
;
case goog.dom.TagName.IFRAME:
;
case goog.dom.TagName.ISINDEX:
;
case goog.dom.TagName.LINK:
;
case goog.dom.TagName.NOFRAMES:
;
case goog.dom.TagName.NOSCRIPT:
;
case goog.dom.TagName.META:
;
case goog.dom.TagName.OBJECT:
;
case goog.dom.TagName.PARAM:
;
case goog.dom.TagName.SCRIPT:
;
case goog.dom.TagName.STYLE:
return false
}
return true
};
goog.dom.appendChild = function(parent, child) {
parent.appendChild(child)
};
goog.dom.append = function(parent, var_args) {
goog.dom.append_(goog.dom.getOwnerDocument(parent), parent, arguments, 1)
};
goog.dom.removeChildren = function(node) {
var child;
while(child = node.firstChild) {
node.removeChild(child)
}
};
goog.dom.insertSiblingBefore = function(newNode, refNode) {
if(refNode.parentNode) {
refNode.parentNode.insertBefore(newNode, refNode)
}
};
goog.dom.insertSiblingAfter = function(newNode, refNode) {
if(refNode.parentNode) {
refNode.parentNode.insertBefore(newNode, refNode.nextSibling)
}
};
goog.dom.insertChildAt = function(parent, child, index) {
parent.insertBefore(child, parent.childNodes[index] || null)
};
goog.dom.removeNode = function(node) {
return node && node.parentNode ? node.parentNode.removeChild(node) : null
};
goog.dom.replaceNode = function(newNode, oldNode) {
var parent = oldNode.parentNode;
if(parent) {
parent.replaceChild(newNode, oldNode)
}
};
goog.dom.flattenElement = function(element) {
var child, parent = element.parentNode;
if(parent && parent.nodeType != goog.dom.NodeType.DOCUMENT_FRAGMENT) {
if(element.removeNode) {
return element.removeNode(false)
}else {
while(child = element.firstChild) {
parent.insertBefore(child, element)
}
return goog.dom.removeNode(element)
}
}
};
goog.dom.getChildren = function(element) {
if(goog.dom.BrowserFeature.CAN_USE_CHILDREN_ATTRIBUTE && element.children != undefined) {
return element.children
}
return goog.array.filter(element.childNodes, function(node) {
return node.nodeType == goog.dom.NodeType.ELEMENT
})
};
goog.dom.getFirstElementChild = function(node) {
if(node.firstElementChild != undefined) {
return node.firstElementChild
}
return goog.dom.getNextElementNode_(node.firstChild, true)
};
goog.dom.getLastElementChild = function(node) {
if(node.lastElementChild != undefined) {
return node.lastElementChild
}
return goog.dom.getNextElementNode_(node.lastChild, false)
};
goog.dom.getNextElementSibling = function(node) {
if(node.nextElementSibling != undefined) {
return node.nextElementSibling
}
return goog.dom.getNextElementNode_(node.nextSibling, true)
};
goog.dom.getPreviousElementSibling = function(node) {
if(node.previousElementSibling != undefined) {
return node.previousElementSibling
}
return goog.dom.getNextElementNode_(node.previousSibling, false)
};
goog.dom.getNextElementNode_ = function(node, forward) {
while(node && node.nodeType != goog.dom.NodeType.ELEMENT) {
node = forward ? node.nextSibling : node.previousSibling
}
return node
};
goog.dom.getNextNode = function(node) {
if(!node) {
return null
}
if(node.firstChild) {
return node.firstChild
}
while(node && !node.nextSibling) {
node = node.parentNode
}
return node ? node.nextSibling : null
};
goog.dom.getPreviousNode = function(node) {
if(!node) {
return null
}
if(!node.previousSibling) {
return node.parentNode
}
node = node.previousSibling;
while(node && node.lastChild) {
node = node.lastChild
}
return node
};
goog.dom.isNodeLike = function(obj) {
return goog.isObject(obj) && obj.nodeType > 0
};
goog.dom.isWindow = function(obj) {
return goog.isObject(obj) && obj["window"] == obj
};
goog.dom.contains = function(parent, descendant) {
if(parent.contains && descendant.nodeType == goog.dom.NodeType.ELEMENT) {
return parent == descendant || parent.contains(descendant)
}
if(typeof parent.compareDocumentPosition != "undefined") {
return parent == descendant || Boolean(parent.compareDocumentPosition(descendant) & 16)
}
while(descendant && parent != descendant) {
descendant = descendant.parentNode
}
return descendant == parent
};
goog.dom.compareNodeOrder = function(node1, node2) {
if(node1 == node2) {
return 0
}
if(node1.compareDocumentPosition) {
return node1.compareDocumentPosition(node2) & 2 ? 1 : -1
}
if("sourceIndex" in node1 || node1.parentNode && "sourceIndex" in node1.parentNode) {
var isElement1 = node1.nodeType == goog.dom.NodeType.ELEMENT;
var isElement2 = node2.nodeType == goog.dom.NodeType.ELEMENT;
if(isElement1 && isElement2) {
return node1.sourceIndex - node2.sourceIndex
}else {
var parent1 = node1.parentNode;
var parent2 = node2.parentNode;
if(parent1 == parent2) {
return goog.dom.compareSiblingOrder_(node1, node2)
}
if(!isElement1 && goog.dom.contains(parent1, node2)) {
return-1 * goog.dom.compareParentsDescendantNodeIe_(node1, node2)
}
if(!isElement2 && goog.dom.contains(parent2, node1)) {
return goog.dom.compareParentsDescendantNodeIe_(node2, node1)
}
return(isElement1 ? node1.sourceIndex : parent1.sourceIndex) - (isElement2 ? node2.sourceIndex : parent2.sourceIndex)
}
}
var doc = goog.dom.getOwnerDocument(node1);
var range1, range2;
range1 = doc.createRange();
range1.selectNode(node1);
range1.collapse(true);
range2 = doc.createRange();
range2.selectNode(node2);
range2.collapse(true);
return range1.compareBoundaryPoints(goog.global["Range"].START_TO_END, range2)
};
goog.dom.compareParentsDescendantNodeIe_ = function(textNode, node) {
var parent = textNode.parentNode;
if(parent == node) {
return-1
}
var sibling = node;
while(sibling.parentNode != parent) {
sibling = sibling.parentNode
}
return goog.dom.compareSiblingOrder_(sibling, textNode)
};
goog.dom.compareSiblingOrder_ = function(node1, node2) {
var s = node2;
while(s = s.previousSibling) {
if(s == node1) {
return-1
}
}
return 1
};
goog.dom.findCommonAncestor = function(var_args) {
var i, count = arguments.length;
if(!count) {
return null
}else {
if(count == 1) {
return arguments[0]
}
}
var paths = [];
var minLength = Infinity;
for(i = 0;i < count;i++) {
var ancestors = [];
var node = arguments[i];
while(node) {
ancestors.unshift(node);
node = node.parentNode
}
paths.push(ancestors);
minLength = Math.min(minLength, ancestors.length)
}
var output = null;
for(i = 0;i < minLength;i++) {
var first = paths[0][i];
for(var j = 1;j < count;j++) {
if(first != paths[j][i]) {
return output
}
}
output = first
}
return output
};
goog.dom.getOwnerDocument = function(node) {
return node.nodeType == goog.dom.NodeType.DOCUMENT ? node : node.ownerDocument || node.document
};
goog.dom.getFrameContentDocument = function(frame) {
var doc;
if(goog.userAgent.WEBKIT) {
doc = frame.document || frame.contentWindow.document
}else {
doc = frame.contentDocument || frame.contentWindow.document
}
return doc
};
goog.dom.getFrameContentWindow = function(frame) {
return frame.contentWindow || goog.dom.getWindow_(goog.dom.getFrameContentDocument(frame))
};
goog.dom.setTextContent = function(element, text) {
if("textContent" in element) {
element.textContent = text
}else {
if(element.firstChild && element.firstChild.nodeType == goog.dom.NodeType.TEXT) {
while(element.lastChild != element.firstChild) {
element.removeChild(element.lastChild)
}
element.firstChild.data = text
}else {
goog.dom.removeChildren(element);
var doc = goog.dom.getOwnerDocument(element);
element.appendChild(doc.createTextNode(text))
}
}
};
goog.dom.getOuterHtml = function(element) {
if("outerHTML" in element) {
return element.outerHTML
}else {
var doc = goog.dom.getOwnerDocument(element);
var div = doc.createElement("div");
div.appendChild(element.cloneNode(true));
return div.innerHTML
}
};
goog.dom.findNode = function(root, p) {
var rv = [];
var found = goog.dom.findNodes_(root, p, rv, true);
return found ? rv[0] : undefined
};
goog.dom.findNodes = function(root, p) {
var rv = [];
goog.dom.findNodes_(root, p, rv, false);
return rv
};
goog.dom.findNodes_ = function(root, p, rv, findOne) {
if(root != null) {
for(var i = 0, child;child = root.childNodes[i];i++) {
if(p(child)) {
rv.push(child);
if(findOne) {
return true
}
}
if(goog.dom.findNodes_(child, p, rv, findOne)) {
return true
}
}
}
return false
};
goog.dom.TAGS_TO_IGNORE_ = {"SCRIPT":1, "STYLE":1, "HEAD":1, "IFRAME":1, "OBJECT":1};
goog.dom.PREDEFINED_TAG_VALUES_ = {"IMG":" ", "BR":"\n"};
goog.dom.isFocusableTabIndex = function(element) {
var attrNode = element.getAttributeNode("tabindex");
if(attrNode && attrNode.specified) {
var index = element.tabIndex;
return goog.isNumber(index) && index >= 0
}
return false
};
goog.dom.setFocusableTabIndex = function(element, enable) {
if(enable) {
element.tabIndex = 0
}else {
element.removeAttribute("tabIndex")
}
};
goog.dom.getTextContent = function(node) {
var textContent;
if(goog.dom.BrowserFeature.CAN_USE_INNER_TEXT && "innerText" in node) {
textContent = goog.string.canonicalizeNewlines(node.innerText)
}else {
var buf = [];
goog.dom.getTextContent_(node, buf, true);
textContent = buf.join("")
}
textContent = textContent.replace(/ \xAD /g, " ").replace(/\xAD/g, "");
textContent = textContent.replace(/\u200B/g, "");
if(!goog.userAgent.IE) {
textContent = textContent.replace(/ +/g, " ")
}
if(textContent != " ") {
textContent = textContent.replace(/^\s*/, "")
}
return textContent
};
goog.dom.getRawTextContent = function(node) {
var buf = [];
goog.dom.getTextContent_(node, buf, false);
return buf.join("")
};
goog.dom.getTextContent_ = function(node, buf, normalizeWhitespace) {
if(node.nodeName in goog.dom.TAGS_TO_IGNORE_) {
}else {
if(node.nodeType == goog.dom.NodeType.TEXT) {
if(normalizeWhitespace) {
buf.push(String(node.nodeValue).replace(/(\r\n|\r|\n)/g, ""))
}else {
buf.push(node.nodeValue)
}
}else {
if(node.nodeName in goog.dom.PREDEFINED_TAG_VALUES_) {
buf.push(goog.dom.PREDEFINED_TAG_VALUES_[node.nodeName])
}else {
var child = node.firstChild;
while(child) {
goog.dom.getTextContent_(child, buf, normalizeWhitespace);
child = child.nextSibling
}
}
}
}
};
goog.dom.getNodeTextLength = function(node) {
return goog.dom.getTextContent(node).length
};
goog.dom.getNodeTextOffset = function(node, opt_offsetParent) {
var root = opt_offsetParent || goog.dom.getOwnerDocument(node).body;
var buf = [];
while(node && node != root) {
var cur = node;
while(cur = cur.previousSibling) {
buf.unshift(goog.dom.getTextContent(cur))
}
node = node.parentNode
}
return goog.string.trimLeft(buf.join("")).replace(/ +/g, " ").length
};
goog.dom.getNodeAtOffset = function(parent, offset, opt_result) {
var stack = [parent], pos = 0, cur;
while(stack.length > 0 && pos < offset) {
cur = stack.pop();
if(cur.nodeName in goog.dom.TAGS_TO_IGNORE_) {
}else {
if(cur.nodeType == goog.dom.NodeType.TEXT) {
var text = cur.nodeValue.replace(/(\r\n|\r|\n)/g, "").replace(/ +/g, " ");
pos += text.length
}else {
if(cur.nodeName in goog.dom.PREDEFINED_TAG_VALUES_) {
pos += goog.dom.PREDEFINED_TAG_VALUES_[cur.nodeName].length
}else {
for(var i = cur.childNodes.length - 1;i >= 0;i--) {
stack.push(cur.childNodes[i])
}
}
}
}
}
if(goog.isObject(opt_result)) {
opt_result.remainder = cur ? cur.nodeValue.length + offset - pos - 1 : 0;
opt_result.node = cur
}
return cur
};
goog.dom.isNodeList = function(val) {
if(val && typeof val.length == "number") {
if(goog.isObject(val)) {
return typeof val.item == "function" || typeof val.item == "string"
}else {
if(goog.isFunction(val)) {
return typeof val.item == "function"
}
}
}
return false
};
goog.dom.getAncestorByTagNameAndClass = function(element, opt_tag, opt_class) {
var tagName = opt_tag ? opt_tag.toUpperCase() : null;
return goog.dom.getAncestor(element, function(node) {
return(!tagName || node.nodeName == tagName) && (!opt_class || goog.dom.classes.has(node, opt_class))
}, true)
};
goog.dom.getAncestorByClass = function(element, opt_class) {
return goog.dom.getAncestorByTagNameAndClass(element, null, opt_class)
};
goog.dom.getAncestor = function(element, matcher, opt_includeNode, opt_maxSearchSteps) {
if(!opt_includeNode) {
element = element.parentNode
}
var ignoreSearchSteps = opt_maxSearchSteps == null;
var steps = 0;
while(element && (ignoreSearchSteps || steps <= opt_maxSearchSteps)) {
if(matcher(element)) {
return element
}
element = element.parentNode;
steps++
}
return null
};
goog.dom.DomHelper = function(opt_document) {
this.document_ = opt_document || goog.global.document || document
};
goog.dom.DomHelper.prototype.getDomHelper = goog.dom.getDomHelper;
goog.dom.DomHelper.prototype.setDocument = function(document) {
this.document_ = document
};
goog.dom.DomHelper.prototype.getDocument = function() {
return this.document_
};
goog.dom.DomHelper.prototype.getElement = function(element) {
if(goog.isString(element)) {
return this.document_.getElementById(element)
}else {
return element
}
};
goog.dom.DomHelper.prototype.$ = goog.dom.DomHelper.prototype.getElement;
goog.dom.DomHelper.prototype.getElementsByTagNameAndClass = function(opt_tag, opt_class, opt_el) {
return goog.dom.getElementsByTagNameAndClass_(this.document_, opt_tag, opt_class, opt_el)
};
goog.dom.DomHelper.prototype.getElementsByClass = function(className, opt_el) {
var doc = opt_el || this.document_;
return goog.dom.getElementsByClass(className, doc)
};
goog.dom.DomHelper.prototype.getElementByClass = function(className, opt_el) {
var doc = opt_el || this.document_;
return goog.dom.getElementByClass(className, doc)
};
goog.dom.DomHelper.prototype.$$ = goog.dom.DomHelper.prototype.getElementsByTagNameAndClass;
goog.dom.DomHelper.prototype.setProperties = goog.dom.setProperties;
goog.dom.DomHelper.prototype.getViewportSize = function(opt_window) {
return goog.dom.getViewportSize(opt_window || this.getWindow())
};
goog.dom.DomHelper.prototype.getDocumentHeight = function() {
return goog.dom.getDocumentHeight_(this.getWindow())
};
goog.dom.Appendable;
goog.dom.DomHelper.prototype.createDom = function(tagName, opt_attributes, var_args) {
return goog.dom.createDom_(this.document_, arguments)
};
goog.dom.DomHelper.prototype.$dom = goog.dom.DomHelper.prototype.createDom;
goog.dom.DomHelper.prototype.createElement = function(name) {
return this.document_.createElement(name)
};
goog.dom.DomHelper.prototype.createTextNode = function(content) {
return this.document_.createTextNode(content)
};
goog.dom.DomHelper.prototype.createTable = function(rows, columns, opt_fillWithNbsp) {
return goog.dom.createTable_(this.document_, rows, columns, !!opt_fillWithNbsp)
};
goog.dom.DomHelper.prototype.htmlToDocumentFragment = function(htmlString) {
return goog.dom.htmlToDocumentFragment_(this.document_, htmlString)
};
goog.dom.DomHelper.prototype.getCompatMode = function() {
return this.isCss1CompatMode() ? "CSS1Compat" : "BackCompat"
};
goog.dom.DomHelper.prototype.isCss1CompatMode = function() {
return goog.dom.isCss1CompatMode_(this.document_)
};
goog.dom.DomHelper.prototype.getWindow = function() {
return goog.dom.getWindow_(this.document_)
};
goog.dom.DomHelper.prototype.getDocumentScrollElement = function() {
return goog.dom.getDocumentScrollElement_(this.document_)
};
goog.dom.DomHelper.prototype.getDocumentScroll = function() {
return goog.dom.getDocumentScroll_(this.document_)
};
goog.dom.DomHelper.prototype.appendChild = goog.dom.appendChild;
goog.dom.DomHelper.prototype.append = goog.dom.append;
goog.dom.DomHelper.prototype.removeChildren = goog.dom.removeChildren;
goog.dom.DomHelper.prototype.insertSiblingBefore = goog.dom.insertSiblingBefore;
goog.dom.DomHelper.prototype.insertSiblingAfter = goog.dom.insertSiblingAfter;
goog.dom.DomHelper.prototype.removeNode = goog.dom.removeNode;
goog.dom.DomHelper.prototype.replaceNode = goog.dom.replaceNode;
goog.dom.DomHelper.prototype.flattenElement = goog.dom.flattenElement;
goog.dom.DomHelper.prototype.getFirstElementChild = goog.dom.getFirstElementChild;
goog.dom.DomHelper.prototype.getLastElementChild = goog.dom.getLastElementChild;
goog.dom.DomHelper.prototype.getNextElementSibling = goog.dom.getNextElementSibling;
goog.dom.DomHelper.prototype.getPreviousElementSibling = goog.dom.getPreviousElementSibling;
goog.dom.DomHelper.prototype.getNextNode = goog.dom.getNextNode;
goog.dom.DomHelper.prototype.getPreviousNode = goog.dom.getPreviousNode;
goog.dom.DomHelper.prototype.isNodeLike = goog.dom.isNodeLike;
goog.dom.DomHelper.prototype.contains = goog.dom.contains;
goog.dom.DomHelper.prototype.getOwnerDocument = goog.dom.getOwnerDocument;
goog.dom.DomHelper.prototype.getFrameContentDocument = goog.dom.getFrameContentDocument;
goog.dom.DomHelper.prototype.getFrameContentWindow = goog.dom.getFrameContentWindow;
goog.dom.DomHelper.prototype.setTextContent = goog.dom.setTextContent;
goog.dom.DomHelper.prototype.findNode = goog.dom.findNode;
goog.dom.DomHelper.prototype.findNodes = goog.dom.findNodes;
goog.dom.DomHelper.prototype.getTextContent = goog.dom.getTextContent;
goog.dom.DomHelper.prototype.getNodeTextLength = goog.dom.getNodeTextLength;
goog.dom.DomHelper.prototype.getNodeTextOffset = goog.dom.getNodeTextOffset;
goog.dom.DomHelper.prototype.getAncestorByTagNameAndClass = goog.dom.getAncestorByTagNameAndClass;
goog.dom.DomHelper.prototype.getAncestor = goog.dom.getAncestor;
goog.provide("goog.dom.ViewportSizeMonitor");
goog.require("goog.dom");
goog.require("goog.events");
goog.require("goog.events.EventTarget");
goog.require("goog.events.EventType");
goog.require("goog.math.Size");
goog.require("goog.userAgent");
goog.dom.ViewportSizeMonitor = function(opt_window) {
goog.events.EventTarget.call(this);
this.window_ = opt_window || window;
this.listenerKey_ = goog.events.listen(this.window_, goog.events.EventType.RESIZE, this.handleResize_, false, this);
this.size_ = goog.dom.getViewportSize(this.window_);
if(this.isPollingRequired_()) {
this.windowSizePollInterval_ = window.setInterval(goog.bind(this.checkForSizeChange_, this), goog.dom.ViewportSizeMonitor.WINDOW_SIZE_POLL_RATE)
}
};
goog.inherits(goog.dom.ViewportSizeMonitor, goog.events.EventTarget);
goog.dom.ViewportSizeMonitor.getInstanceForWindow = function(opt_window) {
var currentWindow = opt_window || window;
var uid = goog.getUid(currentWindow);
return goog.dom.ViewportSizeMonitor.windowInstanceMap_[uid] = goog.dom.ViewportSizeMonitor.windowInstanceMap_[uid] || new goog.dom.ViewportSizeMonitor(currentWindow)
};
goog.dom.ViewportSizeMonitor.windowInstanceMap_ = {};
goog.dom.ViewportSizeMonitor.WINDOW_SIZE_POLL_RATE = 500;
goog.dom.ViewportSizeMonitor.prototype.listenerKey_ = null;
goog.dom.ViewportSizeMonitor.prototype.window_ = null;
goog.dom.ViewportSizeMonitor.prototype.size_ = null;
goog.dom.ViewportSizeMonitor.prototype.windowSizePollInterval_ = null;
goog.dom.ViewportSizeMonitor.prototype.isPollingRequired_ = function() {
return goog.userAgent.WEBKIT && goog.userAgent.WINDOWS || goog.userAgent.OPERA && this.window_.self != this.window_.top
};
goog.dom.ViewportSizeMonitor.prototype.getSize = function() {
return this.size_ ? this.size_.clone() : null
};
goog.dom.ViewportSizeMonitor.prototype.disposeInternal = function() {
goog.dom.ViewportSizeMonitor.superClass_.disposeInternal.call(this);
if(this.listenerKey_) {
goog.events.unlistenByKey(this.listenerKey_);
this.listenerKey_ = null
}
if(this.windowSizePollInterval_) {
window.clearInterval(this.windowSizePollInterval_);
this.windowSizePollInterval_ = null
}
this.window_ = null;
this.size_ = null
};
goog.dom.ViewportSizeMonitor.prototype.handleResize_ = function(event) {
this.checkForSizeChange_()
};
goog.dom.ViewportSizeMonitor.prototype.checkForSizeChange_ = function() {
var size = goog.dom.getViewportSize(this.window_);
if(!goog.math.Size.equals(size, this.size_)) {
this.size_ = size;
this.dispatchEvent(goog.events.EventType.RESIZE)
}
};
goog.provide("goog.fx.Animation");
goog.provide("goog.fx.Animation.EventType");
goog.provide("goog.fx.Animation.State");
goog.provide("goog.fx.AnimationEvent");
goog.require("goog.Timer");
goog.require("goog.array");
goog.require("goog.events.Event");
goog.require("goog.events.EventTarget");
goog.require("goog.object");
goog.fx.Animation = function(start, end, duration, opt_acc) {
goog.events.EventTarget.call(this);
if(!goog.isArray(start) || !goog.isArray(end)) {
throw Error("Start and end parameters must be arrays");
}
if(start.length != end.length) {
throw Error("Start and end points must be the same length");
}
this.startPoint = start;
this.endPoint = end;
this.duration = duration;
this.accel_ = opt_acc;
this.coords = []
};
goog.inherits(goog.fx.Animation, goog.events.EventTarget);
goog.fx.Animation.EventType = {PLAY:"play", BEGIN:"begin", RESUME:"resume", END:"end", STOP:"stop", FINISH:"finish", PAUSE:"pause", ANIMATE:"animate", DESTROY:"destroy"};
goog.fx.Animation.State = {STOPPED:0, PAUSED:-1, PLAYING:1};
goog.fx.Animation.TIMEOUT = 20;
goog.fx.Animation.activeAnimations_ = {};
goog.fx.Animation.globalTimer_ = null;
goog.fx.Animation.cycleAnimations_ = function() {
goog.Timer.defaultTimerObject.clearTimeout(goog.fx.Animation.globalTimer_);
var now = goog.now();
for(var uid in goog.fx.Animation.activeAnimations_) {
goog.fx.Animation.activeAnimations_[uid].cycle(now)
}
goog.fx.Animation.globalTimer_ = goog.object.isEmpty(goog.fx.Animation.activeAnimations_) ? null : goog.Timer.defaultTimerObject.setTimeout(goog.fx.Animation.cycleAnimations_, goog.fx.Animation.TIMEOUT)
};
goog.fx.Animation.registerAnimation = function(animation) {
var uid = goog.getUid(animation);
if(!(uid in goog.fx.Animation.activeAnimations_)) {
goog.fx.Animation.activeAnimations_[uid] = animation
}
if(!goog.fx.Animation.globalTimer_) {
goog.fx.Animation.globalTimer_ = goog.Timer.defaultTimerObject.setTimeout(goog.fx.Animation.cycleAnimations_, goog.fx.Animation.TIMEOUT)
}
};
goog.fx.Animation.unregisterAnimation = function(animation) {
var uid = goog.getUid(animation);
delete goog.fx.Animation.activeAnimations_[uid];
if(goog.fx.Animation.globalTimer_ && goog.object.isEmpty(goog.fx.Animation.activeAnimations_)) {
goog.Timer.defaultTimerObject.clearTimeout(goog.fx.Animation.globalTimer_);
goog.fx.Animation.globalTimer_ = null
}
};
goog.fx.Animation.prototype.state_ = goog.fx.Animation.State.STOPPED;
goog.fx.Animation.prototype.fps_ = 0;
goog.fx.Animation.prototype.progress = 0;
goog.fx.Animation.prototype.startTime = null;
goog.fx.Animation.prototype.endTime = null;
goog.fx.Animation.prototype.lastFrame = null;
goog.fx.Animation.prototype.getStateInternal = function() {
return this.state_
};
goog.fx.Animation.prototype.play = function(opt_restart) {
if(opt_restart || this.state_ == goog.fx.Animation.State.STOPPED) {
this.progress = 0;
this.coords = this.startPoint
}else {
if(this.state_ == goog.fx.Animation.State.PLAYING) {
return false
}
}
goog.fx.Animation.unregisterAnimation(this);
this.startTime = goog.now();
if(this.state_ == goog.fx.Animation.State.PAUSED) {
this.startTime -= this.duration * this.progress
}
this.endTime = this.startTime + this.duration;
this.lastFrame = this.startTime;
if(!this.progress) {
this.onBegin()
}
this.onPlay();
if(this.state_ == goog.fx.Animation.State.PAUSED) {
this.onResume()
}
this.state_ = goog.fx.Animation.State.PLAYING;
goog.fx.Animation.registerAnimation(this);
this.cycle(this.startTime);
return true
};
goog.fx.Animation.prototype.stop = function(gotoEnd) {
goog.fx.Animation.unregisterAnimation(this);
this.state_ = goog.fx.Animation.State.STOPPED;
if(gotoEnd) {
this.progress = 1
}
this.updateCoords_(this.progress);
this.onStop();
this.onEnd()
};
goog.fx.Animation.prototype.pause = function() {
if(this.state_ == goog.fx.Animation.State.PLAYING) {
goog.fx.Animation.unregisterAnimation(this);
this.state_ = goog.fx.Animation.State.PAUSED;
this.onPause()
}
};
goog.fx.Animation.prototype.disposeInternal = function() {
if(this.state_ != goog.fx.Animation.State.STOPPED) {
this.stop(false)
}
this.onDestroy();
goog.fx.Animation.superClass_.disposeInternal.call(this)
};
goog.fx.Animation.prototype.destroy = function() {
this.dispose()
};
goog.fx.Animation.prototype.cycle = function(now) {
this.progress = (now - this.startTime) / (this.endTime - this.startTime);
if(this.progress >= 1) {
this.progress = 1
}
this.fps_ = 1E3 / (now - this.lastFrame);
this.lastFrame = now;
if(goog.isFunction(this.accel_)) {
this.updateCoords_(this.accel_(this.progress))
}else {
this.updateCoords_(this.progress)
}
if(this.progress == 1) {
this.state_ = goog.fx.Animation.State.STOPPED;
goog.fx.Animation.unregisterAnimation(this);
this.onFinish();
this.onEnd()
}else {
if(this.state_ == goog.fx.Animation.State.PLAYING) {
this.onAnimate()
}
}
};
goog.fx.Animation.prototype.updateCoords_ = function(t) {
this.coords = new Array(this.startPoint.length);
for(var i = 0;i < this.startPoint.length;i++) {
this.coords[i] = (this.endPoint[i] - this.startPoint[i]) * t + this.startPoint[i]
}
};
goog.fx.Animation.prototype.onAnimate = function() {
this.dispatchAnimationEvent_(goog.fx.Animation.EventType.ANIMATE)
};
goog.fx.Animation.prototype.onBegin = function() {
this.dispatchAnimationEvent_(goog.fx.Animation.EventType.BEGIN)
};
goog.fx.Animation.prototype.onDestroy = function() {
this.dispatchAnimationEvent_(goog.fx.Animation.EventType.DESTROY)
};
goog.fx.Animation.prototype.onEnd = function() {
this.dispatchAnimationEvent_(goog.fx.Animation.EventType.END)
};
goog.fx.Animation.prototype.onFinish = function() {
this.dispatchAnimationEvent_(goog.fx.Animation.EventType.FINISH)
};
goog.fx.Animation.prototype.onPause = function() {
this.dispatchAnimationEvent_(goog.fx.Animation.EventType.PAUSE)
};
goog.fx.Animation.prototype.onPlay = function() {
this.dispatchAnimationEvent_(goog.fx.Animation.EventType.PLAY)
};
goog.fx.Animation.prototype.onResume = function() {
this.dispatchAnimationEvent_(goog.fx.Animation.EventType.RESUME)
};
goog.fx.Animation.prototype.onStop = function() {
this.dispatchAnimationEvent_(goog.fx.Animation.EventType.STOP)
};
goog.fx.Animation.prototype.dispatchAnimationEvent_ = function(type) {
this.dispatchEvent(new goog.fx.AnimationEvent(type, this))
};
goog.fx.AnimationEvent = function(type, anim) {
goog.events.Event.call(this, type);
this.coords = anim.coords;
this.x = anim.coords[0];
this.y = anim.coords[1];
this.z = anim.coords[2];
this.duration = anim.duration;
this.progress = anim.progress;
this.fps = anim.fps_;
this.state = anim.state_;
this.anim = anim
};
goog.inherits(goog.fx.AnimationEvent, goog.events.Event);
goog.fx.AnimationEvent.prototype.coordsAsInts = function() {
return goog.array.map(this.coords, Math.round)
};
goog.provide("goog.fx.easing");
goog.fx.easing.easeIn = function(t) {
return t * t * t
};
goog.fx.easing.easeOut = function(t) {
return 1 - Math.pow(1 - t, 3)
};
goog.fx.easing.inAndOut = function(t) {
return 3 * t * t - 2 * t * t * t
};
goog.provide("goog.fx");
goog.require("goog.asserts");
goog.require("goog.fx.Animation");
goog.require("goog.fx.Animation.EventType");
goog.require("goog.fx.Animation.State");
goog.require("goog.fx.AnimationEvent");
goog.require("goog.fx.easing");
goog.provide("goog.Delay");
goog.provide("goog.async.Delay");
goog.require("goog.Disposable");
goog.require("goog.Timer");
goog.async.Delay = function(listener, opt_interval, opt_handler) {
goog.Disposable.call(this);
this.listener_ = listener;
this.interval_ = opt_interval || 0;
this.handler_ = opt_handler;
this.callback_ = goog.bind(this.doAction_, this)
};
goog.inherits(goog.async.Delay, goog.Disposable);
goog.Delay = goog.async.Delay;
goog.async.Delay.prototype.id_ = 0;
goog.async.Delay.prototype.disposeInternal = function() {
goog.async.Delay.superClass_.disposeInternal.call(this);
this.stop();
delete this.listener_;
delete this.handler_
};
goog.async.Delay.prototype.start = function(opt_interval) {
this.stop();
this.id_ = goog.Timer.callOnce(this.callback_, goog.isDef(opt_interval) ? opt_interval : this.interval_)
};
goog.async.Delay.prototype.stop = function() {
if(this.isActive()) {
goog.Timer.clear(this.id_)
}
this.id_ = 0
};
goog.async.Delay.prototype.fire = function() {
this.stop();
this.doAction_()
};
goog.async.Delay.prototype.fireIfActive = function() {
if(this.isActive()) {
this.fire()
}
};
goog.async.Delay.prototype.isActive = function() {
return this.id_ != 0
};
goog.async.Delay.prototype.doAction_ = function() {
this.id_ = 0;
if(this.listener_) {
this.listener_.call(this.handler_)
}
};
goog.provide("goog.color.names");
goog.color.names = {"aliceblue":"#f0f8ff", "antiquewhite":"#faebd7", "aqua":"#00ffff", "aquamarine":"#7fffd4", "azure":"#f0ffff", "beige":"#f5f5dc", "bisque":"#ffe4c4", "black":"#000000", "blanchedalmond":"#ffebcd", "blue":"#0000ff", "blueviolet":"#8a2be2", "brown":"#a52a2a", "burlywood":"#deb887", "cadetblue":"#5f9ea0", "chartreuse":"#7fff00", "chocolate":"#d2691e", "coral":"#ff7f50", "cornflowerblue":"#6495ed", "cornsilk":"#fff8dc", "crimson":"#dc143c", "cyan":"#00ffff", "darkblue":"#00008b", "darkcyan":"#008b8b",
"darkgoldenrod":"#b8860b", "darkgray":"#a9a9a9", "darkgreen":"#006400", "darkgrey":"#a9a9a9", "darkkhaki":"#bdb76b", "darkmagenta":"#8b008b", "darkolivegreen":"#556b2f", "darkorange":"#ff8c00", "darkorchid":"#9932cc", "darkred":"#8b0000", "darksalmon":"#e9967a", "darkseagreen":"#8fbc8f", "darkslateblue":"#483d8b", "darkslategray":"#2f4f4f", "darkslategrey":"#2f4f4f", "darkturquoise":"#00ced1", "darkviolet":"#9400d3", "deeppink":"#ff1493", "deepskyblue":"#00bfff", "dimgray":"#696969", "dimgrey":"#696969",
"dodgerblue":"#1e90ff", "firebrick":"#b22222", "floralwhite":"#fffaf0", "forestgreen":"#228b22", "fuchsia":"#ff00ff", "gainsboro":"#dcdcdc", "ghostwhite":"#f8f8ff", "gold":"#ffd700", "goldenrod":"#daa520", "gray":"#808080", "green":"#008000", "greenyellow":"#adff2f", "grey":"#808080", "honeydew":"#f0fff0", "hotpink":"#ff69b4", "indianred":"#cd5c5c", "indigo":"#4b0082", "ivory":"#fffff0", "khaki":"#f0e68c", "lavender":"#e6e6fa", "lavenderblush":"#fff0f5", "lawngreen":"#7cfc00", "lemonchiffon":"#fffacd",
"lightblue":"#add8e6", "lightcoral":"#f08080", "lightcyan":"#e0ffff", "lightgoldenrodyellow":"#fafad2", "lightgray":"#d3d3d3", "lightgreen":"#90ee90", "lightgrey":"#d3d3d3", "lightpink":"#ffb6c1", "lightsalmon":"#ffa07a", "lightseagreen":"#20b2aa", "lightskyblue":"#87cefa", "lightslategray":"#778899", "lightslategrey":"#778899", "lightsteelblue":"#b0c4de", "lightyellow":"#ffffe0", "lime":"#00ff00", "limegreen":"#32cd32", "linen":"#faf0e6", "magenta":"#ff00ff", "maroon":"#800000", "mediumaquamarine":"#66cdaa",
"mediumblue":"#0000cd", "mediumorchid":"#ba55d3", "mediumpurple":"#9370d8", "mediumseagreen":"#3cb371", "mediumslateblue":"#7b68ee", "mediumspringgreen":"#00fa9a", "mediumturquoise":"#48d1cc", "mediumvioletred":"#c71585", "midnightblue":"#191970", "mintcream":"#f5fffa", "mistyrose":"#ffe4e1", "moccasin":"#ffe4b5", "navajowhite":"#ffdead", "navy":"#000080", "oldlace":"#fdf5e6", "olive":"#808000", "olivedrab":"#6b8e23", "orange":"#ffa500", "orangered":"#ff4500", "orchid":"#da70d6", "palegoldenrod":"#eee8aa",
"palegreen":"#98fb98", "paleturquoise":"#afeeee", "palevioletred":"#d87093", "papayawhip":"#ffefd5", "peachpuff":"#ffdab9", "peru":"#cd853f", "pink":"#ffc0cb", "plum":"#dda0dd", "powderblue":"#b0e0e6", "purple":"#800080", "red":"#ff0000", "rosybrown":"#bc8f8f", "royalblue":"#4169e1", "saddlebrown":"#8b4513", "salmon":"#fa8072", "sandybrown":"#f4a460", "seagreen":"#2e8b57", "seashell":"#fff5ee", "sienna":"#a0522d", "silver":"#c0c0c0", "skyblue":"#87ceeb", "slateblue":"#6a5acd", "slategray":"#708090",
"slategrey":"#708090", "snow":"#fffafa", "springgreen":"#00ff7f", "steelblue":"#4682b4", "tan":"#d2b48c", "teal":"#008080", "thistle":"#d8bfd8", "tomato":"#ff6347", "turquoise":"#40e0d0", "violet":"#ee82ee", "wheat":"#f5deb3", "white":"#ffffff", "whitesmoke":"#f5f5f5", "yellow":"#ffff00", "yellowgreen":"#9acd32"};
goog.provide("goog.math");
goog.require("goog.array");
goog.math.randomInt = function(a) {
return Math.floor(Math.random() * a)
};
goog.math.uniformRandom = function(a, b) {
return a + Math.random() * (b - a)
};
goog.math.clamp = function(value, min, max) {
return Math.min(Math.max(value, min), max)
};
goog.math.modulo = function(a, b) {
var r = a % b;
return r * b < 0 ? r + b : r
};
goog.math.lerp = function(a, b, x) {
return a + x * (b - a)
};
goog.math.nearlyEquals = function(a, b, opt_tolerance) {
return Math.abs(a - b) <= (opt_tolerance || 1.0E-6)
};
goog.math.standardAngle = function(angle) {
return goog.math.modulo(angle, 360)
};
goog.math.toRadians = function(angleDegrees) {
return angleDegrees * Math.PI / 180
};
goog.math.toDegrees = function(angleRadians) {
return angleRadians * 180 / Math.PI
};
goog.math.angleDx = function(degrees, radius) {
return radius * Math.cos(goog.math.toRadians(degrees))
};
goog.math.angleDy = function(degrees, radius) {
return radius * Math.sin(goog.math.toRadians(degrees))
};
goog.math.angle = function(x1, y1, x2, y2) {
return goog.math.standardAngle(goog.math.toDegrees(Math.atan2(y2 - y1, x2 - x1)))
};
goog.math.angleDifference = function(startAngle, endAngle) {
var d = goog.math.standardAngle(endAngle) - goog.math.standardAngle(startAngle);
if(d > 180) {
d = d - 360
}else {
if(d <= -180) {
d = 360 + d
}
}
return d
};
goog.math.sign = function(x) {
return x == 0 ? 0 : x < 0 ? -1 : 1
};
goog.math.longestCommonSubsequence = function(array1, array2, opt_compareFn, opt_collectorFn) {
var compare = opt_compareFn || function(a, b) {
return a == b
};
var collect = opt_collectorFn || function(i1, i2) {
return array1[i1]
};
var length1 = array1.length;
var length2 = array2.length;
var arr = [];
for(var i = 0;i < length1 + 1;i++) {
arr[i] = [];
arr[i][0] = 0
}
for(var j = 0;j < length2 + 1;j++) {
arr[0][j] = 0
}
for(i = 1;i <= length1;i++) {
for(j = 1;j <= length1;j++) {
if(compare(array1[i - 1], array2[j - 1])) {
arr[i][j] = arr[i - 1][j - 1] + 1
}else {
arr[i][j] = Math.max(arr[i - 1][j], arr[i][j - 1])
}
}
}
var result = [];
var i = length1, j = length2;
while(i > 0 && j > 0) {
if(compare(array1[i - 1], array2[j - 1])) {
result.unshift(collect(i - 1, j - 1));
i--;
j--
}else {
if(arr[i - 1][j] > arr[i][j - 1]) {
i--
}else {
j--
}
}
}
return result
};
goog.math.sum = function(var_args) {
return goog.array.reduce(arguments, function(sum, value) {
return sum + value
}, 0)
};
goog.math.average = function(var_args) {
return goog.math.sum.apply(null, arguments) / arguments.length
};
goog.math.standardDeviation = function(var_args) {
var sampleSize = arguments.length;
if(sampleSize < 2) {
return 0
}
var mean = goog.math.average.apply(null, arguments);
var variance = goog.math.sum.apply(null, goog.array.map(arguments, function(val) {
return Math.pow(val - mean, 2)
})) / (sampleSize - 1);
return Math.sqrt(variance)
};
goog.math.isInt = function(num) {
return isFinite(num) && num % 1 == 0
};
goog.math.isFiniteNumber = function(num) {
return isFinite(num) && !isNaN(num)
};
goog.provide("goog.color");
goog.require("goog.color.names");
goog.require("goog.math");
goog.color.parse = function(str) {
var result = {};
str = String(str);
var maybeHex = goog.color.prependPoundIfNecessary_(str);
if(goog.color.isValidHexColor_(maybeHex)) {
result.hex = goog.color.normalizeHex(maybeHex);
result.type = "hex";
return result
}else {
var rgb = goog.color.isValidRgbColor_(str);
if(rgb.length) {
result.hex = goog.color.rgbArrayToHex(rgb);
result.type = "rgb";
return result
}else {
if(goog.color.names) {
var hex = goog.color.names[str.toLowerCase()];
if(hex) {
result.hex = hex;
result.type = "named";
return result
}
}
}
}
throw Error(str + " is not a valid color string");
};
goog.color.parseRgb = function(str) {
var rgb = goog.color.isValidRgbColor_(str);
if(!rgb.length) {
throw Error(str + " is not a valid RGB color");
}
return rgb
};
goog.color.hexToRgbStyle = function(hexColor) {
return goog.color.rgbStyle_(goog.color.hexToRgb(hexColor))
};
goog.color.hexTripletRe_ = /#(.)(.)(.)/;
goog.color.normalizeHex = function(hexColor) {
if(!goog.color.isValidHexColor_(hexColor)) {
throw Error("'" + hexColor + "' is not a valid hex color");
}
if(hexColor.length == 4) {
hexColor = hexColor.replace(goog.color.hexTripletRe_, "#$1$1$2$2$3$3")
}
return hexColor.toLowerCase()
};
goog.color.hexToRgb = function(hexColor) {
hexColor = goog.color.normalizeHex(hexColor);
var r = parseInt(hexColor.substr(1, 2), 16);
var g = parseInt(hexColor.substr(3, 2), 16);
var b = parseInt(hexColor.substr(5, 2), 16);
return[r, g, b]
};
goog.color.rgbToHex = function(r, g, b) {
r = Number(r);
g = Number(g);
b = Number(b);
if(isNaN(r) || r < 0 || r > 255 || isNaN(g) || g < 0 || g > 255 || isNaN(b) || b < 0 || b > 255) {
throw Error('"(' + r + "," + g + "," + b + '") is not a valid RGB color');
}
var hexR = goog.color.prependZeroIfNecessary_(r.toString(16));
var hexG = goog.color.prependZeroIfNecessary_(g.toString(16));
var hexB = goog.color.prependZeroIfNecessary_(b.toString(16));
return"#" + hexR + hexG + hexB
};
goog.color.rgbArrayToHex = function(rgb) {
return goog.color.rgbToHex(rgb[0], rgb[1], rgb[2])
};
goog.color.rgbToHsl = function(r, g, b) {
var normR = r / 255;
var normG = g / 255;
var normB = b / 255;
var max = Math.max(normR, normG, normB);
var min = Math.min(normR, normG, normB);
var h = 0;
var s = 0;
var l = 0.5 * (max + min);
if(max != min) {
if(max == normR) {
h = 60 * (normG - normB) / (max - min)
}else {
if(max == normG) {
h = 60 * (normB - normR) / (max - min) + 120
}else {
if(max == normB) {
h = 60 * (normR - normG) / (max - min) + 240
}
}
}
if(0 < l && l <= 0.5) {
s = (max - min) / (2 * l)
}else {
s = (max - min) / (2 - 2 * l)
}
}
return[Math.round(h + 360) % 360, s, l]
};
goog.color.rgbArrayToHsl = function(rgb) {
return goog.color.rgbToHsl(rgb[0], rgb[1], rgb[2])
};
goog.color.hueToRgb_ = function(v1, v2, vH) {
if(vH < 0) {
vH += 1
}else {
if(vH > 1) {
vH -= 1
}
}
if(6 * vH < 1) {
return v1 + (v2 - v1) * 6 * vH
}else {
if(2 * vH < 1) {
return v2
}else {
if(3 * vH < 2) {
return v1 + (v2 - v1) * (2 / 3 - vH) * 6
}
}
}
return v1
};
goog.color.hslToRgb = function(h, s, l) {
var r = 0;
var g = 0;
var b = 0;
var normH = h / 360;
if(s == 0) {
r = g = b = l * 255
}else {
var temp1 = 0;
var temp2 = 0;
if(l < 0.5) {
temp2 = l * (1 + s)
}else {
temp2 = l + s - s * l
}
temp1 = 2 * l - temp2;
r = 255 * goog.color.hueToRgb_(temp1, temp2, normH + 1 / 3);
g = 255 * goog.color.hueToRgb_(temp1, temp2, normH);
b = 255 * goog.color.hueToRgb_(temp1, temp2, normH - 1 / 3)
}
return[Math.round(r), Math.round(g), Math.round(b)]
};
goog.color.hslArrayToRgb = function(hsl) {
return goog.color.hslToRgb(hsl[0], hsl[1], hsl[2])
};
goog.color.validHexColorRe_ = /^#(?:[0-9a-f]{3}){1,2}$/i;
goog.color.isValidHexColor_ = function(str) {
return goog.color.validHexColorRe_.test(str)
};
goog.color.normalizedHexColorRe_ = /^#[0-9a-f]{6}$/;
goog.color.isNormalizedHexColor_ = function(str) {
return goog.color.normalizedHexColorRe_.test(str)
};
goog.color.rgbColorRe_ = /^(?:rgb)?\((0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2})\)$/i;
goog.color.isValidRgbColor_ = function(str) {
var regExpResultArray = str.match(goog.color.rgbColorRe_);
if(regExpResultArray) {
var r = Number(regExpResultArray[1]);
var g = Number(regExpResultArray[2]);
var b = Number(regExpResultArray[3]);
if(r >= 0 && r <= 255 && g >= 0 && g <= 255 && b >= 0 && b <= 255) {
return[r, g, b]
}
}
return[]
};
goog.color.prependZeroIfNecessary_ = function(hex) {
return hex.length == 1 ? "0" + hex : hex
};
goog.color.prependPoundIfNecessary_ = function(str) {
return str.charAt(0) == "#" ? str : "#" + str
};
goog.color.rgbStyle_ = function(rgb) {
return"rgb(" + rgb.join(",") + ")"
};
goog.color.hsvToRgb = function(h, s, brightness) {
var red = 0;
var green = 0;
var blue = 0;
if(s == 0) {
red = brightness;
green = brightness;
blue = brightness
}else {
var sextant = Math.floor(h / 60);
var remainder = h / 60 - sextant;
var val1 = brightness * (1 - s);
var val2 = brightness * (1 - s * remainder);
var val3 = brightness * (1 - s * (1 - remainder));
switch(sextant) {
case 1:
red = val2;
green = brightness;
blue = val1;
break;
case 2:
red = val1;
green = brightness;
blue = val3;
break;
case 3:
red = val1;
green = val2;
blue = brightness;
break;
case 4:
red = val3;
green = val1;
blue = brightness;
break;
case 5:
red = brightness;
green = val1;
blue = val2;
break;
case 6:
;
case 0:
red = brightness;
green = val3;
blue = val1;
break
}
}
return[Math.floor(red), Math.floor(green), Math.floor(blue)]
};
goog.color.rgbToHsv = function(red, green, blue) {
var max = Math.max(Math.max(red, green), blue);
var min = Math.min(Math.min(red, green), blue);
var hue;
var saturation;
var value = max;
if(min == max) {
hue = 0;
saturation = 0
}else {
var delta = max - min;
saturation = delta / max;
if(red == max) {
hue = (green - blue) / delta
}else {
if(green == max) {
hue = 2 + (blue - red) / delta
}else {
hue = 4 + (red - green) / delta
}
}
hue *= 60;
if(hue < 0) {
hue += 360
}
if(hue > 360) {
hue -= 360
}
}
return[hue, saturation, value]
};
goog.color.rgbArrayToHsv = function(rgb) {
return goog.color.rgbToHsv(rgb[0], rgb[1], rgb[2])
};
goog.color.hsvArrayToRgb = function(hsv) {
return goog.color.hsvToRgb(hsv[0], hsv[1], hsv[2])
};
goog.color.hexToHsl = function(hex) {
var rgb = goog.color.hexToRgb(hex);
return goog.color.rgbToHsl(rgb[0], rgb[1], rgb[2])
};
goog.color.hslToHex = function(h, s, l) {
return goog.color.rgbArrayToHex(goog.color.hslToRgb(h, s, l))
};
goog.color.hslArrayToHex = function(hsl) {
return goog.color.rgbArrayToHex(goog.color.hslToRgb(hsl[0], hsl[1], hsl[2]))
};
goog.color.hexToHsv = function(hex) {
return goog.color.rgbArrayToHsv(goog.color.hexToRgb(hex))
};
goog.color.hsvToHex = function(h, s, v) {
return goog.color.rgbArrayToHex(goog.color.hsvToRgb(h, s, v))
};
goog.color.hsvArrayToHex = function(hsv) {
return goog.color.hsvToHex(hsv[0], hsv[1], hsv[2])
};
goog.color.hslDistance = function(hsl1, hsl2) {
var sl1, sl2;
if(hsl1[2] <= 0.5) {
sl1 = hsl1[1] * hsl1[2]
}else {
sl1 = hsl1[1] * (1 - hsl1[2])
}
if(hsl2[2] <= 0.5) {
sl2 = hsl2[1] * hsl2[2]
}else {
sl2 = hsl2[1] * (1 - hsl2[2])
}
var h1 = hsl1[0] / 360;
var h2 = hsl2[0] / 360;
var dh = (h1 - h2) * 2 * Math.PI;
return(hsl1[2] - hsl2[2]) * (hsl1[2] - hsl2[2]) + sl1 * sl1 + sl2 * sl2 - 2 * sl1 * sl2 * Math.cos(dh)
};
goog.color.blend = function(rgb1, rgb2, factor) {
factor = goog.math.clamp(factor, 0, 1);
return[Math.round(factor * rgb1[0] + (1 - factor) * rgb2[0]), Math.round(factor * rgb1[1] + (1 - factor) * rgb2[1]), Math.round(factor * rgb1[2] + (1 - factor) * rgb2[2])]
};
goog.color.darken = function(rgb, factor) {
var black = [0, 0, 0];
return goog.color.blend(black, rgb, factor)
};
goog.color.lighten = function(rgb, factor) {
var white = [255, 255, 255];
return goog.color.blend(white, rgb, factor)
};
goog.color.highContrast = function(prime, suggestions) {
var suggestionsWithDiff = [];
for(var i = 0;i < suggestions.length;i++) {
suggestionsWithDiff.push({color:suggestions[i], diff:goog.color.yiqBrightnessDiff_(suggestions[i], prime) + goog.color.colorDiff_(suggestions[i], prime)})
}
suggestionsWithDiff.sort(function(a, b) {
return b.diff - a.diff
});
return suggestionsWithDiff[0].color
};
goog.color.yiqBrightness_ = function(rgb) {
return Math.round((rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1E3)
};
goog.color.yiqBrightnessDiff_ = function(rgb1, rgb2) {
return Math.abs(goog.color.yiqBrightness_(rgb1) - goog.color.yiqBrightness_(rgb2))
};
goog.color.colorDiff_ = function(rgb1, rgb2) {
return Math.abs(rgb1[0] - rgb2[0]) + Math.abs(rgb1[1] - rgb2[1]) + Math.abs(rgb1[2] - rgb2[2])
};
goog.provide("goog.math.Box");
goog.require("goog.math.Coordinate");
goog.math.Box = function(top, right, bottom, left) {
this.top = top;
this.right = right;
this.bottom = bottom;
this.left = left
};
goog.math.Box.boundingBox = function(var_args) {
var box = new goog.math.Box(arguments[0].y, arguments[0].x, arguments[0].y, arguments[0].x);
for(var i = 1;i < arguments.length;i++) {
var coord = arguments[i];
box.top = Math.min(box.top, coord.y);
box.right = Math.max(box.right, coord.x);
box.bottom = Math.max(box.bottom, coord.y);
box.left = Math.min(box.left, coord.x)
}
return box
};
goog.math.Box.prototype.clone = function() {
return new goog.math.Box(this.top, this.right, this.bottom, this.left)
};
if(goog.DEBUG) {
goog.math.Box.prototype.toString = function() {
return"(" + this.top + "t, " + this.right + "r, " + this.bottom + "b, " + this.left + "l)"
}
}
goog.math.Box.prototype.contains = function(other) {
return goog.math.Box.contains(this, other)
};
goog.math.Box.prototype.expand = function(top, opt_right, opt_bottom, opt_left) {
if(goog.isObject(top)) {
this.top -= top.top;
this.right += top.right;
this.bottom += top.bottom;
this.left -= top.left
}else {
this.top -= top;
this.right += opt_right;
this.bottom += opt_bottom;
this.left -= opt_left
}
return this
};
goog.math.Box.prototype.expandToInclude = function(box) {
this.left = Math.min(this.left, box.left);
this.top = Math.min(this.top, box.top);
this.right = Math.max(this.right, box.right);
this.bottom = Math.max(this.bottom, box.bottom)
};
goog.math.Box.equals = function(a, b) {
if(a == b) {
return true
}
if(!a || !b) {
return false
}
return a.top == b.top && a.right == b.right && a.bottom == b.bottom && a.left == b.left
};
goog.math.Box.contains = function(box, other) {
if(!box || !other) {
return false
}
if(other instanceof goog.math.Box) {
return other.left >= box.left && other.right <= box.right && other.top >= box.top && other.bottom <= box.bottom
}
return other.x >= box.left && other.x <= box.right && other.y >= box.top && other.y <= box.bottom
};
goog.math.Box.distance = function(box, coord) {
if(coord.x >= box.left && coord.x <= box.right) {
if(coord.y >= box.top && coord.y <= box.bottom) {
return 0
}
return coord.y < box.top ? box.top - coord.y : coord.y - box.bottom
}
if(coord.y >= box.top && coord.y <= box.bottom) {
return coord.x < box.left ? box.left - coord.x : coord.x - box.right
}
return goog.math.Coordinate.distance(coord, new goog.math.Coordinate(coord.x < box.left ? box.left : box.right, coord.y < box.top ? box.top : box.bottom))
};
goog.math.Box.intersects = function(a, b) {
return a.left <= b.right && b.left <= a.right && a.top <= b.bottom && b.top <= a.bottom
};
goog.math.Box.intersectsWithPadding = function(a, b, padding) {
return a.left <= b.right + padding && b.left <= a.right + padding && a.top <= b.bottom + padding && b.top <= a.bottom + padding
};
goog.provide("goog.math.Rect");
goog.require("goog.math.Box");
goog.require("goog.math.Size");
goog.math.Rect = function(x, y, w, h) {
this.left = x;
this.top = y;
this.width = w;
this.height = h
};
goog.math.Rect.prototype.clone = function() {
return new goog.math.Rect(this.left, this.top, this.width, this.height)
};
goog.math.Rect.prototype.toBox = function() {
var right = this.left + this.width;
var bottom = this.top + this.height;
return new goog.math.Box(this.top, right, bottom, this.left)
};
goog.math.Rect.createFromBox = function(box) {
return new goog.math.Rect(box.left, box.top, box.right - box.left, box.bottom - box.top)
};
if(goog.DEBUG) {
goog.math.Rect.prototype.toString = function() {
return"(" + this.left + ", " + this.top + " - " + this.width + "w x " + this.height + "h)"
}
}
goog.math.Rect.equals = function(a, b) {
if(a == b) {
return true
}
if(!a || !b) {
return false
}
return a.left == b.left && a.width == b.width && a.top == b.top && a.height == b.height
};
goog.math.Rect.prototype.intersection = function(rect) {
var x0 = Math.max(this.left, rect.left);
var x1 = Math.min(this.left + this.width, rect.left + rect.width);
if(x0 <= x1) {
var y0 = Math.max(this.top, rect.top);
var y1 = Math.min(this.top + this.height, rect.top + rect.height);
if(y0 <= y1) {
this.left = x0;
this.top = y0;
this.width = x1 - x0;
this.height = y1 - y0;
return true
}
}
return false
};
goog.math.Rect.intersection = function(a, b) {
var x0 = Math.max(a.left, b.left);
var x1 = Math.min(a.left + a.width, b.left + b.width);
if(x0 <= x1) {
var y0 = Math.max(a.top, b.top);
var y1 = Math.min(a.top + a.height, b.top + b.height);
if(y0 <= y1) {
return new goog.math.Rect(x0, y0, x1 - x0, y1 - y0)
}
}
return null
};
goog.math.Rect.intersects = function(a, b) {
return a.left <= b.left + b.width && b.left <= a.left + a.width && a.top <= b.top + b.height && b.top <= a.top + a.height
};
goog.math.Rect.prototype.intersects = function(rect) {
return goog.math.Rect.intersects(this, rect)
};
goog.math.Rect.difference = function(a, b) {
var intersection = goog.math.Rect.intersection(a, b);
if(!intersection || !intersection.height || !intersection.width) {
return[a.clone()]
}
var result = [];
var top = a.top;
var height = a.height;
var ar = a.left + a.width;
var ab = a.top + a.height;
var br = b.left + b.width;
var bb = b.top + b.height;
if(b.top > a.top) {
result.push(new goog.math.Rect(a.left, a.top, a.width, b.top - a.top));
top = b.top;
height -= b.top - a.top
}
if(bb < ab) {
result.push(new goog.math.Rect(a.left, bb, a.width, ab - bb));
height = bb - top
}
if(b.left > a.left) {
result.push(new goog.math.Rect(a.left, top, b.left - a.left, height))
}
if(br < ar) {
result.push(new goog.math.Rect(br, top, ar - br, height))
}
return result
};
goog.math.Rect.prototype.difference = function(rect) {
return goog.math.Rect.difference(this, rect)
};
goog.math.Rect.prototype.boundingRect = function(rect) {
var right = Math.max(this.left + this.width, rect.left + rect.width);
var bottom = Math.max(this.top + this.height, rect.top + rect.height);
this.left = Math.min(this.left, rect.left);
this.top = Math.min(this.top, rect.top);
this.width = right - this.left;
this.height = bottom - this.top
};
goog.math.Rect.boundingRect = function(a, b) {
if(!a || !b) {
return null
}
var clone = a.clone();
clone.boundingRect(b);
return clone
};
goog.math.Rect.prototype.contains = function(another) {
if(another instanceof goog.math.Rect) {
return this.left <= another.left && this.left + this.width >= another.left + another.width && this.top <= another.top && this.top + this.height >= another.top + another.height
}else {
return another.x >= this.left && another.x <= this.left + this.width && another.y >= this.top && another.y <= this.top + this.height
}
};
goog.math.Rect.prototype.getSize = function() {
return new goog.math.Size(this.width, this.height)
};
goog.provide("goog.style");
goog.require("goog.array");
goog.require("goog.dom");
goog.require("goog.math.Box");
goog.require("goog.math.Coordinate");
goog.require("goog.math.Rect");
goog.require("goog.math.Size");
goog.require("goog.object");
goog.require("goog.string");
goog.require("goog.userAgent");
goog.style.setStyle = function(element, style, opt_value) {
if(goog.isString(style)) {
goog.style.setStyle_(element, opt_value, style)
}else {
goog.object.forEach(style, goog.partial(goog.style.setStyle_, element))
}
};
goog.style.setStyle_ = function(element, value, style) {
element.style[goog.string.toCamelCase(style)] = value
};
goog.style.getStyle = function(element, property) {
return element.style[goog.string.toCamelCase(property)] || ""
};
goog.style.getComputedStyle = function(element, property) {
var doc = goog.dom.getOwnerDocument(element);
if(doc.defaultView && doc.defaultView.getComputedStyle) {
var styles = doc.defaultView.getComputedStyle(element, null);
if(styles) {
return styles[property] || styles.getPropertyValue(property)
}
}
return""
};
goog.style.getCascadedStyle = function(element, style) {
return element.currentStyle ? element.currentStyle[style] : null
};
goog.style.getStyle_ = function(element, style) {
return goog.style.getComputedStyle(element, style) || goog.style.getCascadedStyle(element, style) || element.style[style]
};
goog.style.getComputedPosition = function(element) {
return goog.style.getStyle_(element, "position")
};
goog.style.getBackgroundColor = function(element) {
return goog.style.getStyle_(element, "backgroundColor")
};
goog.style.getComputedOverflowX = function(element) {
return goog.style.getStyle_(element, "overflowX")
};
goog.style.getComputedOverflowY = function(element) {
return goog.style.getStyle_(element, "overflowY")
};
goog.style.getComputedZIndex = function(element) {
return goog.style.getStyle_(element, "zIndex")
};
goog.style.getComputedTextAlign = function(element) {
return goog.style.getStyle_(element, "textAlign")
};
goog.style.getComputedCursor = function(element) {
return goog.style.getStyle_(element, "cursor")
};
goog.style.setPosition = function(el, arg1, opt_arg2) {
var x, y;
var buggyGeckoSubPixelPos = goog.userAgent.GECKO && (goog.userAgent.MAC || goog.userAgent.X11) && goog.userAgent.isVersion("1.9");
if(arg1 instanceof goog.math.Coordinate) {
x = arg1.x;
y = arg1.y
}else {
x = arg1;
y = opt_arg2
}
el.style.left = goog.style.getPixelStyleValue_(x, buggyGeckoSubPixelPos);
el.style.top = goog.style.getPixelStyleValue_(y, buggyGeckoSubPixelPos)
};
goog.style.getPosition = function(element) {
return new goog.math.Coordinate(element.offsetLeft, element.offsetTop)
};
goog.style.getClientViewportElement = function(opt_node) {
var doc;
if(opt_node) {
if(opt_node.nodeType == goog.dom.NodeType.DOCUMENT) {
doc = opt_node
}else {
doc = goog.dom.getOwnerDocument(opt_node)
}
}else {
doc = goog.dom.getDocument()
}
if(goog.userAgent.IE && !goog.userAgent.isVersion(9) && !goog.dom.getDomHelper(doc).isCss1CompatMode()) {
return doc.body
}
return doc.documentElement
};
goog.style.getBoundingClientRect_ = function(el) {
var rect = el.getBoundingClientRect();
if(goog.userAgent.IE) {
var doc = el.ownerDocument;
rect.left -= doc.documentElement.clientLeft + doc.body.clientLeft;
rect.top -= doc.documentElement.clientTop + doc.body.clientTop
}
return rect
};
goog.style.getOffsetParent = function(element) {
if(goog.userAgent.IE) {
return element.offsetParent
}
var doc = goog.dom.getOwnerDocument(element);
var positionStyle = goog.style.getStyle_(element, "position");
var skipStatic = positionStyle == "fixed" || positionStyle == "absolute";
for(var parent = element.parentNode;parent && parent != doc;parent = parent.parentNode) {
positionStyle = goog.style.getStyle_(parent, "position");
skipStatic = skipStatic && positionStyle == "static" && parent != doc.documentElement && parent != doc.body;
if(!skipStatic && (parent.scrollWidth > parent.clientWidth || parent.scrollHeight > parent.clientHeight || positionStyle == "fixed" || positionStyle == "absolute")) {
return parent
}
}
return null
};
goog.style.getVisibleRectForElement = function(element) {
var visibleRect = new goog.math.Box(0, Infinity, Infinity, 0);
var dom = goog.dom.getDomHelper(element);
var body = dom.getDocument().body;
var scrollEl = dom.getDocumentScrollElement();
var inContainer;
for(var el = element;el = goog.style.getOffsetParent(el);) {
if((!goog.userAgent.IE || el.clientWidth != 0) && (!goog.userAgent.WEBKIT || el.clientHeight != 0 || el != body) && (el.scrollWidth != el.clientWidth || el.scrollHeight != el.clientHeight) && goog.style.getStyle_(el, "overflow") != "visible") {
var pos = goog.style.getPageOffset(el);
var client = goog.style.getClientLeftTop(el);
pos.x += client.x;
pos.y += client.y;
visibleRect.top = Math.max(visibleRect.top, pos.y);
visibleRect.right = Math.min(visibleRect.right, pos.x + el.clientWidth);
visibleRect.bottom = Math.min(visibleRect.bottom, pos.y + el.clientHeight);
visibleRect.left = Math.max(visibleRect.left, pos.x);
inContainer = inContainer || el != scrollEl
}
}
var scrollX = scrollEl.scrollLeft, scrollY = scrollEl.scrollTop;
if(goog.userAgent.WEBKIT) {
visibleRect.left += scrollX;
visibleRect.top += scrollY
}else {
visibleRect.left = Math.max(visibleRect.left, scrollX);
visibleRect.top = Math.max(visibleRect.top, scrollY)
}
if(!inContainer || goog.userAgent.WEBKIT) {
visibleRect.right += scrollX;
visibleRect.bottom += scrollY
}
var winSize = dom.getViewportSize();
visibleRect.right = Math.min(visibleRect.right, scrollX + winSize.width);
visibleRect.bottom = Math.min(visibleRect.bottom, scrollY + winSize.height);
return visibleRect.top >= 0 && visibleRect.left >= 0 && visibleRect.bottom > visibleRect.top && visibleRect.right > visibleRect.left ? visibleRect : null
};
goog.style.scrollIntoContainerView = function(element, container, opt_center) {
var elementPos = goog.style.getPageOffset(element);
var containerPos = goog.style.getPageOffset(container);
var containerBorder = goog.style.getBorderBox(container);
var relX = elementPos.x - containerPos.x - containerBorder.left;
var relY = elementPos.y - containerPos.y - containerBorder.top;
var spaceX = container.clientWidth - element.offsetWidth;
var spaceY = container.clientHeight - element.offsetHeight;
if(opt_center) {
container.scrollLeft += relX - spaceX / 2;
container.scrollTop += relY - spaceY / 2
}else {
container.scrollLeft += Math.min(relX, Math.max(relX - spaceX, 0));
container.scrollTop += Math.min(relY, Math.max(relY - spaceY, 0))
}
};
goog.style.getClientLeftTop = function(el) {
if(goog.userAgent.GECKO && !goog.userAgent.isVersion("1.9")) {
var left = parseFloat(goog.style.getComputedStyle(el, "borderLeftWidth"));
if(goog.style.isRightToLeft(el)) {
var scrollbarWidth = el.offsetWidth - el.clientWidth - left - parseFloat(goog.style.getComputedStyle(el, "borderRightWidth"));
left += scrollbarWidth
}
return new goog.math.Coordinate(left, parseFloat(goog.style.getComputedStyle(el, "borderTopWidth")))
}
return new goog.math.Coordinate(el.clientLeft, el.clientTop)
};
goog.style.getPageOffset = function(el) {
var box, doc = goog.dom.getOwnerDocument(el);
var positionStyle = goog.style.getStyle_(el, "position");
var BUGGY_GECKO_BOX_OBJECT = goog.userAgent.GECKO && doc.getBoxObjectFor && !el.getBoundingClientRect && positionStyle == "absolute" && (box = doc.getBoxObjectFor(el)) && (box.screenX < 0 || box.screenY < 0);
var pos = new goog.math.Coordinate(0, 0);
var viewportElement = goog.style.getClientViewportElement(doc);
if(el == viewportElement) {
return pos
}
if(el.getBoundingClientRect) {
box = goog.style.getBoundingClientRect_(el);
var scrollCoord = goog.dom.getDomHelper(doc).getDocumentScroll();
pos.x = box.left + scrollCoord.x;
pos.y = box.top + scrollCoord.y
}else {
if(doc.getBoxObjectFor && !BUGGY_GECKO_BOX_OBJECT) {
box = doc.getBoxObjectFor(el);
var vpBox = doc.getBoxObjectFor(viewportElement);
pos.x = box.screenX - vpBox.screenX;
pos.y = box.screenY - vpBox.screenY
}else {
var parent = el;
do {
pos.x += parent.offsetLeft;
pos.y += parent.offsetTop;
if(parent != el) {
pos.x += parent.clientLeft || 0;
pos.y += parent.clientTop || 0
}
if(goog.userAgent.WEBKIT && goog.style.getComputedPosition(parent) == "fixed") {
pos.x += doc.body.scrollLeft;
pos.y += doc.body.scrollTop;
break
}
parent = parent.offsetParent
}while(parent && parent != el);
if(goog.userAgent.OPERA || goog.userAgent.WEBKIT && positionStyle == "absolute") {
pos.y -= doc.body.offsetTop
}
for(parent = el;(parent = goog.style.getOffsetParent(parent)) && parent != doc.body && parent != viewportElement;) {
pos.x -= parent.scrollLeft;
if(!goog.userAgent.OPERA || parent.tagName != "TR") {
pos.y -= parent.scrollTop
}
}
}
}
return pos
};
goog.style.getPageOffsetLeft = function(el) {
return goog.style.getPageOffset(el).x
};
goog.style.getPageOffsetTop = function(el) {
return goog.style.getPageOffset(el).y
};
goog.style.getFramedPageOffset = function(el, relativeWin) {
var position = new goog.math.Coordinate(0, 0);
var currentWin = goog.dom.getWindow(goog.dom.getOwnerDocument(el));
var currentEl = el;
do {
var offset = currentWin == relativeWin ? goog.style.getPageOffset(currentEl) : goog.style.getClientPosition(currentEl);
position.x += offset.x;
position.y += offset.y
}while(currentWin && currentWin != relativeWin && (currentEl = currentWin.frameElement) && (currentWin = currentWin.parent));
return position
};
goog.style.translateRectForAnotherFrame = function(rect, origBase, newBase) {
if(origBase.getDocument() != newBase.getDocument()) {
var body = origBase.getDocument().body;
var pos = goog.style.getFramedPageOffset(body, newBase.getWindow());
pos = goog.math.Coordinate.difference(pos, goog.style.getPageOffset(body));
if(goog.userAgent.IE && !origBase.isCss1CompatMode()) {
pos = goog.math.Coordinate.difference(pos, origBase.getDocumentScroll())
}
rect.left += pos.x;
rect.top += pos.y
}
};
goog.style.getRelativePosition = function(a, b) {
var ap = goog.style.getClientPosition(a);
var bp = goog.style.getClientPosition(b);
return new goog.math.Coordinate(ap.x - bp.x, ap.y - bp.y)
};
goog.style.getClientPosition = function(el) {
var pos = new goog.math.Coordinate;
if(el.nodeType == goog.dom.NodeType.ELEMENT) {
if(el.getBoundingClientRect) {
var box = goog.style.getBoundingClientRect_(el);
pos.x = box.left;
pos.y = box.top
}else {
var scrollCoord = goog.dom.getDomHelper(el).getDocumentScroll();
var pageCoord = goog.style.getPageOffset(el);
pos.x = pageCoord.x - scrollCoord.x;
pos.y = pageCoord.y - scrollCoord.y
}
}else {
var isAbstractedEvent = goog.isFunction(el.getBrowserEvent);
var targetEvent = el;
if(el.targetTouches) {
targetEvent = el.targetTouches[0]
}else {
if(isAbstractedEvent && el.getBrowserEvent().targetTouches) {
targetEvent = el.getBrowserEvent().targetTouches[0]
}
}
pos.x = targetEvent.clientX;
pos.y = targetEvent.clientY
}
return pos
};
goog.style.setPageOffset = function(el, x, opt_y) {
var cur = goog.style.getPageOffset(el);
if(x instanceof goog.math.Coordinate) {
opt_y = x.y;
x = x.x
}
var dx = x - cur.x;
var dy = opt_y - cur.y;
goog.style.setPosition(el, el.offsetLeft + dx, el.offsetTop + dy)
};
goog.style.setSize = function(element, w, opt_h) {
var h;
if(w instanceof goog.math.Size) {
h = w.height;
w = w.width
}else {
if(opt_h == undefined) {
throw Error("missing height argument");
}
h = opt_h
}
goog.style.setWidth(element, w);
goog.style.setHeight(element, h)
};
goog.style.getPixelStyleValue_ = function(value, round) {
if(typeof value == "number") {
value = (round ? Math.round(value) : value) + "px"
}
return value
};
goog.style.setHeight = function(element, height) {
element.style.height = goog.style.getPixelStyleValue_(height, true)
};
goog.style.setWidth = function(element, width) {
element.style.width = goog.style.getPixelStyleValue_(width, true)
};
goog.style.getSize = function(element) {
if(goog.style.getStyle_(element, "display") != "none") {
return new goog.math.Size(element.offsetWidth, element.offsetHeight)
}
var style = element.style;
var originalDisplay = style.display;
var originalVisibility = style.visibility;
var originalPosition = style.position;
style.visibility = "hidden";
style.position = "absolute";
style.display = "inline";
var originalWidth = element.offsetWidth;
var originalHeight = element.offsetHeight;
style.display = originalDisplay;
style.position = originalPosition;
style.visibility = originalVisibility;
return new goog.math.Size(originalWidth, originalHeight)
};
goog.style.getBounds = function(element) {
var o = goog.style.getPageOffset(element);
var s = goog.style.getSize(element);
return new goog.math.Rect(o.x, o.y, s.width, s.height)
};
goog.style.toCamelCase = function(selector) {
return goog.string.toCamelCase(String(selector))
};
goog.style.toSelectorCase = function(selector) {
return goog.string.toSelectorCase(selector)
};
goog.style.getOpacity = function(el) {
var style = el.style;
var result = "";
if("opacity" in style) {
result = style.opacity
}else {
if("MozOpacity" in style) {
result = style.MozOpacity
}else {
if("filter" in style) {
var match = style.filter.match(/alpha\(opacity=([\d.]+)\)/);
if(match) {
result = String(match[1] / 100)
}
}
}
}
return result == "" ? result : Number(result)
};
goog.style.setOpacity = function(el, alpha) {
var style = el.style;
if("opacity" in style) {
style.opacity = alpha
}else {
if("MozOpacity" in style) {
style.MozOpacity = alpha
}else {
if("filter" in style) {
if(alpha === "") {
style.filter = ""
}else {
style.filter = "alpha(opacity=" + alpha * 100 + ")"
}
}
}
}
};
goog.style.setTransparentBackgroundImage = function(el, src) {
var style = el.style;
if(goog.userAgent.IE && !goog.userAgent.isVersion("8")) {
style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(" + 'src="' + src + '", sizingMethod="crop")'
}else {
style.backgroundImage = "url(" + src + ")";
style.backgroundPosition = "top left";
style.backgroundRepeat = "no-repeat"
}
};
goog.style.clearTransparentBackgroundImage = function(el) {
var style = el.style;
if("filter" in style) {
style.filter = ""
}else {
style.backgroundImage = "none"
}
};
goog.style.showElement = function(el, display) {
el.style.display = display ? "" : "none"
};
goog.style.isElementShown = function(el) {
return el.style.display != "none"
};
goog.style.installStyles = function(stylesString, opt_node) {
var dh = goog.dom.getDomHelper(opt_node);
var styleSheet = null;
if(goog.userAgent.IE) {
styleSheet = dh.getDocument().createStyleSheet();
goog.style.setStyles(styleSheet, stylesString)
}else {
var head = dh.getElementsByTagNameAndClass("head")[0];
if(!head) {
var body = dh.getElementsByTagNameAndClass("body")[0];
head = dh.createDom("head");
body.parentNode.insertBefore(head, body)
}
styleSheet = dh.createDom("style");
goog.style.setStyles(styleSheet, stylesString);
dh.appendChild(head, styleSheet)
}
return styleSheet
};
goog.style.uninstallStyles = function(styleSheet) {
var node = styleSheet.ownerNode || styleSheet.owningElement || styleSheet;
goog.dom.removeNode(node)
};
goog.style.setStyles = function(element, stylesString) {
if(goog.userAgent.IE) {
element.cssText = stylesString
}else {
var propToSet = goog.userAgent.WEBKIT ? "innerText" : "innerHTML";
element[propToSet] = stylesString
}
};
goog.style.setPreWrap = function(el) {
var style = el.style;
if(goog.userAgent.IE && !goog.userAgent.isVersion("8")) {
style.whiteSpace = "pre";
style.wordWrap = "break-word"
}else {
if(goog.userAgent.GECKO) {
style.whiteSpace = "-moz-pre-wrap"
}else {
style.whiteSpace = "pre-wrap"
}
}
};
goog.style.setInlineBlock = function(el) {
var style = el.style;
style.position = "relative";
if(goog.userAgent.IE && !goog.userAgent.isVersion("8")) {
style.zoom = "1";
style.display = "inline"
}else {
if(goog.userAgent.GECKO) {
style.display = goog.userAgent.isVersion("1.9a") ? "inline-block" : "-moz-inline-box"
}else {
style.display = "inline-block"
}
}
};
goog.style.isRightToLeft = function(el) {
return"rtl" == goog.style.getStyle_(el, "direction")
};
goog.style.unselectableStyle_ = goog.userAgent.GECKO ? "MozUserSelect" : goog.userAgent.WEBKIT ? "WebkitUserSelect" : null;
goog.style.isUnselectable = function(el) {
if(goog.style.unselectableStyle_) {
return el.style[goog.style.unselectableStyle_].toLowerCase() == "none"
}else {
if(goog.userAgent.IE || goog.userAgent.OPERA) {
return el.getAttribute("unselectable") == "on"
}
}
return false
};
goog.style.setUnselectable = function(el, unselectable, opt_noRecurse) {
var descendants = !opt_noRecurse ? el.getElementsByTagName("*") : null;
var name = goog.style.unselectableStyle_;
if(name) {
var value = unselectable ? "none" : "";
el.style[name] = value;
if(descendants) {
for(var i = 0, descendant;descendant = descendants[i];i++) {
descendant.style[name] = value
}
}
}else {
if(goog.userAgent.IE || goog.userAgent.OPERA) {
var value = unselectable ? "on" : "";
el.setAttribute("unselectable", value);
if(descendants) {
for(var i = 0, descendant;descendant = descendants[i];i++) {
descendant.setAttribute("unselectable", value)
}
}
}
}
};
goog.style.getBorderBoxSize = function(element) {
return new goog.math.Size(element.offsetWidth, element.offsetHeight)
};
goog.style.setBorderBoxSize = function(element, size) {
var doc = goog.dom.getOwnerDocument(element);
var isCss1CompatMode = goog.dom.getDomHelper(doc).isCss1CompatMode();
if(goog.userAgent.IE && (!isCss1CompatMode || !goog.userAgent.isVersion("8"))) {
var style = element.style;
if(isCss1CompatMode) {
var paddingBox = goog.style.getPaddingBox(element);
var borderBox = goog.style.getBorderBox(element);
style.pixelWidth = size.width - borderBox.left - paddingBox.left - paddingBox.right - borderBox.right;
style.pixelHeight = size.height - borderBox.top - paddingBox.top - paddingBox.bottom - borderBox.bottom
}else {
style.pixelWidth = size.width;
style.pixelHeight = size.height
}
}else {
goog.style.setBoxSizingSize_(element, size, "border-box")
}
};
goog.style.getContentBoxSize = function(element) {
var doc = goog.dom.getOwnerDocument(element);
var ieCurrentStyle = goog.userAgent.IE && element.currentStyle;
if(ieCurrentStyle && goog.dom.getDomHelper(doc).isCss1CompatMode() && ieCurrentStyle.width != "auto" && ieCurrentStyle.height != "auto" && !ieCurrentStyle.boxSizing) {
var width = goog.style.getIePixelValue_(element, ieCurrentStyle.width, "width", "pixelWidth");
var height = goog.style.getIePixelValue_(element, ieCurrentStyle.height, "height", "pixelHeight");
return new goog.math.Size(width, height)
}else {
var borderBoxSize = goog.style.getBorderBoxSize(element);
var paddingBox = goog.style.getPaddingBox(element);
var borderBox = goog.style.getBorderBox(element);
return new goog.math.Size(borderBoxSize.width - borderBox.left - paddingBox.left - paddingBox.right - borderBox.right, borderBoxSize.height - borderBox.top - paddingBox.top - paddingBox.bottom - borderBox.bottom)
}
};
goog.style.setContentBoxSize = function(element, size) {
var doc = goog.dom.getOwnerDocument(element);
var isCss1CompatMode = goog.dom.getDomHelper(doc).isCss1CompatMode();
if(goog.userAgent.IE && (!isCss1CompatMode || !goog.userAgent.isVersion("8"))) {
var style = element.style;
if(isCss1CompatMode) {
style.pixelWidth = size.width;
style.pixelHeight = size.height
}else {
var paddingBox = goog.style.getPaddingBox(element);
var borderBox = goog.style.getBorderBox(element);
style.pixelWidth = size.width + borderBox.left + paddingBox.left + paddingBox.right + borderBox.right;
style.pixelHeight = size.height + borderBox.top + paddingBox.top + paddingBox.bottom + borderBox.bottom
}
}else {
goog.style.setBoxSizingSize_(element, size, "content-box")
}
};
goog.style.setBoxSizingSize_ = function(element, size, boxSizing) {
var style = element.style;
if(goog.userAgent.GECKO) {
style.MozBoxSizing = boxSizing
}else {
if(goog.userAgent.WEBKIT) {
style.WebkitBoxSizing = boxSizing
}else {
style.boxSizing = boxSizing
}
}
style.width = size.width + "px";
style.height = size.height + "px"
};
goog.style.getIePixelValue_ = function(element, value, name, pixelName) {
if(/^\d+px?$/.test(value)) {
return parseInt(value, 10)
}else {
var oldStyleValue = element.style[name];
var oldRuntimeValue = element.runtimeStyle[name];
element.runtimeStyle[name] = element.currentStyle[name];
element.style[name] = value;
var pixelValue = element.style[pixelName];
element.style[name] = oldStyleValue;
element.runtimeStyle[name] = oldRuntimeValue;
return pixelValue
}
};
goog.style.getIePixelDistance_ = function(element, propName) {
return goog.style.getIePixelValue_(element, goog.style.getCascadedStyle(element, propName), "left", "pixelLeft")
};
goog.style.getBox_ = function(element, stylePrefix) {
if(goog.userAgent.IE) {
var left = goog.style.getIePixelDistance_(element, stylePrefix + "Left");
var right = goog.style.getIePixelDistance_(element, stylePrefix + "Right");
var top = goog.style.getIePixelDistance_(element, stylePrefix + "Top");
var bottom = goog.style.getIePixelDistance_(element, stylePrefix + "Bottom");
return new goog.math.Box(top, right, bottom, left)
}else {
var left = goog.style.getComputedStyle(element, stylePrefix + "Left");
var right = goog.style.getComputedStyle(element, stylePrefix + "Right");
var top = goog.style.getComputedStyle(element, stylePrefix + "Top");
var bottom = goog.style.getComputedStyle(element, stylePrefix + "Bottom");
return new goog.math.Box(parseFloat(top), parseFloat(right), parseFloat(bottom), parseFloat(left))
}
};
goog.style.getPaddingBox = function(element) {
return goog.style.getBox_(element, "padding")
};
goog.style.getMarginBox = function(element) {
return goog.style.getBox_(element, "margin")
};
goog.style.ieBorderWidthKeywords_ = {"thin":2, "medium":4, "thick":6};
goog.style.getIePixelBorder_ = function(element, prop) {
if(goog.style.getCascadedStyle(element, prop + "Style") == "none") {
return 0
}
var width = goog.style.getCascadedStyle(element, prop + "Width");
if(width in goog.style.ieBorderWidthKeywords_) {
return goog.style.ieBorderWidthKeywords_[width]
}
return goog.style.getIePixelValue_(element, width, "left", "pixelLeft")
};
goog.style.getBorderBox = function(element) {
if(goog.userAgent.IE) {
var left = goog.style.getIePixelBorder_(element, "borderLeft");
var right = goog.style.getIePixelBorder_(element, "borderRight");
var top = goog.style.getIePixelBorder_(element, "borderTop");
var bottom = goog.style.getIePixelBorder_(element, "borderBottom");
return new goog.math.Box(top, right, bottom, left)
}else {
var left = goog.style.getComputedStyle(element, "borderLeftWidth");
var right = goog.style.getComputedStyle(element, "borderRightWidth");
var top = goog.style.getComputedStyle(element, "borderTopWidth");
var bottom = goog.style.getComputedStyle(element, "borderBottomWidth");
return new goog.math.Box(parseFloat(top), parseFloat(right), parseFloat(bottom), parseFloat(left))
}
};
goog.style.getFontFamily = function(el) {
var doc = goog.dom.getOwnerDocument(el);
var font = "";
if(doc.body.createTextRange) {
var range = doc.body.createTextRange();
range.moveToElementText(el);
try {
font = range.queryCommandValue("FontName")
}catch(e) {
font = ""
}
}
if(!font) {
font = goog.style.getStyle_(el, "fontFamily")
}
var fontsArray = font.split(",");
if(fontsArray.length > 1) {
font = fontsArray[0]
}
return goog.string.stripQuotes(font, "\"'")
};
goog.style.lengthUnitRegex_ = /[^\d]+$/;
goog.style.getLengthUnits = function(value) {
var units = value.match(goog.style.lengthUnitRegex_);
return units && units[0] || null
};
goog.style.ABSOLUTE_CSS_LENGTH_UNITS_ = {"cm":1, "in":1, "mm":1, "pc":1, "pt":1};
goog.style.CONVERTIBLE_RELATIVE_CSS_UNITS_ = {"em":1, "ex":1};
goog.style.getFontSize = function(el) {
var fontSize = goog.style.getStyle_(el, "fontSize");
var sizeUnits = goog.style.getLengthUnits(fontSize);
if(fontSize && "px" == sizeUnits) {
return parseInt(fontSize, 10)
}
if(goog.userAgent.IE) {
if(sizeUnits in goog.style.ABSOLUTE_CSS_LENGTH_UNITS_) {
return goog.style.getIePixelValue_(el, fontSize, "left", "pixelLeft")
}else {
if(el.parentNode && el.parentNode.nodeType == goog.dom.NodeType.ELEMENT && sizeUnits in goog.style.CONVERTIBLE_RELATIVE_CSS_UNITS_) {
var parentElement = el.parentNode;
var parentSize = goog.style.getStyle_(parentElement, "fontSize");
return goog.style.getIePixelValue_(parentElement, fontSize == parentSize ? "1em" : fontSize, "left", "pixelLeft")
}
}
}
var sizeElement = goog.dom.createDom("span", {"style":"visibility:hidden;position:absolute;" + "line-height:0;padding:0;margin:0;border:0;height:1em;"});
goog.dom.appendChild(el, sizeElement);
fontSize = sizeElement.offsetHeight;
goog.dom.removeNode(sizeElement);
return fontSize
};
goog.style.parseStyleAttribute = function(value) {
var result = {};
goog.array.forEach(value.split(/\s*;\s*/), function(pair) {
var keyValue = pair.split(/\s*:\s*/);
if(keyValue.length == 2) {
result[goog.string.toCamelCase(keyValue[0].toLowerCase())] = keyValue[1]
}
});
return result
};
goog.style.toStyleAttribute = function(obj) {
var buffer = [];
goog.object.forEach(obj, function(value, key) {
buffer.push(goog.string.toSelectorCase(key), ":", value, ";")
});
return buffer.join("")
};
goog.style.setFloat = function(el, value) {
el.style[goog.userAgent.IE ? "styleFloat" : "cssFloat"] = value
};
goog.style.getFloat = function(el) {
return el.style[goog.userAgent.IE ? "styleFloat" : "cssFloat"] || ""
};
goog.style.getScrollbarWidth = function() {
var mockElement = goog.dom.createElement("div");
mockElement.style.cssText = "visibility:hidden;overflow:scroll;" + "position:absolute;top:0;width:100px;height:100px";
goog.dom.appendChild(goog.dom.getDocument().body, mockElement);
var width = mockElement.offsetWidth - mockElement.clientWidth;
goog.dom.removeNode(mockElement);
return width
};
goog.provide("goog.fx.dom");
goog.provide("goog.fx.dom.BgColorTransform");
goog.provide("goog.fx.dom.ColorTransform");
goog.provide("goog.fx.dom.Fade");
goog.provide("goog.fx.dom.FadeIn");
goog.provide("goog.fx.dom.FadeInAndShow");
goog.provide("goog.fx.dom.FadeOut");
goog.provide("goog.fx.dom.FadeOutAndHide");
goog.provide("goog.fx.dom.PredefinedEffect");
goog.provide("goog.fx.dom.Resize");
goog.provide("goog.fx.dom.ResizeHeight");
goog.provide("goog.fx.dom.ResizeWidth");
goog.provide("goog.fx.dom.Scroll");
goog.provide("goog.fx.dom.Slide");
goog.provide("goog.fx.dom.SlideFrom");
goog.provide("goog.fx.dom.Swipe");
goog.require("goog.color");
goog.require("goog.events");
goog.require("goog.fx.Animation");
goog.require("goog.fx.Animation.EventType");
goog.require("goog.style");
goog.fx.dom.PredefinedEffect = function(element, start, end, time, opt_acc) {
goog.fx.Animation.call(this, start, end, time, opt_acc);
this.element = element
};
goog.inherits(goog.fx.dom.PredefinedEffect, goog.fx.Animation);
goog.fx.dom.PredefinedEffect.prototype.updateStyle = goog.nullFunction;
goog.fx.dom.PredefinedEffect.prototype.onAnimate = function() {
this.updateStyle();
goog.fx.dom.PredefinedEffect.superClass_.onAnimate.call(this)
};
goog.fx.dom.PredefinedEffect.prototype.onEnd = function() {
this.updateStyle();
goog.fx.dom.PredefinedEffect.superClass_.onEnd.call(this)
};
goog.fx.dom.PredefinedEffect.prototype.onBegin = function() {
this.updateStyle();
goog.fx.dom.PredefinedEffect.superClass_.onBegin.call(this)
};
goog.fx.dom.Slide = function(element, start, end, time, opt_acc) {
if(start.length != 2 || end.length != 2) {
throw Error("Start and end points must be 2D");
}
goog.fx.dom.PredefinedEffect.apply(this, arguments)
};
goog.inherits(goog.fx.dom.Slide, goog.fx.dom.PredefinedEffect);
goog.fx.dom.Slide.prototype.updateStyle = function() {
this.element.style.left = Math.round(this.coords[0]) + "px";
this.element.style.top = Math.round(this.coords[1]) + "px"
};
goog.fx.dom.SlideFrom = function(element, end, time, opt_acc) {
var start = [element.offsetLeft, element.offsetTop];
goog.fx.dom.Slide.call(this, element, start, end, time, opt_acc)
};
goog.inherits(goog.fx.dom.SlideFrom, goog.fx.dom.Slide);
goog.fx.dom.SlideFrom.prototype.onBegin = function() {
this.startPoint = [this.element.offsetLeft, this.element.offsetTop];
goog.fx.dom.SlideFrom.superClass_.onBegin.call(this)
};
goog.fx.dom.Swipe = function(element, start, end, time, opt_acc) {
if(start.length != 2 || end.length != 2) {
throw Error("Start and end points must be 2D");
}
goog.fx.dom.PredefinedEffect.apply(this, arguments);
this.maxWidth_ = Math.max(this.endPoint[0], this.startPoint[0]);
this.maxHeight_ = Math.max(this.endPoint[1], this.startPoint[1])
};
goog.inherits(goog.fx.dom.Swipe, goog.fx.dom.PredefinedEffect);
goog.fx.dom.Swipe.prototype.updateStyle = function() {
var x = this.coords[0];
var y = this.coords[1];
this.clip_(Math.round(x), Math.round(y), this.maxWidth_, this.maxHeight_);
this.element.style.width = Math.round(x) + "px";
this.element.style.marginLeft = Math.round(x) - this.maxWidth_ + "px";
this.element.style.marginTop = Math.round(y) - this.maxHeight_ + "px"
};
goog.fx.dom.Swipe.prototype.clip_ = function(x, y, w, h) {
this.element.style.clip = "rect(" + (h - y) + "px " + w + "px " + h + "px " + (w - x) + "px)"
};
goog.fx.dom.Scroll = function(element, start, end, time, opt_acc) {
if(start.length != 2 || end.length != 2) {
throw Error("Start and end points must be 2D");
}
goog.fx.dom.PredefinedEffect.apply(this, arguments)
};
goog.inherits(goog.fx.dom.Scroll, goog.fx.dom.PredefinedEffect);
goog.fx.dom.Scroll.prototype.updateStyle = function() {
this.element.scrollLeft = Math.round(this.coords[0]);
this.element.scrollTop = Math.round(this.coords[1])
};
goog.fx.dom.Resize = function(element, start, end, time, opt_acc) {
if(start.length != 2 || end.length != 2) {
throw Error("Start and end points must be 2D");
}
goog.fx.dom.PredefinedEffect.apply(this, arguments)
};
goog.inherits(goog.fx.dom.Resize, goog.fx.dom.PredefinedEffect);
goog.fx.dom.Resize.prototype.updateStyle = function() {
this.element.style.width = Math.round(this.coords[0]) + "px";
this.element.style.height = Math.round(this.coords[1]) + "px"
};
goog.fx.dom.ResizeWidth = function(element, start, end, time, opt_acc) {
goog.fx.dom.PredefinedEffect.call(this, element, [start], [end], time, opt_acc)
};
goog.inherits(goog.fx.dom.ResizeWidth, goog.fx.dom.PredefinedEffect);
goog.fx.dom.ResizeWidth.prototype.updateStyle = function() {
this.element.style.width = Math.round(this.coords[0]) + "px"
};
goog.fx.dom.ResizeHeight = function(element, start, end, time, opt_acc) {
goog.fx.dom.PredefinedEffect.call(this, element, [start], [end], time, opt_acc)
};
goog.inherits(goog.fx.dom.ResizeHeight, goog.fx.dom.PredefinedEffect);
goog.fx.dom.ResizeHeight.prototype.updateStyle = function() {
this.element.style.height = Math.round(this.coords[0]) + "px"
};
goog.fx.dom.Fade = function(element, start, end, time, opt_acc) {
if(goog.isNumber(start)) {
start = [start]
}
if(goog.isNumber(end)) {
end = [end]
}
goog.fx.dom.PredefinedEffect.call(this, element, start, end, time, opt_acc);
if(start.length != 1 || end.length != 1) {
throw Error("Start and end points must be 1D");
}
};
goog.inherits(goog.fx.dom.Fade, goog.fx.dom.PredefinedEffect);
goog.fx.dom.Fade.prototype.updateStyle = function() {
goog.style.setOpacity(this.element, this.coords[0])
};
goog.fx.dom.Fade.prototype.show = function() {
this.element.style.display = ""
};
goog.fx.dom.Fade.prototype.hide = function() {
this.element.style.display = "none"
};
goog.fx.dom.FadeOut = function(element, time, opt_acc) {
goog.fx.dom.Fade.call(this, element, 1, 0, time, opt_acc)
};
goog.inherits(goog.fx.dom.FadeOut, goog.fx.dom.Fade);
goog.fx.dom.FadeIn = function(element, time, opt_acc) {
goog.fx.dom.Fade.call(this, element, 0, 1, time, opt_acc)
};
goog.inherits(goog.fx.dom.FadeIn, goog.fx.dom.Fade);
goog.fx.dom.FadeOutAndHide = function(element, time, opt_acc) {
goog.fx.dom.Fade.call(this, element, 1, 0, time, opt_acc)
};
goog.inherits(goog.fx.dom.FadeOutAndHide, goog.fx.dom.Fade);
goog.fx.dom.FadeOutAndHide.prototype.onBegin = function() {
this.show();
goog.fx.dom.FadeOutAndHide.superClass_.onBegin.call(this)
};
goog.fx.dom.FadeOutAndHide.prototype.onEnd = function() {
this.hide();
goog.fx.dom.FadeOutAndHide.superClass_.onEnd.call(this)
};
goog.fx.dom.FadeInAndShow = function(element, time, opt_acc) {
goog.fx.dom.Fade.call(this, element, 0, 1, time, opt_acc)
};
goog.inherits(goog.fx.dom.FadeInAndShow, goog.fx.dom.Fade);
goog.fx.dom.FadeInAndShow.prototype.onBegin = function() {
this.show();
goog.fx.dom.FadeInAndShow.superClass_.onBegin.call(this)
};
goog.fx.dom.BgColorTransform = function(element, start, end, time, opt_acc) {
if(start.length != 3 || end.length != 3) {
throw Error("Start and end points must be 3D");
}
goog.fx.dom.PredefinedEffect.apply(this, arguments)
};
goog.inherits(goog.fx.dom.BgColorTransform, goog.fx.dom.PredefinedEffect);
goog.fx.dom.BgColorTransform.prototype.setColor = function() {
var coordsAsInts = [];
for(var i = 0;i < this.coords.length;i++) {
coordsAsInts[i] = Math.round(this.coords[i])
}
var color = "rgb(" + coordsAsInts.join(",") + ")";
this.element.style.backgroundColor = color
};
goog.fx.dom.BgColorTransform.prototype.updateStyle = function() {
this.setColor()
};
goog.fx.dom.bgColorFadeIn = function(element, start, time, opt_eventHandler) {
var initialBgColor = element.style.backgroundColor || "";
var computedBgColor = goog.style.getBackgroundColor(element);
var end;
if(computedBgColor != "transparent" && computedBgColor != "rgba(0, 0, 0, 0)") {
end = goog.color.hexToRgb(goog.color.parse(computedBgColor).hex)
}else {
end = [255, 255, 255]
}
var anim = new goog.fx.dom.BgColorTransform(element, start, end, time);
function setBgColor() {
element.style.backgroundColor = initialBgColor
}
if(opt_eventHandler) {
opt_eventHandler.listen(anim, goog.fx.Animation.EventType.END, setBgColor)
}else {
goog.events.listen(anim, goog.fx.Animation.EventType.END, setBgColor)
}
anim.play()
};
goog.fx.dom.ColorTransform = function(element, start, end, time, opt_acc) {
if(start.length != 3 || end.length != 3) {
throw Error("Start and end points must be 3D");
}
goog.fx.dom.PredefinedEffect.apply(this, arguments)
};
goog.inherits(goog.fx.dom.ColorTransform, goog.fx.dom.PredefinedEffect);
goog.fx.dom.ColorTransform.prototype.updateStyle = function() {
var coordsAsInts = [];
for(var i = 0;i < this.coords.length;i++) {
coordsAsInts[i] = Math.round(this.coords[i])
}
var color = "rgb(" + coordsAsInts.join(",") + ")";
this.element.style.color = color
};
goog.provide("clojure.string");
goog.require("cljs.core");
goog.require("goog.string.StringBuffer");
goog.require("goog.string");
clojure.string.seq_reverse = function seq_reverse(coll) {
return cljs.core.reduce.call(null, cljs.core.conj, cljs.core.List.EMPTY, coll)
};
clojure.string.reverse = function reverse(s) {
return s.split("").reverse().join("")
};
clojure.string.replace = function replace(s, match, replacement) {
if(cljs.core.string_QMARK_.call(null, match)) {
return s.replace(new RegExp(goog.string.regExpEscape(match), "g"), replacement)
}else {
if(cljs.core.truth_(match.hasOwnProperty("source"))) {
return s.replace(new RegExp(match.source, "g"), replacement)
}else {
if("\ufdd0'else") {
throw[cljs.core.str("Invalid match arg: "), cljs.core.str(match)].join("");
}else {
return null
}
}
}
};
clojure.string.replace_first = function replace_first(s, match, replacement) {
return s.replace(match, replacement)
};
clojure.string.join = function() {
var join = null;
var join__1 = function(coll) {
return cljs.core.apply.call(null, cljs.core.str, coll)
};
var join__2 = function(separator, coll) {
return cljs.core.apply.call(null, cljs.core.str, cljs.core.interpose.call(null, separator, coll))
};
join = function(separator, coll) {
switch(arguments.length) {
case 1:
return join__1.call(this, separator);
case 2:
return join__2.call(this, separator, coll)
}
throw"Invalid arity: " + arguments.length;
};
join.cljs$lang$arity$1 = join__1;
join.cljs$lang$arity$2 = join__2;
return join
}();
clojure.string.upper_case = function upper_case(s) {
return s.toUpperCase()
};
clojure.string.lower_case = function lower_case(s) {
return s.toLowerCase()
};
clojure.string.capitalize = function capitalize(s) {
if(cljs.core.count.call(null, s) < 2) {
return clojure.string.upper_case.call(null, s)
}else {
return[cljs.core.str(clojure.string.upper_case.call(null, cljs.core.subs.call(null, s, 0, 1))), cljs.core.str(clojure.string.lower_case.call(null, cljs.core.subs.call(null, s, 1)))].join("")
}
};
clojure.string.split = function() {
var split = null;
var split__2 = function(s, re) {
return cljs.core.vec.call(null, [cljs.core.str(s)].join("").split(re))
};
var split__3 = function(s, re, limit) {
if(limit < 1) {
return cljs.core.vec.call(null, [cljs.core.str(s)].join("").split(re))
}else {
var s__12644 = s;
var limit__12645 = limit;
var parts__12646 = cljs.core.PersistentVector.EMPTY;
while(true) {
if(cljs.core._EQ_.call(null, limit__12645, 1)) {
return cljs.core.conj.call(null, parts__12646, s__12644)
}else {
var temp__3971__auto____12647 = cljs.core.re_find.call(null, re, s__12644);
if(cljs.core.truth_(temp__3971__auto____12647)) {
var m__12648 = temp__3971__auto____12647;
var index__12649 = s__12644.indexOf(m__12648);
var G__12650 = s__12644.substring(index__12649 + cljs.core.count.call(null, m__12648));
var G__12651 = limit__12645 - 1;
var G__12652 = cljs.core.conj.call(null, parts__12646, s__12644.substring(0, index__12649));
s__12644 = G__12650;
limit__12645 = G__12651;
parts__12646 = G__12652;
continue
}else {
return cljs.core.conj.call(null, parts__12646, s__12644)
}
}
break
}
}
};
split = function(s, re, limit) {
switch(arguments.length) {
case 2:
return split__2.call(this, s, re);
case 3:
return split__3.call(this, s, re, limit)
}
throw"Invalid arity: " + arguments.length;
};
split.cljs$lang$arity$2 = split__2;
split.cljs$lang$arity$3 = split__3;
return split
}();
clojure.string.split_lines = function split_lines(s) {
return clojure.string.split.call(null, s, /\n|\r\n/)
};
clojure.string.trim = function trim(s) {
return goog.string.trim(s)
};
clojure.string.triml = function triml(s) {
return goog.string.trimLeft(s)
};
clojure.string.trimr = function trimr(s) {
return goog.string.trimRight(s)
};
clojure.string.trim_newline = function trim_newline(s) {
var index__12656 = s.length;
while(true) {
if(index__12656 === 0) {
return""
}else {
var ch__12657 = cljs.core._lookup.call(null, s, index__12656 - 1, null);
if(function() {
var or__3824__auto____12658 = cljs.core._EQ_.call(null, ch__12657, "\n");
if(or__3824__auto____12658) {
return or__3824__auto____12658
}else {
return cljs.core._EQ_.call(null, ch__12657, "\r")
}
}()) {
var G__12659 = index__12656 - 1;
index__12656 = G__12659;
continue
}else {
return s.substring(0, index__12656)
}
}
break
}
};
clojure.string.blank_QMARK_ = function blank_QMARK_(s) {
var s__12663 = [cljs.core.str(s)].join("");
if(cljs.core.truth_(function() {
var or__3824__auto____12664 = cljs.core.not.call(null, s__12663);
if(or__3824__auto____12664) {
return or__3824__auto____12664
}else {
var or__3824__auto____12665 = cljs.core._EQ_.call(null, "", s__12663);
if(or__3824__auto____12665) {
return or__3824__auto____12665
}else {
return cljs.core.re_matches.call(null, /\s+/, s__12663)
}
}
}())) {
return true
}else {
return false
}
};
clojure.string.escape = function escape(s, cmap) {
var buffer__12672 = new goog.string.StringBuffer;
var length__12673 = s.length;
var index__12674 = 0;
while(true) {
if(cljs.core._EQ_.call(null, length__12673, index__12674)) {
return buffer__12672.toString()
}else {
var ch__12675 = s.charAt(index__12674);
var temp__3971__auto____12676 = cljs.core._lookup.call(null, cmap, ch__12675, null);
if(cljs.core.truth_(temp__3971__auto____12676)) {
var replacement__12677 = temp__3971__auto____12676;
buffer__12672.append([cljs.core.str(replacement__12677)].join(""))
}else {
buffer__12672.append(ch__12675)
}
var G__12678 = index__12674 + 1;
index__12674 = G__12678;
continue
}
break
}
};
goog.provide("goog.dom.xml");
goog.require("goog.dom");
goog.require("goog.dom.NodeType");
goog.dom.xml.MAX_XML_SIZE_KB = 2 * 1024;
goog.dom.xml.MAX_ELEMENT_DEPTH = 256;
goog.dom.xml.createDocument = function(opt_rootTagName, opt_namespaceUri) {
if(opt_namespaceUri && !opt_rootTagName) {
throw Error("Can't create document with namespace and no root tag");
}
if(document.implementation && document.implementation.createDocument) {
return document.implementation.createDocument(opt_namespaceUri || "", opt_rootTagName || "", null)
}else {
if(typeof ActiveXObject != "undefined") {
var doc = goog.dom.xml.createMsXmlDocument_();
if(doc) {
if(opt_rootTagName) {
doc.appendChild(doc.createNode(goog.dom.NodeType.ELEMENT, opt_rootTagName, opt_namespaceUri || ""))
}
return doc
}
}
}
throw Error("Your browser does not support creating new documents");
};
goog.dom.xml.loadXml = function(xml) {
if(typeof DOMParser != "undefined") {
return(new DOMParser).parseFromString(xml, "application/xml")
}else {
if(typeof ActiveXObject != "undefined") {
var doc = goog.dom.xml.createMsXmlDocument_();
doc.loadXML(xml);
return doc
}
}
throw Error("Your browser does not support loading xml documents");
};
goog.dom.xml.serialize = function(xml) {
if(typeof XMLSerializer != "undefined") {
return(new XMLSerializer).serializeToString(xml)
}
var text = xml.xml;
if(text) {
return text
}
throw Error("Your browser does not support serializing XML documents");
};
goog.dom.xml.selectSingleNode = function(node, path) {
if(typeof node.selectSingleNode != "undefined") {
var doc = goog.dom.getOwnerDocument(node);
if(typeof doc.setProperty != "undefined") {
doc.setProperty("SelectionLanguage", "XPath")
}
return node.selectSingleNode(path)
}else {
if(document.implementation.hasFeature("XPath", "3.0")) {
var doc = goog.dom.getOwnerDocument(node);
var resolver = doc.createNSResolver(doc.documentElement);
var result = doc.evaluate(path, node, resolver, XPathResult.FIRST_ORDERED_NODE_TYPE, null);
return result.singleNodeValue
}
}
return null
};
goog.dom.xml.selectNodes = function(node, path) {
if(typeof node.selectNodes != "undefined") {
var doc = goog.dom.getOwnerDocument(node);
if(typeof doc.setProperty != "undefined") {
doc.setProperty("SelectionLanguage", "XPath")
}
return node.selectNodes(path)
}else {
if(document.implementation.hasFeature("XPath", "3.0")) {
var doc = goog.dom.getOwnerDocument(node);
var resolver = doc.createNSResolver(doc.documentElement);
var nodes = doc.evaluate(path, node, resolver, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
var results = [];
var count = nodes.snapshotLength;
for(var i = 0;i < count;i++) {
results.push(nodes.snapshotItem(i))
}
return results
}else {
return[]
}
}
};
goog.dom.xml.createMsXmlDocument_ = function() {
var doc = new ActiveXObject("MSXML2.DOMDocument");
if(doc) {
doc.resolveExternals = false;
doc.validateOnParse = false;
try {
doc.setProperty("ProhibitDTD", true);
doc.setProperty("MaxXMLSize", goog.dom.xml.MAX_XML_SIZE_KB);
doc.setProperty("MaxElementDepth", goog.dom.xml.MAX_ELEMENT_DEPTH)
}catch(e) {
}
}
return doc
};
goog.provide("goog.iter");
goog.provide("goog.iter.Iterator");
goog.provide("goog.iter.StopIteration");
goog.require("goog.array");
goog.require("goog.asserts");
goog.iter.Iterable;
if("StopIteration" in goog.global) {
goog.iter.StopIteration = goog.global["StopIteration"]
}else {
goog.iter.StopIteration = Error("StopIteration")
}
goog.iter.Iterator = function() {
};
goog.iter.Iterator.prototype.next = function() {
throw goog.iter.StopIteration;
};
goog.iter.Iterator.prototype.__iterator__ = function(opt_keys) {
return this
};
goog.iter.toIterator = function(iterable) {
if(iterable instanceof goog.iter.Iterator) {
return iterable
}
if(typeof iterable.__iterator__ == "function") {
return iterable.__iterator__(false)
}
if(goog.isArrayLike(iterable)) {
var i = 0;
var newIter = new goog.iter.Iterator;
newIter.next = function() {
while(true) {
if(i >= iterable.length) {
throw goog.iter.StopIteration;
}
if(!(i in iterable)) {
i++;
continue
}
return iterable[i++]
}
};
return newIter
}
throw Error("Not implemented");
};
goog.iter.forEach = function(iterable, f, opt_obj) {
if(goog.isArrayLike(iterable)) {
try {
goog.array.forEach(iterable, f, opt_obj)
}catch(ex) {
if(ex !== goog.iter.StopIteration) {
throw ex;
}
}
}else {
iterable = goog.iter.toIterator(iterable);
try {
while(true) {
f.call(opt_obj, iterable.next(), undefined, iterable)
}
}catch(ex) {
if(ex !== goog.iter.StopIteration) {
throw ex;
}
}
}
};
goog.iter.filter = function(iterable, f, opt_obj) {
iterable = goog.iter.toIterator(iterable);
var newIter = new goog.iter.Iterator;
newIter.next = function() {
while(true) {
var val = iterable.next();
if(f.call(opt_obj, val, undefined, iterable)) {
return val
}
}
};
return newIter
};
goog.iter.range = function(startOrStop, opt_stop, opt_step) {
var start = 0;
var stop = startOrStop;
var step = opt_step || 1;
if(arguments.length > 1) {
start = startOrStop;
stop = opt_stop
}
if(step == 0) {
throw Error("Range step argument must not be zero");
}
var newIter = new goog.iter.Iterator;
newIter.next = function() {
if(step > 0 && start >= stop || step < 0 && start <= stop) {
throw goog.iter.StopIteration;
}
var rv = start;
start += step;
return rv
};
return newIter
};
goog.iter.join = function(iterable, deliminator) {
return goog.iter.toArray(iterable).join(deliminator)
};
goog.iter.map = function(iterable, f, opt_obj) {
iterable = goog.iter.toIterator(iterable);
var newIter = new goog.iter.Iterator;
newIter.next = function() {
while(true) {
var val = iterable.next();
return f.call(opt_obj, val, undefined, iterable)
}
};
return newIter
};
goog.iter.reduce = function(iterable, f, val, opt_obj) {
var rval = val;
goog.iter.forEach(iterable, function(val) {
rval = f.call(opt_obj, rval, val)
});
return rval
};
goog.iter.some = function(iterable, f, opt_obj) {
iterable = goog.iter.toIterator(iterable);
try {
while(true) {
if(f.call(opt_obj, iterable.next(), undefined, iterable)) {
return true
}
}
}catch(ex) {
if(ex !== goog.iter.StopIteration) {
throw ex;
}
}
return false
};
goog.iter.every = function(iterable, f, opt_obj) {
iterable = goog.iter.toIterator(iterable);
try {
while(true) {
if(!f.call(opt_obj, iterable.next(), undefined, iterable)) {
return false
}
}
}catch(ex) {
if(ex !== goog.iter.StopIteration) {
throw ex;
}
}
return true
};
goog.iter.chain = function(var_args) {
var args = arguments;
var length = args.length;
var i = 0;
var newIter = new goog.iter.Iterator;
newIter.next = function() {
try {
if(i >= length) {
throw goog.iter.StopIteration;
}
var current = goog.iter.toIterator(args[i]);
return current.next()
}catch(ex) {
if(ex !== goog.iter.StopIteration || i >= length) {
throw ex;
}else {
i++;
return this.next()
}
}
};
return newIter
};
goog.iter.dropWhile = function(iterable, f, opt_obj) {
iterable = goog.iter.toIterator(iterable);
var newIter = new goog.iter.Iterator;
var dropping = true;
newIter.next = function() {
while(true) {
var val = iterable.next();
if(dropping && f.call(opt_obj, val, undefined, iterable)) {
continue
}else {
dropping = false
}
return val
}
};
return newIter
};
goog.iter.takeWhile = function(iterable, f, opt_obj) {
iterable = goog.iter.toIterator(iterable);
var newIter = new goog.iter.Iterator;
var taking = true;
newIter.next = function() {
while(true) {
if(taking) {
var val = iterable.next();
if(f.call(opt_obj, val, undefined, iterable)) {
return val
}else {
taking = false
}
}else {
throw goog.iter.StopIteration;
}
}
};
return newIter
};
goog.iter.toArray = function(iterable) {
if(goog.isArrayLike(iterable)) {
return goog.array.toArray(iterable)
}
iterable = goog.iter.toIterator(iterable);
var array = [];
goog.iter.forEach(iterable, function(val) {
array.push(val)
});
return array
};
goog.iter.equals = function(iterable1, iterable2) {
iterable1 = goog.iter.toIterator(iterable1);
iterable2 = goog.iter.toIterator(iterable2);
var b1, b2;
try {
while(true) {
b1 = b2 = false;
var val1 = iterable1.next();
b1 = true;
var val2 = iterable2.next();
b2 = true;
if(val1 != val2) {
return false
}
}
}catch(ex) {
if(ex !== goog.iter.StopIteration) {
throw ex;
}else {
if(b1 && !b2) {
return false
}
if(!b2) {
try {
val2 = iterable2.next();
return false
}catch(ex1) {
if(ex1 !== goog.iter.StopIteration) {
throw ex1;
}
return true
}
}
}
}
return false
};
goog.iter.nextOrValue = function(iterable, defaultValue) {
try {
return goog.iter.toIterator(iterable).next()
}catch(e) {
if(e != goog.iter.StopIteration) {
throw e;
}
return defaultValue
}
};
goog.iter.product = function(var_args) {
var someArrayEmpty = goog.array.some(arguments, function(arr) {
return!arr.length
});
if(someArrayEmpty || !arguments.length) {
return new goog.iter.Iterator
}
var iter = new goog.iter.Iterator;
var arrays = arguments;
var indicies = goog.array.repeat(0, arrays.length);
iter.next = function() {
if(indicies) {
var retVal = goog.array.map(indicies, function(valueIndex, arrayIndex) {
return arrays[arrayIndex][valueIndex]
});
for(var i = indicies.length - 1;i >= 0;i--) {
goog.asserts.assert(indicies);
if(indicies[i] < arrays[i].length - 1) {
indicies[i]++;
break
}
if(i == 0) {
indicies = null;
break
}
indicies[i] = 0
}
return retVal
}
throw goog.iter.StopIteration;
};
return iter
};
goog.provide("goog.structs");
goog.require("goog.array");
goog.require("goog.object");
goog.structs.getCount = function(col) {
if(typeof col.getCount == "function") {
return col.getCount()
}
if(goog.isArrayLike(col) || goog.isString(col)) {
return col.length
}
return goog.object.getCount(col)
};
goog.structs.getValues = function(col) {
if(typeof col.getValues == "function") {
return col.getValues()
}
if(goog.isString(col)) {
return col.split("")
}
if(goog.isArrayLike(col)) {
var rv = [];
var l = col.length;
for(var i = 0;i < l;i++) {
rv.push(col[i])
}
return rv
}
return goog.object.getValues(col)
};
goog.structs.getKeys = function(col) {
if(typeof col.getKeys == "function") {
return col.getKeys()
}
if(typeof col.getValues == "function") {
return undefined
}
if(goog.isArrayLike(col) || goog.isString(col)) {
var rv = [];
var l = col.length;
for(var i = 0;i < l;i++) {
rv.push(i)
}
return rv
}
return goog.object.getKeys(col)
};
goog.structs.contains = function(col, val) {
if(typeof col.contains == "function") {
return col.contains(val)
}
if(typeof col.containsValue == "function") {
return col.containsValue(val)
}
if(goog.isArrayLike(col) || goog.isString(col)) {
return goog.array.contains(col, val)
}
return goog.object.containsValue(col, val)
};
goog.structs.isEmpty = function(col) {
if(typeof col.isEmpty == "function") {
return col.isEmpty()
}
if(goog.isArrayLike(col) || goog.isString(col)) {
return goog.array.isEmpty(col)
}
return goog.object.isEmpty(col)
};
goog.structs.clear = function(col) {
if(typeof col.clear == "function") {
col.clear()
}else {
if(goog.isArrayLike(col)) {
goog.array.clear(col)
}else {
goog.object.clear(col)
}
}
};
goog.structs.forEach = function(col, f, opt_obj) {
if(typeof col.forEach == "function") {
col.forEach(f, opt_obj)
}else {
if(goog.isArrayLike(col) || goog.isString(col)) {
goog.array.forEach(col, f, opt_obj)
}else {
var keys = goog.structs.getKeys(col);
var values = goog.structs.getValues(col);
var l = values.length;
for(var i = 0;i < l;i++) {
f.call(opt_obj, values[i], keys && keys[i], col)
}
}
}
};
goog.structs.filter = function(col, f, opt_obj) {
if(typeof col.filter == "function") {
return col.filter(f, opt_obj)
}
if(goog.isArrayLike(col) || goog.isString(col)) {
return goog.array.filter(col, f, opt_obj)
}
var rv;
var keys = goog.structs.getKeys(col);
var values = goog.structs.getValues(col);
var l = values.length;
if(keys) {
rv = {};
for(var i = 0;i < l;i++) {
if(f.call(opt_obj, values[i], keys[i], col)) {
rv[keys[i]] = values[i]
}
}
}else {
rv = [];
for(var i = 0;i < l;i++) {
if(f.call(opt_obj, values[i], undefined, col)) {
rv.push(values[i])
}
}
}
return rv
};
goog.structs.map = function(col, f, opt_obj) {
if(typeof col.map == "function") {
return col.map(f, opt_obj)
}
if(goog.isArrayLike(col) || goog.isString(col)) {
return goog.array.map(col, f, opt_obj)
}
var rv;
var keys = goog.structs.getKeys(col);
var values = goog.structs.getValues(col);
var l = values.length;
if(keys) {
rv = {};
for(var i = 0;i < l;i++) {
rv[keys[i]] = f.call(opt_obj, values[i], keys[i], col)
}
}else {
rv = [];
for(var i = 0;i < l;i++) {
rv[i] = f.call(opt_obj, values[i], undefined, col)
}
}
return rv
};
goog.structs.some = function(col, f, opt_obj) {
if(typeof col.some == "function") {
return col.some(f, opt_obj)
}
if(goog.isArrayLike(col) || goog.isString(col)) {
return goog.array.some(col, f, opt_obj)
}
var keys = goog.structs.getKeys(col);
var values = goog.structs.getValues(col);
var l = values.length;
for(var i = 0;i < l;i++) {
if(f.call(opt_obj, values[i], keys && keys[i], col)) {
return true
}
}
return false
};
goog.structs.every = function(col, f, opt_obj) {
if(typeof col.every == "function") {
return col.every(f, opt_obj)
}
if(goog.isArrayLike(col) || goog.isString(col)) {
return goog.array.every(col, f, opt_obj)
}
var keys = goog.structs.getKeys(col);
var values = goog.structs.getValues(col);
var l = values.length;
for(var i = 0;i < l;i++) {
if(!f.call(opt_obj, values[i], keys && keys[i], col)) {
return false
}
}
return true
};
goog.provide("goog.structs.Map");
goog.require("goog.iter.Iterator");
goog.require("goog.iter.StopIteration");
goog.require("goog.object");
goog.require("goog.structs");
goog.structs.Map = function(opt_map, var_args) {
this.map_ = {};
this.keys_ = [];
var argLength = arguments.length;
if(argLength > 1) {
if(argLength % 2) {
throw Error("Uneven number of arguments");
}
for(var i = 0;i < argLength;i += 2) {
this.set(arguments[i], arguments[i + 1])
}
}else {
if(opt_map) {
this.addAll(opt_map)
}
}
};
goog.structs.Map.prototype.count_ = 0;
goog.structs.Map.prototype.version_ = 0;
goog.structs.Map.prototype.getCount = function() {
return this.count_
};
goog.structs.Map.prototype.getValues = function() {
this.cleanupKeysArray_();
var rv = [];
for(var i = 0;i < this.keys_.length;i++) {
var key = this.keys_[i];
rv.push(this.map_[key])
}
return rv
};
goog.structs.Map.prototype.getKeys = function() {
this.cleanupKeysArray_();
return this.keys_.concat()
};
goog.structs.Map.prototype.containsKey = function(key) {
return goog.structs.Map.hasKey_(this.map_, key)
};
goog.structs.Map.prototype.containsValue = function(val) {
for(var i = 0;i < this.keys_.length;i++) {
var key = this.keys_[i];
if(goog.structs.Map.hasKey_(this.map_, key) && this.map_[key] == val) {
return true
}
}
return false
};
goog.structs.Map.prototype.equals = function(otherMap, opt_equalityFn) {
if(this === otherMap) {
return true
}
if(this.count_ != otherMap.getCount()) {
return false
}
var equalityFn = opt_equalityFn || goog.structs.Map.defaultEquals;
this.cleanupKeysArray_();
for(var key, i = 0;key = this.keys_[i];i++) {
if(!equalityFn(this.get(key), otherMap.get(key))) {
return false
}
}
return true
};
goog.structs.Map.defaultEquals = function(a, b) {
return a === b
};
goog.structs.Map.prototype.isEmpty = function() {
return this.count_ == 0
};
goog.structs.Map.prototype.clear = function() {
this.map_ = {};
this.keys_.length = 0;
this.count_ = 0;
this.version_ = 0
};
goog.structs.Map.prototype.remove = function(key) {
if(goog.structs.Map.hasKey_(this.map_, key)) {
delete this.map_[key];
this.count_--;
this.version_++;
if(this.keys_.length > 2 * this.count_) {
this.cleanupKeysArray_()
}
return true
}
return false
};
goog.structs.Map.prototype.cleanupKeysArray_ = function() {
if(this.count_ != this.keys_.length) {
var srcIndex = 0;
var destIndex = 0;
while(srcIndex < this.keys_.length) {
var key = this.keys_[srcIndex];
if(goog.structs.Map.hasKey_(this.map_, key)) {
this.keys_[destIndex++] = key
}
srcIndex++
}
this.keys_.length = destIndex
}
if(this.count_ != this.keys_.length) {
var seen = {};
var srcIndex = 0;
var destIndex = 0;
while(srcIndex < this.keys_.length) {
var key = this.keys_[srcIndex];
if(!goog.structs.Map.hasKey_(seen, key)) {
this.keys_[destIndex++] = key;
seen[key] = 1
}
srcIndex++
}
this.keys_.length = destIndex
}
};
goog.structs.Map.prototype.get = function(key, opt_val) {
if(goog.structs.Map.hasKey_(this.map_, key)) {
return this.map_[key]
}
return opt_val
};
goog.structs.Map.prototype.set = function(key, value) {
if(!goog.structs.Map.hasKey_(this.map_, key)) {
this.count_++;
this.keys_.push(key);
this.version_++
}
this.map_[key] = value
};
goog.structs.Map.prototype.addAll = function(map) {
var keys, values;
if(map instanceof goog.structs.Map) {
keys = map.getKeys();
values = map.getValues()
}else {
keys = goog.object.getKeys(map);
values = goog.object.getValues(map)
}
for(var i = 0;i < keys.length;i++) {
this.set(keys[i], values[i])
}
};
goog.structs.Map.prototype.clone = function() {
return new goog.structs.Map(this)
};
goog.structs.Map.prototype.transpose = function() {
var transposed = new goog.structs.Map;
for(var i = 0;i < this.keys_.length;i++) {
var key = this.keys_[i];
var value = this.map_[key];
transposed.set(value, key)
}
return transposed
};
goog.structs.Map.prototype.toObject = function() {
this.cleanupKeysArray_();
var obj = {};
for(var i = 0;i < this.keys_.length;i++) {
var key = this.keys_[i];
obj[key] = this.map_[key]
}
return obj
};
goog.structs.Map.prototype.getKeyIterator = function() {
return this.__iterator__(true)
};
goog.structs.Map.prototype.getValueIterator = function() {
return this.__iterator__(false)
};
goog.structs.Map.prototype.__iterator__ = function(opt_keys) {
this.cleanupKeysArray_();
var i = 0;
var keys = this.keys_;
var map = this.map_;
var version = this.version_;
var selfObj = this;
var newIter = new goog.iter.Iterator;
newIter.next = function() {
while(true) {
if(version != selfObj.version_) {
throw Error("The map has changed since the iterator was created");
}
if(i >= keys.length) {
throw goog.iter.StopIteration;
}
var key = keys[i++];
return opt_keys ? key : map[key]
}
};
return newIter
};
goog.structs.Map.hasKey_ = function(obj, key) {
return Object.prototype.hasOwnProperty.call(obj, key)
};
goog.provide("goog.dom.forms");
goog.require("goog.structs.Map");
goog.dom.forms.getFormDataMap = function(form) {
var map = new goog.structs.Map;
goog.dom.forms.getFormDataHelper_(form, map, goog.dom.forms.addFormDataToMap_);
return map
};
goog.dom.forms.getFormDataString = function(form) {
var sb = [];
goog.dom.forms.getFormDataHelper_(form, sb, goog.dom.forms.addFormDataToStringBuffer_);
return sb.join("&")
};
goog.dom.forms.getFormDataHelper_ = function(form, result, fnAppend) {
var els = form.elements;
for(var el, i = 0;el = els[i];i++) {
if(el.disabled || el.tagName.toLowerCase() == "fieldset") {
continue
}
var name = el.name;
var type = el.type.toLowerCase();
switch(type) {
case "file":
;
case "submit":
;
case "reset":
;
case "button":
break;
case "select-multiple":
var values = goog.dom.forms.getValue(el);
if(values != null) {
for(var value, j = 0;value = values[j];j++) {
fnAppend(result, name, value)
}
}
break;
default:
var value = goog.dom.forms.getValue(el);
if(value != null) {
fnAppend(result, name, value)
}
}
}
var inputs = form.getElementsByTagName("input");
for(var input, i = 0;input = inputs[i];i++) {
if(input.form == form && input.type.toLowerCase() == "image") {
name = input.name;
fnAppend(result, name, input.value);
fnAppend(result, name + ".x", "0");
fnAppend(result, name + ".y", "0")
}
}
};
goog.dom.forms.addFormDataToMap_ = function(map, name, value) {
var array = map.get(name);
if(!array) {
array = [];
map.set(name, array)
}
array.push(value)
};
goog.dom.forms.addFormDataToStringBuffer_ = function(sb, name, value) {
sb.push(encodeURIComponent(name) + "=" + encodeURIComponent(value))
};
goog.dom.forms.hasFileInput = function(form) {
var els = form.elements;
for(var el, i = 0;el = els[i];i++) {
if(!el.disabled && el.type && el.type.toLowerCase() == "file") {
return true
}
}
return false
};
goog.dom.forms.setDisabled = function(el, disabled) {
if(el.tagName == "FORM") {
var els = el.elements;
for(var i = 0;el = els[i];i++) {
goog.dom.forms.setDisabled(el, disabled)
}
}else {
if(disabled == true) {
el.blur()
}
el.disabled = disabled
}
};
goog.dom.forms.focusAndSelect = function(el) {
el.focus();
if(el.select) {
el.select()
}
};
goog.dom.forms.hasValue = function(el) {
var value = goog.dom.forms.getValue(el);
return!!value
};
goog.dom.forms.hasValueByName = function(form, name) {
var value = goog.dom.forms.getValueByName(form, name);
return!!value
};
goog.dom.forms.getValue = function(el) {
var type = el.type;
if(!goog.isDef(type)) {
return null
}
switch(type.toLowerCase()) {
case "checkbox":
;
case "radio":
return goog.dom.forms.getInputChecked_(el);
case "select-one":
return goog.dom.forms.getSelectSingle_(el);
case "select-multiple":
return goog.dom.forms.getSelectMultiple_(el);
default:
return goog.isDef(el.value) ? el.value : null
}
};
goog.dom.$F = goog.dom.forms.getValue;
goog.dom.forms.getValueByName = function(form, name) {
var els = form.elements[name];
if(els.type) {
return goog.dom.forms.getValue(els)
}else {
for(var i = 0;i < els.length;i++) {
var val = goog.dom.forms.getValue(els[i]);
if(val) {
return val
}
}
return null
}
};
goog.dom.forms.getInputChecked_ = function(el) {
return el.checked ? el.value : null
};
goog.dom.forms.getSelectSingle_ = function(el) {
var selectedIndex = el.selectedIndex;
return selectedIndex >= 0 ? el.options[selectedIndex].value : null
};
goog.dom.forms.getSelectMultiple_ = function(el) {
var values = [];
for(var option, i = 0;option = el.options[i];i++) {
if(option.selected) {
values.push(option.value)
}
}
return values.length ? values : null
};
goog.dom.forms.setValue = function(el, opt_value) {
var type = el.type;
if(goog.isDef(type)) {
switch(type.toLowerCase()) {
case "checkbox":
;
case "radio":
goog.dom.forms.setInputChecked_(el, opt_value);
break;
case "select-one":
goog.dom.forms.setSelectSingle_(el, opt_value);
break;
case "select-multiple":
goog.dom.forms.setSelectMultiple_(el, opt_value);
break;
default:
el.value = goog.isDefAndNotNull(opt_value) ? opt_value : ""
}
}
};
goog.dom.forms.setInputChecked_ = function(el, opt_value) {
el.checked = opt_value ? "checked" : null
};
goog.dom.forms.setSelectSingle_ = function(el, opt_value) {
el.selectedIndex = -1;
if(goog.isString(opt_value)) {
for(var option, i = 0;option = el.options[i];i++) {
if(option.value == opt_value) {
option.selected = true;
break
}
}
}
};
goog.dom.forms.setSelectMultiple_ = function(el, opt_value) {
if(goog.isString(opt_value)) {
opt_value = [opt_value]
}
for(var option, i = 0;option = el.options[i];i++) {
option.selected = false;
if(opt_value) {
for(var value, j = 0;value = opt_value[j];j++) {
if(option.value == value) {
op
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment