Skip to content

Instantly share code, notes, and snippets.

@dbushenko
Created August 9, 2012 07:30
Show Gist options
  • Save dbushenko/3301983 to your computer and use it in GitHub Desktop.
Save dbushenko/3301983 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.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.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.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__32665 = x == null ? null : x;
if(p[goog.typeOf(x__32665)]) {
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__32666__delegate = function(array, i, idxs) {
return cljs.core.apply.call(null, aget, aget.call(null, array, i), idxs)
};
var G__32666 = 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__32666__delegate.call(this, array, i, idxs)
};
G__32666.cljs$lang$maxFixedArity = 2;
G__32666.cljs$lang$applyTo = function(arglist__32667) {
var array = cljs.core.first(arglist__32667);
var i = cljs.core.first(cljs.core.next(arglist__32667));
var idxs = cljs.core.rest(cljs.core.next(arglist__32667));
return G__32666__delegate(array, i, idxs)
};
G__32666.cljs$lang$arity$variadic = G__32666__delegate;
return G__32666
}();
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____32752 = this$;
if(and__3822__auto____32752) {
return this$.cljs$core$IFn$_invoke$arity$1
}else {
return and__3822__auto____32752
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$1(this$)
}else {
var x__2383__auto____32753 = this$ == null ? null : this$;
return function() {
var or__3824__auto____32754 = cljs.core._invoke[goog.typeOf(x__2383__auto____32753)];
if(or__3824__auto____32754) {
return or__3824__auto____32754
}else {
var or__3824__auto____32755 = cljs.core._invoke["_"];
if(or__3824__auto____32755) {
return or__3824__auto____32755
}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____32756 = this$;
if(and__3822__auto____32756) {
return this$.cljs$core$IFn$_invoke$arity$2
}else {
return and__3822__auto____32756
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$2(this$, a)
}else {
var x__2383__auto____32757 = this$ == null ? null : this$;
return function() {
var or__3824__auto____32758 = cljs.core._invoke[goog.typeOf(x__2383__auto____32757)];
if(or__3824__auto____32758) {
return or__3824__auto____32758
}else {
var or__3824__auto____32759 = cljs.core._invoke["_"];
if(or__3824__auto____32759) {
return or__3824__auto____32759
}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____32760 = this$;
if(and__3822__auto____32760) {
return this$.cljs$core$IFn$_invoke$arity$3
}else {
return and__3822__auto____32760
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$3(this$, a, b)
}else {
var x__2383__auto____32761 = this$ == null ? null : this$;
return function() {
var or__3824__auto____32762 = cljs.core._invoke[goog.typeOf(x__2383__auto____32761)];
if(or__3824__auto____32762) {
return or__3824__auto____32762
}else {
var or__3824__auto____32763 = cljs.core._invoke["_"];
if(or__3824__auto____32763) {
return or__3824__auto____32763
}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____32764 = this$;
if(and__3822__auto____32764) {
return this$.cljs$core$IFn$_invoke$arity$4
}else {
return and__3822__auto____32764
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$4(this$, a, b, c)
}else {
var x__2383__auto____32765 = this$ == null ? null : this$;
return function() {
var or__3824__auto____32766 = cljs.core._invoke[goog.typeOf(x__2383__auto____32765)];
if(or__3824__auto____32766) {
return or__3824__auto____32766
}else {
var or__3824__auto____32767 = cljs.core._invoke["_"];
if(or__3824__auto____32767) {
return or__3824__auto____32767
}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____32768 = this$;
if(and__3822__auto____32768) {
return this$.cljs$core$IFn$_invoke$arity$5
}else {
return and__3822__auto____32768
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$5(this$, a, b, c, d)
}else {
var x__2383__auto____32769 = this$ == null ? null : this$;
return function() {
var or__3824__auto____32770 = cljs.core._invoke[goog.typeOf(x__2383__auto____32769)];
if(or__3824__auto____32770) {
return or__3824__auto____32770
}else {
var or__3824__auto____32771 = cljs.core._invoke["_"];
if(or__3824__auto____32771) {
return or__3824__auto____32771
}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____32772 = this$;
if(and__3822__auto____32772) {
return this$.cljs$core$IFn$_invoke$arity$6
}else {
return and__3822__auto____32772
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$6(this$, a, b, c, d, e)
}else {
var x__2383__auto____32773 = this$ == null ? null : this$;
return function() {
var or__3824__auto____32774 = cljs.core._invoke[goog.typeOf(x__2383__auto____32773)];
if(or__3824__auto____32774) {
return or__3824__auto____32774
}else {
var or__3824__auto____32775 = cljs.core._invoke["_"];
if(or__3824__auto____32775) {
return or__3824__auto____32775
}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____32776 = this$;
if(and__3822__auto____32776) {
return this$.cljs$core$IFn$_invoke$arity$7
}else {
return and__3822__auto____32776
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$7(this$, a, b, c, d, e, f)
}else {
var x__2383__auto____32777 = this$ == null ? null : this$;
return function() {
var or__3824__auto____32778 = cljs.core._invoke[goog.typeOf(x__2383__auto____32777)];
if(or__3824__auto____32778) {
return or__3824__auto____32778
}else {
var or__3824__auto____32779 = cljs.core._invoke["_"];
if(or__3824__auto____32779) {
return or__3824__auto____32779
}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____32780 = this$;
if(and__3822__auto____32780) {
return this$.cljs$core$IFn$_invoke$arity$8
}else {
return and__3822__auto____32780
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$8(this$, a, b, c, d, e, f, g)
}else {
var x__2383__auto____32781 = this$ == null ? null : this$;
return function() {
var or__3824__auto____32782 = cljs.core._invoke[goog.typeOf(x__2383__auto____32781)];
if(or__3824__auto____32782) {
return or__3824__auto____32782
}else {
var or__3824__auto____32783 = cljs.core._invoke["_"];
if(or__3824__auto____32783) {
return or__3824__auto____32783
}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____32784 = this$;
if(and__3822__auto____32784) {
return this$.cljs$core$IFn$_invoke$arity$9
}else {
return and__3822__auto____32784
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$9(this$, a, b, c, d, e, f, g, h)
}else {
var x__2383__auto____32785 = this$ == null ? null : this$;
return function() {
var or__3824__auto____32786 = cljs.core._invoke[goog.typeOf(x__2383__auto____32785)];
if(or__3824__auto____32786) {
return or__3824__auto____32786
}else {
var or__3824__auto____32787 = cljs.core._invoke["_"];
if(or__3824__auto____32787) {
return or__3824__auto____32787
}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____32788 = this$;
if(and__3822__auto____32788) {
return this$.cljs$core$IFn$_invoke$arity$10
}else {
return and__3822__auto____32788
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$10(this$, a, b, c, d, e, f, g, h, i)
}else {
var x__2383__auto____32789 = this$ == null ? null : this$;
return function() {
var or__3824__auto____32790 = cljs.core._invoke[goog.typeOf(x__2383__auto____32789)];
if(or__3824__auto____32790) {
return or__3824__auto____32790
}else {
var or__3824__auto____32791 = cljs.core._invoke["_"];
if(or__3824__auto____32791) {
return or__3824__auto____32791
}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____32792 = this$;
if(and__3822__auto____32792) {
return this$.cljs$core$IFn$_invoke$arity$11
}else {
return and__3822__auto____32792
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$11(this$, a, b, c, d, e, f, g, h, i, j)
}else {
var x__2383__auto____32793 = this$ == null ? null : this$;
return function() {
var or__3824__auto____32794 = cljs.core._invoke[goog.typeOf(x__2383__auto____32793)];
if(or__3824__auto____32794) {
return or__3824__auto____32794
}else {
var or__3824__auto____32795 = cljs.core._invoke["_"];
if(or__3824__auto____32795) {
return or__3824__auto____32795
}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____32796 = this$;
if(and__3822__auto____32796) {
return this$.cljs$core$IFn$_invoke$arity$12
}else {
return and__3822__auto____32796
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$12(this$, a, b, c, d, e, f, g, h, i, j, k)
}else {
var x__2383__auto____32797 = this$ == null ? null : this$;
return function() {
var or__3824__auto____32798 = cljs.core._invoke[goog.typeOf(x__2383__auto____32797)];
if(or__3824__auto____32798) {
return or__3824__auto____32798
}else {
var or__3824__auto____32799 = cljs.core._invoke["_"];
if(or__3824__auto____32799) {
return or__3824__auto____32799
}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____32800 = this$;
if(and__3822__auto____32800) {
return this$.cljs$core$IFn$_invoke$arity$13
}else {
return and__3822__auto____32800
}
}()) {
return this$.cljs$core$IFn$_invoke$arity$13(this$, a, b, c, d, e, f, g, h, i, j, k, l)
}else {
var x__2383__auto____32801 = this$ == null ? null : this$;
return function() {
var or__3824__auto____32802 = cljs.core._invoke[goog.typeOf(x__2383__auto____32801)];
if(or__3824__auto____32802) {
return or__3824__auto____32802
}else {
var or__3824__auto____32803 = cljs.core._invoke["_"];
if(or__3824__auto____32803) {
return or__3824__auto____32803
}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____32804 = this$;
if(and__3822__auto____32804) {
return this$.cljs$core$IFn$_invoke$arity$14
}else {
return and__3822__auto____32804
}
}()) {
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__2383__auto____32805 = this$ == null ? null : this$;
return function() {
var or__3824__auto____32806 = cljs.core._invoke[goog.typeOf(x__2383__auto____32805)];
if(or__3824__auto____32806) {
return or__3824__auto____32806
}else {
var or__3824__auto____32807 = cljs.core._invoke["_"];
if(or__3824__auto____32807) {
return or__3824__auto____32807
}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____32808 = this$;
if(and__3822__auto____32808) {
return this$.cljs$core$IFn$_invoke$arity$15
}else {
return and__3822__auto____32808
}
}()) {
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__2383__auto____32809 = this$ == null ? null : this$;
return function() {
var or__3824__auto____32810 = cljs.core._invoke[goog.typeOf(x__2383__auto____32809)];
if(or__3824__auto____32810) {
return or__3824__auto____32810
}else {
var or__3824__auto____32811 = cljs.core._invoke["_"];
if(or__3824__auto____32811) {
return or__3824__auto____32811
}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____32812 = this$;
if(and__3822__auto____32812) {
return this$.cljs$core$IFn$_invoke$arity$16
}else {
return and__3822__auto____32812
}
}()) {
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__2383__auto____32813 = this$ == null ? null : this$;
return function() {
var or__3824__auto____32814 = cljs.core._invoke[goog.typeOf(x__2383__auto____32813)];
if(or__3824__auto____32814) {
return or__3824__auto____32814
}else {
var or__3824__auto____32815 = cljs.core._invoke["_"];
if(or__3824__auto____32815) {
return or__3824__auto____32815
}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____32816 = this$;
if(and__3822__auto____32816) {
return this$.cljs$core$IFn$_invoke$arity$17
}else {
return and__3822__auto____32816
}
}()) {
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__2383__auto____32817 = this$ == null ? null : this$;
return function() {
var or__3824__auto____32818 = cljs.core._invoke[goog.typeOf(x__2383__auto____32817)];
if(or__3824__auto____32818) {
return or__3824__auto____32818
}else {
var or__3824__auto____32819 = cljs.core._invoke["_"];
if(or__3824__auto____32819) {
return or__3824__auto____32819
}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____32820 = this$;
if(and__3822__auto____32820) {
return this$.cljs$core$IFn$_invoke$arity$18
}else {
return and__3822__auto____32820
}
}()) {
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__2383__auto____32821 = this$ == null ? null : this$;
return function() {
var or__3824__auto____32822 = cljs.core._invoke[goog.typeOf(x__2383__auto____32821)];
if(or__3824__auto____32822) {
return or__3824__auto____32822
}else {
var or__3824__auto____32823 = cljs.core._invoke["_"];
if(or__3824__auto____32823) {
return or__3824__auto____32823
}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____32824 = this$;
if(and__3822__auto____32824) {
return this$.cljs$core$IFn$_invoke$arity$19
}else {
return and__3822__auto____32824
}
}()) {
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__2383__auto____32825 = this$ == null ? null : this$;
return function() {
var or__3824__auto____32826 = cljs.core._invoke[goog.typeOf(x__2383__auto____32825)];
if(or__3824__auto____32826) {
return or__3824__auto____32826
}else {
var or__3824__auto____32827 = cljs.core._invoke["_"];
if(or__3824__auto____32827) {
return or__3824__auto____32827
}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____32828 = this$;
if(and__3822__auto____32828) {
return this$.cljs$core$IFn$_invoke$arity$20
}else {
return and__3822__auto____32828
}
}()) {
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__2383__auto____32829 = this$ == null ? null : this$;
return function() {
var or__3824__auto____32830 = cljs.core._invoke[goog.typeOf(x__2383__auto____32829)];
if(or__3824__auto____32830) {
return or__3824__auto____32830
}else {
var or__3824__auto____32831 = cljs.core._invoke["_"];
if(or__3824__auto____32831) {
return or__3824__auto____32831
}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____32832 = this$;
if(and__3822__auto____32832) {
return this$.cljs$core$IFn$_invoke$arity$21
}else {
return and__3822__auto____32832
}
}()) {
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__2383__auto____32833 = this$ == null ? null : this$;
return function() {
var or__3824__auto____32834 = cljs.core._invoke[goog.typeOf(x__2383__auto____32833)];
if(or__3824__auto____32834) {
return or__3824__auto____32834
}else {
var or__3824__auto____32835 = cljs.core._invoke["_"];
if(or__3824__auto____32835) {
return or__3824__auto____32835
}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____32840 = coll;
if(and__3822__auto____32840) {
return coll.cljs$core$ICounted$_count$arity$1
}else {
return and__3822__auto____32840
}
}()) {
return coll.cljs$core$ICounted$_count$arity$1(coll)
}else {
var x__2383__auto____32841 = coll == null ? null : coll;
return function() {
var or__3824__auto____32842 = cljs.core._count[goog.typeOf(x__2383__auto____32841)];
if(or__3824__auto____32842) {
return or__3824__auto____32842
}else {
var or__3824__auto____32843 = cljs.core._count["_"];
if(or__3824__auto____32843) {
return or__3824__auto____32843
}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____32848 = coll;
if(and__3822__auto____32848) {
return coll.cljs$core$IEmptyableCollection$_empty$arity$1
}else {
return and__3822__auto____32848
}
}()) {
return coll.cljs$core$IEmptyableCollection$_empty$arity$1(coll)
}else {
var x__2383__auto____32849 = coll == null ? null : coll;
return function() {
var or__3824__auto____32850 = cljs.core._empty[goog.typeOf(x__2383__auto____32849)];
if(or__3824__auto____32850) {
return or__3824__auto____32850
}else {
var or__3824__auto____32851 = cljs.core._empty["_"];
if(or__3824__auto____32851) {
return or__3824__auto____32851
}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____32856 = coll;
if(and__3822__auto____32856) {
return coll.cljs$core$ICollection$_conj$arity$2
}else {
return and__3822__auto____32856
}
}()) {
return coll.cljs$core$ICollection$_conj$arity$2(coll, o)
}else {
var x__2383__auto____32857 = coll == null ? null : coll;
return function() {
var or__3824__auto____32858 = cljs.core._conj[goog.typeOf(x__2383__auto____32857)];
if(or__3824__auto____32858) {
return or__3824__auto____32858
}else {
var or__3824__auto____32859 = cljs.core._conj["_"];
if(or__3824__auto____32859) {
return or__3824__auto____32859
}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____32868 = coll;
if(and__3822__auto____32868) {
return coll.cljs$core$IIndexed$_nth$arity$2
}else {
return and__3822__auto____32868
}
}()) {
return coll.cljs$core$IIndexed$_nth$arity$2(coll, n)
}else {
var x__2383__auto____32869 = coll == null ? null : coll;
return function() {
var or__3824__auto____32870 = cljs.core._nth[goog.typeOf(x__2383__auto____32869)];
if(or__3824__auto____32870) {
return or__3824__auto____32870
}else {
var or__3824__auto____32871 = cljs.core._nth["_"];
if(or__3824__auto____32871) {
return or__3824__auto____32871
}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____32872 = coll;
if(and__3822__auto____32872) {
return coll.cljs$core$IIndexed$_nth$arity$3
}else {
return and__3822__auto____32872
}
}()) {
return coll.cljs$core$IIndexed$_nth$arity$3(coll, n, not_found)
}else {
var x__2383__auto____32873 = coll == null ? null : coll;
return function() {
var or__3824__auto____32874 = cljs.core._nth[goog.typeOf(x__2383__auto____32873)];
if(or__3824__auto____32874) {
return or__3824__auto____32874
}else {
var or__3824__auto____32875 = cljs.core._nth["_"];
if(or__3824__auto____32875) {
return or__3824__auto____32875
}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____32880 = coll;
if(and__3822__auto____32880) {
return coll.cljs$core$ISeq$_first$arity$1
}else {
return and__3822__auto____32880
}
}()) {
return coll.cljs$core$ISeq$_first$arity$1(coll)
}else {
var x__2383__auto____32881 = coll == null ? null : coll;
return function() {
var or__3824__auto____32882 = cljs.core._first[goog.typeOf(x__2383__auto____32881)];
if(or__3824__auto____32882) {
return or__3824__auto____32882
}else {
var or__3824__auto____32883 = cljs.core._first["_"];
if(or__3824__auto____32883) {
return or__3824__auto____32883
}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____32888 = coll;
if(and__3822__auto____32888) {
return coll.cljs$core$ISeq$_rest$arity$1
}else {
return and__3822__auto____32888
}
}()) {
return coll.cljs$core$ISeq$_rest$arity$1(coll)
}else {
var x__2383__auto____32889 = coll == null ? null : coll;
return function() {
var or__3824__auto____32890 = cljs.core._rest[goog.typeOf(x__2383__auto____32889)];
if(or__3824__auto____32890) {
return or__3824__auto____32890
}else {
var or__3824__auto____32891 = cljs.core._rest["_"];
if(or__3824__auto____32891) {
return or__3824__auto____32891
}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____32896 = coll;
if(and__3822__auto____32896) {
return coll.cljs$core$INext$_next$arity$1
}else {
return and__3822__auto____32896
}
}()) {
return coll.cljs$core$INext$_next$arity$1(coll)
}else {
var x__2383__auto____32897 = coll == null ? null : coll;
return function() {
var or__3824__auto____32898 = cljs.core._next[goog.typeOf(x__2383__auto____32897)];
if(or__3824__auto____32898) {
return or__3824__auto____32898
}else {
var or__3824__auto____32899 = cljs.core._next["_"];
if(or__3824__auto____32899) {
return or__3824__auto____32899
}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____32908 = o;
if(and__3822__auto____32908) {
return o.cljs$core$ILookup$_lookup$arity$2
}else {
return and__3822__auto____32908
}
}()) {
return o.cljs$core$ILookup$_lookup$arity$2(o, k)
}else {
var x__2383__auto____32909 = o == null ? null : o;
return function() {
var or__3824__auto____32910 = cljs.core._lookup[goog.typeOf(x__2383__auto____32909)];
if(or__3824__auto____32910) {
return or__3824__auto____32910
}else {
var or__3824__auto____32911 = cljs.core._lookup["_"];
if(or__3824__auto____32911) {
return or__3824__auto____32911
}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____32912 = o;
if(and__3822__auto____32912) {
return o.cljs$core$ILookup$_lookup$arity$3
}else {
return and__3822__auto____32912
}
}()) {
return o.cljs$core$ILookup$_lookup$arity$3(o, k, not_found)
}else {
var x__2383__auto____32913 = o == null ? null : o;
return function() {
var or__3824__auto____32914 = cljs.core._lookup[goog.typeOf(x__2383__auto____32913)];
if(or__3824__auto____32914) {
return or__3824__auto____32914
}else {
var or__3824__auto____32915 = cljs.core._lookup["_"];
if(or__3824__auto____32915) {
return or__3824__auto____32915
}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____32920 = coll;
if(and__3822__auto____32920) {
return coll.cljs$core$IAssociative$_contains_key_QMARK_$arity$2
}else {
return and__3822__auto____32920
}
}()) {
return coll.cljs$core$IAssociative$_contains_key_QMARK_$arity$2(coll, k)
}else {
var x__2383__auto____32921 = coll == null ? null : coll;
return function() {
var or__3824__auto____32922 = cljs.core._contains_key_QMARK_[goog.typeOf(x__2383__auto____32921)];
if(or__3824__auto____32922) {
return or__3824__auto____32922
}else {
var or__3824__auto____32923 = cljs.core._contains_key_QMARK_["_"];
if(or__3824__auto____32923) {
return or__3824__auto____32923
}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____32928 = coll;
if(and__3822__auto____32928) {
return coll.cljs$core$IAssociative$_assoc$arity$3
}else {
return and__3822__auto____32928
}
}()) {
return coll.cljs$core$IAssociative$_assoc$arity$3(coll, k, v)
}else {
var x__2383__auto____32929 = coll == null ? null : coll;
return function() {
var or__3824__auto____32930 = cljs.core._assoc[goog.typeOf(x__2383__auto____32929)];
if(or__3824__auto____32930) {
return or__3824__auto____32930
}else {
var or__3824__auto____32931 = cljs.core._assoc["_"];
if(or__3824__auto____32931) {
return or__3824__auto____32931
}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____32936 = coll;
if(and__3822__auto____32936) {
return coll.cljs$core$IMap$_dissoc$arity$2
}else {
return and__3822__auto____32936
}
}()) {
return coll.cljs$core$IMap$_dissoc$arity$2(coll, k)
}else {
var x__2383__auto____32937 = coll == null ? null : coll;
return function() {
var or__3824__auto____32938 = cljs.core._dissoc[goog.typeOf(x__2383__auto____32937)];
if(or__3824__auto____32938) {
return or__3824__auto____32938
}else {
var or__3824__auto____32939 = cljs.core._dissoc["_"];
if(or__3824__auto____32939) {
return or__3824__auto____32939
}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____32944 = coll;
if(and__3822__auto____32944) {
return coll.cljs$core$IMapEntry$_key$arity$1
}else {
return and__3822__auto____32944
}
}()) {
return coll.cljs$core$IMapEntry$_key$arity$1(coll)
}else {
var x__2383__auto____32945 = coll == null ? null : coll;
return function() {
var or__3824__auto____32946 = cljs.core._key[goog.typeOf(x__2383__auto____32945)];
if(or__3824__auto____32946) {
return or__3824__auto____32946
}else {
var or__3824__auto____32947 = cljs.core._key["_"];
if(or__3824__auto____32947) {
return or__3824__auto____32947
}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____32952 = coll;
if(and__3822__auto____32952) {
return coll.cljs$core$IMapEntry$_val$arity$1
}else {
return and__3822__auto____32952
}
}()) {
return coll.cljs$core$IMapEntry$_val$arity$1(coll)
}else {
var x__2383__auto____32953 = coll == null ? null : coll;
return function() {
var or__3824__auto____32954 = cljs.core._val[goog.typeOf(x__2383__auto____32953)];
if(or__3824__auto____32954) {
return or__3824__auto____32954
}else {
var or__3824__auto____32955 = cljs.core._val["_"];
if(or__3824__auto____32955) {
return or__3824__auto____32955
}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____32960 = coll;
if(and__3822__auto____32960) {
return coll.cljs$core$ISet$_disjoin$arity$2
}else {
return and__3822__auto____32960
}
}()) {
return coll.cljs$core$ISet$_disjoin$arity$2(coll, v)
}else {
var x__2383__auto____32961 = coll == null ? null : coll;
return function() {
var or__3824__auto____32962 = cljs.core._disjoin[goog.typeOf(x__2383__auto____32961)];
if(or__3824__auto____32962) {
return or__3824__auto____32962
}else {
var or__3824__auto____32963 = cljs.core._disjoin["_"];
if(or__3824__auto____32963) {
return or__3824__auto____32963
}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____32968 = coll;
if(and__3822__auto____32968) {
return coll.cljs$core$IStack$_peek$arity$1
}else {
return and__3822__auto____32968
}
}()) {
return coll.cljs$core$IStack$_peek$arity$1(coll)
}else {
var x__2383__auto____32969 = coll == null ? null : coll;
return function() {
var or__3824__auto____32970 = cljs.core._peek[goog.typeOf(x__2383__auto____32969)];
if(or__3824__auto____32970) {
return or__3824__auto____32970
}else {
var or__3824__auto____32971 = cljs.core._peek["_"];
if(or__3824__auto____32971) {
return or__3824__auto____32971
}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____32976 = coll;
if(and__3822__auto____32976) {
return coll.cljs$core$IStack$_pop$arity$1
}else {
return and__3822__auto____32976
}
}()) {
return coll.cljs$core$IStack$_pop$arity$1(coll)
}else {
var x__2383__auto____32977 = coll == null ? null : coll;
return function() {
var or__3824__auto____32978 = cljs.core._pop[goog.typeOf(x__2383__auto____32977)];
if(or__3824__auto____32978) {
return or__3824__auto____32978
}else {
var or__3824__auto____32979 = cljs.core._pop["_"];
if(or__3824__auto____32979) {
return or__3824__auto____32979
}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____32984 = coll;
if(and__3822__auto____32984) {
return coll.cljs$core$IVector$_assoc_n$arity$3
}else {
return and__3822__auto____32984
}
}()) {
return coll.cljs$core$IVector$_assoc_n$arity$3(coll, n, val)
}else {
var x__2383__auto____32985 = coll == null ? null : coll;
return function() {
var or__3824__auto____32986 = cljs.core._assoc_n[goog.typeOf(x__2383__auto____32985)];
if(or__3824__auto____32986) {
return or__3824__auto____32986
}else {
var or__3824__auto____32987 = cljs.core._assoc_n["_"];
if(or__3824__auto____32987) {
return or__3824__auto____32987
}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____32992 = o;
if(and__3822__auto____32992) {
return o.cljs$core$IDeref$_deref$arity$1
}else {
return and__3822__auto____32992
}
}()) {
return o.cljs$core$IDeref$_deref$arity$1(o)
}else {
var x__2383__auto____32993 = o == null ? null : o;
return function() {
var or__3824__auto____32994 = cljs.core._deref[goog.typeOf(x__2383__auto____32993)];
if(or__3824__auto____32994) {
return or__3824__auto____32994
}else {
var or__3824__auto____32995 = cljs.core._deref["_"];
if(or__3824__auto____32995) {
return or__3824__auto____32995
}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____33000 = o;
if(and__3822__auto____33000) {
return o.cljs$core$IDerefWithTimeout$_deref_with_timeout$arity$3
}else {
return and__3822__auto____33000
}
}()) {
return o.cljs$core$IDerefWithTimeout$_deref_with_timeout$arity$3(o, msec, timeout_val)
}else {
var x__2383__auto____33001 = o == null ? null : o;
return function() {
var or__3824__auto____33002 = cljs.core._deref_with_timeout[goog.typeOf(x__2383__auto____33001)];
if(or__3824__auto____33002) {
return or__3824__auto____33002
}else {
var or__3824__auto____33003 = cljs.core._deref_with_timeout["_"];
if(or__3824__auto____33003) {
return or__3824__auto____33003
}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____33008 = o;
if(and__3822__auto____33008) {
return o.cljs$core$IMeta$_meta$arity$1
}else {
return and__3822__auto____33008
}
}()) {
return o.cljs$core$IMeta$_meta$arity$1(o)
}else {
var x__2383__auto____33009 = o == null ? null : o;
return function() {
var or__3824__auto____33010 = cljs.core._meta[goog.typeOf(x__2383__auto____33009)];
if(or__3824__auto____33010) {
return or__3824__auto____33010
}else {
var or__3824__auto____33011 = cljs.core._meta["_"];
if(or__3824__auto____33011) {
return or__3824__auto____33011
}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____33016 = o;
if(and__3822__auto____33016) {
return o.cljs$core$IWithMeta$_with_meta$arity$2
}else {
return and__3822__auto____33016
}
}()) {
return o.cljs$core$IWithMeta$_with_meta$arity$2(o, meta)
}else {
var x__2383__auto____33017 = o == null ? null : o;
return function() {
var or__3824__auto____33018 = cljs.core._with_meta[goog.typeOf(x__2383__auto____33017)];
if(or__3824__auto____33018) {
return or__3824__auto____33018
}else {
var or__3824__auto____33019 = cljs.core._with_meta["_"];
if(or__3824__auto____33019) {
return or__3824__auto____33019
}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____33028 = coll;
if(and__3822__auto____33028) {
return coll.cljs$core$IReduce$_reduce$arity$2
}else {
return and__3822__auto____33028
}
}()) {
return coll.cljs$core$IReduce$_reduce$arity$2(coll, f)
}else {
var x__2383__auto____33029 = coll == null ? null : coll;
return function() {
var or__3824__auto____33030 = cljs.core._reduce[goog.typeOf(x__2383__auto____33029)];
if(or__3824__auto____33030) {
return or__3824__auto____33030
}else {
var or__3824__auto____33031 = cljs.core._reduce["_"];
if(or__3824__auto____33031) {
return or__3824__auto____33031
}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____33032 = coll;
if(and__3822__auto____33032) {
return coll.cljs$core$IReduce$_reduce$arity$3
}else {
return and__3822__auto____33032
}
}()) {
return coll.cljs$core$IReduce$_reduce$arity$3(coll, f, start)
}else {
var x__2383__auto____33033 = coll == null ? null : coll;
return function() {
var or__3824__auto____33034 = cljs.core._reduce[goog.typeOf(x__2383__auto____33033)];
if(or__3824__auto____33034) {
return or__3824__auto____33034
}else {
var or__3824__auto____33035 = cljs.core._reduce["_"];
if(or__3824__auto____33035) {
return or__3824__auto____33035
}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____33040 = coll;
if(and__3822__auto____33040) {
return coll.cljs$core$IKVReduce$_kv_reduce$arity$3
}else {
return and__3822__auto____33040
}
}()) {
return coll.cljs$core$IKVReduce$_kv_reduce$arity$3(coll, f, init)
}else {
var x__2383__auto____33041 = coll == null ? null : coll;
return function() {
var or__3824__auto____33042 = cljs.core._kv_reduce[goog.typeOf(x__2383__auto____33041)];
if(or__3824__auto____33042) {
return or__3824__auto____33042
}else {
var or__3824__auto____33043 = cljs.core._kv_reduce["_"];
if(or__3824__auto____33043) {
return or__3824__auto____33043
}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____33048 = o;
if(and__3822__auto____33048) {
return o.cljs$core$IEquiv$_equiv$arity$2
}else {
return and__3822__auto____33048
}
}()) {
return o.cljs$core$IEquiv$_equiv$arity$2(o, other)
}else {
var x__2383__auto____33049 = o == null ? null : o;
return function() {
var or__3824__auto____33050 = cljs.core._equiv[goog.typeOf(x__2383__auto____33049)];
if(or__3824__auto____33050) {
return or__3824__auto____33050
}else {
var or__3824__auto____33051 = cljs.core._equiv["_"];
if(or__3824__auto____33051) {
return or__3824__auto____33051
}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____33056 = o;
if(and__3822__auto____33056) {
return o.cljs$core$IHash$_hash$arity$1
}else {
return and__3822__auto____33056
}
}()) {
return o.cljs$core$IHash$_hash$arity$1(o)
}else {
var x__2383__auto____33057 = o == null ? null : o;
return function() {
var or__3824__auto____33058 = cljs.core._hash[goog.typeOf(x__2383__auto____33057)];
if(or__3824__auto____33058) {
return or__3824__auto____33058
}else {
var or__3824__auto____33059 = cljs.core._hash["_"];
if(or__3824__auto____33059) {
return or__3824__auto____33059
}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____33064 = o;
if(and__3822__auto____33064) {
return o.cljs$core$ISeqable$_seq$arity$1
}else {
return and__3822__auto____33064
}
}()) {
return o.cljs$core$ISeqable$_seq$arity$1(o)
}else {
var x__2383__auto____33065 = o == null ? null : o;
return function() {
var or__3824__auto____33066 = cljs.core._seq[goog.typeOf(x__2383__auto____33065)];
if(or__3824__auto____33066) {
return or__3824__auto____33066
}else {
var or__3824__auto____33067 = cljs.core._seq["_"];
if(or__3824__auto____33067) {
return or__3824__auto____33067
}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____33072 = coll;
if(and__3822__auto____33072) {
return coll.cljs$core$IReversible$_rseq$arity$1
}else {
return and__3822__auto____33072
}
}()) {
return coll.cljs$core$IReversible$_rseq$arity$1(coll)
}else {
var x__2383__auto____33073 = coll == null ? null : coll;
return function() {
var or__3824__auto____33074 = cljs.core._rseq[goog.typeOf(x__2383__auto____33073)];
if(or__3824__auto____33074) {
return or__3824__auto____33074
}else {
var or__3824__auto____33075 = cljs.core._rseq["_"];
if(or__3824__auto____33075) {
return or__3824__auto____33075
}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____33080 = coll;
if(and__3822__auto____33080) {
return coll.cljs$core$ISorted$_sorted_seq$arity$2
}else {
return and__3822__auto____33080
}
}()) {
return coll.cljs$core$ISorted$_sorted_seq$arity$2(coll, ascending_QMARK_)
}else {
var x__2383__auto____33081 = coll == null ? null : coll;
return function() {
var or__3824__auto____33082 = cljs.core._sorted_seq[goog.typeOf(x__2383__auto____33081)];
if(or__3824__auto____33082) {
return or__3824__auto____33082
}else {
var or__3824__auto____33083 = cljs.core._sorted_seq["_"];
if(or__3824__auto____33083) {
return or__3824__auto____33083
}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____33088 = coll;
if(and__3822__auto____33088) {
return coll.cljs$core$ISorted$_sorted_seq_from$arity$3
}else {
return and__3822__auto____33088
}
}()) {
return coll.cljs$core$ISorted$_sorted_seq_from$arity$3(coll, k, ascending_QMARK_)
}else {
var x__2383__auto____33089 = coll == null ? null : coll;
return function() {
var or__3824__auto____33090 = cljs.core._sorted_seq_from[goog.typeOf(x__2383__auto____33089)];
if(or__3824__auto____33090) {
return or__3824__auto____33090
}else {
var or__3824__auto____33091 = cljs.core._sorted_seq_from["_"];
if(or__3824__auto____33091) {
return or__3824__auto____33091
}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____33096 = coll;
if(and__3822__auto____33096) {
return coll.cljs$core$ISorted$_entry_key$arity$2
}else {
return and__3822__auto____33096
}
}()) {
return coll.cljs$core$ISorted$_entry_key$arity$2(coll, entry)
}else {
var x__2383__auto____33097 = coll == null ? null : coll;
return function() {
var or__3824__auto____33098 = cljs.core._entry_key[goog.typeOf(x__2383__auto____33097)];
if(or__3824__auto____33098) {
return or__3824__auto____33098
}else {
var or__3824__auto____33099 = cljs.core._entry_key["_"];
if(or__3824__auto____33099) {
return or__3824__auto____33099
}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____33104 = coll;
if(and__3822__auto____33104) {
return coll.cljs$core$ISorted$_comparator$arity$1
}else {
return and__3822__auto____33104
}
}()) {
return coll.cljs$core$ISorted$_comparator$arity$1(coll)
}else {
var x__2383__auto____33105 = coll == null ? null : coll;
return function() {
var or__3824__auto____33106 = cljs.core._comparator[goog.typeOf(x__2383__auto____33105)];
if(or__3824__auto____33106) {
return or__3824__auto____33106
}else {
var or__3824__auto____33107 = cljs.core._comparator["_"];
if(or__3824__auto____33107) {
return or__3824__auto____33107
}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____33112 = o;
if(and__3822__auto____33112) {
return o.cljs$core$IPrintable$_pr_seq$arity$2
}else {
return and__3822__auto____33112
}
}()) {
return o.cljs$core$IPrintable$_pr_seq$arity$2(o, opts)
}else {
var x__2383__auto____33113 = o == null ? null : o;
return function() {
var or__3824__auto____33114 = cljs.core._pr_seq[goog.typeOf(x__2383__auto____33113)];
if(or__3824__auto____33114) {
return or__3824__auto____33114
}else {
var or__3824__auto____33115 = cljs.core._pr_seq["_"];
if(or__3824__auto____33115) {
return or__3824__auto____33115
}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____33120 = d;
if(and__3822__auto____33120) {
return d.cljs$core$IPending$_realized_QMARK_$arity$1
}else {
return and__3822__auto____33120
}
}()) {
return d.cljs$core$IPending$_realized_QMARK_$arity$1(d)
}else {
var x__2383__auto____33121 = d == null ? null : d;
return function() {
var or__3824__auto____33122 = cljs.core._realized_QMARK_[goog.typeOf(x__2383__auto____33121)];
if(or__3824__auto____33122) {
return or__3824__auto____33122
}else {
var or__3824__auto____33123 = cljs.core._realized_QMARK_["_"];
if(or__3824__auto____33123) {
return or__3824__auto____33123
}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____33128 = this$;
if(and__3822__auto____33128) {
return this$.cljs$core$IWatchable$_notify_watches$arity$3
}else {
return and__3822__auto____33128
}
}()) {
return this$.cljs$core$IWatchable$_notify_watches$arity$3(this$, oldval, newval)
}else {
var x__2383__auto____33129 = this$ == null ? null : this$;
return function() {
var or__3824__auto____33130 = cljs.core._notify_watches[goog.typeOf(x__2383__auto____33129)];
if(or__3824__auto____33130) {
return or__3824__auto____33130
}else {
var or__3824__auto____33131 = cljs.core._notify_watches["_"];
if(or__3824__auto____33131) {
return or__3824__auto____33131
}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____33136 = this$;
if(and__3822__auto____33136) {
return this$.cljs$core$IWatchable$_add_watch$arity$3
}else {
return and__3822__auto____33136
}
}()) {
return this$.cljs$core$IWatchable$_add_watch$arity$3(this$, key, f)
}else {
var x__2383__auto____33137 = this$ == null ? null : this$;
return function() {
var or__3824__auto____33138 = cljs.core._add_watch[goog.typeOf(x__2383__auto____33137)];
if(or__3824__auto____33138) {
return or__3824__auto____33138
}else {
var or__3824__auto____33139 = cljs.core._add_watch["_"];
if(or__3824__auto____33139) {
return or__3824__auto____33139
}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____33144 = this$;
if(and__3822__auto____33144) {
return this$.cljs$core$IWatchable$_remove_watch$arity$2
}else {
return and__3822__auto____33144
}
}()) {
return this$.cljs$core$IWatchable$_remove_watch$arity$2(this$, key)
}else {
var x__2383__auto____33145 = this$ == null ? null : this$;
return function() {
var or__3824__auto____33146 = cljs.core._remove_watch[goog.typeOf(x__2383__auto____33145)];
if(or__3824__auto____33146) {
return or__3824__auto____33146
}else {
var or__3824__auto____33147 = cljs.core._remove_watch["_"];
if(or__3824__auto____33147) {
return or__3824__auto____33147
}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____33152 = coll;
if(and__3822__auto____33152) {
return coll.cljs$core$IEditableCollection$_as_transient$arity$1
}else {
return and__3822__auto____33152
}
}()) {
return coll.cljs$core$IEditableCollection$_as_transient$arity$1(coll)
}else {
var x__2383__auto____33153 = coll == null ? null : coll;
return function() {
var or__3824__auto____33154 = cljs.core._as_transient[goog.typeOf(x__2383__auto____33153)];
if(or__3824__auto____33154) {
return or__3824__auto____33154
}else {
var or__3824__auto____33155 = cljs.core._as_transient["_"];
if(or__3824__auto____33155) {
return or__3824__auto____33155
}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____33160 = tcoll;
if(and__3822__auto____33160) {
return tcoll.cljs$core$ITransientCollection$_conj_BANG_$arity$2
}else {
return and__3822__auto____33160
}
}()) {
return tcoll.cljs$core$ITransientCollection$_conj_BANG_$arity$2(tcoll, val)
}else {
var x__2383__auto____33161 = tcoll == null ? null : tcoll;
return function() {
var or__3824__auto____33162 = cljs.core._conj_BANG_[goog.typeOf(x__2383__auto____33161)];
if(or__3824__auto____33162) {
return or__3824__auto____33162
}else {
var or__3824__auto____33163 = cljs.core._conj_BANG_["_"];
if(or__3824__auto____33163) {
return or__3824__auto____33163
}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____33168 = tcoll;
if(and__3822__auto____33168) {
return tcoll.cljs$core$ITransientCollection$_persistent_BANG_$arity$1
}else {
return and__3822__auto____33168
}
}()) {
return tcoll.cljs$core$ITransientCollection$_persistent_BANG_$arity$1(tcoll)
}else {
var x__2383__auto____33169 = tcoll == null ? null : tcoll;
return function() {
var or__3824__auto____33170 = cljs.core._persistent_BANG_[goog.typeOf(x__2383__auto____33169)];
if(or__3824__auto____33170) {
return or__3824__auto____33170
}else {
var or__3824__auto____33171 = cljs.core._persistent_BANG_["_"];
if(or__3824__auto____33171) {
return or__3824__auto____33171
}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____33176 = tcoll;
if(and__3822__auto____33176) {
return tcoll.cljs$core$ITransientAssociative$_assoc_BANG_$arity$3
}else {
return and__3822__auto____33176
}
}()) {
return tcoll.cljs$core$ITransientAssociative$_assoc_BANG_$arity$3(tcoll, key, val)
}else {
var x__2383__auto____33177 = tcoll == null ? null : tcoll;
return function() {
var or__3824__auto____33178 = cljs.core._assoc_BANG_[goog.typeOf(x__2383__auto____33177)];
if(or__3824__auto____33178) {
return or__3824__auto____33178
}else {
var or__3824__auto____33179 = cljs.core._assoc_BANG_["_"];
if(or__3824__auto____33179) {
return or__3824__auto____33179
}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____33184 = tcoll;
if(and__3822__auto____33184) {
return tcoll.cljs$core$ITransientMap$_dissoc_BANG_$arity$2
}else {
return and__3822__auto____33184
}
}()) {
return tcoll.cljs$core$ITransientMap$_dissoc_BANG_$arity$2(tcoll, key)
}else {
var x__2383__auto____33185 = tcoll == null ? null : tcoll;
return function() {
var or__3824__auto____33186 = cljs.core._dissoc_BANG_[goog.typeOf(x__2383__auto____33185)];
if(or__3824__auto____33186) {
return or__3824__auto____33186
}else {
var or__3824__auto____33187 = cljs.core._dissoc_BANG_["_"];
if(or__3824__auto____33187) {
return or__3824__auto____33187
}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____33192 = tcoll;
if(and__3822__auto____33192) {
return tcoll.cljs$core$ITransientVector$_assoc_n_BANG_$arity$3
}else {
return and__3822__auto____33192
}
}()) {
return tcoll.cljs$core$ITransientVector$_assoc_n_BANG_$arity$3(tcoll, n, val)
}else {
var x__2383__auto____33193 = tcoll == null ? null : tcoll;
return function() {
var or__3824__auto____33194 = cljs.core._assoc_n_BANG_[goog.typeOf(x__2383__auto____33193)];
if(or__3824__auto____33194) {
return or__3824__auto____33194
}else {
var or__3824__auto____33195 = cljs.core._assoc_n_BANG_["_"];
if(or__3824__auto____33195) {
return or__3824__auto____33195
}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____33200 = tcoll;
if(and__3822__auto____33200) {
return tcoll.cljs$core$ITransientVector$_pop_BANG_$arity$1
}else {
return and__3822__auto____33200
}
}()) {
return tcoll.cljs$core$ITransientVector$_pop_BANG_$arity$1(tcoll)
}else {
var x__2383__auto____33201 = tcoll == null ? null : tcoll;
return function() {
var or__3824__auto____33202 = cljs.core._pop_BANG_[goog.typeOf(x__2383__auto____33201)];
if(or__3824__auto____33202) {
return or__3824__auto____33202
}else {
var or__3824__auto____33203 = cljs.core._pop_BANG_["_"];
if(or__3824__auto____33203) {
return or__3824__auto____33203
}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____33208 = tcoll;
if(and__3822__auto____33208) {
return tcoll.cljs$core$ITransientSet$_disjoin_BANG_$arity$2
}else {
return and__3822__auto____33208
}
}()) {
return tcoll.cljs$core$ITransientSet$_disjoin_BANG_$arity$2(tcoll, v)
}else {
var x__2383__auto____33209 = tcoll == null ? null : tcoll;
return function() {
var or__3824__auto____33210 = cljs.core._disjoin_BANG_[goog.typeOf(x__2383__auto____33209)];
if(or__3824__auto____33210) {
return or__3824__auto____33210
}else {
var or__3824__auto____33211 = cljs.core._disjoin_BANG_["_"];
if(or__3824__auto____33211) {
return or__3824__auto____33211
}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____33216 = x;
if(and__3822__auto____33216) {
return x.cljs$core$IComparable$_compare$arity$2
}else {
return and__3822__auto____33216
}
}()) {
return x.cljs$core$IComparable$_compare$arity$2(x, y)
}else {
var x__2383__auto____33217 = x == null ? null : x;
return function() {
var or__3824__auto____33218 = cljs.core._compare[goog.typeOf(x__2383__auto____33217)];
if(or__3824__auto____33218) {
return or__3824__auto____33218
}else {
var or__3824__auto____33219 = cljs.core._compare["_"];
if(or__3824__auto____33219) {
return or__3824__auto____33219
}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____33224 = coll;
if(and__3822__auto____33224) {
return coll.cljs$core$IChunk$_drop_first$arity$1
}else {
return and__3822__auto____33224
}
}()) {
return coll.cljs$core$IChunk$_drop_first$arity$1(coll)
}else {
var x__2383__auto____33225 = coll == null ? null : coll;
return function() {
var or__3824__auto____33226 = cljs.core._drop_first[goog.typeOf(x__2383__auto____33225)];
if(or__3824__auto____33226) {
return or__3824__auto____33226
}else {
var or__3824__auto____33227 = cljs.core._drop_first["_"];
if(or__3824__auto____33227) {
return or__3824__auto____33227
}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____33232 = coll;
if(and__3822__auto____33232) {
return coll.cljs$core$IChunkedSeq$_chunked_first$arity$1
}else {
return and__3822__auto____33232
}
}()) {
return coll.cljs$core$IChunkedSeq$_chunked_first$arity$1(coll)
}else {
var x__2383__auto____33233 = coll == null ? null : coll;
return function() {
var or__3824__auto____33234 = cljs.core._chunked_first[goog.typeOf(x__2383__auto____33233)];
if(or__3824__auto____33234) {
return or__3824__auto____33234
}else {
var or__3824__auto____33235 = cljs.core._chunked_first["_"];
if(or__3824__auto____33235) {
return or__3824__auto____33235
}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____33240 = coll;
if(and__3822__auto____33240) {
return coll.cljs$core$IChunkedSeq$_chunked_rest$arity$1
}else {
return and__3822__auto____33240
}
}()) {
return coll.cljs$core$IChunkedSeq$_chunked_rest$arity$1(coll)
}else {
var x__2383__auto____33241 = coll == null ? null : coll;
return function() {
var or__3824__auto____33242 = cljs.core._chunked_rest[goog.typeOf(x__2383__auto____33241)];
if(or__3824__auto____33242) {
return or__3824__auto____33242
}else {
var or__3824__auto____33243 = cljs.core._chunked_rest["_"];
if(or__3824__auto____33243) {
return or__3824__auto____33243
}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____33248 = coll;
if(and__3822__auto____33248) {
return coll.cljs$core$IChunkedNext$_chunked_next$arity$1
}else {
return and__3822__auto____33248
}
}()) {
return coll.cljs$core$IChunkedNext$_chunked_next$arity$1(coll)
}else {
var x__2383__auto____33249 = coll == null ? null : coll;
return function() {
var or__3824__auto____33250 = cljs.core._chunked_next[goog.typeOf(x__2383__auto____33249)];
if(or__3824__auto____33250) {
return or__3824__auto____33250
}else {
var or__3824__auto____33251 = cljs.core._chunked_next["_"];
if(or__3824__auto____33251) {
return or__3824__auto____33251
}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____33253 = x === y;
if(or__3824__auto____33253) {
return or__3824__auto____33253
}else {
return cljs.core._equiv.call(null, x, y)
}
};
var _EQ___3 = function() {
var G__33254__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__33255 = y;
var G__33256 = cljs.core.first.call(null, more);
var G__33257 = cljs.core.next.call(null, more);
x = G__33255;
y = G__33256;
more = G__33257;
continue
}else {
return _EQ_.call(null, y, cljs.core.first.call(null, more))
}
}else {
return false
}
break
}
};
var G__33254 = 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__33254__delegate.call(this, x, y, more)
};
G__33254.cljs$lang$maxFixedArity = 2;
G__33254.cljs$lang$applyTo = function(arglist__33258) {
var x = cljs.core.first(arglist__33258);
var y = cljs.core.first(cljs.core.next(arglist__33258));
var more = cljs.core.rest(cljs.core.next(arglist__33258));
return G__33254__delegate(x, y, more)
};
G__33254.cljs$lang$arity$variadic = G__33254__delegate;
return G__33254
}();
_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__33259 = null;
var G__33259__2 = function(o, k) {
return null
};
var G__33259__3 = function(o, k, not_found) {
return not_found
};
G__33259 = function(o, k, not_found) {
switch(arguments.length) {
case 2:
return G__33259__2.call(this, o, k);
case 3:
return G__33259__3.call(this, o, k, not_found)
}
throw"Invalid arity: " + arguments.length;
};
return G__33259
}();
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__33260 = null;
var G__33260__2 = function(_, f) {
return f.call(null)
};
var G__33260__3 = function(_, f, start) {
return start
};
G__33260 = function(_, f, start) {
switch(arguments.length) {
case 2:
return G__33260__2.call(this, _, f);
case 3:
return G__33260__3.call(this, _, f, start)
}
throw"Invalid arity: " + arguments.length;
};
return G__33260
}();
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__33261 = null;
var G__33261__2 = function(_, n) {
return null
};
var G__33261__3 = function(_, n, not_found) {
return not_found
};
G__33261 = function(_, n, not_found) {
switch(arguments.length) {
case 2:
return G__33261__2.call(this, _, n);
case 3:
return G__33261__3.call(this, _, n, not_found)
}
throw"Invalid arity: " + arguments.length;
};
return G__33261
}();
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____33262 = cljs.core.instance_QMARK_.call(null, Date, other);
if(and__3822__auto____33262) {
return o.toString() === other.toString()
}else {
return and__3822__auto____33262
}
};
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__33275 = cljs.core._count.call(null, cicoll);
if(cnt__33275 === 0) {
return f.call(null)
}else {
var val__33276 = cljs.core._nth.call(null, cicoll, 0);
var n__33277 = 1;
while(true) {
if(n__33277 < cnt__33275) {
var nval__33278 = f.call(null, val__33276, cljs.core._nth.call(null, cicoll, n__33277));
if(cljs.core.reduced_QMARK_.call(null, nval__33278)) {
return cljs.core.deref.call(null, nval__33278)
}else {
var G__33287 = nval__33278;
var G__33288 = n__33277 + 1;
val__33276 = G__33287;
n__33277 = G__33288;
continue
}
}else {
return val__33276
}
break
}
}
};
var ci_reduce__3 = function(cicoll, f, val) {
var cnt__33279 = cljs.core._count.call(null, cicoll);
var val__33280 = val;
var n__33281 = 0;
while(true) {
if(n__33281 < cnt__33279) {
var nval__33282 = f.call(null, val__33280, cljs.core._nth.call(null, cicoll, n__33281));
if(cljs.core.reduced_QMARK_.call(null, nval__33282)) {
return cljs.core.deref.call(null, nval__33282)
}else {
var G__33289 = nval__33282;
var G__33290 = n__33281 + 1;
val__33280 = G__33289;
n__33281 = G__33290;
continue
}
}else {
return val__33280
}
break
}
};
var ci_reduce__4 = function(cicoll, f, val, idx) {
var cnt__33283 = cljs.core._count.call(null, cicoll);
var val__33284 = val;
var n__33285 = idx;
while(true) {
if(n__33285 < cnt__33283) {
var nval__33286 = f.call(null, val__33284, cljs.core._nth.call(null, cicoll, n__33285));
if(cljs.core.reduced_QMARK_.call(null, nval__33286)) {
return cljs.core.deref.call(null, nval__33286)
}else {
var G__33291 = nval__33286;
var G__33292 = n__33285 + 1;
val__33284 = G__33291;
n__33285 = G__33292;
continue
}
}else {
return val__33284
}
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__33305 = arr.length;
if(arr.length === 0) {
return f.call(null)
}else {
var val__33306 = arr[0];
var n__33307 = 1;
while(true) {
if(n__33307 < cnt__33305) {
var nval__33308 = f.call(null, val__33306, arr[n__33307]);
if(cljs.core.reduced_QMARK_.call(null, nval__33308)) {
return cljs.core.deref.call(null, nval__33308)
}else {
var G__33317 = nval__33308;
var G__33318 = n__33307 + 1;
val__33306 = G__33317;
n__33307 = G__33318;
continue
}
}else {
return val__33306
}
break
}
}
};
var array_reduce__3 = function(arr, f, val) {
var cnt__33309 = arr.length;
var val__33310 = val;
var n__33311 = 0;
while(true) {
if(n__33311 < cnt__33309) {
var nval__33312 = f.call(null, val__33310, arr[n__33311]);
if(cljs.core.reduced_QMARK_.call(null, nval__33312)) {
return cljs.core.deref.call(null, nval__33312)
}else {
var G__33319 = nval__33312;
var G__33320 = n__33311 + 1;
val__33310 = G__33319;
n__33311 = G__33320;
continue
}
}else {
return val__33310
}
break
}
};
var array_reduce__4 = function(arr, f, val, idx) {
var cnt__33313 = arr.length;
var val__33314 = val;
var n__33315 = idx;
while(true) {
if(n__33315 < cnt__33313) {
var nval__33316 = f.call(null, val__33314, arr[n__33315]);
if(cljs.core.reduced_QMARK_.call(null, nval__33316)) {
return cljs.core.deref.call(null, nval__33316)
}else {
var G__33321 = nval__33316;
var G__33322 = n__33315 + 1;
val__33314 = G__33321;
n__33315 = G__33322;
continue
}
}else {
return val__33314
}
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__2329__auto__) {
return cljs.core.list.call(null, "cljs.core/IndexedSeq")
};
cljs.core.IndexedSeq.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var this__33323 = this;
return cljs.core.hash_coll.call(null, coll)
};
cljs.core.IndexedSeq.prototype.cljs$core$INext$_next$arity$1 = function(_) {
var this__33324 = this;
if(this__33324.i + 1 < this__33324.a.length) {
return new cljs.core.IndexedSeq(this__33324.a, this__33324.i + 1)
}else {
return null
}
};
cljs.core.IndexedSeq.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var this__33325 = this;
return cljs.core.cons.call(null, o, coll)
};
cljs.core.IndexedSeq.prototype.cljs$core$IReversible$_rseq$arity$1 = function(coll) {
var this__33326 = this;
var c__33327 = coll.cljs$core$ICounted$_count$arity$1(coll);
if(c__33327 > 0) {
return new cljs.core.RSeq(coll, c__33327 - 1, null)
}else {
return cljs.core.List.EMPTY
}
};
cljs.core.IndexedSeq.prototype.toString = function() {
var this__33328 = this;
var this__33329 = this;
return cljs.core.pr_str.call(null, this__33329)
};
cljs.core.IndexedSeq.prototype.cljs$core$IReduce$_reduce$arity$2 = function(coll, f) {
var this__33330 = this;
if(cljs.core.counted_QMARK_.call(null, this__33330.a)) {
return cljs.core.ci_reduce.call(null, this__33330.a, f, this__33330.a[this__33330.i], this__33330.i + 1)
}else {
return cljs.core.ci_reduce.call(null, coll, f, this__33330.a[this__33330.i], 0)
}
};
cljs.core.IndexedSeq.prototype.cljs$core$IReduce$_reduce$arity$3 = function(coll, f, start) {
var this__33331 = this;
if(cljs.core.counted_QMARK_.call(null, this__33331.a)) {
return cljs.core.ci_reduce.call(null, this__33331.a, f, start, this__33331.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__33332 = this;
return this$
};
cljs.core.IndexedSeq.prototype.cljs$core$ICounted$_count$arity$1 = function(_) {
var this__33333 = this;
return this__33333.a.length - this__33333.i
};
cljs.core.IndexedSeq.prototype.cljs$core$ISeq$_first$arity$1 = function(_) {
var this__33334 = this;
return this__33334.a[this__33334.i]
};
cljs.core.IndexedSeq.prototype.cljs$core$ISeq$_rest$arity$1 = function(_) {
var this__33335 = this;
if(this__33335.i + 1 < this__33335.a.length) {
return new cljs.core.IndexedSeq(this__33335.a, this__33335.i + 1)
}else {
return cljs.core.list.call(null)
}
};
cljs.core.IndexedSeq.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var this__33336 = 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__33337 = this;
var i__33338 = n + this__33337.i;
if(i__33338 < this__33337.a.length) {
return this__33337.a[i__33338]
}else {
return null
}
};
cljs.core.IndexedSeq.prototype.cljs$core$IIndexed$_nth$arity$3 = function(coll, n, not_found) {
var this__33339 = this;
var i__33340 = n + this__33339.i;
if(i__33340 < this__33339.a.length) {
return this__33339.a[i__33340]
}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__33341 = null;
var G__33341__2 = function(array, f) {
return cljs.core.ci_reduce.call(null, array, f)
};
var G__33341__3 = function(array, f, start) {
return cljs.core.ci_reduce.call(null, array, f, start)
};
G__33341 = function(array, f, start) {
switch(arguments.length) {
case 2:
return G__33341__2.call(this, array, f);
case 3:
return G__33341__3.call(this, array, f, start)
}
throw"Invalid arity: " + arguments.length;
};
return G__33341
}();
cljs.core.ILookup["array"] = true;
cljs.core._lookup["array"] = function() {
var G__33342 = null;
var G__33342__2 = function(array, k) {
return array[k]
};
var G__33342__3 = function(array, k, not_found) {
return cljs.core._nth.call(null, array, k, not_found)
};
G__33342 = function(array, k, not_found) {
switch(arguments.length) {
case 2:
return G__33342__2.call(this, array, k);
case 3:
return G__33342__3.call(this, array, k, not_found)
}
throw"Invalid arity: " + arguments.length;
};
return G__33342
}();
cljs.core.IIndexed["array"] = true;
cljs.core._nth["array"] = function() {
var G__33343 = null;
var G__33343__2 = function(array, n) {
if(n < array.length) {
return array[n]
}else {
return null
}
};
var G__33343__3 = function(array, n, not_found) {
if(n < array.length) {
return array[n]
}else {
return not_found
}
};
G__33343 = function(array, n, not_found) {
switch(arguments.length) {
case 2:
return G__33343__2.call(this, array, n);
case 3:
return G__33343__3.call(this, array, n, not_found)
}
throw"Invalid arity: " + arguments.length;
};
return G__33343
}();
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__2329__auto__) {
return cljs.core.list.call(null, "cljs.core/RSeq")
};
cljs.core.RSeq.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var this__33344 = this;
return cljs.core.hash_coll.call(null, coll)
};
cljs.core.RSeq.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var this__33345 = this;
return cljs.core.cons.call(null, o, coll)
};
cljs.core.RSeq.prototype.toString = function() {
var this__33346 = this;
var this__33347 = this;
return cljs.core.pr_str.call(null, this__33347)
};
cljs.core.RSeq.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var this__33348 = this;
return coll
};
cljs.core.RSeq.prototype.cljs$core$ICounted$_count$arity$1 = function(coll) {
var this__33349 = this;
return this__33349.i + 1
};
cljs.core.RSeq.prototype.cljs$core$ISeq$_first$arity$1 = function(coll) {
var this__33350 = this;
return cljs.core._nth.call(null, this__33350.ci, this__33350.i)
};
cljs.core.RSeq.prototype.cljs$core$ISeq$_rest$arity$1 = function(coll) {
var this__33351 = this;
if(this__33351.i > 0) {
return new cljs.core.RSeq(this__33351.ci, this__33351.i - 1, null)
}else {
return cljs.core.List.EMPTY
}
};
cljs.core.RSeq.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var this__33352 = 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__33353 = this;
return new cljs.core.RSeq(this__33353.ci, this__33353.i, new_meta)
};
cljs.core.RSeq.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var this__33354 = this;
return this__33354.meta
};
cljs.core.RSeq;
cljs.core.seq = function seq(coll) {
if(coll == null) {
return null
}else {
if(function() {
var G__33358__33359 = coll;
if(G__33358__33359) {
if(function() {
var or__3824__auto____33360 = G__33358__33359.cljs$lang$protocol_mask$partition0$ & 32;
if(or__3824__auto____33360) {
return or__3824__auto____33360
}else {
return G__33358__33359.cljs$core$ASeq$
}
}()) {
return true
}else {
if(!G__33358__33359.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.ASeq, G__33358__33359)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.ASeq, G__33358__33359)
}
}()) {
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__33365__33366 = coll;
if(G__33365__33366) {
if(function() {
var or__3824__auto____33367 = G__33365__33366.cljs$lang$protocol_mask$partition0$ & 64;
if(or__3824__auto____33367) {
return or__3824__auto____33367
}else {
return G__33365__33366.cljs$core$ISeq$
}
}()) {
return true
}else {
if(!G__33365__33366.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.ISeq, G__33365__33366)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.ISeq, G__33365__33366)
}
}()) {
return cljs.core._first.call(null, coll)
}else {
var s__33368 = cljs.core.seq.call(null, coll);
if(s__33368 == null) {
return null
}else {
return cljs.core._first.call(null, s__33368)
}
}
}
};
cljs.core.rest = function rest(coll) {
if(!(coll == null)) {
if(function() {
var G__33373__33374 = coll;
if(G__33373__33374) {
if(function() {
var or__3824__auto____33375 = G__33373__33374.cljs$lang$protocol_mask$partition0$ & 64;
if(or__3824__auto____33375) {
return or__3824__auto____33375
}else {
return G__33373__33374.cljs$core$ISeq$
}
}()) {
return true
}else {
if(!G__33373__33374.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.ISeq, G__33373__33374)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.ISeq, G__33373__33374)
}
}()) {
return cljs.core._rest.call(null, coll)
}else {
var s__33376 = cljs.core.seq.call(null, coll);
if(!(s__33376 == null)) {
return cljs.core._rest.call(null, s__33376)
}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__33380__33381 = coll;
if(G__33380__33381) {
if(function() {
var or__3824__auto____33382 = G__33380__33381.cljs$lang$protocol_mask$partition0$ & 128;
if(or__3824__auto____33382) {
return or__3824__auto____33382
}else {
return G__33380__33381.cljs$core$INext$
}
}()) {
return true
}else {
if(!G__33380__33381.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.INext, G__33380__33381)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.INext, G__33380__33381)
}
}()) {
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__33384 = cljs.core.next.call(null, s);
if(!(sn__33384 == null)) {
var G__33385 = sn__33384;
s = G__33385;
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__33386__delegate = function(coll, x, xs) {
while(true) {
if(cljs.core.truth_(xs)) {
var G__33387 = conj.call(null, coll, x);
var G__33388 = cljs.core.first.call(null, xs);
var G__33389 = cljs.core.next.call(null, xs);
coll = G__33387;
x = G__33388;
xs = G__33389;
continue
}else {
return conj.call(null, coll, x)
}
break
}
};
var G__33386 = 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__33386__delegate.call(this, coll, x, xs)
};
G__33386.cljs$lang$maxFixedArity = 2;
G__33386.cljs$lang$applyTo = function(arglist__33390) {
var coll = cljs.core.first(arglist__33390);
var x = cljs.core.first(cljs.core.next(arglist__33390));
var xs = cljs.core.rest(cljs.core.next(arglist__33390));
return G__33386__delegate(coll, x, xs)
};
G__33386.cljs$lang$arity$variadic = G__33386__delegate;
return G__33386
}();
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__33393 = cljs.core.seq.call(null, coll);
var acc__33394 = 0;
while(true) {
if(cljs.core.counted_QMARK_.call(null, s__33393)) {
return acc__33394 + cljs.core._count.call(null, s__33393)
}else {
var G__33395 = cljs.core.next.call(null, s__33393);
var G__33396 = acc__33394 + 1;
s__33393 = G__33395;
acc__33394 = G__33396;
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__33403__33404 = coll;
if(G__33403__33404) {
if(function() {
var or__3824__auto____33405 = G__33403__33404.cljs$lang$protocol_mask$partition0$ & 16;
if(or__3824__auto____33405) {
return or__3824__auto____33405
}else {
return G__33403__33404.cljs$core$IIndexed$
}
}()) {
return true
}else {
if(!G__33403__33404.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IIndexed, G__33403__33404)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IIndexed, G__33403__33404)
}
}()) {
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__33406__33407 = coll;
if(G__33406__33407) {
if(function() {
var or__3824__auto____33408 = G__33406__33407.cljs$lang$protocol_mask$partition0$ & 16;
if(or__3824__auto____33408) {
return or__3824__auto____33408
}else {
return G__33406__33407.cljs$core$IIndexed$
}
}()) {
return true
}else {
if(!G__33406__33407.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IIndexed, G__33406__33407)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IIndexed, G__33406__33407)
}
}()) {
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__33411__delegate = function(coll, k, v, kvs) {
while(true) {
var ret__33410 = assoc.call(null, coll, k, v);
if(cljs.core.truth_(kvs)) {
var G__33412 = ret__33410;
var G__33413 = cljs.core.first.call(null, kvs);
var G__33414 = cljs.core.second.call(null, kvs);
var G__33415 = cljs.core.nnext.call(null, kvs);
coll = G__33412;
k = G__33413;
v = G__33414;
kvs = G__33415;
continue
}else {
return ret__33410
}
break
}
};
var G__33411 = 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__33411__delegate.call(this, coll, k, v, kvs)
};
G__33411.cljs$lang$maxFixedArity = 3;
G__33411.cljs$lang$applyTo = function(arglist__33416) {
var coll = cljs.core.first(arglist__33416);
var k = cljs.core.first(cljs.core.next(arglist__33416));
var v = cljs.core.first(cljs.core.next(cljs.core.next(arglist__33416)));
var kvs = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__33416)));
return G__33411__delegate(coll, k, v, kvs)
};
G__33411.cljs$lang$arity$variadic = G__33411__delegate;
return G__33411
}();
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__33419__delegate = function(coll, k, ks) {
while(true) {
var ret__33418 = dissoc.call(null, coll, k);
if(cljs.core.truth_(ks)) {
var G__33420 = ret__33418;
var G__33421 = cljs.core.first.call(null, ks);
var G__33422 = cljs.core.next.call(null, ks);
coll = G__33420;
k = G__33421;
ks = G__33422;
continue
}else {
return ret__33418
}
break
}
};
var G__33419 = 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__33419__delegate.call(this, coll, k, ks)
};
G__33419.cljs$lang$maxFixedArity = 2;
G__33419.cljs$lang$applyTo = function(arglist__33423) {
var coll = cljs.core.first(arglist__33423);
var k = cljs.core.first(cljs.core.next(arglist__33423));
var ks = cljs.core.rest(cljs.core.next(arglist__33423));
return G__33419__delegate(coll, k, ks)
};
G__33419.cljs$lang$arity$variadic = G__33419__delegate;
return G__33419
}();
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__33427__33428 = o;
if(G__33427__33428) {
if(function() {
var or__3824__auto____33429 = G__33427__33428.cljs$lang$protocol_mask$partition0$ & 131072;
if(or__3824__auto____33429) {
return or__3824__auto____33429
}else {
return G__33427__33428.cljs$core$IMeta$
}
}()) {
return true
}else {
if(!G__33427__33428.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IMeta, G__33427__33428)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IMeta, G__33427__33428)
}
}()) {
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__33432__delegate = function(coll, k, ks) {
while(true) {
var ret__33431 = disj.call(null, coll, k);
if(cljs.core.truth_(ks)) {
var G__33433 = ret__33431;
var G__33434 = cljs.core.first.call(null, ks);
var G__33435 = cljs.core.next.call(null, ks);
coll = G__33433;
k = G__33434;
ks = G__33435;
continue
}else {
return ret__33431
}
break
}
};
var G__33432 = 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__33432__delegate.call(this, coll, k, ks)
};
G__33432.cljs$lang$maxFixedArity = 2;
G__33432.cljs$lang$applyTo = function(arglist__33436) {
var coll = cljs.core.first(arglist__33436);
var k = cljs.core.first(cljs.core.next(arglist__33436));
var ks = cljs.core.rest(cljs.core.next(arglist__33436));
return G__33432__delegate(coll, k, ks)
};
G__33432.cljs$lang$arity$variadic = G__33432__delegate;
return G__33432
}();
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__33438 = goog.string.hashCode(k);
cljs.core.string_hash_cache[k] = h__33438;
cljs.core.string_hash_cache_count = cljs.core.string_hash_cache_count + 1;
return h__33438
};
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__33440 = cljs.core.string_hash_cache[k];
if(!(h__33440 == null)) {
return h__33440
}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____33442 = goog.isString(o);
if(and__3822__auto____33442) {
return check_cache
}else {
return and__3822__auto____33442
}
}()) {
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__33446__33447 = x;
if(G__33446__33447) {
if(function() {
var or__3824__auto____33448 = G__33446__33447.cljs$lang$protocol_mask$partition0$ & 8;
if(or__3824__auto____33448) {
return or__3824__auto____33448
}else {
return G__33446__33447.cljs$core$ICollection$
}
}()) {
return true
}else {
if(!G__33446__33447.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.ICollection, G__33446__33447)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.ICollection, G__33446__33447)
}
}
};
cljs.core.set_QMARK_ = function set_QMARK_(x) {
if(x == null) {
return false
}else {
var G__33452__33453 = x;
if(G__33452__33453) {
if(function() {
var or__3824__auto____33454 = G__33452__33453.cljs$lang$protocol_mask$partition0$ & 4096;
if(or__3824__auto____33454) {
return or__3824__auto____33454
}else {
return G__33452__33453.cljs$core$ISet$
}
}()) {
return true
}else {
if(!G__33452__33453.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.ISet, G__33452__33453)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.ISet, G__33452__33453)
}
}
};
cljs.core.associative_QMARK_ = function associative_QMARK_(x) {
var G__33458__33459 = x;
if(G__33458__33459) {
if(function() {
var or__3824__auto____33460 = G__33458__33459.cljs$lang$protocol_mask$partition0$ & 512;
if(or__3824__auto____33460) {
return or__3824__auto____33460
}else {
return G__33458__33459.cljs$core$IAssociative$
}
}()) {
return true
}else {
if(!G__33458__33459.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IAssociative, G__33458__33459)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IAssociative, G__33458__33459)
}
};
cljs.core.sequential_QMARK_ = function sequential_QMARK_(x) {
var G__33464__33465 = x;
if(G__33464__33465) {
if(function() {
var or__3824__auto____33466 = G__33464__33465.cljs$lang$protocol_mask$partition0$ & 16777216;
if(or__3824__auto____33466) {
return or__3824__auto____33466
}else {
return G__33464__33465.cljs$core$ISequential$
}
}()) {
return true
}else {
if(!G__33464__33465.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.ISequential, G__33464__33465)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.ISequential, G__33464__33465)
}
};
cljs.core.counted_QMARK_ = function counted_QMARK_(x) {
var G__33470__33471 = x;
if(G__33470__33471) {
if(function() {
var or__3824__auto____33472 = G__33470__33471.cljs$lang$protocol_mask$partition0$ & 2;
if(or__3824__auto____33472) {
return or__3824__auto____33472
}else {
return G__33470__33471.cljs$core$ICounted$
}
}()) {
return true
}else {
if(!G__33470__33471.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.ICounted, G__33470__33471)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.ICounted, G__33470__33471)
}
};
cljs.core.indexed_QMARK_ = function indexed_QMARK_(x) {
var G__33476__33477 = x;
if(G__33476__33477) {
if(function() {
var or__3824__auto____33478 = G__33476__33477.cljs$lang$protocol_mask$partition0$ & 16;
if(or__3824__auto____33478) {
return or__3824__auto____33478
}else {
return G__33476__33477.cljs$core$IIndexed$
}
}()) {
return true
}else {
if(!G__33476__33477.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IIndexed, G__33476__33477)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IIndexed, G__33476__33477)
}
};
cljs.core.reduceable_QMARK_ = function reduceable_QMARK_(x) {
var G__33482__33483 = x;
if(G__33482__33483) {
if(function() {
var or__3824__auto____33484 = G__33482__33483.cljs$lang$protocol_mask$partition0$ & 524288;
if(or__3824__auto____33484) {
return or__3824__auto____33484
}else {
return G__33482__33483.cljs$core$IReduce$
}
}()) {
return true
}else {
if(!G__33482__33483.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IReduce, G__33482__33483)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IReduce, G__33482__33483)
}
};
cljs.core.map_QMARK_ = function map_QMARK_(x) {
if(x == null) {
return false
}else {
var G__33488__33489 = x;
if(G__33488__33489) {
if(function() {
var or__3824__auto____33490 = G__33488__33489.cljs$lang$protocol_mask$partition0$ & 1024;
if(or__3824__auto____33490) {
return or__3824__auto____33490
}else {
return G__33488__33489.cljs$core$IMap$
}
}()) {
return true
}else {
if(!G__33488__33489.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IMap, G__33488__33489)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IMap, G__33488__33489)
}
}
};
cljs.core.vector_QMARK_ = function vector_QMARK_(x) {
var G__33494__33495 = x;
if(G__33494__33495) {
if(function() {
var or__3824__auto____33496 = G__33494__33495.cljs$lang$protocol_mask$partition0$ & 16384;
if(or__3824__auto____33496) {
return or__3824__auto____33496
}else {
return G__33494__33495.cljs$core$IVector$
}
}()) {
return true
}else {
if(!G__33494__33495.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IVector, G__33494__33495)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IVector, G__33494__33495)
}
};
cljs.core.chunked_seq_QMARK_ = function chunked_seq_QMARK_(x) {
var G__33500__33501 = x;
if(G__33500__33501) {
if(cljs.core.truth_(function() {
var or__3824__auto____33502 = null;
if(cljs.core.truth_(or__3824__auto____33502)) {
return or__3824__auto____33502
}else {
return G__33500__33501.cljs$core$IChunkedSeq$
}
}())) {
return true
}else {
if(!G__33500__33501.cljs$lang$protocol_mask$partition$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IChunkedSeq, G__33500__33501)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IChunkedSeq, G__33500__33501)
}
};
cljs.core.js_obj = function() {
var js_obj = null;
var js_obj__0 = function() {
return{}
};
var js_obj__1 = function() {
var G__33503__delegate = function(keyvals) {
return cljs.core.apply.call(null, goog.object.create, keyvals)
};
var G__33503 = 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__33503__delegate.call(this, keyvals)
};
G__33503.cljs$lang$maxFixedArity = 0;
G__33503.cljs$lang$applyTo = function(arglist__33504) {
var keyvals = cljs.core.seq(arglist__33504);
return G__33503__delegate(keyvals)
};
G__33503.cljs$lang$arity$variadic = G__33503__delegate;
return G__33503
}();
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__33506 = [];
goog.object.forEach(obj, function(val, key, obj) {
return keys__33506.push(key)
});
return keys__33506
};
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__33510 = i;
var j__33511 = j;
var len__33512 = len;
while(true) {
if(len__33512 === 0) {
return to
}else {
to[j__33511] = from[i__33510];
var G__33513 = i__33510 + 1;
var G__33514 = j__33511 + 1;
var G__33515 = len__33512 - 1;
i__33510 = G__33513;
j__33511 = G__33514;
len__33512 = G__33515;
continue
}
break
}
};
cljs.core.array_copy_downward = function array_copy_downward(from, i, to, j, len) {
var i__33519 = i + (len - 1);
var j__33520 = j + (len - 1);
var len__33521 = len;
while(true) {
if(len__33521 === 0) {
return to
}else {
to[j__33520] = from[i__33519];
var G__33522 = i__33519 - 1;
var G__33523 = j__33520 - 1;
var G__33524 = len__33521 - 1;
i__33519 = G__33522;
j__33520 = G__33523;
len__33521 = G__33524;
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__33528__33529 = s;
if(G__33528__33529) {
if(function() {
var or__3824__auto____33530 = G__33528__33529.cljs$lang$protocol_mask$partition0$ & 64;
if(or__3824__auto____33530) {
return or__3824__auto____33530
}else {
return G__33528__33529.cljs$core$ISeq$
}
}()) {
return true
}else {
if(!G__33528__33529.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.ISeq, G__33528__33529)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.ISeq, G__33528__33529)
}
}
};
cljs.core.seqable_QMARK_ = function seqable_QMARK_(s) {
var G__33534__33535 = s;
if(G__33534__33535) {
if(function() {
var or__3824__auto____33536 = G__33534__33535.cljs$lang$protocol_mask$partition0$ & 8388608;
if(or__3824__auto____33536) {
return or__3824__auto____33536
}else {
return G__33534__33535.cljs$core$ISeqable$
}
}()) {
return true
}else {
if(!G__33534__33535.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.ISeqable, G__33534__33535)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.ISeqable, G__33534__33535)
}
};
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____33539 = goog.isString(x);
if(and__3822__auto____33539) {
return!function() {
var or__3824__auto____33540 = x.charAt(0) === "\ufdd0";
if(or__3824__auto____33540) {
return or__3824__auto____33540
}else {
return x.charAt(0) === "\ufdd1"
}
}()
}else {
return and__3822__auto____33539
}
};
cljs.core.keyword_QMARK_ = function keyword_QMARK_(x) {
var and__3822__auto____33542 = goog.isString(x);
if(and__3822__auto____33542) {
return x.charAt(0) === "\ufdd0"
}else {
return and__3822__auto____33542
}
};
cljs.core.symbol_QMARK_ = function symbol_QMARK_(x) {
var and__3822__auto____33544 = goog.isString(x);
if(and__3822__auto____33544) {
return x.charAt(0) === "\ufdd1"
}else {
return and__3822__auto____33544
}
};
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____33549 = cljs.core.fn_QMARK_.call(null, f);
if(or__3824__auto____33549) {
return or__3824__auto____33549
}else {
var G__33550__33551 = f;
if(G__33550__33551) {
if(function() {
var or__3824__auto____33552 = G__33550__33551.cljs$lang$protocol_mask$partition0$ & 1;
if(or__3824__auto____33552) {
return or__3824__auto____33552
}else {
return G__33550__33551.cljs$core$IFn$
}
}()) {
return true
}else {
if(!G__33550__33551.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IFn, G__33550__33551)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IFn, G__33550__33551)
}
}
};
cljs.core.integer_QMARK_ = function integer_QMARK_(n) {
var and__3822__auto____33554 = cljs.core.number_QMARK_.call(null, n);
if(and__3822__auto____33554) {
return n == n.toFixed()
}else {
return and__3822__auto____33554
}
};
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____33557 = coll;
if(cljs.core.truth_(and__3822__auto____33557)) {
var and__3822__auto____33558 = cljs.core.associative_QMARK_.call(null, coll);
if(and__3822__auto____33558) {
return cljs.core.contains_QMARK_.call(null, coll, k)
}else {
return and__3822__auto____33558
}
}else {
return and__3822__auto____33557
}
}())) {
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__33567__delegate = function(x, y, more) {
if(!cljs.core._EQ_.call(null, x, y)) {
var s__33563 = cljs.core.PersistentHashSet.fromArray([y, x]);
var xs__33564 = more;
while(true) {
var x__33565 = cljs.core.first.call(null, xs__33564);
var etc__33566 = cljs.core.next.call(null, xs__33564);
if(cljs.core.truth_(xs__33564)) {
if(cljs.core.contains_QMARK_.call(null, s__33563, x__33565)) {
return false
}else {
var G__33568 = cljs.core.conj.call(null, s__33563, x__33565);
var G__33569 = etc__33566;
s__33563 = G__33568;
xs__33564 = G__33569;
continue
}
}else {
return true
}
break
}
}else {
return false
}
};
var G__33567 = 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__33567__delegate.call(this, x, y, more)
};
G__33567.cljs$lang$maxFixedArity = 2;
G__33567.cljs$lang$applyTo = function(arglist__33570) {
var x = cljs.core.first(arglist__33570);
var y = cljs.core.first(cljs.core.next(arglist__33570));
var more = cljs.core.rest(cljs.core.next(arglist__33570));
return G__33567__delegate(x, y, more)
};
G__33567.cljs$lang$arity$variadic = G__33567__delegate;
return G__33567
}();
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__33574__33575 = x;
if(G__33574__33575) {
if(cljs.core.truth_(function() {
var or__3824__auto____33576 = null;
if(cljs.core.truth_(or__3824__auto____33576)) {
return or__3824__auto____33576
}else {
return G__33574__33575.cljs$core$IComparable$
}
}())) {
return true
}else {
if(!G__33574__33575.cljs$lang$protocol_mask$partition$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IComparable, G__33574__33575)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IComparable, G__33574__33575)
}
}()) {
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__33581 = cljs.core.count.call(null, xs);
var yl__33582 = cljs.core.count.call(null, ys);
if(xl__33581 < yl__33582) {
return-1
}else {
if(xl__33581 > yl__33582) {
return 1
}else {
if("\ufdd0'else") {
return compare_indexed.call(null, xs, ys, xl__33581, 0)
}else {
return null
}
}
}
};
var compare_indexed__4 = function(xs, ys, len, n) {
while(true) {
var d__33583 = 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____33584 = d__33583 === 0;
if(and__3822__auto____33584) {
return n + 1 < len
}else {
return and__3822__auto____33584
}
}()) {
var G__33585 = xs;
var G__33586 = ys;
var G__33587 = len;
var G__33588 = n + 1;
xs = G__33585;
ys = G__33586;
len = G__33587;
n = G__33588;
continue
}else {
return d__33583
}
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__33590 = f.call(null, x, y);
if(cljs.core.number_QMARK_.call(null, r__33590)) {
return r__33590
}else {
if(cljs.core.truth_(r__33590)) {
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__33592 = cljs.core.to_array.call(null, coll);
goog.array.stableSort(a__33592, cljs.core.fn__GT_comparator.call(null, comp));
return cljs.core.seq.call(null, a__33592)
}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____33598 = cljs.core.seq.call(null, coll);
if(temp__3971__auto____33598) {
var s__33599 = temp__3971__auto____33598;
return cljs.core.reduce.call(null, f, cljs.core.first.call(null, s__33599), cljs.core.next.call(null, s__33599))
}else {
return f.call(null)
}
};
var seq_reduce__3 = function(f, val, coll) {
var val__33600 = val;
var coll__33601 = cljs.core.seq.call(null, coll);
while(true) {
if(coll__33601) {
var nval__33602 = f.call(null, val__33600, cljs.core.first.call(null, coll__33601));
if(cljs.core.reduced_QMARK_.call(null, nval__33602)) {
return cljs.core.deref.call(null, nval__33602)
}else {
var G__33603 = nval__33602;
var G__33604 = cljs.core.next.call(null, coll__33601);
val__33600 = G__33603;
coll__33601 = G__33604;
continue
}
}else {
return val__33600
}
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__33606 = cljs.core.to_array.call(null, coll);
goog.array.shuffle(a__33606);
return cljs.core.vec.call(null, a__33606)
};
cljs.core.reduce = function() {
var reduce = null;
var reduce__2 = function(f, coll) {
if(function() {
var G__33613__33614 = coll;
if(G__33613__33614) {
if(function() {
var or__3824__auto____33615 = G__33613__33614.cljs$lang$protocol_mask$partition0$ & 524288;
if(or__3824__auto____33615) {
return or__3824__auto____33615
}else {
return G__33613__33614.cljs$core$IReduce$
}
}()) {
return true
}else {
if(!G__33613__33614.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IReduce, G__33613__33614)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IReduce, G__33613__33614)
}
}()) {
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__33616__33617 = coll;
if(G__33616__33617) {
if(function() {
var or__3824__auto____33618 = G__33616__33617.cljs$lang$protocol_mask$partition0$ & 524288;
if(or__3824__auto____33618) {
return or__3824__auto____33618
}else {
return G__33616__33617.cljs$core$IReduce$
}
}()) {
return true
}else {
if(!G__33616__33617.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IReduce, G__33616__33617)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IReduce, G__33616__33617)
}
}()) {
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__2329__auto__) {
return cljs.core.list.call(null, "cljs.core/Reduced")
};
cljs.core.Reduced.prototype.cljs$core$IDeref$_deref$arity$1 = function(o) {
var this__33619 = this;
return this__33619.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__33620__delegate = function(x, y, more) {
return cljs.core.reduce.call(null, _PLUS_, x + y, more)
};
var G__33620 = 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__33620__delegate.call(this, x, y, more)
};
G__33620.cljs$lang$maxFixedArity = 2;
G__33620.cljs$lang$applyTo = function(arglist__33621) {
var x = cljs.core.first(arglist__33621);
var y = cljs.core.first(cljs.core.next(arglist__33621));
var more = cljs.core.rest(cljs.core.next(arglist__33621));
return G__33620__delegate(x, y, more)
};
G__33620.cljs$lang$arity$variadic = G__33620__delegate;
return G__33620
}();
_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__33622__delegate = function(x, y, more) {
return cljs.core.reduce.call(null, _, x - y, more)
};
var G__33622 = 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__33622__delegate.call(this, x, y, more)
};
G__33622.cljs$lang$maxFixedArity = 2;
G__33622.cljs$lang$applyTo = function(arglist__33623) {
var x = cljs.core.first(arglist__33623);
var y = cljs.core.first(cljs.core.next(arglist__33623));
var more = cljs.core.rest(cljs.core.next(arglist__33623));
return G__33622__delegate(x, y, more)
};
G__33622.cljs$lang$arity$variadic = G__33622__delegate;
return G__33622
}();
_ = 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__33624__delegate = function(x, y, more) {
return cljs.core.reduce.call(null, _STAR_, x * y, more)
};
var G__33624 = 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__33624__delegate.call(this, x, y, more)
};
G__33624.cljs$lang$maxFixedArity = 2;
G__33624.cljs$lang$applyTo = function(arglist__33625) {
var x = cljs.core.first(arglist__33625);
var y = cljs.core.first(cljs.core.next(arglist__33625));
var more = cljs.core.rest(cljs.core.next(arglist__33625));
return G__33624__delegate(x, y, more)
};
G__33624.cljs$lang$arity$variadic = G__33624__delegate;
return G__33624
}();
_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__33626__delegate = function(x, y, more) {
return cljs.core.reduce.call(null, _SLASH_, _SLASH_.call(null, x, y), more)
};
var G__33626 = 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__33626__delegate.call(this, x, y, more)
};
G__33626.cljs$lang$maxFixedArity = 2;
G__33626.cljs$lang$applyTo = function(arglist__33627) {
var x = cljs.core.first(arglist__33627);
var y = cljs.core.first(cljs.core.next(arglist__33627));
var more = cljs.core.rest(cljs.core.next(arglist__33627));
return G__33626__delegate(x, y, more)
};
G__33626.cljs$lang$arity$variadic = G__33626__delegate;
return G__33626
}();
_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__33628__delegate = function(x, y, more) {
while(true) {
if(x < y) {
if(cljs.core.next.call(null, more)) {
var G__33629 = y;
var G__33630 = cljs.core.first.call(null, more);
var G__33631 = cljs.core.next.call(null, more);
x = G__33629;
y = G__33630;
more = G__33631;
continue
}else {
return y < cljs.core.first.call(null, more)
}
}else {
return false
}
break
}
};
var G__33628 = 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__33628__delegate.call(this, x, y, more)
};
G__33628.cljs$lang$maxFixedArity = 2;
G__33628.cljs$lang$applyTo = function(arglist__33632) {
var x = cljs.core.first(arglist__33632);
var y = cljs.core.first(cljs.core.next(arglist__33632));
var more = cljs.core.rest(cljs.core.next(arglist__33632));
return G__33628__delegate(x, y, more)
};
G__33628.cljs$lang$arity$variadic = G__33628__delegate;
return G__33628
}();
_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__33633__delegate = function(x, y, more) {
while(true) {
if(x <= y) {
if(cljs.core.next.call(null, more)) {
var G__33634 = y;
var G__33635 = cljs.core.first.call(null, more);
var G__33636 = cljs.core.next.call(null, more);
x = G__33634;
y = G__33635;
more = G__33636;
continue
}else {
return y <= cljs.core.first.call(null, more)
}
}else {
return false
}
break
}
};
var G__33633 = 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__33633__delegate.call(this, x, y, more)
};
G__33633.cljs$lang$maxFixedArity = 2;
G__33633.cljs$lang$applyTo = function(arglist__33637) {
var x = cljs.core.first(arglist__33637);
var y = cljs.core.first(cljs.core.next(arglist__33637));
var more = cljs.core.rest(cljs.core.next(arglist__33637));
return G__33633__delegate(x, y, more)
};
G__33633.cljs$lang$arity$variadic = G__33633__delegate;
return G__33633
}();
_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__33638__delegate = function(x, y, more) {
while(true) {
if(x > y) {
if(cljs.core.next.call(null, more)) {
var G__33639 = y;
var G__33640 = cljs.core.first.call(null, more);
var G__33641 = cljs.core.next.call(null, more);
x = G__33639;
y = G__33640;
more = G__33641;
continue
}else {
return y > cljs.core.first.call(null, more)
}
}else {
return false
}
break
}
};
var G__33638 = 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__33638__delegate.call(this, x, y, more)
};
G__33638.cljs$lang$maxFixedArity = 2;
G__33638.cljs$lang$applyTo = function(arglist__33642) {
var x = cljs.core.first(arglist__33642);
var y = cljs.core.first(cljs.core.next(arglist__33642));
var more = cljs.core.rest(cljs.core.next(arglist__33642));
return G__33638__delegate(x, y, more)
};
G__33638.cljs$lang$arity$variadic = G__33638__delegate;
return G__33638
}();
_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__33643__delegate = function(x, y, more) {
while(true) {
if(x >= y) {
if(cljs.core.next.call(null, more)) {
var G__33644 = y;
var G__33645 = cljs.core.first.call(null, more);
var G__33646 = cljs.core.next.call(null, more);
x = G__33644;
y = G__33645;
more = G__33646;
continue
}else {
return y >= cljs.core.first.call(null, more)
}
}else {
return false
}
break
}
};
var G__33643 = 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__33643__delegate.call(this, x, y, more)
};
G__33643.cljs$lang$maxFixedArity = 2;
G__33643.cljs$lang$applyTo = function(arglist__33647) {
var x = cljs.core.first(arglist__33647);
var y = cljs.core.first(cljs.core.next(arglist__33647));
var more = cljs.core.rest(cljs.core.next(arglist__33647));
return G__33643__delegate(x, y, more)
};
G__33643.cljs$lang$arity$variadic = G__33643__delegate;
return G__33643
}();
_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__33648__delegate = function(x, y, more) {
return cljs.core.reduce.call(null, max, x > y ? x : y, more)
};
var G__33648 = 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__33648__delegate.call(this, x, y, more)
};
G__33648.cljs$lang$maxFixedArity = 2;
G__33648.cljs$lang$applyTo = function(arglist__33649) {
var x = cljs.core.first(arglist__33649);
var y = cljs.core.first(cljs.core.next(arglist__33649));
var more = cljs.core.rest(cljs.core.next(arglist__33649));
return G__33648__delegate(x, y, more)
};
G__33648.cljs$lang$arity$variadic = G__33648__delegate;
return G__33648
}();
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__33650__delegate = function(x, y, more) {
return cljs.core.reduce.call(null, min, x < y ? x : y, more)
};
var G__33650 = 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__33650__delegate.call(this, x, y, more)
};
G__33650.cljs$lang$maxFixedArity = 2;
G__33650.cljs$lang$applyTo = function(arglist__33651) {
var x = cljs.core.first(arglist__33651);
var y = cljs.core.first(cljs.core.next(arglist__33651));
var more = cljs.core.rest(cljs.core.next(arglist__33651));
return G__33650__delegate(x, y, more)
};
G__33650.cljs$lang$arity$variadic = G__33650__delegate;
return G__33650
}();
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__33653 = n % d;
return cljs.core.fix.call(null, (n - rem__33653) / d)
};
cljs.core.rem = function rem(n, d) {
var q__33655 = cljs.core.quot.call(null, n, d);
return n - d * q__33655
};
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__33658 = v - (v >> 1 & 1431655765);
var v__33659 = (v__33658 & 858993459) + (v__33658 >> 2 & 858993459);
return(v__33659 + (v__33659 >> 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__33660__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__33661 = y;
var G__33662 = cljs.core.first.call(null, more);
var G__33663 = cljs.core.next.call(null, more);
x = G__33661;
y = G__33662;
more = G__33663;
continue
}else {
return _EQ__EQ_.call(null, y, cljs.core.first.call(null, more))
}
}else {
return false
}
break
}
};
var G__33660 = 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__33660__delegate.call(this, x, y, more)
};
G__33660.cljs$lang$maxFixedArity = 2;
G__33660.cljs$lang$applyTo = function(arglist__33664) {
var x = cljs.core.first(arglist__33664);
var y = cljs.core.first(cljs.core.next(arglist__33664));
var more = cljs.core.rest(cljs.core.next(arglist__33664));
return G__33660__delegate(x, y, more)
};
G__33660.cljs$lang$arity$variadic = G__33660__delegate;
return G__33660
}();
_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__33668 = n;
var xs__33669 = cljs.core.seq.call(null, coll);
while(true) {
if(cljs.core.truth_(function() {
var and__3822__auto____33670 = xs__33669;
if(and__3822__auto____33670) {
return n__33668 > 0
}else {
return and__3822__auto____33670
}
}())) {
var G__33671 = n__33668 - 1;
var G__33672 = cljs.core.next.call(null, xs__33669);
n__33668 = G__33671;
xs__33669 = G__33672;
continue
}else {
return xs__33669
}
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__33673__delegate = function(x, ys) {
return function(sb, more) {
while(true) {
if(cljs.core.truth_(more)) {
var G__33674 = sb.append(str_STAR_.call(null, cljs.core.first.call(null, more)));
var G__33675 = cljs.core.next.call(null, more);
sb = G__33674;
more = G__33675;
continue
}else {
return str_STAR_.call(null, sb)
}
break
}
}.call(null, new goog.string.StringBuffer(str_STAR_.call(null, x)), ys)
};
var G__33673 = 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__33673__delegate.call(this, x, ys)
};
G__33673.cljs$lang$maxFixedArity = 1;
G__33673.cljs$lang$applyTo = function(arglist__33676) {
var x = cljs.core.first(arglist__33676);
var ys = cljs.core.rest(arglist__33676);
return G__33673__delegate(x, ys)
};
G__33673.cljs$lang$arity$variadic = G__33673__delegate;
return G__33673
}();
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__33677__delegate = function(x, ys) {
return function(sb, more) {
while(true) {
if(cljs.core.truth_(more)) {
var G__33678 = sb.append(str.call(null, cljs.core.first.call(null, more)));
var G__33679 = cljs.core.next.call(null, more);
sb = G__33678;
more = G__33679;
continue
}else {
return cljs.core.str_STAR_.call(null, sb)
}
break
}
}.call(null, new goog.string.StringBuffer(str.call(null, x)), ys)
};
var G__33677 = 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__33677__delegate.call(this, x, ys)
};
G__33677.cljs$lang$maxFixedArity = 1;
G__33677.cljs$lang$applyTo = function(arglist__33680) {
var x = cljs.core.first(arglist__33680);
var ys = cljs.core.rest(arglist__33680);
return G__33677__delegate(x, ys)
};
G__33677.cljs$lang$arity$variadic = G__33677__delegate;
return G__33677
}();
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__33681) {
var fmt = cljs.core.first(arglist__33681);
var args = cljs.core.rest(arglist__33681);
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__33684 = cljs.core.seq.call(null, x);
var ys__33685 = cljs.core.seq.call(null, y);
while(true) {
if(xs__33684 == null) {
return ys__33685 == null
}else {
if(ys__33685 == null) {
return false
}else {
if(cljs.core._EQ_.call(null, cljs.core.first.call(null, xs__33684), cljs.core.first.call(null, ys__33685))) {
var G__33686 = cljs.core.next.call(null, xs__33684);
var G__33687 = cljs.core.next.call(null, ys__33685);
xs__33684 = G__33686;
ys__33685 = G__33687;
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__33688_SHARP_, p2__33689_SHARP_) {
return cljs.core.hash_combine.call(null, p1__33688_SHARP_, cljs.core.hash.call(null, p2__33689_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__33693 = 0;
var s__33694 = cljs.core.seq.call(null, m);
while(true) {
if(s__33694) {
var e__33695 = cljs.core.first.call(null, s__33694);
var G__33696 = (h__33693 + (cljs.core.hash.call(null, cljs.core.key.call(null, e__33695)) ^ cljs.core.hash.call(null, cljs.core.val.call(null, e__33695)))) % 4503599627370496;
var G__33697 = cljs.core.next.call(null, s__33694);
h__33693 = G__33696;
s__33694 = G__33697;
continue
}else {
return h__33693
}
break
}
};
cljs.core.hash_iset = function hash_iset(s) {
var h__33701 = 0;
var s__33702 = cljs.core.seq.call(null, s);
while(true) {
if(s__33702) {
var e__33703 = cljs.core.first.call(null, s__33702);
var G__33704 = (h__33701 + cljs.core.hash.call(null, e__33703)) % 4503599627370496;
var G__33705 = cljs.core.next.call(null, s__33702);
h__33701 = G__33704;
s__33702 = G__33705;
continue
}else {
return h__33701
}
break
}
};
cljs.core.extend_object_BANG_ = function extend_object_BANG_(obj, fn_map) {
var G__33726__33727 = cljs.core.seq.call(null, fn_map);
if(G__33726__33727) {
var G__33729__33731 = cljs.core.first.call(null, G__33726__33727);
var vec__33730__33732 = G__33729__33731;
var key_name__33733 = cljs.core.nth.call(null, vec__33730__33732, 0, null);
var f__33734 = cljs.core.nth.call(null, vec__33730__33732, 1, null);
var G__33726__33735 = G__33726__33727;
var G__33729__33736 = G__33729__33731;
var G__33726__33737 = G__33726__33735;
while(true) {
var vec__33738__33739 = G__33729__33736;
var key_name__33740 = cljs.core.nth.call(null, vec__33738__33739, 0, null);
var f__33741 = cljs.core.nth.call(null, vec__33738__33739, 1, null);
var G__33726__33742 = G__33726__33737;
var str_name__33743 = cljs.core.name.call(null, key_name__33740);
obj[str_name__33743] = f__33741;
var temp__3974__auto____33744 = cljs.core.next.call(null, G__33726__33742);
if(temp__3974__auto____33744) {
var G__33726__33745 = temp__3974__auto____33744;
var G__33746 = cljs.core.first.call(null, G__33726__33745);
var G__33747 = G__33726__33745;
G__33729__33736 = G__33746;
G__33726__33737 = G__33747;
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__2329__auto__) {
return cljs.core.list.call(null, "cljs.core/List")
};
cljs.core.List.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var this__33748 = this;
var h__2212__auto____33749 = this__33748.__hash;
if(!(h__2212__auto____33749 == null)) {
return h__2212__auto____33749
}else {
var h__2212__auto____33750 = cljs.core.hash_coll.call(null, coll);
this__33748.__hash = h__2212__auto____33750;
return h__2212__auto____33750
}
};
cljs.core.List.prototype.cljs$core$INext$_next$arity$1 = function(coll) {
var this__33751 = this;
if(this__33751.count === 1) {
return null
}else {
return this__33751.rest
}
};
cljs.core.List.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var this__33752 = this;
return new cljs.core.List(this__33752.meta, o, coll, this__33752.count + 1, null)
};
cljs.core.List.prototype.toString = function() {
var this__33753 = this;
var this__33754 = this;
return cljs.core.pr_str.call(null, this__33754)
};
cljs.core.List.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var this__33755 = this;
return coll
};
cljs.core.List.prototype.cljs$core$ICounted$_count$arity$1 = function(coll) {
var this__33756 = this;
return this__33756.count
};
cljs.core.List.prototype.cljs$core$IStack$_peek$arity$1 = function(coll) {
var this__33757 = this;
return this__33757.first
};
cljs.core.List.prototype.cljs$core$IStack$_pop$arity$1 = function(coll) {
var this__33758 = this;
return coll.cljs$core$ISeq$_rest$arity$1(coll)
};
cljs.core.List.prototype.cljs$core$ISeq$_first$arity$1 = function(coll) {
var this__33759 = this;
return this__33759.first
};
cljs.core.List.prototype.cljs$core$ISeq$_rest$arity$1 = function(coll) {
var this__33760 = this;
if(this__33760.count === 1) {
return cljs.core.List.EMPTY
}else {
return this__33760.rest
}
};
cljs.core.List.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var this__33761 = 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__33762 = this;
return new cljs.core.List(meta, this__33762.first, this__33762.rest, this__33762.count, this__33762.__hash)
};
cljs.core.List.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var this__33763 = this;
return this__33763.meta
};
cljs.core.List.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var this__33764 = 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__2329__auto__) {
return cljs.core.list.call(null, "cljs.core/EmptyList")
};
cljs.core.EmptyList.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var this__33765 = this;
return 0
};
cljs.core.EmptyList.prototype.cljs$core$INext$_next$arity$1 = function(coll) {
var this__33766 = this;
return null
};
cljs.core.EmptyList.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var this__33767 = this;
return new cljs.core.List(this__33767.meta, o, null, 1, null)
};
cljs.core.EmptyList.prototype.toString = function() {
var this__33768 = this;
var this__33769 = this;
return cljs.core.pr_str.call(null, this__33769)
};
cljs.core.EmptyList.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var this__33770 = this;
return null
};
cljs.core.EmptyList.prototype.cljs$core$ICounted$_count$arity$1 = function(coll) {
var this__33771 = this;
return 0
};
cljs.core.EmptyList.prototype.cljs$core$IStack$_peek$arity$1 = function(coll) {
var this__33772 = this;
return null
};
cljs.core.EmptyList.prototype.cljs$core$IStack$_pop$arity$1 = function(coll) {
var this__33773 = this;
throw new Error("Can't pop empty list");
};
cljs.core.EmptyList.prototype.cljs$core$ISeq$_first$arity$1 = function(coll) {
var this__33774 = this;
return null
};
cljs.core.EmptyList.prototype.cljs$core$ISeq$_rest$arity$1 = function(coll) {
var this__33775 = this;
return cljs.core.List.EMPTY
};
cljs.core.EmptyList.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var this__33776 = 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__33777 = this;
return new cljs.core.EmptyList(meta)
};
cljs.core.EmptyList.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var this__33778 = this;
return this__33778.meta
};
cljs.core.EmptyList.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var this__33779 = 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__33783__33784 = coll;
if(G__33783__33784) {
if(function() {
var or__3824__auto____33785 = G__33783__33784.cljs$lang$protocol_mask$partition0$ & 134217728;
if(or__3824__auto____33785) {
return or__3824__auto____33785
}else {
return G__33783__33784.cljs$core$IReversible$
}
}()) {
return true
}else {
if(!G__33783__33784.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IReversible, G__33783__33784)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IReversible, G__33783__33784)
}
};
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__33786__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__33786 = 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__33786__delegate.call(this, x, y, z, items)
};
G__33786.cljs$lang$maxFixedArity = 3;
G__33786.cljs$lang$applyTo = function(arglist__33787) {
var x = cljs.core.first(arglist__33787);
var y = cljs.core.first(cljs.core.next(arglist__33787));
var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__33787)));
var items = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__33787)));
return G__33786__delegate(x, y, z, items)
};
G__33786.cljs$lang$arity$variadic = G__33786__delegate;
return G__33786
}();
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__2329__auto__) {
return cljs.core.list.call(null, "cljs.core/Cons")
};
cljs.core.Cons.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var this__33788 = this;
var h__2212__auto____33789 = this__33788.__hash;
if(!(h__2212__auto____33789 == null)) {
return h__2212__auto____33789
}else {
var h__2212__auto____33790 = cljs.core.hash_coll.call(null, coll);
this__33788.__hash = h__2212__auto____33790;
return h__2212__auto____33790
}
};
cljs.core.Cons.prototype.cljs$core$INext$_next$arity$1 = function(coll) {
var this__33791 = this;
if(this__33791.rest == null) {
return null
}else {
return cljs.core._seq.call(null, this__33791.rest)
}
};
cljs.core.Cons.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var this__33792 = this;
return new cljs.core.Cons(null, o, coll, this__33792.__hash)
};
cljs.core.Cons.prototype.toString = function() {
var this__33793 = this;
var this__33794 = this;
return cljs.core.pr_str.call(null, this__33794)
};
cljs.core.Cons.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var this__33795 = this;
return coll
};
cljs.core.Cons.prototype.cljs$core$ISeq$_first$arity$1 = function(coll) {
var this__33796 = this;
return this__33796.first
};
cljs.core.Cons.prototype.cljs$core$ISeq$_rest$arity$1 = function(coll) {
var this__33797 = this;
if(this__33797.rest == null) {
return cljs.core.List.EMPTY
}else {
return this__33797.rest
}
};
cljs.core.Cons.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var this__33798 = 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__33799 = this;
return new cljs.core.Cons(meta, this__33799.first, this__33799.rest, this__33799.__hash)
};
cljs.core.Cons.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var this__33800 = this;
return this__33800.meta
};
cljs.core.Cons.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var this__33801 = this;
return cljs.core.with_meta.call(null, cljs.core.List.EMPTY, this__33801.meta)
};
cljs.core.Cons;
cljs.core.cons = function cons(x, coll) {
if(function() {
var or__3824__auto____33806 = coll == null;
if(or__3824__auto____33806) {
return or__3824__auto____33806
}else {
var G__33807__33808 = coll;
if(G__33807__33808) {
if(function() {
var or__3824__auto____33809 = G__33807__33808.cljs$lang$protocol_mask$partition0$ & 64;
if(or__3824__auto____33809) {
return or__3824__auto____33809
}else {
return G__33807__33808.cljs$core$ISeq$
}
}()) {
return true
}else {
if(!G__33807__33808.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.ISeq, G__33807__33808)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.ISeq, G__33807__33808)
}
}
}()) {
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__33813__33814 = x;
if(G__33813__33814) {
if(function() {
var or__3824__auto____33815 = G__33813__33814.cljs$lang$protocol_mask$partition0$ & 33554432;
if(or__3824__auto____33815) {
return or__3824__auto____33815
}else {
return G__33813__33814.cljs$core$IList$
}
}()) {
return true
}else {
if(!G__33813__33814.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IList, G__33813__33814)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IList, G__33813__33814)
}
};
cljs.core.IReduce["string"] = true;
cljs.core._reduce["string"] = function() {
var G__33816 = null;
var G__33816__2 = function(string, f) {
return cljs.core.ci_reduce.call(null, string, f)
};
var G__33816__3 = function(string, f, start) {
return cljs.core.ci_reduce.call(null, string, f, start)
};
G__33816 = function(string, f, start) {
switch(arguments.length) {
case 2:
return G__33816__2.call(this, string, f);
case 3:
return G__33816__3.call(this, string, f, start)
}
throw"Invalid arity: " + arguments.length;
};
return G__33816
}();
cljs.core.ILookup["string"] = true;
cljs.core._lookup["string"] = function() {
var G__33817 = null;
var G__33817__2 = function(string, k) {
return cljs.core._nth.call(null, string, k)
};
var G__33817__3 = function(string, k, not_found) {
return cljs.core._nth.call(null, string, k, not_found)
};
G__33817 = function(string, k, not_found) {
switch(arguments.length) {
case 2:
return G__33817__2.call(this, string, k);
case 3:
return G__33817__3.call(this, string, k, not_found)
}
throw"Invalid arity: " + arguments.length;
};
return G__33817
}();
cljs.core.IIndexed["string"] = true;
cljs.core._nth["string"] = function() {
var G__33818 = null;
var G__33818__2 = function(string, n) {
if(n < cljs.core._count.call(null, string)) {
return string.charAt(n)
}else {
return null
}
};
var G__33818__3 = function(string, n, not_found) {
if(n < cljs.core._count.call(null, string)) {
return string.charAt(n)
}else {
return not_found
}
};
G__33818 = function(string, n, not_found) {
switch(arguments.length) {
case 2:
return G__33818__2.call(this, string, n);
case 3:
return G__33818__3.call(this, string, n, not_found)
}
throw"Invalid arity: " + arguments.length;
};
return G__33818
}();
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__2329__auto__) {
return cljs.core.list.call(null, "cljs.core/Keyword")
};
cljs.core.Keyword.prototype.call = function() {
var G__33830 = null;
var G__33830__2 = function(this_sym33821, coll) {
var this__33823 = this;
var this_sym33821__33824 = this;
var ___33825 = this_sym33821__33824;
if(coll == null) {
return null
}else {
var strobj__33826 = coll.strobj;
if(strobj__33826 == null) {
return cljs.core._lookup.call(null, coll, this__33823.k, null)
}else {
return strobj__33826[this__33823.k]
}
}
};
var G__33830__3 = function(this_sym33822, coll, not_found) {
var this__33823 = this;
var this_sym33822__33827 = this;
var ___33828 = this_sym33822__33827;
if(coll == null) {
return not_found
}else {
return cljs.core._lookup.call(null, coll, this__33823.k, not_found)
}
};
G__33830 = function(this_sym33822, coll, not_found) {
switch(arguments.length) {
case 2:
return G__33830__2.call(this, this_sym33822, coll);
case 3:
return G__33830__3.call(this, this_sym33822, coll, not_found)
}
throw"Invalid arity: " + arguments.length;
};
return G__33830
}();
cljs.core.Keyword.prototype.apply = function(this_sym33819, args33820) {
var this__33829 = this;
return this_sym33819.call.apply(this_sym33819, [this_sym33819].concat(args33820.slice()))
};
cljs.core.Keyword;
String.prototype.cljs$core$IFn$ = true;
String.prototype.call = function() {
var G__33839 = null;
var G__33839__2 = function(this_sym33833, coll) {
var this_sym33833__33835 = this;
var this__33836 = this_sym33833__33835;
return cljs.core._lookup.call(null, coll, this__33836.toString(), null)
};
var G__33839__3 = function(this_sym33834, coll, not_found) {
var this_sym33834__33837 = this;
var this__33838 = this_sym33834__33837;
return cljs.core._lookup.call(null, coll, this__33838.toString(), not_found)
};
G__33839 = function(this_sym33834, coll, not_found) {
switch(arguments.length) {
case 2:
return G__33839__2.call(this, this_sym33834, coll);
case 3:
return G__33839__3.call(this, this_sym33834, coll, not_found)
}
throw"Invalid arity: " + arguments.length;
};
return G__33839
}();
String.prototype.apply = function(this_sym33831, args33832) {
return this_sym33831.call.apply(this_sym33831, [this_sym33831].concat(args33832.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__33841 = lazy_seq.x;
if(lazy_seq.realized) {
return x__33841
}else {
lazy_seq.x = x__33841.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__2329__auto__) {
return cljs.core.list.call(null, "cljs.core/LazySeq")
};
cljs.core.LazySeq.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var this__33842 = this;
var h__2212__auto____33843 = this__33842.__hash;
if(!(h__2212__auto____33843 == null)) {
return h__2212__auto____33843
}else {
var h__2212__auto____33844 = cljs.core.hash_coll.call(null, coll);
this__33842.__hash = h__2212__auto____33844;
return h__2212__auto____33844
}
};
cljs.core.LazySeq.prototype.cljs$core$INext$_next$arity$1 = function(coll) {
var this__33845 = 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__33846 = this;
return cljs.core.cons.call(null, o, coll)
};
cljs.core.LazySeq.prototype.toString = function() {
var this__33847 = this;
var this__33848 = this;
return cljs.core.pr_str.call(null, this__33848)
};
cljs.core.LazySeq.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var this__33849 = 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__33850 = 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__33851 = 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__33852 = 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__33853 = this;
return new cljs.core.LazySeq(meta, this__33853.realized, this__33853.x, this__33853.__hash)
};
cljs.core.LazySeq.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var this__33854 = this;
return this__33854.meta
};
cljs.core.LazySeq.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var this__33855 = this;
return cljs.core.with_meta.call(null, cljs.core.List.EMPTY, this__33855.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__2329__auto__) {
return cljs.core.list.call(null, "cljs.core/ChunkBuffer")
};
cljs.core.ChunkBuffer.prototype.cljs$core$ICounted$_count$arity$1 = function(_) {
var this__33856 = this;
return this__33856.end
};
cljs.core.ChunkBuffer.prototype.add = function(o) {
var this__33857 = this;
var ___33858 = this;
this__33857.buf[this__33857.end] = o;
return this__33857.end = this__33857.end + 1
};
cljs.core.ChunkBuffer.prototype.chunk = function(o) {
var this__33859 = this;
var ___33860 = this;
var ret__33861 = new cljs.core.ArrayChunk(this__33859.buf, 0, this__33859.end);
this__33859.buf = null;
return ret__33861
};
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__2329__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__33862 = this;
return cljs.core.ci_reduce.call(null, coll, f, this__33862.arr[this__33862.off], this__33862.off + 1)
};
cljs.core.ArrayChunk.prototype.cljs$core$IReduce$_reduce$arity$3 = function(coll, f, start) {
var this__33863 = this;
return cljs.core.ci_reduce.call(null, coll, f, start, this__33863.off)
};
cljs.core.ArrayChunk.prototype.cljs$core$IChunk$ = true;
cljs.core.ArrayChunk.prototype.cljs$core$IChunk$_drop_first$arity$1 = function(coll) {
var this__33864 = this;
if(this__33864.off === this__33864.end) {
throw new Error("-drop-first of empty chunk");
}else {
return new cljs.core.ArrayChunk(this__33864.arr, this__33864.off + 1, this__33864.end)
}
};
cljs.core.ArrayChunk.prototype.cljs$core$IIndexed$_nth$arity$2 = function(coll, i) {
var this__33865 = this;
return this__33865.arr[this__33865.off + i]
};
cljs.core.ArrayChunk.prototype.cljs$core$IIndexed$_nth$arity$3 = function(coll, i, not_found) {
var this__33866 = this;
if(function() {
var and__3822__auto____33867 = i >= 0;
if(and__3822__auto____33867) {
return i < this__33866.end - this__33866.off
}else {
return and__3822__auto____33867
}
}()) {
return this__33866.arr[this__33866.off + i]
}else {
return not_found
}
};
cljs.core.ArrayChunk.prototype.cljs$core$ICounted$_count$arity$1 = function(_) {
var this__33868 = this;
return this__33868.end - this__33868.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__2329__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__33869 = this;
return cljs.core.cons.call(null, o, this$)
};
cljs.core.ChunkedCons.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var this__33870 = this;
return coll
};
cljs.core.ChunkedCons.prototype.cljs$core$ISeq$_first$arity$1 = function(coll) {
var this__33871 = this;
return cljs.core._nth.call(null, this__33871.chunk, 0)
};
cljs.core.ChunkedCons.prototype.cljs$core$ISeq$_rest$arity$1 = function(coll) {
var this__33872 = this;
if(cljs.core._count.call(null, this__33872.chunk) > 1) {
return new cljs.core.ChunkedCons(cljs.core._drop_first.call(null, this__33872.chunk), this__33872.more, this__33872.meta)
}else {
if(this__33872.more == null) {
return cljs.core.List.EMPTY
}else {
return this__33872.more
}
}
};
cljs.core.ChunkedCons.prototype.cljs$core$IChunkedNext$ = true;
cljs.core.ChunkedCons.prototype.cljs$core$IChunkedNext$_chunked_next$arity$1 = function(coll) {
var this__33873 = this;
if(this__33873.more == null) {
return null
}else {
return this__33873.more
}
};
cljs.core.ChunkedCons.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var this__33874 = 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__33875 = this;
return new cljs.core.ChunkedCons(this__33875.chunk, this__33875.more, m)
};
cljs.core.ChunkedCons.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var this__33876 = this;
return this__33876.meta
};
cljs.core.ChunkedCons.prototype.cljs$core$IChunkedSeq$ = true;
cljs.core.ChunkedCons.prototype.cljs$core$IChunkedSeq$_chunked_first$arity$1 = function(coll) {
var this__33877 = this;
return this__33877.chunk
};
cljs.core.ChunkedCons.prototype.cljs$core$IChunkedSeq$_chunked_rest$arity$1 = function(coll) {
var this__33878 = this;
if(this__33878.more == null) {
return cljs.core.List.EMPTY
}else {
return this__33878.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__33882__33883 = s;
if(G__33882__33883) {
if(cljs.core.truth_(function() {
var or__3824__auto____33884 = null;
if(cljs.core.truth_(or__3824__auto____33884)) {
return or__3824__auto____33884
}else {
return G__33882__33883.cljs$core$IChunkedNext$
}
}())) {
return true
}else {
if(!G__33882__33883.cljs$lang$protocol_mask$partition$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IChunkedNext, G__33882__33883)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IChunkedNext, G__33882__33883)
}
}()) {
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__33887 = [];
var s__33888 = s;
while(true) {
if(cljs.core.seq.call(null, s__33888)) {
ary__33887.push(cljs.core.first.call(null, s__33888));
var G__33889 = cljs.core.next.call(null, s__33888);
s__33888 = G__33889;
continue
}else {
return ary__33887
}
break
}
};
cljs.core.to_array_2d = function to_array_2d(coll) {
var ret__33893 = cljs.core.make_array.call(null, cljs.core.count.call(null, coll));
var i__33894 = 0;
var xs__33895 = cljs.core.seq.call(null, coll);
while(true) {
if(xs__33895) {
ret__33893[i__33894] = cljs.core.to_array.call(null, cljs.core.first.call(null, xs__33895));
var G__33896 = i__33894 + 1;
var G__33897 = cljs.core.next.call(null, xs__33895);
i__33894 = G__33896;
xs__33895 = G__33897;
continue
}else {
}
break
}
return ret__33893
};
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__33905 = cljs.core.make_array.call(null, size);
if(cljs.core.seq_QMARK_.call(null, init_val_or_seq)) {
var s__33906 = cljs.core.seq.call(null, init_val_or_seq);
var i__33907 = 0;
var s__33908 = s__33906;
while(true) {
if(cljs.core.truth_(function() {
var and__3822__auto____33909 = s__33908;
if(and__3822__auto____33909) {
return i__33907 < size
}else {
return and__3822__auto____33909
}
}())) {
a__33905[i__33907] = cljs.core.first.call(null, s__33908);
var G__33912 = i__33907 + 1;
var G__33913 = cljs.core.next.call(null, s__33908);
i__33907 = G__33912;
s__33908 = G__33913;
continue
}else {
return a__33905
}
break
}
}else {
var n__2547__auto____33910 = size;
var i__33911 = 0;
while(true) {
if(i__33911 < n__2547__auto____33910) {
a__33905[i__33911] = init_val_or_seq;
var G__33914 = i__33911 + 1;
i__33911 = G__33914;
continue
}else {
}
break
}
return a__33905
}
};
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__33922 = cljs.core.make_array.call(null, size);
if(cljs.core.seq_QMARK_.call(null, init_val_or_seq)) {
var s__33923 = cljs.core.seq.call(null, init_val_or_seq);
var i__33924 = 0;
var s__33925 = s__33923;
while(true) {
if(cljs.core.truth_(function() {
var and__3822__auto____33926 = s__33925;
if(and__3822__auto____33926) {
return i__33924 < size
}else {
return and__3822__auto____33926
}
}())) {
a__33922[i__33924] = cljs.core.first.call(null, s__33925);
var G__33929 = i__33924 + 1;
var G__33930 = cljs.core.next.call(null, s__33925);
i__33924 = G__33929;
s__33925 = G__33930;
continue
}else {
return a__33922
}
break
}
}else {
var n__2547__auto____33927 = size;
var i__33928 = 0;
while(true) {
if(i__33928 < n__2547__auto____33927) {
a__33922[i__33928] = init_val_or_seq;
var G__33931 = i__33928 + 1;
i__33928 = G__33931;
continue
}else {
}
break
}
return a__33922
}
};
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__33939 = cljs.core.make_array.call(null, size);
if(cljs.core.seq_QMARK_.call(null, init_val_or_seq)) {
var s__33940 = cljs.core.seq.call(null, init_val_or_seq);
var i__33941 = 0;
var s__33942 = s__33940;
while(true) {
if(cljs.core.truth_(function() {
var and__3822__auto____33943 = s__33942;
if(and__3822__auto____33943) {
return i__33941 < size
}else {
return and__3822__auto____33943
}
}())) {
a__33939[i__33941] = cljs.core.first.call(null, s__33942);
var G__33946 = i__33941 + 1;
var G__33947 = cljs.core.next.call(null, s__33942);
i__33941 = G__33946;
s__33942 = G__33947;
continue
}else {
return a__33939
}
break
}
}else {
var n__2547__auto____33944 = size;
var i__33945 = 0;
while(true) {
if(i__33945 < n__2547__auto____33944) {
a__33939[i__33945] = init_val_or_seq;
var G__33948 = i__33945 + 1;
i__33945 = G__33948;
continue
}else {
}
break
}
return a__33939
}
};
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__33953 = s;
var i__33954 = n;
var sum__33955 = 0;
while(true) {
if(cljs.core.truth_(function() {
var and__3822__auto____33956 = i__33954 > 0;
if(and__3822__auto____33956) {
return cljs.core.seq.call(null, s__33953)
}else {
return and__3822__auto____33956
}
}())) {
var G__33957 = cljs.core.next.call(null, s__33953);
var G__33958 = i__33954 - 1;
var G__33959 = sum__33955 + 1;
s__33953 = G__33957;
i__33954 = G__33958;
sum__33955 = G__33959;
continue
}else {
return sum__33955
}
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__33964 = cljs.core.seq.call(null, x);
if(s__33964) {
if(cljs.core.chunked_seq_QMARK_.call(null, s__33964)) {
return cljs.core.chunk_cons.call(null, cljs.core.chunk_first.call(null, s__33964), concat.call(null, cljs.core.chunk_rest.call(null, s__33964), y))
}else {
return cljs.core.cons.call(null, cljs.core.first.call(null, s__33964), concat.call(null, cljs.core.rest.call(null, s__33964), y))
}
}else {
return y
}
}, null)
};
var concat__3 = function() {
var G__33968__delegate = function(x, y, zs) {
var cat__33967 = function cat(xys, zs) {
return new cljs.core.LazySeq(null, false, function() {
var xys__33966 = cljs.core.seq.call(null, xys);
if(xys__33966) {
if(cljs.core.chunked_seq_QMARK_.call(null, xys__33966)) {
return cljs.core.chunk_cons.call(null, cljs.core.chunk_first.call(null, xys__33966), cat.call(null, cljs.core.chunk_rest.call(null, xys__33966), zs))
}else {
return cljs.core.cons.call(null, cljs.core.first.call(null, xys__33966), cat.call(null, cljs.core.rest.call(null, xys__33966), 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__33967.call(null, concat.call(null, x, y), zs)
};
var G__33968 = 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__33968__delegate.call(this, x, y, zs)
};
G__33968.cljs$lang$maxFixedArity = 2;
G__33968.cljs$lang$applyTo = function(arglist__33969) {
var x = cljs.core.first(arglist__33969);
var y = cljs.core.first(cljs.core.next(arglist__33969));
var zs = cljs.core.rest(cljs.core.next(arglist__33969));
return G__33968__delegate(x, y, zs)
};
G__33968.cljs$lang$arity$variadic = G__33968__delegate;
return G__33968
}();
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__33970__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__33970 = 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__33970__delegate.call(this, a, b, c, d, more)
};
G__33970.cljs$lang$maxFixedArity = 4;
G__33970.cljs$lang$applyTo = function(arglist__33971) {
var a = cljs.core.first(arglist__33971);
var b = cljs.core.first(cljs.core.next(arglist__33971));
var c = cljs.core.first(cljs.core.next(cljs.core.next(arglist__33971)));
var d = cljs.core.first(cljs.core.next(cljs.core.next(cljs.core.next(arglist__33971))));
var more = cljs.core.rest(cljs.core.next(cljs.core.next(cljs.core.next(arglist__33971))));
return G__33970__delegate(a, b, c, d, more)
};
G__33970.cljs$lang$arity$variadic = G__33970__delegate;
return G__33970
}();
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__34013 = cljs.core.seq.call(null, args);
if(argc === 0) {
return f.call(null)
}else {
var a__34014 = cljs.core._first.call(null, args__34013);
var args__34015 = cljs.core._rest.call(null, args__34013);
if(argc === 1) {
if(f.cljs$lang$arity$1) {
return f.cljs$lang$arity$1(a__34014)
}else {
return f.call(null, a__34014)
}
}else {
var b__34016 = cljs.core._first.call(null, args__34015);
var args__34017 = cljs.core._rest.call(null, args__34015);
if(argc === 2) {
if(f.cljs$lang$arity$2) {
return f.cljs$lang$arity$2(a__34014, b__34016)
}else {
return f.call(null, a__34014, b__34016)
}
}else {
var c__34018 = cljs.core._first.call(null, args__34017);
var args__34019 = cljs.core._rest.call(null, args__34017);
if(argc === 3) {
if(f.cljs$lang$arity$3) {
return f.cljs$lang$arity$3(a__34014, b__34016, c__34018)
}else {
return f.call(null, a__34014, b__34016, c__34018)
}
}else {
var d__34020 = cljs.core._first.call(null, args__34019);
var args__34021 = cljs.core._rest.call(null, args__34019);
if(argc === 4) {
if(f.cljs$lang$arity$4) {
return f.cljs$lang$arity$4(a__34014, b__34016, c__34018, d__34020)
}else {
return f.call(null, a__34014, b__34016, c__34018, d__34020)
}
}else {
var e__34022 = cljs.core._first.call(null, args__34021);
var args__34023 = cljs.core._rest.call(null, args__34021);
if(argc === 5) {
if(f.cljs$lang$arity$5) {
return f.cljs$lang$arity$5(a__34014, b__34016, c__34018, d__34020, e__34022)
}else {
return f.call(null, a__34014, b__34016, c__34018, d__34020, e__34022)
}
}else {
var f__34024 = cljs.core._first.call(null, args__34023);
var args__34025 = cljs.core._rest.call(null, args__34023);
if(argc === 6) {
if(f__34024.cljs$lang$arity$6) {
return f__34024.cljs$lang$arity$6(a__34014, b__34016, c__34018, d__34020, e__34022, f__34024)
}else {
return f__34024.call(null, a__34014, b__34016, c__34018, d__34020, e__34022, f__34024)
}
}else {
var g__34026 = cljs.core._first.call(null, args__34025);
var args__34027 = cljs.core._rest.call(null, args__34025);
if(argc === 7) {
if(f__34024.cljs$lang$arity$7) {
return f__34024.cljs$lang$arity$7(a__34014, b__34016, c__34018, d__34020, e__34022, f__34024, g__34026)
}else {
return f__34024.call(null, a__34014, b__34016, c__34018, d__34020, e__34022, f__34024, g__34026)
}
}else {
var h__34028 = cljs.core._first.call(null, args__34027);
var args__34029 = cljs.core._rest.call(null, args__34027);
if(argc === 8) {
if(f__34024.cljs$lang$arity$8) {
return f__34024.cljs$lang$arity$8(a__34014, b__34016, c__34018, d__34020, e__34022, f__34024, g__34026, h__34028)
}else {
return f__34024.call(null, a__34014, b__34016, c__34018, d__34020, e__34022, f__34024, g__34026, h__34028)
}
}else {
var i__34030 = cljs.core._first.call(null, args__34029);
var args__34031 = cljs.core._rest.call(null, args__34029);
if(argc === 9) {
if(f__34024.cljs$lang$arity$9) {
return f__34024.cljs$lang$arity$9(a__34014, b__34016, c__34018, d__34020, e__34022, f__34024, g__34026, h__34028, i__34030)
}else {
return f__34024.call(null, a__34014, b__34016, c__34018, d__34020, e__34022, f__34024, g__34026, h__34028, i__34030)
}
}else {
var j__34032 = cljs.core._first.call(null, args__34031);
var args__34033 = cljs.core._rest.call(null, args__34031);
if(argc === 10) {
if(f__34024.cljs$lang$arity$10) {
return f__34024.cljs$lang$arity$10(a__34014, b__34016, c__34018, d__34020, e__34022, f__34024, g__34026, h__34028, i__34030, j__34032)
}else {
return f__34024.call(null, a__34014, b__34016, c__34018, d__34020, e__34022, f__34024, g__34026, h__34028, i__34030, j__34032)
}
}else {
var k__34034 = cljs.core._first.call(null, args__34033);
var args__34035 = cljs.core._rest.call(null, args__34033);
if(argc === 11) {
if(f__34024.cljs$lang$arity$11) {
return f__34024.cljs$lang$arity$11(a__34014, b__34016, c__34018, d__34020, e__34022, f__34024, g__34026, h__34028, i__34030, j__34032, k__34034)
}else {
return f__34024.call(null, a__34014, b__34016, c__34018, d__34020, e__34022, f__34024, g__34026, h__34028, i__34030, j__34032, k__34034)
}
}else {
var l__34036 = cljs.core._first.call(null, args__34035);
var args__34037 = cljs.core._rest.call(null, args__34035);
if(argc === 12) {
if(f__34024.cljs$lang$arity$12) {
return f__34024.cljs$lang$arity$12(a__34014, b__34016, c__34018, d__34020, e__34022, f__34024, g__34026, h__34028, i__34030, j__34032, k__34034, l__34036)
}else {
return f__34024.call(null, a__34014, b__34016, c__34018, d__34020, e__34022, f__34024, g__34026, h__34028, i__34030, j__34032, k__34034, l__34036)
}
}else {
var m__34038 = cljs.core._first.call(null, args__34037);
var args__34039 = cljs.core._rest.call(null, args__34037);
if(argc === 13) {
if(f__34024.cljs$lang$arity$13) {
return f__34024.cljs$lang$arity$13(a__34014, b__34016, c__34018, d__34020, e__34022, f__34024, g__34026, h__34028, i__34030, j__34032, k__34034, l__34036, m__34038)
}else {
return f__34024.call(null, a__34014, b__34016, c__34018, d__34020, e__34022, f__34024, g__34026, h__34028, i__34030, j__34032, k__34034, l__34036, m__34038)
}
}else {
var n__34040 = cljs.core._first.call(null, args__34039);
var args__34041 = cljs.core._rest.call(null, args__34039);
if(argc === 14) {
if(f__34024.cljs$lang$arity$14) {
return f__34024.cljs$lang$arity$14(a__34014, b__34016, c__34018, d__34020, e__34022, f__34024, g__34026, h__34028, i__34030, j__34032, k__34034, l__34036, m__34038, n__34040)
}else {
return f__34024.call(null, a__34014, b__34016, c__34018, d__34020, e__34022, f__34024, g__34026, h__34028, i__34030, j__34032, k__34034, l__34036, m__34038, n__34040)
}
}else {
var o__34042 = cljs.core._first.call(null, args__34041);
var args__34043 = cljs.core._rest.call(null, args__34041);
if(argc === 15) {
if(f__34024.cljs$lang$arity$15) {
return f__34024.cljs$lang$arity$15(a__34014, b__34016, c__34018, d__34020, e__34022, f__34024, g__34026, h__34028, i__34030, j__34032, k__34034, l__34036, m__34038, n__34040, o__34042)
}else {
return f__34024.call(null, a__34014, b__34016, c__34018, d__34020, e__34022, f__34024, g__34026, h__34028, i__34030, j__34032, k__34034, l__34036, m__34038, n__34040, o__34042)
}
}else {
var p__34044 = cljs.core._first.call(null, args__34043);
var args__34045 = cljs.core._rest.call(null, args__34043);
if(argc === 16) {
if(f__34024.cljs$lang$arity$16) {
return f__34024.cljs$lang$arity$16(a__34014, b__34016, c__34018, d__34020, e__34022, f__34024, g__34026, h__34028, i__34030, j__34032, k__34034, l__34036, m__34038, n__34040, o__34042, p__34044)
}else {
return f__34024.call(null, a__34014, b__34016, c__34018, d__34020, e__34022, f__34024, g__34026, h__34028, i__34030, j__34032, k__34034, l__34036, m__34038, n__34040, o__34042, p__34044)
}
}else {
var q__34046 = cljs.core._first.call(null, args__34045);
var args__34047 = cljs.core._rest.call(null, args__34045);
if(argc === 17) {
if(f__34024.cljs$lang$arity$17) {
return f__34024.cljs$lang$arity$17(a__34014, b__34016, c__34018, d__34020, e__34022, f__34024, g__34026, h__34028, i__34030, j__34032, k__34034, l__34036, m__34038, n__34040, o__34042, p__34044, q__34046)
}else {
return f__34024.call(null, a__34014, b__34016, c__34018, d__34020, e__34022, f__34024, g__34026, h__34028, i__34030, j__34032, k__34034, l__34036, m__34038, n__34040, o__34042, p__34044, q__34046)
}
}else {
var r__34048 = cljs.core._first.call(null, args__34047);
var args__34049 = cljs.core._rest.call(null, args__34047);
if(argc === 18) {
if(f__34024.cljs$lang$arity$18) {
return f__34024.cljs$lang$arity$18(a__34014, b__34016, c__34018, d__34020, e__34022, f__34024, g__34026, h__34028, i__34030, j__34032, k__34034, l__34036, m__34038, n__34040, o__34042, p__34044, q__34046, r__34048)
}else {
return f__34024.call(null, a__34014, b__34016, c__34018, d__34020, e__34022, f__34024, g__34026, h__34028, i__34030, j__34032, k__34034, l__34036, m__34038, n__34040, o__34042, p__34044, q__34046, r__34048)
}
}else {
var s__34050 = cljs.core._first.call(null, args__34049);
var args__34051 = cljs.core._rest.call(null, args__34049);
if(argc === 19) {
if(f__34024.cljs$lang$arity$19) {
return f__34024.cljs$lang$arity$19(a__34014, b__34016, c__34018, d__34020, e__34022, f__34024, g__34026, h__34028, i__34030, j__34032, k__34034, l__34036, m__34038, n__34040, o__34042, p__34044, q__34046, r__34048, s__34050)
}else {
return f__34024.call(null, a__34014, b__34016, c__34018, d__34020, e__34022, f__34024, g__34026, h__34028, i__34030, j__34032, k__34034, l__34036, m__34038, n__34040, o__34042, p__34044, q__34046, r__34048, s__34050)
}
}else {
var t__34052 = cljs.core._first.call(null, args__34051);
var args__34053 = cljs.core._rest.call(null, args__34051);
if(argc === 20) {
if(f__34024.cljs$lang$arity$20) {
return f__34024.cljs$lang$arity$20(a__34014, b__34016, c__34018, d__34020, e__34022, f__34024, g__34026, h__34028, i__34030, j__34032, k__34034, l__34036, m__34038, n__34040, o__34042, p__34044, q__34046, r__34048, s__34050, t__34052)
}else {
return f__34024.call(null, a__34014, b__34016, c__34018, d__34020, e__34022, f__34024, g__34026, h__34028, i__34030, j__34032, k__34034, l__34036, m__34038, n__34040, o__34042, p__34044, q__34046, r__34048, s__34050, t__34052)
}
}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__34068 = f.cljs$lang$maxFixedArity;
if(cljs.core.truth_(f.cljs$lang$applyTo)) {
var bc__34069 = cljs.core.bounded_count.call(null, args, fixed_arity__34068 + 1);
if(bc__34069 <= fixed_arity__34068) {
return cljs.core.apply_to.call(null, f, bc__34069, 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__34070 = cljs.core.list_STAR_.call(null, x, args);
var fixed_arity__34071 = f.cljs$lang$maxFixedArity;
if(cljs.core.truth_(f.cljs$lang$applyTo)) {
var bc__34072 = cljs.core.bounded_count.call(null, arglist__34070, fixed_arity__34071 + 1);
if(bc__34072 <= fixed_arity__34071) {
return cljs.core.apply_to.call(null, f, bc__34072, arglist__34070)
}else {
return f.cljs$lang$applyTo(arglist__34070)
}
}else {
return f.apply(f, cljs.core.to_array.call(null, arglist__34070))
}
};
var apply__4 = function(f, x, y, args) {
var arglist__34073 = cljs.core.list_STAR_.call(null, x, y, args);
var fixed_arity__34074 = f.cljs$lang$maxFixedArity;
if(cljs.core.truth_(f.cljs$lang$applyTo)) {
var bc__34075 = cljs.core.bounded_count.call(null, arglist__34073, fixed_arity__34074 + 1);
if(bc__34075 <= fixed_arity__34074) {
return cljs.core.apply_to.call(null, f, bc__34075, arglist__34073)
}else {
return f.cljs$lang$applyTo(arglist__34073)
}
}else {
return f.apply(f, cljs.core.to_array.call(null, arglist__34073))
}
};
var apply__5 = function(f, x, y, z, args) {
var arglist__34076 = cljs.core.list_STAR_.call(null, x, y, z, args);
var fixed_arity__34077 = f.cljs$lang$maxFixedArity;
if(cljs.core.truth_(f.cljs$lang$applyTo)) {
var bc__34078 = cljs.core.bounded_count.call(null, arglist__34076, fixed_arity__34077 + 1);
if(bc__34078 <= fixed_arity__34077) {
return cljs.core.apply_to.call(null, f, bc__34078, arglist__34076)
}else {
return f.cljs$lang$applyTo(arglist__34076)
}
}else {
return f.apply(f, cljs.core.to_array.call(null, arglist__34076))
}
};
var apply__6 = function() {
var G__34082__delegate = function(f, a, b, c, d, args) {
var arglist__34079 = 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__34080 = f.cljs$lang$maxFixedArity;
if(cljs.core.truth_(f.cljs$lang$applyTo)) {
var bc__34081 = cljs.core.bounded_count.call(null, arglist__34079, fixed_arity__34080 + 1);
if(bc__34081 <= fixed_arity__34080) {
return cljs.core.apply_to.call(null, f, bc__34081, arglist__34079)
}else {
return f.cljs$lang$applyTo(arglist__34079)
}
}else {
return f.apply(f, cljs.core.to_array.call(null, arglist__34079))
}
};
var G__34082 = 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__34082__delegate.call(this, f, a, b, c, d, args)
};
G__34082.cljs$lang$maxFixedArity = 5;
G__34082.cljs$lang$applyTo = function(arglist__34083) {
var f = cljs.core.first(arglist__34083);
var a = cljs.core.first(cljs.core.next(arglist__34083));
var b = cljs.core.first(cljs.core.next(cljs.core.next(arglist__34083)));
var c = cljs.core.first(cljs.core.next(cljs.core.next(cljs.core.next(arglist__34083))));
var d = cljs.core.first(cljs.core.next(cljs.core.next(cljs.core.next(cljs.core.next(arglist__34083)))));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(cljs.core.next(cljs.core.next(arglist__34083)))));
return G__34082__delegate(f, a, b, c, d, args)
};
G__34082.cljs$lang$arity$variadic = G__34082__delegate;
return G__34082
}();
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__34084) {
var obj = cljs.core.first(arglist__34084);
var f = cljs.core.first(cljs.core.next(arglist__34084));
var args = cljs.core.rest(cljs.core.next(arglist__34084));
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__34085__delegate = function(x, y, more) {
return cljs.core.not.call(null, cljs.core.apply.call(null, cljs.core._EQ_, x, y, more))
};
var G__34085 = 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__34085__delegate.call(this, x, y, more)
};
G__34085.cljs$lang$maxFixedArity = 2;
G__34085.cljs$lang$applyTo = function(arglist__34086) {
var x = cljs.core.first(arglist__34086);
var y = cljs.core.first(cljs.core.next(arglist__34086));
var more = cljs.core.rest(cljs.core.next(arglist__34086));
return G__34085__delegate(x, y, more)
};
G__34085.cljs$lang$arity$variadic = G__34085__delegate;
return G__34085
}();
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__34087 = pred;
var G__34088 = cljs.core.next.call(null, coll);
pred = G__34087;
coll = G__34088;
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____34090 = pred.call(null, cljs.core.first.call(null, coll));
if(cljs.core.truth_(or__3824__auto____34090)) {
return or__3824__auto____34090
}else {
var G__34091 = pred;
var G__34092 = cljs.core.next.call(null, coll);
pred = G__34091;
coll = G__34092;
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__34093 = null;
var G__34093__0 = function() {
return cljs.core.not.call(null, f.call(null))
};
var G__34093__1 = function(x) {
return cljs.core.not.call(null, f.call(null, x))
};
var G__34093__2 = function(x, y) {
return cljs.core.not.call(null, f.call(null, x, y))
};
var G__34093__3 = function() {
var G__34094__delegate = function(x, y, zs) {
return cljs.core.not.call(null, cljs.core.apply.call(null, f, x, y, zs))
};
var G__34094 = 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__34094__delegate.call(this, x, y, zs)
};
G__34094.cljs$lang$maxFixedArity = 2;
G__34094.cljs$lang$applyTo = function(arglist__34095) {
var x = cljs.core.first(arglist__34095);
var y = cljs.core.first(cljs.core.next(arglist__34095));
var zs = cljs.core.rest(cljs.core.next(arglist__34095));
return G__34094__delegate(x, y, zs)
};
G__34094.cljs$lang$arity$variadic = G__34094__delegate;
return G__34094
}();
G__34093 = function(x, y, var_args) {
var zs = var_args;
switch(arguments.length) {
case 0:
return G__34093__0.call(this);
case 1:
return G__34093__1.call(this, x);
case 2:
return G__34093__2.call(this, x, y);
default:
return G__34093__3.cljs$lang$arity$variadic(x, y, cljs.core.array_seq(arguments, 2))
}
throw"Invalid arity: " + arguments.length;
};
G__34093.cljs$lang$maxFixedArity = 2;
G__34093.cljs$lang$applyTo = G__34093__3.cljs$lang$applyTo;
return G__34093
}()
};
cljs.core.constantly = function constantly(x) {
return function() {
var G__34096__delegate = function(args) {
return x
};
var G__34096 = 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__34096__delegate.call(this, args)
};
G__34096.cljs$lang$maxFixedArity = 0;
G__34096.cljs$lang$applyTo = function(arglist__34097) {
var args = cljs.core.seq(arglist__34097);
return G__34096__delegate(args)
};
G__34096.cljs$lang$arity$variadic = G__34096__delegate;
return G__34096
}()
};
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__34104 = null;
var G__34104__0 = function() {
return f.call(null, g.call(null))
};
var G__34104__1 = function(x) {
return f.call(null, g.call(null, x))
};
var G__34104__2 = function(x, y) {
return f.call(null, g.call(null, x, y))
};
var G__34104__3 = function(x, y, z) {
return f.call(null, g.call(null, x, y, z))
};
var G__34104__4 = function() {
var G__34105__delegate = function(x, y, z, args) {
return f.call(null, cljs.core.apply.call(null, g, x, y, z, args))
};
var G__34105 = 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__34105__delegate.call(this, x, y, z, args)
};
G__34105.cljs$lang$maxFixedArity = 3;
G__34105.cljs$lang$applyTo = function(arglist__34106) {
var x = cljs.core.first(arglist__34106);
var y = cljs.core.first(cljs.core.next(arglist__34106));
var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__34106)));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__34106)));
return G__34105__delegate(x, y, z, args)
};
G__34105.cljs$lang$arity$variadic = G__34105__delegate;
return G__34105
}();
G__34104 = function(x, y, z, var_args) {
var args = var_args;
switch(arguments.length) {
case 0:
return G__34104__0.call(this);
case 1:
return G__34104__1.call(this, x);
case 2:
return G__34104__2.call(this, x, y);
case 3:
return G__34104__3.call(this, x, y, z);
default:
return G__34104__4.cljs$lang$arity$variadic(x, y, z, cljs.core.array_seq(arguments, 3))
}
throw"Invalid arity: " + arguments.length;
};
G__34104.cljs$lang$maxFixedArity = 3;
G__34104.cljs$lang$applyTo = G__34104__4.cljs$lang$applyTo;
return G__34104
}()
};
var comp__3 = function(f, g, h) {
return function() {
var G__34107 = null;
var G__34107__0 = function() {
return f.call(null, g.call(null, h.call(null)))
};
var G__34107__1 = function(x) {
return f.call(null, g.call(null, h.call(null, x)))
};
var G__34107__2 = function(x, y) {
return f.call(null, g.call(null, h.call(null, x, y)))
};
var G__34107__3 = function(x, y, z) {
return f.call(null, g.call(null, h.call(null, x, y, z)))
};
var G__34107__4 = function() {
var G__34108__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__34108 = 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__34108__delegate.call(this, x, y, z, args)
};
G__34108.cljs$lang$maxFixedArity = 3;
G__34108.cljs$lang$applyTo = function(arglist__34109) {
var x = cljs.core.first(arglist__34109);
var y = cljs.core.first(cljs.core.next(arglist__34109));
var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__34109)));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__34109)));
return G__34108__delegate(x, y, z, args)
};
G__34108.cljs$lang$arity$variadic = G__34108__delegate;
return G__34108
}();
G__34107 = function(x, y, z, var_args) {
var args = var_args;
switch(arguments.length) {
case 0:
return G__34107__0.call(this);
case 1:
return G__34107__1.call(this, x);
case 2:
return G__34107__2.call(this, x, y);
case 3:
return G__34107__3.call(this, x, y, z);
default:
return G__34107__4.cljs$lang$arity$variadic(x, y, z, cljs.core.array_seq(arguments, 3))
}
throw"Invalid arity: " + arguments.length;
};
G__34107.cljs$lang$maxFixedArity = 3;
G__34107.cljs$lang$applyTo = G__34107__4.cljs$lang$applyTo;
return G__34107
}()
};
var comp__4 = function() {
var G__34110__delegate = function(f1, f2, f3, fs) {
var fs__34101 = cljs.core.reverse.call(null, cljs.core.list_STAR_.call(null, f1, f2, f3, fs));
return function() {
var G__34111__delegate = function(args) {
var ret__34102 = cljs.core.apply.call(null, cljs.core.first.call(null, fs__34101), args);
var fs__34103 = cljs.core.next.call(null, fs__34101);
while(true) {
if(fs__34103) {
var G__34112 = cljs.core.first.call(null, fs__34103).call(null, ret__34102);
var G__34113 = cljs.core.next.call(null, fs__34103);
ret__34102 = G__34112;
fs__34103 = G__34113;
continue
}else {
return ret__34102
}
break
}
};
var G__34111 = 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__34111__delegate.call(this, args)
};
G__34111.cljs$lang$maxFixedArity = 0;
G__34111.cljs$lang$applyTo = function(arglist__34114) {
var args = cljs.core.seq(arglist__34114);
return G__34111__delegate(args)
};
G__34111.cljs$lang$arity$variadic = G__34111__delegate;
return G__34111
}()
};
var G__34110 = 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__34110__delegate.call(this, f1, f2, f3, fs)
};
G__34110.cljs$lang$maxFixedArity = 3;
G__34110.cljs$lang$applyTo = function(arglist__34115) {
var f1 = cljs.core.first(arglist__34115);
var f2 = cljs.core.first(cljs.core.next(arglist__34115));
var f3 = cljs.core.first(cljs.core.next(cljs.core.next(arglist__34115)));
var fs = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__34115)));
return G__34110__delegate(f1, f2, f3, fs)
};
G__34110.cljs$lang$arity$variadic = G__34110__delegate;
return G__34110
}();
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__34116__delegate = function(args) {
return cljs.core.apply.call(null, f, arg1, args)
};
var G__34116 = 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__34116__delegate.call(this, args)
};
G__34116.cljs$lang$maxFixedArity = 0;
G__34116.cljs$lang$applyTo = function(arglist__34117) {
var args = cljs.core.seq(arglist__34117);
return G__34116__delegate(args)
};
G__34116.cljs$lang$arity$variadic = G__34116__delegate;
return G__34116
}()
};
var partial__3 = function(f, arg1, arg2) {
return function() {
var G__34118__delegate = function(args) {
return cljs.core.apply.call(null, f, arg1, arg2, args)
};
var G__34118 = 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__34118__delegate.call(this, args)
};
G__34118.cljs$lang$maxFixedArity = 0;
G__34118.cljs$lang$applyTo = function(arglist__34119) {
var args = cljs.core.seq(arglist__34119);
return G__34118__delegate(args)
};
G__34118.cljs$lang$arity$variadic = G__34118__delegate;
return G__34118
}()
};
var partial__4 = function(f, arg1, arg2, arg3) {
return function() {
var G__34120__delegate = function(args) {
return cljs.core.apply.call(null, f, arg1, arg2, arg3, args)
};
var G__34120 = 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__34120__delegate.call(this, args)
};
G__34120.cljs$lang$maxFixedArity = 0;
G__34120.cljs$lang$applyTo = function(arglist__34121) {
var args = cljs.core.seq(arglist__34121);
return G__34120__delegate(args)
};
G__34120.cljs$lang$arity$variadic = G__34120__delegate;
return G__34120
}()
};
var partial__5 = function() {
var G__34122__delegate = function(f, arg1, arg2, arg3, more) {
return function() {
var G__34123__delegate = function(args) {
return cljs.core.apply.call(null, f, arg1, arg2, arg3, cljs.core.concat.call(null, more, args))
};
var G__34123 = 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__34123__delegate.call(this, args)
};
G__34123.cljs$lang$maxFixedArity = 0;
G__34123.cljs$lang$applyTo = function(arglist__34124) {
var args = cljs.core.seq(arglist__34124);
return G__34123__delegate(args)
};
G__34123.cljs$lang$arity$variadic = G__34123__delegate;
return G__34123
}()
};
var G__34122 = 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__34122__delegate.call(this, f, arg1, arg2, arg3, more)
};
G__34122.cljs$lang$maxFixedArity = 4;
G__34122.cljs$lang$applyTo = function(arglist__34125) {
var f = cljs.core.first(arglist__34125);
var arg1 = cljs.core.first(cljs.core.next(arglist__34125));
var arg2 = cljs.core.first(cljs.core.next(cljs.core.next(arglist__34125)));
var arg3 = cljs.core.first(cljs.core.next(cljs.core.next(cljs.core.next(arglist__34125))));
var more = cljs.core.rest(cljs.core.next(cljs.core.next(cljs.core.next(arglist__34125))));
return G__34122__delegate(f, arg1, arg2, arg3, more)
};
G__34122.cljs$lang$arity$variadic = G__34122__delegate;
return G__34122
}();
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__34126 = null;
var G__34126__1 = function(a) {
return f.call(null, a == null ? x : a)
};
var G__34126__2 = function(a, b) {
return f.call(null, a == null ? x : a, b)
};
var G__34126__3 = function(a, b, c) {
return f.call(null, a == null ? x : a, b, c)
};
var G__34126__4 = function() {
var G__34127__delegate = function(a, b, c, ds) {
return cljs.core.apply.call(null, f, a == null ? x : a, b, c, ds)
};
var G__34127 = 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__34127__delegate.call(this, a, b, c, ds)
};
G__34127.cljs$lang$maxFixedArity = 3;
G__34127.cljs$lang$applyTo = function(arglist__34128) {
var a = cljs.core.first(arglist__34128);
var b = cljs.core.first(cljs.core.next(arglist__34128));
var c = cljs.core.first(cljs.core.next(cljs.core.next(arglist__34128)));
var ds = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__34128)));
return G__34127__delegate(a, b, c, ds)
};
G__34127.cljs$lang$arity$variadic = G__34127__delegate;
return G__34127
}();
G__34126 = function(a, b, c, var_args) {
var ds = var_args;
switch(arguments.length) {
case 1:
return G__34126__1.call(this, a);
case 2:
return G__34126__2.call(this, a, b);
case 3:
return G__34126__3.call(this, a, b, c);
default:
return G__34126__4.cljs$lang$arity$variadic(a, b, c, cljs.core.array_seq(arguments, 3))
}
throw"Invalid arity: " + arguments.length;
};
G__34126.cljs$lang$maxFixedArity = 3;
G__34126.cljs$lang$applyTo = G__34126__4.cljs$lang$applyTo;
return G__34126
}()
};
var fnil__3 = function(f, x, y) {
return function() {
var G__34129 = null;
var G__34129__2 = function(a, b) {
return f.call(null, a == null ? x : a, b == null ? y : b)
};
var G__34129__3 = function(a, b, c) {
return f.call(null, a == null ? x : a, b == null ? y : b, c)
};
var G__34129__4 = function() {
var G__34130__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__34130 = 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__34130__delegate.call(this, a, b, c, ds)
};
G__34130.cljs$lang$maxFixedArity = 3;
G__34130.cljs$lang$applyTo = function(arglist__34131) {
var a = cljs.core.first(arglist__34131);
var b = cljs.core.first(cljs.core.next(arglist__34131));
var c = cljs.core.first(cljs.core.next(cljs.core.next(arglist__34131)));
var ds = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__34131)));
return G__34130__delegate(a, b, c, ds)
};
G__34130.cljs$lang$arity$variadic = G__34130__delegate;
return G__34130
}();
G__34129 = function(a, b, c, var_args) {
var ds = var_args;
switch(arguments.length) {
case 2:
return G__34129__2.call(this, a, b);
case 3:
return G__34129__3.call(this, a, b, c);
default:
return G__34129__4.cljs$lang$arity$variadic(a, b, c, cljs.core.array_seq(arguments, 3))
}
throw"Invalid arity: " + arguments.length;
};
G__34129.cljs$lang$maxFixedArity = 3;
G__34129.cljs$lang$applyTo = G__34129__4.cljs$lang$applyTo;
return G__34129
}()
};
var fnil__4 = function(f, x, y, z) {
return function() {
var G__34132 = null;
var G__34132__2 = function(a, b) {
return f.call(null, a == null ? x : a, b == null ? y : b)
};
var G__34132__3 = function(a, b, c) {
return f.call(null, a == null ? x : a, b == null ? y : b, c == null ? z : c)
};
var G__34132__4 = function() {
var G__34133__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__34133 = 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__34133__delegate.call(this, a, b, c, ds)
};
G__34133.cljs$lang$maxFixedArity = 3;
G__34133.cljs$lang$applyTo = function(arglist__34134) {
var a = cljs.core.first(arglist__34134);
var b = cljs.core.first(cljs.core.next(arglist__34134));
var c = cljs.core.first(cljs.core.next(cljs.core.next(arglist__34134)));
var ds = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__34134)));
return G__34133__delegate(a, b, c, ds)
};
G__34133.cljs$lang$arity$variadic = G__34133__delegate;
return G__34133
}();
G__34132 = function(a, b, c, var_args) {
var ds = var_args;
switch(arguments.length) {
case 2:
return G__34132__2.call(this, a, b);
case 3:
return G__34132__3.call(this, a, b, c);
default:
return G__34132__4.cljs$lang$arity$variadic(a, b, c, cljs.core.array_seq(arguments, 3))
}
throw"Invalid arity: " + arguments.length;
};
G__34132.cljs$lang$maxFixedArity = 3;
G__34132.cljs$lang$applyTo = G__34132__4.cljs$lang$applyTo;
return G__34132
}()
};
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__34150 = function mapi(idx, coll) {
return new cljs.core.LazySeq(null, false, function() {
var temp__3974__auto____34158 = cljs.core.seq.call(null, coll);
if(temp__3974__auto____34158) {
var s__34159 = temp__3974__auto____34158;
if(cljs.core.chunked_seq_QMARK_.call(null, s__34159)) {
var c__34160 = cljs.core.chunk_first.call(null, s__34159);
var size__34161 = cljs.core.count.call(null, c__34160);
var b__34162 = cljs.core.chunk_buffer.call(null, size__34161);
var n__2547__auto____34163 = size__34161;
var i__34164 = 0;
while(true) {
if(i__34164 < n__2547__auto____34163) {
cljs.core.chunk_append.call(null, b__34162, f.call(null, idx + i__34164, cljs.core._nth.call(null, c__34160, i__34164)));
var G__34165 = i__34164 + 1;
i__34164 = G__34165;
continue
}else {
}
break
}
return cljs.core.chunk_cons.call(null, cljs.core.chunk.call(null, b__34162), mapi.call(null, idx + size__34161, cljs.core.chunk_rest.call(null, s__34159)))
}else {
return cljs.core.cons.call(null, f.call(null, idx, cljs.core.first.call(null, s__34159)), mapi.call(null, idx + 1, cljs.core.rest.call(null, s__34159)))
}
}else {
return null
}
}, null)
};
return mapi__34150.call(null, 0, coll)
};
cljs.core.keep = function keep(f, coll) {
return new cljs.core.LazySeq(null, false, function() {
var temp__3974__auto____34175 = cljs.core.seq.call(null, coll);
if(temp__3974__auto____34175) {
var s__34176 = temp__3974__auto____34175;
if(cljs.core.chunked_seq_QMARK_.call(null, s__34176)) {
var c__34177 = cljs.core.chunk_first.call(null, s__34176);
var size__34178 = cljs.core.count.call(null, c__34177);
var b__34179 = cljs.core.chunk_buffer.call(null, size__34178);
var n__2547__auto____34180 = size__34178;
var i__34181 = 0;
while(true) {
if(i__34181 < n__2547__auto____34180) {
var x__34182 = f.call(null, cljs.core._nth.call(null, c__34177, i__34181));
if(x__34182 == null) {
}else {
cljs.core.chunk_append.call(null, b__34179, x__34182)
}
var G__34184 = i__34181 + 1;
i__34181 = G__34184;
continue
}else {
}
break
}
return cljs.core.chunk_cons.call(null, cljs.core.chunk.call(null, b__34179), keep.call(null, f, cljs.core.chunk_rest.call(null, s__34176)))
}else {
var x__34183 = f.call(null, cljs.core.first.call(null, s__34176));
if(x__34183 == null) {
return keep.call(null, f, cljs.core.rest.call(null, s__34176))
}else {
return cljs.core.cons.call(null, x__34183, keep.call(null, f, cljs.core.rest.call(null, s__34176)))
}
}
}else {
return null
}
}, null)
};
cljs.core.keep_indexed = function keep_indexed(f, coll) {
var keepi__34210 = function keepi(idx, coll) {
return new cljs.core.LazySeq(null, false, function() {
var temp__3974__auto____34220 = cljs.core.seq.call(null, coll);
if(temp__3974__auto____34220) {
var s__34221 = temp__3974__auto____34220;
if(cljs.core.chunked_seq_QMARK_.call(null, s__34221)) {
var c__34222 = cljs.core.chunk_first.call(null, s__34221);
var size__34223 = cljs.core.count.call(null, c__34222);
var b__34224 = cljs.core.chunk_buffer.call(null, size__34223);
var n__2547__auto____34225 = size__34223;
var i__34226 = 0;
while(true) {
if(i__34226 < n__2547__auto____34225) {
var x__34227 = f.call(null, idx + i__34226, cljs.core._nth.call(null, c__34222, i__34226));
if(x__34227 == null) {
}else {
cljs.core.chunk_append.call(null, b__34224, x__34227)
}
var G__34229 = i__34226 + 1;
i__34226 = G__34229;
continue
}else {
}
break
}
return cljs.core.chunk_cons.call(null, cljs.core.chunk.call(null, b__34224), keepi.call(null, idx + size__34223, cljs.core.chunk_rest.call(null, s__34221)))
}else {
var x__34228 = f.call(null, idx, cljs.core.first.call(null, s__34221));
if(x__34228 == null) {
return keepi.call(null, idx + 1, cljs.core.rest.call(null, s__34221))
}else {
return cljs.core.cons.call(null, x__34228, keepi.call(null, idx + 1, cljs.core.rest.call(null, s__34221)))
}
}
}else {
return null
}
}, null)
};
return keepi__34210.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____34315 = p.call(null, x);
if(cljs.core.truth_(and__3822__auto____34315)) {
return p.call(null, y)
}else {
return and__3822__auto____34315
}
}())
};
var ep1__3 = function(x, y, z) {
return cljs.core.boolean$.call(null, function() {
var and__3822__auto____34316 = p.call(null, x);
if(cljs.core.truth_(and__3822__auto____34316)) {
var and__3822__auto____34317 = p.call(null, y);
if(cljs.core.truth_(and__3822__auto____34317)) {
return p.call(null, z)
}else {
return and__3822__auto____34317
}
}else {
return and__3822__auto____34316
}
}())
};
var ep1__4 = function() {
var G__34386__delegate = function(x, y, z, args) {
return cljs.core.boolean$.call(null, function() {
var and__3822__auto____34318 = ep1.call(null, x, y, z);
if(cljs.core.truth_(and__3822__auto____34318)) {
return cljs.core.every_QMARK_.call(null, p, args)
}else {
return and__3822__auto____34318
}
}())
};
var G__34386 = 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__34386__delegate.call(this, x, y, z, args)
};
G__34386.cljs$lang$maxFixedArity = 3;
G__34386.cljs$lang$applyTo = function(arglist__34387) {
var x = cljs.core.first(arglist__34387);
var y = cljs.core.first(cljs.core.next(arglist__34387));
var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__34387)));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__34387)));
return G__34386__delegate(x, y, z, args)
};
G__34386.cljs$lang$arity$variadic = G__34386__delegate;
return G__34386
}();
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____34330 = p1.call(null, x);
if(cljs.core.truth_(and__3822__auto____34330)) {
return p2.call(null, x)
}else {
return and__3822__auto____34330
}
}())
};
var ep2__2 = function(x, y) {
return cljs.core.boolean$.call(null, function() {
var and__3822__auto____34331 = p1.call(null, x);
if(cljs.core.truth_(and__3822__auto____34331)) {
var and__3822__auto____34332 = p1.call(null, y);
if(cljs.core.truth_(and__3822__auto____34332)) {
var and__3822__auto____34333 = p2.call(null, x);
if(cljs.core.truth_(and__3822__auto____34333)) {
return p2.call(null, y)
}else {
return and__3822__auto____34333
}
}else {
return and__3822__auto____34332
}
}else {
return and__3822__auto____34331
}
}())
};
var ep2__3 = function(x, y, z) {
return cljs.core.boolean$.call(null, function() {
var and__3822__auto____34334 = p1.call(null, x);
if(cljs.core.truth_(and__3822__auto____34334)) {
var and__3822__auto____34335 = p1.call(null, y);
if(cljs.core.truth_(and__3822__auto____34335)) {
var and__3822__auto____34336 = p1.call(null, z);
if(cljs.core.truth_(and__3822__auto____34336)) {
var and__3822__auto____34337 = p2.call(null, x);
if(cljs.core.truth_(and__3822__auto____34337)) {
var and__3822__auto____34338 = p2.call(null, y);
if(cljs.core.truth_(and__3822__auto____34338)) {
return p2.call(null, z)
}else {
return and__3822__auto____34338
}
}else {
return and__3822__auto____34337
}
}else {
return and__3822__auto____34336
}
}else {
return and__3822__auto____34335
}
}else {
return and__3822__auto____34334
}
}())
};
var ep2__4 = function() {
var G__34388__delegate = function(x, y, z, args) {
return cljs.core.boolean$.call(null, function() {
var and__3822__auto____34339 = ep2.call(null, x, y, z);
if(cljs.core.truth_(and__3822__auto____34339)) {
return cljs.core.every_QMARK_.call(null, function(p1__34185_SHARP_) {
var and__3822__auto____34340 = p1.call(null, p1__34185_SHARP_);
if(cljs.core.truth_(and__3822__auto____34340)) {
return p2.call(null, p1__34185_SHARP_)
}else {
return and__3822__auto____34340
}
}, args)
}else {
return and__3822__auto____34339
}
}())
};
var G__34388 = 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__34388__delegate.call(this, x, y, z, args)
};
G__34388.cljs$lang$maxFixedArity = 3;
G__34388.cljs$lang$applyTo = function(arglist__34389) {
var x = cljs.core.first(arglist__34389);
var y = cljs.core.first(cljs.core.next(arglist__34389));
var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__34389)));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__34389)));
return G__34388__delegate(x, y, z, args)
};
G__34388.cljs$lang$arity$variadic = G__34388__delegate;
return G__34388
}();
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____34359 = p1.call(null, x);
if(cljs.core.truth_(and__3822__auto____34359)) {
var and__3822__auto____34360 = p2.call(null, x);
if(cljs.core.truth_(and__3822__auto____34360)) {
return p3.call(null, x)
}else {
return and__3822__auto____34360
}
}else {
return and__3822__auto____34359
}
}())
};
var ep3__2 = function(x, y) {
return cljs.core.boolean$.call(null, function() {
var and__3822__auto____34361 = p1.call(null, x);
if(cljs.core.truth_(and__3822__auto____34361)) {
var and__3822__auto____34362 = p2.call(null, x);
if(cljs.core.truth_(and__3822__auto____34362)) {
var and__3822__auto____34363 = p3.call(null, x);
if(cljs.core.truth_(and__3822__auto____34363)) {
var and__3822__auto____34364 = p1.call(null, y);
if(cljs.core.truth_(and__3822__auto____34364)) {
var and__3822__auto____34365 = p2.call(null, y);
if(cljs.core.truth_(and__3822__auto____34365)) {
return p3.call(null, y)
}else {
return and__3822__auto____34365
}
}else {
return and__3822__auto____34364
}
}else {
return and__3822__auto____34363
}
}else {
return and__3822__auto____34362
}
}else {
return and__3822__auto____34361
}
}())
};
var ep3__3 = function(x, y, z) {
return cljs.core.boolean$.call(null, function() {
var and__3822__auto____34366 = p1.call(null, x);
if(cljs.core.truth_(and__3822__auto____34366)) {
var and__3822__auto____34367 = p2.call(null, x);
if(cljs.core.truth_(and__3822__auto____34367)) {
var and__3822__auto____34368 = p3.call(null, x);
if(cljs.core.truth_(and__3822__auto____34368)) {
var and__3822__auto____34369 = p1.call(null, y);
if(cljs.core.truth_(and__3822__auto____34369)) {
var and__3822__auto____34370 = p2.call(null, y);
if(cljs.core.truth_(and__3822__auto____34370)) {
var and__3822__auto____34371 = p3.call(null, y);
if(cljs.core.truth_(and__3822__auto____34371)) {
var and__3822__auto____34372 = p1.call(null, z);
if(cljs.core.truth_(and__3822__auto____34372)) {
var and__3822__auto____34373 = p2.call(null, z);
if(cljs.core.truth_(and__3822__auto____34373)) {
return p3.call(null, z)
}else {
return and__3822__auto____34373
}
}else {
return and__3822__auto____34372
}
}else {
return and__3822__auto____34371
}
}else {
return and__3822__auto____34370
}
}else {
return and__3822__auto____34369
}
}else {
return and__3822__auto____34368
}
}else {
return and__3822__auto____34367
}
}else {
return and__3822__auto____34366
}
}())
};
var ep3__4 = function() {
var G__34390__delegate = function(x, y, z, args) {
return cljs.core.boolean$.call(null, function() {
var and__3822__auto____34374 = ep3.call(null, x, y, z);
if(cljs.core.truth_(and__3822__auto____34374)) {
return cljs.core.every_QMARK_.call(null, function(p1__34186_SHARP_) {
var and__3822__auto____34375 = p1.call(null, p1__34186_SHARP_);
if(cljs.core.truth_(and__3822__auto____34375)) {
var and__3822__auto____34376 = p2.call(null, p1__34186_SHARP_);
if(cljs.core.truth_(and__3822__auto____34376)) {
return p3.call(null, p1__34186_SHARP_)
}else {
return and__3822__auto____34376
}
}else {
return and__3822__auto____34375
}
}, args)
}else {
return and__3822__auto____34374
}
}())
};
var G__34390 = 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__34390__delegate.call(this, x, y, z, args)
};
G__34390.cljs$lang$maxFixedArity = 3;
G__34390.cljs$lang$applyTo = function(arglist__34391) {
var x = cljs.core.first(arglist__34391);
var y = cljs.core.first(cljs.core.next(arglist__34391));
var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__34391)));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__34391)));
return G__34390__delegate(x, y, z, args)
};
G__34390.cljs$lang$arity$variadic = G__34390__delegate;
return G__34390
}();
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__34392__delegate = function(p1, p2, p3, ps) {
var ps__34377 = 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__34187_SHARP_) {
return p1__34187_SHARP_.call(null, x)
}, ps__34377)
};
var epn__2 = function(x, y) {
return cljs.core.every_QMARK_.call(null, function(p1__34188_SHARP_) {
var and__3822__auto____34382 = p1__34188_SHARP_.call(null, x);
if(cljs.core.truth_(and__3822__auto____34382)) {
return p1__34188_SHARP_.call(null, y)
}else {
return and__3822__auto____34382
}
}, ps__34377)
};
var epn__3 = function(x, y, z) {
return cljs.core.every_QMARK_.call(null, function(p1__34189_SHARP_) {
var and__3822__auto____34383 = p1__34189_SHARP_.call(null, x);
if(cljs.core.truth_(and__3822__auto____34383)) {
var and__3822__auto____34384 = p1__34189_SHARP_.call(null, y);
if(cljs.core.truth_(and__3822__auto____34384)) {
return p1__34189_SHARP_.call(null, z)
}else {
return and__3822__auto____34384
}
}else {
return and__3822__auto____34383
}
}, ps__34377)
};
var epn__4 = function() {
var G__34393__delegate = function(x, y, z, args) {
return cljs.core.boolean$.call(null, function() {
var and__3822__auto____34385 = epn.call(null, x, y, z);
if(cljs.core.truth_(and__3822__auto____34385)) {
return cljs.core.every_QMARK_.call(null, function(p1__34190_SHARP_) {
return cljs.core.every_QMARK_.call(null, p1__34190_SHARP_, args)
}, ps__34377)
}else {
return and__3822__auto____34385
}
}())
};
var G__34393 = 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__34393__delegate.call(this, x, y, z, args)
};
G__34393.cljs$lang$maxFixedArity = 3;
G__34393.cljs$lang$applyTo = function(arglist__34394) {
var x = cljs.core.first(arglist__34394);
var y = cljs.core.first(cljs.core.next(arglist__34394));
var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__34394)));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__34394)));
return G__34393__delegate(x, y, z, args)
};
G__34393.cljs$lang$arity$variadic = G__34393__delegate;
return G__34393
}();
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__34392 = 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__34392__delegate.call(this, p1, p2, p3, ps)
};
G__34392.cljs$lang$maxFixedArity = 3;
G__34392.cljs$lang$applyTo = function(arglist__34395) {
var p1 = cljs.core.first(arglist__34395);
var p2 = cljs.core.first(cljs.core.next(arglist__34395));
var p3 = cljs.core.first(cljs.core.next(cljs.core.next(arglist__34395)));
var ps = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__34395)));
return G__34392__delegate(p1, p2, p3, ps)
};
G__34392.cljs$lang$arity$variadic = G__34392__delegate;
return G__34392
}();
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____34476 = p.call(null, x);
if(cljs.core.truth_(or__3824__auto____34476)) {
return or__3824__auto____34476
}else {
return p.call(null, y)
}
};
var sp1__3 = function(x, y, z) {
var or__3824__auto____34477 = p.call(null, x);
if(cljs.core.truth_(or__3824__auto____34477)) {
return or__3824__auto____34477
}else {
var or__3824__auto____34478 = p.call(null, y);
if(cljs.core.truth_(or__3824__auto____34478)) {
return or__3824__auto____34478
}else {
return p.call(null, z)
}
}
};
var sp1__4 = function() {
var G__34547__delegate = function(x, y, z, args) {
var or__3824__auto____34479 = sp1.call(null, x, y, z);
if(cljs.core.truth_(or__3824__auto____34479)) {
return or__3824__auto____34479
}else {
return cljs.core.some.call(null, p, args)
}
};
var G__34547 = 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__34547__delegate.call(this, x, y, z, args)
};
G__34547.cljs$lang$maxFixedArity = 3;
G__34547.cljs$lang$applyTo = function(arglist__34548) {
var x = cljs.core.first(arglist__34548);
var y = cljs.core.first(cljs.core.next(arglist__34548));
var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__34548)));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__34548)));
return G__34547__delegate(x, y, z, args)
};
G__34547.cljs$lang$arity$variadic = G__34547__delegate;
return G__34547
}();
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____34491 = p1.call(null, x);
if(cljs.core.truth_(or__3824__auto____34491)) {
return or__3824__auto____34491
}else {
return p2.call(null, x)
}
};
var sp2__2 = function(x, y) {
var or__3824__auto____34492 = p1.call(null, x);
if(cljs.core.truth_(or__3824__auto____34492)) {
return or__3824__auto____34492
}else {
var or__3824__auto____34493 = p1.call(null, y);
if(cljs.core.truth_(or__3824__auto____34493)) {
return or__3824__auto____34493
}else {
var or__3824__auto____34494 = p2.call(null, x);
if(cljs.core.truth_(or__3824__auto____34494)) {
return or__3824__auto____34494
}else {
return p2.call(null, y)
}
}
}
};
var sp2__3 = function(x, y, z) {
var or__3824__auto____34495 = p1.call(null, x);
if(cljs.core.truth_(or__3824__auto____34495)) {
return or__3824__auto____34495
}else {
var or__3824__auto____34496 = p1.call(null, y);
if(cljs.core.truth_(or__3824__auto____34496)) {
return or__3824__auto____34496
}else {
var or__3824__auto____34497 = p1.call(null, z);
if(cljs.core.truth_(or__3824__auto____34497)) {
return or__3824__auto____34497
}else {
var or__3824__auto____34498 = p2.call(null, x);
if(cljs.core.truth_(or__3824__auto____34498)) {
return or__3824__auto____34498
}else {
var or__3824__auto____34499 = p2.call(null, y);
if(cljs.core.truth_(or__3824__auto____34499)) {
return or__3824__auto____34499
}else {
return p2.call(null, z)
}
}
}
}
}
};
var sp2__4 = function() {
var G__34549__delegate = function(x, y, z, args) {
var or__3824__auto____34500 = sp2.call(null, x, y, z);
if(cljs.core.truth_(or__3824__auto____34500)) {
return or__3824__auto____34500
}else {
return cljs.core.some.call(null, function(p1__34230_SHARP_) {
var or__3824__auto____34501 = p1.call(null, p1__34230_SHARP_);
if(cljs.core.truth_(or__3824__auto____34501)) {
return or__3824__auto____34501
}else {
return p2.call(null, p1__34230_SHARP_)
}
}, args)
}
};
var G__34549 = 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__34549__delegate.call(this, x, y, z, args)
};
G__34549.cljs$lang$maxFixedArity = 3;
G__34549.cljs$lang$applyTo = function(arglist__34550) {
var x = cljs.core.first(arglist__34550);
var y = cljs.core.first(cljs.core.next(arglist__34550));
var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__34550)));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__34550)));
return G__34549__delegate(x, y, z, args)
};
G__34549.cljs$lang$arity$variadic = G__34549__delegate;
return G__34549
}();
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____34520 = p1.call(null, x);
if(cljs.core.truth_(or__3824__auto____34520)) {
return or__3824__auto____34520
}else {
var or__3824__auto____34521 = p2.call(null, x);
if(cljs.core.truth_(or__3824__auto____34521)) {
return or__3824__auto____34521
}else {
return p3.call(null, x)
}
}
};
var sp3__2 = function(x, y) {
var or__3824__auto____34522 = p1.call(null, x);
if(cljs.core.truth_(or__3824__auto____34522)) {
return or__3824__auto____34522
}else {
var or__3824__auto____34523 = p2.call(null, x);
if(cljs.core.truth_(or__3824__auto____34523)) {
return or__3824__auto____34523
}else {
var or__3824__auto____34524 = p3.call(null, x);
if(cljs.core.truth_(or__3824__auto____34524)) {
return or__3824__auto____34524
}else {
var or__3824__auto____34525 = p1.call(null, y);
if(cljs.core.truth_(or__3824__auto____34525)) {
return or__3824__auto____34525
}else {
var or__3824__auto____34526 = p2.call(null, y);
if(cljs.core.truth_(or__3824__auto____34526)) {
return or__3824__auto____34526
}else {
return p3.call(null, y)
}
}
}
}
}
};
var sp3__3 = function(x, y, z) {
var or__3824__auto____34527 = p1.call(null, x);
if(cljs.core.truth_(or__3824__auto____34527)) {
return or__3824__auto____34527
}else {
var or__3824__auto____34528 = p2.call(null, x);
if(cljs.core.truth_(or__3824__auto____34528)) {
return or__3824__auto____34528
}else {
var or__3824__auto____34529 = p3.call(null, x);
if(cljs.core.truth_(or__3824__auto____34529)) {
return or__3824__auto____34529
}else {
var or__3824__auto____34530 = p1.call(null, y);
if(cljs.core.truth_(or__3824__auto____34530)) {
return or__3824__auto____34530
}else {
var or__3824__auto____34531 = p2.call(null, y);
if(cljs.core.truth_(or__3824__auto____34531)) {
return or__3824__auto____34531
}else {
var or__3824__auto____34532 = p3.call(null, y);
if(cljs.core.truth_(or__3824__auto____34532)) {
return or__3824__auto____34532
}else {
var or__3824__auto____34533 = p1.call(null, z);
if(cljs.core.truth_(or__3824__auto____34533)) {
return or__3824__auto____34533
}else {
var or__3824__auto____34534 = p2.call(null, z);
if(cljs.core.truth_(or__3824__auto____34534)) {
return or__3824__auto____34534
}else {
return p3.call(null, z)
}
}
}
}
}
}
}
}
};
var sp3__4 = function() {
var G__34551__delegate = function(x, y, z, args) {
var or__3824__auto____34535 = sp3.call(null, x, y, z);
if(cljs.core.truth_(or__3824__auto____34535)) {
return or__3824__auto____34535
}else {
return cljs.core.some.call(null, function(p1__34231_SHARP_) {
var or__3824__auto____34536 = p1.call(null, p1__34231_SHARP_);
if(cljs.core.truth_(or__3824__auto____34536)) {
return or__3824__auto____34536
}else {
var or__3824__auto____34537 = p2.call(null, p1__34231_SHARP_);
if(cljs.core.truth_(or__3824__auto____34537)) {
return or__3824__auto____34537
}else {
return p3.call(null, p1__34231_SHARP_)
}
}
}, args)
}
};
var G__34551 = 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__34551__delegate.call(this, x, y, z, args)
};
G__34551.cljs$lang$maxFixedArity = 3;
G__34551.cljs$lang$applyTo = function(arglist__34552) {
var x = cljs.core.first(arglist__34552);
var y = cljs.core.first(cljs.core.next(arglist__34552));
var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__34552)));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__34552)));
return G__34551__delegate(x, y, z, args)
};
G__34551.cljs$lang$arity$variadic = G__34551__delegate;
return G__34551
}();
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__34553__delegate = function(p1, p2, p3, ps) {
var ps__34538 = 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__34232_SHARP_) {
return p1__34232_SHARP_.call(null, x)
}, ps__34538)
};
var spn__2 = function(x, y) {
return cljs.core.some.call(null, function(p1__34233_SHARP_) {
var or__3824__auto____34543 = p1__34233_SHARP_.call(null, x);
if(cljs.core.truth_(or__3824__auto____34543)) {
return or__3824__auto____34543
}else {
return p1__34233_SHARP_.call(null, y)
}
}, ps__34538)
};
var spn__3 = function(x, y, z) {
return cljs.core.some.call(null, function(p1__34234_SHARP_) {
var or__3824__auto____34544 = p1__34234_SHARP_.call(null, x);
if(cljs.core.truth_(or__3824__auto____34544)) {
return or__3824__auto____34544
}else {
var or__3824__auto____34545 = p1__34234_SHARP_.call(null, y);
if(cljs.core.truth_(or__3824__auto____34545)) {
return or__3824__auto____34545
}else {
return p1__34234_SHARP_.call(null, z)
}
}
}, ps__34538)
};
var spn__4 = function() {
var G__34554__delegate = function(x, y, z, args) {
var or__3824__auto____34546 = spn.call(null, x, y, z);
if(cljs.core.truth_(or__3824__auto____34546)) {
return or__3824__auto____34546
}else {
return cljs.core.some.call(null, function(p1__34235_SHARP_) {
return cljs.core.some.call(null, p1__34235_SHARP_, args)
}, ps__34538)
}
};
var G__34554 = 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__34554__delegate.call(this, x, y, z, args)
};
G__34554.cljs$lang$maxFixedArity = 3;
G__34554.cljs$lang$applyTo = function(arglist__34555) {
var x = cljs.core.first(arglist__34555);
var y = cljs.core.first(cljs.core.next(arglist__34555));
var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__34555)));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__34555)));
return G__34554__delegate(x, y, z, args)
};
G__34554.cljs$lang$arity$variadic = G__34554__delegate;
return G__34554
}();
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__34553 = 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__34553__delegate.call(this, p1, p2, p3, ps)
};
G__34553.cljs$lang$maxFixedArity = 3;
G__34553.cljs$lang$applyTo = function(arglist__34556) {
var p1 = cljs.core.first(arglist__34556);
var p2 = cljs.core.first(cljs.core.next(arglist__34556));
var p3 = cljs.core.first(cljs.core.next(cljs.core.next(arglist__34556)));
var ps = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__34556)));
return G__34553__delegate(p1, p2, p3, ps)
};
G__34553.cljs$lang$arity$variadic = G__34553__delegate;
return G__34553
}();
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____34575 = cljs.core.seq.call(null, coll);
if(temp__3974__auto____34575) {
var s__34576 = temp__3974__auto____34575;
if(cljs.core.chunked_seq_QMARK_.call(null, s__34576)) {
var c__34577 = cljs.core.chunk_first.call(null, s__34576);
var size__34578 = cljs.core.count.call(null, c__34577);
var b__34579 = cljs.core.chunk_buffer.call(null, size__34578);
var n__2547__auto____34580 = size__34578;
var i__34581 = 0;
while(true) {
if(i__34581 < n__2547__auto____34580) {
cljs.core.chunk_append.call(null, b__34579, f.call(null, cljs.core._nth.call(null, c__34577, i__34581)));
var G__34593 = i__34581 + 1;
i__34581 = G__34593;
continue
}else {
}
break
}
return cljs.core.chunk_cons.call(null, cljs.core.chunk.call(null, b__34579), map.call(null, f, cljs.core.chunk_rest.call(null, s__34576)))
}else {
return cljs.core.cons.call(null, f.call(null, cljs.core.first.call(null, s__34576)), map.call(null, f, cljs.core.rest.call(null, s__34576)))
}
}else {
return null
}
}, null)
};
var map__3 = function(f, c1, c2) {
return new cljs.core.LazySeq(null, false, function() {
var s1__34582 = cljs.core.seq.call(null, c1);
var s2__34583 = cljs.core.seq.call(null, c2);
if(function() {
var and__3822__auto____34584 = s1__34582;
if(and__3822__auto____34584) {
return s2__34583
}else {
return and__3822__auto____34584
}
}()) {
return cljs.core.cons.call(null, f.call(null, cljs.core.first.call(null, s1__34582), cljs.core.first.call(null, s2__34583)), map.call(null, f, cljs.core.rest.call(null, s1__34582), cljs.core.rest.call(null, s2__34583)))
}else {
return null
}
}, null)
};
var map__4 = function(f, c1, c2, c3) {
return new cljs.core.LazySeq(null, false, function() {
var s1__34585 = cljs.core.seq.call(null, c1);
var s2__34586 = cljs.core.seq.call(null, c2);
var s3__34587 = cljs.core.seq.call(null, c3);
if(function() {
var and__3822__auto____34588 = s1__34585;
if(and__3822__auto____34588) {
var and__3822__auto____34589 = s2__34586;
if(and__3822__auto____34589) {
return s3__34587
}else {
return and__3822__auto____34589
}
}else {
return and__3822__auto____34588
}
}()) {
return cljs.core.cons.call(null, f.call(null, cljs.core.first.call(null, s1__34585), cljs.core.first.call(null, s2__34586), cljs.core.first.call(null, s3__34587)), map.call(null, f, cljs.core.rest.call(null, s1__34585), cljs.core.rest.call(null, s2__34586), cljs.core.rest.call(null, s3__34587)))
}else {
return null
}
}, null)
};
var map__5 = function() {
var G__34594__delegate = function(f, c1, c2, c3, colls) {
var step__34592 = function step(cs) {
return new cljs.core.LazySeq(null, false, function() {
var ss__34591 = map.call(null, cljs.core.seq, cs);
if(cljs.core.every_QMARK_.call(null, cljs.core.identity, ss__34591)) {
return cljs.core.cons.call(null, map.call(null, cljs.core.first, ss__34591), step.call(null, map.call(null, cljs.core.rest, ss__34591)))
}else {
return null
}
}, null)
};
return map.call(null, function(p1__34396_SHARP_) {
return cljs.core.apply.call(null, f, p1__34396_SHARP_)
}, step__34592.call(null, cljs.core.conj.call(null, colls, c3, c2, c1)))
};
var G__34594 = 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__34594__delegate.call(this, f, c1, c2, c3, colls)
};
G__34594.cljs$lang$maxFixedArity = 4;
G__34594.cljs$lang$applyTo = function(arglist__34595) {
var f = cljs.core.first(arglist__34595);
var c1 = cljs.core.first(cljs.core.next(arglist__34595));
var c2 = cljs.core.first(cljs.core.next(cljs.core.next(arglist__34595)));
var c3 = cljs.core.first(cljs.core.next(cljs.core.next(cljs.core.next(arglist__34595))));
var colls = cljs.core.rest(cljs.core.next(cljs.core.next(cljs.core.next(arglist__34595))));
return G__34594__delegate(f, c1, c2, c3, colls)
};
G__34594.cljs$lang$arity$variadic = G__34594__delegate;
return G__34594
}();
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____34598 = cljs.core.seq.call(null, coll);
if(temp__3974__auto____34598) {
var s__34599 = temp__3974__auto____34598;
return cljs.core.cons.call(null, cljs.core.first.call(null, s__34599), take.call(null, n - 1, cljs.core.rest.call(null, s__34599)))
}else {
return null
}
}else {
return null
}
}, null)
};
cljs.core.drop = function drop(n, coll) {
var step__34605 = function(n, coll) {
while(true) {
var s__34603 = cljs.core.seq.call(null, coll);
if(cljs.core.truth_(function() {
var and__3822__auto____34604 = n > 0;
if(and__3822__auto____34604) {
return s__34603
}else {
return and__3822__auto____34604
}
}())) {
var G__34606 = n - 1;
var G__34607 = cljs.core.rest.call(null, s__34603);
n = G__34606;
coll = G__34607;
continue
}else {
return s__34603
}
break
}
};
return new cljs.core.LazySeq(null, false, function() {
return step__34605.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__34610 = cljs.core.seq.call(null, coll);
var lead__34611 = cljs.core.seq.call(null, cljs.core.drop.call(null, n, coll));
while(true) {
if(lead__34611) {
var G__34612 = cljs.core.next.call(null, s__34610);
var G__34613 = cljs.core.next.call(null, lead__34611);
s__34610 = G__34612;
lead__34611 = G__34613;
continue
}else {
return s__34610
}
break
}
};
cljs.core.drop_while = function drop_while(pred, coll) {
var step__34619 = function(pred, coll) {
while(true) {
var s__34617 = cljs.core.seq.call(null, coll);
if(cljs.core.truth_(function() {
var and__3822__auto____34618 = s__34617;
if(and__3822__auto____34618) {
return pred.call(null, cljs.core.first.call(null, s__34617))
}else {
return and__3822__auto____34618
}
}())) {
var G__34620 = pred;
var G__34621 = cljs.core.rest.call(null, s__34617);
pred = G__34620;
coll = G__34621;
continue
}else {
return s__34617
}
break
}
};
return new cljs.core.LazySeq(null, false, function() {
return step__34619.call(null, pred, coll)
}, null)
};
cljs.core.cycle = function cycle(coll) {
return new cljs.core.LazySeq(null, false, function() {
var temp__3974__auto____34624 = cljs.core.seq.call(null, coll);
if(temp__3974__auto____34624) {
var s__34625 = temp__3974__auto____34624;
return cljs.core.concat.call(null, s__34625, cycle.call(null, s__34625))
}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__34630 = cljs.core.seq.call(null, c1);
var s2__34631 = cljs.core.seq.call(null, c2);
if(function() {
var and__3822__auto____34632 = s1__34630;
if(and__3822__auto____34632) {
return s2__34631
}else {
return and__3822__auto____34632
}
}()) {
return cljs.core.cons.call(null, cljs.core.first.call(null, s1__34630), cljs.core.cons.call(null, cljs.core.first.call(null, s2__34631), interleave.call(null, cljs.core.rest.call(null, s1__34630), cljs.core.rest.call(null, s2__34631))))
}else {
return null
}
}, null)
};
var interleave__3 = function() {
var G__34634__delegate = function(c1, c2, colls) {
return new cljs.core.LazySeq(null, false, function() {
var ss__34633 = 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__34633)) {
return cljs.core.concat.call(null, cljs.core.map.call(null, cljs.core.first, ss__34633), cljs.core.apply.call(null, interleave, cljs.core.map.call(null, cljs.core.rest, ss__34633)))
}else {
return null
}
}, null)
};
var G__34634 = 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__34634__delegate.call(this, c1, c2, colls)
};
G__34634.cljs$lang$maxFixedArity = 2;
G__34634.cljs$lang$applyTo = function(arglist__34635) {
var c1 = cljs.core.first(arglist__34635);
var c2 = cljs.core.first(cljs.core.next(arglist__34635));
var colls = cljs.core.rest(cljs.core.next(arglist__34635));
return G__34634__delegate(c1, c2, colls)
};
G__34634.cljs$lang$arity$variadic = G__34634__delegate;
return G__34634
}();
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__34645 = function cat(coll, colls) {
return new cljs.core.LazySeq(null, false, function() {
var temp__3971__auto____34643 = cljs.core.seq.call(null, coll);
if(temp__3971__auto____34643) {
var coll__34644 = temp__3971__auto____34643;
return cljs.core.cons.call(null, cljs.core.first.call(null, coll__34644), cat.call(null, cljs.core.rest.call(null, coll__34644), 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__34645.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__34646__delegate = function(f, coll, colls) {
return cljs.core.flatten1.call(null, cljs.core.apply.call(null, cljs.core.map, f, coll, colls))
};
var G__34646 = 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__34646__delegate.call(this, f, coll, colls)
};
G__34646.cljs$lang$maxFixedArity = 2;
G__34646.cljs$lang$applyTo = function(arglist__34647) {
var f = cljs.core.first(arglist__34647);
var coll = cljs.core.first(cljs.core.next(arglist__34647));
var colls = cljs.core.rest(cljs.core.next(arglist__34647));
return G__34646__delegate(f, coll, colls)
};
G__34646.cljs$lang$arity$variadic = G__34646__delegate;
return G__34646
}();
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____34657 = cljs.core.seq.call(null, coll);
if(temp__3974__auto____34657) {
var s__34658 = temp__3974__auto____34657;
if(cljs.core.chunked_seq_QMARK_.call(null, s__34658)) {
var c__34659 = cljs.core.chunk_first.call(null, s__34658);
var size__34660 = cljs.core.count.call(null, c__34659);
var b__34661 = cljs.core.chunk_buffer.call(null, size__34660);
var n__2547__auto____34662 = size__34660;
var i__34663 = 0;
while(true) {
if(i__34663 < n__2547__auto____34662) {
if(cljs.core.truth_(pred.call(null, cljs.core._nth.call(null, c__34659, i__34663)))) {
cljs.core.chunk_append.call(null, b__34661, cljs.core._nth.call(null, c__34659, i__34663))
}else {
}
var G__34666 = i__34663 + 1;
i__34663 = G__34666;
continue
}else {
}
break
}
return cljs.core.chunk_cons.call(null, cljs.core.chunk.call(null, b__34661), filter.call(null, pred, cljs.core.chunk_rest.call(null, s__34658)))
}else {
var f__34664 = cljs.core.first.call(null, s__34658);
var r__34665 = cljs.core.rest.call(null, s__34658);
if(cljs.core.truth_(pred.call(null, f__34664))) {
return cljs.core.cons.call(null, f__34664, filter.call(null, pred, r__34665))
}else {
return filter.call(null, pred, r__34665)
}
}
}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__34669 = 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__34669.call(null, root)
};
cljs.core.flatten = function flatten(x) {
return cljs.core.filter.call(null, function(p1__34667_SHARP_) {
return!cljs.core.sequential_QMARK_.call(null, p1__34667_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__34673__34674 = to;
if(G__34673__34674) {
if(function() {
var or__3824__auto____34675 = G__34673__34674.cljs$lang$protocol_mask$partition1$ & 1;
if(or__3824__auto____34675) {
return or__3824__auto____34675
}else {
return G__34673__34674.cljs$core$IEditableCollection$
}
}()) {
return true
}else {
if(!G__34673__34674.cljs$lang$protocol_mask$partition1$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IEditableCollection, G__34673__34674)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IEditableCollection, G__34673__34674)
}
}()) {
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__34676__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__34676 = 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__34676__delegate.call(this, f, c1, c2, c3, colls)
};
G__34676.cljs$lang$maxFixedArity = 4;
G__34676.cljs$lang$applyTo = function(arglist__34677) {
var f = cljs.core.first(arglist__34677);
var c1 = cljs.core.first(cljs.core.next(arglist__34677));
var c2 = cljs.core.first(cljs.core.next(cljs.core.next(arglist__34677)));
var c3 = cljs.core.first(cljs.core.next(cljs.core.next(cljs.core.next(arglist__34677))));
var colls = cljs.core.rest(cljs.core.next(cljs.core.next(cljs.core.next(arglist__34677))));
return G__34676__delegate(f, c1, c2, c3, colls)
};
G__34676.cljs$lang$arity$variadic = G__34676__delegate;
return G__34676
}();
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____34684 = cljs.core.seq.call(null, coll);
if(temp__3974__auto____34684) {
var s__34685 = temp__3974__auto____34684;
var p__34686 = cljs.core.take.call(null, n, s__34685);
if(n === cljs.core.count.call(null, p__34686)) {
return cljs.core.cons.call(null, p__34686, partition.call(null, n, step, cljs.core.drop.call(null, step, s__34685)))
}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____34687 = cljs.core.seq.call(null, coll);
if(temp__3974__auto____34687) {
var s__34688 = temp__3974__auto____34687;
var p__34689 = cljs.core.take.call(null, n, s__34688);
if(n === cljs.core.count.call(null, p__34689)) {
return cljs.core.cons.call(null, p__34689, partition.call(null, n, step, pad, cljs.core.drop.call(null, step, s__34688)))
}else {
return cljs.core.list.call(null, cljs.core.take.call(null, n, cljs.core.concat.call(null, p__34689, 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__34694 = cljs.core.lookup_sentinel;
var m__34695 = m;
var ks__34696 = cljs.core.seq.call(null, ks);
while(true) {
if(ks__34696) {
var m__34697 = cljs.core._lookup.call(null, m__34695, cljs.core.first.call(null, ks__34696), sentinel__34694);
if(sentinel__34694 === m__34697) {
return not_found
}else {
var G__34698 = sentinel__34694;
var G__34699 = m__34697;
var G__34700 = cljs.core.next.call(null, ks__34696);
sentinel__34694 = G__34698;
m__34695 = G__34699;
ks__34696 = G__34700;
continue
}
}else {
return m__34695
}
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__34701, v) {
var vec__34706__34707 = p__34701;
var k__34708 = cljs.core.nth.call(null, vec__34706__34707, 0, null);
var ks__34709 = cljs.core.nthnext.call(null, vec__34706__34707, 1);
if(cljs.core.truth_(ks__34709)) {
return cljs.core.assoc.call(null, m, k__34708, assoc_in.call(null, cljs.core._lookup.call(null, m, k__34708, null), ks__34709, v))
}else {
return cljs.core.assoc.call(null, m, k__34708, v)
}
};
cljs.core.update_in = function() {
var update_in__delegate = function(m, p__34710, f, args) {
var vec__34715__34716 = p__34710;
var k__34717 = cljs.core.nth.call(null, vec__34715__34716, 0, null);
var ks__34718 = cljs.core.nthnext.call(null, vec__34715__34716, 1);
if(cljs.core.truth_(ks__34718)) {
return cljs.core.assoc.call(null, m, k__34717, cljs.core.apply.call(null, update_in, cljs.core._lookup.call(null, m, k__34717, null), ks__34718, f, args))
}else {
return cljs.core.assoc.call(null, m, k__34717, cljs.core.apply.call(null, f, cljs.core._lookup.call(null, m, k__34717, null), args))
}
};
var update_in = function(m, p__34710, 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__34710, f, args)
};
update_in.cljs$lang$maxFixedArity = 3;
update_in.cljs$lang$applyTo = function(arglist__34719) {
var m = cljs.core.first(arglist__34719);
var p__34710 = cljs.core.first(cljs.core.next(arglist__34719));
var f = cljs.core.first(cljs.core.next(cljs.core.next(arglist__34719)));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__34719)));
return update_in__delegate(m, p__34710, 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__2329__auto__) {
return cljs.core.list.call(null, "cljs.core/Vector")
};
cljs.core.Vector.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var this__34722 = this;
var h__2212__auto____34723 = this__34722.__hash;
if(!(h__2212__auto____34723 == null)) {
return h__2212__auto____34723
}else {
var h__2212__auto____34724 = cljs.core.hash_coll.call(null, coll);
this__34722.__hash = h__2212__auto____34724;
return h__2212__auto____34724
}
};
cljs.core.Vector.prototype.cljs$core$ILookup$_lookup$arity$2 = function(coll, k) {
var this__34725 = 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__34726 = 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__34727 = this;
var new_array__34728 = this__34727.array.slice();
new_array__34728[k] = v;
return new cljs.core.Vector(this__34727.meta, new_array__34728, null)
};
cljs.core.Vector.prototype.call = function() {
var G__34759 = null;
var G__34759__2 = function(this_sym34729, k) {
var this__34731 = this;
var this_sym34729__34732 = this;
var coll__34733 = this_sym34729__34732;
return coll__34733.cljs$core$ILookup$_lookup$arity$2(coll__34733, k)
};
var G__34759__3 = function(this_sym34730, k, not_found) {
var this__34731 = this;
var this_sym34730__34734 = this;
var coll__34735 = this_sym34730__34734;
return coll__34735.cljs$core$ILookup$_lookup$arity$3(coll__34735, k, not_found)
};
G__34759 = function(this_sym34730, k, not_found) {
switch(arguments.length) {
case 2:
return G__34759__2.call(this, this_sym34730, k);
case 3:
return G__34759__3.call(this, this_sym34730, k, not_found)
}
throw"Invalid arity: " + arguments.length;
};
return G__34759
}();
cljs.core.Vector.prototype.apply = function(this_sym34720, args34721) {
var this__34736 = this;
return this_sym34720.call.apply(this_sym34720, [this_sym34720].concat(args34721.slice()))
};
cljs.core.Vector.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var this__34737 = this;
var new_array__34738 = this__34737.array.slice();
new_array__34738.push(o);
return new cljs.core.Vector(this__34737.meta, new_array__34738, null)
};
cljs.core.Vector.prototype.toString = function() {
var this__34739 = this;
var this__34740 = this;
return cljs.core.pr_str.call(null, this__34740)
};
cljs.core.Vector.prototype.cljs$core$IReduce$_reduce$arity$2 = function(v, f) {
var this__34741 = this;
return cljs.core.ci_reduce.call(null, this__34741.array, f)
};
cljs.core.Vector.prototype.cljs$core$IReduce$_reduce$arity$3 = function(v, f, start) {
var this__34742 = this;
return cljs.core.ci_reduce.call(null, this__34742.array, f, start)
};
cljs.core.Vector.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var this__34743 = this;
if(this__34743.array.length > 0) {
var vector_seq__34744 = function vector_seq(i) {
return new cljs.core.LazySeq(null, false, function() {
if(i < this__34743.array.length) {
return cljs.core.cons.call(null, this__34743.array[i], vector_seq.call(null, i + 1))
}else {
return null
}
}, null)
};
return vector_seq__34744.call(null, 0)
}else {
return null
}
};
cljs.core.Vector.prototype.cljs$core$ICounted$_count$arity$1 = function(coll) {
var this__34745 = this;
return this__34745.array.length
};
cljs.core.Vector.prototype.cljs$core$IStack$_peek$arity$1 = function(coll) {
var this__34746 = this;
var count__34747 = this__34746.array.length;
if(count__34747 > 0) {
return this__34746.array[count__34747 - 1]
}else {
return null
}
};
cljs.core.Vector.prototype.cljs$core$IStack$_pop$arity$1 = function(coll) {
var this__34748 = this;
if(this__34748.array.length > 0) {
var new_array__34749 = this__34748.array.slice();
new_array__34749.pop();
return new cljs.core.Vector(this__34748.meta, new_array__34749, 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__34750 = 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__34751 = 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__34752 = this;
return new cljs.core.Vector(meta, this__34752.array, this__34752.__hash)
};
cljs.core.Vector.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var this__34753 = this;
return this__34753.meta
};
cljs.core.Vector.prototype.cljs$core$IIndexed$_nth$arity$2 = function(coll, n) {
var this__34754 = this;
if(function() {
var and__3822__auto____34755 = 0 <= n;
if(and__3822__auto____34755) {
return n < this__34754.array.length
}else {
return and__3822__auto____34755
}
}()) {
return this__34754.array[n]
}else {
return null
}
};
cljs.core.Vector.prototype.cljs$core$IIndexed$_nth$arity$3 = function(coll, n, not_found) {
var this__34756 = this;
if(function() {
var and__3822__auto____34757 = 0 <= n;
if(and__3822__auto____34757) {
return n < this__34756.array.length
}else {
return and__3822__auto____34757
}
}()) {
return this__34756.array[n]
}else {
return not_found
}
};
cljs.core.Vector.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var this__34758 = this;
return cljs.core.with_meta.call(null, cljs.core.Vector.EMPTY, this__34758.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__2330__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__34761 = pv.cnt;
if(cnt__34761 < 32) {
return 0
}else {
return cnt__34761 - 1 >>> 5 << 5
}
};
cljs.core.new_path = function new_path(edit, level, node) {
var ll__34767 = level;
var ret__34768 = node;
while(true) {
if(ll__34767 === 0) {
return ret__34768
}else {
var embed__34769 = ret__34768;
var r__34770 = cljs.core.pv_fresh_node.call(null, edit);
var ___34771 = cljs.core.pv_aset.call(null, r__34770, 0, embed__34769);
var G__34772 = ll__34767 - 5;
var G__34773 = r__34770;
ll__34767 = G__34772;
ret__34768 = G__34773;
continue
}
break
}
};
cljs.core.push_tail = function push_tail(pv, level, parent, tailnode) {
var ret__34779 = cljs.core.pv_clone_node.call(null, parent);
var subidx__34780 = pv.cnt - 1 >>> level & 31;
if(5 === level) {
cljs.core.pv_aset.call(null, ret__34779, subidx__34780, tailnode);
return ret__34779
}else {
var child__34781 = cljs.core.pv_aget.call(null, parent, subidx__34780);
if(!(child__34781 == null)) {
var node_to_insert__34782 = push_tail.call(null, pv, level - 5, child__34781, tailnode);
cljs.core.pv_aset.call(null, ret__34779, subidx__34780, node_to_insert__34782);
return ret__34779
}else {
var node_to_insert__34783 = cljs.core.new_path.call(null, null, level - 5, tailnode);
cljs.core.pv_aset.call(null, ret__34779, subidx__34780, node_to_insert__34783);
return ret__34779
}
}
};
cljs.core.array_for = function array_for(pv, i) {
if(function() {
var and__3822__auto____34787 = 0 <= i;
if(and__3822__auto____34787) {
return i < pv.cnt
}else {
return and__3822__auto____34787
}
}()) {
if(i >= cljs.core.tail_off.call(null, pv)) {
return pv.tail
}else {
var node__34788 = pv.root;
var level__34789 = pv.shift;
while(true) {
if(level__34789 > 0) {
var G__34790 = cljs.core.pv_aget.call(null, node__34788, i >>> level__34789 & 31);
var G__34791 = level__34789 - 5;
node__34788 = G__34790;
level__34789 = G__34791;
continue
}else {
return node__34788.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__34794 = cljs.core.pv_clone_node.call(null, node);
if(level === 0) {
cljs.core.pv_aset.call(null, ret__34794, i & 31, val);
return ret__34794
}else {
var subidx__34795 = i >>> level & 31;
cljs.core.pv_aset.call(null, ret__34794, subidx__34795, do_assoc.call(null, pv, level - 5, cljs.core.pv_aget.call(null, node, subidx__34795), i, val));
return ret__34794
}
};
cljs.core.pop_tail = function pop_tail(pv, level, node) {
var subidx__34801 = pv.cnt - 2 >>> level & 31;
if(level > 5) {
var new_child__34802 = pop_tail.call(null, pv, level - 5, cljs.core.pv_aget.call(null, node, subidx__34801));
if(function() {
var and__3822__auto____34803 = new_child__34802 == null;
if(and__3822__auto____34803) {
return subidx__34801 === 0
}else {
return and__3822__auto____34803
}
}()) {
return null
}else {
var ret__34804 = cljs.core.pv_clone_node.call(null, node);
cljs.core.pv_aset.call(null, ret__34804, subidx__34801, new_child__34802);
return ret__34804
}
}else {
if(subidx__34801 === 0) {
return null
}else {
if("\ufdd0'else") {
var ret__34805 = cljs.core.pv_clone_node.call(null, node);
cljs.core.pv_aset.call(null, ret__34805, subidx__34801, null);
return ret__34805
}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__2329__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__34808 = this;
return new cljs.core.TransientVector(this__34808.cnt, this__34808.shift, cljs.core.tv_editable_root.call(null, this__34808.root), cljs.core.tv_editable_tail.call(null, this__34808.tail))
};
cljs.core.PersistentVector.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var this__34809 = this;
var h__2212__auto____34810 = this__34809.__hash;
if(!(h__2212__auto____34810 == null)) {
return h__2212__auto____34810
}else {
var h__2212__auto____34811 = cljs.core.hash_coll.call(null, coll);
this__34809.__hash = h__2212__auto____34811;
return h__2212__auto____34811
}
};
cljs.core.PersistentVector.prototype.cljs$core$ILookup$_lookup$arity$2 = function(coll, k) {
var this__34812 = 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__34813 = 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__34814 = this;
if(function() {
var and__3822__auto____34815 = 0 <= k;
if(and__3822__auto____34815) {
return k < this__34814.cnt
}else {
return and__3822__auto____34815
}
}()) {
if(cljs.core.tail_off.call(null, coll) <= k) {
var new_tail__34816 = this__34814.tail.slice();
new_tail__34816[k & 31] = v;
return new cljs.core.PersistentVector(this__34814.meta, this__34814.cnt, this__34814.shift, this__34814.root, new_tail__34816, null)
}else {
return new cljs.core.PersistentVector(this__34814.meta, this__34814.cnt, this__34814.shift, cljs.core.do_assoc.call(null, coll, this__34814.shift, this__34814.root, k, v), this__34814.tail, null)
}
}else {
if(k === this__34814.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__34814.cnt), cljs.core.str("]")].join(""));
}else {
return null
}
}
}
};
cljs.core.PersistentVector.prototype.call = function() {
var G__34864 = null;
var G__34864__2 = function(this_sym34817, k) {
var this__34819 = this;
var this_sym34817__34820 = this;
var coll__34821 = this_sym34817__34820;
return coll__34821.cljs$core$ILookup$_lookup$arity$2(coll__34821, k)
};
var G__34864__3 = function(this_sym34818, k, not_found) {
var this__34819 = this;
var this_sym34818__34822 = this;
var coll__34823 = this_sym34818__34822;
return coll__34823.cljs$core$ILookup$_lookup$arity$3(coll__34823, k, not_found)
};
G__34864 = function(this_sym34818, k, not_found) {
switch(arguments.length) {
case 2:
return G__34864__2.call(this, this_sym34818, k);
case 3:
return G__34864__3.call(this, this_sym34818, k, not_found)
}
throw"Invalid arity: " + arguments.length;
};
return G__34864
}();
cljs.core.PersistentVector.prototype.apply = function(this_sym34806, args34807) {
var this__34824 = this;
return this_sym34806.call.apply(this_sym34806, [this_sym34806].concat(args34807.slice()))
};
cljs.core.PersistentVector.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 = function(v, f, init) {
var this__34825 = this;
var step_init__34826 = [0, init];
var i__34827 = 0;
while(true) {
if(i__34827 < this__34825.cnt) {
var arr__34828 = cljs.core.array_for.call(null, v, i__34827);
var len__34829 = arr__34828.length;
var init__34833 = function() {
var j__34830 = 0;
var init__34831 = step_init__34826[1];
while(true) {
if(j__34830 < len__34829) {
var init__34832 = f.call(null, init__34831, j__34830 + i__34827, arr__34828[j__34830]);
if(cljs.core.reduced_QMARK_.call(null, init__34832)) {
return init__34832
}else {
var G__34865 = j__34830 + 1;
var G__34866 = init__34832;
j__34830 = G__34865;
init__34831 = G__34866;
continue
}
}else {
step_init__34826[0] = len__34829;
step_init__34826[1] = init__34831;
return init__34831
}
break
}
}();
if(cljs.core.reduced_QMARK_.call(null, init__34833)) {
return cljs.core.deref.call(null, init__34833)
}else {
var G__34867 = i__34827 + step_init__34826[0];
i__34827 = G__34867;
continue
}
}else {
return step_init__34826[1]
}
break
}
};
cljs.core.PersistentVector.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var this__34834 = this;
if(this__34834.cnt - cljs.core.tail_off.call(null, coll) < 32) {
var new_tail__34835 = this__34834.tail.slice();
new_tail__34835.push(o);
return new cljs.core.PersistentVector(this__34834.meta, this__34834.cnt + 1, this__34834.shift, this__34834.root, new_tail__34835, null)
}else {
var root_overflow_QMARK___34836 = this__34834.cnt >>> 5 > 1 << this__34834.shift;
var new_shift__34837 = root_overflow_QMARK___34836 ? this__34834.shift + 5 : this__34834.shift;
var new_root__34839 = root_overflow_QMARK___34836 ? function() {
var n_r__34838 = cljs.core.pv_fresh_node.call(null, null);
cljs.core.pv_aset.call(null, n_r__34838, 0, this__34834.root);
cljs.core.pv_aset.call(null, n_r__34838, 1, cljs.core.new_path.call(null, null, this__34834.shift, new cljs.core.VectorNode(null, this__34834.tail)));
return n_r__34838
}() : cljs.core.push_tail.call(null, coll, this__34834.shift, this__34834.root, new cljs.core.VectorNode(null, this__34834.tail));
return new cljs.core.PersistentVector(this__34834.meta, this__34834.cnt + 1, new_shift__34837, new_root__34839, [o], null)
}
};
cljs.core.PersistentVector.prototype.cljs$core$IReversible$_rseq$arity$1 = function(coll) {
var this__34840 = this;
if(this__34840.cnt > 0) {
return new cljs.core.RSeq(coll, this__34840.cnt - 1, null)
}else {
return cljs.core.List.EMPTY
}
};
cljs.core.PersistentVector.prototype.cljs$core$IMapEntry$_key$arity$1 = function(coll) {
var this__34841 = 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__34842 = this;
return coll.cljs$core$IIndexed$_nth$arity$2(coll, 1)
};
cljs.core.PersistentVector.prototype.toString = function() {
var this__34843 = this;
var this__34844 = this;
return cljs.core.pr_str.call(null, this__34844)
};
cljs.core.PersistentVector.prototype.cljs$core$IReduce$_reduce$arity$2 = function(v, f) {
var this__34845 = 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__34846 = 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__34847 = this;
if(this__34847.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__34848 = this;
return this__34848.cnt
};
cljs.core.PersistentVector.prototype.cljs$core$IStack$_peek$arity$1 = function(coll) {
var this__34849 = this;
if(this__34849.cnt > 0) {
return coll.cljs$core$IIndexed$_nth$arity$2(coll, this__34849.cnt - 1)
}else {
return null
}
};
cljs.core.PersistentVector.prototype.cljs$core$IStack$_pop$arity$1 = function(coll) {
var this__34850 = this;
if(this__34850.cnt === 0) {
throw new Error("Can't pop empty vector");
}else {
if(1 === this__34850.cnt) {
return cljs.core._with_meta.call(null, cljs.core.PersistentVector.EMPTY, this__34850.meta)
}else {
if(1 < this__34850.cnt - cljs.core.tail_off.call(null, coll)) {
return new cljs.core.PersistentVector(this__34850.meta, this__34850.cnt - 1, this__34850.shift, this__34850.root, this__34850.tail.slice(0, -1), null)
}else {
if("\ufdd0'else") {
var new_tail__34851 = cljs.core.array_for.call(null, coll, this__34850.cnt - 2);
var nr__34852 = cljs.core.pop_tail.call(null, coll, this__34850.shift, this__34850.root);
var new_root__34853 = nr__34852 == null ? cljs.core.PersistentVector.EMPTY_NODE : nr__34852;
var cnt_1__34854 = this__34850.cnt - 1;
if(function() {
var and__3822__auto____34855 = 5 < this__34850.shift;
if(and__3822__auto____34855) {
return cljs.core.pv_aget.call(null, new_root__34853, 1) == null
}else {
return and__3822__auto____34855
}
}()) {
return new cljs.core.PersistentVector(this__34850.meta, cnt_1__34854, this__34850.shift - 5, cljs.core.pv_aget.call(null, new_root__34853, 0), new_tail__34851, null)
}else {
return new cljs.core.PersistentVector(this__34850.meta, cnt_1__34854, this__34850.shift, new_root__34853, new_tail__34851, null)
}
}else {
return null
}
}
}
}
};
cljs.core.PersistentVector.prototype.cljs$core$IVector$_assoc_n$arity$3 = function(coll, n, val) {
var this__34856 = 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__34857 = 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__34858 = this;
return new cljs.core.PersistentVector(meta, this__34858.cnt, this__34858.shift, this__34858.root, this__34858.tail, this__34858.__hash)
};
cljs.core.PersistentVector.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var this__34859 = this;
return this__34859.meta
};
cljs.core.PersistentVector.prototype.cljs$core$IIndexed$_nth$arity$2 = function(coll, n) {
var this__34860 = 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__34861 = this;
if(function() {
var and__3822__auto____34862 = 0 <= n;
if(and__3822__auto____34862) {
return n < this__34861.cnt
}else {
return and__3822__auto____34862
}
}()) {
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__34863 = this;
return cljs.core.with_meta.call(null, cljs.core.PersistentVector.EMPTY, this__34863.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__34868 = xs.length;
var xs__34869 = no_clone === true ? xs : xs.slice();
if(l__34868 < 32) {
return new cljs.core.PersistentVector(null, l__34868, 5, cljs.core.PersistentVector.EMPTY_NODE, xs__34869, null)
}else {
var node__34870 = xs__34869.slice(0, 32);
var v__34871 = new cljs.core.PersistentVector(null, 32, 5, cljs.core.PersistentVector.EMPTY_NODE, node__34870, null);
var i__34872 = 32;
var out__34873 = cljs.core._as_transient.call(null, v__34871);
while(true) {
if(i__34872 < l__34868) {
var G__34874 = i__34872 + 1;
var G__34875 = cljs.core.conj_BANG_.call(null, out__34873, xs__34869[i__34872]);
i__34872 = G__34874;
out__34873 = G__34875;
continue
}else {
return cljs.core.persistent_BANG_.call(null, out__34873)
}
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__34876) {
var args = cljs.core.seq(arglist__34876);
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__2329__auto__) {
return cljs.core.list.call(null, "cljs.core/ChunkedSeq")
};
cljs.core.ChunkedSeq.prototype.cljs$core$INext$_next$arity$1 = function(coll) {
var this__34877 = this;
if(this__34877.off + 1 < this__34877.node.length) {
var s__34878 = cljs.core.chunked_seq.call(null, this__34877.vec, this__34877.node, this__34877.i, this__34877.off + 1);
if(s__34878 == null) {
return null
}else {
return s__34878
}
}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__34879 = this;
return cljs.core.cons.call(null, o, coll)
};
cljs.core.ChunkedSeq.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var this__34880 = this;
return coll
};
cljs.core.ChunkedSeq.prototype.cljs$core$ISeq$_first$arity$1 = function(coll) {
var this__34881 = this;
return this__34881.node[this__34881.off]
};
cljs.core.ChunkedSeq.prototype.cljs$core$ISeq$_rest$arity$1 = function(coll) {
var this__34882 = this;
if(this__34882.off + 1 < this__34882.node.length) {
var s__34883 = cljs.core.chunked_seq.call(null, this__34882.vec, this__34882.node, this__34882.i, this__34882.off + 1);
if(s__34883 == null) {
return cljs.core.List.EMPTY
}else {
return s__34883
}
}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__34884 = this;
var l__34885 = this__34884.node.length;
var s__34886 = this__34884.i + l__34885 < cljs.core._count.call(null, this__34884.vec) ? cljs.core.chunked_seq.call(null, this__34884.vec, this__34884.i + l__34885, 0) : null;
if(s__34886 == null) {
return null
}else {
return s__34886
}
};
cljs.core.ChunkedSeq.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var this__34887 = 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__34888 = this;
return cljs.core.chunked_seq.call(null, this__34888.vec, this__34888.node, this__34888.i, this__34888.off, m)
};
cljs.core.ChunkedSeq.prototype.cljs$core$IWithMeta$_meta$arity$1 = function(coll) {
var this__34889 = this;
return this__34889.meta
};
cljs.core.ChunkedSeq.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var this__34890 = this;
return cljs.core.with_meta.call(null, cljs.core.PersistentVector.EMPTY, this__34890.meta)
};
cljs.core.ChunkedSeq.prototype.cljs$core$IChunkedSeq$ = true;
cljs.core.ChunkedSeq.prototype.cljs$core$IChunkedSeq$_chunked_first$arity$1 = function(coll) {
var this__34891 = this;
return cljs.core.array_chunk.call(null, this__34891.node, this__34891.off)
};
cljs.core.ChunkedSeq.prototype.cljs$core$IChunkedSeq$_chunked_rest$arity$1 = function(coll) {
var this__34892 = this;
var l__34893 = this__34892.node.length;
var s__34894 = this__34892.i + l__34893 < cljs.core._count.call(null, this__34892.vec) ? cljs.core.chunked_seq.call(null, this__34892.vec, this__34892.i + l__34893, 0) : null;
if(s__34894 == null) {
return cljs.core.List.EMPTY
}else {
return s__34894
}
};
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__2329__auto__) {
return cljs.core.list.call(null, "cljs.core/Subvec")
};
cljs.core.Subvec.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var this__34897 = this;
var h__2212__auto____34898 = this__34897.__hash;
if(!(h__2212__auto____34898 == null)) {
return h__2212__auto____34898
}else {
var h__2212__auto____34899 = cljs.core.hash_coll.call(null, coll);
this__34897.__hash = h__2212__auto____34899;
return h__2212__auto____34899
}
};
cljs.core.Subvec.prototype.cljs$core$ILookup$_lookup$arity$2 = function(coll, k) {
var this__34900 = 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__34901 = 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__34902 = this;
var v_pos__34903 = this__34902.start + key;
return new cljs.core.Subvec(this__34902.meta, cljs.core._assoc.call(null, this__34902.v, v_pos__34903, val), this__34902.start, this__34902.end > v_pos__34903 + 1 ? this__34902.end : v_pos__34903 + 1, null)
};
cljs.core.Subvec.prototype.call = function() {
var G__34929 = null;
var G__34929__2 = function(this_sym34904, k) {
var this__34906 = this;
var this_sym34904__34907 = this;
var coll__34908 = this_sym34904__34907;
return coll__34908.cljs$core$ILookup$_lookup$arity$2(coll__34908, k)
};
var G__34929__3 = function(this_sym34905, k, not_found) {
var this__34906 = this;
var this_sym34905__34909 = this;
var coll__34910 = this_sym34905__34909;
return coll__34910.cljs$core$ILookup$_lookup$arity$3(coll__34910, k, not_found)
};
G__34929 = function(this_sym34905, k, not_found) {
switch(arguments.length) {
case 2:
return G__34929__2.call(this, this_sym34905, k);
case 3:
return G__34929__3.call(this, this_sym34905, k, not_found)
}
throw"Invalid arity: " + arguments.length;
};
return G__34929
}();
cljs.core.Subvec.prototype.apply = function(this_sym34895, args34896) {
var this__34911 = this;
return this_sym34895.call.apply(this_sym34895, [this_sym34895].concat(args34896.slice()))
};
cljs.core.Subvec.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var this__34912 = this;
return new cljs.core.Subvec(this__34912.meta, cljs.core._assoc_n.call(null, this__34912.v, this__34912.end, o), this__34912.start, this__34912.end + 1, null)
};
cljs.core.Subvec.prototype.toString = function() {
var this__34913 = this;
var this__34914 = this;
return cljs.core.pr_str.call(null, this__34914)
};
cljs.core.Subvec.prototype.cljs$core$IReduce$_reduce$arity$2 = function(coll, f) {
var this__34915 = 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__34916 = 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__34917 = this;
var subvec_seq__34918 = function subvec_seq(i) {
if(i === this__34917.end) {
return null
}else {
return cljs.core.cons.call(null, cljs.core._nth.call(null, this__34917.v, i), new cljs.core.LazySeq(null, false, function() {
return subvec_seq.call(null, i + 1)
}, null))
}
};
return subvec_seq__34918.call(null, this__34917.start)
};
cljs.core.Subvec.prototype.cljs$core$ICounted$_count$arity$1 = function(coll) {
var this__34919 = this;
return this__34919.end - this__34919.start
};
cljs.core.Subvec.prototype.cljs$core$IStack$_peek$arity$1 = function(coll) {
var this__34920 = this;
return cljs.core._nth.call(null, this__34920.v, this__34920.end - 1)
};
cljs.core.Subvec.prototype.cljs$core$IStack$_pop$arity$1 = function(coll) {
var this__34921 = this;
if(this__34921.start === this__34921.end) {
throw new Error("Can't pop empty vector");
}else {
return new cljs.core.Subvec(this__34921.meta, this__34921.v, this__34921.start, this__34921.end - 1, null)
}
};
cljs.core.Subvec.prototype.cljs$core$IVector$_assoc_n$arity$3 = function(coll, n, val) {
var this__34922 = 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__34923 = 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__34924 = this;
return new cljs.core.Subvec(meta, this__34924.v, this__34924.start, this__34924.end, this__34924.__hash)
};
cljs.core.Subvec.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var this__34925 = this;
return this__34925.meta
};
cljs.core.Subvec.prototype.cljs$core$IIndexed$_nth$arity$2 = function(coll, n) {
var this__34926 = this;
return cljs.core._nth.call(null, this__34926.v, this__34926.start + n)
};
cljs.core.Subvec.prototype.cljs$core$IIndexed$_nth$arity$3 = function(coll, n, not_found) {
var this__34927 = this;
return cljs.core._nth.call(null, this__34927.v, this__34927.start + n, not_found)
};
cljs.core.Subvec.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var this__34928 = this;
return cljs.core.with_meta.call(null, cljs.core.Vector.EMPTY, this__34928.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__34931 = cljs.core.make_array.call(null, 32);
cljs.core.array_copy.call(null, tl, 0, ret__34931, 0, tl.length);
return ret__34931
};
cljs.core.tv_push_tail = function tv_push_tail(tv, level, parent, tail_node) {
var ret__34935 = cljs.core.tv_ensure_editable.call(null, tv.root.edit, parent);
var subidx__34936 = tv.cnt - 1 >>> level & 31;
cljs.core.pv_aset.call(null, ret__34935, subidx__34936, level === 5 ? tail_node : function() {
var child__34937 = cljs.core.pv_aget.call(null, ret__34935, subidx__34936);
if(!(child__34937 == null)) {
return tv_push_tail.call(null, tv, level - 5, child__34937, tail_node)
}else {
return cljs.core.new_path.call(null, tv.root.edit, level - 5, tail_node)
}
}());
return ret__34935
};
cljs.core.tv_pop_tail = function tv_pop_tail(tv, level, node) {
var node__34942 = cljs.core.tv_ensure_editable.call(null, tv.root.edit, node);
var subidx__34943 = tv.cnt - 2 >>> level & 31;
if(level > 5) {
var new_child__34944 = tv_pop_tail.call(null, tv, level - 5, cljs.core.pv_aget.call(null, node__34942, subidx__34943));
if(function() {
var and__3822__auto____34945 = new_child__34944 == null;
if(and__3822__auto____34945) {
return subidx__34943 === 0
}else {
return and__3822__auto____34945
}
}()) {
return null
}else {
cljs.core.pv_aset.call(null, node__34942, subidx__34943, new_child__34944);
return node__34942
}
}else {
if(subidx__34943 === 0) {
return null
}else {
if("\ufdd0'else") {
cljs.core.pv_aset.call(null, node__34942, subidx__34943, null);
return node__34942
}else {
return null
}
}
}
};
cljs.core.editable_array_for = function editable_array_for(tv, i) {
if(function() {
var and__3822__auto____34950 = 0 <= i;
if(and__3822__auto____34950) {
return i < tv.cnt
}else {
return and__3822__auto____34950
}
}()) {
if(i >= cljs.core.tail_off.call(null, tv)) {
return tv.tail
}else {
var root__34951 = tv.root;
var node__34952 = root__34951;
var level__34953 = tv.shift;
while(true) {
if(level__34953 > 0) {
var G__34954 = cljs.core.tv_ensure_editable.call(null, root__34951.edit, cljs.core.pv_aget.call(null, node__34952, i >>> level__34953 & 31));
var G__34955 = level__34953 - 5;
node__34952 = G__34954;
level__34953 = G__34955;
continue
}else {
return node__34952.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__2329__auto__) {
return cljs.core.list.call(null, "cljs.core/TransientVector")
};
cljs.core.TransientVector.prototype.call = function() {
var G__34995 = null;
var G__34995__2 = function(this_sym34958, k) {
var this__34960 = this;
var this_sym34958__34961 = this;
var coll__34962 = this_sym34958__34961;
return coll__34962.cljs$core$ILookup$_lookup$arity$2(coll__34962, k)
};
var G__34995__3 = function(this_sym34959, k, not_found) {
var this__34960 = this;
var this_sym34959__34963 = this;
var coll__34964 = this_sym34959__34963;
return coll__34964.cljs$core$ILookup$_lookup$arity$3(coll__34964, k, not_found)
};
G__34995 = function(this_sym34959, k, not_found) {
switch(arguments.length) {
case 2:
return G__34995__2.call(this, this_sym34959, k);
case 3:
return G__34995__3.call(this, this_sym34959, k, not_found)
}
throw"Invalid arity: " + arguments.length;
};
return G__34995
}();
cljs.core.TransientVector.prototype.apply = function(this_sym34956, args34957) {
var this__34965 = this;
return this_sym34956.call.apply(this_sym34956, [this_sym34956].concat(args34957.slice()))
};
cljs.core.TransientVector.prototype.cljs$core$ILookup$_lookup$arity$2 = function(coll, k) {
var this__34966 = 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__34967 = 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__34968 = this;
if(this__34968.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__34969 = this;
if(function() {
var and__3822__auto____34970 = 0 <= n;
if(and__3822__auto____34970) {
return n < this__34969.cnt
}else {
return and__3822__auto____34970
}
}()) {
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__34971 = this;
if(this__34971.root.edit) {
return this__34971.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__34972 = this;
if(this__34972.root.edit) {
if(function() {
var and__3822__auto____34973 = 0 <= n;
if(and__3822__auto____34973) {
return n < this__34972.cnt
}else {
return and__3822__auto____34973
}
}()) {
if(cljs.core.tail_off.call(null, tcoll) <= n) {
this__34972.tail[n & 31] = val;
return tcoll
}else {
var new_root__34978 = function go(level, node) {
var node__34976 = cljs.core.tv_ensure_editable.call(null, this__34972.root.edit, node);
if(level === 0) {
cljs.core.pv_aset.call(null, node__34976, n & 31, val);
return node__34976
}else {
var subidx__34977 = n >>> level & 31;
cljs.core.pv_aset.call(null, node__34976, subidx__34977, go.call(null, level - 5, cljs.core.pv_aget.call(null, node__34976, subidx__34977)));
return node__34976
}
}.call(null, this__34972.shift, this__34972.root);
this__34972.root = new_root__34978;
return tcoll
}
}else {
if(n === this__34972.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__34972.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__34979 = this;
if(this__34979.root.edit) {
if(this__34979.cnt === 0) {
throw new Error("Can't pop empty vector");
}else {
if(1 === this__34979.cnt) {
this__34979.cnt = 0;
return tcoll
}else {
if((this__34979.cnt - 1 & 31) > 0) {
this__34979.cnt = this__34979.cnt - 1;
return tcoll
}else {
if("\ufdd0'else") {
var new_tail__34980 = cljs.core.editable_array_for.call(null, tcoll, this__34979.cnt - 2);
var new_root__34982 = function() {
var nr__34981 = cljs.core.tv_pop_tail.call(null, tcoll, this__34979.shift, this__34979.root);
if(!(nr__34981 == null)) {
return nr__34981
}else {
return new cljs.core.VectorNode(this__34979.root.edit, cljs.core.make_array.call(null, 32))
}
}();
if(function() {
var and__3822__auto____34983 = 5 < this__34979.shift;
if(and__3822__auto____34983) {
return cljs.core.pv_aget.call(null, new_root__34982, 1) == null
}else {
return and__3822__auto____34983
}
}()) {
var new_root__34984 = cljs.core.tv_ensure_editable.call(null, this__34979.root.edit, cljs.core.pv_aget.call(null, new_root__34982, 0));
this__34979.root = new_root__34984;
this__34979.shift = this__34979.shift - 5;
this__34979.cnt = this__34979.cnt - 1;
this__34979.tail = new_tail__34980;
return tcoll
}else {
this__34979.root = new_root__34982;
this__34979.cnt = this__34979.cnt - 1;
this__34979.tail = new_tail__34980;
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__34985 = 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__34986 = this;
if(this__34986.root.edit) {
if(this__34986.cnt - cljs.core.tail_off.call(null, tcoll) < 32) {
this__34986.tail[this__34986.cnt & 31] = o;
this__34986.cnt = this__34986.cnt + 1;
return tcoll
}else {
var tail_node__34987 = new cljs.core.VectorNode(this__34986.root.edit, this__34986.tail);
var new_tail__34988 = cljs.core.make_array.call(null, 32);
new_tail__34988[0] = o;
this__34986.tail = new_tail__34988;
if(this__34986.cnt >>> 5 > 1 << this__34986.shift) {
var new_root_array__34989 = cljs.core.make_array.call(null, 32);
var new_shift__34990 = this__34986.shift + 5;
new_root_array__34989[0] = this__34986.root;
new_root_array__34989[1] = cljs.core.new_path.call(null, this__34986.root.edit, this__34986.shift, tail_node__34987);
this__34986.root = new cljs.core.VectorNode(this__34986.root.edit, new_root_array__34989);
this__34986.shift = new_shift__34990;
this__34986.cnt = this__34986.cnt + 1;
return tcoll
}else {
var new_root__34991 = cljs.core.tv_push_tail.call(null, tcoll, this__34986.shift, this__34986.root, tail_node__34987);
this__34986.root = new_root__34991;
this__34986.cnt = this__34986.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__34992 = this;
if(this__34992.root.edit) {
this__34992.root.edit = null;
var len__34993 = this__34992.cnt - cljs.core.tail_off.call(null, tcoll);
var trimmed_tail__34994 = cljs.core.make_array.call(null, len__34993);
cljs.core.array_copy.call(null, this__34992.tail, 0, trimmed_tail__34994, 0, len__34993);
return new cljs.core.PersistentVector(null, this__34992.cnt, this__34992.shift, this__34992.root, trimmed_tail__34994, 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__2329__auto__) {
return cljs.core.list.call(null, "cljs.core/PersistentQueueSeq")
};
cljs.core.PersistentQueueSeq.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var this__34996 = this;
var h__2212__auto____34997 = this__34996.__hash;
if(!(h__2212__auto____34997 == null)) {
return h__2212__auto____34997
}else {
var h__2212__auto____34998 = cljs.core.hash_coll.call(null, coll);
this__34996.__hash = h__2212__auto____34998;
return h__2212__auto____34998
}
};
cljs.core.PersistentQueueSeq.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var this__34999 = this;
return cljs.core.cons.call(null, o, coll)
};
cljs.core.PersistentQueueSeq.prototype.toString = function() {
var this__35000 = this;
var this__35001 = this;
return cljs.core.pr_str.call(null, this__35001)
};
cljs.core.PersistentQueueSeq.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var this__35002 = this;
return coll
};
cljs.core.PersistentQueueSeq.prototype.cljs$core$ISeq$_first$arity$1 = function(coll) {
var this__35003 = this;
return cljs.core._first.call(null, this__35003.front)
};
cljs.core.PersistentQueueSeq.prototype.cljs$core$ISeq$_rest$arity$1 = function(coll) {
var this__35004 = this;
var temp__3971__auto____35005 = cljs.core.next.call(null, this__35004.front);
if(temp__3971__auto____35005) {
var f1__35006 = temp__3971__auto____35005;
return new cljs.core.PersistentQueueSeq(this__35004.meta, f1__35006, this__35004.rear, null)
}else {
if(this__35004.rear == null) {
return coll.cljs$core$IEmptyableCollection$_empty$arity$1(coll)
}else {
return new cljs.core.PersistentQueueSeq(this__35004.meta, this__35004.rear, null, null)
}
}
};
cljs.core.PersistentQueueSeq.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var this__35007 = 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__35008 = this;
return new cljs.core.PersistentQueueSeq(meta, this__35008.front, this__35008.rear, this__35008.__hash)
};
cljs.core.PersistentQueueSeq.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var this__35009 = this;
return this__35009.meta
};
cljs.core.PersistentQueueSeq.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var this__35010 = this;
return cljs.core.with_meta.call(null, cljs.core.List.EMPTY, this__35010.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__2329__auto__) {
return cljs.core.list.call(null, "cljs.core/PersistentQueue")
};
cljs.core.PersistentQueue.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var this__35011 = this;
var h__2212__auto____35012 = this__35011.__hash;
if(!(h__2212__auto____35012 == null)) {
return h__2212__auto____35012
}else {
var h__2212__auto____35013 = cljs.core.hash_coll.call(null, coll);
this__35011.__hash = h__2212__auto____35013;
return h__2212__auto____35013
}
};
cljs.core.PersistentQueue.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var this__35014 = this;
if(cljs.core.truth_(this__35014.front)) {
return new cljs.core.PersistentQueue(this__35014.meta, this__35014.count + 1, this__35014.front, cljs.core.conj.call(null, function() {
var or__3824__auto____35015 = this__35014.rear;
if(cljs.core.truth_(or__3824__auto____35015)) {
return or__3824__auto____35015
}else {
return cljs.core.PersistentVector.EMPTY
}
}(), o), null)
}else {
return new cljs.core.PersistentQueue(this__35014.meta, this__35014.count + 1, cljs.core.conj.call(null, this__35014.front, o), cljs.core.PersistentVector.EMPTY, null)
}
};
cljs.core.PersistentQueue.prototype.toString = function() {
var this__35016 = this;
var this__35017 = this;
return cljs.core.pr_str.call(null, this__35017)
};
cljs.core.PersistentQueue.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var this__35018 = this;
var rear__35019 = cljs.core.seq.call(null, this__35018.rear);
if(cljs.core.truth_(function() {
var or__3824__auto____35020 = this__35018.front;
if(cljs.core.truth_(or__3824__auto____35020)) {
return or__3824__auto____35020
}else {
return rear__35019
}
}())) {
return new cljs.core.PersistentQueueSeq(null, this__35018.front, cljs.core.seq.call(null, rear__35019), null)
}else {
return null
}
};
cljs.core.PersistentQueue.prototype.cljs$core$ICounted$_count$arity$1 = function(coll) {
var this__35021 = this;
return this__35021.count
};
cljs.core.PersistentQueue.prototype.cljs$core$IStack$_peek$arity$1 = function(coll) {
var this__35022 = this;
return cljs.core._first.call(null, this__35022.front)
};
cljs.core.PersistentQueue.prototype.cljs$core$IStack$_pop$arity$1 = function(coll) {
var this__35023 = this;
if(cljs.core.truth_(this__35023.front)) {
var temp__3971__auto____35024 = cljs.core.next.call(null, this__35023.front);
if(temp__3971__auto____35024) {
var f1__35025 = temp__3971__auto____35024;
return new cljs.core.PersistentQueue(this__35023.meta, this__35023.count - 1, f1__35025, this__35023.rear, null)
}else {
return new cljs.core.PersistentQueue(this__35023.meta, this__35023.count - 1, cljs.core.seq.call(null, this__35023.rear), cljs.core.PersistentVector.EMPTY, null)
}
}else {
return coll
}
};
cljs.core.PersistentQueue.prototype.cljs$core$ISeq$_first$arity$1 = function(coll) {
var this__35026 = this;
return cljs.core.first.call(null, this__35026.front)
};
cljs.core.PersistentQueue.prototype.cljs$core$ISeq$_rest$arity$1 = function(coll) {
var this__35027 = 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__35028 = 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__35029 = this;
return new cljs.core.PersistentQueue(meta, this__35029.count, this__35029.front, this__35029.rear, this__35029.__hash)
};
cljs.core.PersistentQueue.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var this__35030 = this;
return this__35030.meta
};
cljs.core.PersistentQueue.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var this__35031 = 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__2329__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__35032 = 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__35035 = array.length;
var i__35036 = 0;
while(true) {
if(i__35036 < len__35035) {
if(k === array[i__35036]) {
return i__35036
}else {
var G__35037 = i__35036 + incr;
i__35036 = G__35037;
continue
}
}else {
return null
}
break
}
};
cljs.core.obj_map_compare_keys = function obj_map_compare_keys(a, b) {
var a__35040 = cljs.core.hash.call(null, a);
var b__35041 = cljs.core.hash.call(null, b);
if(a__35040 < b__35041) {
return-1
}else {
if(a__35040 > b__35041) {
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__35049 = m.keys;
var len__35050 = ks__35049.length;
var so__35051 = m.strobj;
var out__35052 = cljs.core.with_meta.call(null, cljs.core.PersistentHashMap.EMPTY, cljs.core.meta.call(null, m));
var i__35053 = 0;
var out__35054 = cljs.core.transient$.call(null, out__35052);
while(true) {
if(i__35053 < len__35050) {
var k__35055 = ks__35049[i__35053];
var G__35056 = i__35053 + 1;
var G__35057 = cljs.core.assoc_BANG_.call(null, out__35054, k__35055, so__35051[k__35055]);
i__35053 = G__35056;
out__35054 = G__35057;
continue
}else {
return cljs.core.persistent_BANG_.call(null, cljs.core.assoc_BANG_.call(null, out__35054, k, v))
}
break
}
};
cljs.core.obj_clone = function obj_clone(obj, ks) {
var new_obj__35063 = {};
var l__35064 = ks.length;
var i__35065 = 0;
while(true) {
if(i__35065 < l__35064) {
var k__35066 = ks[i__35065];
new_obj__35063[k__35066] = obj[k__35066];
var G__35067 = i__35065 + 1;
i__35065 = G__35067;
continue
}else {
}
break
}
return new_obj__35063
};
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__2329__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__35070 = 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__35071 = this;
var h__2212__auto____35072 = this__35071.__hash;
if(!(h__2212__auto____35072 == null)) {
return h__2212__auto____35072
}else {
var h__2212__auto____35073 = cljs.core.hash_imap.call(null, coll);
this__35071.__hash = h__2212__auto____35073;
return h__2212__auto____35073
}
};
cljs.core.ObjMap.prototype.cljs$core$ILookup$_lookup$arity$2 = function(coll, k) {
var this__35074 = 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__35075 = this;
if(function() {
var and__3822__auto____35076 = goog.isString(k);
if(and__3822__auto____35076) {
return!(cljs.core.scan_array.call(null, 1, k, this__35075.keys) == null)
}else {
return and__3822__auto____35076
}
}()) {
return this__35075.strobj[k]
}else {
return not_found
}
};
cljs.core.ObjMap.prototype.cljs$core$IAssociative$_assoc$arity$3 = function(coll, k, v) {
var this__35077 = this;
if(goog.isString(k)) {
if(function() {
var or__3824__auto____35078 = this__35077.update_count > cljs.core.ObjMap.HASHMAP_THRESHOLD;
if(or__3824__auto____35078) {
return or__3824__auto____35078
}else {
return this__35077.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__35077.keys) == null)) {
var new_strobj__35079 = cljs.core.obj_clone.call(null, this__35077.strobj, this__35077.keys);
new_strobj__35079[k] = v;
return new cljs.core.ObjMap(this__35077.meta, this__35077.keys, new_strobj__35079, this__35077.update_count + 1, null)
}else {
var new_strobj__35080 = cljs.core.obj_clone.call(null, this__35077.strobj, this__35077.keys);
var new_keys__35081 = this__35077.keys.slice();
new_strobj__35080[k] = v;
new_keys__35081.push(k);
return new cljs.core.ObjMap(this__35077.meta, new_keys__35081, new_strobj__35080, this__35077.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__35082 = this;
if(function() {
var and__3822__auto____35083 = goog.isString(k);
if(and__3822__auto____35083) {
return!(cljs.core.scan_array.call(null, 1, k, this__35082.keys) == null)
}else {
return and__3822__auto____35083
}
}()) {
return true
}else {
return false
}
};
cljs.core.ObjMap.prototype.call = function() {
var G__35105 = null;
var G__35105__2 = function(this_sym35084, k) {
var this__35086 = this;
var this_sym35084__35087 = this;
var coll__35088 = this_sym35084__35087;
return coll__35088.cljs$core$ILookup$_lookup$arity$2(coll__35088, k)
};
var G__35105__3 = function(this_sym35085, k, not_found) {
var this__35086 = this;
var this_sym35085__35089 = this;
var coll__35090 = this_sym35085__35089;
return coll__35090.cljs$core$ILookup$_lookup$arity$3(coll__35090, k, not_found)
};
G__35105 = function(this_sym35085, k, not_found) {
switch(arguments.length) {
case 2:
return G__35105__2.call(this, this_sym35085, k);
case 3:
return G__35105__3.call(this, this_sym35085, k, not_found)
}
throw"Invalid arity: " + arguments.length;
};
return G__35105
}();
cljs.core.ObjMap.prototype.apply = function(this_sym35068, args35069) {
var this__35091 = this;
return this_sym35068.call.apply(this_sym35068, [this_sym35068].concat(args35069.slice()))
};
cljs.core.ObjMap.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, entry) {
var this__35092 = 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__35093 = this;
var this__35094 = this;
return cljs.core.pr_str.call(null, this__35094)
};
cljs.core.ObjMap.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var this__35095 = this;
if(this__35095.keys.length > 0) {
return cljs.core.map.call(null, function(p1__35058_SHARP_) {
return cljs.core.vector.call(null, p1__35058_SHARP_, this__35095.strobj[p1__35058_SHARP_])
}, this__35095.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__35096 = this;
return this__35096.keys.length
};
cljs.core.ObjMap.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var this__35097 = 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__35098 = this;
return new cljs.core.ObjMap(meta, this__35098.keys, this__35098.strobj, this__35098.update_count, this__35098.__hash)
};
cljs.core.ObjMap.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var this__35099 = this;
return this__35099.meta
};
cljs.core.ObjMap.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var this__35100 = this;
return cljs.core.with_meta.call(null, cljs.core.ObjMap.EMPTY, this__35100.meta)
};
cljs.core.ObjMap.prototype.cljs$core$IMap$_dissoc$arity$2 = function(coll, k) {
var this__35101 = this;
if(function() {
var and__3822__auto____35102 = goog.isString(k);
if(and__3822__auto____35102) {
return!(cljs.core.scan_array.call(null, 1, k, this__35101.keys) == null)
}else {
return and__3822__auto____35102
}
}()) {
var new_keys__35103 = this__35101.keys.slice();
var new_strobj__35104 = cljs.core.obj_clone.call(null, this__35101.strobj, this__35101.keys);
new_keys__35103.splice(cljs.core.scan_array.call(null, 1, k, new_keys__35103), 1);
cljs.core.js_delete.call(null, new_strobj__35104, k);
return new cljs.core.ObjMap(this__35101.meta, new_keys__35103, new_strobj__35104, this__35101.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__2329__auto__) {
return cljs.core.list.call(null, "cljs.core/HashMap")
};
cljs.core.HashMap.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var this__35109 = this;
var h__2212__auto____35110 = this__35109.__hash;
if(!(h__2212__auto____35110 == null)) {
return h__2212__auto____35110
}else {
var h__2212__auto____35111 = cljs.core.hash_imap.call(null, coll);
this__35109.__hash = h__2212__auto____35111;
return h__2212__auto____35111
}
};
cljs.core.HashMap.prototype.cljs$core$ILookup$_lookup$arity$2 = function(coll, k) {
var this__35112 = 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__35113 = this;
var bucket__35114 = this__35113.hashobj[cljs.core.hash.call(null, k)];
var i__35115 = cljs.core.truth_(bucket__35114) ? cljs.core.scan_array.call(null, 2, k, bucket__35114) : null;
if(cljs.core.truth_(i__35115)) {
return bucket__35114[i__35115 + 1]
}else {
return not_found
}
};
cljs.core.HashMap.prototype.cljs$core$IAssociative$_assoc$arity$3 = function(coll, k, v) {
var this__35116 = this;
var h__35117 = cljs.core.hash.call(null, k);
var bucket__35118 = this__35116.hashobj[h__35117];
if(cljs.core.truth_(bucket__35118)) {
var new_bucket__35119 = bucket__35118.slice();
var new_hashobj__35120 = goog.object.clone(this__35116.hashobj);
new_hashobj__35120[h__35117] = new_bucket__35119;
var temp__3971__auto____35121 = cljs.core.scan_array.call(null, 2, k, new_bucket__35119);
if(cljs.core.truth_(temp__3971__auto____35121)) {
var i__35122 = temp__3971__auto____35121;
new_bucket__35119[i__35122 + 1] = v;
return new cljs.core.HashMap(this__35116.meta, this__35116.count, new_hashobj__35120, null)
}else {
new_bucket__35119.push(k, v);
return new cljs.core.HashMap(this__35116.meta, this__35116.count + 1, new_hashobj__35120, null)
}
}else {
var new_hashobj__35123 = goog.object.clone(this__35116.hashobj);
new_hashobj__35123[h__35117] = [k, v];
return new cljs.core.HashMap(this__35116.meta, this__35116.count + 1, new_hashobj__35123, null)
}
};
cljs.core.HashMap.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 = function(coll, k) {
var this__35124 = this;
var bucket__35125 = this__35124.hashobj[cljs.core.hash.call(null, k)];
var i__35126 = cljs.core.truth_(bucket__35125) ? cljs.core.scan_array.call(null, 2, k, bucket__35125) : null;
if(cljs.core.truth_(i__35126)) {
return true
}else {
return false
}
};
cljs.core.HashMap.prototype.call = function() {
var G__35151 = null;
var G__35151__2 = function(this_sym35127, k) {
var this__35129 = this;
var this_sym35127__35130 = this;
var coll__35131 = this_sym35127__35130;
return coll__35131.cljs$core$ILookup$_lookup$arity$2(coll__35131, k)
};
var G__35151__3 = function(this_sym35128, k, not_found) {
var this__35129 = this;
var this_sym35128__35132 = this;
var coll__35133 = this_sym35128__35132;
return coll__35133.cljs$core$ILookup$_lookup$arity$3(coll__35133, k, not_found)
};
G__35151 = function(this_sym35128, k, not_found) {
switch(arguments.length) {
case 2:
return G__35151__2.call(this, this_sym35128, k);
case 3:
return G__35151__3.call(this, this_sym35128, k, not_found)
}
throw"Invalid arity: " + arguments.length;
};
return G__35151
}();
cljs.core.HashMap.prototype.apply = function(this_sym35107, args35108) {
var this__35134 = this;
return this_sym35107.call.apply(this_sym35107, [this_sym35107].concat(args35108.slice()))
};
cljs.core.HashMap.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, entry) {
var this__35135 = 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__35136 = this;
var this__35137 = this;
return cljs.core.pr_str.call(null, this__35137)
};
cljs.core.HashMap.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var this__35138 = this;
if(this__35138.count > 0) {
var hashes__35139 = cljs.core.js_keys.call(null, this__35138.hashobj).sort();
return cljs.core.mapcat.call(null, function(p1__35106_SHARP_) {
return cljs.core.map.call(null, cljs.core.vec, cljs.core.partition.call(null, 2, this__35138.hashobj[p1__35106_SHARP_]))
}, hashes__35139)
}else {
return null
}
};
cljs.core.HashMap.prototype.cljs$core$ICounted$_count$arity$1 = function(coll) {
var this__35140 = this;
return this__35140.count
};
cljs.core.HashMap.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var this__35141 = 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__35142 = this;
return new cljs.core.HashMap(meta, this__35142.count, this__35142.hashobj, this__35142.__hash)
};
cljs.core.HashMap.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var this__35143 = this;
return this__35143.meta
};
cljs.core.HashMap.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var this__35144 = this;
return cljs.core.with_meta.call(null, cljs.core.HashMap.EMPTY, this__35144.meta)
};
cljs.core.HashMap.prototype.cljs$core$IMap$_dissoc$arity$2 = function(coll, k) {
var this__35145 = this;
var h__35146 = cljs.core.hash.call(null, k);
var bucket__35147 = this__35145.hashobj[h__35146];
var i__35148 = cljs.core.truth_(bucket__35147) ? cljs.core.scan_array.call(null, 2, k, bucket__35147) : null;
if(cljs.core.not.call(null, i__35148)) {
return coll
}else {
var new_hashobj__35149 = goog.object.clone(this__35145.hashobj);
if(3 > bucket__35147.length) {
cljs.core.js_delete.call(null, new_hashobj__35149, h__35146)
}else {
var new_bucket__35150 = bucket__35147.slice();
new_bucket__35150.splice(i__35148, 2);
new_hashobj__35149[h__35146] = new_bucket__35150
}
return new cljs.core.HashMap(this__35145.meta, this__35145.count - 1, new_hashobj__35149, null)
}
};
cljs.core.HashMap;
cljs.core.HashMap.EMPTY = new cljs.core.HashMap(null, 0, {}, 0);
cljs.core.HashMap.fromArrays = function(ks, vs) {
var len__35152 = ks.length;
var i__35153 = 0;
var out__35154 = cljs.core.HashMap.EMPTY;
while(true) {
if(i__35153 < len__35152) {
var G__35155 = i__35153 + 1;
var G__35156 = cljs.core.assoc.call(null, out__35154, ks[i__35153], vs[i__35153]);
i__35153 = G__35155;
out__35154 = G__35156;
continue
}else {
return out__35154
}
break
}
};
cljs.core.array_map_index_of = function array_map_index_of(m, k) {
var arr__35160 = m.arr;
var len__35161 = arr__35160.length;
var i__35162 = 0;
while(true) {
if(len__35161 <= i__35162) {
return-1
}else {
if(cljs.core._EQ_.call(null, arr__35160[i__35162], k)) {
return i__35162
}else {
if("\ufdd0'else") {
var G__35163 = i__35162 + 2;
i__35162 = G__35163;
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__2329__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__35166 = this;
return new cljs.core.TransientArrayMap({}, this__35166.arr.length, this__35166.arr.slice())
};
cljs.core.PersistentArrayMap.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var this__35167 = this;
var h__2212__auto____35168 = this__35167.__hash;
if(!(h__2212__auto____35168 == null)) {
return h__2212__auto____35168
}else {
var h__2212__auto____35169 = cljs.core.hash_imap.call(null, coll);
this__35167.__hash = h__2212__auto____35169;
return h__2212__auto____35169
}
};
cljs.core.PersistentArrayMap.prototype.cljs$core$ILookup$_lookup$arity$2 = function(coll, k) {
var this__35170 = 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__35171 = this;
var idx__35172 = cljs.core.array_map_index_of.call(null, coll, k);
if(idx__35172 === -1) {
return not_found
}else {
return this__35171.arr[idx__35172 + 1]
}
};
cljs.core.PersistentArrayMap.prototype.cljs$core$IAssociative$_assoc$arity$3 = function(coll, k, v) {
var this__35173 = this;
var idx__35174 = cljs.core.array_map_index_of.call(null, coll, k);
if(idx__35174 === -1) {
if(this__35173.cnt < cljs.core.PersistentArrayMap.HASHMAP_THRESHOLD) {
return new cljs.core.PersistentArrayMap(this__35173.meta, this__35173.cnt + 1, function() {
var G__35175__35176 = this__35173.arr.slice();
G__35175__35176.push(k);
G__35175__35176.push(v);
return G__35175__35176
}(), 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__35173.arr[idx__35174 + 1]) {
return coll
}else {
if("\ufdd0'else") {
return new cljs.core.PersistentArrayMap(this__35173.meta, this__35173.cnt, function() {
var G__35177__35178 = this__35173.arr.slice();
G__35177__35178[idx__35174 + 1] = v;
return G__35177__35178
}(), null)
}else {
return null
}
}
}
};
cljs.core.PersistentArrayMap.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 = function(coll, k) {
var this__35179 = this;
return!(cljs.core.array_map_index_of.call(null, coll, k) === -1)
};
cljs.core.PersistentArrayMap.prototype.call = function() {
var G__35211 = null;
var G__35211__2 = function(this_sym35180, k) {
var this__35182 = this;
var this_sym35180__35183 = this;
var coll__35184 = this_sym35180__35183;
return coll__35184.cljs$core$ILookup$_lookup$arity$2(coll__35184, k)
};
var G__35211__3 = function(this_sym35181, k, not_found) {
var this__35182 = this;
var this_sym35181__35185 = this;
var coll__35186 = this_sym35181__35185;
return coll__35186.cljs$core$ILookup$_lookup$arity$3(coll__35186, k, not_found)
};
G__35211 = function(this_sym35181, k, not_found) {
switch(arguments.length) {
case 2:
return G__35211__2.call(this, this_sym35181, k);
case 3:
return G__35211__3.call(this, this_sym35181, k, not_found)
}
throw"Invalid arity: " + arguments.length;
};
return G__35211
}();
cljs.core.PersistentArrayMap.prototype.apply = function(this_sym35164, args35165) {
var this__35187 = this;
return this_sym35164.call.apply(this_sym35164, [this_sym35164].concat(args35165.slice()))
};
cljs.core.PersistentArrayMap.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 = function(coll, f, init) {
var this__35188 = this;
var len__35189 = this__35188.arr.length;
var i__35190 = 0;
var init__35191 = init;
while(true) {
if(i__35190 < len__35189) {
var init__35192 = f.call(null, init__35191, this__35188.arr[i__35190], this__35188.arr[i__35190 + 1]);
if(cljs.core.reduced_QMARK_.call(null, init__35192)) {
return cljs.core.deref.call(null, init__35192)
}else {
var G__35212 = i__35190 + 2;
var G__35213 = init__35192;
i__35190 = G__35212;
init__35191 = G__35213;
continue
}
}else {
return null
}
break
}
};
cljs.core.PersistentArrayMap.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, entry) {
var this__35193 = 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__35194 = this;
var this__35195 = this;
return cljs.core.pr_str.call(null, this__35195)
};
cljs.core.PersistentArrayMap.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var this__35196 = this;
if(this__35196.cnt > 0) {
var len__35197 = this__35196.arr.length;
var array_map_seq__35198 = function array_map_seq(i) {
return new cljs.core.LazySeq(null, false, function() {
if(i < len__35197) {
return cljs.core.cons.call(null, cljs.core.PersistentVector.fromArray([this__35196.arr[i], this__35196.arr[i + 1]], true), array_map_seq.call(null, i + 2))
}else {
return null
}
}, null)
};
return array_map_seq__35198.call(null, 0)
}else {
return null
}
};
cljs.core.PersistentArrayMap.prototype.cljs$core$ICounted$_count$arity$1 = function(coll) {
var this__35199 = this;
return this__35199.cnt
};
cljs.core.PersistentArrayMap.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var this__35200 = 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__35201 = this;
return new cljs.core.PersistentArrayMap(meta, this__35201.cnt, this__35201.arr, this__35201.__hash)
};
cljs.core.PersistentArrayMap.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var this__35202 = this;
return this__35202.meta
};
cljs.core.PersistentArrayMap.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var this__35203 = this;
return cljs.core._with_meta.call(null, cljs.core.PersistentArrayMap.EMPTY, this__35203.meta)
};
cljs.core.PersistentArrayMap.prototype.cljs$core$IMap$_dissoc$arity$2 = function(coll, k) {
var this__35204 = this;
var idx__35205 = cljs.core.array_map_index_of.call(null, coll, k);
if(idx__35205 >= 0) {
var len__35206 = this__35204.arr.length;
var new_len__35207 = len__35206 - 2;
if(new_len__35207 === 0) {
return coll.cljs$core$IEmptyableCollection$_empty$arity$1(coll)
}else {
var new_arr__35208 = cljs.core.make_array.call(null, new_len__35207);
var s__35209 = 0;
var d__35210 = 0;
while(true) {
if(s__35209 >= len__35206) {
return new cljs.core.PersistentArrayMap(this__35204.meta, this__35204.cnt - 1, new_arr__35208, null)
}else {
if(cljs.core._EQ_.call(null, k, this__35204.arr[s__35209])) {
var G__35214 = s__35209 + 2;
var G__35215 = d__35210;
s__35209 = G__35214;
d__35210 = G__35215;
continue
}else {
if("\ufdd0'else") {
new_arr__35208[d__35210] = this__35204.arr[s__35209];
new_arr__35208[d__35210 + 1] = this__35204.arr[s__35209 + 1];
var G__35216 = s__35209 + 2;
var G__35217 = d__35210 + 2;
s__35209 = G__35216;
d__35210 = G__35217;
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__35218 = cljs.core.count.call(null, ks);
var i__35219 = 0;
var out__35220 = cljs.core.transient$.call(null, cljs.core.PersistentArrayMap.EMPTY);
while(true) {
if(i__35219 < len__35218) {
var G__35221 = i__35219 + 1;
var G__35222 = cljs.core.assoc_BANG_.call(null, out__35220, ks[i__35219], vs[i__35219]);
i__35219 = G__35221;
out__35220 = G__35222;
continue
}else {
return cljs.core.persistent_BANG_.call(null, out__35220)
}
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__2329__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__35223 = this;
if(cljs.core.truth_(this__35223.editable_QMARK_)) {
var idx__35224 = cljs.core.array_map_index_of.call(null, tcoll, key);
if(idx__35224 >= 0) {
this__35223.arr[idx__35224] = this__35223.arr[this__35223.len - 2];
this__35223.arr[idx__35224 + 1] = this__35223.arr[this__35223.len - 1];
var G__35225__35226 = this__35223.arr;
G__35225__35226.pop();
G__35225__35226.pop();
G__35225__35226;
this__35223.len = this__35223.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__35227 = this;
if(cljs.core.truth_(this__35227.editable_QMARK_)) {
var idx__35228 = cljs.core.array_map_index_of.call(null, tcoll, key);
if(idx__35228 === -1) {
if(this__35227.len + 2 <= 2 * cljs.core.PersistentArrayMap.HASHMAP_THRESHOLD) {
this__35227.len = this__35227.len + 2;
this__35227.arr.push(key);
this__35227.arr.push(val);
return tcoll
}else {
return cljs.core.assoc_BANG_.call(null, cljs.core.array__GT_transient_hash_map.call(null, this__35227.len, this__35227.arr), key, val)
}
}else {
if(val === this__35227.arr[idx__35228 + 1]) {
return tcoll
}else {
this__35227.arr[idx__35228 + 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__35229 = this;
if(cljs.core.truth_(this__35229.editable_QMARK_)) {
if(function() {
var G__35230__35231 = o;
if(G__35230__35231) {
if(function() {
var or__3824__auto____35232 = G__35230__35231.cljs$lang$protocol_mask$partition0$ & 2048;
if(or__3824__auto____35232) {
return or__3824__auto____35232
}else {
return G__35230__35231.cljs$core$IMapEntry$
}
}()) {
return true
}else {
if(!G__35230__35231.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IMapEntry, G__35230__35231)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IMapEntry, G__35230__35231)
}
}()) {
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__35233 = cljs.core.seq.call(null, o);
var tcoll__35234 = tcoll;
while(true) {
var temp__3971__auto____35235 = cljs.core.first.call(null, es__35233);
if(cljs.core.truth_(temp__3971__auto____35235)) {
var e__35236 = temp__3971__auto____35235;
var G__35242 = cljs.core.next.call(null, es__35233);
var G__35243 = tcoll__35234.cljs$core$ITransientAssociative$_assoc_BANG_$arity$3(tcoll__35234, cljs.core.key.call(null, e__35236), cljs.core.val.call(null, e__35236));
es__35233 = G__35242;
tcoll__35234 = G__35243;
continue
}else {
return tcoll__35234
}
break
}
}
}else {
throw new Error("conj! after persistent!");
}
};
cljs.core.TransientArrayMap.prototype.cljs$core$ITransientCollection$_persistent_BANG_$arity$1 = function(tcoll) {
var this__35237 = this;
if(cljs.core.truth_(this__35237.editable_QMARK_)) {
this__35237.editable_QMARK_ = false;
return new cljs.core.PersistentArrayMap(null, cljs.core.quot.call(null, this__35237.len, 2), this__35237.arr, null)
}else {
throw new Error("persistent! called twice");
}
};
cljs.core.TransientArrayMap.prototype.cljs$core$ILookup$_lookup$arity$2 = function(tcoll, k) {
var this__35238 = 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__35239 = this;
if(cljs.core.truth_(this__35239.editable_QMARK_)) {
var idx__35240 = cljs.core.array_map_index_of.call(null, tcoll, k);
if(idx__35240 === -1) {
return not_found
}else {
return this__35239.arr[idx__35240 + 1]
}
}else {
throw new Error("lookup after persistent!");
}
};
cljs.core.TransientArrayMap.prototype.cljs$core$ICounted$_count$arity$1 = function(tcoll) {
var this__35241 = this;
if(cljs.core.truth_(this__35241.editable_QMARK_)) {
return cljs.core.quot.call(null, this__35241.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__35246 = cljs.core.transient$.call(null, cljs.core.ObjMap.EMPTY);
var i__35247 = 0;
while(true) {
if(i__35247 < len) {
var G__35248 = cljs.core.assoc_BANG_.call(null, out__35246, arr[i__35247], arr[i__35247 + 1]);
var G__35249 = i__35247 + 2;
out__35246 = G__35248;
i__35247 = G__35249;
continue
}else {
return out__35246
}
break
}
};
cljs.core.Box = function(val) {
this.val = val
};
cljs.core.Box.cljs$lang$type = true;
cljs.core.Box.cljs$lang$ctorPrSeq = function(this__2330__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__35254__35255 = arr.slice();
G__35254__35255[i] = a;
return G__35254__35255
};
var clone_and_set__5 = function(arr, i, a, j, b) {
var G__35256__35257 = arr.slice();
G__35256__35257[i] = a;
G__35256__35257[j] = b;
return G__35256__35257
};
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__35259 = cljs.core.make_array.call(null, arr.length - 2);
cljs.core.array_copy.call(null, arr, 0, new_arr__35259, 0, 2 * i);
cljs.core.array_copy.call(null, arr, 2 * (i + 1), new_arr__35259, 2 * i, new_arr__35259.length - 2 * i);
return new_arr__35259
};
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__35262 = inode.ensure_editable(edit);
editable__35262.arr[i] = a;
return editable__35262
};
var edit_and_set__6 = function(inode, edit, i, a, j, b) {
var editable__35263 = inode.ensure_editable(edit);
editable__35263.arr[i] = a;
editable__35263.arr[j] = b;
return editable__35263
};
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__35270 = arr.length;
var i__35271 = 0;
var init__35272 = init;
while(true) {
if(i__35271 < len__35270) {
var init__35275 = function() {
var k__35273 = arr[i__35271];
if(!(k__35273 == null)) {
return f.call(null, init__35272, k__35273, arr[i__35271 + 1])
}else {
var node__35274 = arr[i__35271 + 1];
if(!(node__35274 == null)) {
return node__35274.kv_reduce(f, init__35272)
}else {
return init__35272
}
}
}();
if(cljs.core.reduced_QMARK_.call(null, init__35275)) {
return cljs.core.deref.call(null, init__35275)
}else {
var G__35276 = i__35271 + 2;
var G__35277 = init__35275;
i__35271 = G__35276;
init__35272 = G__35277;
continue
}
}else {
return init__35272
}
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__2329__auto__) {
return cljs.core.list.call(null, "cljs.core/BitmapIndexedNode")
};
cljs.core.BitmapIndexedNode.prototype.edit_and_remove_pair = function(e, bit, i) {
var this__35278 = this;
var inode__35279 = this;
if(this__35278.bitmap === bit) {
return null
}else {
var editable__35280 = inode__35279.ensure_editable(e);
var earr__35281 = editable__35280.arr;
var len__35282 = earr__35281.length;
editable__35280.bitmap = bit ^ editable__35280.bitmap;
cljs.core.array_copy.call(null, earr__35281, 2 * (i + 1), earr__35281, 2 * i, len__35282 - 2 * (i + 1));
earr__35281[len__35282 - 2] = null;
earr__35281[len__35282 - 1] = null;
return editable__35280
}
};
cljs.core.BitmapIndexedNode.prototype.inode_assoc_BANG_ = function(edit, shift, hash, key, val, added_leaf_QMARK_) {
var this__35283 = this;
var inode__35284 = this;
var bit__35285 = 1 << (hash >>> shift & 31);
var idx__35286 = cljs.core.bitmap_indexed_node_index.call(null, this__35283.bitmap, bit__35285);
if((this__35283.bitmap & bit__35285) === 0) {
var n__35287 = cljs.core.bit_count.call(null, this__35283.bitmap);
if(2 * n__35287 < this__35283.arr.length) {
var editable__35288 = inode__35284.ensure_editable(edit);
var earr__35289 = editable__35288.arr;
added_leaf_QMARK_.val = true;
cljs.core.array_copy_downward.call(null, earr__35289, 2 * idx__35286, earr__35289, 2 * (idx__35286 + 1), 2 * (n__35287 - idx__35286));
earr__35289[2 * idx__35286] = key;
earr__35289[2 * idx__35286 + 1] = val;
editable__35288.bitmap = editable__35288.bitmap | bit__35285;
return editable__35288
}else {
if(n__35287 >= 16) {
var nodes__35290 = cljs.core.make_array.call(null, 32);
var jdx__35291 = hash >>> shift & 31;
nodes__35290[jdx__35291] = cljs.core.BitmapIndexedNode.EMPTY.inode_assoc_BANG_(edit, shift + 5, hash, key, val, added_leaf_QMARK_);
var i__35292 = 0;
var j__35293 = 0;
while(true) {
if(i__35292 < 32) {
if((this__35283.bitmap >>> i__35292 & 1) === 0) {
var G__35346 = i__35292 + 1;
var G__35347 = j__35293;
i__35292 = G__35346;
j__35293 = G__35347;
continue
}else {
nodes__35290[i__35292] = !(this__35283.arr[j__35293] == null) ? cljs.core.BitmapIndexedNode.EMPTY.inode_assoc_BANG_(edit, shift + 5, cljs.core.hash.call(null, this__35283.arr[j__35293]), this__35283.arr[j__35293], this__35283.arr[j__35293 + 1], added_leaf_QMARK_) : this__35283.arr[j__35293 + 1];
var G__35348 = i__35292 + 1;
var G__35349 = j__35293 + 2;
i__35292 = G__35348;
j__35293 = G__35349;
continue
}
}else {
}
break
}
return new cljs.core.ArrayNode(edit, n__35287 + 1, nodes__35290)
}else {
if("\ufdd0'else") {
var new_arr__35294 = cljs.core.make_array.call(null, 2 * (n__35287 + 4));
cljs.core.array_copy.call(null, this__35283.arr, 0, new_arr__35294, 0, 2 * idx__35286);
new_arr__35294[2 * idx__35286] = key;
new_arr__35294[2 * idx__35286 + 1] = val;
cljs.core.array_copy.call(null, this__35283.arr, 2 * idx__35286, new_arr__35294, 2 * (idx__35286 + 1), 2 * (n__35287 - idx__35286));
added_leaf_QMARK_.val = true;
var editable__35295 = inode__35284.ensure_editable(edit);
editable__35295.arr = new_arr__35294;
editable__35295.bitmap = editable__35295.bitmap | bit__35285;
return editable__35295
}else {
return null
}
}
}
}else {
var key_or_nil__35296 = this__35283.arr[2 * idx__35286];
var val_or_node__35297 = this__35283.arr[2 * idx__35286 + 1];
if(key_or_nil__35296 == null) {
var n__35298 = val_or_node__35297.inode_assoc_BANG_(edit, shift + 5, hash, key, val, added_leaf_QMARK_);
if(n__35298 === val_or_node__35297) {
return inode__35284
}else {
return cljs.core.edit_and_set.call(null, inode__35284, edit, 2 * idx__35286 + 1, n__35298)
}
}else {
if(cljs.core.key_test.call(null, key, key_or_nil__35296)) {
if(val === val_or_node__35297) {
return inode__35284
}else {
return cljs.core.edit_and_set.call(null, inode__35284, edit, 2 * idx__35286 + 1, val)
}
}else {
if("\ufdd0'else") {
added_leaf_QMARK_.val = true;
return cljs.core.edit_and_set.call(null, inode__35284, edit, 2 * idx__35286, null, 2 * idx__35286 + 1, cljs.core.create_node.call(null, edit, shift + 5, key_or_nil__35296, val_or_node__35297, hash, key, val))
}else {
return null
}
}
}
}
};
cljs.core.BitmapIndexedNode.prototype.inode_seq = function() {
var this__35299 = this;
var inode__35300 = this;
return cljs.core.create_inode_seq.call(null, this__35299.arr)
};
cljs.core.BitmapIndexedNode.prototype.inode_without_BANG_ = function(edit, shift, hash, key, removed_leaf_QMARK_) {
var this__35301 = this;
var inode__35302 = this;
var bit__35303 = 1 << (hash >>> shift & 31);
if((this__35301.bitmap & bit__35303) === 0) {
return inode__35302
}else {
var idx__35304 = cljs.core.bitmap_indexed_node_index.call(null, this__35301.bitmap, bit__35303);
var key_or_nil__35305 = this__35301.arr[2 * idx__35304];
var val_or_node__35306 = this__35301.arr[2 * idx__35304 + 1];
if(key_or_nil__35305 == null) {
var n__35307 = val_or_node__35306.inode_without_BANG_(edit, shift + 5, hash, key, removed_leaf_QMARK_);
if(n__35307 === val_or_node__35306) {
return inode__35302
}else {
if(!(n__35307 == null)) {
return cljs.core.edit_and_set.call(null, inode__35302, edit, 2 * idx__35304 + 1, n__35307)
}else {
if(this__35301.bitmap === bit__35303) {
return null
}else {
if("\ufdd0'else") {
return inode__35302.edit_and_remove_pair(edit, bit__35303, idx__35304)
}else {
return null
}
}
}
}
}else {
if(cljs.core.key_test.call(null, key, key_or_nil__35305)) {
removed_leaf_QMARK_[0] = true;
return inode__35302.edit_and_remove_pair(edit, bit__35303, idx__35304)
}else {
if("\ufdd0'else") {
return inode__35302
}else {
return null
}
}
}
}
};
cljs.core.BitmapIndexedNode.prototype.ensure_editable = function(e) {
var this__35308 = this;
var inode__35309 = this;
if(e === this__35308.edit) {
return inode__35309
}else {
var n__35310 = cljs.core.bit_count.call(null, this__35308.bitmap);
var new_arr__35311 = cljs.core.make_array.call(null, n__35310 < 0 ? 4 : 2 * (n__35310 + 1));
cljs.core.array_copy.call(null, this__35308.arr, 0, new_arr__35311, 0, 2 * n__35310);
return new cljs.core.BitmapIndexedNode(e, this__35308.bitmap, new_arr__35311)
}
};
cljs.core.BitmapIndexedNode.prototype.kv_reduce = function(f, init) {
var this__35312 = this;
var inode__35313 = this;
return cljs.core.inode_kv_reduce.call(null, this__35312.arr, f, init)
};
cljs.core.BitmapIndexedNode.prototype.inode_find = function(shift, hash, key, not_found) {
var this__35314 = this;
var inode__35315 = this;
var bit__35316 = 1 << (hash >>> shift & 31);
if((this__35314.bitmap & bit__35316) === 0) {
return not_found
}else {
var idx__35317 = cljs.core.bitmap_indexed_node_index.call(null, this__35314.bitmap, bit__35316);
var key_or_nil__35318 = this__35314.arr[2 * idx__35317];
var val_or_node__35319 = this__35314.arr[2 * idx__35317 + 1];
if(key_or_nil__35318 == null) {
return val_or_node__35319.inode_find(shift + 5, hash, key, not_found)
}else {
if(cljs.core.key_test.call(null, key, key_or_nil__35318)) {
return cljs.core.PersistentVector.fromArray([key_or_nil__35318, val_or_node__35319], true)
}else {
if("\ufdd0'else") {
return not_found
}else {
return null
}
}
}
}
};
cljs.core.BitmapIndexedNode.prototype.inode_without = function(shift, hash, key) {
var this__35320 = this;
var inode__35321 = this;
var bit__35322 = 1 << (hash >>> shift & 31);
if((this__35320.bitmap & bit__35322) === 0) {
return inode__35321
}else {
var idx__35323 = cljs.core.bitmap_indexed_node_index.call(null, this__35320.bitmap, bit__35322);
var key_or_nil__35324 = this__35320.arr[2 * idx__35323];
var val_or_node__35325 = this__35320.arr[2 * idx__35323 + 1];
if(key_or_nil__35324 == null) {
var n__35326 = val_or_node__35325.inode_without(shift + 5, hash, key);
if(n__35326 === val_or_node__35325) {
return inode__35321
}else {
if(!(n__35326 == null)) {
return new cljs.core.BitmapIndexedNode(null, this__35320.bitmap, cljs.core.clone_and_set.call(null, this__35320.arr, 2 * idx__35323 + 1, n__35326))
}else {
if(this__35320.bitmap === bit__35322) {
return null
}else {
if("\ufdd0'else") {
return new cljs.core.BitmapIndexedNode(null, this__35320.bitmap ^ bit__35322, cljs.core.remove_pair.call(null, this__35320.arr, idx__35323))
}else {
return null
}
}
}
}
}else {
if(cljs.core.key_test.call(null, key, key_or_nil__35324)) {
return new cljs.core.BitmapIndexedNode(null, this__35320.bitmap ^ bit__35322, cljs.core.remove_pair.call(null, this__35320.arr, idx__35323))
}else {
if("\ufdd0'else") {
return inode__35321
}else {
return null
}
}
}
}
};
cljs.core.BitmapIndexedNode.prototype.inode_assoc = function(shift, hash, key, val, added_leaf_QMARK_) {
var this__35327 = this;
var inode__35328 = this;
var bit__35329 = 1 << (hash >>> shift & 31);
var idx__35330 = cljs.core.bitmap_indexed_node_index.call(null, this__35327.bitmap, bit__35329);
if((this__35327.bitmap & bit__35329) === 0) {
var n__35331 = cljs.core.bit_count.call(null, this__35327.bitmap);
if(n__35331 >= 16) {
var nodes__35332 = cljs.core.make_array.call(null, 32);
var jdx__35333 = hash >>> shift & 31;
nodes__35332[jdx__35333] = cljs.core.BitmapIndexedNode.EMPTY.inode_assoc(shift + 5, hash, key, val, added_leaf_QMARK_);
var i__35334 = 0;
var j__35335 = 0;
while(true) {
if(i__35334 < 32) {
if((this__35327.bitmap >>> i__35334 & 1) === 0) {
var G__35350 = i__35334 + 1;
var G__35351 = j__35335;
i__35334 = G__35350;
j__35335 = G__35351;
continue
}else {
nodes__35332[i__35334] = !(this__35327.arr[j__35335] == null) ? cljs.core.BitmapIndexedNode.EMPTY.inode_assoc(shift + 5, cljs.core.hash.call(null, this__35327.arr[j__35335]), this__35327.arr[j__35335], this__35327.arr[j__35335 + 1], added_leaf_QMARK_) : this__35327.arr[j__35335 + 1];
var G__35352 = i__35334 + 1;
var G__35353 = j__35335 + 2;
i__35334 = G__35352;
j__35335 = G__35353;
continue
}
}else {
}
break
}
return new cljs.core.ArrayNode(null, n__35331 + 1, nodes__35332)
}else {
var new_arr__35336 = cljs.core.make_array.call(null, 2 * (n__35331 + 1));
cljs.core.array_copy.call(null, this__35327.arr, 0, new_arr__35336, 0, 2 * idx__35330);
new_arr__35336[2 * idx__35330] = key;
new_arr__35336[2 * idx__35330 + 1] = val;
cljs.core.array_copy.call(null, this__35327.arr, 2 * idx__35330, new_arr__35336, 2 * (idx__35330 + 1), 2 * (n__35331 - idx__35330));
added_leaf_QMARK_.val = true;
return new cljs.core.BitmapIndexedNode(null, this__35327.bitmap | bit__35329, new_arr__35336)
}
}else {
var key_or_nil__35337 = this__35327.arr[2 * idx__35330];
var val_or_node__35338 = this__35327.arr[2 * idx__35330 + 1];
if(key_or_nil__35337 == null) {
var n__35339 = val_or_node__35338.inode_assoc(shift + 5, hash, key, val, added_leaf_QMARK_);
if(n__35339 === val_or_node__35338) {
return inode__35328
}else {
return new cljs.core.BitmapIndexedNode(null, this__35327.bitmap, cljs.core.clone_and_set.call(null, this__35327.arr, 2 * idx__35330 + 1, n__35339))
}
}else {
if(cljs.core.key_test.call(null, key, key_or_nil__35337)) {
if(val === val_or_node__35338) {
return inode__35328
}else {
return new cljs.core.BitmapIndexedNode(null, this__35327.bitmap, cljs.core.clone_and_set.call(null, this__35327.arr, 2 * idx__35330 + 1, val))
}
}else {
if("\ufdd0'else") {
added_leaf_QMARK_.val = true;
return new cljs.core.BitmapIndexedNode(null, this__35327.bitmap, cljs.core.clone_and_set.call(null, this__35327.arr, 2 * idx__35330, null, 2 * idx__35330 + 1, cljs.core.create_node.call(null, shift + 5, key_or_nil__35337, val_or_node__35338, hash, key, val)))
}else {
return null
}
}
}
}
};
cljs.core.BitmapIndexedNode.prototype.inode_lookup = function(shift, hash, key, not_found) {
var this__35340 = this;
var inode__35341 = this;
var bit__35342 = 1 << (hash >>> shift & 31);
if((this__35340.bitmap & bit__35342) === 0) {
return not_found
}else {
var idx__35343 = cljs.core.bitmap_indexed_node_index.call(null, this__35340.bitmap, bit__35342);
var key_or_nil__35344 = this__35340.arr[2 * idx__35343];
var val_or_node__35345 = this__35340.arr[2 * idx__35343 + 1];
if(key_or_nil__35344 == null) {
return val_or_node__35345.inode_lookup(shift + 5, hash, key, not_found)
}else {
if(cljs.core.key_test.call(null, key, key_or_nil__35344)) {
return val_or_node__35345
}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__35361 = array_node.arr;
var len__35362 = 2 * (array_node.cnt - 1);
var new_arr__35363 = cljs.core.make_array.call(null, len__35362);
var i__35364 = 0;
var j__35365 = 1;
var bitmap__35366 = 0;
while(true) {
if(i__35364 < len__35362) {
if(function() {
var and__3822__auto____35367 = !(i__35364 === idx);
if(and__3822__auto____35367) {
return!(arr__35361[i__35364] == null)
}else {
return and__3822__auto____35367
}
}()) {
new_arr__35363[j__35365] = arr__35361[i__35364];
var G__35368 = i__35364 + 1;
var G__35369 = j__35365 + 2;
var G__35370 = bitmap__35366 | 1 << i__35364;
i__35364 = G__35368;
j__35365 = G__35369;
bitmap__35366 = G__35370;
continue
}else {
var G__35371 = i__35364 + 1;
var G__35372 = j__35365;
var G__35373 = bitmap__35366;
i__35364 = G__35371;
j__35365 = G__35372;
bitmap__35366 = G__35373;
continue
}
}else {
return new cljs.core.BitmapIndexedNode(edit, bitmap__35366, new_arr__35363)
}
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__2329__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__35374 = this;
var inode__35375 = this;
var idx__35376 = hash >>> shift & 31;
var node__35377 = this__35374.arr[idx__35376];
if(node__35377 == null) {
var editable__35378 = cljs.core.edit_and_set.call(null, inode__35375, edit, idx__35376, cljs.core.BitmapIndexedNode.EMPTY.inode_assoc_BANG_(edit, shift + 5, hash, key, val, added_leaf_QMARK_));
editable__35378.cnt = editable__35378.cnt + 1;
return editable__35378
}else {
var n__35379 = node__35377.inode_assoc_BANG_(edit, shift + 5, hash, key, val, added_leaf_QMARK_);
if(n__35379 === node__35377) {
return inode__35375
}else {
return cljs.core.edit_and_set.call(null, inode__35375, edit, idx__35376, n__35379)
}
}
};
cljs.core.ArrayNode.prototype.inode_seq = function() {
var this__35380 = this;
var inode__35381 = this;
return cljs.core.create_array_node_seq.call(null, this__35380.arr)
};
cljs.core.ArrayNode.prototype.inode_without_BANG_ = function(edit, shift, hash, key, removed_leaf_QMARK_) {
var this__35382 = this;
var inode__35383 = this;
var idx__35384 = hash >>> shift & 31;
var node__35385 = this__35382.arr[idx__35384];
if(node__35385 == null) {
return inode__35383
}else {
var n__35386 = node__35385.inode_without_BANG_(edit, shift + 5, hash, key, removed_leaf_QMARK_);
if(n__35386 === node__35385) {
return inode__35383
}else {
if(n__35386 == null) {
if(this__35382.cnt <= 8) {
return cljs.core.pack_array_node.call(null, inode__35383, edit, idx__35384)
}else {
var editable__35387 = cljs.core.edit_and_set.call(null, inode__35383, edit, idx__35384, n__35386);
editable__35387.cnt = editable__35387.cnt - 1;
return editable__35387
}
}else {
if("\ufdd0'else") {
return cljs.core.edit_and_set.call(null, inode__35383, edit, idx__35384, n__35386)
}else {
return null
}
}
}
}
};
cljs.core.ArrayNode.prototype.ensure_editable = function(e) {
var this__35388 = this;
var inode__35389 = this;
if(e === this__35388.edit) {
return inode__35389
}else {
return new cljs.core.ArrayNode(e, this__35388.cnt, this__35388.arr.slice())
}
};
cljs.core.ArrayNode.prototype.kv_reduce = function(f, init) {
var this__35390 = this;
var inode__35391 = this;
var len__35392 = this__35390.arr.length;
var i__35393 = 0;
var init__35394 = init;
while(true) {
if(i__35393 < len__35392) {
var node__35395 = this__35390.arr[i__35393];
if(!(node__35395 == null)) {
var init__35396 = node__35395.kv_reduce(f, init__35394);
if(cljs.core.reduced_QMARK_.call(null, init__35396)) {
return cljs.core.deref.call(null, init__35396)
}else {
var G__35415 = i__35393 + 1;
var G__35416 = init__35396;
i__35393 = G__35415;
init__35394 = G__35416;
continue
}
}else {
return null
}
}else {
return init__35394
}
break
}
};
cljs.core.ArrayNode.prototype.inode_find = function(shift, hash, key, not_found) {
var this__35397 = this;
var inode__35398 = this;
var idx__35399 = hash >>> shift & 31;
var node__35400 = this__35397.arr[idx__35399];
if(!(node__35400 == null)) {
return node__35400.inode_find(shift + 5, hash, key, not_found)
}else {
return not_found
}
};
cljs.core.ArrayNode.prototype.inode_without = function(shift, hash, key) {
var this__35401 = this;
var inode__35402 = this;
var idx__35403 = hash >>> shift & 31;
var node__35404 = this__35401.arr[idx__35403];
if(!(node__35404 == null)) {
var n__35405 = node__35404.inode_without(shift + 5, hash, key);
if(n__35405 === node__35404) {
return inode__35402
}else {
if(n__35405 == null) {
if(this__35401.cnt <= 8) {
return cljs.core.pack_array_node.call(null, inode__35402, null, idx__35403)
}else {
return new cljs.core.ArrayNode(null, this__35401.cnt - 1, cljs.core.clone_and_set.call(null, this__35401.arr, idx__35403, n__35405))
}
}else {
if("\ufdd0'else") {
return new cljs.core.ArrayNode(null, this__35401.cnt, cljs.core.clone_and_set.call(null, this__35401.arr, idx__35403, n__35405))
}else {
return null
}
}
}
}else {
return inode__35402
}
};
cljs.core.ArrayNode.prototype.inode_assoc = function(shift, hash, key, val, added_leaf_QMARK_) {
var this__35406 = this;
var inode__35407 = this;
var idx__35408 = hash >>> shift & 31;
var node__35409 = this__35406.arr[idx__35408];
if(node__35409 == null) {
return new cljs.core.ArrayNode(null, this__35406.cnt + 1, cljs.core.clone_and_set.call(null, this__35406.arr, idx__35408, cljs.core.BitmapIndexedNode.EMPTY.inode_assoc(shift + 5, hash, key, val, added_leaf_QMARK_)))
}else {
var n__35410 = node__35409.inode_assoc(shift + 5, hash, key, val, added_leaf_QMARK_);
if(n__35410 === node__35409) {
return inode__35407
}else {
return new cljs.core.ArrayNode(null, this__35406.cnt, cljs.core.clone_and_set.call(null, this__35406.arr, idx__35408, n__35410))
}
}
};
cljs.core.ArrayNode.prototype.inode_lookup = function(shift, hash, key, not_found) {
var this__35411 = this;
var inode__35412 = this;
var idx__35413 = hash >>> shift & 31;
var node__35414 = this__35411.arr[idx__35413];
if(!(node__35414 == null)) {
return node__35414.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__35419 = 2 * cnt;
var i__35420 = 0;
while(true) {
if(i__35420 < lim__35419) {
if(cljs.core.key_test.call(null, key, arr[i__35420])) {
return i__35420
}else {
var G__35421 = i__35420 + 2;
i__35420 = G__35421;
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__2329__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__35422 = this;
var inode__35423 = this;
if(hash === this__35422.collision_hash) {
var idx__35424 = cljs.core.hash_collision_node_find_index.call(null, this__35422.arr, this__35422.cnt, key);
if(idx__35424 === -1) {
if(this__35422.arr.length > 2 * this__35422.cnt) {
var editable__35425 = cljs.core.edit_and_set.call(null, inode__35423, edit, 2 * this__35422.cnt, key, 2 * this__35422.cnt + 1, val);
added_leaf_QMARK_.val = true;
editable__35425.cnt = editable__35425.cnt + 1;
return editable__35425
}else {
var len__35426 = this__35422.arr.length;
var new_arr__35427 = cljs.core.make_array.call(null, len__35426 + 2);
cljs.core.array_copy.call(null, this__35422.arr, 0, new_arr__35427, 0, len__35426);
new_arr__35427[len__35426] = key;
new_arr__35427[len__35426 + 1] = val;
added_leaf_QMARK_.val = true;
return inode__35423.ensure_editable_array(edit, this__35422.cnt + 1, new_arr__35427)
}
}else {
if(this__35422.arr[idx__35424 + 1] === val) {
return inode__35423
}else {
return cljs.core.edit_and_set.call(null, inode__35423, edit, idx__35424 + 1, val)
}
}
}else {
return(new cljs.core.BitmapIndexedNode(edit, 1 << (this__35422.collision_hash >>> shift & 31), [null, inode__35423, null, null])).inode_assoc_BANG_(edit, shift, hash, key, val, added_leaf_QMARK_)
}
};
cljs.core.HashCollisionNode.prototype.inode_seq = function() {
var this__35428 = this;
var inode__35429 = this;
return cljs.core.create_inode_seq.call(null, this__35428.arr)
};
cljs.core.HashCollisionNode.prototype.inode_without_BANG_ = function(edit, shift, hash, key, removed_leaf_QMARK_) {
var this__35430 = this;
var inode__35431 = this;
var idx__35432 = cljs.core.hash_collision_node_find_index.call(null, this__35430.arr, this__35430.cnt, key);
if(idx__35432 === -1) {
return inode__35431
}else {
removed_leaf_QMARK_[0] = true;
if(this__35430.cnt === 1) {
return null
}else {
var editable__35433 = inode__35431.ensure_editable(edit);
var earr__35434 = editable__35433.arr;
earr__35434[idx__35432] = earr__35434[2 * this__35430.cnt - 2];
earr__35434[idx__35432 + 1] = earr__35434[2 * this__35430.cnt - 1];
earr__35434[2 * this__35430.cnt - 1] = null;
earr__35434[2 * this__35430.cnt - 2] = null;
editable__35433.cnt = editable__35433.cnt - 1;
return editable__35433
}
}
};
cljs.core.HashCollisionNode.prototype.ensure_editable = function(e) {
var this__35435 = this;
var inode__35436 = this;
if(e === this__35435.edit) {
return inode__35436
}else {
var new_arr__35437 = cljs.core.make_array.call(null, 2 * (this__35435.cnt + 1));
cljs.core.array_copy.call(null, this__35435.arr, 0, new_arr__35437, 0, 2 * this__35435.cnt);
return new cljs.core.HashCollisionNode(e, this__35435.collision_hash, this__35435.cnt, new_arr__35437)
}
};
cljs.core.HashCollisionNode.prototype.kv_reduce = function(f, init) {
var this__35438 = this;
var inode__35439 = this;
return cljs.core.inode_kv_reduce.call(null, this__35438.arr, f, init)
};
cljs.core.HashCollisionNode.prototype.inode_find = function(shift, hash, key, not_found) {
var this__35440 = this;
var inode__35441 = this;
var idx__35442 = cljs.core.hash_collision_node_find_index.call(null, this__35440.arr, this__35440.cnt, key);
if(idx__35442 < 0) {
return not_found
}else {
if(cljs.core.key_test.call(null, key, this__35440.arr[idx__35442])) {
return cljs.core.PersistentVector.fromArray([this__35440.arr[idx__35442], this__35440.arr[idx__35442 + 1]], true)
}else {
if("\ufdd0'else") {
return not_found
}else {
return null
}
}
}
};
cljs.core.HashCollisionNode.prototype.inode_without = function(shift, hash, key) {
var this__35443 = this;
var inode__35444 = this;
var idx__35445 = cljs.core.hash_collision_node_find_index.call(null, this__35443.arr, this__35443.cnt, key);
if(idx__35445 === -1) {
return inode__35444
}else {
if(this__35443.cnt === 1) {
return null
}else {
if("\ufdd0'else") {
return new cljs.core.HashCollisionNode(null, this__35443.collision_hash, this__35443.cnt - 1, cljs.core.remove_pair.call(null, this__35443.arr, cljs.core.quot.call(null, idx__35445, 2)))
}else {
return null
}
}
}
};
cljs.core.HashCollisionNode.prototype.inode_assoc = function(shift, hash, key, val, added_leaf_QMARK_) {
var this__35446 = this;
var inode__35447 = this;
if(hash === this__35446.collision_hash) {
var idx__35448 = cljs.core.hash_collision_node_find_index.call(null, this__35446.arr, this__35446.cnt, key);
if(idx__35448 === -1) {
var len__35449 = this__35446.arr.length;
var new_arr__35450 = cljs.core.make_array.call(null, len__35449 + 2);
cljs.core.array_copy.call(null, this__35446.arr, 0, new_arr__35450, 0, len__35449);
new_arr__35450[len__35449] = key;
new_arr__35450[len__35449 + 1] = val;
added_leaf_QMARK_.val = true;
return new cljs.core.HashCollisionNode(null, this__35446.collision_hash, this__35446.cnt + 1, new_arr__35450)
}else {
if(cljs.core._EQ_.call(null, this__35446.arr[idx__35448], val)) {
return inode__35447
}else {
return new cljs.core.HashCollisionNode(null, this__35446.collision_hash, this__35446.cnt, cljs.core.clone_and_set.call(null, this__35446.arr, idx__35448 + 1, val))
}
}
}else {
return(new cljs.core.BitmapIndexedNode(null, 1 << (this__35446.collision_hash >>> shift & 31), [null, inode__35447])).inode_assoc(shift, hash, key, val, added_leaf_QMARK_)
}
};
cljs.core.HashCollisionNode.prototype.inode_lookup = function(shift, hash, key, not_found) {
var this__35451 = this;
var inode__35452 = this;
var idx__35453 = cljs.core.hash_collision_node_find_index.call(null, this__35451.arr, this__35451.cnt, key);
if(idx__35453 < 0) {
return not_found
}else {
if(cljs.core.key_test.call(null, key, this__35451.arr[idx__35453])) {
return this__35451.arr[idx__35453 + 1]
}else {
if("\ufdd0'else") {
return not_found
}else {
return null
}
}
}
};
cljs.core.HashCollisionNode.prototype.ensure_editable_array = function(e, count, array) {
var this__35454 = this;
var inode__35455 = this;
if(e === this__35454.edit) {
this__35454.arr = array;
this__35454.cnt = count;
return inode__35455
}else {
return new cljs.core.HashCollisionNode(this__35454.edit, this__35454.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__35460 = cljs.core.hash.call(null, key1);
if(key1hash__35460 === key2hash) {
return new cljs.core.HashCollisionNode(null, key1hash__35460, 2, [key1, val1, key2, val2])
}else {
var added_leaf_QMARK___35461 = new cljs.core.Box(false);
return cljs.core.BitmapIndexedNode.EMPTY.inode_assoc(shift, key1hash__35460, key1, val1, added_leaf_QMARK___35461).inode_assoc(shift, key2hash, key2, val2, added_leaf_QMARK___35461)
}
};
var create_node__7 = function(edit, shift, key1, val1, key2hash, key2, val2) {
var key1hash__35462 = cljs.core.hash.call(null, key1);
if(key1hash__35462 === key2hash) {
return new cljs.core.HashCollisionNode(null, key1hash__35462, 2, [key1, val1, key2, val2])
}else {
var added_leaf_QMARK___35463 = new cljs.core.Box(false);
return cljs.core.BitmapIndexedNode.EMPTY.inode_assoc_BANG_(edit, shift, key1hash__35462, key1, val1, added_leaf_QMARK___35463).inode_assoc_BANG_(edit, shift, key2hash, key2, val2, added_leaf_QMARK___35463)
}
};
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__2329__auto__) {
return cljs.core.list.call(null, "cljs.core/NodeSeq")
};
cljs.core.NodeSeq.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var this__35464 = this;
var h__2212__auto____35465 = this__35464.__hash;
if(!(h__2212__auto____35465 == null)) {
return h__2212__auto____35465
}else {
var h__2212__auto____35466 = cljs.core.hash_coll.call(null, coll);
this__35464.__hash = h__2212__auto____35466;
return h__2212__auto____35466
}
};
cljs.core.NodeSeq.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var this__35467 = this;
return cljs.core.cons.call(null, o, coll)
};
cljs.core.NodeSeq.prototype.toString = function() {
var this__35468 = this;
var this__35469 = this;
return cljs.core.pr_str.call(null, this__35469)
};
cljs.core.NodeSeq.prototype.cljs$core$ISeqable$_seq$arity$1 = function(this$) {
var this__35470 = this;
return this$
};
cljs.core.NodeSeq.prototype.cljs$core$ISeq$_first$arity$1 = function(coll) {
var this__35471 = this;
if(this__35471.s == null) {
return cljs.core.PersistentVector.fromArray([this__35471.nodes[this__35471.i], this__35471.nodes[this__35471.i + 1]], true)
}else {
return cljs.core.first.call(null, this__35471.s)
}
};
cljs.core.NodeSeq.prototype.cljs$core$ISeq$_rest$arity$1 = function(coll) {
var this__35472 = this;
if(this__35472.s == null) {
return cljs.core.create_inode_seq.call(null, this__35472.nodes, this__35472.i + 2, null)
}else {
return cljs.core.create_inode_seq.call(null, this__35472.nodes, this__35472.i, cljs.core.next.call(null, this__35472.s))
}
};
cljs.core.NodeSeq.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var this__35473 = 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__35474 = this;
return new cljs.core.NodeSeq(meta, this__35474.nodes, this__35474.i, this__35474.s, this__35474.__hash)
};
cljs.core.NodeSeq.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var this__35475 = this;
return this__35475.meta
};
cljs.core.NodeSeq.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var this__35476 = this;
return cljs.core.with_meta.call(null, cljs.core.List.EMPTY, this__35476.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__35483 = nodes.length;
var j__35484 = i;
while(true) {
if(j__35484 < len__35483) {
if(!(nodes[j__35484] == null)) {
return new cljs.core.NodeSeq(null, nodes, j__35484, null, null)
}else {
var temp__3971__auto____35485 = nodes[j__35484 + 1];
if(cljs.core.truth_(temp__3971__auto____35485)) {
var node__35486 = temp__3971__auto____35485;
var temp__3971__auto____35487 = node__35486.inode_seq();
if(cljs.core.truth_(temp__3971__auto____35487)) {
var node_seq__35488 = temp__3971__auto____35487;
return new cljs.core.NodeSeq(null, nodes, j__35484 + 2, node_seq__35488, null)
}else {
var G__35489 = j__35484 + 2;
j__35484 = G__35489;
continue
}
}else {
var G__35490 = j__35484 + 2;
j__35484 = G__35490;
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__2329__auto__) {
return cljs.core.list.call(null, "cljs.core/ArrayNodeSeq")
};
cljs.core.ArrayNodeSeq.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var this__35491 = this;
var h__2212__auto____35492 = this__35491.__hash;
if(!(h__2212__auto____35492 == null)) {
return h__2212__auto____35492
}else {
var h__2212__auto____35493 = cljs.core.hash_coll.call(null, coll);
this__35491.__hash = h__2212__auto____35493;
return h__2212__auto____35493
}
};
cljs.core.ArrayNodeSeq.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var this__35494 = this;
return cljs.core.cons.call(null, o, coll)
};
cljs.core.ArrayNodeSeq.prototype.toString = function() {
var this__35495 = this;
var this__35496 = this;
return cljs.core.pr_str.call(null, this__35496)
};
cljs.core.ArrayNodeSeq.prototype.cljs$core$ISeqable$_seq$arity$1 = function(this$) {
var this__35497 = this;
return this$
};
cljs.core.ArrayNodeSeq.prototype.cljs$core$ISeq$_first$arity$1 = function(coll) {
var this__35498 = this;
return cljs.core.first.call(null, this__35498.s)
};
cljs.core.ArrayNodeSeq.prototype.cljs$core$ISeq$_rest$arity$1 = function(coll) {
var this__35499 = this;
return cljs.core.create_array_node_seq.call(null, null, this__35499.nodes, this__35499.i, cljs.core.next.call(null, this__35499.s))
};
cljs.core.ArrayNodeSeq.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var this__35500 = 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__35501 = this;
return new cljs.core.ArrayNodeSeq(meta, this__35501.nodes, this__35501.i, this__35501.s, this__35501.__hash)
};
cljs.core.ArrayNodeSeq.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var this__35502 = this;
return this__35502.meta
};
cljs.core.ArrayNodeSeq.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var this__35503 = this;
return cljs.core.with_meta.call(null, cljs.core.List.EMPTY, this__35503.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__35510 = nodes.length;
var j__35511 = i;
while(true) {
if(j__35511 < len__35510) {
var temp__3971__auto____35512 = nodes[j__35511];
if(cljs.core.truth_(temp__3971__auto____35512)) {
var nj__35513 = temp__3971__auto____35512;
var temp__3971__auto____35514 = nj__35513.inode_seq();
if(cljs.core.truth_(temp__3971__auto____35514)) {
var ns__35515 = temp__3971__auto____35514;
return new cljs.core.ArrayNodeSeq(meta, nodes, j__35511 + 1, ns__35515, null)
}else {
var G__35516 = j__35511 + 1;
j__35511 = G__35516;
continue
}
}else {
var G__35517 = j__35511 + 1;
j__35511 = G__35517;
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__2329__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__35520 = this;
return new cljs.core.TransientHashMap({}, this__35520.root, this__35520.cnt, this__35520.has_nil_QMARK_, this__35520.nil_val)
};
cljs.core.PersistentHashMap.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var this__35521 = this;
var h__2212__auto____35522 = this__35521.__hash;
if(!(h__2212__auto____35522 == null)) {
return h__2212__auto____35522
}else {
var h__2212__auto____35523 = cljs.core.hash_imap.call(null, coll);
this__35521.__hash = h__2212__auto____35523;
return h__2212__auto____35523
}
};
cljs.core.PersistentHashMap.prototype.cljs$core$ILookup$_lookup$arity$2 = function(coll, k) {
var this__35524 = 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__35525 = this;
if(k == null) {
if(this__35525.has_nil_QMARK_) {
return this__35525.nil_val
}else {
return not_found
}
}else {
if(this__35525.root == null) {
return not_found
}else {
if("\ufdd0'else") {
return this__35525.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__35526 = this;
if(k == null) {
if(function() {
var and__3822__auto____35527 = this__35526.has_nil_QMARK_;
if(and__3822__auto____35527) {
return v === this__35526.nil_val
}else {
return and__3822__auto____35527
}
}()) {
return coll
}else {
return new cljs.core.PersistentHashMap(this__35526.meta, this__35526.has_nil_QMARK_ ? this__35526.cnt : this__35526.cnt + 1, this__35526.root, true, v, null)
}
}else {
var added_leaf_QMARK___35528 = new cljs.core.Box(false);
var new_root__35529 = (this__35526.root == null ? cljs.core.BitmapIndexedNode.EMPTY : this__35526.root).inode_assoc(0, cljs.core.hash.call(null, k), k, v, added_leaf_QMARK___35528);
if(new_root__35529 === this__35526.root) {
return coll
}else {
return new cljs.core.PersistentHashMap(this__35526.meta, added_leaf_QMARK___35528.val ? this__35526.cnt + 1 : this__35526.cnt, new_root__35529, this__35526.has_nil_QMARK_, this__35526.nil_val, null)
}
}
};
cljs.core.PersistentHashMap.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 = function(coll, k) {
var this__35530 = this;
if(k == null) {
return this__35530.has_nil_QMARK_
}else {
if(this__35530.root == null) {
return false
}else {
if("\ufdd0'else") {
return!(this__35530.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__35553 = null;
var G__35553__2 = function(this_sym35531, k) {
var this__35533 = this;
var this_sym35531__35534 = this;
var coll__35535 = this_sym35531__35534;
return coll__35535.cljs$core$ILookup$_lookup$arity$2(coll__35535, k)
};
var G__35553__3 = function(this_sym35532, k, not_found) {
var this__35533 = this;
var this_sym35532__35536 = this;
var coll__35537 = this_sym35532__35536;
return coll__35537.cljs$core$ILookup$_lookup$arity$3(coll__35537, k, not_found)
};
G__35553 = function(this_sym35532, k, not_found) {
switch(arguments.length) {
case 2:
return G__35553__2.call(this, this_sym35532, k);
case 3:
return G__35553__3.call(this, this_sym35532, k, not_found)
}
throw"Invalid arity: " + arguments.length;
};
return G__35553
}();
cljs.core.PersistentHashMap.prototype.apply = function(this_sym35518, args35519) {
var this__35538 = this;
return this_sym35518.call.apply(this_sym35518, [this_sym35518].concat(args35519.slice()))
};
cljs.core.PersistentHashMap.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 = function(coll, f, init) {
var this__35539 = this;
var init__35540 = this__35539.has_nil_QMARK_ ? f.call(null, init, null, this__35539.nil_val) : init;
if(cljs.core.reduced_QMARK_.call(null, init__35540)) {
return cljs.core.deref.call(null, init__35540)
}else {
if(!(this__35539.root == null)) {
return this__35539.root.kv_reduce(f, init__35540)
}else {
if("\ufdd0'else") {
return init__35540
}else {
return null
}
}
}
};
cljs.core.PersistentHashMap.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, entry) {
var this__35541 = 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__35542 = this;
var this__35543 = this;
return cljs.core.pr_str.call(null, this__35543)
};
cljs.core.PersistentHashMap.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var this__35544 = this;
if(this__35544.cnt > 0) {
var s__35545 = !(this__35544.root == null) ? this__35544.root.inode_seq() : null;
if(this__35544.has_nil_QMARK_) {
return cljs.core.cons.call(null, cljs.core.PersistentVector.fromArray([null, this__35544.nil_val], true), s__35545)
}else {
return s__35545
}
}else {
return null
}
};
cljs.core.PersistentHashMap.prototype.cljs$core$ICounted$_count$arity$1 = function(coll) {
var this__35546 = this;
return this__35546.cnt
};
cljs.core.PersistentHashMap.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var this__35547 = 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__35548 = this;
return new cljs.core.PersistentHashMap(meta, this__35548.cnt, this__35548.root, this__35548.has_nil_QMARK_, this__35548.nil_val, this__35548.__hash)
};
cljs.core.PersistentHashMap.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var this__35549 = this;
return this__35549.meta
};
cljs.core.PersistentHashMap.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var this__35550 = this;
return cljs.core._with_meta.call(null, cljs.core.PersistentHashMap.EMPTY, this__35550.meta)
};
cljs.core.PersistentHashMap.prototype.cljs$core$IMap$_dissoc$arity$2 = function(coll, k) {
var this__35551 = this;
if(k == null) {
if(this__35551.has_nil_QMARK_) {
return new cljs.core.PersistentHashMap(this__35551.meta, this__35551.cnt - 1, this__35551.root, false, null, null)
}else {
return coll
}
}else {
if(this__35551.root == null) {
return coll
}else {
if("\ufdd0'else") {
var new_root__35552 = this__35551.root.inode_without(0, cljs.core.hash.call(null, k), k);
if(new_root__35552 === this__35551.root) {
return coll
}else {
return new cljs.core.PersistentHashMap(this__35551.meta, this__35551.cnt - 1, new_root__35552, this__35551.has_nil_QMARK_, this__35551.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__35554 = ks.length;
var i__35555 = 0;
var out__35556 = cljs.core.transient$.call(null, cljs.core.PersistentHashMap.EMPTY);
while(true) {
if(i__35555 < len__35554) {
var G__35557 = i__35555 + 1;
var G__35558 = cljs.core.assoc_BANG_.call(null, out__35556, ks[i__35555], vs[i__35555]);
i__35555 = G__35557;
out__35556 = G__35558;
continue
}else {
return cljs.core.persistent_BANG_.call(null, out__35556)
}
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__2329__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__35559 = this;
return tcoll.without_BANG_(key)
};
cljs.core.TransientHashMap.prototype.cljs$core$ITransientAssociative$_assoc_BANG_$arity$3 = function(tcoll, key, val) {
var this__35560 = this;
return tcoll.assoc_BANG_(key, val)
};
cljs.core.TransientHashMap.prototype.cljs$core$ITransientCollection$_conj_BANG_$arity$2 = function(tcoll, val) {
var this__35561 = this;
return tcoll.conj_BANG_(val)
};
cljs.core.TransientHashMap.prototype.cljs$core$ITransientCollection$_persistent_BANG_$arity$1 = function(tcoll) {
var this__35562 = this;
return tcoll.persistent_BANG_()
};
cljs.core.TransientHashMap.prototype.cljs$core$ILookup$_lookup$arity$2 = function(tcoll, k) {
var this__35563 = this;
if(k == null) {
if(this__35563.has_nil_QMARK_) {
return this__35563.nil_val
}else {
return null
}
}else {
if(this__35563.root == null) {
return null
}else {
return this__35563.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__35564 = this;
if(k == null) {
if(this__35564.has_nil_QMARK_) {
return this__35564.nil_val
}else {
return not_found
}
}else {
if(this__35564.root == null) {
return not_found
}else {
return this__35564.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__35565 = this;
if(this__35565.edit) {
return this__35565.count
}else {
throw new Error("count after persistent!");
}
};
cljs.core.TransientHashMap.prototype.conj_BANG_ = function(o) {
var this__35566 = this;
var tcoll__35567 = this;
if(this__35566.edit) {
if(function() {
var G__35568__35569 = o;
if(G__35568__35569) {
if(function() {
var or__3824__auto____35570 = G__35568__35569.cljs$lang$protocol_mask$partition0$ & 2048;
if(or__3824__auto____35570) {
return or__3824__auto____35570
}else {
return G__35568__35569.cljs$core$IMapEntry$
}
}()) {
return true
}else {
if(!G__35568__35569.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IMapEntry, G__35568__35569)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IMapEntry, G__35568__35569)
}
}()) {
return tcoll__35567.assoc_BANG_(cljs.core.key.call(null, o), cljs.core.val.call(null, o))
}else {
var es__35571 = cljs.core.seq.call(null, o);
var tcoll__35572 = tcoll__35567;
while(true) {
var temp__3971__auto____35573 = cljs.core.first.call(null, es__35571);
if(cljs.core.truth_(temp__3971__auto____35573)) {
var e__35574 = temp__3971__auto____35573;
var G__35585 = cljs.core.next.call(null, es__35571);
var G__35586 = tcoll__35572.assoc_BANG_(cljs.core.key.call(null, e__35574), cljs.core.val.call(null, e__35574));
es__35571 = G__35585;
tcoll__35572 = G__35586;
continue
}else {
return tcoll__35572
}
break
}
}
}else {
throw new Error("conj! after persistent");
}
};
cljs.core.TransientHashMap.prototype.assoc_BANG_ = function(k, v) {
var this__35575 = this;
var tcoll__35576 = this;
if(this__35575.edit) {
if(k == null) {
if(this__35575.nil_val === v) {
}else {
this__35575.nil_val = v
}
if(this__35575.has_nil_QMARK_) {
}else {
this__35575.count = this__35575.count + 1;
this__35575.has_nil_QMARK_ = true
}
return tcoll__35576
}else {
var added_leaf_QMARK___35577 = new cljs.core.Box(false);
var node__35578 = (this__35575.root == null ? cljs.core.BitmapIndexedNode.EMPTY : this__35575.root).inode_assoc_BANG_(this__35575.edit, 0, cljs.core.hash.call(null, k), k, v, added_leaf_QMARK___35577);
if(node__35578 === this__35575.root) {
}else {
this__35575.root = node__35578
}
if(added_leaf_QMARK___35577.val) {
this__35575.count = this__35575.count + 1
}else {
}
return tcoll__35576
}
}else {
throw new Error("assoc! after persistent!");
}
};
cljs.core.TransientHashMap.prototype.without_BANG_ = function(k) {
var this__35579 = this;
var tcoll__35580 = this;
if(this__35579.edit) {
if(k == null) {
if(this__35579.has_nil_QMARK_) {
this__35579.has_nil_QMARK_ = false;
this__35579.nil_val = null;
this__35579.count = this__35579.count - 1;
return tcoll__35580
}else {
return tcoll__35580
}
}else {
if(this__35579.root == null) {
return tcoll__35580
}else {
var removed_leaf_QMARK___35581 = new cljs.core.Box(false);
var node__35582 = this__35579.root.inode_without_BANG_(this__35579.edit, 0, cljs.core.hash.call(null, k), k, removed_leaf_QMARK___35581);
if(node__35582 === this__35579.root) {
}else {
this__35579.root = node__35582
}
if(cljs.core.truth_(removed_leaf_QMARK___35581[0])) {
this__35579.count = this__35579.count - 1
}else {
}
return tcoll__35580
}
}
}else {
throw new Error("dissoc! after persistent!");
}
};
cljs.core.TransientHashMap.prototype.persistent_BANG_ = function() {
var this__35583 = this;
var tcoll__35584 = this;
if(this__35583.edit) {
this__35583.edit = null;
return new cljs.core.PersistentHashMap(null, this__35583.count, this__35583.root, this__35583.has_nil_QMARK_, this__35583.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__35589 = node;
var stack__35590 = stack;
while(true) {
if(!(t__35589 == null)) {
var G__35591 = ascending_QMARK_ ? t__35589.left : t__35589.right;
var G__35592 = cljs.core.conj.call(null, stack__35590, t__35589);
t__35589 = G__35591;
stack__35590 = G__35592;
continue
}else {
return stack__35590
}
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__2329__auto__) {
return cljs.core.list.call(null, "cljs.core/PersistentTreeMapSeq")
};
cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var this__35593 = this;
var h__2212__auto____35594 = this__35593.__hash;
if(!(h__2212__auto____35594 == null)) {
return h__2212__auto____35594
}else {
var h__2212__auto____35595 = cljs.core.hash_coll.call(null, coll);
this__35593.__hash = h__2212__auto____35595;
return h__2212__auto____35595
}
};
cljs.core.PersistentTreeMapSeq.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var this__35596 = this;
return cljs.core.cons.call(null, o, coll)
};
cljs.core.PersistentTreeMapSeq.prototype.toString = function() {
var this__35597 = this;
var this__35598 = this;
return cljs.core.pr_str.call(null, this__35598)
};
cljs.core.PersistentTreeMapSeq.prototype.cljs$core$ISeqable$_seq$arity$1 = function(this$) {
var this__35599 = this;
return this$
};
cljs.core.PersistentTreeMapSeq.prototype.cljs$core$ICounted$_count$arity$1 = function(coll) {
var this__35600 = this;
if(this__35600.cnt < 0) {
return cljs.core.count.call(null, cljs.core.next.call(null, coll)) + 1
}else {
return this__35600.cnt
}
};
cljs.core.PersistentTreeMapSeq.prototype.cljs$core$ISeq$_first$arity$1 = function(this$) {
var this__35601 = this;
return cljs.core.peek.call(null, this__35601.stack)
};
cljs.core.PersistentTreeMapSeq.prototype.cljs$core$ISeq$_rest$arity$1 = function(this$) {
var this__35602 = this;
var t__35603 = cljs.core.first.call(null, this__35602.stack);
var next_stack__35604 = cljs.core.tree_map_seq_push.call(null, this__35602.ascending_QMARK_ ? t__35603.right : t__35603.left, cljs.core.next.call(null, this__35602.stack), this__35602.ascending_QMARK_);
if(!(next_stack__35604 == null)) {
return new cljs.core.PersistentTreeMapSeq(null, next_stack__35604, this__35602.ascending_QMARK_, this__35602.cnt - 1, null)
}else {
return cljs.core.List.EMPTY
}
};
cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var this__35605 = 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__35606 = this;
return new cljs.core.PersistentTreeMapSeq(meta, this__35606.stack, this__35606.ascending_QMARK_, this__35606.cnt, this__35606.__hash)
};
cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var this__35607 = this;
return this__35607.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____35609 = cljs.core.instance_QMARK_.call(null, cljs.core.RedNode, right);
if(and__3822__auto____35609) {
return cljs.core.instance_QMARK_.call(null, cljs.core.BlackNode, right.left)
}else {
return and__3822__auto____35609
}
}()) {
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____35611 = cljs.core.instance_QMARK_.call(null, cljs.core.RedNode, left);
if(and__3822__auto____35611) {
return cljs.core.instance_QMARK_.call(null, cljs.core.BlackNode, left.right)
}else {
return and__3822__auto____35611
}
}()) {
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__35615 = f.call(null, init, node.key, node.val);
if(cljs.core.reduced_QMARK_.call(null, init__35615)) {
return cljs.core.deref.call(null, init__35615)
}else {
var init__35616 = !(node.left == null) ? tree_map_kv_reduce.call(null, node.left, f, init__35615) : init__35615;
if(cljs.core.reduced_QMARK_.call(null, init__35616)) {
return cljs.core.deref.call(null, init__35616)
}else {
var init__35617 = !(node.right == null) ? tree_map_kv_reduce.call(null, node.right, f, init__35616) : init__35616;
if(cljs.core.reduced_QMARK_.call(null, init__35617)) {
return cljs.core.deref.call(null, init__35617)
}else {
return init__35617
}
}
}
};
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__2329__auto__) {
return cljs.core.list.call(null, "cljs.core/BlackNode")
};
cljs.core.BlackNode.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var this__35620 = this;
var h__2212__auto____35621 = this__35620.__hash;
if(!(h__2212__auto____35621 == null)) {
return h__2212__auto____35621
}else {
var h__2212__auto____35622 = cljs.core.hash_coll.call(null, coll);
this__35620.__hash = h__2212__auto____35622;
return h__2212__auto____35622
}
};
cljs.core.BlackNode.prototype.cljs$core$ILookup$_lookup$arity$2 = function(node, k) {
var this__35623 = 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__35624 = 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__35625 = this;
return cljs.core.assoc.call(null, cljs.core.PersistentVector.fromArray([this__35625.key, this__35625.val], true), k, v)
};
cljs.core.BlackNode.prototype.call = function() {
var G__35673 = null;
var G__35673__2 = function(this_sym35626, k) {
var this__35628 = this;
var this_sym35626__35629 = this;
var node__35630 = this_sym35626__35629;
return node__35630.cljs$core$ILookup$_lookup$arity$2(node__35630, k)
};
var G__35673__3 = function(this_sym35627, k, not_found) {
var this__35628 = this;
var this_sym35627__35631 = this;
var node__35632 = this_sym35627__35631;
return node__35632.cljs$core$ILookup$_lookup$arity$3(node__35632, k, not_found)
};
G__35673 = function(this_sym35627, k, not_found) {
switch(arguments.length) {
case 2:
return G__35673__2.call(this, this_sym35627, k);
case 3:
return G__35673__3.call(this, this_sym35627, k, not_found)
}
throw"Invalid arity: " + arguments.length;
};
return G__35673
}();
cljs.core.BlackNode.prototype.apply = function(this_sym35618, args35619) {
var this__35633 = this;
return this_sym35618.call.apply(this_sym35618, [this_sym35618].concat(args35619.slice()))
};
cljs.core.BlackNode.prototype.cljs$core$ICollection$_conj$arity$2 = function(node, o) {
var this__35634 = this;
return cljs.core.PersistentVector.fromArray([this__35634.key, this__35634.val, o], true)
};
cljs.core.BlackNode.prototype.cljs$core$IMapEntry$_key$arity$1 = function(node) {
var this__35635 = this;
return this__35635.key
};
cljs.core.BlackNode.prototype.cljs$core$IMapEntry$_val$arity$1 = function(node) {
var this__35636 = this;
return this__35636.val
};
cljs.core.BlackNode.prototype.add_right = function(ins) {
var this__35637 = this;
var node__35638 = this;
return ins.balance_right(node__35638)
};
cljs.core.BlackNode.prototype.redden = function() {
var this__35639 = this;
var node__35640 = this;
return new cljs.core.RedNode(this__35639.key, this__35639.val, this__35639.left, this__35639.right, null)
};
cljs.core.BlackNode.prototype.remove_right = function(del) {
var this__35641 = this;
var node__35642 = this;
return cljs.core.balance_right_del.call(null, this__35641.key, this__35641.val, this__35641.left, del)
};
cljs.core.BlackNode.prototype.replace = function(key, val, left, right) {
var this__35643 = this;
var node__35644 = this;
return new cljs.core.BlackNode(key, val, left, right, null)
};
cljs.core.BlackNode.prototype.kv_reduce = function(f, init) {
var this__35645 = this;
var node__35646 = this;
return cljs.core.tree_map_kv_reduce.call(null, node__35646, f, init)
};
cljs.core.BlackNode.prototype.remove_left = function(del) {
var this__35647 = this;
var node__35648 = this;
return cljs.core.balance_left_del.call(null, this__35647.key, this__35647.val, del, this__35647.right)
};
cljs.core.BlackNode.prototype.add_left = function(ins) {
var this__35649 = this;
var node__35650 = this;
return ins.balance_left(node__35650)
};
cljs.core.BlackNode.prototype.balance_left = function(parent) {
var this__35651 = this;
var node__35652 = this;
return new cljs.core.BlackNode(parent.key, parent.val, node__35652, parent.right, null)
};
cljs.core.BlackNode.prototype.toString = function() {
var G__35674 = null;
var G__35674__0 = function() {
var this__35653 = this;
var this__35655 = this;
return cljs.core.pr_str.call(null, this__35655)
};
G__35674 = function() {
switch(arguments.length) {
case 0:
return G__35674__0.call(this)
}
throw"Invalid arity: " + arguments.length;
};
return G__35674
}();
cljs.core.BlackNode.prototype.balance_right = function(parent) {
var this__35656 = this;
var node__35657 = this;
return new cljs.core.BlackNode(parent.key, parent.val, parent.left, node__35657, null)
};
cljs.core.BlackNode.prototype.blacken = function() {
var this__35658 = this;
var node__35659 = this;
return node__35659
};
cljs.core.BlackNode.prototype.cljs$core$IReduce$_reduce$arity$2 = function(node, f) {
var this__35660 = 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__35661 = 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__35662 = this;
return cljs.core.list.call(null, this__35662.key, this__35662.val)
};
cljs.core.BlackNode.prototype.cljs$core$ICounted$_count$arity$1 = function(node) {
var this__35663 = this;
return 2
};
cljs.core.BlackNode.prototype.cljs$core$IStack$_peek$arity$1 = function(node) {
var this__35664 = this;
return this__35664.val
};
cljs.core.BlackNode.prototype.cljs$core$IStack$_pop$arity$1 = function(node) {
var this__35665 = this;
return cljs.core.PersistentVector.fromArray([this__35665.key], true)
};
cljs.core.BlackNode.prototype.cljs$core$IVector$_assoc_n$arity$3 = function(node, n, v) {
var this__35666 = this;
return cljs.core._assoc_n.call(null, cljs.core.PersistentVector.fromArray([this__35666.key, this__35666.val], true), n, v)
};
cljs.core.BlackNode.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var this__35667 = 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__35668 = this;
return cljs.core.with_meta.call(null, cljs.core.PersistentVector.fromArray([this__35668.key, this__35668.val], true), meta)
};
cljs.core.BlackNode.prototype.cljs$core$IMeta$_meta$arity$1 = function(node) {
var this__35669 = this;
return null
};
cljs.core.BlackNode.prototype.cljs$core$IIndexed$_nth$arity$2 = function(node, n) {
var this__35670 = this;
if(n === 0) {
return this__35670.key
}else {
if(n === 1) {
return this__35670.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__35671 = this;
if(n === 0) {
return this__35671.key
}else {
if(n === 1) {
return this__35671.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__35672 = 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__2329__auto__) {
return cljs.core.list.call(null, "cljs.core/RedNode")
};
cljs.core.RedNode.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var this__35677 = this;
var h__2212__auto____35678 = this__35677.__hash;
if(!(h__2212__auto____35678 == null)) {
return h__2212__auto____35678
}else {
var h__2212__auto____35679 = cljs.core.hash_coll.call(null, coll);
this__35677.__hash = h__2212__auto____35679;
return h__2212__auto____35679
}
};
cljs.core.RedNode.prototype.cljs$core$ILookup$_lookup$arity$2 = function(node, k) {
var this__35680 = 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__35681 = 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__35682 = this;
return cljs.core.assoc.call(null, cljs.core.PersistentVector.fromArray([this__35682.key, this__35682.val], true), k, v)
};
cljs.core.RedNode.prototype.call = function() {
var G__35730 = null;
var G__35730__2 = function(this_sym35683, k) {
var this__35685 = this;
var this_sym35683__35686 = this;
var node__35687 = this_sym35683__35686;
return node__35687.cljs$core$ILookup$_lookup$arity$2(node__35687, k)
};
var G__35730__3 = function(this_sym35684, k, not_found) {
var this__35685 = this;
var this_sym35684__35688 = this;
var node__35689 = this_sym35684__35688;
return node__35689.cljs$core$ILookup$_lookup$arity$3(node__35689, k, not_found)
};
G__35730 = function(this_sym35684, k, not_found) {
switch(arguments.length) {
case 2:
return G__35730__2.call(this, this_sym35684, k);
case 3:
return G__35730__3.call(this, this_sym35684, k, not_found)
}
throw"Invalid arity: " + arguments.length;
};
return G__35730
}();
cljs.core.RedNode.prototype.apply = function(this_sym35675, args35676) {
var this__35690 = this;
return this_sym35675.call.apply(this_sym35675, [this_sym35675].concat(args35676.slice()))
};
cljs.core.RedNode.prototype.cljs$core$ICollection$_conj$arity$2 = function(node, o) {
var this__35691 = this;
return cljs.core.PersistentVector.fromArray([this__35691.key, this__35691.val, o], true)
};
cljs.core.RedNode.prototype.cljs$core$IMapEntry$_key$arity$1 = function(node) {
var this__35692 = this;
return this__35692.key
};
cljs.core.RedNode.prototype.cljs$core$IMapEntry$_val$arity$1 = function(node) {
var this__35693 = this;
return this__35693.val
};
cljs.core.RedNode.prototype.add_right = function(ins) {
var this__35694 = this;
var node__35695 = this;
return new cljs.core.RedNode(this__35694.key, this__35694.val, this__35694.left, ins, null)
};
cljs.core.RedNode.prototype.redden = function() {
var this__35696 = this;
var node__35697 = this;
throw new Error("red-black tree invariant violation");
};
cljs.core.RedNode.prototype.remove_right = function(del) {
var this__35698 = this;
var node__35699 = this;
return new cljs.core.RedNode(this__35698.key, this__35698.val, this__35698.left, del, null)
};
cljs.core.RedNode.prototype.replace = function(key, val, left, right) {
var this__35700 = this;
var node__35701 = this;
return new cljs.core.RedNode(key, val, left, right, null)
};
cljs.core.RedNode.prototype.kv_reduce = function(f, init) {
var this__35702 = this;
var node__35703 = this;
return cljs.core.tree_map_kv_reduce.call(null, node__35703, f, init)
};
cljs.core.RedNode.prototype.remove_left = function(del) {
var this__35704 = this;
var node__35705 = this;
return new cljs.core.RedNode(this__35704.key, this__35704.val, del, this__35704.right, null)
};
cljs.core.RedNode.prototype.add_left = function(ins) {
var this__35706 = this;
var node__35707 = this;
return new cljs.core.RedNode(this__35706.key, this__35706.val, ins, this__35706.right, null)
};
cljs.core.RedNode.prototype.balance_left = function(parent) {
var this__35708 = this;
var node__35709 = this;
if(cljs.core.instance_QMARK_.call(null, cljs.core.RedNode, this__35708.left)) {
return new cljs.core.RedNode(this__35708.key, this__35708.val, this__35708.left.blacken(), new cljs.core.BlackNode(parent.key, parent.val, this__35708.right, parent.right, null), null)
}else {
if(cljs.core.instance_QMARK_.call(null, cljs.core.RedNode, this__35708.right)) {
return new cljs.core.RedNode(this__35708.right.key, this__35708.right.val, new cljs.core.BlackNode(this__35708.key, this__35708.val, this__35708.left, this__35708.right.left, null), new cljs.core.BlackNode(parent.key, parent.val, this__35708.right.right, parent.right, null), null)
}else {
if("\ufdd0'else") {
return new cljs.core.BlackNode(parent.key, parent.val, node__35709, parent.right, null)
}else {
return null
}
}
}
};
cljs.core.RedNode.prototype.toString = function() {
var G__35731 = null;
var G__35731__0 = function() {
var this__35710 = this;
var this__35712 = this;
return cljs.core.pr_str.call(null, this__35712)
};
G__35731 = function() {
switch(arguments.length) {
case 0:
return G__35731__0.call(this)
}
throw"Invalid arity: " + arguments.length;
};
return G__35731
}();
cljs.core.RedNode.prototype.balance_right = function(parent) {
var this__35713 = this;
var node__35714 = this;
if(cljs.core.instance_QMARK_.call(null, cljs.core.RedNode, this__35713.right)) {
return new cljs.core.RedNode(this__35713.key, this__35713.val, new cljs.core.BlackNode(parent.key, parent.val, parent.left, this__35713.left, null), this__35713.right.blacken(), null)
}else {
if(cljs.core.instance_QMARK_.call(null, cljs.core.RedNode, this__35713.left)) {
return new cljs.core.RedNode(this__35713.left.key, this__35713.left.val, new cljs.core.BlackNode(parent.key, parent.val, parent.left, this__35713.left.left, null), new cljs.core.BlackNode(this__35713.key, this__35713.val, this__35713.left.right, this__35713.right, null), null)
}else {
if("\ufdd0'else") {
return new cljs.core.BlackNode(parent.key, parent.val, parent.left, node__35714, null)
}else {
return null
}
}
}
};
cljs.core.RedNode.prototype.blacken = function() {
var this__35715 = this;
var node__35716 = this;
return new cljs.core.BlackNode(this__35715.key, this__35715.val, this__35715.left, this__35715.right, null)
};
cljs.core.RedNode.prototype.cljs$core$IReduce$_reduce$arity$2 = function(node, f) {
var this__35717 = 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__35718 = 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__35719 = this;
return cljs.core.list.call(null, this__35719.key, this__35719.val)
};
cljs.core.RedNode.prototype.cljs$core$ICounted$_count$arity$1 = function(node) {
var this__35720 = this;
return 2
};
cljs.core.RedNode.prototype.cljs$core$IStack$_peek$arity$1 = function(node) {
var this__35721 = this;
return this__35721.val
};
cljs.core.RedNode.prototype.cljs$core$IStack$_pop$arity$1 = function(node) {
var this__35722 = this;
return cljs.core.PersistentVector.fromArray([this__35722.key], true)
};
cljs.core.RedNode.prototype.cljs$core$IVector$_assoc_n$arity$3 = function(node, n, v) {
var this__35723 = this;
return cljs.core._assoc_n.call(null, cljs.core.PersistentVector.fromArray([this__35723.key, this__35723.val], true), n, v)
};
cljs.core.RedNode.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var this__35724 = 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__35725 = this;
return cljs.core.with_meta.call(null, cljs.core.PersistentVector.fromArray([this__35725.key, this__35725.val], true), meta)
};
cljs.core.RedNode.prototype.cljs$core$IMeta$_meta$arity$1 = function(node) {
var this__35726 = this;
return null
};
cljs.core.RedNode.prototype.cljs$core$IIndexed$_nth$arity$2 = function(node, n) {
var this__35727 = this;
if(n === 0) {
return this__35727.key
}else {
if(n === 1) {
return this__35727.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__35728 = this;
if(n === 0) {
return this__35728.key
}else {
if(n === 1) {
return this__35728.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__35729 = 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__35735 = comp.call(null, k, tree.key);
if(c__35735 === 0) {
found[0] = tree;
return null
}else {
if(c__35735 < 0) {
var ins__35736 = tree_map_add.call(null, comp, tree.left, k, v, found);
if(!(ins__35736 == null)) {
return tree.add_left(ins__35736)
}else {
return null
}
}else {
if("\ufdd0'else") {
var ins__35737 = tree_map_add.call(null, comp, tree.right, k, v, found);
if(!(ins__35737 == null)) {
return tree.add_right(ins__35737)
}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__35740 = tree_map_append.call(null, left.right, right.left);
if(cljs.core.instance_QMARK_.call(null, cljs.core.RedNode, app__35740)) {
return new cljs.core.RedNode(app__35740.key, app__35740.val, new cljs.core.RedNode(left.key, left.val, left.left, app__35740.left, null), new cljs.core.RedNode(right.key, right.val, app__35740.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__35740, 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__35741 = tree_map_append.call(null, left.right, right.left);
if(cljs.core.instance_QMARK_.call(null, cljs.core.RedNode, app__35741)) {
return new cljs.core.RedNode(app__35741.key, app__35741.val, new cljs.core.BlackNode(left.key, left.val, left.left, app__35741.left, null), new cljs.core.BlackNode(right.key, right.val, app__35741.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__35741, right.right, null))
}
}else {
return null
}
}
}
}
}
};
cljs.core.tree_map_remove = function tree_map_remove(comp, tree, k, found) {
if(!(tree == null)) {
var c__35747 = comp.call(null, k, tree.key);
if(c__35747 === 0) {
found[0] = tree;
return cljs.core.tree_map_append.call(null, tree.left, tree.right)
}else {
if(c__35747 < 0) {
var del__35748 = tree_map_remove.call(null, comp, tree.left, k, found);
if(function() {
var or__3824__auto____35749 = !(del__35748 == null);
if(or__3824__auto____35749) {
return or__3824__auto____35749
}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__35748, tree.right)
}else {
return new cljs.core.RedNode(tree.key, tree.val, del__35748, tree.right, null)
}
}else {
return null
}
}else {
if("\ufdd0'else") {
var del__35750 = tree_map_remove.call(null, comp, tree.right, k, found);
if(function() {
var or__3824__auto____35751 = !(del__35750 == null);
if(or__3824__auto____35751) {
return or__3824__auto____35751
}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__35750)
}else {
return new cljs.core.RedNode(tree.key, tree.val, tree.left, del__35750, 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__35754 = tree.key;
var c__35755 = comp.call(null, k, tk__35754);
if(c__35755 === 0) {
return tree.replace(tk__35754, v, tree.left, tree.right)
}else {
if(c__35755 < 0) {
return tree.replace(tk__35754, tree.val, tree_map_replace.call(null, comp, tree.left, k, v), tree.right)
}else {
if("\ufdd0'else") {
return tree.replace(tk__35754, 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__2329__auto__) {
return cljs.core.list.call(null, "cljs.core/PersistentTreeMap")
};
cljs.core.PersistentTreeMap.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var this__35758 = this;
var h__2212__auto____35759 = this__35758.__hash;
if(!(h__2212__auto____35759 == null)) {
return h__2212__auto____35759
}else {
var h__2212__auto____35760 = cljs.core.hash_imap.call(null, coll);
this__35758.__hash = h__2212__auto____35760;
return h__2212__auto____35760
}
};
cljs.core.PersistentTreeMap.prototype.cljs$core$ILookup$_lookup$arity$2 = function(coll, k) {
var this__35761 = 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__35762 = this;
var n__35763 = coll.entry_at(k);
if(!(n__35763 == null)) {
return n__35763.val
}else {
return not_found
}
};
cljs.core.PersistentTreeMap.prototype.cljs$core$IAssociative$_assoc$arity$3 = function(coll, k, v) {
var this__35764 = this;
var found__35765 = [null];
var t__35766 = cljs.core.tree_map_add.call(null, this__35764.comp, this__35764.tree, k, v, found__35765);
if(t__35766 == null) {
var found_node__35767 = cljs.core.nth.call(null, found__35765, 0);
if(cljs.core._EQ_.call(null, v, found_node__35767.val)) {
return coll
}else {
return new cljs.core.PersistentTreeMap(this__35764.comp, cljs.core.tree_map_replace.call(null, this__35764.comp, this__35764.tree, k, v), this__35764.cnt, this__35764.meta, null)
}
}else {
return new cljs.core.PersistentTreeMap(this__35764.comp, t__35766.blacken(), this__35764.cnt + 1, this__35764.meta, null)
}
};
cljs.core.PersistentTreeMap.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 = function(coll, k) {
var this__35768 = this;
return!(coll.entry_at(k) == null)
};
cljs.core.PersistentTreeMap.prototype.call = function() {
var G__35802 = null;
var G__35802__2 = function(this_sym35769, k) {
var this__35771 = this;
var this_sym35769__35772 = this;
var coll__35773 = this_sym35769__35772;
return coll__35773.cljs$core$ILookup$_lookup$arity$2(coll__35773, k)
};
var G__35802__3 = function(this_sym35770, k, not_found) {
var this__35771 = this;
var this_sym35770__35774 = this;
var coll__35775 = this_sym35770__35774;
return coll__35775.cljs$core$ILookup$_lookup$arity$3(coll__35775, k, not_found)
};
G__35802 = function(this_sym35770, k, not_found) {
switch(arguments.length) {
case 2:
return G__35802__2.call(this, this_sym35770, k);
case 3:
return G__35802__3.call(this, this_sym35770, k, not_found)
}
throw"Invalid arity: " + arguments.length;
};
return G__35802
}();
cljs.core.PersistentTreeMap.prototype.apply = function(this_sym35756, args35757) {
var this__35776 = this;
return this_sym35756.call.apply(this_sym35756, [this_sym35756].concat(args35757.slice()))
};
cljs.core.PersistentTreeMap.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 = function(coll, f, init) {
var this__35777 = this;
if(!(this__35777.tree == null)) {
return cljs.core.tree_map_kv_reduce.call(null, this__35777.tree, f, init)
}else {
return init
}
};
cljs.core.PersistentTreeMap.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, entry) {
var this__35778 = 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__35779 = this;
if(this__35779.cnt > 0) {
return cljs.core.create_tree_map_seq.call(null, this__35779.tree, false, this__35779.cnt)
}else {
return null
}
};
cljs.core.PersistentTreeMap.prototype.toString = function() {
var this__35780 = this;
var this__35781 = this;
return cljs.core.pr_str.call(null, this__35781)
};
cljs.core.PersistentTreeMap.prototype.entry_at = function(k) {
var this__35782 = this;
var coll__35783 = this;
var t__35784 = this__35782.tree;
while(true) {
if(!(t__35784 == null)) {
var c__35785 = this__35782.comp.call(null, k, t__35784.key);
if(c__35785 === 0) {
return t__35784
}else {
if(c__35785 < 0) {
var G__35803 = t__35784.left;
t__35784 = G__35803;
continue
}else {
if("\ufdd0'else") {
var G__35804 = t__35784.right;
t__35784 = G__35804;
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__35786 = this;
if(this__35786.cnt > 0) {
return cljs.core.create_tree_map_seq.call(null, this__35786.tree, ascending_QMARK_, this__35786.cnt)
}else {
return null
}
};
cljs.core.PersistentTreeMap.prototype.cljs$core$ISorted$_sorted_seq_from$arity$3 = function(coll, k, ascending_QMARK_) {
var this__35787 = this;
if(this__35787.cnt > 0) {
var stack__35788 = null;
var t__35789 = this__35787.tree;
while(true) {
if(!(t__35789 == null)) {
var c__35790 = this__35787.comp.call(null, k, t__35789.key);
if(c__35790 === 0) {
return new cljs.core.PersistentTreeMapSeq(null, cljs.core.conj.call(null, stack__35788, t__35789), ascending_QMARK_, -1, null)
}else {
if(cljs.core.truth_(ascending_QMARK_)) {
if(c__35790 < 0) {
var G__35805 = cljs.core.conj.call(null, stack__35788, t__35789);
var G__35806 = t__35789.left;
stack__35788 = G__35805;
t__35789 = G__35806;
continue
}else {
var G__35807 = stack__35788;
var G__35808 = t__35789.right;
stack__35788 = G__35807;
t__35789 = G__35808;
continue
}
}else {
if("\ufdd0'else") {
if(c__35790 > 0) {
var G__35809 = cljs.core.conj.call(null, stack__35788, t__35789);
var G__35810 = t__35789.right;
stack__35788 = G__35809;
t__35789 = G__35810;
continue
}else {
var G__35811 = stack__35788;
var G__35812 = t__35789.left;
stack__35788 = G__35811;
t__35789 = G__35812;
continue
}
}else {
return null
}
}
}
}else {
if(stack__35788 == null) {
return new cljs.core.PersistentTreeMapSeq(null, stack__35788, 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__35791 = this;
return cljs.core.key.call(null, entry)
};
cljs.core.PersistentTreeMap.prototype.cljs$core$ISorted$_comparator$arity$1 = function(coll) {
var this__35792 = this;
return this__35792.comp
};
cljs.core.PersistentTreeMap.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var this__35793 = this;
if(this__35793.cnt > 0) {
return cljs.core.create_tree_map_seq.call(null, this__35793.tree, true, this__35793.cnt)
}else {
return null
}
};
cljs.core.PersistentTreeMap.prototype.cljs$core$ICounted$_count$arity$1 = function(coll) {
var this__35794 = this;
return this__35794.cnt
};
cljs.core.PersistentTreeMap.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var this__35795 = 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__35796 = this;
return new cljs.core.PersistentTreeMap(this__35796.comp, this__35796.tree, this__35796.cnt, meta, this__35796.__hash)
};
cljs.core.PersistentTreeMap.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var this__35797 = this;
return this__35797.meta
};
cljs.core.PersistentTreeMap.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var this__35798 = this;
return cljs.core.with_meta.call(null, cljs.core.PersistentTreeMap.EMPTY, this__35798.meta)
};
cljs.core.PersistentTreeMap.prototype.cljs$core$IMap$_dissoc$arity$2 = function(coll, k) {
var this__35799 = this;
var found__35800 = [null];
var t__35801 = cljs.core.tree_map_remove.call(null, this__35799.comp, this__35799.tree, k, found__35800);
if(t__35801 == null) {
if(cljs.core.nth.call(null, found__35800, 0) == null) {
return coll
}else {
return new cljs.core.PersistentTreeMap(this__35799.comp, null, 0, this__35799.meta, null)
}
}else {
return new cljs.core.PersistentTreeMap(this__35799.comp, t__35801.blacken(), this__35799.cnt - 1, this__35799.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__35815 = cljs.core.seq.call(null, keyvals);
var out__35816 = cljs.core.transient$.call(null, cljs.core.PersistentHashMap.EMPTY);
while(true) {
if(in__35815) {
var G__35817 = cljs.core.nnext.call(null, in__35815);
var G__35818 = cljs.core.assoc_BANG_.call(null, out__35816, cljs.core.first.call(null, in__35815), cljs.core.second.call(null, in__35815));
in__35815 = G__35817;
out__35816 = G__35818;
continue
}else {
return cljs.core.persistent_BANG_.call(null, out__35816)
}
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__35819) {
var keyvals = cljs.core.seq(arglist__35819);
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__35820) {
var keyvals = cljs.core.seq(arglist__35820);
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__35824 = [];
var obj__35825 = {};
var kvs__35826 = cljs.core.seq.call(null, keyvals);
while(true) {
if(kvs__35826) {
ks__35824.push(cljs.core.first.call(null, kvs__35826));
obj__35825[cljs.core.first.call(null, kvs__35826)] = cljs.core.second.call(null, kvs__35826);
var G__35827 = cljs.core.nnext.call(null, kvs__35826);
kvs__35826 = G__35827;
continue
}else {
return cljs.core.ObjMap.fromObject.call(null, ks__35824, obj__35825)
}
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__35828) {
var keyvals = cljs.core.seq(arglist__35828);
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__35831 = cljs.core.seq.call(null, keyvals);
var out__35832 = cljs.core.PersistentTreeMap.EMPTY;
while(true) {
if(in__35831) {
var G__35833 = cljs.core.nnext.call(null, in__35831);
var G__35834 = cljs.core.assoc.call(null, out__35832, cljs.core.first.call(null, in__35831), cljs.core.second.call(null, in__35831));
in__35831 = G__35833;
out__35832 = G__35834;
continue
}else {
return out__35832
}
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__35835) {
var keyvals = cljs.core.seq(arglist__35835);
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__35838 = cljs.core.seq.call(null, keyvals);
var out__35839 = new cljs.core.PersistentTreeMap(comparator, null, 0, null, 0);
while(true) {
if(in__35838) {
var G__35840 = cljs.core.nnext.call(null, in__35838);
var G__35841 = cljs.core.assoc.call(null, out__35839, cljs.core.first.call(null, in__35838), cljs.core.second.call(null, in__35838));
in__35838 = G__35840;
out__35839 = G__35841;
continue
}else {
return out__35839
}
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__35842) {
var comparator = cljs.core.first(arglist__35842);
var keyvals = cljs.core.rest(arglist__35842);
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__35843_SHARP_, p2__35844_SHARP_) {
return cljs.core.conj.call(null, function() {
var or__3824__auto____35846 = p1__35843_SHARP_;
if(cljs.core.truth_(or__3824__auto____35846)) {
return or__3824__auto____35846
}else {
return cljs.core.ObjMap.EMPTY
}
}(), p2__35844_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__35847) {
var maps = cljs.core.seq(arglist__35847);
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__35855 = function(m, e) {
var k__35853 = cljs.core.first.call(null, e);
var v__35854 = cljs.core.second.call(null, e);
if(cljs.core.contains_QMARK_.call(null, m, k__35853)) {
return cljs.core.assoc.call(null, m, k__35853, f.call(null, cljs.core._lookup.call(null, m, k__35853, null), v__35854))
}else {
return cljs.core.assoc.call(null, m, k__35853, v__35854)
}
};
var merge2__35857 = function(m1, m2) {
return cljs.core.reduce.call(null, merge_entry__35855, function() {
var or__3824__auto____35856 = m1;
if(cljs.core.truth_(or__3824__auto____35856)) {
return or__3824__auto____35856
}else {
return cljs.core.ObjMap.EMPTY
}
}(), cljs.core.seq.call(null, m2))
};
return cljs.core.reduce.call(null, merge2__35857, 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__35858) {
var f = cljs.core.first(arglist__35858);
var maps = cljs.core.rest(arglist__35858);
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__35863 = cljs.core.ObjMap.EMPTY;
var keys__35864 = cljs.core.seq.call(null, keyseq);
while(true) {
if(keys__35864) {
var key__35865 = cljs.core.first.call(null, keys__35864);
var entry__35866 = cljs.core._lookup.call(null, map, key__35865, "\ufdd0'user/not-found");
var G__35867 = cljs.core.not_EQ_.call(null, entry__35866, "\ufdd0'user/not-found") ? cljs.core.assoc.call(null, ret__35863, key__35865, entry__35866) : ret__35863;
var G__35868 = cljs.core.next.call(null, keys__35864);
ret__35863 = G__35867;
keys__35864 = G__35868;
continue
}else {
return ret__35863
}
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__2329__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__35872 = this;
return new cljs.core.TransientHashSet(cljs.core.transient$.call(null, this__35872.hash_map))
};
cljs.core.PersistentHashSet.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var this__35873 = this;
var h__2212__auto____35874 = this__35873.__hash;
if(!(h__2212__auto____35874 == null)) {
return h__2212__auto____35874
}else {
var h__2212__auto____35875 = cljs.core.hash_iset.call(null, coll);
this__35873.__hash = h__2212__auto____35875;
return h__2212__auto____35875
}
};
cljs.core.PersistentHashSet.prototype.cljs$core$ILookup$_lookup$arity$2 = function(coll, v) {
var this__35876 = 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__35877 = this;
if(cljs.core.truth_(cljs.core._contains_key_QMARK_.call(null, this__35877.hash_map, v))) {
return v
}else {
return not_found
}
};
cljs.core.PersistentHashSet.prototype.call = function() {
var G__35898 = null;
var G__35898__2 = function(this_sym35878, k) {
var this__35880 = this;
var this_sym35878__35881 = this;
var coll__35882 = this_sym35878__35881;
return coll__35882.cljs$core$ILookup$_lookup$arity$2(coll__35882, k)
};
var G__35898__3 = function(this_sym35879, k, not_found) {
var this__35880 = this;
var this_sym35879__35883 = this;
var coll__35884 = this_sym35879__35883;
return coll__35884.cljs$core$ILookup$_lookup$arity$3(coll__35884, k, not_found)
};
G__35898 = function(this_sym35879, k, not_found) {
switch(arguments.length) {
case 2:
return G__35898__2.call(this, this_sym35879, k);
case 3:
return G__35898__3.call(this, this_sym35879, k, not_found)
}
throw"Invalid arity: " + arguments.length;
};
return G__35898
}();
cljs.core.PersistentHashSet.prototype.apply = function(this_sym35870, args35871) {
var this__35885 = this;
return this_sym35870.call.apply(this_sym35870, [this_sym35870].concat(args35871.slice()))
};
cljs.core.PersistentHashSet.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var this__35886 = this;
return new cljs.core.PersistentHashSet(this__35886.meta, cljs.core.assoc.call(null, this__35886.hash_map, o, null), null)
};
cljs.core.PersistentHashSet.prototype.toString = function() {
var this__35887 = this;
var this__35888 = this;
return cljs.core.pr_str.call(null, this__35888)
};
cljs.core.PersistentHashSet.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var this__35889 = this;
return cljs.core.keys.call(null, this__35889.hash_map)
};
cljs.core.PersistentHashSet.prototype.cljs$core$ISet$_disjoin$arity$2 = function(coll, v) {
var this__35890 = this;
return new cljs.core.PersistentHashSet(this__35890.meta, cljs.core.dissoc.call(null, this__35890.hash_map, v), null)
};
cljs.core.PersistentHashSet.prototype.cljs$core$ICounted$_count$arity$1 = function(coll) {
var this__35891 = 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__35892 = this;
var and__3822__auto____35893 = cljs.core.set_QMARK_.call(null, other);
if(and__3822__auto____35893) {
var and__3822__auto____35894 = cljs.core.count.call(null, coll) === cljs.core.count.call(null, other);
if(and__3822__auto____35894) {
return cljs.core.every_QMARK_.call(null, function(p1__35869_SHARP_) {
return cljs.core.contains_QMARK_.call(null, coll, p1__35869_SHARP_)
}, other)
}else {
return and__3822__auto____35894
}
}else {
return and__3822__auto____35893
}
};
cljs.core.PersistentHashSet.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(coll, meta) {
var this__35895 = this;
return new cljs.core.PersistentHashSet(meta, this__35895.hash_map, this__35895.__hash)
};
cljs.core.PersistentHashSet.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var this__35896 = this;
return this__35896.meta
};
cljs.core.PersistentHashSet.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var this__35897 = this;
return cljs.core.with_meta.call(null, cljs.core.PersistentHashSet.EMPTY, this__35897.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__35899 = cljs.core.count.call(null, items);
var i__35900 = 0;
var out__35901 = cljs.core.transient$.call(null, cljs.core.PersistentHashSet.EMPTY);
while(true) {
if(i__35900 < len__35899) {
var G__35902 = i__35900 + 1;
var G__35903 = cljs.core.conj_BANG_.call(null, out__35901, items[i__35900]);
i__35900 = G__35902;
out__35901 = G__35903;
continue
}else {
return cljs.core.persistent_BANG_.call(null, out__35901)
}
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__2329__auto__) {
return cljs.core.list.call(null, "cljs.core/TransientHashSet")
};
cljs.core.TransientHashSet.prototype.call = function() {
var G__35921 = null;
var G__35921__2 = function(this_sym35907, k) {
var this__35909 = this;
var this_sym35907__35910 = this;
var tcoll__35911 = this_sym35907__35910;
if(cljs.core._lookup.call(null, this__35909.transient_map, k, cljs.core.lookup_sentinel) === cljs.core.lookup_sentinel) {
return null
}else {
return k
}
};
var G__35921__3 = function(this_sym35908, k, not_found) {
var this__35909 = this;
var this_sym35908__35912 = this;
var tcoll__35913 = this_sym35908__35912;
if(cljs.core._lookup.call(null, this__35909.transient_map, k, cljs.core.lookup_sentinel) === cljs.core.lookup_sentinel) {
return not_found
}else {
return k
}
};
G__35921 = function(this_sym35908, k, not_found) {
switch(arguments.length) {
case 2:
return G__35921__2.call(this, this_sym35908, k);
case 3:
return G__35921__3.call(this, this_sym35908, k, not_found)
}
throw"Invalid arity: " + arguments.length;
};
return G__35921
}();
cljs.core.TransientHashSet.prototype.apply = function(this_sym35905, args35906) {
var this__35914 = this;
return this_sym35905.call.apply(this_sym35905, [this_sym35905].concat(args35906.slice()))
};
cljs.core.TransientHashSet.prototype.cljs$core$ILookup$_lookup$arity$2 = function(tcoll, v) {
var this__35915 = 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__35916 = this;
if(cljs.core._lookup.call(null, this__35916.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__35917 = this;
return cljs.core.count.call(null, this__35917.transient_map)
};
cljs.core.TransientHashSet.prototype.cljs$core$ITransientSet$_disjoin_BANG_$arity$2 = function(tcoll, v) {
var this__35918 = this;
this__35918.transient_map = cljs.core.dissoc_BANG_.call(null, this__35918.transient_map, v);
return tcoll
};
cljs.core.TransientHashSet.prototype.cljs$core$ITransientCollection$_conj_BANG_$arity$2 = function(tcoll, o) {
var this__35919 = this;
this__35919.transient_map = cljs.core.assoc_BANG_.call(null, this__35919.transient_map, o, null);
return tcoll
};
cljs.core.TransientHashSet.prototype.cljs$core$ITransientCollection$_persistent_BANG_$arity$1 = function(tcoll) {
var this__35920 = this;
return new cljs.core.PersistentHashSet(null, cljs.core.persistent_BANG_.call(null, this__35920.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__2329__auto__) {
return cljs.core.list.call(null, "cljs.core/PersistentTreeSet")
};
cljs.core.PersistentTreeSet.prototype.cljs$core$IHash$_hash$arity$1 = function(coll) {
var this__35924 = this;
var h__2212__auto____35925 = this__35924.__hash;
if(!(h__2212__auto____35925 == null)) {
return h__2212__auto____35925
}else {
var h__2212__auto____35926 = cljs.core.hash_iset.call(null, coll);
this__35924.__hash = h__2212__auto____35926;
return h__2212__auto____35926
}
};
cljs.core.PersistentTreeSet.prototype.cljs$core$ILookup$_lookup$arity$2 = function(coll, v) {
var this__35927 = 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__35928 = this;
if(cljs.core.truth_(cljs.core._contains_key_QMARK_.call(null, this__35928.tree_map, v))) {
return v
}else {
return not_found
}
};
cljs.core.PersistentTreeSet.prototype.call = function() {
var G__35954 = null;
var G__35954__2 = function(this_sym35929, k) {
var this__35931 = this;
var this_sym35929__35932 = this;
var coll__35933 = this_sym35929__35932;
return coll__35933.cljs$core$ILookup$_lookup$arity$2(coll__35933, k)
};
var G__35954__3 = function(this_sym35930, k, not_found) {
var this__35931 = this;
var this_sym35930__35934 = this;
var coll__35935 = this_sym35930__35934;
return coll__35935.cljs$core$ILookup$_lookup$arity$3(coll__35935, k, not_found)
};
G__35954 = function(this_sym35930, k, not_found) {
switch(arguments.length) {
case 2:
return G__35954__2.call(this, this_sym35930, k);
case 3:
return G__35954__3.call(this, this_sym35930, k, not_found)
}
throw"Invalid arity: " + arguments.length;
};
return G__35954
}();
cljs.core.PersistentTreeSet.prototype.apply = function(this_sym35922, args35923) {
var this__35936 = this;
return this_sym35922.call.apply(this_sym35922, [this_sym35922].concat(args35923.slice()))
};
cljs.core.PersistentTreeSet.prototype.cljs$core$ICollection$_conj$arity$2 = function(coll, o) {
var this__35937 = this;
return new cljs.core.PersistentTreeSet(this__35937.meta, cljs.core.assoc.call(null, this__35937.tree_map, o, null), null)
};
cljs.core.PersistentTreeSet.prototype.cljs$core$IReversible$_rseq$arity$1 = function(coll) {
var this__35938 = this;
return cljs.core.map.call(null, cljs.core.key, cljs.core.rseq.call(null, this__35938.tree_map))
};
cljs.core.PersistentTreeSet.prototype.toString = function() {
var this__35939 = this;
var this__35940 = this;
return cljs.core.pr_str.call(null, this__35940)
};
cljs.core.PersistentTreeSet.prototype.cljs$core$ISorted$_sorted_seq$arity$2 = function(coll, ascending_QMARK_) {
var this__35941 = this;
return cljs.core.map.call(null, cljs.core.key, cljs.core._sorted_seq.call(null, this__35941.tree_map, ascending_QMARK_))
};
cljs.core.PersistentTreeSet.prototype.cljs$core$ISorted$_sorted_seq_from$arity$3 = function(coll, k, ascending_QMARK_) {
var this__35942 = this;
return cljs.core.map.call(null, cljs.core.key, cljs.core._sorted_seq_from.call(null, this__35942.tree_map, k, ascending_QMARK_))
};
cljs.core.PersistentTreeSet.prototype.cljs$core$ISorted$_entry_key$arity$2 = function(coll, entry) {
var this__35943 = this;
return entry
};
cljs.core.PersistentTreeSet.prototype.cljs$core$ISorted$_comparator$arity$1 = function(coll) {
var this__35944 = this;
return cljs.core._comparator.call(null, this__35944.tree_map)
};
cljs.core.PersistentTreeSet.prototype.cljs$core$ISeqable$_seq$arity$1 = function(coll) {
var this__35945 = this;
return cljs.core.keys.call(null, this__35945.tree_map)
};
cljs.core.PersistentTreeSet.prototype.cljs$core$ISet$_disjoin$arity$2 = function(coll, v) {
var this__35946 = this;
return new cljs.core.PersistentTreeSet(this__35946.meta, cljs.core.dissoc.call(null, this__35946.tree_map, v), null)
};
cljs.core.PersistentTreeSet.prototype.cljs$core$ICounted$_count$arity$1 = function(coll) {
var this__35947 = this;
return cljs.core.count.call(null, this__35947.tree_map)
};
cljs.core.PersistentTreeSet.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(coll, other) {
var this__35948 = this;
var and__3822__auto____35949 = cljs.core.set_QMARK_.call(null, other);
if(and__3822__auto____35949) {
var and__3822__auto____35950 = cljs.core.count.call(null, coll) === cljs.core.count.call(null, other);
if(and__3822__auto____35950) {
return cljs.core.every_QMARK_.call(null, function(p1__35904_SHARP_) {
return cljs.core.contains_QMARK_.call(null, coll, p1__35904_SHARP_)
}, other)
}else {
return and__3822__auto____35950
}
}else {
return and__3822__auto____35949
}
};
cljs.core.PersistentTreeSet.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = function(coll, meta) {
var this__35951 = this;
return new cljs.core.PersistentTreeSet(meta, this__35951.tree_map, this__35951.__hash)
};
cljs.core.PersistentTreeSet.prototype.cljs$core$IMeta$_meta$arity$1 = function(coll) {
var this__35952 = this;
return this__35952.meta
};
cljs.core.PersistentTreeSet.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(coll) {
var this__35953 = this;
return cljs.core.with_meta.call(null, cljs.core.PersistentTreeSet.EMPTY, this__35953.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__35959__delegate = function(keys) {
var in__35957 = cljs.core.seq.call(null, keys);
var out__35958 = cljs.core.transient$.call(null, cljs.core.PersistentHashSet.EMPTY);
while(true) {
if(cljs.core.seq.call(null, in__35957)) {
var G__35960 = cljs.core.next.call(null, in__35957);
var G__35961 = cljs.core.conj_BANG_.call(null, out__35958, cljs.core.first.call(null, in__35957));
in__35957 = G__35960;
out__35958 = G__35961;
continue
}else {
return cljs.core.persistent_BANG_.call(null, out__35958)
}
break
}
};
var G__35959 = 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__35959__delegate.call(this, keys)
};
G__35959.cljs$lang$maxFixedArity = 0;
G__35959.cljs$lang$applyTo = function(arglist__35962) {
var keys = cljs.core.seq(arglist__35962);
return G__35959__delegate(keys)
};
G__35959.cljs$lang$arity$variadic = G__35959__delegate;
return G__35959
}();
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__35963) {
var keys = cljs.core.seq(arglist__35963);
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__35965) {
var comparator = cljs.core.first(arglist__35965);
var keys = cljs.core.rest(arglist__35965);
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__35971 = cljs.core.count.call(null, coll);
return cljs.core.reduce.call(null, function(v, i) {
var temp__3971__auto____35972 = cljs.core.find.call(null, smap, cljs.core.nth.call(null, v, i));
if(cljs.core.truth_(temp__3971__auto____35972)) {
var e__35973 = temp__3971__auto____35972;
return cljs.core.assoc.call(null, v, i, cljs.core.second.call(null, e__35973))
}else {
return v
}
}, coll, cljs.core.take.call(null, n__35971, cljs.core.iterate.call(null, cljs.core.inc, 0)))
}else {
return cljs.core.map.call(null, function(p1__35964_SHARP_) {
var temp__3971__auto____35974 = cljs.core.find.call(null, smap, p1__35964_SHARP_);
if(cljs.core.truth_(temp__3971__auto____35974)) {
var e__35975 = temp__3971__auto____35974;
return cljs.core.second.call(null, e__35975)
}else {
return p1__35964_SHARP_
}
}, coll)
}
};
cljs.core.distinct = function distinct(coll) {
var step__36005 = function step(xs, seen) {
return new cljs.core.LazySeq(null, false, function() {
return function(p__35998, seen) {
while(true) {
var vec__35999__36000 = p__35998;
var f__36001 = cljs.core.nth.call(null, vec__35999__36000, 0, null);
var xs__36002 = vec__35999__36000;
var temp__3974__auto____36003 = cljs.core.seq.call(null, xs__36002);
if(temp__3974__auto____36003) {
var s__36004 = temp__3974__auto____36003;
if(cljs.core.contains_QMARK_.call(null, seen, f__36001)) {
var G__36006 = cljs.core.rest.call(null, s__36004);
var G__36007 = seen;
p__35998 = G__36006;
seen = G__36007;
continue
}else {
return cljs.core.cons.call(null, f__36001, step.call(null, cljs.core.rest.call(null, s__36004), cljs.core.conj.call(null, seen, f__36001)))
}
}else {
return null
}
break
}
}.call(null, xs, seen)
}, null)
};
return step__36005.call(null, coll, cljs.core.PersistentHashSet.EMPTY)
};
cljs.core.butlast = function butlast(s) {
var ret__36010 = cljs.core.PersistentVector.EMPTY;
var s__36011 = s;
while(true) {
if(cljs.core.next.call(null, s__36011)) {
var G__36012 = cljs.core.conj.call(null, ret__36010, cljs.core.first.call(null, s__36011));
var G__36013 = cljs.core.next.call(null, s__36011);
ret__36010 = G__36012;
s__36011 = G__36013;
continue
}else {
return cljs.core.seq.call(null, ret__36010)
}
break
}
};
cljs.core.name = function name(x) {
if(cljs.core.string_QMARK_.call(null, x)) {
return x
}else {
if(function() {
var or__3824__auto____36016 = cljs.core.keyword_QMARK_.call(null, x);
if(or__3824__auto____36016) {
return or__3824__auto____36016
}else {
return cljs.core.symbol_QMARK_.call(null, x)
}
}()) {
var i__36017 = x.lastIndexOf("/");
if(i__36017 < 0) {
return cljs.core.subs.call(null, x, 2)
}else {
return cljs.core.subs.call(null, x, i__36017 + 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____36020 = cljs.core.keyword_QMARK_.call(null, x);
if(or__3824__auto____36020) {
return or__3824__auto____36020
}else {
return cljs.core.symbol_QMARK_.call(null, x)
}
}()) {
var i__36021 = x.lastIndexOf("/");
if(i__36021 > -1) {
return cljs.core.subs.call(null, x, 2, i__36021)
}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__36028 = cljs.core.ObjMap.EMPTY;
var ks__36029 = cljs.core.seq.call(null, keys);
var vs__36030 = cljs.core.seq.call(null, vals);
while(true) {
if(function() {
var and__3822__auto____36031 = ks__36029;
if(and__3822__auto____36031) {
return vs__36030
}else {
return and__3822__auto____36031
}
}()) {
var G__36032 = cljs.core.assoc.call(null, map__36028, cljs.core.first.call(null, ks__36029), cljs.core.first.call(null, vs__36030));
var G__36033 = cljs.core.next.call(null, ks__36029);
var G__36034 = cljs.core.next.call(null, vs__36030);
map__36028 = G__36032;
ks__36029 = G__36033;
vs__36030 = G__36034;
continue
}else {
return map__36028
}
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__36037__delegate = function(k, x, y, more) {
return cljs.core.reduce.call(null, function(p1__36022_SHARP_, p2__36023_SHARP_) {
return max_key.call(null, k, p1__36022_SHARP_, p2__36023_SHARP_)
}, max_key.call(null, k, x, y), more)
};
var G__36037 = 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__36037__delegate.call(this, k, x, y, more)
};
G__36037.cljs$lang$maxFixedArity = 3;
G__36037.cljs$lang$applyTo = function(arglist__36038) {
var k = cljs.core.first(arglist__36038);
var x = cljs.core.first(cljs.core.next(arglist__36038));
var y = cljs.core.first(cljs.core.next(cljs.core.next(arglist__36038)));
var more = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__36038)));
return G__36037__delegate(k, x, y, more)
};
G__36037.cljs$lang$arity$variadic = G__36037__delegate;
return G__36037
}();
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__36039__delegate = function(k, x, y, more) {
return cljs.core.reduce.call(null, function(p1__36035_SHARP_, p2__36036_SHARP_) {
return min_key.call(null, k, p1__36035_SHARP_, p2__36036_SHARP_)
}, min_key.call(null, k, x, y), more)
};
var G__36039 = 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__36039__delegate.call(this, k, x, y, more)
};
G__36039.cljs$lang$maxFixedArity = 3;
G__36039.cljs$lang$applyTo = function(arglist__36040) {
var k = cljs.core.first(arglist__36040);
var x = cljs.core.first(cljs.core.next(arglist__36040));
var y = cljs.core.first(cljs.core.next(cljs.core.next(arglist__36040)));
var more = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__36040)));
return G__36039__delegate(k, x, y, more)
};
G__36039.cljs$lang$arity$variadic = G__36039__delegate;
return G__36039
}();
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____36043 = cljs.core.seq.call(null, coll);
if(temp__3974__auto____36043) {
var s__36044 = temp__3974__auto____36043;
return cljs.core.cons.call(null, cljs.core.take.call(null, n, s__36044), partition_all.call(null, n, step, cljs.core.drop.call(null, step, s__36044)))
}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____36047 = cljs.core.seq.call(null, coll);
if(temp__3974__auto____36047) {
var s__36048 = temp__3974__auto____36047;
if(cljs.core.truth_(pred.call(null, cljs.core.first.call(null, s__36048)))) {
return cljs.core.cons.call(null, cljs.core.first.call(null, s__36048), take_while.call(null, pred, cljs.core.rest.call(null, s__36048)))
}else {
return null
}
}else {
return null
}
}, null)
};
cljs.core.mk_bound_fn = function mk_bound_fn(sc, test, key) {
return function(e) {
var comp__36050 = cljs.core._comparator.call(null, sc);
return test.call(null, comp__36050.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__36062 = 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____36063 = cljs.core._sorted_seq_from.call(null, sc, key, true);
if(cljs.core.truth_(temp__3974__auto____36063)) {
var vec__36064__36065 = temp__3974__auto____36063;
var e__36066 = cljs.core.nth.call(null, vec__36064__36065, 0, null);
var s__36067 = vec__36064__36065;
if(cljs.core.truth_(include__36062.call(null, e__36066))) {
return s__36067
}else {
return cljs.core.next.call(null, s__36067)
}
}else {
return null
}
}else {
return cljs.core.take_while.call(null, include__36062, 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____36068 = cljs.core._sorted_seq_from.call(null, sc, start_key, true);
if(cljs.core.truth_(temp__3974__auto____36068)) {
var vec__36069__36070 = temp__3974__auto____36068;
var e__36071 = cljs.core.nth.call(null, vec__36069__36070, 0, null);
var s__36072 = vec__36069__36070;
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__36071)) ? s__36072 : cljs.core.next.call(null, s__36072))
}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__36084 = 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____36085 = cljs.core._sorted_seq_from.call(null, sc, key, false);
if(cljs.core.truth_(temp__3974__auto____36085)) {
var vec__36086__36087 = temp__3974__auto____36085;
var e__36088 = cljs.core.nth.call(null, vec__36086__36087, 0, null);
var s__36089 = vec__36086__36087;
if(cljs.core.truth_(include__36084.call(null, e__36088))) {
return s__36089
}else {
return cljs.core.next.call(null, s__36089)
}
}else {
return null
}
}else {
return cljs.core.take_while.call(null, include__36084, 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____36090 = cljs.core._sorted_seq_from.call(null, sc, end_key, false);
if(cljs.core.truth_(temp__3974__auto____36090)) {
var vec__36091__36092 = temp__3974__auto____36090;
var e__36093 = cljs.core.nth.call(null, vec__36091__36092, 0, null);
var s__36094 = vec__36091__36092;
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__36093)) ? s__36094 : cljs.core.next.call(null, s__36094))
}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__2329__auto__) {
return cljs.core.list.call(null, "cljs.core/Range")
};
cljs.core.Range.prototype.cljs$core$IHash$_hash$arity$1 = function(rng) {
var this__36095 = this;
var h__2212__auto____36096 = this__36095.__hash;
if(!(h__2212__auto____36096 == null)) {
return h__2212__auto____36096
}else {
var h__2212__auto____36097 = cljs.core.hash_coll.call(null, rng);
this__36095.__hash = h__2212__auto____36097;
return h__2212__auto____36097
}
};
cljs.core.Range.prototype.cljs$core$INext$_next$arity$1 = function(rng) {
var this__36098 = this;
if(this__36098.step > 0) {
if(this__36098.start + this__36098.step < this__36098.end) {
return new cljs.core.Range(this__36098.meta, this__36098.start + this__36098.step, this__36098.end, this__36098.step, null)
}else {
return null
}
}else {
if(this__36098.start + this__36098.step > this__36098.end) {
return new cljs.core.Range(this__36098.meta, this__36098.start + this__36098.step, this__36098.end, this__36098.step, null)
}else {
return null
}
}
};
cljs.core.Range.prototype.cljs$core$ICollection$_conj$arity$2 = function(rng, o) {
var this__36099 = this;
return cljs.core.cons.call(null, o, rng)
};
cljs.core.Range.prototype.toString = function() {
var this__36100 = this;
var this__36101 = this;
return cljs.core.pr_str.call(null, this__36101)
};
cljs.core.Range.prototype.cljs$core$IReduce$_reduce$arity$2 = function(rng, f) {
var this__36102 = 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__36103 = 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__36104 = this;
if(this__36104.step > 0) {
if(this__36104.start < this__36104.end) {
return rng
}else {
return null
}
}else {
if(this__36104.start > this__36104.end) {
return rng
}else {
return null
}
}
};
cljs.core.Range.prototype.cljs$core$ICounted$_count$arity$1 = function(rng) {
var this__36105 = this;
if(cljs.core.not.call(null, rng.cljs$core$ISeqable$_seq$arity$1(rng))) {
return 0
}else {
return Math.ceil((this__36105.end - this__36105.start) / this__36105.step)
}
};
cljs.core.Range.prototype.cljs$core$ISeq$_first$arity$1 = function(rng) {
var this__36106 = this;
return this__36106.start
};
cljs.core.Range.prototype.cljs$core$ISeq$_rest$arity$1 = function(rng) {
var this__36107 = this;
if(!(rng.cljs$core$ISeqable$_seq$arity$1(rng) == null)) {
return new cljs.core.Range(this__36107.meta, this__36107.start + this__36107.step, this__36107.end, this__36107.step, null)
}else {
return cljs.core.List.EMPTY
}
};
cljs.core.Range.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(rng, other) {
var this__36108 = 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__36109 = this;
return new cljs.core.Range(meta, this__36109.start, this__36109.end, this__36109.step, this__36109.__hash)
};
cljs.core.Range.prototype.cljs$core$IMeta$_meta$arity$1 = function(rng) {
var this__36110 = this;
return this__36110.meta
};
cljs.core.Range.prototype.cljs$core$IIndexed$_nth$arity$2 = function(rng, n) {
var this__36111 = this;
if(n < rng.cljs$core$ICounted$_count$arity$1(rng)) {
return this__36111.start + n * this__36111.step
}else {
if(function() {
var and__3822__auto____36112 = this__36111.start > this__36111.end;
if(and__3822__auto____36112) {
return this__36111.step === 0
}else {
return and__3822__auto____36112
}
}()) {
return this__36111.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__36113 = this;
if(n < rng.cljs$core$ICounted$_count$arity$1(rng)) {
return this__36113.start + n * this__36113.step
}else {
if(function() {
var and__3822__auto____36114 = this__36113.start > this__36113.end;
if(and__3822__auto____36114) {
return this__36113.step === 0
}else {
return and__3822__auto____36114
}
}()) {
return this__36113.start
}else {
return not_found
}
}
};
cljs.core.Range.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = function(rng) {
var this__36115 = this;
return cljs.core.with_meta.call(null, cljs.core.List.EMPTY, this__36115.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____36118 = cljs.core.seq.call(null, coll);
if(temp__3974__auto____36118) {
var s__36119 = temp__3974__auto____36118;
return cljs.core.cons.call(null, cljs.core.first.call(null, s__36119), take_nth.call(null, n, cljs.core.drop.call(null, n, s__36119)))
}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____36126 = cljs.core.seq.call(null, coll);
if(temp__3974__auto____36126) {
var s__36127 = temp__3974__auto____36126;
var fst__36128 = cljs.core.first.call(null, s__36127);
var fv__36129 = f.call(null, fst__36128);
var run__36130 = cljs.core.cons.call(null, fst__36128, cljs.core.take_while.call(null, function(p1__36120_SHARP_) {
return cljs.core._EQ_.call(null, fv__36129, f.call(null, p1__36120_SHARP_))
}, cljs.core.next.call(null, s__36127)));
return cljs.core.cons.call(null, run__36130, partition_by.call(null, f, cljs.core.seq.call(null, cljs.core.drop.call(null, cljs.core.count.call(null, run__36130), s__36127))))
}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____36145 = cljs.core.seq.call(null, coll);
if(temp__3971__auto____36145) {
var s__36146 = temp__3971__auto____36145;
return reductions.call(null, f, cljs.core.first.call(null, s__36146), cljs.core.rest.call(null, s__36146))
}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____36147 = cljs.core.seq.call(null, coll);
if(temp__3974__auto____36147) {
var s__36148 = temp__3974__auto____36147;
return reductions.call(null, f, f.call(null, init, cljs.core.first.call(null, s__36148)), cljs.core.rest.call(null, s__36148))
}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__36151 = null;
var G__36151__0 = function() {
return cljs.core.vector.call(null, f.call(null))
};
var G__36151__1 = function(x) {
return cljs.core.vector.call(null, f.call(null, x))
};
var G__36151__2 = function(x, y) {
return cljs.core.vector.call(null, f.call(null, x, y))
};
var G__36151__3 = function(x, y, z) {
return cljs.core.vector.call(null, f.call(null, x, y, z))
};
var G__36151__4 = function() {
var G__36152__delegate = function(x, y, z, args) {
return cljs.core.vector.call(null, cljs.core.apply.call(null, f, x, y, z, args))
};
var G__36152 = 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__36152__delegate.call(this, x, y, z, args)
};
G__36152.cljs$lang$maxFixedArity = 3;
G__36152.cljs$lang$applyTo = function(arglist__36153) {
var x = cljs.core.first(arglist__36153);
var y = cljs.core.first(cljs.core.next(arglist__36153));
var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__36153)));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__36153)));
return G__36152__delegate(x, y, z, args)
};
G__36152.cljs$lang$arity$variadic = G__36152__delegate;
return G__36152
}();
G__36151 = function(x, y, z, var_args) {
var args = var_args;
switch(arguments.length) {
case 0:
return G__36151__0.call(this);
case 1:
return G__36151__1.call(this, x);
case 2:
return G__36151__2.call(this, x, y);
case 3:
return G__36151__3.call(this, x, y, z);
default:
return G__36151__4.cljs$lang$arity$variadic(x, y, z, cljs.core.array_seq(arguments, 3))
}
throw"Invalid arity: " + arguments.length;
};
G__36151.cljs$lang$maxFixedArity = 3;
G__36151.cljs$lang$applyTo = G__36151__4.cljs$lang$applyTo;
return G__36151
}()
};
var juxt__2 = function(f, g) {
return function() {
var G__36154 = null;
var G__36154__0 = function() {
return cljs.core.vector.call(null, f.call(null), g.call(null))
};
var G__36154__1 = function(x) {
return cljs.core.vector.call(null, f.call(null, x), g.call(null, x))
};
var G__36154__2 = function(x, y) {
return cljs.core.vector.call(null, f.call(null, x, y), g.call(null, x, y))
};
var G__36154__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__36154__4 = function() {
var G__36155__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__36155 = 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__36155__delegate.call(this, x, y, z, args)
};
G__36155.cljs$lang$maxFixedArity = 3;
G__36155.cljs$lang$applyTo = function(arglist__36156) {
var x = cljs.core.first(arglist__36156);
var y = cljs.core.first(cljs.core.next(arglist__36156));
var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__36156)));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__36156)));
return G__36155__delegate(x, y, z, args)
};
G__36155.cljs$lang$arity$variadic = G__36155__delegate;
return G__36155
}();
G__36154 = function(x, y, z, var_args) {
var args = var_args;
switch(arguments.length) {
case 0:
return G__36154__0.call(this);
case 1:
return G__36154__1.call(this, x);
case 2:
return G__36154__2.call(this, x, y);
case 3:
return G__36154__3.call(this, x, y, z);
default:
return G__36154__4.cljs$lang$arity$variadic(x, y, z, cljs.core.array_seq(arguments, 3))
}
throw"Invalid arity: " + arguments.length;
};
G__36154.cljs$lang$maxFixedArity = 3;
G__36154.cljs$lang$applyTo = G__36154__4.cljs$lang$applyTo;
return G__36154
}()
};
var juxt__3 = function(f, g, h) {
return function() {
var G__36157 = null;
var G__36157__0 = function() {
return cljs.core.vector.call(null, f.call(null), g.call(null), h.call(null))
};
var G__36157__1 = function(x) {
return cljs.core.vector.call(null, f.call(null, x), g.call(null, x), h.call(null, x))
};
var G__36157__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__36157__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__36157__4 = function() {
var G__36158__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__36158 = 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__36158__delegate.call(this, x, y, z, args)
};
G__36158.cljs$lang$maxFixedArity = 3;
G__36158.cljs$lang$applyTo = function(arglist__36159) {
var x = cljs.core.first(arglist__36159);
var y = cljs.core.first(cljs.core.next(arglist__36159));
var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__36159)));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__36159)));
return G__36158__delegate(x, y, z, args)
};
G__36158.cljs$lang$arity$variadic = G__36158__delegate;
return G__36158
}();
G__36157 = function(x, y, z, var_args) {
var args = var_args;
switch(arguments.length) {
case 0:
return G__36157__0.call(this);
case 1:
return G__36157__1.call(this, x);
case 2:
return G__36157__2.call(this, x, y);
case 3:
return G__36157__3.call(this, x, y, z);
default:
return G__36157__4.cljs$lang$arity$variadic(x, y, z, cljs.core.array_seq(arguments, 3))
}
throw"Invalid arity: " + arguments.length;
};
G__36157.cljs$lang$maxFixedArity = 3;
G__36157.cljs$lang$applyTo = G__36157__4.cljs$lang$applyTo;
return G__36157
}()
};
var juxt__4 = function() {
var G__36160__delegate = function(f, g, h, fs) {
var fs__36150 = cljs.core.list_STAR_.call(null, f, g, h, fs);
return function() {
var G__36161 = null;
var G__36161__0 = function() {
return cljs.core.reduce.call(null, function(p1__36131_SHARP_, p2__36132_SHARP_) {
return cljs.core.conj.call(null, p1__36131_SHARP_, p2__36132_SHARP_.call(null))
}, cljs.core.PersistentVector.EMPTY, fs__36150)
};
var G__36161__1 = function(x) {
return cljs.core.reduce.call(null, function(p1__36133_SHARP_, p2__36134_SHARP_) {
return cljs.core.conj.call(null, p1__36133_SHARP_, p2__36134_SHARP_.call(null, x))
}, cljs.core.PersistentVector.EMPTY, fs__36150)
};
var G__36161__2 = function(x, y) {
return cljs.core.reduce.call(null, function(p1__36135_SHARP_, p2__36136_SHARP_) {
return cljs.core.conj.call(null, p1__36135_SHARP_, p2__36136_SHARP_.call(null, x, y))
}, cljs.core.PersistentVector.EMPTY, fs__36150)
};
var G__36161__3 = function(x, y, z) {
return cljs.core.reduce.call(null, function(p1__36137_SHARP_, p2__36138_SHARP_) {
return cljs.core.conj.call(null, p1__36137_SHARP_, p2__36138_SHARP_.call(null, x, y, z))
}, cljs.core.PersistentVector.EMPTY, fs__36150)
};
var G__36161__4 = function() {
var G__36162__delegate = function(x, y, z, args) {
return cljs.core.reduce.call(null, function(p1__36139_SHARP_, p2__36140_SHARP_) {
return cljs.core.conj.call(null, p1__36139_SHARP_, cljs.core.apply.call(null, p2__36140_SHARP_, x, y, z, args))
}, cljs.core.PersistentVector.EMPTY, fs__36150)
};
var G__36162 = 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__36162__delegate.call(this, x, y, z, args)
};
G__36162.cljs$lang$maxFixedArity = 3;
G__36162.cljs$lang$applyTo = function(arglist__36163) {
var x = cljs.core.first(arglist__36163);
var y = cljs.core.first(cljs.core.next(arglist__36163));
var z = cljs.core.first(cljs.core.next(cljs.core.next(arglist__36163)));
var args = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__36163)));
return G__36162__delegate(x, y, z, args)
};
G__36162.cljs$lang$arity$variadic = G__36162__delegate;
return G__36162
}();
G__36161 = function(x, y, z, var_args) {
var args = var_args;
switch(arguments.length) {
case 0:
return G__36161__0.call(this);
case 1:
return G__36161__1.call(this, x);
case 2:
return G__36161__2.call(this, x, y);
case 3:
return G__36161__3.call(this, x, y, z);
default:
return G__36161__4.cljs$lang$arity$variadic(x, y, z, cljs.core.array_seq(arguments, 3))
}
throw"Invalid arity: " + arguments.length;
};
G__36161.cljs$lang$maxFixedArity = 3;
G__36161.cljs$lang$applyTo = G__36161__4.cljs$lang$applyTo;
return G__36161
}()
};
var G__36160 = 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__36160__delegate.call(this, f, g, h, fs)
};
G__36160.cljs$lang$maxFixedArity = 3;
G__36160.cljs$lang$applyTo = function(arglist__36164) {
var f = cljs.core.first(arglist__36164);
var g = cljs.core.first(cljs.core.next(arglist__36164));
var h = cljs.core.first(cljs.core.next(cljs.core.next(arglist__36164)));
var fs = cljs.core.rest(cljs.core.next(cljs.core.next(arglist__36164)));
return G__36160__delegate(f, g, h, fs)
};
G__36160.cljs$lang$arity$variadic = G__36160__delegate;
return G__36160
}();
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__36167 = cljs.core.next.call(null, coll);
coll = G__36167;
continue
}else {
return null
}
break
}
};
var dorun__2 = function(n, coll) {
while(true) {
if(cljs.core.truth_(function() {
var and__3822__auto____36166 = cljs.core.seq.call(null, coll);
if(and__3822__auto____36166) {
return n > 0
}else {
return and__3822__auto____36166
}
}())) {
var G__36168 = n - 1;
var G__36169 = cljs.core.next.call(null, coll);
n = G__36168;
coll = G__36169;
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__36171 = re.exec(s);
if(cljs.core._EQ_.call(null, cljs.core.first.call(null, matches__36171), s)) {
if(cljs.core.count.call(null, matches__36171) === 1) {
return cljs.core.first.call(null, matches__36171)
}else {
return cljs.core.vec.call(null, matches__36171)
}
}else {
return null
}
};
cljs.core.re_find = function re_find(re, s) {
var matches__36173 = re.exec(s);
if(matches__36173 == null) {
return null
}else {
if(cljs.core.count.call(null, matches__36173) === 1) {
return cljs.core.first.call(null, matches__36173)
}else {
return cljs.core.vec.call(null, matches__36173)
}
}
};
cljs.core.re_seq = function re_seq(re, s) {
var match_data__36178 = cljs.core.re_find.call(null, re, s);
var match_idx__36179 = s.search(re);
var match_str__36180 = cljs.core.coll_QMARK_.call(null, match_data__36178) ? cljs.core.first.call(null, match_data__36178) : match_data__36178;
var post_match__36181 = cljs.core.subs.call(null, s, match_idx__36179 + cljs.core.count.call(null, match_str__36180));
if(cljs.core.truth_(match_data__36178)) {
return new cljs.core.LazySeq(null, false, function() {
return cljs.core.cons.call(null, match_data__36178, re_seq.call(null, re, post_match__36181))
}, null)
}else {
return null
}
};
cljs.core.re_pattern = function re_pattern(s) {
var vec__36188__36189 = cljs.core.re_find.call(null, /^(?:\(\?([idmsux]*)\))?(.*)/, s);
var ___36190 = cljs.core.nth.call(null, vec__36188__36189, 0, null);
var flags__36191 = cljs.core.nth.call(null, vec__36188__36189, 1, null);
var pattern__36192 = cljs.core.nth.call(null, vec__36188__36189, 2, null);
return new RegExp(pattern__36192, flags__36191)
};
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__36182_SHARP_) {
return print_one.call(null, p1__36182_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____36202 = cljs.core._lookup.call(null, opts, "\ufdd0'meta", null);
if(cljs.core.truth_(and__3822__auto____36202)) {
var and__3822__auto____36206 = function() {
var G__36203__36204 = obj;
if(G__36203__36204) {
if(function() {
var or__3824__auto____36205 = G__36203__36204.cljs$lang$protocol_mask$partition0$ & 131072;
if(or__3824__auto____36205) {
return or__3824__auto____36205
}else {
return G__36203__36204.cljs$core$IMeta$
}
}()) {
return true
}else {
if(!G__36203__36204.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IMeta, G__36203__36204)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IMeta, G__36203__36204)
}
}();
if(cljs.core.truth_(and__3822__auto____36206)) {
return cljs.core.meta.call(null, obj)
}else {
return and__3822__auto____36206
}
}else {
return and__3822__auto____36202
}
}()) ? 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____36207 = !(obj == null);
if(and__3822__auto____36207) {
return obj.cljs$lang$type
}else {
return and__3822__auto____36207
}
}() ? obj.cljs$lang$ctorPrSeq(obj) : function() {
var G__36208__36209 = obj;
if(G__36208__36209) {
if(function() {
var or__3824__auto____36210 = G__36208__36209.cljs$lang$protocol_mask$partition0$ & 536870912;
if(or__3824__auto____36210) {
return or__3824__auto____36210
}else {
return G__36208__36209.cljs$core$IPrintable$
}
}()) {
return true
}else {
if(!G__36208__36209.cljs$lang$protocol_mask$partition0$) {
return cljs.core.type_satisfies_.call(null, cljs.core.IPrintable, G__36208__36209)
}else {
return false
}
}
}else {
return cljs.core.type_satisfies_.call(null, cljs.core.IPrintable, G__36208__36209)
}
}() ? 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__36230 = new goog.string.StringBuffer;
var G__36231__36232 = cljs.core.seq.call(null, cljs.core.pr_seq.call(null, cljs.core.first.call(null, objs), opts));
if(G__36231__36232) {
var string__36233 = cljs.core.first.call(null, G__36231__36232);
var G__36231__36234 = G__36231__36232;
while(true) {
sb__36230.append(string__36233);
var temp__3974__auto____36235 = cljs.core.next.call(null, G__36231__36234);
if(temp__3974__auto____36235) {
var G__36231__36236 = temp__3974__auto____36235;
var G__36249 = cljs.core.first.call(null, G__36231__36236);
var G__36250 = G__36231__36236;
string__36233 = G__36249;
G__36231__36234 = G__36250;
continue
}else {
}
break
}
}else {
}
var G__36237__36238 = cljs.core.seq.call(null, cljs.core.next.call(null, objs));
if(G__36237__36238) {
var obj__36239 = cljs.core.first.call(null, G__36237__36238);
var G__36237__36240 = G__36237__36238;
while(true) {
sb__36230.append(" ");
var G__36241__36242 = cljs.core.seq.call(null, cljs.core.pr_seq.call(null, obj__36239, opts));
if(G__36241__36242) {
var string__36243 = cljs.core.first.call(null, G__36241__36242);
var G__36241__36244 = G__36241__36242;
while(true) {
sb__36230.append(string__36243);
var temp__3974__auto____36245 = cljs.core.next.call(null, G__36241__36244);
if(temp__3974__auto____36245) {
var G__36241__36246 = temp__3974__auto____36245;
var G__36251 = cljs.core.first.call(null, G__36241__36246);
var G__36252 = G__36241__36246;
string__36243 = G__36251;
G__36241__36244 = G__36252;
continue
}else {
}
break
}
}else {
}
var temp__3974__auto____36247 = cljs.core.next.call(null, G__36237__36240);
if(temp__3974__auto____36247) {
var G__36237__36248 = temp__3974__auto____36247;
var G__36253 = cljs.core.first.call(null, G__36237__36248);
var G__36254 = G__36237__36248;
obj__36239 = G__36253;
G__36237__36240 = G__36254;
continue
}else {
}
break
}
}else {
}
return sb__36230
};
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__36256 = cljs.core.pr_sb.call(null, objs, opts);
sb__36256.append("\n");
return[cljs.core.str(sb__36256)].join("")
};
cljs.core.pr_with_opts = function pr_with_opts(objs, opts) {
var G__36275__36276 = cljs.core.seq.call(null, cljs.core.pr_seq.call(null, cljs.core.first.call(null, objs), opts));
if(G__36275__36276) {
var string__36277 = cljs.core.first.call(null, G__36275__36276);
var G__36275__36278 = G__36275__36276;
while(true) {
cljs.core.string_print.call(null, string__36277);
var temp__3974__auto____36279 = cljs.core.next.call(null, G__36275__36278);
if(temp__3974__auto____36279) {
var G__36275__36280 = temp__3974__auto____36279;
var G__36293 = cljs.core.first.call(null, G__36275__36280);
var G__36294 = G__36275__36280;
string__36277 = G__36293;
G__36275__36278 = G__36294;
continue
}else {
}
break
}
}else {
}
var G__36281__36282 = cljs.core.seq.call(null, cljs.core.next.call(null, objs));
if(G__36281__36282) {
var obj__36283 = cljs.core.first.call(null, G__36281__36282);
var G__36281__36284 = G__36281__36282;
while(true) {
cljs.core.string_print.call(null, " ");
var G__36285__36286 = cljs.core.seq.call(null, cljs.core.pr_seq.call(null, obj__36283, opts));
if(G__36285__36286) {
var string__36287 = cljs.core.first.call(null, G__36285__36286);
var G__36285__36288 = G__36285__36286;
while(true) {
cljs.core.string_print.call(null, string__36287);
var temp__3974__auto____36289 = cljs.core.next.call(null, G__36285__36288);
if(temp__3974__auto____36289) {
var G__36285__36290 = temp__3974__auto____36289;
var G__36295 = cljs.core.first.call(null, G__36285__36290);
var G__36296 = G__36285__36290;
string__36287 = G__36295;
G__36285__36288 = G__36296;
continue
}else {
}
break
}
}else {
}
var temp__3974__auto____36291 = cljs.core.next.call(null, G__36281__36284);
if(temp__3974__auto____36291) {
var G__36281__36292 = temp__3974__auto____36291;
var G__36297 = cljs.core.first.call(null, G__36281__36292);
var G__36298 = G__36281__36292;
obj__36283 = G__36297;
G__36281__36284 = G__36298;
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__36299) {
var objs = cljs.core.seq(arglist__36299);
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__36300) {
var objs = cljs.core.seq(arglist__36300);
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__36301) {
var objs = cljs.core.seq(arglist__36301);
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__36302) {
var objs = cljs.core.seq(arglist__36302);
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__36303) {
var objs = cljs.core.seq(arglist__36303);
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__36304) {
var objs = cljs.core.seq(arglist__36304);
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__36305) {
var objs = cljs.core.seq(arglist__36305);
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__36306) {
var objs = cljs.core.seq(arglist__36306);
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__36307) {
var fmt = cljs.core.first(arglist__36307);
var args = cljs.core.rest(arglist__36307);
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__36308 = function(keyval) {
return cljs.core.pr_sequential.call(null, cljs.core.pr_seq, "", " ", "", opts, keyval)
};
return cljs.core.pr_sequential.call(null, pr_pair__36308, "{", ", ", "}", 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__36309 = function(keyval) {
return cljs.core.pr_sequential.call(null, cljs.core.pr_seq, "", " ", "", opts, keyval)
};
return cljs.core.pr_sequential.call(null, pr_pair__36309, "{", ", ", "}", 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__36310 = function(keyval) {
return cljs.core.pr_sequential.call(null, cljs.core.pr_seq, "", " ", "", opts, keyval)
};
return cljs.core.pr_sequential.call(null, pr_pair__36310, "{", ", ", "}", 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____36311 = cljs.core.namespace.call(null, obj);
if(cljs.core.truth_(temp__3974__auto____36311)) {
var nspc__36312 = temp__3974__auto____36311;
return[cljs.core.str(nspc__36312), 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____36313 = cljs.core.namespace.call(null, obj);
if(cljs.core.truth_(temp__3974__auto____36313)) {
var nspc__36314 = temp__3974__auto____36313;
return[cljs.core.str(nspc__36314), 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__36315 = function(keyval) {
return cljs.core.pr_sequential.call(null, cljs.core.pr_seq, "", " ", "", opts, keyval)
};
return cljs.core.pr_sequential.call(null, pr_pair__36315, "{", ", ", "}", 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__36317 = function(n, len) {
var ns__36316 = [cljs.core.str(n)].join("");
while(true) {
if(cljs.core.count.call(null, ns__36316) < len) {
var G__36319 = [cljs.core.str("0"), cljs.core.str(ns__36316)].join("");
ns__36316 = G__36319;
continue
}else {
return ns__36316
}
break
}
};
return cljs.core.list.call(null, [cljs.core.str('#inst "'), cljs.core.str(d.getUTCFullYear()), cljs.core.str("-"), cljs.core.str(normalize__36317.call(null, d.getUTCMonth() + 1, 2)), cljs.core.str("-"), cljs.core.str(normalize__36317.call(null, d.getUTCDate(), 2)), cljs.core.str("T"), cljs.core.str(normalize__36317.call(null, d.getUTCHours(), 2)), cljs.core.str(":"), cljs.core.str(normalize__36317.call(null, d.getUTCMinutes(), 2)), cljs.core.str(":"), cljs.core.str(normalize__36317.call(null, d.getUTCSeconds(),
2)), cljs.core.str("."), cljs.core.str(normalize__36317.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__36318 = function(keyval) {
return cljs.core.pr_sequential.call(null, cljs.core.pr_seq, "", " ", "", opts, keyval)
};
return cljs.core.pr_sequential.call(null, pr_pair__36318, "{", ", ", "}", 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__2329__auto__) {
return cljs.core.list.call(null, "cljs.core/Atom")
};
cljs.core.Atom.prototype.cljs$core$IHash$_hash$arity$1 = function(this$) {
var this__36320 = this;
return goog.getUid(this$)
};
cljs.core.Atom.prototype.cljs$core$IWatchable$_notify_watches$arity$3 = function(this$, oldval, newval) {
var this__36321 = this;
var G__36322__36323 = cljs.core.seq.call(null, this__36321.watches);
if(G__36322__36323) {
var G__36325__36327 = cljs.core.first.call(null, G__36322__36323);
var vec__36326__36328 = G__36325__36327;
var key__36329 = cljs.core.nth.call(null, vec__36326__36328, 0, null);
var f__36330 = cljs.core.nth.call(null, vec__36326__36328, 1, null);
var G__36322__36331 = G__36322__36323;
var G__36325__36332 = G__36325__36327;
var G__36322__36333 = G__36322__36331;
while(true) {
var vec__36334__36335 = G__36325__36332;
var key__36336 = cljs.core.nth.call(null, vec__36334__36335, 0, null);
var f__36337 = cljs.core.nth.call(null, vec__36334__36335, 1, null);
var G__36322__36338 = G__36322__36333;
f__36337.call(null, key__36336, this$, oldval, newval);
var temp__3974__auto____36339 = cljs.core.next.call(null, G__36322__36338);
if(temp__3974__auto____36339) {
var G__36322__36340 = temp__3974__auto____36339;
var G__36347 = cljs.core.first.call(null, G__36322__36340);
var G__36348 = G__36322__36340;
G__36325__36332 = G__36347;
G__36322__36333 = G__36348;
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__36341 = this;
return this$.watches = cljs.core.assoc.call(null, this__36341.watches, key, f)
};
cljs.core.Atom.prototype.cljs$core$IWatchable$_remove_watch$arity$2 = function(this$, key) {
var this__36342 = this;
return this$.watches = cljs.core.dissoc.call(null, this__36342.watches, key)
};
cljs.core.Atom.prototype.cljs$core$IPrintable$_pr_seq$arity$2 = function(a, opts) {
var this__36343 = this;
return cljs.core.concat.call(null, cljs.core.PersistentVector.fromArray(["#<Atom: "], true), cljs.core._pr_seq.call(null, this__36343.state, opts), ">")
};
cljs.core.Atom.prototype.cljs$core$IMeta$_meta$arity$1 = function(_) {
var this__36344 = this;
return this__36344.meta
};
cljs.core.Atom.prototype.cljs$core$IDeref$_deref$arity$1 = function(_) {
var this__36345 = this;
return this__36345.state
};
cljs.core.Atom.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(o, other) {
var this__36346 = 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__36360__delegate = function(x, p__36349) {
var map__36355__36356 = p__36349;
var map__36355__36357 = cljs.core.seq_QMARK_.call(null, map__36355__36356) ? cljs.core.apply.call(null, cljs.core.hash_map, map__36355__36356) : map__36355__36356;
var validator__36358 = cljs.core._lookup.call(null, map__36355__36357, "\ufdd0'validator", null);
var meta__36359 = cljs.core._lookup.call(null, map__36355__36357, "\ufdd0'meta", null);
return new cljs.core.Atom(x, meta__36359, validator__36358, null)
};
var G__36360 = function(x, var_args) {
var p__36349 = null;
if(goog.isDef(var_args)) {
p__36349 = cljs.core.array_seq(Array.prototype.slice.call(arguments, 1), 0)
}
return G__36360__delegate.call(this, x, p__36349)
};
G__36360.cljs$lang$maxFixedArity = 1;
G__36360.cljs$lang$applyTo = function(arglist__36361) {
var x = cljs.core.first(arglist__36361);
var p__36349 = cljs.core.rest(arglist__36361);
return G__36360__delegate(x, p__36349)
};
G__36360.cljs$lang$arity$variadic = G__36360__delegate;
return G__36360
}();
atom = function(x, var_args) {
var p__36349 = 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____36365 = a.validator;
if(cljs.core.truth_(temp__3974__auto____36365)) {
var validate__36366 = temp__3974__auto____36365;
if(cljs.core.truth_(validate__36366.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__36367 = a.state;
a.state = new_value;
cljs.core._notify_watches.call(null, a, old_value__36367, 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__36368__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__36368 = 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__36368__delegate.call(this, a, f, x, y, z, more)
};
G__36368.cljs$lang$maxFixedArity = 5;
G__36368.cljs$lang$applyTo = function(arglist__36369) {
var a = cljs.core.first(arglist__36369);
var f = cljs.core.first(cljs.core.next(arglist__36369));
var x = cljs.core.first(cljs.core.next(cljs.core.next(arglist__36369)));
var y = cljs.core.first(cljs.core.next(cljs.core.next(cljs.core.next(arglist__36369))));
var z = cljs.core.first(cljs.core.next(cljs.core.next(cljs.core.next(cljs.core.next(arglist__36369)))));
var more = cljs.core.rest(cljs.core.next(cljs.core.next(cljs.core.next(cljs.core.next(arglist__36369)))));
return G__36368__delegate(a, f, x, y, z, more)
};
G__36368.cljs$lang$arity$variadic = G__36368__delegate;
return G__36368
}();
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__36370) {
var iref = cljs.core.first(arglist__36370);
var f = cljs.core.first(cljs.core.next(arglist__36370));
var args = cljs.core.rest(cljs.core.next(arglist__36370));
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__2329__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__36371 = this;
return(new cljs.core.Keyword("\ufdd0'done")).call(null, cljs.core.deref.call(null, this__36371.state))
};
cljs.core.Delay.prototype.cljs$core$IDeref$_deref$arity$1 = function(_) {
var this__36372 = this;
return(new cljs.core.Keyword("\ufdd0'value")).call(null, cljs.core.swap_BANG_.call(null, this__36372.state, function(p__36373) {
var map__36374__36375 = p__36373;
var map__36374__36376 = cljs.core.seq_QMARK_.call(null, map__36374__36375) ? cljs.core.apply.call(null, cljs.core.hash_map, map__36374__36375) : map__36374__36375;
var curr_state__36377 = map__36374__36376;
var done__36378 = cljs.core._lookup.call(null, map__36374__36376, "\ufdd0'done", null);
if(cljs.core.truth_(done__36378)) {
return curr_state__36377
}else {
return cljs.core.ObjMap.fromObject(["\ufdd0'done", "\ufdd0'value"], {"\ufdd0'done":true, "\ufdd0'value":this__36372.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__36399__36400 = options;
var map__36399__36401 = cljs.core.seq_QMARK_.call(null, map__36399__36400) ? cljs.core.apply.call(null, cljs.core.hash_map, map__36399__36400) : map__36399__36400;
var keywordize_keys__36402 = cljs.core._lookup.call(null, map__36399__36401, "\ufdd0'keywordize-keys", null);
var keyfn__36403 = cljs.core.truth_(keywordize_keys__36402) ? cljs.core.keyword : cljs.core.str;
var f__36418 = 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__2482__auto____36417 = function iter__36411(s__36412) {
return new cljs.core.LazySeq(null, false, function() {
var s__36412__36415 = s__36412;
while(true) {
if(cljs.core.seq.call(null, s__36412__36415)) {
var k__36416 = cljs.core.first.call(null, s__36412__36415);
return cljs.core.cons.call(null, cljs.core.PersistentVector.fromArray([keyfn__36403.call(null, k__36416), thisfn.call(null, x[k__36416])], true), iter__36411.call(null, cljs.core.rest.call(null, s__36412__36415)))
}else {
return null
}
break
}
}, null)
};
return iter__2482__auto____36417.call(null, cljs.core.js_keys.call(null, x))
}())
}else {
if("\ufdd0'else") {
return x
}else {
return null
}
}
}
}
}
};
return f__36418.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__36419) {
var x = cljs.core.first(arglist__36419);
var options = cljs.core.rest(arglist__36419);
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__36424 = cljs.core.atom.call(null, cljs.core.ObjMap.EMPTY);
return function() {
var G__36428__delegate = function(args) {
var temp__3971__auto____36425 = cljs.core._lookup.call(null, cljs.core.deref.call(null, mem__36424), args, null);
if(cljs.core.truth_(temp__3971__auto____36425)) {
var v__36426 = temp__3971__auto____36425;
return v__36426
}else {
var ret__36427 = cljs.core.apply.call(null, f, args);
cljs.core.swap_BANG_.call(null, mem__36424, cljs.core.assoc, args, ret__36427);
return ret__36427
}
};
var G__36428 = 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__36428__delegate.call(this, args)
};
G__36428.cljs$lang$maxFixedArity = 0;
G__36428.cljs$lang$applyTo = function(arglist__36429) {
var args = cljs.core.seq(arglist__36429);
return G__36428__delegate(args)
};
G__36428.cljs$lang$arity$variadic = G__36428__delegate;
return G__36428
}()
};
cljs.core.trampoline = function() {
var trampoline = null;
var trampoline__1 = function(f) {
while(true) {
var ret__36431 = f.call(null);
if(cljs.core.fn_QMARK_.call(null, ret__36431)) {
var G__36432 = ret__36431;
f = G__36432;
continue
}else {
return ret__36431
}
break
}
};
var trampoline__2 = function() {
var G__36433__delegate = function(f, args) {
return trampoline.call(null, function() {
return cljs.core.apply.call(null, f, args)
})
};
var G__36433 = 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__36433__delegate.call(this, f, args)
};
G__36433.cljs$lang$maxFixedArity = 1;
G__36433.cljs$lang$applyTo = function(arglist__36434) {
var f = cljs.core.first(arglist__36434);
var args = cljs.core.rest(arglist__36434);
return G__36433__delegate(f, args)
};
G__36433.cljs$lang$arity$variadic = G__36433__delegate;
return G__36433
}();
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__36436 = f.call(null, x);
return cljs.core.assoc.call(null, ret, k__36436, cljs.core.conj.call(null, cljs.core._lookup.call(null, ret, k__36436, 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____36445 = cljs.core._EQ_.call(null, child, parent);
if(or__3824__auto____36445) {
return or__3824__auto____36445
}else {
var or__3824__auto____36446 = cljs.core.contains_QMARK_.call(null, (new cljs.core.Keyword("\ufdd0'ancestors")).call(null, h).call(null, child), parent);
if(or__3824__auto____36446) {
return or__3824__auto____36446
}else {
var and__3822__auto____36447 = cljs.core.vector_QMARK_.call(null, parent);
if(and__3822__auto____36447) {
var and__3822__auto____36448 = cljs.core.vector_QMARK_.call(null, child);
if(and__3822__auto____36448) {
var and__3822__auto____36449 = cljs.core.count.call(null, parent) === cljs.core.count.call(null, child);
if(and__3822__auto____36449) {
var ret__36450 = true;
var i__36451 = 0;
while(true) {
if(function() {
var or__3824__auto____36452 = cljs.core.not.call(null, ret__36450);
if(or__3824__auto____36452) {
return or__3824__auto____36452
}else {
return i__36451 === cljs.core.count.call(null, parent)
}
}()) {
return ret__36450
}else {
var G__36453 = isa_QMARK_.call(null, h, child.call(null, i__36451), parent.call(null, i__36451));
var G__36454 = i__36451 + 1;
ret__36450 = G__36453;
i__36451 = G__36454;
continue
}
break
}
}else {
return and__3822__auto____36449
}
}else {
return and__3822__auto____36448
}
}else {
return and__3822__auto____36447
}
}
}
};
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__36463 = (new cljs.core.Keyword("\ufdd0'parents")).call(null, h);
var td__36464 = (new cljs.core.Keyword("\ufdd0'descendants")).call(null, h);
var ta__36465 = (new cljs.core.Keyword("\ufdd0'ancestors")).call(null, h);
var tf__36466 = 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____36467 = cljs.core.contains_QMARK_.call(null, tp__36463.call(null, tag), parent) ? null : function() {
if(cljs.core.contains_QMARK_.call(null, ta__36465.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__36465.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__36463, tag, cljs.core.PersistentHashSet.EMPTY), parent)), "\ufdd0'ancestors":tf__36466.call(null, (new cljs.core.Keyword("\ufdd0'ancestors")).call(null, h), tag, td__36464, parent, ta__36465), "\ufdd0'descendants":tf__36466.call(null,
(new cljs.core.Keyword("\ufdd0'descendants")).call(null, h), parent, ta__36465, tag, td__36464)})
}();
if(cljs.core.truth_(or__3824__auto____36467)) {
return or__3824__auto____36467
}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__36472 = (new cljs.core.Keyword("\ufdd0'parents")).call(null, h);
var childsParents__36473 = cljs.core.truth_(parentMap__36472.call(null, tag)) ? cljs.core.disj.call(null, parentMap__36472.call(null, tag), parent) : cljs.core.PersistentHashSet.EMPTY;
var newParents__36474 = cljs.core.truth_(cljs.core.not_empty.call(null, childsParents__36473)) ? cljs.core.assoc.call(null, parentMap__36472, tag, childsParents__36473) : cljs.core.dissoc.call(null, parentMap__36472, tag);
var deriv_seq__36475 = cljs.core.flatten.call(null, cljs.core.map.call(null, function(p1__36455_SHARP_) {
return cljs.core.cons.call(null, cljs.core.first.call(null, p1__36455_SHARP_), cljs.core.interpose.call(null, cljs.core.first.call(null, p1__36455_SHARP_), cljs.core.second.call(null, p1__36455_SHARP_)))
}, cljs.core.seq.call(null, newParents__36474)));
if(cljs.core.contains_QMARK_.call(null, parentMap__36472.call(null, tag), parent)) {
return cljs.core.reduce.call(null, function(p1__36456_SHARP_, p2__36457_SHARP_) {
return cljs.core.apply.call(null, cljs.core.derive, p1__36456_SHARP_, p2__36457_SHARP_)
}, cljs.core.make_hierarchy.call(null), cljs.core.partition.call(null, 2, deriv_seq__36475))
}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__36483 = cljs.core.deref.call(null, prefer_table).call(null, x);
var or__3824__auto____36485 = cljs.core.truth_(function() {
var and__3822__auto____36484 = xprefs__36483;
if(cljs.core.truth_(and__3822__auto____36484)) {
return xprefs__36483.call(null, y)
}else {
return and__3822__auto____36484
}
}()) ? true : null;
if(cljs.core.truth_(or__3824__auto____36485)) {
return or__3824__auto____36485
}else {
var or__3824__auto____36487 = function() {
var ps__36486 = cljs.core.parents.call(null, y);
while(true) {
if(cljs.core.count.call(null, ps__36486) > 0) {
if(cljs.core.truth_(prefers_STAR_.call(null, x, cljs.core.first.call(null, ps__36486), prefer_table))) {
}else {
}
var G__36490 = cljs.core.rest.call(null, ps__36486);
ps__36486 = G__36490;
continue
}else {
return null
}
break
}
}();
if(cljs.core.truth_(or__3824__auto____36487)) {
return or__3824__auto____36487
}else {
var or__3824__auto____36489 = function() {
var ps__36488 = cljs.core.parents.call(null, x);
while(true) {
if(cljs.core.count.call(null, ps__36488) > 0) {
if(cljs.core.truth_(prefers_STAR_.call(null, cljs.core.first.call(null, ps__36488), y, prefer_table))) {
}else {
}
var G__36491 = cljs.core.rest.call(null, ps__36488);
ps__36488 = G__36491;
continue
}else {
return null
}
break
}
}();
if(cljs.core.truth_(or__3824__auto____36489)) {
return or__3824__auto____36489
}else {
return false
}
}
}
};
cljs.core.dominates = function dominates(x, y, prefer_table) {
var or__3824__auto____36493 = cljs.core.prefers_STAR_.call(null, x, y, prefer_table);
if(cljs.core.truth_(or__3824__auto____36493)) {
return or__3824__auto____36493
}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__36511 = cljs.core.reduce.call(null, function(be, p__36503) {
var vec__36504__36505 = p__36503;
var k__36506 = cljs.core.nth.call(null, vec__36504__36505, 0, null);
var ___36507 = cljs.core.nth.call(null, vec__36504__36505, 1, null);
var e__36508 = vec__36504__36505;
if(cljs.core.isa_QMARK_.call(null, dispatch_val, k__36506)) {
var be2__36510 = cljs.core.truth_(function() {
var or__3824__auto____36509 = be == null;
if(or__3824__auto____36509) {
return or__3824__auto____36509
}else {
return cljs.core.dominates.call(null, k__36506, cljs.core.first.call(null, be), prefer_table)
}
}()) ? e__36508 : be;
if(cljs.core.truth_(cljs.core.dominates.call(null, cljs.core.first.call(null, be2__36510), k__36506, 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__36506), cljs.core.str(" and "), cljs.core.str(cljs.core.first.call(null, be2__36510)), cljs.core.str(", and neither is preferred")].join(""));
}
return be2__36510
}else {
return be
}
}, null, cljs.core.deref.call(null, method_table));
if(cljs.core.truth_(best_entry__36511)) {
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__36511));
return cljs.core.second.call(null, best_entry__36511)
}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____36516 = mf;
if(and__3822__auto____36516) {
return mf.cljs$core$IMultiFn$_reset$arity$1
}else {
return and__3822__auto____36516
}
}()) {
return mf.cljs$core$IMultiFn$_reset$arity$1(mf)
}else {
var x__2383__auto____36517 = mf == null ? null : mf;
return function() {
var or__3824__auto____36518 = cljs.core._reset[goog.typeOf(x__2383__auto____36517)];
if(or__3824__auto____36518) {
return or__3824__auto____36518
}else {
var or__3824__auto____36519 = cljs.core._reset["_"];
if(or__3824__auto____36519) {
return or__3824__auto____36519
}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____36524 = mf;
if(and__3822__auto____36524) {
return mf.cljs$core$IMultiFn$_add_method$arity$3
}else {
return and__3822__auto____36524
}
}()) {
return mf.cljs$core$IMultiFn$_add_method$arity$3(mf, dispatch_val, method)
}else {
var x__2383__auto____36525 = mf == null ? null : mf;
return function() {
var or__3824__auto____36526 = cljs.core._add_method[goog.typeOf(x__2383__auto____36525)];
if(or__3824__auto____36526) {
return or__3824__auto____36526
}else {
var or__3824__auto____36527 = cljs.core._add_method["_"];
if(or__3824__auto____36527) {
return or__3824__auto____36527
}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____36532 = mf;
if(and__3822__auto____36532) {
return mf.cljs$core$IMultiFn$_remove_method$arity$2
}else {
return and__3822__auto____36532
}
}()) {
return mf.cljs$core$IMultiFn$_remove_method$arity$2(mf, dispatch_val)
}else {
var x__2383__auto____36533 = mf == null ? null : mf;
return function() {
var or__3824__auto____36534 = cljs.core._remove_method[goog.typeOf(x__2383__auto____36533)];
if(or__3824__auto____36534) {
return or__3824__auto____36534
}else {
var or__3824__auto____36535 = cljs.core._remove_method["_"];
if(or__3824__auto____36535) {
return or__3824__auto____36535
}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____36540 = mf;
if(and__3822__auto____36540) {
return mf.cljs$core$IMultiFn$_prefer_method$arity$3
}else {
return and__3822__auto____36540
}
}()) {
return mf.cljs$core$IMultiFn$_prefer_method$arity$3(mf, dispatch_val, dispatch_val_y)
}else {
var x__2383__auto____36541 = mf == null ? null : mf;
return function() {
var or__3824__auto____36542 = cljs.core._prefer_method[goog.typeOf(x__2383__auto____36541)];
if(or__3824__auto____36542) {
return or__3824__auto____36542
}else {
var or__3824__auto____36543 = cljs.core._prefer_method["_"];
if(or__3824__auto____36543) {
return or__3824__auto____36543
}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____36548 = mf;
if(and__3822__auto____36548) {
return mf.cljs$core$IMultiFn$_get_method$arity$2
}else {
return and__3822__auto____36548
}
}()) {
return mf.cljs$core$IMultiFn$_get_method$arity$2(mf, dispatch_val)
}else {
var x__2383__auto____36549 = mf == null ? null : mf;
return function() {
var or__3824__auto____36550 = cljs.core._get_method[goog.typeOf(x__2383__auto____36549)];
if(or__3824__auto____36550) {
return or__3824__auto____36550
}else {
var or__3824__auto____36551 = cljs.core._get_method["_"];
if(or__3824__auto____36551) {
return or__3824__auto____36551
}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____36556 = mf;
if(and__3822__auto____36556) {
return mf.cljs$core$IMultiFn$_methods$arity$1
}else {
return and__3822__auto____36556
}
}()) {
return mf.cljs$core$IMultiFn$_methods$arity$1(mf)
}else {
var x__2383__auto____36557 = mf == null ? null : mf;
return function() {
var or__3824__auto____36558 = cljs.core._methods[goog.typeOf(x__2383__auto____36557)];
if(or__3824__auto____36558) {
return or__3824__auto____36558
}else {
var or__3824__auto____36559 = cljs.core._methods["_"];
if(or__3824__auto____36559) {
return or__3824__auto____36559
}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____36564 = mf;
if(and__3822__auto____36564) {
return mf.cljs$core$IMultiFn$_prefers$arity$1
}else {
return and__3822__auto____36564
}
}()) {
return mf.cljs$core$IMultiFn$_prefers$arity$1(mf)
}else {
var x__2383__auto____36565 = mf == null ? null : mf;
return function() {
var or__3824__auto____36566 = cljs.core._prefers[goog.typeOf(x__2383__auto____36565)];
if(or__3824__auto____36566) {
return or__3824__auto____36566
}else {
var or__3824__auto____36567 = cljs.core._prefers["_"];
if(or__3824__auto____36567) {
return or__3824__auto____36567
}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____36572 = mf;
if(and__3822__auto____36572) {
return mf.cljs$core$IMultiFn$_dispatch$arity$2
}else {
return and__3822__auto____36572
}
}()) {
return mf.cljs$core$IMultiFn$_dispatch$arity$2(mf, args)
}else {
var x__2383__auto____36573 = mf == null ? null : mf;
return function() {
var or__3824__auto____36574 = cljs.core._dispatch[goog.typeOf(x__2383__auto____36573)];
if(or__3824__auto____36574) {
return or__3824__auto____36574
}else {
var or__3824__auto____36575 = cljs.core._dispatch["_"];
if(or__3824__auto____36575) {
return or__3824__auto____36575
}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__36578 = cljs.core.apply.call(null, dispatch_fn, args);
var target_fn__36579 = cljs.core._get_method.call(null, mf, dispatch_val__36578);
if(cljs.core.truth_(target_fn__36579)) {
}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__36578)].join(""));
}
return cljs.core.apply.call(null, target_fn__36579, 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__2329__auto__) {
return cljs.core.list.call(null, "cljs.core/MultiFn")
};
cljs.core.MultiFn.prototype.cljs$core$IHash$_hash$arity$1 = function(this$) {
var this__36580 = this;
return goog.getUid(this$)
};
cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_reset$arity$1 = function(mf) {
var this__36581 = this;
cljs.core.swap_BANG_.call(null, this__36581.method_table, function(mf) {
return cljs.core.ObjMap.EMPTY
});
cljs.core.swap_BANG_.call(null, this__36581.method_cache, function(mf) {
return cljs.core.ObjMap.EMPTY
});
cljs.core.swap_BANG_.call(null, this__36581.prefer_table, function(mf) {
return cljs.core.ObjMap.EMPTY
});
cljs.core.swap_BANG_.call(null, this__36581.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__36582 = this;
cljs.core.swap_BANG_.call(null, this__36582.method_table, cljs.core.assoc, dispatch_val, method);
cljs.core.reset_cache.call(null, this__36582.method_cache, this__36582.method_table, this__36582.cached_hierarchy, this__36582.hierarchy);
return mf
};
cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_remove_method$arity$2 = function(mf, dispatch_val) {
var this__36583 = this;
cljs.core.swap_BANG_.call(null, this__36583.method_table, cljs.core.dissoc, dispatch_val);
cljs.core.reset_cache.call(null, this__36583.method_cache, this__36583.method_table, this__36583.cached_hierarchy, this__36583.hierarchy);
return mf
};
cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_get_method$arity$2 = function(mf, dispatch_val) {
var this__36584 = this;
if(cljs.core._EQ_.call(null, cljs.core.deref.call(null, this__36584.cached_hierarchy), cljs.core.deref.call(null, this__36584.hierarchy))) {
}else {
cljs.core.reset_cache.call(null, this__36584.method_cache, this__36584.method_table, this__36584.cached_hierarchy, this__36584.hierarchy)
}
var temp__3971__auto____36585 = cljs.core.deref.call(null, this__36584.method_cache).call(null, dispatch_val);
if(cljs.core.truth_(temp__3971__auto____36585)) {
var target_fn__36586 = temp__3971__auto____36585;
return target_fn__36586
}else {
var temp__3971__auto____36587 = cljs.core.find_and_cache_best_method.call(null, this__36584.name, dispatch_val, this__36584.hierarchy, this__36584.method_table, this__36584.prefer_table, this__36584.method_cache, this__36584.cached_hierarchy);
if(cljs.core.truth_(temp__3971__auto____36587)) {
var target_fn__36588 = temp__3971__auto____36587;
return target_fn__36588
}else {
return cljs.core.deref.call(null, this__36584.method_table).call(null, this__36584.default_dispatch_val)
}
}
};
cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_prefer_method$arity$3 = function(mf, dispatch_val_x, dispatch_val_y) {
var this__36589 = this;
if(cljs.core.truth_(cljs.core.prefers_STAR_.call(null, dispatch_val_x, dispatch_val_y, this__36589.prefer_table))) {
throw new Error([cljs.core.str("Preference conflict in multimethod '"), cljs.core.str(this__36589.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__36589.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__36589.method_cache, this__36589.method_table, this__36589.cached_hierarchy, this__36589.hierarchy)
};
cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_methods$arity$1 = function(mf) {
var this__36590 = this;
return cljs.core.deref.call(null, this__36590.method_table)
};
cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_prefers$arity$1 = function(mf) {
var this__36591 = this;
return cljs.core.deref.call(null, this__36591.prefer_table)
};
cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_dispatch$arity$2 = function(mf, args) {
var this__36592 = this;
return cljs.core.do_dispatch.call(null, mf, this__36592.dispatch_fn, args)
};
cljs.core.MultiFn;
cljs.core.MultiFn.prototype.call = function() {
var G__36594__delegate = function(_, args) {
var self__36593 = this;
return cljs.core._dispatch.call(null, self__36593, args)
};
var G__36594 = 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__36594__delegate.call(this, _, args)
};
G__36594.cljs$lang$maxFixedArity = 1;
G__36594.cljs$lang$applyTo = function(arglist__36595) {
var _ = cljs.core.first(arglist__36595);
var args = cljs.core.rest(arglist__36595);
return G__36594__delegate(_, args)
};
G__36594.cljs$lang$arity$variadic = G__36594__delegate;
return G__36594
}();
cljs.core.MultiFn.prototype.apply = function(_, args) {
var self__36596 = this;
return cljs.core._dispatch.call(null, self__36596, 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__2329__auto__) {
return cljs.core.list.call(null, "cljs.core/UUID")
};
cljs.core.UUID.prototype.cljs$core$IHash$_hash$arity$1 = function(this$) {
var this__36597 = this;
return goog.string.hashCode(cljs.core.pr_str.call(null, this$))
};
cljs.core.UUID.prototype.cljs$core$IPrintable$_pr_seq$arity$2 = function(_36599, _) {
var this__36598 = this;
return cljs.core.list.call(null, [cljs.core.str('#uuid "'), cljs.core.str(this__36598.uuid), cljs.core.str('"')].join(""))
};
cljs.core.UUID.prototype.cljs$core$IEquiv$_equiv$arity$2 = function(_, other) {
var this__36600 = this;
var and__3822__auto____36601 = cljs.core.instance_QMARK_.call(null, cljs.core.UUID, other);
if(and__3822__auto____36601) {
return this__36600.uuid === other.uuid
}else {
return and__3822__auto____36601
}
};
cljs.core.UUID.prototype.toString = function() {
var this__36602 = this;
var this__36603 = this;
return cljs.core.pr_str.call(null, this__36603)
};
cljs.core.UUID;
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.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.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.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.functions");
goog.functions.constant = function(retValue) {
return function() {
return retValue
}
};
goog.functions.FALSE = goog.functions.constant(false);
goog.functions.TRUE = goog.functions.constant(true);
goog.functions.NULL = goog.functions.constant(null);
goog.functions.identity = function(opt_returnValue, var_args) {
return opt_returnValue
};
goog.functions.error = function(message) {
return function() {
throw Error(message);
}
};
goog.functions.lock = function(f) {
return function() {
return f.call(this)
}
};
goog.functions.withReturnValue = function(f, retValue) {
return goog.functions.sequence(f, goog.functions.constant(retValue))
};
goog.functions.compose = function(var_args) {
var functions = arguments;
var length = functions.length;
return function() {
var result;
if(length) {
result = functions[length - 1].apply(this, arguments)
}
for(var i = length - 2;i >= 0;i--) {
result = functions[i].call(this, result)
}
return result
}
};
goog.functions.sequence = function(var_args) {
var functions = arguments;
var length = functions.length;
return function() {
var result;
for(var i = 0;i < length;i++) {
result = functions[i].apply(this, arguments)
}
return result
}
};
goog.functions.and = function(var_args) {
var functions = arguments;
var length = functions.length;
return function() {
for(var i = 0;i < length;i++) {
if(!functions[i].apply(this, arguments)) {
return false
}
}
return true
}
};
goog.functions.or = function(var_args) {
var functions = arguments;
var length = functions.length;
return function() {
for(var i = 0;i < length;i++) {
if(functions[i].apply(this, arguments)) {
return true
}
}
return false
}
};
goog.functions.not = function(f) {
return function() {
return!f.apply(this, arguments)
}
};
goog.functions.create = function(constructor, var_args) {
var temp = function() {
};
temp.prototype = constructor.prototype;
var obj = new temp;
constructor.apply(obj, Array.prototype.slice.call(arguments, 1));
return obj
};
/*
Portions of this code are from the Dojo Toolkit, received by
The Closure Library Authors under the BSD license. All other code is
Copyright 2005-2009 The Closure Library Authors. All Rights Reserved.
The "New" BSD License:
Copyright (c) 2005-2009, The Dojo Foundation
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
Neither the name of the Dojo Foundation nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
goog.provide("goog.dom.query");
goog.require("goog.array");
goog.require("goog.dom");
goog.require("goog.functions");
goog.require("goog.string");
goog.require("goog.userAgent");
goog.dom.query = function() {
var cssCaseBug = goog.userAgent.WEBKIT && goog.dom.getDocument().compatMode == "BackCompat";
var childNodesName = !!goog.dom.getDocument().firstChild["children"] ? "children" : "childNodes";
var specials = ">~+";
var caseSensitive = false;
var getQueryParts = function(query) {
if(specials.indexOf(query.slice(-1)) >= 0) {
query += " * "
}else {
query += " "
}
var ts = function(s, e) {
return goog.string.trim(query.slice(s, e))
};
var queryParts = [];
var inBrackets = -1, inParens = -1, inMatchFor = -1, inPseudo = -1, inClass = -1, inId = -1, inTag = -1, lc = "", cc = "", pStart;
var x = 0, ql = query.length, currentPart = null, cp = null;
var endTag = function() {
if(inTag >= 0) {
var tv = inTag == x ? null : ts(inTag, x);
if(specials.indexOf(tv) < 0) {
currentPart.tag = tv
}else {
currentPart.oper = tv
}
inTag = -1
}
};
var endId = function() {
if(inId >= 0) {
currentPart.id = ts(inId, x).replace(/\\/g, "");
inId = -1
}
};
var endClass = function() {
if(inClass >= 0) {
currentPart.classes.push(ts(inClass + 1, x).replace(/\\/g, ""));
inClass = -1
}
};
var endAll = function() {
endId();
endTag();
endClass()
};
var endPart = function() {
endAll();
if(inPseudo >= 0) {
currentPart.pseudos.push({name:ts(inPseudo + 1, x)})
}
currentPart.loops = currentPart.pseudos.length || currentPart.attrs.length || currentPart.classes.length;
currentPart.oquery = currentPart.query = ts(pStart, x);
currentPart.otag = currentPart.tag = currentPart.oper ? null : currentPart.tag || "*";
if(currentPart.tag) {
currentPart.tag = currentPart.tag.toUpperCase()
}
if(queryParts.length && queryParts[queryParts.length - 1].oper) {
currentPart.infixOper = queryParts.pop();
currentPart.query = currentPart.infixOper.query + " " + currentPart.query
}
queryParts.push(currentPart);
currentPart = null
};
for(;lc = cc, cc = query.charAt(x), x < ql;x++) {
if(lc == "\\") {
continue
}
if(!currentPart) {
pStart = x;
currentPart = {query:null, pseudos:[], attrs:[], classes:[], tag:null, oper:null, id:null, getTag:function() {
return caseSensitive ? this.otag : this.tag
}};
inTag = x
}
if(inBrackets >= 0) {
if(cc == "]") {
if(!cp.attr) {
cp.attr = ts(inBrackets + 1, x)
}else {
cp.matchFor = ts(inMatchFor || inBrackets + 1, x)
}
var cmf = cp.matchFor;
if(cmf) {
if(cmf.charAt(0) == '"' || cmf.charAt(0) == "'") {
cp.matchFor = cmf.slice(1, -1)
}
}
currentPart.attrs.push(cp);
cp = null;
inBrackets = inMatchFor = -1
}else {
if(cc == "=") {
var addToCc = "|~^$*".indexOf(lc) >= 0 ? lc : "";
cp.type = addToCc + cc;
cp.attr = ts(inBrackets + 1, x - addToCc.length);
inMatchFor = x + 1
}
}
}else {
if(inParens >= 0) {
if(cc == ")") {
if(inPseudo >= 0) {
cp.value = ts(inParens + 1, x)
}
inPseudo = inParens = -1
}
}else {
if(cc == "#") {
endAll();
inId = x + 1
}else {
if(cc == ".") {
endAll();
inClass = x
}else {
if(cc == ":") {
endAll();
inPseudo = x
}else {
if(cc == "[") {
endAll();
inBrackets = x;
cp = {}
}else {
if(cc == "(") {
if(inPseudo >= 0) {
cp = {name:ts(inPseudo + 1, x), value:null};
currentPart.pseudos.push(cp)
}
inParens = x
}else {
if(cc == " " && lc != cc) {
endPart()
}
}
}
}
}
}
}
}
}
return queryParts
};
var agree = function(first, second) {
if(!first) {
return second
}
if(!second) {
return first
}
return function() {
return first.apply(window, arguments) && second.apply(window, arguments)
}
};
function getArr(i, opt_arr) {
var r = opt_arr || [];
if(i) {
r.push(i)
}
return r
}
var isElement = function(n) {
return 1 == n.nodeType
};
var blank = "";
var getAttr = function(elem, attr) {
if(!elem) {
return blank
}
if(attr == "class") {
return elem.className || blank
}
if(attr == "for") {
return elem.htmlFor || blank
}
if(attr == "style") {
return elem.style.cssText || blank
}
return(caseSensitive ? elem.getAttribute(attr) : elem.getAttribute(attr, 2)) || blank
};
var attrs = {"*=":function(attr, value) {
return function(elem) {
return getAttr(elem, attr).indexOf(value) >= 0
}
}, "^=":function(attr, value) {
return function(elem) {
return getAttr(elem, attr).indexOf(value) == 0
}
}, "$=":function(attr, value) {
var tval = " " + value;
return function(elem) {
var ea = " " + getAttr(elem, attr);
return ea.lastIndexOf(value) == ea.length - value.length
}
}, "~=":function(attr, value) {
var tval = " " + value + " ";
return function(elem) {
var ea = " " + getAttr(elem, attr) + " ";
return ea.indexOf(tval) >= 0
}
}, "|=":function(attr, value) {
value = " " + value;
return function(elem) {
var ea = " " + getAttr(elem, attr);
return ea == value || ea.indexOf(value + "-") == 0
}
}, "=":function(attr, value) {
return function(elem) {
return getAttr(elem, attr) == value
}
}};
var noNextElementSibling = typeof goog.dom.getDocument().firstChild.nextElementSibling == "undefined";
var nSibling = !noNextElementSibling ? "nextElementSibling" : "nextSibling";
var pSibling = !noNextElementSibling ? "previousElementSibling" : "previousSibling";
var simpleNodeTest = noNextElementSibling ? isElement : goog.functions.TRUE;
var _lookLeft = function(node) {
while(node = node[pSibling]) {
if(simpleNodeTest(node)) {
return false
}
}
return true
};
var _lookRight = function(node) {
while(node = node[nSibling]) {
if(simpleNodeTest(node)) {
return false
}
}
return true
};
var getNodeIndex = function(node) {
var root = node.parentNode;
var i = 0, tret = root[childNodesName], ci = node["_i"] || -1, cl = root["_l"] || -1;
if(!tret) {
return-1
}
var l = tret.length;
if(cl == l && ci >= 0 && cl >= 0) {
return ci
}
root["_l"] = l;
ci = -1;
var te = root["firstElementChild"] || root["firstChild"];
for(;te;te = te[nSibling]) {
if(simpleNodeTest(te)) {
te["_i"] = ++i;
if(node === te) {
ci = i
}
}
}
return ci
};
var isEven = function(elem) {
return!(getNodeIndex(elem) % 2)
};
var isOdd = function(elem) {
return getNodeIndex(elem) % 2
};
var pseudos = {"checked":function(name, condition) {
return function(elem) {
return elem.checked || elem.attributes["checked"]
}
}, "first-child":function() {
return _lookLeft
}, "last-child":function() {
return _lookRight
}, "only-child":function(name, condition) {
return function(node) {
if(!_lookLeft(node)) {
return false
}
if(!_lookRight(node)) {
return false
}
return true
}
}, "empty":function(name, condition) {
return function(elem) {
var cn = elem.childNodes;
var cnl = elem.childNodes.length;
for(var x = cnl - 1;x >= 0;x--) {
var nt = cn[x].nodeType;
if(nt === 1 || nt == 3) {
return false
}
}
return true
}
}, "contains":function(name, condition) {
var cz = condition.charAt(0);
if(cz == '"' || cz == "'") {
condition = condition.slice(1, -1)
}
return function(elem) {
return elem.innerHTML.indexOf(condition) >= 0
}
}, "not":function(name, condition) {
var p = getQueryParts(condition)[0];
var ignores = {el:1};
if(p.tag != "*") {
ignores.tag = 1
}
if(!p.classes.length) {
ignores.classes = 1
}
var ntf = getSimpleFilterFunc(p, ignores);
return function(elem) {
return!ntf(elem)
}
}, "nth-child":function(name, condition) {
function pi(n) {
return parseInt(n, 10)
}
if(condition == "odd") {
return isOdd
}else {
if(condition == "even") {
return isEven
}
}
if(condition.indexOf("n") != -1) {
var tparts = condition.split("n", 2);
var pred = tparts[0] ? tparts[0] == "-" ? -1 : pi(tparts[0]) : 1;
var idx = tparts[1] ? pi(tparts[1]) : 0;
var lb = 0, ub = -1;
if(pred > 0) {
if(idx < 0) {
idx = idx % pred && pred + idx % pred
}else {
if(idx > 0) {
if(idx >= pred) {
lb = idx - idx % pred
}
idx = idx % pred
}
}
}else {
if(pred < 0) {
pred *= -1;
if(idx > 0) {
ub = idx;
idx = idx % pred
}
}
}
if(pred > 0) {
return function(elem) {
var i = getNodeIndex(elem);
return i >= lb && (ub < 0 || i <= ub) && i % pred == idx
}
}else {
condition = idx
}
}
var ncount = pi(condition);
return function(elem) {
return getNodeIndex(elem) == ncount
}
}};
var defaultGetter = goog.userAgent.IE ? function(cond) {
var clc = cond.toLowerCase();
if(clc == "class") {
cond = "className"
}
return function(elem) {
return caseSensitive ? elem.getAttribute(cond) : elem[cond] || elem[clc]
}
} : function(cond) {
return function(elem) {
return elem && elem.getAttribute && elem.hasAttribute(cond)
}
};
var getSimpleFilterFunc = function(query, ignores) {
if(!query) {
return goog.functions.TRUE
}
ignores = ignores || {};
var ff = null;
if(!ignores.el) {
ff = agree(ff, isElement)
}
if(!ignores.tag) {
if(query.tag != "*") {
ff = agree(ff, function(elem) {
return elem && elem.tagName == query.getTag()
})
}
}
if(!ignores.classes) {
goog.array.forEach(query.classes, function(cname, idx, arr) {
var re = new RegExp("(?:^|\\s)" + cname + "(?:\\s|$)");
ff = agree(ff, function(elem) {
return re.test(elem.className)
});
ff.count = idx
})
}
if(!ignores.pseudos) {
goog.array.forEach(query.pseudos, function(pseudo) {
var pn = pseudo.name;
if(pseudos[pn]) {
ff = agree(ff, pseudos[pn](pn, pseudo.value))
}
})
}
if(!ignores.attrs) {
goog.array.forEach(query.attrs, function(attr) {
var matcher;
var a = attr.attr;
if(attr.type && attrs[attr.type]) {
matcher = attrs[attr.type](a, attr.matchFor)
}else {
if(a.length) {
matcher = defaultGetter(a)
}
}
if(matcher) {
ff = agree(ff, matcher)
}
})
}
if(!ignores.id) {
if(query.id) {
ff = agree(ff, function(elem) {
return!!elem && elem.id == query.id
})
}
}
if(!ff) {
if(!("default" in ignores)) {
ff = goog.functions.TRUE
}
}
return ff
};
var nextSiblingIterator = function(filterFunc) {
return function(node, ret, bag) {
while(node = node[nSibling]) {
if(noNextElementSibling && !isElement(node)) {
continue
}
if((!bag || _isUnique(node, bag)) && filterFunc(node)) {
ret.push(node)
}
break
}
return ret
}
};
var nextSiblingsIterator = function(filterFunc) {
return function(root, ret, bag) {
var te = root[nSibling];
while(te) {
if(simpleNodeTest(te)) {
if(bag && !_isUnique(te, bag)) {
break
}
if(filterFunc(te)) {
ret.push(te)
}
}
te = te[nSibling]
}
return ret
}
};
var _childElements = function(filterFunc) {
filterFunc = filterFunc || goog.functions.TRUE;
return function(root, ret, bag) {
var te, x = 0, tret = root[childNodesName];
while(te = tret[x++]) {
if(simpleNodeTest(te) && (!bag || _isUnique(te, bag)) && filterFunc(te, x)) {
ret.push(te)
}
}
return ret
}
};
var _isDescendant = function(node, root) {
var pn = node.parentNode;
while(pn) {
if(pn == root) {
break
}
pn = pn.parentNode
}
return!!pn
};
var _getElementsFuncCache = {};
var getElementsFunc = function(query) {
var retFunc = _getElementsFuncCache[query.query];
if(retFunc) {
return retFunc
}
var io = query.infixOper;
var oper = io ? io.oper : "";
var filterFunc = getSimpleFilterFunc(query, {el:1});
var qt = query.tag;
var wildcardTag = "*" == qt;
var ecs = goog.dom.getDocument()["getElementsByClassName"];
if(!oper) {
if(query.id) {
filterFunc = !query.loops && wildcardTag ? goog.functions.TRUE : getSimpleFilterFunc(query, {el:1, id:1});
retFunc = function(root, arr) {
var te = goog.dom.getDomHelper(root).getElement(query.id);
if(!te || !filterFunc(te)) {
return
}
if(9 == root.nodeType) {
return getArr(te, arr)
}else {
if(_isDescendant(te, root)) {
return getArr(te, arr)
}
}
}
}else {
if(ecs && /\{\s*\[native code\]\s*\}/.test(String(ecs)) && query.classes.length && !cssCaseBug) {
filterFunc = getSimpleFilterFunc(query, {el:1, classes:1, id:1});
var classesString = query.classes.join(" ");
retFunc = function(root, arr) {
var ret = getArr(0, arr), te, x = 0;
var tret = root.getElementsByClassName(classesString);
while(te = tret[x++]) {
if(filterFunc(te, root)) {
ret.push(te)
}
}
return ret
}
}else {
if(!wildcardTag && !query.loops) {
retFunc = function(root, arr) {
var ret = getArr(0, arr), te, x = 0;
var tret = root.getElementsByTagName(query.getTag());
while(te = tret[x++]) {
ret.push(te)
}
return ret
}
}else {
filterFunc = getSimpleFilterFunc(query, {el:1, tag:1, id:1});
retFunc = function(root, arr) {
var ret = getArr(0, arr), te, x = 0;
var tret = root.getElementsByTagName(query.getTag());
while(te = tret[x++]) {
if(filterFunc(te, root)) {
ret.push(te)
}
}
return ret
}
}
}
}
}else {
var skipFilters = {el:1};
if(wildcardTag) {
skipFilters.tag = 1
}
filterFunc = getSimpleFilterFunc(query, skipFilters);
if("+" == oper) {
retFunc = nextSiblingIterator(filterFunc)
}else {
if("~" == oper) {
retFunc = nextSiblingsIterator(filterFunc)
}else {
if(">" == oper) {
retFunc = _childElements(filterFunc)
}
}
}
}
return _getElementsFuncCache[query.query] = retFunc
};
var filterDown = function(root, queryParts) {
var candidates = getArr(root), qp, x, te, qpl = queryParts.length, bag, ret;
for(var i = 0;i < qpl;i++) {
ret = [];
qp = queryParts[i];
x = candidates.length - 1;
if(x > 0) {
bag = {};
ret.nozip = true
}
var gef = getElementsFunc(qp);
for(var j = 0;te = candidates[j];j++) {
gef(te, ret, bag)
}
if(!ret.length) {
break
}
candidates = ret
}
return ret
};
var _queryFuncCacheDOM = {}, _queryFuncCacheQSA = {};
var getStepQueryFunc = function(query) {
var qparts = getQueryParts(goog.string.trim(query));
if(qparts.length == 1) {
var tef = getElementsFunc(qparts[0]);
return function(root) {
var r = tef(root, []);
if(r) {
r.nozip = true
}
return r
}
}
return function(root) {
return filterDown(root, qparts)
}
};
var qsa = "querySelectorAll";
var qsaAvail = !!goog.dom.getDocument()[qsa] && (!goog.userAgent.WEBKIT || goog.userAgent.isVersion("526"));
var getQueryFunc = function(query, opt_forceDOM) {
if(qsaAvail) {
var qsaCached = _queryFuncCacheQSA[query];
if(qsaCached && !opt_forceDOM) {
return qsaCached
}
}
var domCached = _queryFuncCacheDOM[query];
if(domCached) {
return domCached
}
var qcz = query.charAt(0);
var nospace = -1 == query.indexOf(" ");
if(query.indexOf("#") >= 0 && nospace) {
opt_forceDOM = true
}
var useQSA = qsaAvail && !opt_forceDOM && specials.indexOf(qcz) == -1 && (!goog.userAgent.IE || query.indexOf(":") == -1) && !(cssCaseBug && query.indexOf(".") >= 0) && query.indexOf(":contains") == -1 && query.indexOf("|=") == -1;
if(useQSA) {
var tq = specials.indexOf(query.charAt(query.length - 1)) >= 0 ? query + " *" : query;
return _queryFuncCacheQSA[query] = function(root) {
try {
if(!(9 == root.nodeType || nospace)) {
throw"";
}
var r = root[qsa](tq);
if(goog.userAgent.IE) {
r.commentStrip = true
}else {
r.nozip = true
}
return r
}catch(e) {
return getQueryFunc(query, true)(root)
}
}
}else {
var parts = query.split(/\s*,\s*/);
return _queryFuncCacheDOM[query] = parts.length < 2 ? getStepQueryFunc(query) : function(root) {
var pindex = 0, ret = [], tp;
while(tp = parts[pindex++]) {
ret = ret.concat(getStepQueryFunc(tp)(root))
}
return ret
}
}
};
var _zipIdx = 0;
var _nodeUID = goog.userAgent.IE ? function(node) {
if(caseSensitive) {
return node.getAttribute("_uid") || node.setAttribute("_uid", ++_zipIdx) || _zipIdx
}else {
return node.uniqueID
}
} : function(node) {
return node["_uid"] || (node["_uid"] = ++_zipIdx)
};
var _isUnique = function(node, bag) {
if(!bag) {
return 1
}
var id = _nodeUID(node);
if(!bag[id]) {
return bag[id] = 1
}
return 0
};
var _zipIdxName = "_zipIdx";
var _zip = function(arr) {
if(arr && arr.nozip) {
return arr
}
var ret = [];
if(!arr || !arr.length) {
return ret
}
if(arr[0]) {
ret.push(arr[0])
}
if(arr.length < 2) {
return ret
}
_zipIdx++;
if(goog.userAgent.IE && caseSensitive) {
var szidx = _zipIdx + "";
arr[0].setAttribute(_zipIdxName, szidx);
for(var x = 1, te;te = arr[x];x++) {
if(arr[x].getAttribute(_zipIdxName) != szidx) {
ret.push(te)
}
te.setAttribute(_zipIdxName, szidx)
}
}else {
if(goog.userAgent.IE && arr.commentStrip) {
try {
for(var x = 1, te;te = arr[x];x++) {
if(isElement(te)) {
ret.push(te)
}
}
}catch(e) {
}
}else {
if(arr[0]) {
arr[0][_zipIdxName] = _zipIdx
}
for(var x = 1, te;te = arr[x];x++) {
if(arr[x][_zipIdxName] != _zipIdx) {
ret.push(te)
}
te[_zipIdxName] = _zipIdx
}
}
}
return ret
};
var query = function(query, root) {
if(!query) {
return[]
}
if(query.constructor == Array) {
return query
}
if(!goog.isString(query)) {
return[query]
}
if(goog.isString(root)) {
root = goog.dom.getElement(root);
if(!root) {
return[]
}
}
root = root || goog.dom.getDocument();
var od = root.ownerDocument || root.documentElement;
caseSensitive = root.contentType && root.contentType == "application/xml" || goog.userAgent.OPERA && (root.doctype || od.toString() == "[object XMLDocument]") || !!od && (goog.userAgent.IE ? od.xml : root.xmlVersion || od.xmlVersion);
var r = getQueryFunc(query)(root);
if(r && r.nozip) {
return r
}
return _zip(r)
};
query.pseudos = pseudos;
return query
}();
goog.exportSymbol("goog.dom.query", goog.dom.query);
goog.exportSymbol("goog.dom.query.pseudos", goog.dom.query.pseudos);
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.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("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.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("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__36935 = s;
var limit__36936 = limit;
var parts__36937 = cljs.core.PersistentVector.EMPTY;
while(true) {
if(cljs.core._EQ_.call(null, limit__36936, 1)) {
return cljs.core.conj.call(null, parts__36937, s__36935)
}else {
var temp__3971__auto____36938 = cljs.core.re_find.call(null, re, s__36935);
if(cljs.core.truth_(temp__3971__auto____36938)) {
var m__36939 = temp__3971__auto____36938;
var index__36940 = s__36935.indexOf(m__36939);
var G__36941 = s__36935.substring(index__36940 + cljs.core.count.call(null, m__36939));
var G__36942 = limit__36936 - 1;
var G__36943 = cljs.core.conj.call(null, parts__36937, s__36935.substring(0, index__36940));
s__36935 = G__36941;
limit__36936 = G__36942;
parts__36937 = G__36943;
continue
}else {
return cljs.core.conj.call(null, parts__36937, s__36935)
}
}
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__36947 = s.length;
while(true) {
if(index__36947 === 0) {
return""
}else {
var ch__36948 = cljs.core._lookup.call(null, s, index__36947 - 1, null);
if(function() {
var or__3824__auto____36949 = cljs.core._EQ_.call(null, ch__36948, "\n");
if(or__3824__auto____36949) {
return or__3824__auto____36949
}else {
return cljs.core._EQ_.call(null, ch__36948, "\r")
}
}()) {
var G__36950 = index__36947 - 1;
index__36947 = G__36950;
continue
}else {
return s.substring(0, index__36947)
}
}
break
}
};
clojure.string.blank_QMARK_ = function blank_QMARK_(s) {
var s__36954 = [cljs.core.str(s)].join("");
if(cljs.core.truth_(function() {
var or__3824__auto____36955 = cljs.core.not.call(null, s__36954);
if(or__3824__auto____36955) {
return or__3824__auto____36955
}else {
var or__3824__auto____36956 = cljs.core._EQ_.call(null, "", s__36954);
if(or__3824__auto____36956) {
return or__3824__auto____36956
}else {
return cljs.core.re_matches.call(null, /\s+/, s__36954)
}
}
}())) {
return true
}else {
return false
}
};
clojure.string.escape = function escape(s, cmap) {
var buffer__36963 = new goog.string.StringBuffer;
var length__36964 = s.length;
var index__36965 = 0;
while(true) {
if(cljs.core._EQ_.call(null, length__36964, index__36965)) {
return buffer__36963.toString()
}else {
var ch__36966 = s.charAt(index__36965);
var temp__3971__auto____36967 = cljs.core._lookup.call(null, cmap, ch__36966, null);
if(cljs.core.truth_(temp__3971__auto____36967)) {
var replacement__36968 = temp__3971__auto____36967;
buffer__36963.append([cljs.core.str(replacement__36968)].join(""))
}else {
buffer__36963.append(ch__36966)
}
var G__36969 = index__36965 + 1;
index__36965 = G__36969;
continue
}
break
}
};
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.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.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("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.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 ||
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment