
lojurescript.1.10.145.source-code.brepl_client.js Maven / Gradle / Ivy
if(typeof Math.imul == "undefined" || (Math.imul(0xffffffff,5) == 0)) {
Math.imul = function (a, b) {
var ah = (a >>> 16) & 0xffff;
var al = a & 0xffff;
var bh = (b >>> 16) & 0xffff;
var bl = b & 0xffff;
// the shift by 0 fixes the sign on the high part
// the final |0 converts the unsigned value into a signed value
return ((al * bl) + (((ah * bl + al * bh) << 16) >>> 0)|0);
}
}
var $jscomp=$jscomp||{};$jscomp.scope={};var COMPILED=!0,goog=goog||{};goog.global=this;goog.isDef=function(a){return void 0!==a};goog.isString=function(a){return"string"==typeof a};goog.isBoolean=function(a){return"boolean"==typeof a};goog.isNumber=function(a){return"number"==typeof a};
goog.exportPath_=function(a,b,c){a=a.split(".");c=c||goog.global;a[0]in c||!c.execScript||c.execScript("var "+a[0]);for(var d;a.length&&(d=a.shift());)!a.length&&goog.isDef(b)?c[d]=b:c=c[d]&&c[d]!==Object.prototype[d]?c[d]:c[d]={}};
goog.define=function(a,b){COMPILED||(goog.global.CLOSURE_UNCOMPILED_DEFINES&&void 0===goog.global.CLOSURE_UNCOMPILED_DEFINES.nodeType&&Object.prototype.hasOwnProperty.call(goog.global.CLOSURE_UNCOMPILED_DEFINES,a)?b=goog.global.CLOSURE_UNCOMPILED_DEFINES[a]:goog.global.CLOSURE_DEFINES&&void 0===goog.global.CLOSURE_DEFINES.nodeType&&Object.prototype.hasOwnProperty.call(goog.global.CLOSURE_DEFINES,a)&&(b=goog.global.CLOSURE_DEFINES[a]));goog.exportPath_(a,b)};goog.DEBUG=!0;goog.LOCALE="en";
goog.TRUSTED_SITE=!0;goog.STRICT_MODE_COMPATIBLE=!1;goog.DISALLOW_TEST_ONLY_CODE=COMPILED&&!goog.DEBUG;goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING=!1;goog.provide=function(a){if(goog.isInModuleLoader_())throw Error("goog.provide can not be used within a goog.module.");if(!COMPILED&&goog.isProvided_(a))throw Error('Namespace "'+a+'" already declared.');goog.constructNamespace_(a)};
goog.constructNamespace_=function(a,b){if(!COMPILED){delete goog.implicitNamespaces_[a];for(var c=a;(c=c.substring(0,c.lastIndexOf(".")))&&!goog.getObjectByName(c);)goog.implicitNamespaces_[c]=!0}goog.exportPath_(a,b)};goog.VALID_MODULE_RE_=/^[a-zA-Z_$][a-zA-Z0-9._$]*$/;
goog.module=function(a){if(!goog.isString(a)||!a||-1==a.search(goog.VALID_MODULE_RE_))throw Error("Invalid module identifier");if(!goog.isInModuleLoader_())throw Error("Module "+a+" has been loaded incorrectly. Note, modules cannot be loaded as normal scripts. They require some kind of pre-processing step. You're likely trying to load a module via a script tag or as a part of a concatenated bundle without rewriting the module. For more info see: https://github.com/google/closure-library/wiki/goog.module:-an-ES6-module-like-alternative-to-goog.provide.");if(goog.moduleLoaderState_.moduleName)throw Error("goog.module may only be called once per module.");
goog.moduleLoaderState_.moduleName=a;if(!COMPILED){if(goog.isProvided_(a))throw Error('Namespace "'+a+'" already declared.');delete goog.implicitNamespaces_[a]}};goog.module.get=function(a){return goog.module.getInternal_(a)};goog.module.getInternal_=function(a){if(!COMPILED){if(a in goog.loadedModules_)return goog.loadedModules_[a];if(!goog.implicitNamespaces_[a])return a=goog.getObjectByName(a),null!=a?a:null}return null};goog.moduleLoaderState_=null;
goog.isInModuleLoader_=function(){return null!=goog.moduleLoaderState_};goog.module.declareLegacyNamespace=function(){if(!COMPILED&&!goog.isInModuleLoader_())throw Error("goog.module.declareLegacyNamespace must be called from within a goog.module");if(!COMPILED&&!goog.moduleLoaderState_.moduleName)throw Error("goog.module must be called prior to goog.module.declareLegacyNamespace.");goog.moduleLoaderState_.declareLegacyNamespace=!0};
goog.setTestOnly=function(a){if(goog.DISALLOW_TEST_ONLY_CODE)throw a=a||"",Error("Importing test-only code into non-debug environment"+(a?": "+a:"."));};goog.forwardDeclare=function(a){};COMPILED||(goog.isProvided_=function(a){return a in goog.loadedModules_||!goog.implicitNamespaces_[a]&&goog.isDefAndNotNull(goog.getObjectByName(a))},goog.implicitNamespaces_={"goog.module":!0});
goog.getObjectByName=function(a,b){a=a.split(".");b=b||goog.global;for(var c;c=a.shift();)if(goog.isDefAndNotNull(b[c]))b=b[c];else return null;return b};goog.globalize=function(a,b){b=b||goog.global;for(var c in a)b[c]=a[c]};
goog.addDependency=function(a,b,c,d){if(goog.DEPENDENCIES_ENABLED){var e;a=a.replace(/\\/g,"/");var f=goog.dependencies_;d&&"boolean"!==typeof d||(d=d?{module:"goog"}:{});for(var g=0;e=b[g];g++)f.nameToPath[e]=a,f.loadFlags[a]=d;for(d=0;b=c[d];d++)a in f.requires||(f.requires[a]={}),f.requires[a][b]=!0}};goog.ENABLE_DEBUG_LOADER=!0;goog.logToConsole_=function(a){goog.global.console&&goog.global.console.error(a)};
goog.require=function(a){if(!COMPILED){goog.ENABLE_DEBUG_LOADER&&goog.IS_OLD_IE_&&goog.maybeProcessDeferredDep_(a);if(goog.isProvided_(a)){if(goog.isInModuleLoader_())return goog.module.getInternal_(a)}else if(goog.ENABLE_DEBUG_LOADER){var b=goog.getPathFromDeps_(a);if(b)goog.writeScripts_(b);else throw a="goog.require could not find: "+a,goog.logToConsole_(a),Error(a);}return null}};goog.basePath="";goog.nullFunction=function(){};
goog.abstractMethod=function(){throw Error("unimplemented abstract method");};goog.addSingletonGetter=function(a){a.instance_=void 0;a.getInstance=function(){if(a.instance_)return a.instance_;goog.DEBUG&&(goog.instantiatedSingletons_[goog.instantiatedSingletons_.length]=a);return a.instance_=new a}};goog.instantiatedSingletons_=[];goog.LOAD_MODULE_USING_EVAL=!0;goog.SEAL_MODULE_EXPORTS=goog.DEBUG;goog.loadedModules_={};goog.DEPENDENCIES_ENABLED=!COMPILED&&goog.ENABLE_DEBUG_LOADER;goog.TRANSPILE="detect";
goog.TRANSPILER="transpile.js";
goog.DEPENDENCIES_ENABLED&&(goog.dependencies_={loadFlags:{},nameToPath:{},requires:{},visited:{},written:{},deferred:{}},goog.inHtmlDocument_=function(){var a=goog.global.document;return null!=a&&"write"in a},goog.findBasePath_=function(){if(goog.isDef(goog.global.CLOSURE_BASE_PATH)&&goog.isString(goog.global.CLOSURE_BASE_PATH))goog.basePath=goog.global.CLOSURE_BASE_PATH;else if(goog.inHtmlDocument_()){var a=goog.global.document,b=a.currentScript;a=b?[b]:a.getElementsByTagName("SCRIPT");for(b=a.length-
1;0<=b;--b){var c=a[b].src,d=c.lastIndexOf("?");d=-1==d?c.length:d;if("base.js"==c.substr(d-7,7)){goog.basePath=c.substr(0,d-7);break}}}},goog.importScript_=function(a,b){(goog.global.CLOSURE_IMPORT_SCRIPT||goog.writeScriptTag_)(a,b)&&(goog.dependencies_.written[a]=!0)},goog.IS_OLD_IE_=!(goog.global.atob||!goog.global.document||!goog.global.document.all),goog.oldIeWaiting_=!1,goog.importProcessedScript_=function(a,b,c){goog.importScript_("",'goog.retrieveAndExec_("'+a+'", '+b+", "+c+");")},goog.queuedModules_=
[],goog.wrapModule_=function(a,b){return goog.LOAD_MODULE_USING_EVAL&&goog.isDef(goog.global.JSON)?"goog.loadModule("+goog.global.JSON.stringify(b+"\n//# sourceURL\x3d"+a+"\n")+");":'goog.loadModule(function(exports) {"use strict";'+b+"\n;return exports});\n//# sourceURL\x3d"+a+"\n"},goog.loadQueuedModules_=function(){var a=goog.queuedModules_.length;if(0>>0);goog.uidCounter_=0;goog.getHashCode=goog.getUid;
goog.removeHashCode=goog.removeUid;goog.cloneObject=function(a){var b=goog.typeOf(a);if("object"==b||"array"==b){if(a.clone)return a.clone();b="array"==b?[]:{};for(var c in a)b[c]=goog.cloneObject(a[c]);return b}return a};goog.bindNative_=function(a,b,c){return a.call.apply(a.bind,arguments)};
goog.bindJs_=function(a,b,c){if(!a)throw Error();if(2Number(a[1])?!1:b('(()\x3d\x3e{"use strict";class X{constructor(){if(new.target!\x3dString)throw 1;this.x\x3d42}}let q\x3dReflect.construct(X,[],String);if(q.x!\x3d42||!(q instanceof String))throw 1;for(const a of[2,3]){if(a\x3d\x3d2)continue;function f(z\x3d{a}){let a\x3d0;return z.a}{function f(){return 0;}}return f()\x3d\x3d3}})()')});
a("es6-impl",function(){return!0});a("es7",function(){return b("2 ** 2 \x3d\x3d 4")});a("es8",function(){return b("async () \x3d\x3e 1, true")});return c};goog.debug={};goog.debug.Error=function(a){if(Error.captureStackTrace)Error.captureStackTrace(this,goog.debug.Error);else{var b=Error().stack;b&&(this.stack=b)}a&&(this.message=String(a));this.reportErrorToServer=!0};goog.inherits(goog.debug.Error,Error);goog.debug.Error.prototype.name="CustomError";goog.dom={};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.string={};goog.string.DETECT_DOUBLE_ESCAPING=!1;goog.string.FORCE_NON_DOM_HTML_UNESCAPING=!1;goog.string.Unicode={NBSP:" "};goog.string.startsWith=function(a,b){return 0==a.lastIndexOf(b,0)};goog.string.endsWith=function(a,b){var c=a.length-b.length;return 0<=c&&a.indexOf(b,c)==c};goog.string.caseInsensitiveStartsWith=function(a,b){return 0==goog.string.caseInsensitiveCompare(b,a.substr(0,b.length))};
goog.string.caseInsensitiveEndsWith=function(a,b){return 0==goog.string.caseInsensitiveCompare(b,a.substr(a.length-b.length,b.length))};goog.string.caseInsensitiveEquals=function(a,b){return a.toLowerCase()==b.toLowerCase()};goog.string.subs=function(a,b){for(var c=a.split("%s"),d="",e=Array.prototype.slice.call(arguments,1);e.length&&1=a||""<=a&&"�">=a};goog.string.stripNewlines=function(a){return a.replace(/(\r\n|\r|\n)+/g," ")};goog.string.canonicalizeNewlines=function(a){return a.replace(/(\r\n|\r|\n)/g,"\n")};goog.string.normalizeWhitespace=function(a){return a.replace(/\xa0|\s/g," ")};
goog.string.normalizeSpaces=function(a){return a.replace(/\xa0|[ \t]+/g," ")};goog.string.collapseBreakingSpaces=function(a){return a.replace(/[\t\r\n ]+/g," ").replace(/^[\t\r\n ]+|[\t\r\n ]+$/g,"")};goog.string.trim=goog.TRUSTED_SITE&&String.prototype.trim?function(a){return a.trim()}:function(a){return a.replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")};goog.string.trimLeft=function(a){return a.replace(/^[\s\xa0]+/,"")};goog.string.trimRight=function(a){return a.replace(/[\s\xa0]+$/,"")};
goog.string.caseInsensitiveCompare=function(a,b){a=String(a).toLowerCase();b=String(b).toLowerCase();return a/g;goog.string.QUOT_RE_=/"/g;goog.string.SINGLE_QUOTE_RE_=/'/g;goog.string.NULL_RE_=/\x00/g;goog.string.E_RE_=/e/g;goog.string.ALL_RE_=goog.string.DETECT_DOUBLE_ESCAPING?/[\x00&<>"'e]/:/[\x00&<>"']/;goog.string.unescapeEntities=function(a){return goog.string.contains(a,"\x26")?!goog.string.FORCE_NON_DOM_HTML_UNESCAPING&&"document"in goog.global?goog.string.unescapeEntitiesUsingDom_(a):goog.string.unescapePureXmlEntities_(a):a};
goog.string.unescapeEntitiesWithDocument=function(a,b){return goog.string.contains(a,"\x26")?goog.string.unescapeEntitiesUsingDom_(a,b):a};
goog.string.unescapeEntitiesUsingDom_=function(a,b){var c={"\x26amp;":"\x26","\x26lt;":"\x3c","\x26gt;":"\x3e","\x26quot;":'"'};var d=b?b.createElement("div"):goog.global.document.createElement("div");return a.replace(goog.string.HTML_ENTITY_PATTERN_,function(a,b){var e=c[a];if(e)return e;"#"==b.charAt(0)&&(b=Number("0"+b.substr(1)),isNaN(b)||(e=String.fromCharCode(b)));e||(d.innerHTML=a+" ",e=d.firstChild.nodeValue.slice(0,-1));return c[a]=e})};
goog.string.unescapePureXmlEntities_=function(a){return a.replace(/&([^;]+);/g,function(a,c){switch(c){case "amp":return"\x26";case "lt":return"\x3c";case "gt":return"\x3e";case "quot":return'"';default:return"#"!=c.charAt(0)||(c=Number("0"+c.substr(1)),isNaN(c))?a:String.fromCharCode(c)}})};goog.string.HTML_ENTITY_PATTERN_=/&([^;\s<&]+);?/g;goog.string.whitespaceEscape=function(a,b){return goog.string.newLineToBr(a.replace(/ /g," \x26#160;"),b)};
goog.string.preserveSpaces=function(a){return a.replace(/(^|[\n ]) /g,"$1"+goog.string.Unicode.NBSP)};goog.string.stripQuotes=function(a,b){for(var c=b.length,d=0;db&&(a=a.substring(0,b-3)+"...");c&&(a=goog.string.htmlEscape(a));return a};
goog.string.truncateMiddle=function(a,b,c,d){c&&(a=goog.string.unescapeEntities(a));if(d&&a.length>b){d>b&&(d=b);var e=a.length-d;a=a.substring(0,b-d)+"..."+a.substring(e)}else a.length>b&&(d=Math.floor(b/2),e=a.length-d,a=a.substring(0,d+b%2)+"..."+a.substring(e));c&&(a=goog.string.htmlEscape(a));return a};goog.string.specialEscapeChars_={"\x00":"\\0","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\x0B":"\\x0B",'"':'\\"',"\\":"\\\\","\x3c":"\x3c"};goog.string.jsEscapeCache_={"'":"\\'"};
goog.string.quote=function(a){a=String(a);for(var b=['"'],c=0;ce?d:goog.string.escapeChar(d))}b.push('"');return b.join("")};goog.string.escapeString=function(a){for(var b=[],c=0;cb)var c=a;else{if(256>b){if(c="\\x",16>b||256b&&(c+="0");c+=b.toString(16).toUpperCase()}return goog.string.jsEscapeCache_[a]=c};goog.string.contains=function(a,b){return-1!=a.indexOf(b)};
goog.string.caseInsensitiveContains=function(a,b){return goog.string.contains(a.toLowerCase(),b.toLowerCase())};goog.string.countOf=function(a,b){return a&&b?a.split(b).length-1:0};goog.string.removeAt=function(a,b,c){var d=a;0<=b&&bb?1:0};goog.string.hashCode=function(a){for(var b=0,c=0;c>>0;return b};goog.string.uniqueStringCounter_=2147483648*Math.random()|0;goog.string.createUniqueString=function(){return"goog_"+goog.string.uniqueStringCounter_++};
goog.string.toNumber=function(a){var b=Number(a);return 0==b&&goog.string.isEmptyOrWhitespace(a)?NaN:b};goog.string.isLowerCamelCase=function(a){return/^[a-z]+([A-Z][a-z]*)*$/.test(a)};goog.string.isUpperCamelCase=function(a){return/^([A-Z][a-z]*)+$/.test(a)};goog.string.toCamelCase=function(a){return String(a).replace(/\-([a-z])/g,function(a,c){return c.toUpperCase()})};goog.string.toSelectorCase=function(a){return String(a).replace(/([A-Z])/g,"-$1").toLowerCase()};
goog.string.toTitleCase=function(a,b){b=goog.isString(b)?goog.string.regExpEscape(b):"\\s";return a.replace(new RegExp("(^"+(b?"|["+b+"]+":"")+")([a-z])","g"),function(a,b,e){return b+e.toUpperCase()})};goog.string.capitalize=function(a){return String(a.charAt(0)).toUpperCase()+String(a.substr(1)).toLowerCase()};goog.string.parseInt=function(a){isFinite(a)&&(a=String(a));return goog.isString(a)?/^\s*-?0x/i.test(a)?parseInt(a,16):parseInt(a,10):NaN};
goog.string.splitLimit=function(a,b,c){a=a.split(b);for(var d=[];0c&&(c=e)}return-1==c?a:a.slice(c+1)};
goog.string.editDistance=function(a,b){var c=[],d=[];if(a==b)return 0;if(!a.length||!b.length)return Math.max(a.length,b.length);for(var e=0;ec?Math.max(0,a.length+c):c;if(goog.isString(a))return goog.isString(b)&&1==b.length?a.indexOf(b,c):-1;for(;cc&&(c=Math.max(0,a.length+c));if(goog.isString(a))return goog.isString(b)&&1==b.length?a.lastIndexOf(b,c):-1;for(;0<=c;c--)if(c in a&&a[c]===b)return c;return-1};
goog.array.forEach=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.forEach)?function(a,b,c){goog.asserts.assert(null!=a.length);Array.prototype.forEach.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,f=0;fb?null:goog.isString(a)?a.charAt(b):a[b]};goog.array.findIndex=function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,f=0;fb?null:goog.isString(a)?a.charAt(b):a[b]};
goog.array.findIndexRight=function(a,b,c){var d=a.length,e=goog.isString(a)?a.split(""):a;for(--d;0<=d;d--)if(d in e&&b.call(c,e[d],d,a))return d;return-1};goog.array.contains=function(a,b){return 0<=goog.array.indexOf(a,b)};goog.array.isEmpty=function(a){return 0==a.length};goog.array.clear=function(a){if(!goog.isArray(a))for(var b=a.length-1;0<=b;b--)delete a[b];a.length=0};goog.array.insert=function(a,b){goog.array.contains(a,b)||a.push(b)};
goog.array.insertAt=function(a,b,c){goog.array.splice(a,c,0,b)};goog.array.insertArrayAt=function(a,b,c){goog.partial(goog.array.splice,a,c,0).apply(null,b)};goog.array.insertBefore=function(a,b,c){var d;2==arguments.length||0>(d=goog.array.indexOf(a,c))?a.push(b):goog.array.insertAt(a,b,d)};goog.array.remove=function(a,b){b=goog.array.indexOf(a,b);var c;(c=0<=b)&&goog.array.removeAt(a,b);return c};
goog.array.removeLast=function(a,b){b=goog.array.lastIndexOf(a,b);return 0<=b?(goog.array.removeAt(a,b),!0):!1};goog.array.removeAt=function(a,b){goog.asserts.assert(null!=a.length);return 1==Array.prototype.splice.call(a,b,1).length};goog.array.removeIf=function(a,b,c){b=goog.array.findIndex(a,b,c);return 0<=b?(goog.array.removeAt(a,b),!0):!1};goog.array.removeAllIf=function(a,b,c){var d=0;goog.array.forEachRight(a,function(e,f){b.call(c,e,f,a)&&goog.array.removeAt(a,f)&&d++});return d};
goog.array.concat=function(a){return Array.prototype.concat.apply([],arguments)};goog.array.join=function(a){return Array.prototype.concat.apply([],arguments)};goog.array.toArray=function(a){var b=a.length;if(0=arguments.length?Array.prototype.slice.call(a,b):Array.prototype.slice.call(a,b,c)};
goog.array.removeDuplicates=function(a,b,c){b=b||a;var d=function(a){return goog.isObject(a)?"o"+goog.getUid(a):(typeof a).charAt(0)+a};c=c||d;d={};for(var e=0,f=0;f>1;var l=c?b.call(e,a[k],k,a):b(d,a[k]);0b?1:ac?(goog.array.insertAt(a,b,-(c+1)),!0):!1};goog.array.binaryRemove=function(a,b,c){b=goog.array.binarySearch(a,b,c);return 0<=b?goog.array.removeAt(a,b):!1};
goog.array.bucket=function(a,b,c){for(var d={},e=0;ec*(f-e))return[];if(0f;a+=c)d.push(a);return d};
goog.array.repeat=function(a,b){for(var c=[],d=0;db&&Array.prototype.push.apply(a,a.splice(0,-b)));return a};goog.array.moveItem=function(a,b,c){goog.asserts.assert(0<=b&&bparseFloat(a))?String(b):a};
goog.userAgent.getVersionRegexResult_=function(){var a=goog.userAgent.getUserAgentString();if(goog.userAgent.GECKO)return/rv:([^\);]+)(\)|;)/.exec(a);if(goog.userAgent.EDGE)return/Edge\/([\d\.]+)/.exec(a);if(goog.userAgent.IE)return/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(a);if(goog.userAgent.WEBKIT)return/WebKit\/(\S+)/.exec(a);if(goog.userAgent.OPERA)return/(?:Version)[ \/]?(\S+)/.exec(a)};goog.userAgent.getDocumentMode_=function(){var a=goog.global.document;return a?a.documentMode:void 0};
goog.userAgent.VERSION=goog.userAgent.determineVersion_();goog.userAgent.compare=function(a,b){return goog.string.compareVersions(a,b)};goog.userAgent.isVersionOrHigherCache_={};goog.userAgent.isVersionOrHigher=function(a){return goog.userAgent.ASSUME_ANY_VERSION||goog.reflect.cache(goog.userAgent.isVersionOrHigherCache_,a,function(){return 0<=goog.string.compareVersions(goog.userAgent.VERSION,a)})};goog.userAgent.isVersion=goog.userAgent.isVersionOrHigher;
goog.userAgent.isDocumentModeOrHigher=function(a){return Number(goog.userAgent.DOCUMENT_MODE)>=a};goog.userAgent.isDocumentMode=goog.userAgent.isDocumentModeOrHigher;goog.userAgent.DOCUMENT_MODE=function(){var a=goog.global.document,b=goog.userAgent.getDocumentMode_();if(a&&goog.userAgent.IE)return b||("CSS1Compat"==a.compatMode?parseInt(goog.userAgent.VERSION,10):5)}();goog.dom.BrowserFeature={CAN_ADD_NAME_OR_TYPE_ATTRIBUTES:!goog.userAgent.IE||goog.userAgent.isDocumentModeOrHigher(9),CAN_USE_CHILDREN_ATTRIBUTE:!goog.userAgent.GECKO&&!goog.userAgent.IE||goog.userAgent.IE&&goog.userAgent.isDocumentModeOrHigher(9)||goog.userAgent.GECKO&&goog.userAgent.isVersionOrHigher("1.9.1"),CAN_USE_INNER_TEXT:goog.userAgent.IE&&!goog.userAgent.isVersionOrHigher("9"),CAN_USE_PARENT_ELEMENT_PROPERTY:goog.userAgent.IE||goog.userAgent.OPERA||goog.userAgent.WEBKIT,INNER_HTML_NEEDS_SCOPED_ELEMENT:goog.userAgent.IE,
LEGACY_IE_RANGES:goog.userAgent.IE&&!goog.userAgent.isDocumentModeOrHigher(9)};goog.dom.HtmlElement=function(){};goog.dom.TagName=function(a){this.tagName_=a};goog.dom.TagName.prototype.toString=function(){return this.tagName_};goog.dom.TagName.A=new goog.dom.TagName("A");goog.dom.TagName.ABBR=new goog.dom.TagName("ABBR");goog.dom.TagName.ACRONYM=new goog.dom.TagName("ACRONYM");goog.dom.TagName.ADDRESS=new goog.dom.TagName("ADDRESS");goog.dom.TagName.APPLET=new goog.dom.TagName("APPLET");goog.dom.TagName.AREA=new goog.dom.TagName("AREA");goog.dom.TagName.ARTICLE=new goog.dom.TagName("ARTICLE");
goog.dom.TagName.ASIDE=new goog.dom.TagName("ASIDE");goog.dom.TagName.AUDIO=new goog.dom.TagName("AUDIO");goog.dom.TagName.B=new goog.dom.TagName("B");goog.dom.TagName.BASE=new goog.dom.TagName("BASE");goog.dom.TagName.BASEFONT=new goog.dom.TagName("BASEFONT");goog.dom.TagName.BDI=new goog.dom.TagName("BDI");goog.dom.TagName.BDO=new goog.dom.TagName("BDO");goog.dom.TagName.BIG=new goog.dom.TagName("BIG");goog.dom.TagName.BLOCKQUOTE=new goog.dom.TagName("BLOCKQUOTE");goog.dom.TagName.BODY=new goog.dom.TagName("BODY");
goog.dom.TagName.BR=new goog.dom.TagName("BR");goog.dom.TagName.BUTTON=new goog.dom.TagName("BUTTON");goog.dom.TagName.CANVAS=new goog.dom.TagName("CANVAS");goog.dom.TagName.CAPTION=new goog.dom.TagName("CAPTION");goog.dom.TagName.CENTER=new goog.dom.TagName("CENTER");goog.dom.TagName.CITE=new goog.dom.TagName("CITE");goog.dom.TagName.CODE=new goog.dom.TagName("CODE");goog.dom.TagName.COL=new goog.dom.TagName("COL");goog.dom.TagName.COLGROUP=new goog.dom.TagName("COLGROUP");
goog.dom.TagName.COMMAND=new goog.dom.TagName("COMMAND");goog.dom.TagName.DATA=new goog.dom.TagName("DATA");goog.dom.TagName.DATALIST=new goog.dom.TagName("DATALIST");goog.dom.TagName.DD=new goog.dom.TagName("DD");goog.dom.TagName.DEL=new goog.dom.TagName("DEL");goog.dom.TagName.DETAILS=new goog.dom.TagName("DETAILS");goog.dom.TagName.DFN=new goog.dom.TagName("DFN");goog.dom.TagName.DIALOG=new goog.dom.TagName("DIALOG");goog.dom.TagName.DIR=new goog.dom.TagName("DIR");goog.dom.TagName.DIV=new goog.dom.TagName("DIV");
goog.dom.TagName.DL=new goog.dom.TagName("DL");goog.dom.TagName.DT=new goog.dom.TagName("DT");goog.dom.TagName.EM=new goog.dom.TagName("EM");goog.dom.TagName.EMBED=new goog.dom.TagName("EMBED");goog.dom.TagName.FIELDSET=new goog.dom.TagName("FIELDSET");goog.dom.TagName.FIGCAPTION=new goog.dom.TagName("FIGCAPTION");goog.dom.TagName.FIGURE=new goog.dom.TagName("FIGURE");goog.dom.TagName.FONT=new goog.dom.TagName("FONT");goog.dom.TagName.FOOTER=new goog.dom.TagName("FOOTER");goog.dom.TagName.FORM=new goog.dom.TagName("FORM");
goog.dom.TagName.FRAME=new goog.dom.TagName("FRAME");goog.dom.TagName.FRAMESET=new goog.dom.TagName("FRAMESET");goog.dom.TagName.H1=new goog.dom.TagName("H1");goog.dom.TagName.H2=new goog.dom.TagName("H2");goog.dom.TagName.H3=new goog.dom.TagName("H3");goog.dom.TagName.H4=new goog.dom.TagName("H4");goog.dom.TagName.H5=new goog.dom.TagName("H5");goog.dom.TagName.H6=new goog.dom.TagName("H6");goog.dom.TagName.HEAD=new goog.dom.TagName("HEAD");goog.dom.TagName.HEADER=new goog.dom.TagName("HEADER");
goog.dom.TagName.HGROUP=new goog.dom.TagName("HGROUP");goog.dom.TagName.HR=new goog.dom.TagName("HR");goog.dom.TagName.HTML=new goog.dom.TagName("HTML");goog.dom.TagName.I=new goog.dom.TagName("I");goog.dom.TagName.IFRAME=new goog.dom.TagName("IFRAME");goog.dom.TagName.IMG=new goog.dom.TagName("IMG");goog.dom.TagName.INPUT=new goog.dom.TagName("INPUT");goog.dom.TagName.INS=new goog.dom.TagName("INS");goog.dom.TagName.ISINDEX=new goog.dom.TagName("ISINDEX");goog.dom.TagName.KBD=new goog.dom.TagName("KBD");
goog.dom.TagName.KEYGEN=new goog.dom.TagName("KEYGEN");goog.dom.TagName.LABEL=new goog.dom.TagName("LABEL");goog.dom.TagName.LEGEND=new goog.dom.TagName("LEGEND");goog.dom.TagName.LI=new goog.dom.TagName("LI");goog.dom.TagName.LINK=new goog.dom.TagName("LINK");goog.dom.TagName.MAP=new goog.dom.TagName("MAP");goog.dom.TagName.MARK=new goog.dom.TagName("MARK");goog.dom.TagName.MATH=new goog.dom.TagName("MATH");goog.dom.TagName.MENU=new goog.dom.TagName("MENU");goog.dom.TagName.META=new goog.dom.TagName("META");
goog.dom.TagName.METER=new goog.dom.TagName("METER");goog.dom.TagName.NAV=new goog.dom.TagName("NAV");goog.dom.TagName.NOFRAMES=new goog.dom.TagName("NOFRAMES");goog.dom.TagName.NOSCRIPT=new goog.dom.TagName("NOSCRIPT");goog.dom.TagName.OBJECT=new goog.dom.TagName("OBJECT");goog.dom.TagName.OL=new goog.dom.TagName("OL");goog.dom.TagName.OPTGROUP=new goog.dom.TagName("OPTGROUP");goog.dom.TagName.OPTION=new goog.dom.TagName("OPTION");goog.dom.TagName.OUTPUT=new goog.dom.TagName("OUTPUT");
goog.dom.TagName.P=new goog.dom.TagName("P");goog.dom.TagName.PARAM=new goog.dom.TagName("PARAM");goog.dom.TagName.PRE=new goog.dom.TagName("PRE");goog.dom.TagName.PROGRESS=new goog.dom.TagName("PROGRESS");goog.dom.TagName.Q=new goog.dom.TagName("Q");goog.dom.TagName.RP=new goog.dom.TagName("RP");goog.dom.TagName.RT=new goog.dom.TagName("RT");goog.dom.TagName.RUBY=new goog.dom.TagName("RUBY");goog.dom.TagName.S=new goog.dom.TagName("S");goog.dom.TagName.SAMP=new goog.dom.TagName("SAMP");
goog.dom.TagName.SCRIPT=new goog.dom.TagName("SCRIPT");goog.dom.TagName.SECTION=new goog.dom.TagName("SECTION");goog.dom.TagName.SELECT=new goog.dom.TagName("SELECT");goog.dom.TagName.SMALL=new goog.dom.TagName("SMALL");goog.dom.TagName.SOURCE=new goog.dom.TagName("SOURCE");goog.dom.TagName.SPAN=new goog.dom.TagName("SPAN");goog.dom.TagName.STRIKE=new goog.dom.TagName("STRIKE");goog.dom.TagName.STRONG=new goog.dom.TagName("STRONG");goog.dom.TagName.STYLE=new goog.dom.TagName("STYLE");
goog.dom.TagName.SUB=new goog.dom.TagName("SUB");goog.dom.TagName.SUMMARY=new goog.dom.TagName("SUMMARY");goog.dom.TagName.SUP=new goog.dom.TagName("SUP");goog.dom.TagName.SVG=new goog.dom.TagName("SVG");goog.dom.TagName.TABLE=new goog.dom.TagName("TABLE");goog.dom.TagName.TBODY=new goog.dom.TagName("TBODY");goog.dom.TagName.TD=new goog.dom.TagName("TD");goog.dom.TagName.TEMPLATE=new goog.dom.TagName("TEMPLATE");goog.dom.TagName.TEXTAREA=new goog.dom.TagName("TEXTAREA");goog.dom.TagName.TFOOT=new goog.dom.TagName("TFOOT");
goog.dom.TagName.TH=new goog.dom.TagName("TH");goog.dom.TagName.THEAD=new goog.dom.TagName("THEAD");goog.dom.TagName.TIME=new goog.dom.TagName("TIME");goog.dom.TagName.TITLE=new goog.dom.TagName("TITLE");goog.dom.TagName.TR=new goog.dom.TagName("TR");goog.dom.TagName.TRACK=new goog.dom.TagName("TRACK");goog.dom.TagName.TT=new goog.dom.TagName("TT");goog.dom.TagName.U=new goog.dom.TagName("U");goog.dom.TagName.UL=new goog.dom.TagName("UL");goog.dom.TagName.VAR=new goog.dom.TagName("VAR");
goog.dom.TagName.VIDEO=new goog.dom.TagName("VIDEO");goog.dom.TagName.WBR=new goog.dom.TagName("WBR");goog.dom.asserts={};goog.dom.asserts.assertIsLocation=function(a){if(goog.asserts.ENABLE_ASSERTS){var b=goog.dom.asserts.getWindow_(a);"undefined"!=typeof b.Location&&"undefined"!=typeof b.Element&&goog.asserts.assert(a&&(a instanceof b.Location||!(a instanceof b.Element)),"Argument is not a Location (or a non-Element mock); got: %s",goog.dom.asserts.debugStringForType_(a))}return a};
goog.dom.asserts.assertIsHTMLAnchorElement=function(a){if(goog.asserts.ENABLE_ASSERTS){var b=goog.dom.asserts.getWindow_(a);"undefined"!=typeof b.HTMLAnchorElement&&"undefined"!=typeof b.Location&&"undefined"!=typeof b.Element&&goog.asserts.assert(a&&(a instanceof b.HTMLAnchorElement||!(a instanceof b.Location||a instanceof b.Element)),"Argument is not a HTMLAnchorElement (or a non-Element mock); got: %s",goog.dom.asserts.debugStringForType_(a))}return a};
goog.dom.asserts.assertIsHTMLLinkElement=function(a){if(goog.asserts.ENABLE_ASSERTS){var b=goog.dom.asserts.getWindow_(a);"undefined"!=typeof b.HTMLLinkElement&&"undefined"!=typeof b.Location&&"undefined"!=typeof b.Element&&goog.asserts.assert(a&&(a instanceof b.HTMLLinkElement||!(a instanceof b.Location||a instanceof b.Element)),"Argument is not a HTMLLinkElement (or a non-Element mock); got: %s",goog.dom.asserts.debugStringForType_(a))}return a};
goog.dom.asserts.assertIsHTMLImageElement=function(a){if(goog.asserts.ENABLE_ASSERTS){var b=goog.dom.asserts.getWindow_(a);"undefined"!=typeof b.HTMLImageElement&&"undefined"!=typeof b.Element&&goog.asserts.assert(a&&(a instanceof b.HTMLImageElement||!(a instanceof b.Element)),"Argument is not a HTMLImageElement (or a non-Element mock); got: %s",goog.dom.asserts.debugStringForType_(a))}return a};
goog.dom.asserts.assertIsHTMLEmbedElement=function(a){if(goog.asserts.ENABLE_ASSERTS){var b=goog.dom.asserts.getWindow_(a);"undefined"!=typeof b.HTMLEmbedElement&&"undefined"!=typeof b.Element&&goog.asserts.assert(a&&(a instanceof b.HTMLEmbedElement||!(a instanceof b.Element)),"Argument is not a HTMLEmbedElement (or a non-Element mock); got: %s",goog.dom.asserts.debugStringForType_(a))}return a};
goog.dom.asserts.assertIsHTMLFrameElement=function(a){if(goog.asserts.ENABLE_ASSERTS){var b=goog.dom.asserts.getWindow_(a);"undefined"!=typeof b.HTMLFrameElement&&"undefined"!=typeof b.Element&&goog.asserts.assert(a&&(a instanceof b.HTMLFrameElement||!(a instanceof b.Element)),"Argument is not a HTMLFrameElement (or a non-Element mock); got: %s",goog.dom.asserts.debugStringForType_(a))}return a};
goog.dom.asserts.assertIsHTMLIFrameElement=function(a){if(goog.asserts.ENABLE_ASSERTS){var b=goog.dom.asserts.getWindow_(a);"undefined"!=typeof b.HTMLIFrameElement&&"undefined"!=typeof b.Element&&goog.asserts.assert(a&&(a instanceof b.HTMLIFrameElement||!(a instanceof b.Element)),"Argument is not a HTMLIFrameElement (or a non-Element mock); got: %s",goog.dom.asserts.debugStringForType_(a))}return a};
goog.dom.asserts.assertIsHTMLObjectElement=function(a){if(goog.asserts.ENABLE_ASSERTS){var b=goog.dom.asserts.getWindow_(a);"undefined"!=typeof b.HTMLObjectElement&&"undefined"!=typeof b.Element&&goog.asserts.assert(a&&(a instanceof b.HTMLObjectElement||!(a instanceof b.Element)),"Argument is not a HTMLObjectElement (or a non-Element mock); got: %s",goog.dom.asserts.debugStringForType_(a))}return a};
goog.dom.asserts.assertIsHTMLScriptElement=function(a){if(goog.asserts.ENABLE_ASSERTS){var b=goog.dom.asserts.getWindow_(a);"undefined"!=typeof b.HTMLScriptElement&&"undefined"!=typeof b.Element&&goog.asserts.assert(a&&(a instanceof b.HTMLScriptElement||!(a instanceof b.Element)),"Argument is not a HTMLScriptElement (or a non-Element mock); got: %s",goog.dom.asserts.debugStringForType_(a))}return a};
goog.dom.asserts.debugStringForType_=function(a){return goog.isObject(a)?a.constructor.displayName||a.constructor.name||Object.prototype.toString.call(a):void 0===a?"undefined":null===a?"null":typeof a};goog.dom.asserts.getWindow_=function(a){return(a=a&&a.ownerDocument)&&(a.defaultView||a.parentWindow)||goog.global};goog.dom.tags={};goog.dom.tags.VOID_TAGS_={area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0};goog.dom.tags.isVoidTag=function(a){return!0===goog.dom.tags.VOID_TAGS_[a]};goog.string.TypedString=function(){};goog.string.Const=function(){this.stringConstValueWithSecurityContract__googStringSecurityPrivate_="";this.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_=goog.string.Const.TYPE_MARKER_};goog.string.Const.prototype.implementsGoogStringTypedString=!0;goog.string.Const.prototype.getTypedStringValue=function(){return this.stringConstValueWithSecurityContract__googStringSecurityPrivate_};
goog.string.Const.prototype.toString=function(){return"Const{"+this.stringConstValueWithSecurityContract__googStringSecurityPrivate_+"}"};goog.string.Const.unwrap=function(a){if(a instanceof goog.string.Const&&a.constructor===goog.string.Const&&a.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_===goog.string.Const.TYPE_MARKER_)return a.stringConstValueWithSecurityContract__googStringSecurityPrivate_;goog.asserts.fail("expected object of type Const, got '"+a+"'");return"type_error:Const"};
goog.string.Const.from=function(a){return goog.string.Const.create__googStringSecurityPrivate_(a)};goog.string.Const.TYPE_MARKER_={};goog.string.Const.create__googStringSecurityPrivate_=function(a){var b=new goog.string.Const;b.stringConstValueWithSecurityContract__googStringSecurityPrivate_=a;return b};goog.string.Const.EMPTY=goog.string.Const.from("");goog.html={};goog.html.SafeScript=function(){this.privateDoNotAccessOrElseSafeScriptWrappedValue_="";this.SAFE_SCRIPT_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_};goog.html.SafeScript.prototype.implementsGoogStringTypedString=!0;goog.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={};goog.html.SafeScript.fromConstant=function(a){a=goog.string.Const.unwrap(a);return 0===a.length?goog.html.SafeScript.EMPTY:goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(a)};
goog.html.SafeScript.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeScriptWrappedValue_};goog.DEBUG&&(goog.html.SafeScript.prototype.toString=function(){return"SafeScript{"+this.privateDoNotAccessOrElseSafeScriptWrappedValue_+"}"});
goog.html.SafeScript.unwrap=function(a){if(a instanceof goog.html.SafeScript&&a.constructor===goog.html.SafeScript&&a.SAFE_SCRIPT_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return a.privateDoNotAccessOrElseSafeScriptWrappedValue_;goog.asserts.fail("expected object of type SafeScript, got '"+a+"' of type "+goog.typeOf(a));return"type_error:SafeScript"};goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse=function(a){return(new goog.html.SafeScript).initSecurityPrivateDoNotAccessOrElse_(a)};
goog.html.SafeScript.prototype.initSecurityPrivateDoNotAccessOrElse_=function(a){this.privateDoNotAccessOrElseSafeScriptWrappedValue_=a;return this};goog.html.SafeScript.EMPTY=goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse("");goog.fs={};goog.fs.url={};goog.fs.url.createObjectUrl=function(a){return goog.fs.url.getUrlObject_().createObjectURL(a)};goog.fs.url.revokeObjectUrl=function(a){goog.fs.url.getUrlObject_().revokeObjectURL(a)};goog.fs.url.getUrlObject_=function(){var a=goog.fs.url.findUrlObject_();if(null!=a)return a;throw Error("This browser doesn't seem to support blob URLs");};
goog.fs.url.findUrlObject_=function(){return goog.isDef(goog.global.URL)&&goog.isDef(goog.global.URL.createObjectURL)?goog.global.URL:goog.isDef(goog.global.webkitURL)&&goog.isDef(goog.global.webkitURL.createObjectURL)?goog.global.webkitURL:goog.isDef(goog.global.createObjectURL)?goog.global:null};goog.fs.url.browserSupportsObjectUrls=function(){return null!=goog.fs.url.findUrlObject_()};goog.i18n={};goog.i18n.bidi={};goog.i18n.bidi.FORCE_RTL=!1;
goog.i18n.bidi.IS_RTL=goog.i18n.bidi.FORCE_RTL||("ar"==goog.LOCALE.substring(0,2).toLowerCase()||"fa"==goog.LOCALE.substring(0,2).toLowerCase()||"he"==goog.LOCALE.substring(0,2).toLowerCase()||"iw"==goog.LOCALE.substring(0,2).toLowerCase()||"ps"==goog.LOCALE.substring(0,2).toLowerCase()||"sd"==goog.LOCALE.substring(0,2).toLowerCase()||"ug"==goog.LOCALE.substring(0,2).toLowerCase()||"ur"==goog.LOCALE.substring(0,2).toLowerCase()||"yi"==goog.LOCALE.substring(0,2).toLowerCase())&&(2==goog.LOCALE.length||
"-"==goog.LOCALE.substring(2,3)||"_"==goog.LOCALE.substring(2,3))||3<=goog.LOCALE.length&&"ckb"==goog.LOCALE.substring(0,3).toLowerCase()&&(3==goog.LOCALE.length||"-"==goog.LOCALE.substring(3,4)||"_"==goog.LOCALE.substring(3,4));goog.i18n.bidi.Format={LRE:"",RLE:"",PDF:"",LRM:"",RLM:""};goog.i18n.bidi.Dir={LTR:1,RTL:-1,NEUTRAL:0};goog.i18n.bidi.RIGHT="right";goog.i18n.bidi.LEFT="left";goog.i18n.bidi.I18N_RIGHT=goog.i18n.bidi.IS_RTL?goog.i18n.bidi.LEFT:goog.i18n.bidi.RIGHT;
goog.i18n.bidi.I18N_LEFT=goog.i18n.bidi.IS_RTL?goog.i18n.bidi.RIGHT:goog.i18n.bidi.LEFT;goog.i18n.bidi.toDir=function(a,b){return"number"==typeof a?0a?goog.i18n.bidi.Dir.RTL:b?null:goog.i18n.bidi.Dir.NEUTRAL:null==a?null:a?goog.i18n.bidi.Dir.RTL:goog.i18n.bidi.Dir.LTR};goog.i18n.bidi.ltrChars_="A-Za-zÀ-ÖØ-öø-ʸ̀-ࠀ-Ⰰ-︀--";goog.i18n.bidi.rtlChars_="֑-ۯۺ-߿יִ-﷿ﹰ-ﻼ";goog.i18n.bidi.htmlSkipReg_=/<[^>]*>|&[^;]+;/g;
goog.i18n.bidi.stripHtmlIfNeeded_=function(a,b){return b?a.replace(goog.i18n.bidi.htmlSkipReg_,""):a};goog.i18n.bidi.rtlCharReg_=new RegExp("["+goog.i18n.bidi.rtlChars_+"]");goog.i18n.bidi.ltrCharReg_=new RegExp("["+goog.i18n.bidi.ltrChars_+"]");goog.i18n.bidi.hasAnyRtl=function(a,b){return goog.i18n.bidi.rtlCharReg_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a,b))};goog.i18n.bidi.hasRtlChar=goog.i18n.bidi.hasAnyRtl;
goog.i18n.bidi.hasAnyLtr=function(a,b){return goog.i18n.bidi.ltrCharReg_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a,b))};goog.i18n.bidi.ltrRe_=new RegExp("^["+goog.i18n.bidi.ltrChars_+"]");goog.i18n.bidi.rtlRe_=new RegExp("^["+goog.i18n.bidi.rtlChars_+"]");goog.i18n.bidi.isRtlChar=function(a){return goog.i18n.bidi.rtlRe_.test(a)};goog.i18n.bidi.isLtrChar=function(a){return goog.i18n.bidi.ltrRe_.test(a)};goog.i18n.bidi.isNeutralChar=function(a){return!goog.i18n.bidi.isLtrChar(a)&&!goog.i18n.bidi.isRtlChar(a)};
goog.i18n.bidi.ltrDirCheckRe_=new RegExp("^[^"+goog.i18n.bidi.rtlChars_+"]*["+goog.i18n.bidi.ltrChars_+"]");goog.i18n.bidi.rtlDirCheckRe_=new RegExp("^[^"+goog.i18n.bidi.ltrChars_+"]*["+goog.i18n.bidi.rtlChars_+"]");goog.i18n.bidi.startsWithRtl=function(a,b){return goog.i18n.bidi.rtlDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a,b))};goog.i18n.bidi.isRtlText=goog.i18n.bidi.startsWithRtl;
goog.i18n.bidi.startsWithLtr=function(a,b){return goog.i18n.bidi.ltrDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a,b))};goog.i18n.bidi.isLtrText=goog.i18n.bidi.startsWithLtr;goog.i18n.bidi.isRequiredLtrRe_=/^http:\/\/.*/;goog.i18n.bidi.isNeutralText=function(a,b){a=goog.i18n.bidi.stripHtmlIfNeeded_(a,b);return goog.i18n.bidi.isRequiredLtrRe_.test(a)||!goog.i18n.bidi.hasAnyLtr(a)&&!goog.i18n.bidi.hasAnyRtl(a)};
goog.i18n.bidi.ltrExitDirCheckRe_=new RegExp("["+goog.i18n.bidi.ltrChars_+"][^"+goog.i18n.bidi.rtlChars_+"]*$");goog.i18n.bidi.rtlExitDirCheckRe_=new RegExp("["+goog.i18n.bidi.rtlChars_+"][^"+goog.i18n.bidi.ltrChars_+"]*$");goog.i18n.bidi.endsWithLtr=function(a,b){return goog.i18n.bidi.ltrExitDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a,b))};goog.i18n.bidi.isLtrExitText=goog.i18n.bidi.endsWithLtr;
goog.i18n.bidi.endsWithRtl=function(a,b){return goog.i18n.bidi.rtlExitDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a,b))};goog.i18n.bidi.isRtlExitText=goog.i18n.bidi.endsWithRtl;goog.i18n.bidi.rtlLocalesRe_=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Arab|Hebr|Thaa|Nkoo|Tfng))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;goog.i18n.bidi.isRtlLanguage=function(a){return goog.i18n.bidi.rtlLocalesRe_.test(a)};goog.i18n.bidi.bracketGuardTextRe_=/(\(.*?\)+)|(\[.*?\]+)|(\{.*?\}+)|(<.*?>+)/g;
goog.i18n.bidi.guardBracketInText=function(a,b){b=(void 0===b?goog.i18n.bidi.hasAnyRtl(a):b)?goog.i18n.bidi.Format.RLM:goog.i18n.bidi.Format.LRM;return a.replace(goog.i18n.bidi.bracketGuardTextRe_,b+"$\x26"+b)};goog.i18n.bidi.enforceRtlInHtml=function(a){return"\x3c"==a.charAt(0)?a.replace(/<\w+/,"$\x26 dir\x3drtl"):"\n\x3cspan dir\x3drtl\x3e"+a+"\x3c/span\x3e"};goog.i18n.bidi.enforceRtlInText=function(a){return goog.i18n.bidi.Format.RLE+a+goog.i18n.bidi.Format.PDF};
goog.i18n.bidi.enforceLtrInHtml=function(a){return"\x3c"==a.charAt(0)?a.replace(/<\w+/,"$\x26 dir\x3dltr"):"\n\x3cspan dir\x3dltr\x3e"+a+"\x3c/span\x3e"};goog.i18n.bidi.enforceLtrInText=function(a){return goog.i18n.bidi.Format.LRE+a+goog.i18n.bidi.Format.PDF};goog.i18n.bidi.dimensionsRe_=/:\s*([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)/g;goog.i18n.bidi.leftRe_=/left/gi;goog.i18n.bidi.rightRe_=/right/gi;goog.i18n.bidi.tempRe_=/%%%%/g;
goog.i18n.bidi.mirrorCSS=function(a){return a.replace(goog.i18n.bidi.dimensionsRe_,":$1 $4 $3 $2").replace(goog.i18n.bidi.leftRe_,"%%%%").replace(goog.i18n.bidi.rightRe_,goog.i18n.bidi.LEFT).replace(goog.i18n.bidi.tempRe_,goog.i18n.bidi.RIGHT)};goog.i18n.bidi.doubleQuoteSubstituteRe_=/([\u0591-\u05f2])"/g;goog.i18n.bidi.singleQuoteSubstituteRe_=/([\u0591-\u05f2])'/g;
goog.i18n.bidi.normalizeHebrewQuote=function(a){return a.replace(goog.i18n.bidi.doubleQuoteSubstituteRe_,"$1״").replace(goog.i18n.bidi.singleQuoteSubstituteRe_,"$1׳")};goog.i18n.bidi.wordSeparatorRe_=/\s+/;goog.i18n.bidi.hasNumeralsRe_=/[\d\u06f0-\u06f9]/;goog.i18n.bidi.rtlDetectionThreshold_=.4;
goog.i18n.bidi.estimateDirection=function(a,b){var c=0,d=0,e=!1;a=goog.i18n.bidi.stripHtmlIfNeeded_(a,b).split(goog.i18n.bidi.wordSeparatorRe_);for(b=0;bgoog.i18n.bidi.rtlDetectionThreshold_?goog.i18n.bidi.Dir.RTL:goog.i18n.bidi.Dir.LTR};
goog.i18n.bidi.detectRtlDirectionality=function(a,b){return goog.i18n.bidi.estimateDirection(a,b)==goog.i18n.bidi.Dir.RTL};goog.i18n.bidi.setElementDirAndAlign=function(a,b){a&&(b=goog.i18n.bidi.toDir(b))&&(a.style.textAlign=b==goog.i18n.bidi.Dir.RTL?goog.i18n.bidi.RIGHT:goog.i18n.bidi.LEFT,a.dir=b==goog.i18n.bidi.Dir.RTL?"rtl":"ltr")};
goog.i18n.bidi.setElementDirByTextDirectionality=function(a,b){switch(goog.i18n.bidi.estimateDirection(b)){case goog.i18n.bidi.Dir.LTR:a.dir="ltr";break;case goog.i18n.bidi.Dir.RTL:a.dir="rtl";break;default:a.removeAttribute("dir")}};goog.i18n.bidi.DirectionalString=function(){};goog.html.TrustedResourceUrl=function(){this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_="";this.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_};goog.html.TrustedResourceUrl.prototype.implementsGoogStringTypedString=!0;goog.html.TrustedResourceUrl.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_};
goog.html.TrustedResourceUrl.prototype.implementsGoogI18nBidiDirectionalString=!0;goog.html.TrustedResourceUrl.prototype.getDirection=function(){return goog.i18n.bidi.Dir.LTR};goog.DEBUG&&(goog.html.TrustedResourceUrl.prototype.toString=function(){return"TrustedResourceUrl{"+this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_+"}"});
goog.html.TrustedResourceUrl.unwrap=function(a){if(a instanceof goog.html.TrustedResourceUrl&&a.constructor===goog.html.TrustedResourceUrl&&a.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return a.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_;goog.asserts.fail("expected object of type TrustedResourceUrl, got '"+a+"' of type "+goog.typeOf(a));return"type_error:TrustedResourceUrl"};
goog.html.TrustedResourceUrl.format=function(a,b){a=goog.html.TrustedResourceUrl.format_(a,b);return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(a)};
goog.html.TrustedResourceUrl.format_=function(a,b){var c=goog.string.Const.unwrap(a);if(!goog.html.TrustedResourceUrl.BASE_URL_.test(c))throw Error("Invalid TrustedResourceUrl format: "+c);return c.replace(goog.html.TrustedResourceUrl.FORMAT_MARKER_,function(a,e){if(!Object.prototype.hasOwnProperty.call(b,e))throw Error('Found marker, "'+e+'", in format string, "'+c+'", but no valid label mapping found in args: '+JSON.stringify(b));a=b[e];return a instanceof goog.string.Const?goog.string.Const.unwrap(a):
encodeURIComponent(String(a))})};goog.html.TrustedResourceUrl.FORMAT_MARKER_=/%{(\w+)}/g;goog.html.TrustedResourceUrl.BASE_URL_=/^(?:https:)?\/\/[0-9a-z.:[\]-]+\/|^\/[^\/\\]|^about:blank(#|$)/i;goog.html.TrustedResourceUrl.formatWithParams=function(a,b,c){a=goog.html.TrustedResourceUrl.format_(a,b);b=/\?/.test(a)?"\x26":"?";for(var d in c)null!=c[d]&&(a+=b+encodeURIComponent(d)+"\x3d"+encodeURIComponent(String(c[d])),b="\x26");return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(a)};
goog.html.TrustedResourceUrl.fromConstant=function(a){return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(goog.string.Const.unwrap(a))};goog.html.TrustedResourceUrl.fromConstants=function(a){for(var b="",c=0;c]/.test(a),"Forbidden characters in style string: "+a)};goog.html.SafeStyle.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeStyleWrappedValue_};goog.DEBUG&&(goog.html.SafeStyle.prototype.toString=function(){return"SafeStyle{"+this.privateDoNotAccessOrElseSafeStyleWrappedValue_+"}"});
goog.html.SafeStyle.unwrap=function(a){if(a instanceof goog.html.SafeStyle&&a.constructor===goog.html.SafeStyle&&a.SAFE_STYLE_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return a.privateDoNotAccessOrElseSafeStyleWrappedValue_;goog.asserts.fail("expected object of type SafeStyle, got '"+a+"' of type "+goog.typeOf(a));return"type_error:SafeStyle"};goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse=function(a){return(new goog.html.SafeStyle).initSecurityPrivateDoNotAccessOrElse_(a)};
goog.html.SafeStyle.prototype.initSecurityPrivateDoNotAccessOrElse_=function(a){this.privateDoNotAccessOrElseSafeStyleWrappedValue_=a;return this};goog.html.SafeStyle.EMPTY=goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse("");goog.html.SafeStyle.INNOCUOUS_STRING="zClosurez";
goog.html.SafeStyle.create=function(a){var b="",c;for(c in a){if(!/^[-_a-zA-Z0-9]+$/.test(c))throw Error("Name allows only [-_a-zA-Z0-9], got: "+c);var d=a[c];null!=d&&(d=goog.isArray(d)?goog.array.map(d,goog.html.SafeStyle.sanitizePropertyValue_).join(" "):goog.html.SafeStyle.sanitizePropertyValue_(d),b+=c+":"+d+";")}if(!b)return goog.html.SafeStyle.EMPTY;goog.html.SafeStyle.checkStyle_(b);return goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(b)};
goog.html.SafeStyle.sanitizePropertyValue_=function(a){if(a instanceof goog.html.SafeUrl)return'url("'+goog.html.SafeUrl.unwrap(a).replace(/+~[\]()=^$|]+$/.test(c))throw Error("Selector allows only [-_a-zA-Z0-9#.:* ,\x3e+~[\\]()\x3d^$|] and strings, got: "+a);if(!goog.html.SafeStyleSheet.hasBalancedBrackets_(c))throw Error("() and [] in selector must be balanced, got: "+a);b instanceof goog.html.SafeStyle||(b=goog.html.SafeStyle.create(b));
a=a+"{"+goog.html.SafeStyle.unwrap(b)+"}";return goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(a)};goog.html.SafeStyleSheet.hasBalancedBrackets_=function(a){for(var b={"(":")","[":"]"},c=[],d=0;da*b?a+b:a};goog.math.lerp=function(a,b,c){return a+c*(b-a)};goog.math.nearlyEquals=function(a,b,c){return Math.abs(a-b)<=(c||1E-6)};goog.math.standardAngle=function(a){return goog.math.modulo(a,360)};
goog.math.standardAngleInRadians=function(a){return goog.math.modulo(a,2*Math.PI)};goog.math.toRadians=function(a){return a*Math.PI/180};goog.math.toDegrees=function(a){return 180*a/Math.PI};goog.math.angleDx=function(a,b){return b*Math.cos(goog.math.toRadians(a))};goog.math.angleDy=function(a,b){return b*Math.sin(goog.math.toRadians(a))};goog.math.angle=function(a,b,c,d){return goog.math.standardAngle(goog.math.toDegrees(Math.atan2(d-b,c-a)))};
goog.math.angleDifference=function(a,b){a=goog.math.standardAngle(b)-goog.math.standardAngle(a);180=a&&(a=360+a);return a};goog.math.sign=function(a){return 0a?-1:a};
goog.math.longestCommonSubsequence=function(a,b,c,d){c=c||function(a,b){return a==b};d=d||function(b,c){return a[b]};for(var e=a.length,f=b.length,g=[],h=0;hg[h][k-1]?h--:k--;return l};
goog.math.sum=function(a){return goog.array.reduce(arguments,function(a,c){return a+c},0)};goog.math.average=function(a){return goog.math.sum.apply(null,arguments)/arguments.length};goog.math.sampleVariance=function(a){var b=arguments.length;if(2>b)return 0;var c=goog.math.average.apply(null,arguments);return goog.math.sum.apply(null,goog.array.map(arguments,function(a){return Math.pow(a-c,2)}))/(b-1)};goog.math.standardDeviation=function(a){return Math.sqrt(goog.math.sampleVariance.apply(null,arguments))};
goog.math.isInt=function(a){return isFinite(a)&&0==a%1};goog.math.isFiniteNumber=function(a){return isFinite(a)};goog.math.isNegativeZero=function(a){return 0==a&&0>1/a};goog.math.log10Floor=function(a){if(0a?1:0)}return 0==a?-Infinity:NaN};goog.math.safeFloor=function(a,b){goog.asserts.assert(!goog.isDef(b)||0a.aspectRatio()?a.width/this.width:a.height/this.height;return this.scale(a)};goog.dom.ASSUME_QUIRKS_MODE=!1;goog.dom.ASSUME_STANDARDS_MODE=!1;goog.dom.COMPAT_MODE_KNOWN_=goog.dom.ASSUME_QUIRKS_MODE||goog.dom.ASSUME_STANDARDS_MODE;goog.dom.getDomHelper=function(a){return a?new goog.dom.DomHelper(goog.dom.getOwnerDocument(a)):goog.dom.defaultDomHelper_||(goog.dom.defaultDomHelper_=new goog.dom.DomHelper)};goog.dom.getDocument=function(){return document};goog.dom.getElement=function(a){return goog.dom.getElementHelper_(document,a)};
goog.dom.getElementHelper_=function(a,b){return goog.isString(b)?a.getElementById(b):b};goog.dom.getRequiredElement=function(a){return goog.dom.getRequiredElementHelper_(document,a)};goog.dom.getRequiredElementHelper_=function(a,b){goog.asserts.assertString(b);a=goog.dom.getElementHelper_(a,b);return a=goog.asserts.assertElement(a,"No element found with id: "+b)};goog.dom.$=goog.dom.getElement;goog.dom.getElementsByTagName=function(a,b){return(b||document).getElementsByTagName(String(a))};
goog.dom.getElementsByTagNameAndClass=function(a,b,c){return goog.dom.getElementsByTagNameAndClass_(document,a,b,c)};goog.dom.getElementByTagNameAndClass=function(a,b,c){return goog.dom.getElementByTagNameAndClass_(document,a,b,c)};goog.dom.getElementsByClass=function(a,b){var c=b||document;return goog.dom.canUseQuerySelector_(c)?c.querySelectorAll("."+a):goog.dom.getElementsByTagNameAndClass_(document,"*",a,b)};
goog.dom.getElementByClass=function(a,b){var c=b||document;return(c.getElementsByClassName?c.getElementsByClassName(a)[0]:goog.dom.getElementByTagNameAndClass_(document,"*",a,b))||null};goog.dom.getRequiredElementByClass=function(a,b){b=goog.dom.getElementByClass(a,b);return goog.asserts.assert(b,"No element found with className: "+a)};goog.dom.canUseQuerySelector_=function(a){return!(!a.querySelectorAll||!a.querySelector)};
goog.dom.getElementsByTagNameAndClass_=function(a,b,c,d){a=d||a;b=b&&"*"!=b?String(b).toUpperCase():"";if(goog.dom.canUseQuerySelector_(a)&&(b||c))return a.querySelectorAll(b+(c?"."+c:""));if(c&&a.getElementsByClassName){a=a.getElementsByClassName(c);if(b){d={};for(var e=0,f=0,g;g=a[f];f++)b==g.nodeName&&(d[e++]=g);d.length=e;return d}return a}a=a.getElementsByTagName(b||"*");if(c){d={};for(f=e=0;g=a[f];f++)b=g.className,"function"==typeof b.split&&goog.array.contains(b.split(/\s+/),c)&&(d[e++]=g);
d.length=e;return d}return a};goog.dom.getElementByTagNameAndClass_=function(a,b,c,d){var e=d||a,f=b&&"*"!=b?String(b).toUpperCase():"";return goog.dom.canUseQuerySelector_(e)&&(f||c)?e.querySelector(f+(c?"."+c:"")):goog.dom.getElementsByTagNameAndClass_(a,b,c,d)[0]||null};goog.dom.$$=goog.dom.getElementsByTagNameAndClass;
goog.dom.setProperties=function(a,b){goog.object.forEach(b,function(b,d){b&&b.implementsGoogStringTypedString&&(b=b.getTypedStringValue());"style"==d?a.style.cssText=b:"class"==d?a.className=b:"for"==d?a.htmlFor=b:goog.dom.DIRECT_ATTRIBUTE_MAP_.hasOwnProperty(d)?a.setAttribute(goog.dom.DIRECT_ATTRIBUTE_MAP_[d],b):goog.string.startsWith(d,"aria-")||goog.string.startsWith(d,"data-")?a.setAttribute(d,b):a[d]=b})};
goog.dom.DIRECT_ATTRIBUTE_MAP_={cellpadding:"cellPadding",cellspacing:"cellSpacing",colspan:"colSpan",frameborder:"frameBorder",height:"height",maxlength:"maxLength",nonce:"nonce",role:"role",rowspan:"rowSpan",type:"type",usemap:"useMap",valign:"vAlign",width:"width"};goog.dom.getViewportSize=function(a){return goog.dom.getViewportSize_(a||window)};goog.dom.getViewportSize_=function(a){a=a.document;a=goog.dom.isCss1CompatMode_(a)?a.documentElement:a.body;return new goog.math.Size(a.clientWidth,a.clientHeight)};
goog.dom.getDocumentHeight=function(){return goog.dom.getDocumentHeight_(window)};goog.dom.getDocumentHeightForWindow=function(a){return goog.dom.getDocumentHeight_(a)};
goog.dom.getDocumentHeight_=function(a){var b=a.document,c=0;if(b){c=b.body;var d=b.documentElement;if(!d||!c)return 0;a=goog.dom.getViewportSize_(a).height;if(goog.dom.isCss1CompatMode_(b)&&d.scrollHeight)c=d.scrollHeight!=a?d.scrollHeight:d.offsetHeight;else{b=d.scrollHeight;var e=d.offsetHeight;d.clientHeight!=e&&(b=c.scrollHeight,e=c.offsetHeight);c=b>a?b>e?b:e:ba};goog.dom.nativelySupportsFocus_=function(a){return"A"==a.tagName||"INPUT"==a.tagName||"TEXTAREA"==a.tagName||"SELECT"==a.tagName||"BUTTON"==a.tagName};goog.dom.hasNonZeroBoundingRect_=function(a){a=!goog.isFunction(a.getBoundingClientRect)||goog.userAgent.IE&&null==a.parentElement?{height:a.offsetHeight,width:a.offsetWidth}:a.getBoundingClientRect();return goog.isDefAndNotNull(a)&&0=a.length)throw goog.iter.StopIteration;if(b in a)return a[b++];b++}};return c}throw Error("Not implemented");};
goog.iter.forEach=function(a,b,c){if(goog.isArrayLike(a))try{goog.array.forEach(a,b,c)}catch(d){if(d!==goog.iter.StopIteration)throw d;}else{a=goog.iter.toIterator(a);try{for(;;)b.call(c,a.next(),void 0,a)}catch(d){if(d!==goog.iter.StopIteration)throw d;}}};goog.iter.filter=function(a,b,c){var d=goog.iter.toIterator(a);a=new goog.iter.Iterator;a.next=function(){for(;;){var a=d.next();if(b.call(c,a,void 0,d))return a}};return a};
goog.iter.filterFalse=function(a,b,c){return goog.iter.filter(a,goog.functions.not(b),c)};goog.iter.range=function(a,b,c){var d=0,e=a,f=c||1;1=e||0>f&&d<=e)throw goog.iter.StopIteration;var a=d;d+=f;return a};return g};goog.iter.join=function(a,b){return goog.iter.toArray(a).join(b)};
goog.iter.map=function(a,b,c){var d=goog.iter.toIterator(a);a=new goog.iter.Iterator;a.next=function(){var a=d.next();return b.call(c,a,void 0,d)};return a};goog.iter.reduce=function(a,b,c,d){var e=c;goog.iter.forEach(a,function(a){e=b.call(d,e,a)});return e};goog.iter.some=function(a,b,c){a=goog.iter.toIterator(a);try{for(;;)if(b.call(c,a.next(),void 0,a))return!0}catch(d){if(d!==goog.iter.StopIteration)throw d;}return!1};
goog.iter.every=function(a,b,c){a=goog.iter.toIterator(a);try{for(;;)if(!b.call(c,a.next(),void 0,a))return!1}catch(d){if(d!==goog.iter.StopIteration)throw d;}return!0};goog.iter.chain=function(a){return goog.iter.chainFromIterable(arguments)};
goog.iter.chainFromIterable=function(a){var b=goog.iter.toIterator(a);a=new goog.iter.Iterator;var c=null;a.next=function(){for(;;){if(null==c){var a=b.next();c=goog.iter.toIterator(a)}try{return c.next()}catch(e){if(e!==goog.iter.StopIteration)throw e;c=null}}};return a};goog.iter.dropWhile=function(a,b,c){var d=goog.iter.toIterator(a);a=new goog.iter.Iterator;var e=!0;a.next=function(){for(;;){var a=d.next();if(!e||!b.call(c,a,void 0,d))return e=!1,a}};return a};
goog.iter.takeWhile=function(a,b,c){var d=goog.iter.toIterator(a);a=new goog.iter.Iterator;a.next=function(){var a=d.next();if(b.call(c,a,void 0,d))return a;throw goog.iter.StopIteration;};return a};goog.iter.toArray=function(a){if(goog.isArrayLike(a))return goog.array.toArray(a);a=goog.iter.toIterator(a);var b=[];goog.iter.forEach(a,function(a){b.push(a)});return b};
goog.iter.equals=function(a,b,c){a=goog.iter.zipLongest({},a,b);var d=c||goog.array.defaultCompareEquality;return goog.iter.every(a,function(a){return d(a[0],a[1])})};goog.iter.nextOrValue=function(a,b){try{return goog.iter.toIterator(a).next()}catch(c){if(c!=goog.iter.StopIteration)throw c;return b}};
goog.iter.product=function(a){if(goog.array.some(arguments,function(a){return!a.length})||!arguments.length)return new goog.iter.Iterator;var b=new goog.iter.Iterator,c=arguments,d=goog.array.repeat(0,c.length);b.next=function(){if(d){for(var a=goog.array.map(d,function(a,b){return c[b][a]}),b=d.length-1;0<=b;b--){goog.asserts.assert(d);if(d[b]=b),a=goog.iter.limit(a,c-b));return a};goog.iter.hasDuplicates_=function(a){var b=[];goog.array.removeDuplicates(a,b);return a.length!=b.length};goog.iter.permutations=function(a,b){a=goog.iter.toArray(a);b=goog.isNumber(b)?b:a.length;b=goog.array.repeat(a,b);b=goog.iter.product.apply(void 0,b);return goog.iter.filter(b,function(a){return!goog.iter.hasDuplicates_(a)})};
goog.iter.combinations=function(a,b){function c(a){return d[a]}var d=goog.iter.toArray(a);a=goog.iter.range(d.length);b=goog.iter.permutations(a,b);var e=goog.iter.filter(b,function(a){return goog.array.isSorted(a)});b=new goog.iter.Iterator;b.next=function(){return goog.array.map(e.next(),c)};return b};
goog.iter.combinationsWithReplacement=function(a,b){function c(a){return d[a]}var d=goog.iter.toArray(a);a=goog.array.range(d.length);b=goog.array.repeat(a,b);b=goog.iter.product.apply(void 0,b);var e=goog.iter.filter(b,function(a){return goog.array.isSorted(a)});b=new goog.iter.Iterator;b.next=function(){return goog.array.map(e.next(),c)};return b};goog.structs.Map=function(a,b){this.map_={};this.keys_=[];this.version_=this.count_=0;var c=arguments.length;if(12*this.count_&&this.cleanupKeysArray_(),!0):!1};
goog.structs.Map.prototype.cleanupKeysArray_=function(){if(this.count_!=this.keys_.length){for(var a=0,b=0;a=d.keys_.length)throw goog.iter.StopIteration;var e=d.keys_[b++];return a?e:d.map_[e]};return e};goog.structs.Map.hasKey_=function(a,b){return Object.prototype.hasOwnProperty.call(a,b)};goog.uri={};goog.uri.utils={};goog.uri.utils.CharCode_={AMPERSAND:38,EQUAL:61,HASH:35,QUESTION:63};goog.uri.utils.buildFromEncodedParts=function(a,b,c,d,e,f,g){var h="";a&&(h+=a+":");c&&(h+="//",b&&(h+=b+"@"),h+=c,d&&(h+=":"+d));e&&(h+=e);f&&(h+="?"+f);g&&(h+="#"+g);return h};goog.uri.utils.splitRe_=/^(?:([^:/?#.]+):)?(?:\/\/(?:([^/?#]*)@)?([^/#?]*?)(?::([0-9]+))?(?=[/#?]|$))?([^?#]+)?(?:\?([^#]*))?(?:#([\s\S]*))?$/;
goog.uri.utils.ComponentIndex={SCHEME:1,USER_INFO:2,DOMAIN:3,PORT:4,PATH:5,QUERY_DATA:6,FRAGMENT:7};goog.uri.utils.split=function(a){return a.match(goog.uri.utils.splitRe_)};goog.uri.utils.decodeIfPossible_=function(a,b){return a?b?decodeURI(a):decodeURIComponent(a):a};goog.uri.utils.getComponentByIndex_=function(a,b){return goog.uri.utils.split(b)[a]||null};goog.uri.utils.getScheme=function(a){return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.SCHEME,a)};
goog.uri.utils.getEffectiveScheme=function(a){a=goog.uri.utils.getScheme(a);!a&&goog.global.self&&goog.global.self.location&&(a=goog.global.self.location.protocol,a=a.substr(0,a.length-1));return a?a.toLowerCase():""};goog.uri.utils.getUserInfoEncoded=function(a){return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.USER_INFO,a)};goog.uri.utils.getUserInfo=function(a){return goog.uri.utils.decodeIfPossible_(goog.uri.utils.getUserInfoEncoded(a))};
goog.uri.utils.getDomainEncoded=function(a){return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.DOMAIN,a)};goog.uri.utils.getDomain=function(a){return goog.uri.utils.decodeIfPossible_(goog.uri.utils.getDomainEncoded(a),!0)};goog.uri.utils.getPort=function(a){return Number(goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.PORT,a))||null};goog.uri.utils.getPathEncoded=function(a){return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.PATH,a)};
goog.uri.utils.getPath=function(a){return goog.uri.utils.decodeIfPossible_(goog.uri.utils.getPathEncoded(a),!0)};goog.uri.utils.getQueryData=function(a){return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.QUERY_DATA,a)};goog.uri.utils.getFragmentEncoded=function(a){var b=a.indexOf("#");return 0>b?null:a.substr(b+1)};goog.uri.utils.setFragmentEncoded=function(a,b){return goog.uri.utils.removeFragment(a)+(b?"#"+b:"")};goog.uri.utils.getFragment=function(a){return goog.uri.utils.decodeIfPossible_(goog.uri.utils.getFragmentEncoded(a))};
goog.uri.utils.getHost=function(a){a=goog.uri.utils.split(a);return goog.uri.utils.buildFromEncodedParts(a[goog.uri.utils.ComponentIndex.SCHEME],a[goog.uri.utils.ComponentIndex.USER_INFO],a[goog.uri.utils.ComponentIndex.DOMAIN],a[goog.uri.utils.ComponentIndex.PORT])};goog.uri.utils.getOrigin=function(a){a=goog.uri.utils.split(a);return goog.uri.utils.buildFromEncodedParts(a[goog.uri.utils.ComponentIndex.SCHEME],null,a[goog.uri.utils.ComponentIndex.DOMAIN],a[goog.uri.utils.ComponentIndex.PORT])};
goog.uri.utils.getPathAndAfter=function(a){a=goog.uri.utils.split(a);return goog.uri.utils.buildFromEncodedParts(null,null,null,null,a[goog.uri.utils.ComponentIndex.PATH],a[goog.uri.utils.ComponentIndex.QUERY_DATA],a[goog.uri.utils.ComponentIndex.FRAGMENT])};goog.uri.utils.removeFragment=function(a){var b=a.indexOf("#");return 0>b?a:a.substr(0,b)};
goog.uri.utils.haveSameDomain=function(a,b){a=goog.uri.utils.split(a);b=goog.uri.utils.split(b);return a[goog.uri.utils.ComponentIndex.DOMAIN]==b[goog.uri.utils.ComponentIndex.DOMAIN]&&a[goog.uri.utils.ComponentIndex.SCHEME]==b[goog.uri.utils.ComponentIndex.SCHEME]&&a[goog.uri.utils.ComponentIndex.PORT]==b[goog.uri.utils.ComponentIndex.PORT]};
goog.uri.utils.assertNoFragmentsOrQueries_=function(a){goog.asserts.assert(0>a.indexOf("#")&&0>a.indexOf("?"),"goog.uri.utils: Fragment or query identifiers are not supported: [%s]",a)};goog.uri.utils.parseQueryData=function(a,b){if(a){a=a.split("\x26");for(var c=0;cb&&(b=a.length);var c=a.indexOf("?");if(0>c||c>b){c=b;var d=""}else d=a.substring(c+1,b);return[a.substr(0,c),d,a.substr(b)]};goog.uri.utils.joinQueryData_=function(a){return a[0]+(a[1]?"?"+a[1]:"")+a[2]};goog.uri.utils.appendQueryData_=function(a,b){return b?a?a+"\x26"+b:b:a};goog.uri.utils.appendQueryDataToUri_=function(a,b){if(!b)return a;a=goog.uri.utils.splitQueryData_(a);a[1]=goog.uri.utils.appendQueryData_(a[1],b);return goog.uri.utils.joinQueryData_(a)};
goog.uri.utils.appendKeyValuePairs_=function(a,b,c){goog.asserts.assertString(a);if(goog.isArray(b)){goog.asserts.assertArray(b);for(var d=0;dd)return null;var e=a.indexOf("\x26",d);if(0>e||e>c)e=c;d+=b.length+1;return goog.string.urlDecode(a.substr(d,e-d))};goog.uri.utils.getParamValues=function(a,b){for(var c=a.search(goog.uri.utils.hashOrEndRe_),d=0,e,f=[];0<=(e=goog.uri.utils.findParam_(a,d,b,c));){d=a.indexOf("\x26",e);if(0>d||d>c)d=c;e+=b.length+1;f.push(goog.string.urlDecode(a.substr(e,d-e)))}return f};
goog.uri.utils.trailingQueryPunctuationRe_=/[?&]($|#)/;goog.uri.utils.removeParam=function(a,b){for(var c=a.search(goog.uri.utils.hashOrEndRe_),d=0,e,f=[];0<=(e=goog.uri.utils.findParam_(a,d,b,c));)f.push(a.substring(d,e)),d=Math.min(a.indexOf("\x26",e)+1||c,c);f.push(a.substr(d));return f.join("").replace(goog.uri.utils.trailingQueryPunctuationRe_,"$1")};goog.uri.utils.setParam=function(a,b,c){return goog.uri.utils.appendParam(goog.uri.utils.removeParam(a,b),b,c)};
goog.uri.utils.setParamsFromMap=function(a,b){a=goog.uri.utils.splitQueryData_(a);var c=a[1],d=[];c&&goog.array.forEach(c.split("\x26"),function(a){var c=a.indexOf("\x3d");c=0<=c?a.substr(0,c):a;b.hasOwnProperty(c)||d.push(a)});a[1]=goog.uri.utils.appendQueryData_(d.join("\x26"),goog.uri.utils.buildQueryDataFromMap(b));return goog.uri.utils.joinQueryData_(a)};
goog.uri.utils.appendPath=function(a,b){goog.uri.utils.assertNoFragmentsOrQueries_(a);goog.string.endsWith(a,"/")&&(a=a.substr(0,a.length-1));goog.string.startsWith(b,"/")&&(b=b.substr(1));return goog.string.buildString(a,"/",b)};
goog.uri.utils.setPath=function(a,b){goog.string.startsWith(b,"/")||(b="/"+b);a=goog.uri.utils.split(a);return goog.uri.utils.buildFromEncodedParts(a[goog.uri.utils.ComponentIndex.SCHEME],a[goog.uri.utils.ComponentIndex.USER_INFO],a[goog.uri.utils.ComponentIndex.DOMAIN],a[goog.uri.utils.ComponentIndex.PORT],b,a[goog.uri.utils.ComponentIndex.QUERY_DATA],a[goog.uri.utils.ComponentIndex.FRAGMENT])};goog.uri.utils.StandardQueryParam={RANDOM:"zx"};
goog.uri.utils.makeUnique=function(a){return goog.uri.utils.setParam(a,goog.uri.utils.StandardQueryParam.RANDOM,goog.string.getRandomString())};goog.Uri=function(a,b){this.domain_=this.userInfo_=this.scheme_="";this.port_=null;this.fragment_=this.path_="";this.ignoreCase_=this.isReadOnly_=!1;var c;a instanceof goog.Uri?(this.ignoreCase_=goog.isDef(b)?b:a.getIgnoreCase(),this.setScheme(a.getScheme()),this.setUserInfo(a.getUserInfo()),this.setDomain(a.getDomain()),this.setPort(a.getPort()),this.setPath(a.getPath()),this.setQueryData(a.getQueryData().clone()),this.setFragment(a.getFragment())):a&&(c=goog.uri.utils.split(String(a)))?(this.ignoreCase_=
!!b,this.setScheme(c[goog.uri.utils.ComponentIndex.SCHEME]||"",!0),this.setUserInfo(c[goog.uri.utils.ComponentIndex.USER_INFO]||"",!0),this.setDomain(c[goog.uri.utils.ComponentIndex.DOMAIN]||"",!0),this.setPort(c[goog.uri.utils.ComponentIndex.PORT]),this.setPath(c[goog.uri.utils.ComponentIndex.PATH]||"",!0),this.setQueryData(c[goog.uri.utils.ComponentIndex.QUERY_DATA]||"",!0),this.setFragment(c[goog.uri.utils.ComponentIndex.FRAGMENT]||"",!0)):(this.ignoreCase_=!!b,this.queryData_=new goog.Uri.QueryData(null,
null,this.ignoreCase_))};goog.Uri.preserveParameterTypesCompatibilityFlag=!1;goog.Uri.RANDOM_PARAM=goog.uri.utils.StandardQueryParam.RANDOM;
goog.Uri.prototype.toString=function(){var a=[],b=this.getScheme();b&&a.push(goog.Uri.encodeSpecialChars_(b,goog.Uri.reDisallowedInSchemeOrUserInfo_,!0),":");var c=this.getDomain();if(c||"file"==b)a.push("//"),(b=this.getUserInfo())&&a.push(goog.Uri.encodeSpecialChars_(b,goog.Uri.reDisallowedInSchemeOrUserInfo_,!0),"@"),a.push(goog.Uri.removeDoubleEncoding_(goog.string.urlEncode(c))),c=this.getPort(),null!=c&&a.push(":",String(c));if(c=this.getPath())this.hasDomain()&&"/"!=c.charAt(0)&&a.push("/"),
a.push(goog.Uri.encodeSpecialChars_(c,"/"==c.charAt(0)?goog.Uri.reDisallowedInAbsolutePath_:goog.Uri.reDisallowedInRelativePath_,!0));(c=this.getEncodedQuery())&&a.push("?",c);(c=this.getFragment())&&a.push("#",goog.Uri.encodeSpecialChars_(c,goog.Uri.reDisallowedInFragment_));return a.join("")};
goog.Uri.prototype.resolve=function(a){var b=this.clone(),c=a.hasScheme();c?b.setScheme(a.getScheme()):c=a.hasUserInfo();c?b.setUserInfo(a.getUserInfo()):c=a.hasDomain();c?b.setDomain(a.getDomain()):c=a.hasPort();var d=a.getPath();if(c)b.setPort(a.getPort());else if(c=a.hasPath()){if("/"!=d.charAt(0))if(this.hasDomain()&&!this.hasPath())d="/"+d;else{var e=b.getPath().lastIndexOf("/");-1!=e&&(d=b.getPath().substr(0,e+1)+d)}d=goog.Uri.removeDotSegments(d)}c?b.setPath(d):c=a.hasQuery();c?b.setQueryData(a.getQueryData().clone()):
c=a.hasFragment();c&&b.setFragment(a.getFragment());return b};goog.Uri.prototype.clone=function(){return new goog.Uri(this)};goog.Uri.prototype.getScheme=function(){return this.scheme_};goog.Uri.prototype.setScheme=function(a,b){this.enforceReadOnly();if(this.scheme_=b?goog.Uri.decodeOrEmpty_(a,!0):a)this.scheme_=this.scheme_.replace(/:$/,"");return this};goog.Uri.prototype.hasScheme=function(){return!!this.scheme_};goog.Uri.prototype.getUserInfo=function(){return this.userInfo_};
goog.Uri.prototype.setUserInfo=function(a,b){this.enforceReadOnly();this.userInfo_=b?goog.Uri.decodeOrEmpty_(a):a;return this};goog.Uri.prototype.hasUserInfo=function(){return!!this.userInfo_};goog.Uri.prototype.getDomain=function(){return this.domain_};goog.Uri.prototype.setDomain=function(a,b){this.enforceReadOnly();this.domain_=b?goog.Uri.decodeOrEmpty_(a,!0):a;return this};goog.Uri.prototype.hasDomain=function(){return!!this.domain_};goog.Uri.prototype.getPort=function(){return this.port_};
goog.Uri.prototype.setPort=function(a){this.enforceReadOnly();if(a){a=Number(a);if(isNaN(a)||0>a)throw Error("Bad port number "+a);this.port_=a}else this.port_=null;return this};goog.Uri.prototype.hasPort=function(){return null!=this.port_};goog.Uri.prototype.getPath=function(){return this.path_};goog.Uri.prototype.setPath=function(a,b){this.enforceReadOnly();this.path_=b?goog.Uri.decodeOrEmpty_(a,!0):a;return this};goog.Uri.prototype.hasPath=function(){return!!this.path_};
goog.Uri.prototype.hasQuery=function(){return""!==this.queryData_.toString()};goog.Uri.prototype.setQueryData=function(a,b){this.enforceReadOnly();a instanceof goog.Uri.QueryData?(this.queryData_=a,this.queryData_.setIgnoreCase(this.ignoreCase_)):(b||(a=goog.Uri.encodeSpecialChars_(a,goog.Uri.reDisallowedInQuery_)),this.queryData_=new goog.Uri.QueryData(a,null,this.ignoreCase_));return this};goog.Uri.prototype.setQuery=function(a,b){return this.setQueryData(a,b)};
goog.Uri.prototype.getEncodedQuery=function(){return this.queryData_.toString()};goog.Uri.prototype.getDecodedQuery=function(){return this.queryData_.toDecodedString()};goog.Uri.prototype.getQueryData=function(){return this.queryData_};goog.Uri.prototype.getQuery=function(){return this.getEncodedQuery()};goog.Uri.prototype.setParameterValue=function(a,b){this.enforceReadOnly();this.queryData_.set(a,b);return this};
goog.Uri.prototype.setParameterValues=function(a,b){this.enforceReadOnly();goog.isArray(b)||(b=[String(b)]);this.queryData_.setValues(a,b);return this};goog.Uri.prototype.getParameterValues=function(a){return this.queryData_.getValues(a)};goog.Uri.prototype.getParameterValue=function(a){return this.queryData_.get(a)};goog.Uri.prototype.getFragment=function(){return this.fragment_};goog.Uri.prototype.setFragment=function(a,b){this.enforceReadOnly();this.fragment_=b?goog.Uri.decodeOrEmpty_(a):a;return this};
goog.Uri.prototype.hasFragment=function(){return!!this.fragment_};goog.Uri.prototype.hasSameDomainAs=function(a){return(!this.hasDomain()&&!a.hasDomain()||this.getDomain()==a.getDomain())&&(!this.hasPort()&&!a.hasPort()||this.getPort()==a.getPort())};goog.Uri.prototype.makeUnique=function(){this.enforceReadOnly();this.setParameterValue(goog.Uri.RANDOM_PARAM,goog.string.getRandomString());return this};goog.Uri.prototype.removeParameter=function(a){this.enforceReadOnly();this.queryData_.remove(a);return this};
goog.Uri.prototype.setReadOnly=function(a){this.isReadOnly_=a;return this};goog.Uri.prototype.isReadOnly=function(){return this.isReadOnly_};goog.Uri.prototype.enforceReadOnly=function(){if(this.isReadOnly_)throw Error("Tried to modify a read-only Uri");};goog.Uri.prototype.setIgnoreCase=function(a){this.ignoreCase_=a;this.queryData_&&this.queryData_.setIgnoreCase(a);return this};goog.Uri.prototype.getIgnoreCase=function(){return this.ignoreCase_};
goog.Uri.parse=function(a,b){return a instanceof goog.Uri?a.clone():new goog.Uri(a,b)};goog.Uri.create=function(a,b,c,d,e,f,g,h){h=new goog.Uri(null,h);a&&h.setScheme(a);b&&h.setUserInfo(b);c&&h.setDomain(c);d&&h.setPort(d);e&&h.setPath(e);f&&h.setQueryData(f);g&&h.setFragment(g);return h};goog.Uri.resolve=function(a,b){a instanceof goog.Uri||(a=goog.Uri.parse(a));b instanceof goog.Uri||(b=goog.Uri.parse(b));return a.resolve(b)};
goog.Uri.removeDotSegments=function(a){if(".."==a||"."==a)return"";if(goog.string.contains(a,"./")||goog.string.contains(a,"/.")){var b=goog.string.startsWith(a,"/");a=a.split("/");for(var c=[],d=0;d>4&15).toString(16)+(a&15).toString(16)};goog.Uri.removeDoubleEncoding_=function(a){return a.replace(/%25([0-9a-fA-F]{2})/g,"%$1")};goog.Uri.reDisallowedInSchemeOrUserInfo_=/[#\/\?@]/g;goog.Uri.reDisallowedInRelativePath_=/[#\?:]/g;goog.Uri.reDisallowedInAbsolutePath_=/[#\?]/g;
goog.Uri.reDisallowedInQuery_=/[#\?@]/g;goog.Uri.reDisallowedInFragment_=/#/g;goog.Uri.haveSameDomain=function(a,b){a=goog.uri.utils.split(a);b=goog.uri.utils.split(b);return a[goog.uri.utils.ComponentIndex.DOMAIN]==b[goog.uri.utils.ComponentIndex.DOMAIN]&&a[goog.uri.utils.ComponentIndex.PORT]==b[goog.uri.utils.ComponentIndex.PORT]};goog.Uri.QueryData=function(a,b,c){this.count_=this.keyMap_=null;this.encodedQuery_=a||null;this.ignoreCase_=!!c};
goog.Uri.QueryData.prototype.ensureKeyMapInitialized_=function(){if(!this.keyMap_&&(this.keyMap_=new goog.structs.Map,this.count_=0,this.encodedQuery_)){var a=this;goog.uri.utils.parseQueryData(this.encodedQuery_,function(b,c){a.add(goog.string.urlDecode(b),c)})}};
goog.Uri.QueryData.createFromMap=function(a,b,c){b=goog.structs.getKeys(a);if("undefined"==typeof b)throw Error("Keys are undefined");c=new goog.Uri.QueryData(null,null,c);a=goog.structs.getValues(a);for(var d=0;da){var b=goog.math.Integer.IntCache_[a];if(b)return b}b=new goog.math.Integer([a|0],0>a?-1:0);-128<=a&&128>a&&(goog.math.Integer.IntCache_[a]=b);return b};
goog.math.Integer.fromNumber=function(a){if(isNaN(a)||!isFinite(a))return goog.math.Integer.ZERO;if(0>a)return goog.math.Integer.fromNumber(-a).negate();for(var b=[],c=1,d=0;a>=c;d++)b[d]=a/c|0,c*=goog.math.Integer.TWO_PWR_32_DBL_;return new goog.math.Integer(b,0)};goog.math.Integer.fromBits=function(a){return new goog.math.Integer(a,a[a.length-1]&-2147483648?-1:0)};
goog.math.Integer.fromString=function(a,b){if(0==a.length)throw Error("number format error: empty string");b=b||10;if(2>b||36f?(f=goog.math.Integer.fromNumber(Math.pow(b,
f)),d=d.multiply(f).add(goog.math.Integer.fromNumber(g))):(d=d.multiply(c),d=d.add(goog.math.Integer.fromNumber(g)))}return d};goog.math.Integer.TWO_PWR_32_DBL_=4294967296;goog.math.Integer.ZERO=goog.math.Integer.fromInt(0);goog.math.Integer.ONE=goog.math.Integer.fromInt(1);goog.math.Integer.TWO_PWR_24_=goog.math.Integer.fromInt(16777216);goog.math.Integer.prototype.toInt=function(){return 0a||36>>0).toString(a);c=e;if(c.isZero())return f+d;for(;6>f.length;)f="0"+f;d=""+f+d}};goog.math.Integer.prototype.getBits=function(a){return 0>a?0:athis.compare(a)};goog.math.Integer.prototype.lessThanOrEqual=function(a){return 0>=this.compare(a)};goog.math.Integer.prototype.compare=function(a){a=this.subtract(a);return a.isNegative()?-1:a.isZero()?0:1};
goog.math.Integer.prototype.shorten=function(a){var b=a-1>>5;a=(a-1)%32;for(var c=[],d=0;d>>16,g=this.getBits(e)&65535,h=a.getBits(e)>>>16,k=a.getBits(e)&65535;g=d+g+k;f=(g>>>16)+f+h;d=f>>>16;g&=65535;f&=65535;c[e]=f<<16|g}return goog.math.Integer.fromBits(c)};goog.math.Integer.prototype.subtract=function(a){return this.add(a.negate())};
goog.math.Integer.prototype.multiply=function(a){if(this.isZero()||a.isZero())return goog.math.Integer.ZERO;if(this.isNegative())return a.isNegative()?this.negate().multiply(a.negate()):this.negate().multiply(a).negate();if(a.isNegative())return this.multiply(a.negate()).negate();if(this.lessThan(goog.math.Integer.TWO_PWR_24_)&&a.lessThan(goog.math.Integer.TWO_PWR_24_))return goog.math.Integer.fromNumber(this.toNumber()*a.toNumber());for(var b=this.bits_.length+a.bits_.length,c=[],d=0;d<2*b;d++)c[d]=
0;for(d=0;d>>16,g=this.getBits(d)&65535,h=a.getBits(e)>>>16,k=a.getBits(e)&65535;c[2*d+2*e]+=g*k;goog.math.Integer.carry16_(c,2*d+2*e);c[2*d+2*e+1]+=f*k;goog.math.Integer.carry16_(c,2*d+2*e+1);c[2*d+2*e+1]+=g*h;goog.math.Integer.carry16_(c,2*d+2*e+1);c[2*d+2*e+2]+=f*h;goog.math.Integer.carry16_(c,2*d+2*e+2)}for(d=0;d>>16,a[b]&=65535,b++};
goog.math.Integer.prototype.slowDivide_=function(a){if(this.isNegative()||a.isNegative())throw Error("slowDivide_ only works with positive integers.");for(var b=goog.math.Integer.ONE;a.lessThanOrEqual(this);)b=b.shiftLeft(1),a=a.shiftLeft(1);var c=b.shiftRight(1),d=a.shiftRight(1);a=a.shiftRight(2);for(b=b.shiftRight(2);!a.isZero();){var e=d.add(a);e.lessThanOrEqual(this)&&(c=c.add(b),d=e);a=a.shiftRight(1);b=b.shiftRight(1)}return c};
goog.math.Integer.prototype.divide=function(a){if(a.isZero())throw Error("division by zero");if(this.isZero())return goog.math.Integer.ZERO;if(this.isNegative())return a.isNegative()?this.negate().divide(a.negate()):this.negate().divide(a).negate();if(a.isNegative())return this.divide(a.negate()).negate();if(30=e?1:Math.pow(2,e-48);for(var f=goog.math.Integer.fromNumber(d),g=f.multiply(a);g.isNegative()||g.greaterThan(c);)d-=e,f=goog.math.Integer.fromNumber(d),g=f.multiply(a);f.isZero()&&(f=goog.math.Integer.ONE);b=b.add(f);c=c.subtract(g)}return b};goog.math.Integer.prototype.modulo=function(a){return this.subtract(this.divide(a).multiply(a))};goog.math.Integer.prototype.not=function(){for(var a=this.bits_.length,b=[],c=0;c>5;a%=32;for(var c=this.bits_.length+b+(0>>32-a:this.getBits(e-b);return new goog.math.Integer(d,this.sign_)};
goog.math.Integer.prototype.shiftRight=function(a){var b=a>>5;a%=32;for(var c=this.bits_.length-b,d=[],e=0;e>>a|this.getBits(e+b+1)<<32-a:this.getBits(e+b);return new goog.math.Integer(d,this.sign_)};goog.string.StringBuffer=function(a,b){null!=a&&this.append.apply(this,arguments)};goog.string.StringBuffer.prototype.buffer_="";goog.string.StringBuffer.prototype.set=function(a){this.buffer_=""+a};goog.string.StringBuffer.prototype.append=function(a,b,c){this.buffer_+=String(a);if(null!=b)for(var d=1;da?-1:0)})};goog.math.Long.MAX_VALUE_FOR_RADIX_=" 111111111111111111111111111111111111111111111111111111111111111 2021110011022210012102010021220101220221 13333333333333333333333333333333 1104332401304422434310311212 1540241003031030222122211 22341010611245052052300 777777777777777777777 67404283172107811827 9223372036854775807 1728002635214590697 41a792678515120367 10b269549075433c37 4340724c6c71dc7a7 160e2ad3246366807 7fffffffffffffff 33d3d8307b214008 16agh595df825fa7 ba643dci0ffeehh 5cbfjia3fh26ja7 2heiciiie82dh97 1adaibb21dckfa7 i6k448cf4192c2 acd772jnc9l0l7 64ie1focnn5g77 3igoecjbmca687 27c48l5b37oaop 1bk39f3ah3dmq7 q1se8f0m04isb hajppbc1fc207 bm03i95hia437 7vvvvvvvvvvvv 5hg4ck9jd4u37 3tdtk1v8j6tpp 2pijmikexrxp7 1y2p0ij32e8e7".split(" ");
goog.math.Long.MIN_VALUE_FOR_RADIX_=" -1000000000000000000000000000000000000000000000000000000000000000 -2021110011022210012102010021220101220222 -20000000000000000000000000000000 -1104332401304422434310311213 -1540241003031030222122212 -22341010611245052052301 -1000000000000000000000 -67404283172107811828 -9223372036854775808 -1728002635214590698 -41a792678515120368 -10b269549075433c38 -4340724c6c71dc7a8 -160e2ad3246366808 -8000000000000000 -33d3d8307b214009 -16agh595df825fa8 -ba643dci0ffeehi -5cbfjia3fh26ja8 -2heiciiie82dh98 -1adaibb21dckfa8 -i6k448cf4192c3 -acd772jnc9l0l8 -64ie1focnn5g78 -3igoecjbmca688 -27c48l5b37oaoq -1bk39f3ah3dmq8 -q1se8f0m04isc -hajppbc1fc208 -bm03i95hia438 -8000000000000 -5hg4ck9jd4u38 -3tdtk1v8j6tpq -2pijmikexrxp8 -1y2p0ij32e8e8".split(" ");
goog.math.Long.fromInt=function(a){var b=a|0;goog.asserts.assert(a===b,"value should be a 32-bit integer");return-128<=b&&128>b?goog.math.Long.getCachedIntValue_(b):new goog.math.Long(b,0>b?-1:0)};
goog.math.Long.fromNumber=function(a){return isNaN(a)?goog.math.Long.getZero():a<=-goog.math.Long.TWO_PWR_63_DBL_?goog.math.Long.getMinValue():a+1>=goog.math.Long.TWO_PWR_63_DBL_?goog.math.Long.getMaxValue():0>a?goog.math.Long.fromNumber(-a).negate():new goog.math.Long(a%goog.math.Long.TWO_PWR_32_DBL_|0,a/goog.math.Long.TWO_PWR_32_DBL_|0)};goog.math.Long.fromBits=function(a,b){return new goog.math.Long(a,b)};
goog.math.Long.fromString=function(a,b){if(0==a.length)throw Error("number format error: empty string");b=b||10;if(2>b||36f?(f=goog.math.Long.fromNumber(Math.pow(b,
f)),d=d.multiply(f).add(goog.math.Long.fromNumber(g))):(d=d.multiply(c),d=d.add(goog.math.Long.fromNumber(g)))}return d};goog.math.Long.isStringInRange=function(a,b){b=b||10;if(2>b||36a||36>>0).toString(a);b=e;if(b.isZero())return f+
d;for(;6>f.length;)f="0"+f;d=""+f+d}};goog.math.Long.prototype.getHighBits=function(){return this.high_};goog.math.Long.prototype.getLowBits=function(){return this.low_};goog.math.Long.prototype.getLowBitsUnsigned=function(){return 0<=this.low_?this.low_:goog.math.Long.TWO_PWR_32_DBL_+this.low_};
goog.math.Long.prototype.getNumBitsAbs=function(){if(this.isNegative())return this.equals(goog.math.Long.getMinValue())?64:this.negate().getNumBitsAbs();for(var a=0!=this.high_?this.high_:this.low_,b=31;0this.high_};goog.math.Long.prototype.isOdd=function(){return 1==(this.low_&1)};
goog.math.Long.prototype.equals=function(a){return this.high_==a.high_&&this.low_==a.low_};goog.math.Long.prototype.notEquals=function(a){return this.high_!=a.high_||this.low_!=a.low_};goog.math.Long.prototype.lessThan=function(a){return 0>this.compare(a)};goog.math.Long.prototype.lessThanOrEqual=function(a){return 0>=this.compare(a)};goog.math.Long.prototype.greaterThan=function(a){return 0>>16,c=this.high_&65535,d=this.low_>>>16,e=a.high_>>>16,f=a.high_&65535,g=a.low_>>>16;a=(this.low_&65535)+(a.low_&65535);g=(a>>>16)+(d+g);d=g>>>16;d+=c+f;b=(d>>>16)+(b+e)&65535;return goog.math.Long.fromBits((g&65535)<<16|a&65535,b<<16|d&65535)};goog.math.Long.prototype.subtract=function(a){return this.add(a.negate())};
goog.math.Long.prototype.multiply=function(a){if(this.isZero()||a.isZero())return goog.math.Long.getZero();if(this.equals(goog.math.Long.getMinValue()))return a.isOdd()?goog.math.Long.getMinValue():goog.math.Long.getZero();if(a.equals(goog.math.Long.getMinValue()))return this.isOdd()?goog.math.Long.getMinValue():goog.math.Long.getZero();if(this.isNegative())return a.isNegative()?this.negate().multiply(a.negate()):this.negate().multiply(a).negate();if(a.isNegative())return this.multiply(a.negate()).negate();
if(this.lessThan(goog.math.Long.getTwoPwr24())&&a.lessThan(goog.math.Long.getTwoPwr24()))return goog.math.Long.fromNumber(this.toNumber()*a.toNumber());var b=this.high_>>>16,c=this.high_&65535,d=this.low_>>>16,e=this.low_&65535,f=a.high_>>>16,g=a.high_&65535,h=a.low_>>>16;a=a.low_&65535;var k=e*a;var l=(k>>>16)+d*a;var m=l>>>16;l=(l&65535)+e*h;m+=l>>>16;m+=c*a;var n=m>>>16;m=(m&65535)+d*h;n+=m>>>16;m=(m&65535)+e*g;n=n+(m>>>16)+(b*a+c*h+d*g+e*f)&65535;return goog.math.Long.fromBits((l&65535)<<16|k&
65535,n<<16|m&65535)};
goog.math.Long.prototype.div=function(a){if(a.isZero())throw Error("division by zero");if(this.isZero())return goog.math.Long.getZero();if(this.equals(goog.math.Long.getMinValue())){if(a.equals(goog.math.Long.getOne())||a.equals(goog.math.Long.getNegOne()))return goog.math.Long.getMinValue();if(a.equals(goog.math.Long.getMinValue()))return goog.math.Long.getOne();var b=this.shiftRight(1).div(a).shiftLeft(1);if(b.equals(goog.math.Long.getZero()))return a.isNegative()?goog.math.Long.getOne():goog.math.Long.getNegOne();
var c=this.subtract(a.multiply(b));return b.add(c.div(a))}if(a.equals(goog.math.Long.getMinValue()))return goog.math.Long.getZero();if(this.isNegative())return a.isNegative()?this.negate().div(a.negate()):this.negate().div(a).negate();if(a.isNegative())return this.div(a.negate()).negate();var d=goog.math.Long.getZero();for(c=this;c.greaterThanOrEqual(a);){b=Math.max(1,Math.floor(c.toNumber()/a.toNumber()));var e=Math.ceil(Math.log(b)/Math.LN2);e=48>=e?1:Math.pow(2,e-48);for(var f=goog.math.Long.fromNumber(b),
g=f.multiply(a);g.isNegative()||g.greaterThan(c);)b-=e,f=goog.math.Long.fromNumber(b),g=f.multiply(a);f.isZero()&&(f=goog.math.Long.getOne());d=d.add(f);c=c.subtract(g)}return d};goog.math.Long.prototype.modulo=function(a){return this.subtract(this.div(a).multiply(a))};goog.math.Long.prototype.not=function(){return goog.math.Long.fromBits(~this.low_,~this.high_)};goog.math.Long.prototype.and=function(a){return goog.math.Long.fromBits(this.low_&a.low_,this.high_&a.high_)};
goog.math.Long.prototype.or=function(a){return goog.math.Long.fromBits(this.low_|a.low_,this.high_|a.high_)};goog.math.Long.prototype.xor=function(a){return goog.math.Long.fromBits(this.low_^a.low_,this.high_^a.high_)};goog.math.Long.prototype.shiftLeft=function(a){a&=63;if(0==a)return this;var b=this.low_;return 32>a?goog.math.Long.fromBits(b<>>32-a):goog.math.Long.fromBits(0,b<a?goog.math.Long.fromBits(this.low_>>>a|b<<32-a,b>>a):goog.math.Long.fromBits(b>>a-32,0<=b?0:-1)};goog.math.Long.prototype.shiftRightUnsigned=function(a){a&=63;if(0==a)return this;var b=this.high_;return 32>a?goog.math.Long.fromBits(this.low_>>>a|b<<32-a,b>>>a):32==a?goog.math.Long.fromBits(b,0):goog.math.Long.fromBits(b>>>a-32,0)};goog.math.Long.ValueCacheId_={MAX_VALUE:1,MIN_VALUE:2,TWO_PWR_24:6};var cljs={core:{}};cljs.core._STAR_clojurescript_version_STAR_="1.10.145";cljs.core._STAR_unchecked_if_STAR_=!1;cljs.core._STAR_unchecked_arrays_STAR_=!1;cljs.core._STAR_warn_on_infer_STAR_=!1;"undefined"===typeof cljs.core.PROTOCOL_SENTINEL&&(cljs.core.PROTOCOL_SENTINEL={});cljs.core.MODULE_URIS=null;cljs.core.MODULE_INFOS=null;cljs.core._STAR_target_STAR_="default";cljs.core._STAR_ns_STAR_=null;cljs.core._STAR_out_STAR_=null;cljs.core._STAR_assert_STAR_=!0;
"undefined"===typeof cljs.core._STAR_print_fn_STAR_&&(cljs.core._STAR_print_fn_STAR_=null);cljs.core._STAR_exec_tap_fn_STAR_=function(a){var b="undefined"!==typeof setTimeout;return b?(a=setTimeout(a,0),cljs.core.truth_(a)?!0:a):b};"undefined"===typeof cljs.core._STAR_print_err_fn_STAR_&&(cljs.core._STAR_print_err_fn_STAR_=null);cljs.core.set_print_fn_BANG_=function(a){return cljs.core._STAR_print_fn_STAR_=a};cljs.core.set_print_err_fn_BANG_=function(a){return cljs.core._STAR_print_err_fn_STAR_=a};
cljs.core._STAR_flush_on_newline_STAR_=!0;cljs.core._STAR_print_newline_STAR_=!0;cljs.core._STAR_print_readably_STAR_=!0;cljs.core._STAR_print_meta_STAR_=!1;cljs.core._STAR_print_dup_STAR_=!1;cljs.core._STAR_print_namespace_maps_STAR_=!1;cljs.core._STAR_print_length_STAR_=null;cljs.core._STAR_print_level_STAR_=null;cljs.core._STAR_print_fn_bodies_STAR_=!1;"undefined"===typeof cljs.core._STAR_loaded_libs_STAR_&&(cljs.core._STAR_loaded_libs_STAR_=null);
cljs.core.pr_opts=function(){return new cljs.core.PersistentArrayMap(null,5,[new cljs.core.Keyword(null,"flush-on-newline","flush-on-newline",-151457939),cljs.core._STAR_flush_on_newline_STAR_,new cljs.core.Keyword(null,"readably","readably",1129599760),cljs.core._STAR_print_readably_STAR_,new cljs.core.Keyword(null,"meta","meta",1499536964),cljs.core._STAR_print_meta_STAR_,new cljs.core.Keyword(null,"dup","dup",556298533),cljs.core._STAR_print_dup_STAR_,new cljs.core.Keyword(null,"print-length",
"print-length",1931866356),cljs.core._STAR_print_length_STAR_],null)};
cljs.core.enable_console_print_BANG_=function(){cljs.core._STAR_print_newline_STAR_=!1;cljs.core.set_print_fn_BANG_(function(){var a=function(a){return console.log.apply(console,cljs.core.into_array.cljs$core$IFn$_invoke$arity$1(a))},b=function(b){var c=null;if(0b)throw Error("Assert failed: (not (neg? idx))");if(!(bb)throw Error("Assert failed: (not (neg? idx))");if(!(bb)throw Error("Assert failed: (not (neg? idx))");if(!(bb)throw Error("Assert failed: (not (neg? idx))");if(!(b>>-b};
"undefined"!==typeof Math.imul&&0!==Math.imul(4294967295,5)?cljs.core.imul=function(a,b){return Math.imul(a,b)}:cljs.core.imul=function(a,b){var c=a&65535,d=b&65535;return c*d+((a>>>16&65535)*d+c*(b>>>16&65535)<<16>>>0)|0};cljs.core.m3_seed=0;cljs.core.m3_C1=-862048943;cljs.core.m3_C2=461845907;cljs.core.m3_mix_K1=function(a){return cljs.core.imul(cljs.core.int_rotate_left(cljs.core.imul(a|0,cljs.core.m3_C1),15),cljs.core.m3_C2)};
cljs.core.m3_mix_H1=function(a,b){return cljs.core.imul(cljs.core.int_rotate_left((a|0)^(b|0),13),5)+-430675100|0};cljs.core.m3_fmix=function(a,b){a=(a|0)^b;a=cljs.core.imul(a^a>>>16,-2048144789);a=cljs.core.imul(a^a>>>13,-1028477387);return a^a>>>16};cljs.core.m3_hash_int=function(a){if(0===a)return a;a=cljs.core.m3_mix_K1(a);a=cljs.core.m3_mix_H1(cljs.core.m3_seed,a);return cljs.core.m3_fmix(a,4)};
cljs.core.m3_hash_unencoded_chars=function(a){a:{var b=1;for(var c=cljs.core.m3_seed;;)if(b>2)};cljs.core.instance_QMARK_=function(a,b){return b instanceof a};cljs.core.symbol_QMARK_=function(a){return a instanceof cljs.core.Symbol};cljs.core.hash_symbol=function(a){return cljs.core.hash_combine(cljs.core.m3_hash_unencoded_chars(a.name),cljs.core.hash_string(a.ns))};
cljs.core.compare_symbols=function(a,b){if(a.str===b.str)return 0;if(cljs.core.truth_(function(){var c=cljs.core.not(a.ns);return c?b.ns:c}()))return-1;if(cljs.core.truth_(a.ns)){if(cljs.core.not(b.ns))return 1;var c=goog.array.defaultCompare(a.ns,b.ns);return 0===c?goog.array.defaultCompare(a.name,b.name):c}return goog.array.defaultCompare(a.name,b.name)};
cljs.core.Symbol=function(a,b,c,d,e){this.ns=a;this.name=b;this.str=c;this._hash=d;this._meta=e;this.cljs$lang$protocol_mask$partition0$=2154168321;this.cljs$lang$protocol_mask$partition1$=4096};cljs.core.Symbol.prototype.toString=function(){return this.str};cljs.core.Symbol.prototype.equiv=function(a){return this.cljs$core$IEquiv$_equiv$arity$2(null,a)};cljs.core.Symbol.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return b instanceof cljs.core.Symbol?this.str===b.str:!1};
cljs.core.Symbol.prototype.call=function(){var a=null,b=function(a,b){return cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,this)},c=function(a,b,c){return cljs.core.get.cljs$core$IFn$_invoke$arity$3(b,this,c)};a=function(a,e,f){switch(arguments.length){case 2:return b.call(this,a,e);case 3:return c.call(this,a,e,f)}throw Error("Invalid arity: "+(arguments.length-1));};a.cljs$core$IFn$_invoke$arity$2=b;a.cljs$core$IFn$_invoke$arity$3=c;return a}();
cljs.core.Symbol.prototype.apply=function(a,b){return this.call.apply(this,[this].concat(cljs.core.aclone(b)))};cljs.core.Symbol.prototype.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,this)};cljs.core.Symbol.prototype.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core.get.cljs$core$IFn$_invoke$arity$3(a,this,b)};cljs.core.Symbol.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this._meta};
cljs.core.Symbol.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.core.Symbol(this.ns,this.name,this.str,this._hash,b)};cljs.core.Symbol.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this._hash;return null!=a?a:this._hash=a=cljs.core.hash_symbol(this)};cljs.core.Symbol.prototype.cljs$core$INamed$_name$arity$1=function(a){return this.name};cljs.core.Symbol.prototype.cljs$core$INamed$_namespace$arity$1=function(a){return this.ns};
cljs.core.Symbol.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core._write(b,this.str)};
cljs.core.Symbol.getBasis=function(){return new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Symbol(null,"ns","ns",2082130287,null),new cljs.core.Symbol(null,"name","name",-810760592,null),new cljs.core.Symbol(null,"str","str",-1564826950,null),cljs.core.with_meta(new cljs.core.Symbol(null,"_hash","_hash",-2130838312,null),new cljs.core.PersistentArrayMap(null,1,[new cljs.core.Keyword(null,"mutable","mutable",875778266),!0],null)),new cljs.core.Symbol(null,
"_meta","_meta",-1716892533,null)],null)};cljs.core.Symbol.cljs$lang$type=!0;cljs.core.Symbol.cljs$lang$ctorStr="cljs.core/Symbol";cljs.core.Symbol.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/Symbol")};cljs.core.__GT_Symbol=function(a,b,c,d,e){return new cljs.core.Symbol(a,b,c,d,e)};
cljs.core.symbol=function(a){switch(arguments.length){case 1:return cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.symbol.cljs$core$IFn$_invoke$arity$1=function(a){if(a instanceof cljs.core.Symbol)return a;var b=a.indexOf("/");return 1>b?cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(null,a):cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(a.substring(0,b),a.substring(b+1,a.length))};
cljs.core.symbol.cljs$core$IFn$_invoke$arity$2=function(a,b){var c=null!=a?[cljs.core.str.cljs$core$IFn$_invoke$arity$1(a),"/",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join(""):b;return new cljs.core.Symbol(a,b,c,null,null)};cljs.core.symbol.cljs$lang$maxFixedArity=2;cljs.core.Var=function(a,b,c){this.val=a;this.sym=b;this._meta=c;this.cljs$lang$protocol_mask$partition0$=6717441;this.cljs$lang$protocol_mask$partition1$=0};
cljs.core.Var.prototype.isMacro=function(){return(this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null)).cljs$lang$macro};cljs.core.Var.prototype.toString=function(){return["#'",cljs.core.str.cljs$core$IFn$_invoke$arity$1(this.sym)].join("")};cljs.core.Var.prototype.cljs$core$IDeref$_deref$arity$1=function(a){return this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null)};
cljs.core.Var.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this._meta};cljs.core.Var.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.core.Var(this.val,this.sym,b)};cljs.core.Var.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return b instanceof cljs.core.Var?cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.sym,b.sym):!1};cljs.core.Var.prototype.cljs$core$IHash$_hash$arity$1=function(a){return cljs.core.hash_symbol(this.sym)};
cljs.core.Var.prototype.cljs$core$Fn$=cljs.core.PROTOCOL_SENTINEL;
cljs.core.Var.prototype.call=function(){var a=null,b=function(a){a=this;a=a.val.cljs$core$IFn$_invoke$arity$0?a.val.cljs$core$IFn$_invoke$arity$0():a.val.call(null);return a.cljs$core$IFn$_invoke$arity$0?a.cljs$core$IFn$_invoke$arity$0():a.call(null)},c=function(a,b){a=this;a=a.val.cljs$core$IFn$_invoke$arity$0?a.val.cljs$core$IFn$_invoke$arity$0():a.val.call(null);return a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(b):a.call(null,b)},d=function(a,b,c){a=this;a=a.val.cljs$core$IFn$_invoke$arity$0?
a.val.cljs$core$IFn$_invoke$arity$0():a.val.call(null);return a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(b,c):a.call(null,b,c)},e=function(a,b,c,d){a=this;a=a.val.cljs$core$IFn$_invoke$arity$0?a.val.cljs$core$IFn$_invoke$arity$0():a.val.call(null);return a.cljs$core$IFn$_invoke$arity$3?a.cljs$core$IFn$_invoke$arity$3(b,c,d):a.call(null,b,c,d)},f=function(a,b,c,d,e){a=this;a=a.val.cljs$core$IFn$_invoke$arity$0?a.val.cljs$core$IFn$_invoke$arity$0():a.val.call(null);return a.cljs$core$IFn$_invoke$arity$4?
a.cljs$core$IFn$_invoke$arity$4(b,c,d,e):a.call(null,b,c,d,e)},g=function(a,b,c,d,e,f){a=this;a=a.val.cljs$core$IFn$_invoke$arity$0?a.val.cljs$core$IFn$_invoke$arity$0():a.val.call(null);return a.cljs$core$IFn$_invoke$arity$5?a.cljs$core$IFn$_invoke$arity$5(b,c,d,e,f):a.call(null,b,c,d,e,f)},h=function(a,b,c,d,e,f,g){a=this;a=a.val.cljs$core$IFn$_invoke$arity$0?a.val.cljs$core$IFn$_invoke$arity$0():a.val.call(null);return a.cljs$core$IFn$_invoke$arity$6?a.cljs$core$IFn$_invoke$arity$6(b,c,d,e,f,g):
a.call(null,b,c,d,e,f,g)},k=function(a,b,c,d,e,f,g,h){a=this;a=a.val.cljs$core$IFn$_invoke$arity$0?a.val.cljs$core$IFn$_invoke$arity$0():a.val.call(null);return a.cljs$core$IFn$_invoke$arity$7?a.cljs$core$IFn$_invoke$arity$7(b,c,d,e,f,g,h):a.call(null,b,c,d,e,f,g,h)},l=function(a,b,c,d,e,f,g,h,k){a=this;a=a.val.cljs$core$IFn$_invoke$arity$0?a.val.cljs$core$IFn$_invoke$arity$0():a.val.call(null);return a.cljs$core$IFn$_invoke$arity$8?a.cljs$core$IFn$_invoke$arity$8(b,c,d,e,f,g,h,k):a.call(null,b,c,
d,e,f,g,h,k)},m=function(a,b,c,d,e,f,g,h,k,l){a=this;a=a.val.cljs$core$IFn$_invoke$arity$0?a.val.cljs$core$IFn$_invoke$arity$0():a.val.call(null);return a.cljs$core$IFn$_invoke$arity$9?a.cljs$core$IFn$_invoke$arity$9(b,c,d,e,f,g,h,k,l):a.call(null,b,c,d,e,f,g,h,k,l)},n=function(a,b,c,d,e,f,g,h,k,l,m){a=this;a=a.val.cljs$core$IFn$_invoke$arity$0?a.val.cljs$core$IFn$_invoke$arity$0():a.val.call(null);return a.cljs$core$IFn$_invoke$arity$10?a.cljs$core$IFn$_invoke$arity$10(b,c,d,e,f,g,h,k,l,m):a.call(null,
b,c,d,e,f,g,h,k,l,m)},p=function(a,b,c,d,e,f,g,h,k,l,m,n){a=this;a=a.val.cljs$core$IFn$_invoke$arity$0?a.val.cljs$core$IFn$_invoke$arity$0():a.val.call(null);return a.cljs$core$IFn$_invoke$arity$11?a.cljs$core$IFn$_invoke$arity$11(b,c,d,e,f,g,h,k,l,m,n):a.call(null,b,c,d,e,f,g,h,k,l,m,n)},q=function(a,b,c,d,e,f,g,h,k,l,m,n,p){a=this;a=a.val.cljs$core$IFn$_invoke$arity$0?a.val.cljs$core$IFn$_invoke$arity$0():a.val.call(null);return a.cljs$core$IFn$_invoke$arity$12?a.cljs$core$IFn$_invoke$arity$12(b,
c,d,e,f,g,h,k,l,m,n,p):a.call(null,b,c,d,e,f,g,h,k,l,m,n,p)},r=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q){a=this;a=a.val.cljs$core$IFn$_invoke$arity$0?a.val.cljs$core$IFn$_invoke$arity$0():a.val.call(null);return a.cljs$core$IFn$_invoke$arity$13?a.cljs$core$IFn$_invoke$arity$13(b,c,d,e,f,g,h,k,l,m,n,p,q):a.call(null,b,c,d,e,f,g,h,k,l,m,n,p,q)},t=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r){a=this;a=a.val.cljs$core$IFn$_invoke$arity$0?a.val.cljs$core$IFn$_invoke$arity$0():a.val.call(null);return a.cljs$core$IFn$_invoke$arity$14?
a.cljs$core$IFn$_invoke$arity$14(b,c,d,e,f,g,h,k,l,m,n,p,q,r):a.call(null,b,c,d,e,f,g,h,k,l,m,n,p,q,r)},u=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t){a=this;a=a.val.cljs$core$IFn$_invoke$arity$0?a.val.cljs$core$IFn$_invoke$arity$0():a.val.call(null);return a.cljs$core$IFn$_invoke$arity$15?a.cljs$core$IFn$_invoke$arity$15(b,c,d,e,f,g,h,k,l,m,n,p,q,r,t):a.call(null,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t)},v=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u){a=this;a=a.val.cljs$core$IFn$_invoke$arity$0?a.val.cljs$core$IFn$_invoke$arity$0():
a.val.call(null);return a.cljs$core$IFn$_invoke$arity$16?a.cljs$core$IFn$_invoke$arity$16(b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u):a.call(null,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u)},w=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v){a=this;a=a.val.cljs$core$IFn$_invoke$arity$0?a.val.cljs$core$IFn$_invoke$arity$0():a.val.call(null);return a.cljs$core$IFn$_invoke$arity$17?a.cljs$core$IFn$_invoke$arity$17(b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v):a.call(null,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v)},x=function(a,b,c,d,e,f,g,h,k,
l,m,n,p,q,r,t,u,v,w){a=this;a=a.val.cljs$core$IFn$_invoke$arity$0?a.val.cljs$core$IFn$_invoke$arity$0():a.val.call(null);return a.cljs$core$IFn$_invoke$arity$18?a.cljs$core$IFn$_invoke$arity$18(b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w):a.call(null,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w)},y=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x){a=this;a=a.val.cljs$core$IFn$_invoke$arity$0?a.val.cljs$core$IFn$_invoke$arity$0():a.val.call(null);return a.cljs$core$IFn$_invoke$arity$19?a.cljs$core$IFn$_invoke$arity$19(b,
c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x):a.call(null,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x)},C=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,y){a=this;a=a.val.cljs$core$IFn$_invoke$arity$0?a.val.cljs$core$IFn$_invoke$arity$0():a.val.call(null);return a.cljs$core$IFn$_invoke$arity$20?a.cljs$core$IFn$_invoke$arity$20(b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,y):a.call(null,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,y)},L=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,y,C){a=this;return cljs.core.apply.cljs$core$IFn$_invoke$arity$variadic(a.val.cljs$core$IFn$_invoke$arity$0?
a.val.cljs$core$IFn$_invoke$arity$0():a.val.call(null),b,c,d,e,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,y,C],0))};a=function(a,A,z,D,E,B,G,H,J,I,K,F,M,N,O,P,Q,R,S,T,U,V){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,A);case 3:return d.call(this,a,A,z);case 4:return e.call(this,a,A,z,D);case 5:return f.call(this,a,A,z,D,E);case 6:return g.call(this,a,A,z,D,E,B);case 7:return h.call(this,a,A,z,D,E,B,G);case 8:return k.call(this,
a,A,z,D,E,B,G,H);case 9:return l.call(this,a,A,z,D,E,B,G,H,J);case 10:return m.call(this,a,A,z,D,E,B,G,H,J,I);case 11:return n.call(this,a,A,z,D,E,B,G,H,J,I,K);case 12:return p.call(this,a,A,z,D,E,B,G,H,J,I,K,F);case 13:return q.call(this,a,A,z,D,E,B,G,H,J,I,K,F,M);case 14:return r.call(this,a,A,z,D,E,B,G,H,J,I,K,F,M,N);case 15:return t.call(this,a,A,z,D,E,B,G,H,J,I,K,F,M,N,O);case 16:return u.call(this,a,A,z,D,E,B,G,H,J,I,K,F,M,N,O,P);case 17:return v.call(this,a,A,z,D,E,B,G,H,J,I,K,F,M,N,O,P,Q);
case 18:return w.call(this,a,A,z,D,E,B,G,H,J,I,K,F,M,N,O,P,Q,R);case 19:return x.call(this,a,A,z,D,E,B,G,H,J,I,K,F,M,N,O,P,Q,R,S);case 20:return y.call(this,a,A,z,D,E,B,G,H,J,I,K,F,M,N,O,P,Q,R,S,T);case 21:return C.call(this,a,A,z,D,E,B,G,H,J,I,K,F,M,N,O,P,Q,R,S,T,U);case 22:return L.call(this,a,A,z,D,E,B,G,H,J,I,K,F,M,N,O,P,Q,R,S,T,U,V)}throw Error("Invalid arity: "+(arguments.length-1));};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;a.cljs$core$IFn$_invoke$arity$3=d;a.cljs$core$IFn$_invoke$arity$4=
e;a.cljs$core$IFn$_invoke$arity$5=f;a.cljs$core$IFn$_invoke$arity$6=g;a.cljs$core$IFn$_invoke$arity$7=h;a.cljs$core$IFn$_invoke$arity$8=k;a.cljs$core$IFn$_invoke$arity$9=l;a.cljs$core$IFn$_invoke$arity$10=m;a.cljs$core$IFn$_invoke$arity$11=n;a.cljs$core$IFn$_invoke$arity$12=p;a.cljs$core$IFn$_invoke$arity$13=q;a.cljs$core$IFn$_invoke$arity$14=r;a.cljs$core$IFn$_invoke$arity$15=t;a.cljs$core$IFn$_invoke$arity$16=u;a.cljs$core$IFn$_invoke$arity$17=v;a.cljs$core$IFn$_invoke$arity$18=w;a.cljs$core$IFn$_invoke$arity$19=
x;a.cljs$core$IFn$_invoke$arity$20=y;a.cljs$core$IFn$_invoke$arity$21=C;a.cljs$core$IFn$_invoke$arity$22=L;return a}();cljs.core.Var.prototype.apply=function(a,b){return this.call.apply(this,[this].concat(cljs.core.aclone(b)))};cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$0=function(){var a=this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null);return a.cljs$core$IFn$_invoke$arity$0?a.cljs$core$IFn$_invoke$arity$0():a.call(null)};
cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$1=function(a){var b=this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null);return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a)};
cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$2=function(a,b){var c=this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null);return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b)};
cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$3=function(a,b,c){var d=this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null);return d.cljs$core$IFn$_invoke$arity$3?d.cljs$core$IFn$_invoke$arity$3(a,b,c):d.call(null,a,b,c)};
cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){var e=this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null);return e.cljs$core$IFn$_invoke$arity$4?e.cljs$core$IFn$_invoke$arity$4(a,b,c,d):e.call(null,a,b,c,d)};
cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$5=function(a,b,c,d,e){var f=this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null);return f.cljs$core$IFn$_invoke$arity$5?f.cljs$core$IFn$_invoke$arity$5(a,b,c,d,e):f.call(null,a,b,c,d,e)};
cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$6=function(a,b,c,d,e,f){var g=this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null);return g.cljs$core$IFn$_invoke$arity$6?g.cljs$core$IFn$_invoke$arity$6(a,b,c,d,e,f):g.call(null,a,b,c,d,e,f)};
cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$7=function(a,b,c,d,e,f,g){var h=this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null);return h.cljs$core$IFn$_invoke$arity$7?h.cljs$core$IFn$_invoke$arity$7(a,b,c,d,e,f,g):h.call(null,a,b,c,d,e,f,g)};
cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$8=function(a,b,c,d,e,f,g,h){var k=this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null);return k.cljs$core$IFn$_invoke$arity$8?k.cljs$core$IFn$_invoke$arity$8(a,b,c,d,e,f,g,h):k.call(null,a,b,c,d,e,f,g,h)};
cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$9=function(a,b,c,d,e,f,g,h,k){var l=this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null);return l.cljs$core$IFn$_invoke$arity$9?l.cljs$core$IFn$_invoke$arity$9(a,b,c,d,e,f,g,h,k):l.call(null,a,b,c,d,e,f,g,h,k)};
cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$10=function(a,b,c,d,e,f,g,h,k,l){var m=this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null);return m.cljs$core$IFn$_invoke$arity$10?m.cljs$core$IFn$_invoke$arity$10(a,b,c,d,e,f,g,h,k,l):m.call(null,a,b,c,d,e,f,g,h,k,l)};
cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$11=function(a,b,c,d,e,f,g,h,k,l,m){var n=this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null);return n.cljs$core$IFn$_invoke$arity$11?n.cljs$core$IFn$_invoke$arity$11(a,b,c,d,e,f,g,h,k,l,m):n.call(null,a,b,c,d,e,f,g,h,k,l,m)};
cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$12=function(a,b,c,d,e,f,g,h,k,l,m,n){var p=this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null);return p.cljs$core$IFn$_invoke$arity$12?p.cljs$core$IFn$_invoke$arity$12(a,b,c,d,e,f,g,h,k,l,m,n):p.call(null,a,b,c,d,e,f,g,h,k,l,m,n)};
cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$13=function(a,b,c,d,e,f,g,h,k,l,m,n,p){var q=this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null);return q.cljs$core$IFn$_invoke$arity$13?q.cljs$core$IFn$_invoke$arity$13(a,b,c,d,e,f,g,h,k,l,m,n,p):q.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p)};
cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$14=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q){var r=this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null);return r.cljs$core$IFn$_invoke$arity$14?r.cljs$core$IFn$_invoke$arity$14(a,b,c,d,e,f,g,h,k,l,m,n,p,q):r.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,q)};
cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$15=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r){var t=this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null);return t.cljs$core$IFn$_invoke$arity$15?t.cljs$core$IFn$_invoke$arity$15(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r):t.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,q,r)};
cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$16=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t){var u=this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null);return u.cljs$core$IFn$_invoke$arity$16?u.cljs$core$IFn$_invoke$arity$16(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t):u.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t)};
cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$17=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u){var v=this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null);return v.cljs$core$IFn$_invoke$arity$17?v.cljs$core$IFn$_invoke$arity$17(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u):v.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u)};
cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$18=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v){var w=this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null);return w.cljs$core$IFn$_invoke$arity$18?w.cljs$core$IFn$_invoke$arity$18(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v):w.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v)};
cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$19=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w){var x=this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null);return x.cljs$core$IFn$_invoke$arity$19?x.cljs$core$IFn$_invoke$arity$19(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w):x.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w)};
cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$20=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x){var y=this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null);return y.cljs$core$IFn$_invoke$arity$20?y.cljs$core$IFn$_invoke$arity$20(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x):y.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x)};
cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$21=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,y){return cljs.core.apply.cljs$core$IFn$_invoke$arity$variadic(this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null),a,b,c,d,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,y],0))};
cljs.core.Var.getBasis=function(){return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Symbol(null,"val","val",1769233139,null),new cljs.core.Symbol(null,"sym","sym",195671222,null),new cljs.core.Symbol(null,"_meta","_meta",-1716892533,null)],null)};cljs.core.Var.cljs$lang$type=!0;cljs.core.Var.cljs$lang$ctorStr="cljs.core/Var";cljs.core.Var.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/Var")};
cljs.core.__GT_Var=function(a,b,c){return new cljs.core.Var(a,b,c)};cljs.core.var_QMARK_=function(a){return a instanceof cljs.core.Var};cljs.core.iterable_QMARK_=function(a){return null!=a?a.cljs$lang$protocol_mask$partition1$&131072||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$IIterable$?!0:a.cljs$lang$protocol_mask$partition1$?!1:cljs.core.native_satisfies_QMARK_(cljs.core.IIterable,a):cljs.core.native_satisfies_QMARK_(cljs.core.IIterable,a)};cljs.core.clone=function(a){return cljs.core._clone(a)};
cljs.core.cloneable_QMARK_=function(a){return null!=a?a.cljs$lang$protocol_mask$partition1$&8192||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ICloneable$?!0:a.cljs$lang$protocol_mask$partition1$?!1:cljs.core.native_satisfies_QMARK_(cljs.core.ICloneable,a):cljs.core.native_satisfies_QMARK_(cljs.core.ICloneable,a)};
cljs.core.seq=function(a){if(null==a)return null;if(null!=a&&(a.cljs$lang$protocol_mask$partition0$&8388608||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeqable$))return a.cljs$core$ISeqable$_seq$arity$1(null);if(cljs.core.array_QMARK_(a)||"string"===typeof a)return 0===a.length?null:new cljs.core.IndexedSeq(a,0,null);if(cljs.core.native_satisfies_QMARK_(cljs.core.ISeqable,a))return cljs.core._seq(a);throw Error([cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)," is not ISeqable"].join(""));};
cljs.core.first=function(a){if(null==a)return null;if(null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$))return a.cljs$core$ISeq$_first$arity$1(null);a=cljs.core.seq(a);return null==a?null:cljs.core._first(a)};
cljs.core.rest=function(a){return null!=a?null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?a.cljs$core$ISeq$_rest$arity$1(null):(a=cljs.core.seq(a))?cljs.core._rest(a):cljs.core.List.EMPTY:cljs.core.List.EMPTY};cljs.core.next=function(a){return null==a?null:null!=a&&(a.cljs$lang$protocol_mask$partition0$&128||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$INext$)?a.cljs$core$INext$_next$arity$1(null):cljs.core.seq(cljs.core.rest(a))};
cljs.core._EQ_=function(a){switch(arguments.length){case 1:return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d=d)return-1;!(0c&&(c+=d,c=0>c?0:c);for(;;)if(cc?d+c:c;for(;;)if(0<=c){if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(a,c),b))return c;--c}else return-1};cljs.core._lastIndexOf.cljs$lang$maxFixedArity=3;
cljs.core.IndexedSeqIterator=function(a,b){this.arr=a;this.i=b};cljs.core.IndexedSeqIterator.prototype.hasNext=function(){return this.ia?0:a};cljs.core.IndexedSeq.prototype.cljs$core$IReversible$_rseq$arity$1=function(a){a=this.cljs$core$ICounted$_count$arity$1(null);return 0a:a instanceof goog.math.Integer?a.isNegative():a instanceof goog.math.Long?a.isNegative():!1};cljs.core.nat_int_QMARK_=function(a){return cljs.core.integer_QMARK_(a)?!(0>a):a instanceof goog.math.Integer?cljs.core.not(a.isNegative()):a instanceof goog.math.Long?cljs.core.not(a.isNegative()):!1};cljs.core.float_QMARK_=function(a){return"number"===typeof a};cljs.core.double_QMARK_=function(a){return"number"===typeof a};
cljs.core.infinite_QMARK_=function(a){return a===Number.POSITIVE_INFINITY||a===Number.NEGATIVE_INFINITY};cljs.core.contains_QMARK_=function(a,b){return cljs.core.get.cljs$core$IFn$_invoke$arity$3(a,b,cljs.core.lookup_sentinel)===cljs.core.lookup_sentinel?!1:!0};cljs.core.find=function(a,b){return cljs.core.ifind_QMARK_(a)?cljs.core._find(a,b):null!=a&&cljs.core.associative_QMARK_(a)&&cljs.core.contains_QMARK_(a,b)?new cljs.core.MapEntry(b,cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,b),null):null};
cljs.core.distinct_QMARK_=function(a){switch(arguments.length){case 1:return cljs.core.distinct_QMARK_.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.distinct_QMARK_.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(dd?1:0===c?0:cljs.core.compare_indexed.cljs$core$IFn$_invoke$arity$4(a,b,c,0)};cljs.core.compare_indexed.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){for(;;){var e=cljs.core.compare(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(a,d),cljs.core.nth.cljs$core$IFn$_invoke$arity$2(b,d));if(0===e&&d+1b};cljs.core._GT_.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){for(;;)if(a>b)if(cljs.core.next(c))a=b,b=cljs.core.first(c),c=cljs.core.next(c);else return b>cljs.core.first(c);else return!1};cljs.core._GT_.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);c=cljs.core.next(c);return cljs.core._GT_.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};
cljs.core._GT_.cljs$lang$maxFixedArity=2;cljs.core._GT__EQ_=function(a){switch(arguments.length){case 1:return cljs.core._GT__EQ_.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core._GT__EQ_.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d=b};cljs.core._GT__EQ_.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){for(;;)if(a>=b)if(cljs.core.next(c))a=b,b=cljs.core.first(c),c=cljs.core.next(c);else return b>=cljs.core.first(c);else return!1};
cljs.core._GT__EQ_.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);c=cljs.core.next(c);return cljs.core._GT__EQ_.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};cljs.core._GT__EQ_.cljs$lang$maxFixedArity=2;cljs.core.dec=function(a){return a-1};
cljs.core.max=function(a){switch(arguments.length){case 1:return cljs.core.max.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.max.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(db?a:b};cljs.core.max.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.max,a>b?a:b,c)};cljs.core.max.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);c=cljs.core.next(c);return cljs.core.max.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};cljs.core.max.cljs$lang$maxFixedArity=2;
cljs.core.min=function(a){switch(arguments.length){case 1:return cljs.core.min.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.min.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d>b};cljs.core.bit_shift_right_zero_fill=function(a,b){return a>>>b};cljs.core.unsigned_bit_shift_right=function(a,b){return a>>>b};
cljs.core.bit_count=function(a){a-=a>>1&1431655765;a=(a&858993459)+(a>>2&858993459);return 16843009*(a+(a>>4)&252645135)>>24};
cljs.core._EQ__EQ_=function(a){switch(arguments.length){case 1:return cljs.core._EQ__EQ_.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core._EQ__EQ_.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(da};cljs.core.nthnext=function(a,b){for(a=cljs.core.seq(a);;)if(a&&0c:b}()))b[c]=a.next(),c+=1;else return cljs.core.chunk_cons(cljs.core.array_chunk.cljs$core$IFn$_invoke$arity$3(b,0,c),cljs.core.chunkIteratorSeq.cljs$core$IFn$_invoke$arity$1?cljs.core.chunkIteratorSeq.cljs$core$IFn$_invoke$arity$1(a):cljs.core.chunkIteratorSeq.call(null,a));else return null},null,null)};
cljs.core.TransformerIterator=function(a,b,c,d,e,f){this.buffer=a;this._next=b;this.completed=c;this.xf=d;this.sourceIter=e;this.multi=f};
cljs.core.TransformerIterator.prototype.step=function(){if(this._next!==cljs.core.NONE)return!0;for(;;)if(this._next===cljs.core.NONE)if(this.buffer.isEmpty()){if(this.completed)return!1;if(this.sourceIter.hasNext()){if(this.multi)var a=cljs.core.apply.cljs$core$IFn$_invoke$arity$2(this.xf,cljs.core.cons(null,this.sourceIter.next()));else a=this.sourceIter.next(),a=this.xf.cljs$core$IFn$_invoke$arity$2?this.xf.cljs$core$IFn$_invoke$arity$2(null,a):this.xf.call(null,null,a);cljs.core.reduced_QMARK_(a)&&
(this.xf.cljs$core$IFn$_invoke$arity$1?this.xf.cljs$core$IFn$_invoke$arity$1(null):this.xf.call(null,null),this.completed=!0)}else this.xf.cljs$core$IFn$_invoke$arity$1?this.xf.cljs$core$IFn$_invoke$arity$1(null):this.xf.call(null,null),this.completed=!0}else this._next=this.buffer.remove();else return!0};cljs.core.TransformerIterator.prototype.hasNext=function(){return this.step()};
cljs.core.TransformerIterator.prototype.next=function(){if(this.hasNext()){var a=this._next;this._next=cljs.core.NONE;return a}throw Error("No such element");};cljs.core.TransformerIterator.prototype.remove=function(){return Error("Unsupported operation")};
cljs.core.TransformerIterator.getBasis=function(){return new cljs.core.PersistentVector(null,6,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.with_meta(new cljs.core.Symbol(null,"buffer","buffer",-2037140571,null),new cljs.core.PersistentArrayMap(null,1,[new cljs.core.Keyword(null,"mutable","mutable",875778266),!0],null)),cljs.core.with_meta(new cljs.core.Symbol(null,"_next","_next",101877036,null),new cljs.core.PersistentArrayMap(null,1,[new cljs.core.Keyword(null,"mutable","mutable",875778266),
!0],null)),cljs.core.with_meta(new cljs.core.Symbol(null,"completed","completed",1154475024,null),new cljs.core.PersistentArrayMap(null,1,[new cljs.core.Keyword(null,"mutable","mutable",875778266),!0],null)),cljs.core.with_meta(new cljs.core.Symbol(null,"xf","xf",2042434515,null),new cljs.core.PersistentArrayMap(null,1,[new cljs.core.Keyword(null,"mutable","mutable",875778266),!0],null)),new cljs.core.Symbol(null,"sourceIter","sourceIter",1068220306,null),new cljs.core.Symbol(null,"multi","multi",
1450238522,null)],null)};cljs.core.TransformerIterator.cljs$lang$type=!0;cljs.core.TransformerIterator.cljs$lang$ctorStr="cljs.core/TransformerIterator";cljs.core.TransformerIterator.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/TransformerIterator")};cljs.core.__GT_TransformerIterator=function(a,b,c,d,e,f){return new cljs.core.TransformerIterator(a,b,c,d,e,f)};
var G__14423_14426=cljs.core.TransformerIterator.prototype,G__14424_14427=cljs.core.ITER_SYMBOL,G__14425_14428=function(a,b){return function(){return cljs.core.es6_iterator(this)}}(G__14423_14426,G__14424_14427);goog.object.set(G__14423_14426,G__14424_14427,G__14425_14428);
cljs.core.transformer_iterator=function(a,b,c){var d=new cljs.core.TransformerIterator(cljs.core.EMPTY,cljs.core.NONE,!1,null,b,c);d.xf=function(){var b=function(a){return function(){var b=null,c=function(b,c){a.buffer=a.buffer.add(c);return b};b=function(a,b){switch(arguments.length){case 0:return null;case 1:return a;case 2:return c.call(this,a,b)}throw Error("Invalid arity: "+(arguments.length-1));};b.cljs$core$IFn$_invoke$arity$0=function(){return null};b.cljs$core$IFn$_invoke$arity$1=function(a){return a};
b.cljs$core$IFn$_invoke$arity$2=c;return b}()}(d);return a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(b):a.call(null,b)}();return d};cljs.core.TransformerIterator.create=function(a,b){return cljs.core.transformer_iterator(a,b,!1)};cljs.core.TransformerIterator.createMulti=function(a,b){return cljs.core.transformer_iterator(a,new cljs.core.MultiIterator(cljs.core.to_array(b)),!0)};
cljs.core.sequence=function(a){switch(arguments.length){case 1:return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.sequence.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(da?0:a-1>>>5<<5};cljs.core.new_path=function(a,b,c){for(;;){if(0===b)return c;var d=cljs.core.pv_fresh_node(a);cljs.core.pv_aset(d,0,c);c=d;b-=5}};
cljs.core.push_tail=function(a,b,c,d){var e=cljs.core.pv_clone_node(c),f=a.cnt-1>>>b&31;5===b?cljs.core.pv_aset(e,f,d):(c=cljs.core.pv_aget(c,f),null!=c?(b-=5,a=cljs.core.push_tail.cljs$core$IFn$_invoke$arity$4?cljs.core.push_tail.cljs$core$IFn$_invoke$arity$4(a,b,c,d):cljs.core.push_tail.call(null,a,b,c,d)):a=cljs.core.new_path(null,b-5,d),cljs.core.pv_aset(e,f,a));return e};
cljs.core.vector_index_out_of_bounds=function(a,b){throw Error(["No item ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)," in vector of length ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join(""));};cljs.core.first_array_for_longvec=function(a){var b=a.root;for(a=a.shift;;)if(0=cljs.core.tail_off(a))return a.tail;var c=a.root;for(a=a.shift;;)if(0>>a&31),a-=5;else return c.arr};
cljs.core.array_for=function(a,b){return 0<=b&&b>>b&31;cljs.core.pv_aset(f,g,function(){var f=b-5,k=cljs.core.pv_aget(c,g);return cljs.core.do_assoc.cljs$core$IFn$_invoke$arity$5?cljs.core.do_assoc.cljs$core$IFn$_invoke$arity$5(a,f,k,d,e):cljs.core.do_assoc.call(null,a,f,k,d,e)}())}return f};
cljs.core.pop_tail=function(a,b,c){var d=a.cnt-2>>>b&31;if(5=this.cnt?new cljs.core.IndexedSeq(this.tail,0,null):cljs.core.chunked_seq.cljs$core$IFn$_invoke$arity$4(this,cljs.core.first_array_for_longvec(this),0,0)};cljs.core.PersistentVector.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.core.PersistentVector(b,this.cnt,this.shift,this.root,this.tail,this.__hash)};
cljs.core.PersistentVector.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){if(32>this.cnt-cljs.core.tail_off(this)){a=this.tail.length;for(var c=Array(a+1),d=0;;)if(d>>5>1<c)return new cljs.core.PersistentVector(null,c,5,cljs.core.PersistentVector.EMPTY_NODE,a,null);var d=a.slice(0,32);b=32;for(var e=(new cljs.core.PersistentVector(null,32,5,cljs.core.PersistentVector.EMPTY_NODE,d,null)).cljs$core$IEditableCollection$_as_transient$arity$1(null);;)if(bb)return null;a=this.start+b;return ab||this.end<=this.start+b?cljs.core.vector_index_out_of_bounds(b,this.end-this.start):cljs.core._nth.cljs$core$IFn$_invoke$arity$2(this.v,this.start+b)};cljs.core.Subvec.prototype.cljs$core$IIndexed$_nth$arity$3=function(a,b,c){return 0>b||this.end<=this.start+b?c:cljs.core._nth.cljs$core$IFn$_invoke$arity$3(this.v,this.start+b,c)};
cljs.core.Subvec.prototype.cljs$core$IVector$_assoc_n$arity$3=function(a,b,c){var d=this,e=d.start+b;if(0>b||d.end+1<=e)throw Error(["Index ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)," out of bounds [0,",cljs.core.str.cljs$core$IFn$_invoke$arity$1(this.cljs$core$ICounted$_count$arity$1(null)),"]"].join(""));return cljs.core.build_subvec(d.meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(d.v,e,c),d.start,function(){var a=d.end,b=e+1;return a>b?a:b}(),null)};
cljs.core.Subvec.prototype.cljs$core$IIterable$_iterator$arity$1=function(a){return null!=this.v&&cljs.core.PROTOCOL_SENTINEL===this.v.cljs$core$APersistentVector$?cljs.core.ranged_iterator(this.v,this.start,this.end):cljs.core.seq_iter(this)};cljs.core.Subvec.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta};cljs.core.Subvec.prototype.cljs$core$ICloneable$_clone$arity$1=function(a){return new cljs.core.Subvec(this.meta,this.v,this.start,this.end,this.__hash)};
cljs.core.Subvec.prototype.cljs$core$ICounted$_count$arity$1=function(a){return this.end-this.start};cljs.core.Subvec.prototype.cljs$core$IStack$_peek$arity$1=function(a){return cljs.core._nth.cljs$core$IFn$_invoke$arity$2(this.v,this.end-1)};cljs.core.Subvec.prototype.cljs$core$IStack$_pop$arity$1=function(a){if(this.start===this.end)throw Error("Can't pop empty vector");return cljs.core.build_subvec(this.meta,this.v,this.start,this.end-1,null)};
cljs.core.Subvec.prototype.cljs$core$IReversible$_rseq$arity$1=function(a){return this.start!==this.end?new cljs.core.RSeq(this,this.end-this.start-1,null):null};cljs.core.Subvec.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=cljs.core.hash_ordered_coll(this)};cljs.core.Subvec.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return cljs.core.equiv_sequential(this,b)};
cljs.core.Subvec.prototype.cljs$core$IEmptyableCollection$_empty$arity$1=function(a){return cljs.core._with_meta(cljs.core.PersistentVector.EMPTY,this.meta)};cljs.core.Subvec.prototype.cljs$core$IReduce$_reduce$arity$2=function(a,b){return null!=this.v&&cljs.core.PROTOCOL_SENTINEL===this.v.cljs$core$APersistentVector$?cljs.core.pv_reduce.cljs$core$IFn$_invoke$arity$4(this.v,b,this.start,this.end):cljs.core.ci_reduce.cljs$core$IFn$_invoke$arity$2(this,b)};
cljs.core.Subvec.prototype.cljs$core$IReduce$_reduce$arity$3=function(a,b,c){return null!=this.v&&cljs.core.PROTOCOL_SENTINEL===this.v.cljs$core$APersistentVector$?cljs.core.pv_reduce.cljs$core$IFn$_invoke$arity$5(this.v,b,c,this.start,this.end):cljs.core.ci_reduce.cljs$core$IFn$_invoke$arity$3(this,b,c)};
cljs.core.Subvec.prototype.cljs$core$IAssociative$_assoc$arity$3=function(a,b,c){if("number"===typeof b)return this.cljs$core$IVector$_assoc_n$arity$3(null,b,c);throw Error("Subvec's key for assoc must be a number.");};
cljs.core.Subvec.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){var b=this;return function(a){return function f(c){return c===b.end?null:cljs.core.cons(cljs.core._nth.cljs$core$IFn$_invoke$arity$2(b.v,c),new cljs.core.LazySeq(null,function(a){return function(){return f(c+1)}}(a),null,null))}}(this)(b.start)};cljs.core.Subvec.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return cljs.core.build_subvec(b,this.v,this.start,this.end,this.__hash)};
cljs.core.Subvec.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return cljs.core.build_subvec(this.meta,cljs.core._assoc_n(this.v,this.end,b),this.start,this.end+1,null)};
cljs.core.Subvec.prototype.call=function(){var a=null;a=function(a,c,d){switch(arguments.length){case 2:return this.cljs$core$IIndexed$_nth$arity$2(null,c);case 3:return this.cljs$core$IIndexed$_nth$arity$3(null,c,d)}throw Error("Invalid arity: "+(arguments.length-1));};a.cljs$core$IFn$_invoke$arity$2=function(a,c){return this.cljs$core$IIndexed$_nth$arity$2(null,c)};a.cljs$core$IFn$_invoke$arity$3=function(a,c,d){return this.cljs$core$IIndexed$_nth$arity$3(null,c,d)};return a}();
cljs.core.Subvec.prototype.apply=function(a,b){return this.call.apply(this,[this].concat(cljs.core.aclone(b)))};cljs.core.Subvec.prototype.cljs$core$IFn$_invoke$arity$1=function(a){return this.cljs$core$IIndexed$_nth$arity$2(null,a)};cljs.core.Subvec.prototype.cljs$core$IFn$_invoke$arity$2=function(a,b){return this.cljs$core$IIndexed$_nth$arity$3(null,a,b)};
cljs.core.Subvec.getBasis=function(){return new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Symbol(null,"meta","meta",-1154898805,null),new cljs.core.Symbol(null,"v","v",1661996586,null),new cljs.core.Symbol(null,"start","start",1285322546,null),new cljs.core.Symbol(null,"end","end",1372345569,null),cljs.core.with_meta(new cljs.core.Symbol(null,"__hash","__hash",-1328796629,null),new cljs.core.PersistentArrayMap(null,1,[new cljs.core.Keyword(null,"mutable",
"mutable",875778266),!0],null))],null)};cljs.core.Subvec.cljs$lang$type=!0;cljs.core.Subvec.cljs$lang$ctorStr="cljs.core/Subvec";cljs.core.Subvec.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/Subvec")};cljs.core.__GT_Subvec=function(a,b,c,d,e){return new cljs.core.Subvec(a,b,c,d,e)};var G__15050_15053=cljs.core.Subvec.prototype,G__15051_15054=cljs.core.ITER_SYMBOL,G__15052_15055=function(a,b){return function(){return cljs.core.es6_iterator(this)}}(G__15050_15053,G__15051_15054);
goog.object.set(G__15050_15053,G__15051_15054,G__15052_15055);cljs.core.build_subvec=function(a,b,c,d,e){for(;;)if(b instanceof cljs.core.Subvec)c=b.start+c,d=b.start+d,b=b.v;else{if(!cljs.core.vector_QMARK_(b))throw Error("v must satisfy IVector");var f=cljs.core.count(b);if(0>c||0>d||c>f||d>f)throw Error("Index out of bounds");return new cljs.core.Subvec(a,b,c,d,e)}};
cljs.core.subvec=function(a){switch(arguments.length){case 2:return cljs.core.subvec.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.subvec.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};cljs.core.subvec.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core.subvec.cljs$core$IFn$_invoke$arity$3(a,b,cljs.core.count(a))};
cljs.core.subvec.cljs$core$IFn$_invoke$arity$3=function(a,b,c){if(null==b||null==c)throw Error("Assert failed: (and (not (nil? start)) (not (nil? end)))");return cljs.core.build_subvec(null,a,b|0,c|0,null)};cljs.core.subvec.cljs$lang$maxFixedArity=3;cljs.core.tv_ensure_editable=function(a,b){return a===b.edit?b:new cljs.core.VectorNode(a,cljs.core.aclone(b.arr))};cljs.core.tv_editable_root=function(a){return new cljs.core.VectorNode({},cljs.core.aclone(a.arr))};
cljs.core.tv_editable_tail=function(a){var b=[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null];cljs.core.array_copy(a,0,b,0,a.length);return b};
cljs.core.tv_push_tail=function(a,b,c,d){var e=cljs.core.tv_ensure_editable(a.root.edit,c),f=a.cnt-1>>>b&31;cljs.core.pv_aset(e,f,5===b?d:function(){var c=cljs.core.pv_aget(e,f);if(null!=c){var h=b-5;return cljs.core.tv_push_tail.cljs$core$IFn$_invoke$arity$4?cljs.core.tv_push_tail.cljs$core$IFn$_invoke$arity$4(a,h,c,d):cljs.core.tv_push_tail.call(null,a,h,c,d)}return cljs.core.new_path(a.root.edit,b-5,d)}());return e};
cljs.core.tv_pop_tail=function(a,b,c){c=cljs.core.tv_ensure_editable(a.root.edit,c);var d=a.cnt-2>>>b&31;if(5=cljs.core.tail_off(a))return a.tail;var c=a.root,d=c;for(a=a.shift;;)if(0>>a&31)),a-=5;else return d.arr};cljs.core.TransientVector=function(a,b,c,d){this.cnt=a;this.shift=b;this.root=c;this.tail=d;this.cljs$lang$protocol_mask$partition1$=88;this.cljs$lang$protocol_mask$partition0$=275};
cljs.core.TransientVector.prototype.cljs$core$ITransientCollection$_conj_BANG_$arity$2=function(a,b){if(this.root.edit){if(32>this.cnt-cljs.core.tail_off(this))this.tail[this.cnt&31]=b;else{a=new cljs.core.VectorNode(this.root.edit,this.tail);var c=[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null];c[0]=b;this.tail=c;this.cnt>>>5>1<>>a&31;cljs.core.pv_aset(e,f,l(a-5,cljs.core.pv_aget(e,f)))}return e}}(e)(d.shift,d.root)}(),d.root=a),e;if(b===d.cnt)return e.cljs$core$ITransientCollection$_conj_BANG_$arity$2(null,
c);throw Error(["Index ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)," out of bounds for TransientVector of length",cljs.core.str.cljs$core$IFn$_invoke$arity$1(d.cnt)].join(""));}throw Error("assoc! after persistent!");};
cljs.core.TransientVector.prototype.cljs$core$ITransientVector$_pop_BANG_$arity$1=function(a){if(this.root.edit){if(0===this.cnt)throw Error("Can't pop empty vector");if(1===this.cnt)this.cnt=0;else if(0<(this.cnt-1&31))--this.cnt;else{a=cljs.core.unchecked_editable_array_for(this,this.cnt-2);var b=cljs.core.tv_pop_tail(this,this.shift,this.root);b=null!=b?b:new cljs.core.VectorNode(this.root.edit,[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
null,null,null,null,null,null,null,null,null,null,null,null]);5b?1:0};
cljs.core.obj_map__GT_hash_map=function(a,b,c){var d=a.keys,e=d.length,f=a.strobj;a=cljs.core.meta(a);for(var g=0,h=cljs.core.transient$(cljs.core.PersistentHashMap.EMPTY);;)if(gcljs.core.ObjMap.HASHMAP_THRESHOLD||this.keys.length>=cljs.core.ObjMap.HASHMAP_THRESHOLD)return cljs.core.obj_map__GT_hash_map(this,b,c);if(null!=cljs.core.scan_array(1,b,this.keys))return a=cljs.core.obj_clone(this.strobj,this.keys),goog.object.set(a,b,c),new cljs.core.ObjMap(this.meta,this.keys,a,this.update_count+1,null);a=cljs.core.obj_clone(this.strobj,this.keys);var d=cljs.core.aclone(this.keys);
goog.object.set(a,b,c);d.push(b);return new cljs.core.ObjMap(this.meta,d,a,this.update_count+1,null)}return cljs.core.obj_map__GT_hash_map(this,b,c)};cljs.core.ObjMap.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2=function(a,b){return goog.isString(b)&&null!=cljs.core.scan_array(1,b,this.keys)?!0:!1};
cljs.core.ObjMap.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){var b=this;return 0=a)return new cljs.core.PersistentArrayMap(this.meta,this.cnt-1,c,null);cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(b,this.arr[d])?d+=2:(c[e]=this.arr[d],c[e+1]=this.arr[d+1],e+=2,d+=2)}}else return this};
cljs.core.PersistentArrayMap.prototype.cljs$core$IAssociative$_assoc$arity$3=function(a,b,c){a=cljs.core.array_map_index_of(this,b);if(-1===a)return this.cnt>>b&31};
cljs.core.clone_and_set=function(a){switch(arguments.length){case 3:return cljs.core.clone_and_set.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);case 5:return cljs.core.clone_and_set.cljs$core$IFn$_invoke$arity$5(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.clone_and_set.cljs$core$IFn$_invoke$arity$3=function(a,b,c){a=cljs.core.aclone(a);a[b]=c;return a};cljs.core.clone_and_set.cljs$core$IFn$_invoke$arity$5=function(a,b,c,d,e){a=cljs.core.aclone(a);a[b]=c;a[d]=e;return a};cljs.core.clone_and_set.cljs$lang$maxFixedArity=5;cljs.core.remove_pair=function(a,b){var c=Array(a.length-2);cljs.core.array_copy(a,0,c,0,2*b);cljs.core.array_copy(a,2*(b+1),c,2*b,c.length-2*b);return c};
cljs.core.bitmap_indexed_node_index=function(a,b){return cljs.core.bit_count(a&b-1)};cljs.core.bitpos=function(a,b){return 1<<(a>>>b&31)};
cljs.core.edit_and_set=function(a){switch(arguments.length){case 4:return cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$4(arguments[0],arguments[1],arguments[2],arguments[3]);case 6:return cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$6(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4],arguments[5]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){a=a.ensure_editable(b);a.arr[c]=d;return a};cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$6=function(a,b,c,d,e,f){a=a.ensure_editable(b);a.arr[c]=d;a.arr[e]=f;return a};cljs.core.edit_and_set.cljs$lang$maxFixedArity=6;
cljs.core.inode_kv_reduce=function(a,b,c){for(var d=a.length,e=0,f=c;;)if(eb?4:2*(b+1));cljs.core.array_copy(this.arr,0,c,0,2*b);return new cljs.core.BitmapIndexedNode(a,this.bitmap,c)};
cljs.core.BitmapIndexedNode.prototype.inode_without_BANG_=function(a,b,c,d,e){var f=1<<(c>>>b&31);if(0===(this.bitmap&f))return this;var g=cljs.core.bitmap_indexed_node_index(this.bitmap,f),h=this.arr[2*g],k=this.arr[2*g+1];return null==h?(b=k.inode_without_BANG_(a,b+5,c,d,e),b===k?this:null!=b?cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$4(this,a,2*g+1,b):this.bitmap===f?null:this.edit_and_remove_pair(a,f,g)):cljs.core.key_test(d,h)?(e.val=!0,this.edit_and_remove_pair(a,f,g)):this};
cljs.core.BitmapIndexedNode.prototype.edit_and_remove_pair=function(a,b,c){if(this.bitmap===b)return null;a=this.ensure_editable(a);var d=a.arr,e=d.length;a.bitmap^=b;cljs.core.array_copy(d,2*(c+1),d,2*c,e-2*(c+1));d[e-2]=null;d[e-1]=null;return a};cljs.core.BitmapIndexedNode.prototype.inode_seq=function(){return cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$1(this.arr)};cljs.core.BitmapIndexedNode.prototype.kv_reduce=function(a,b){return cljs.core.inode_kv_reduce(this.arr,a,b)};
cljs.core.BitmapIndexedNode.prototype.inode_lookup=function(a,b,c,d){var e=1<<(b>>>a&31);if(0===(this.bitmap&e))return d;var f=cljs.core.bitmap_indexed_node_index(this.bitmap,e);e=this.arr[2*f];f=this.arr[2*f+1];return null==e?f.inode_lookup(a+5,b,c,d):cljs.core.key_test(c,e)?f:d};
cljs.core.BitmapIndexedNode.prototype.inode_assoc_BANG_=function(a,b,c,d,e,f){var g=1<<(c>>>b&31),h=cljs.core.bitmap_indexed_node_index(this.bitmap,g);if(0===(this.bitmap&g)){var k=cljs.core.bit_count(this.bitmap);if(2*k>>b&31]=cljs.core.BitmapIndexedNode.EMPTY.inode_assoc_BANG_(a,b+5,c,d,e,f);for(e=d=0;;)if(32>d)0===(this.bitmap>>>d&1)?d+=1:(h[d]=null!=this.arr[e]?cljs.core.BitmapIndexedNode.EMPTY.inode_assoc_BANG_(a,b+5,cljs.core.hash(this.arr[e]),this.arr[e],this.arr[e+1],f):this.arr[e+1],e+=2,d+=1);else break;return new cljs.core.ArrayNode(a,k+1,h)}b=Array(2*(k+4));cljs.core.array_copy(this.arr,0,b,0,2*h);b[2*h]=d;b[2*h+1]=e;cljs.core.array_copy(this.arr,2*h,
b,2*(h+1),2*(k-h));f.val=!0;a=this.ensure_editable(a);a.arr=b;a.bitmap|=g;return a}k=this.arr[2*h];g=this.arr[2*h+1];if(null==k)return k=g.inode_assoc_BANG_(a,b+5,c,d,e,f),k===g?this:cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$4(this,a,2*h+1,k);if(cljs.core.key_test(d,k))return e===g?this:cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$4(this,a,2*h+1,e);f.val=!0;return cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$6(this,a,2*h,null,2*h+1,cljs.core.create_node.cljs$core$IFn$_invoke$arity$7(a,
b+5,k,g,c,d,e))};
cljs.core.BitmapIndexedNode.prototype.inode_assoc=function(a,b,c,d,e){var f=1<<(b>>>a&31),g=cljs.core.bitmap_indexed_node_index(this.bitmap,f);if(0===(this.bitmap&f)){var h=cljs.core.bit_count(this.bitmap);if(16<=h){g=[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null];g[b>>>a&31]=cljs.core.BitmapIndexedNode.EMPTY.inode_assoc(a+5,b,c,d,e);for(d=c=0;;)if(32>c)0===(this.bitmap>>>c&1)?c+=1:(g[c]=
null!=this.arr[d]?cljs.core.BitmapIndexedNode.EMPTY.inode_assoc(a+5,cljs.core.hash(this.arr[d]),this.arr[d],this.arr[d+1],e):this.arr[d+1],d+=2,c+=1);else break;return new cljs.core.ArrayNode(null,h+1,g)}a=Array(2*(h+1));cljs.core.array_copy(this.arr,0,a,0,2*g);a[2*g]=c;a[2*g+1]=d;cljs.core.array_copy(this.arr,2*g,a,2*(g+1),2*(h-g));e.val=!0;return new cljs.core.BitmapIndexedNode(null,this.bitmap|f,a)}h=this.arr[2*g];f=this.arr[2*g+1];if(null==h)return h=f.inode_assoc(a+5,b,c,d,e),h===f?this:new cljs.core.BitmapIndexedNode(null,
this.bitmap,cljs.core.clone_and_set.cljs$core$IFn$_invoke$arity$3(this.arr,2*g+1,h));if(cljs.core.key_test(c,h))return d===f?this:new cljs.core.BitmapIndexedNode(null,this.bitmap,cljs.core.clone_and_set.cljs$core$IFn$_invoke$arity$3(this.arr,2*g+1,d));e.val=!0;return new cljs.core.BitmapIndexedNode(null,this.bitmap,cljs.core.clone_and_set.cljs$core$IFn$_invoke$arity$5(this.arr,2*g,null,2*g+1,cljs.core.create_node.cljs$core$IFn$_invoke$arity$6(a+5,h,f,b,c,d)))};
cljs.core.BitmapIndexedNode.prototype.inode_find=function(a,b,c,d){var e=1<<(b>>>a&31);if(0===(this.bitmap&e))return d;var f=cljs.core.bitmap_indexed_node_index(this.bitmap,e);e=this.arr[2*f];f=this.arr[2*f+1];return null==e?f.inode_find(a+5,b,c,d):cljs.core.key_test(c,e)?new cljs.core.MapEntry(e,f,null):d};
cljs.core.BitmapIndexedNode.prototype.inode_without=function(a,b,c){var d=1<<(b>>>a&31);if(0===(this.bitmap&d))return this;var e=cljs.core.bitmap_indexed_node_index(this.bitmap,d),f=this.arr[2*e],g=this.arr[2*e+1];return null==f?(a=g.inode_without(a+5,b,c),a===g?this:null!=a?new cljs.core.BitmapIndexedNode(null,this.bitmap,cljs.core.clone_and_set.cljs$core$IFn$_invoke$arity$3(this.arr,2*e+1,a)):this.bitmap===d?null:new cljs.core.BitmapIndexedNode(null,this.bitmap^d,cljs.core.remove_pair(this.arr,
e))):cljs.core.key_test(c,f)?new cljs.core.BitmapIndexedNode(null,this.bitmap^d,cljs.core.remove_pair(this.arr,e)):this};cljs.core.BitmapIndexedNode.prototype.cljs$core$IIterable$_iterator$arity$1=function(a){return new cljs.core.NodeIterator(this.arr,0,null,null)};
cljs.core.BitmapIndexedNode.getBasis=function(){return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Symbol(null,"edit","edit",-1302639,null),cljs.core.with_meta(new cljs.core.Symbol(null,"bitmap","bitmap",501334601,null),new cljs.core.PersistentArrayMap(null,1,[new cljs.core.Keyword(null,"mutable","mutable",875778266),!0],null)),cljs.core.with_meta(new cljs.core.Symbol(null,"arr","arr",2115492975,null),new cljs.core.PersistentArrayMap(null,1,[new cljs.core.Keyword(null,
"mutable","mutable",875778266),!0],null))],null)};cljs.core.BitmapIndexedNode.cljs$lang$type=!0;cljs.core.BitmapIndexedNode.cljs$lang$ctorStr="cljs.core/BitmapIndexedNode";cljs.core.BitmapIndexedNode.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/BitmapIndexedNode")};cljs.core.__GT_BitmapIndexedNode=function(a,b,c){return new cljs.core.BitmapIndexedNode(a,b,c)};cljs.core.BitmapIndexedNode.EMPTY=new cljs.core.BitmapIndexedNode(null,0,[]);
cljs.core.pack_array_node=function(a,b,c){var d=a.arr,e=d.length;a=Array(2*(a.cnt-1));for(var f=0,g=1,h=0;;)if(f>>b&31,g=this.arr[f];if(null==g)return this;b=g.inode_without_BANG_(a,b+5,c,d,e);if(b===g)return this;if(null==b){if(8>=this.cnt)return cljs.core.pack_array_node(this,a,f);a=cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$4(this,a,f,b);--a.cnt;return a}return cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$4(this,a,f,b)};cljs.core.ArrayNode.prototype.inode_seq=function(){return cljs.core.create_array_node_seq.cljs$core$IFn$_invoke$arity$1(this.arr)};
cljs.core.ArrayNode.prototype.kv_reduce=function(a,b){for(var c=this.arr.length,d=0;;)if(d>>a&31];return null!=e?e.inode_lookup(a+5,b,c,d):d};
cljs.core.ArrayNode.prototype.inode_assoc_BANG_=function(a,b,c,d,e,f){var g=c>>>b&31,h=this.arr[g];if(null==h)return a=cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$4(this,a,g,cljs.core.BitmapIndexedNode.EMPTY.inode_assoc_BANG_(a,b+5,c,d,e,f)),a.cnt+=1,a;b=h.inode_assoc_BANG_(a,b+5,c,d,e,f);return b===h?this:cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$4(this,a,g,b)};
cljs.core.ArrayNode.prototype.inode_assoc=function(a,b,c,d,e){var f=b>>>a&31,g=this.arr[f];if(null==g)return new cljs.core.ArrayNode(null,this.cnt+1,cljs.core.clone_and_set.cljs$core$IFn$_invoke$arity$3(this.arr,f,cljs.core.BitmapIndexedNode.EMPTY.inode_assoc(a+5,b,c,d,e)));a=g.inode_assoc(a+5,b,c,d,e);return a===g?this:new cljs.core.ArrayNode(null,this.cnt,cljs.core.clone_and_set.cljs$core$IFn$_invoke$arity$3(this.arr,f,a))};
cljs.core.ArrayNode.prototype.inode_find=function(a,b,c,d){var e=this.arr[b>>>a&31];return null!=e?e.inode_find(a+5,b,c,d):d};
cljs.core.ArrayNode.prototype.inode_without=function(a,b,c){var d=b>>>a&31,e=this.arr[d];return null!=e?(a=e.inode_without(a+5,b,c),a===e?this:null==a?8>=this.cnt?cljs.core.pack_array_node(this,null,d):new cljs.core.ArrayNode(null,this.cnt-1,cljs.core.clone_and_set.cljs$core$IFn$_invoke$arity$3(this.arr,d,a)):new cljs.core.ArrayNode(null,this.cnt,cljs.core.clone_and_set.cljs$core$IFn$_invoke$arity$3(this.arr,d,a))):this};
cljs.core.ArrayNode.prototype.cljs$core$IIterable$_iterator$arity$1=function(a){return new cljs.core.ArrayNodeIterator(this.arr,0,null)};
cljs.core.ArrayNode.getBasis=function(){return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Symbol(null,"edit","edit",-1302639,null),cljs.core.with_meta(new cljs.core.Symbol(null,"cnt","cnt",1924510325,null),new cljs.core.PersistentArrayMap(null,1,[new cljs.core.Keyword(null,"mutable","mutable",875778266),!0],null)),cljs.core.with_meta(new cljs.core.Symbol(null,"arr","arr",2115492975,null),new cljs.core.PersistentArrayMap(null,1,[new cljs.core.Keyword(null,
"mutable","mutable",875778266),!0],null))],null)};cljs.core.ArrayNode.cljs$lang$type=!0;cljs.core.ArrayNode.cljs$lang$ctorStr="cljs.core/ArrayNode";cljs.core.ArrayNode.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/ArrayNode")};cljs.core.__GT_ArrayNode=function(a,b,c){return new cljs.core.ArrayNode(a,b,c)};cljs.core.hash_collision_node_find_index=function(a,b,c){b*=2;for(var d=0;;)if(da?d:cljs.core.key_test(c,this.arr[a])?this.arr[a+1]:d};
cljs.core.HashCollisionNode.prototype.inode_assoc_BANG_=function(a,b,c,d,e,f){if(c===this.collision_hash){b=cljs.core.hash_collision_node_find_index(this.arr,this.cnt,d);if(-1===b){if(this.arr.length>2*this.cnt)return a=cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$6(this,a,2*this.cnt,d,2*this.cnt+1,e),f.val=!0,a.cnt+=1,a;b=this.arr.length;c=Array(b+2);cljs.core.array_copy(this.arr,0,c,0,b);c[b]=d;c[b+1]=e;f.val=!0;return this.ensure_editable_array(a,this.cnt+1,c)}return this.arr[b+1]===e?this:
cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$4(this,a,b+1,e)}return(new cljs.core.BitmapIndexedNode(a,1<<(this.collision_hash>>>b&31),[null,this,null,null])).inode_assoc_BANG_(a,b,c,d,e,f)};
cljs.core.HashCollisionNode.prototype.inode_assoc=function(a,b,c,d,e){return b===this.collision_hash?(a=cljs.core.hash_collision_node_find_index(this.arr,this.cnt,c),-1===a?(a=2*this.cnt,b=Array(a+2),cljs.core.array_copy(this.arr,0,b,0,a),b[a]=c,b[a+1]=d,e.val=!0,new cljs.core.HashCollisionNode(null,this.collision_hash,this.cnt+1,b)):cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.arr[a+1],d)?this:new cljs.core.HashCollisionNode(null,this.collision_hash,this.cnt,cljs.core.clone_and_set.cljs$core$IFn$_invoke$arity$3(this.arr,
a+1,d))):(new cljs.core.BitmapIndexedNode(null,1<<(this.collision_hash>>>a&31),[null,this])).inode_assoc(a,b,c,d,e)};cljs.core.HashCollisionNode.prototype.ensure_editable_array=function(a,b,c){return a===this.edit?(this.arr=c,this.cnt=b,this):new cljs.core.HashCollisionNode(this.edit,this.collision_hash,b,c)};
cljs.core.HashCollisionNode.prototype.inode_find=function(a,b,c,d){a=cljs.core.hash_collision_node_find_index(this.arr,this.cnt,c);return 0>a?d:cljs.core.key_test(c,this.arr[a])?new cljs.core.MapEntry(this.arr[a],this.arr[a+1],null):d};
cljs.core.HashCollisionNode.prototype.inode_without=function(a,b,c){a=cljs.core.hash_collision_node_find_index(this.arr,this.cnt,c);return-1===a?this:1===this.cnt?null:new cljs.core.HashCollisionNode(null,this.collision_hash,this.cnt-1,cljs.core.remove_pair(this.arr,cljs.core.quot(a,2)))};cljs.core.HashCollisionNode.prototype.cljs$core$IIterable$_iterator$arity$1=function(a){return new cljs.core.NodeIterator(this.arr,0,null,null)};
cljs.core.HashCollisionNode.getBasis=function(){return new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Symbol(null,"edit","edit",-1302639,null),cljs.core.with_meta(new cljs.core.Symbol(null,"collision-hash","collision-hash",-35831342,null),new cljs.core.PersistentArrayMap(null,1,[new cljs.core.Keyword(null,"mutable","mutable",875778266),!0],null)),cljs.core.with_meta(new cljs.core.Symbol(null,"cnt","cnt",1924510325,null),new cljs.core.PersistentArrayMap(null,
1,[new cljs.core.Keyword(null,"mutable","mutable",875778266),!0],null)),cljs.core.with_meta(new cljs.core.Symbol(null,"arr","arr",2115492975,null),new cljs.core.PersistentArrayMap(null,1,[new cljs.core.Keyword(null,"mutable","mutable",875778266),!0],null))],null)};cljs.core.HashCollisionNode.cljs$lang$type=!0;cljs.core.HashCollisionNode.cljs$lang$ctorStr="cljs.core/HashCollisionNode";cljs.core.HashCollisionNode.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/HashCollisionNode")};
cljs.core.__GT_HashCollisionNode=function(a,b,c,d){return new cljs.core.HashCollisionNode(a,b,c,d)};
cljs.core.create_node=function(a){switch(arguments.length){case 6:return cljs.core.create_node.cljs$core$IFn$_invoke$arity$6(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4],arguments[5]);case 7:return cljs.core.create_node.cljs$core$IFn$_invoke$arity$7(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4],arguments[5],arguments[6]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.create_node.cljs$core$IFn$_invoke$arity$6=function(a,b,c,d,e,f){var g=cljs.core.hash(b);if(g===d)return new cljs.core.HashCollisionNode(null,g,2,[b,c,e,f]);var h=new cljs.core.Box(!1);return cljs.core.BitmapIndexedNode.EMPTY.inode_assoc(a,g,b,c,h).inode_assoc(a,d,e,f,h)};
cljs.core.create_node.cljs$core$IFn$_invoke$arity$7=function(a,b,c,d,e,f,g){var h=cljs.core.hash(c);if(h===e)return new cljs.core.HashCollisionNode(null,h,2,[c,d,f,g]);var k=new cljs.core.Box(!1);return cljs.core.BitmapIndexedNode.EMPTY.inode_assoc_BANG_(a,b,h,c,d,k).inode_assoc_BANG_(a,b,e,f,g,k)};cljs.core.create_node.cljs$lang$maxFixedArity=7;
cljs.core.NodeSeq=function(a,b,c,d,e){this.meta=a;this.nodes=b;this.i=c;this.s=d;this.__hash=e;this.cljs$lang$protocol_mask$partition0$=32374988;this.cljs$lang$protocol_mask$partition1$=0};cljs.core.NodeSeq.prototype.toString=function(){return cljs.core.pr_str_STAR_(this)};cljs.core.NodeSeq.prototype.equiv=function(a){return this.cljs$core$IEquiv$_equiv$arity$2(null,a)};
cljs.core.NodeSeq.prototype.indexOf=function(){var a=null,b=function(a){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,0)},c=function(a,b){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+(arguments.length-1));};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.NodeSeq.prototype.lastIndexOf=function(){var a=null,b=function(a){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,cljs.core.count(this))},c=function(a,b){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+(arguments.length-1));};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.NodeSeq.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta};cljs.core.NodeSeq.prototype.cljs$core$INext$_next$arity$1=function(a){return null==this.s?cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$3(this.nodes,this.i+2,null):cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$3(this.nodes,this.i,cljs.core.next(this.s))};cljs.core.NodeSeq.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=cljs.core.hash_ordered_coll(this)};
cljs.core.NodeSeq.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return cljs.core.equiv_sequential(this,b)};cljs.core.NodeSeq.prototype.cljs$core$IEmptyableCollection$_empty$arity$1=function(a){return cljs.core._with_meta(cljs.core.List.EMPTY,this.meta)};cljs.core.NodeSeq.prototype.cljs$core$IReduce$_reduce$arity$2=function(a,b){return cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$2(b,this)};
cljs.core.NodeSeq.prototype.cljs$core$IReduce$_reduce$arity$3=function(a,b,c){return cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$3(b,c,this)};cljs.core.NodeSeq.prototype.cljs$core$ISeq$_first$arity$1=function(a){return null==this.s?new cljs.core.MapEntry(this.nodes[this.i],this.nodes[this.i+1],null):cljs.core.first(this.s)};
cljs.core.NodeSeq.prototype.cljs$core$ISeq$_rest$arity$1=function(a){a=null==this.s?cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$3(this.nodes,this.i+2,null):cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$3(this.nodes,this.i,cljs.core.next(this.s));return null!=a?a:cljs.core.List.EMPTY};cljs.core.NodeSeq.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return this};
cljs.core.NodeSeq.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.core.NodeSeq(b,this.nodes,this.i,this.s,this.__hash)};cljs.core.NodeSeq.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return cljs.core.cons(b,this)};
cljs.core.NodeSeq.getBasis=function(){return new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Symbol(null,"meta","meta",-1154898805,null),new cljs.core.Symbol(null,"nodes","nodes",-459054278,null),new cljs.core.Symbol(null,"i","i",253690212,null),new cljs.core.Symbol(null,"s","s",-948495851,null),cljs.core.with_meta(new cljs.core.Symbol(null,"__hash","__hash",-1328796629,null),new cljs.core.PersistentArrayMap(null,1,[new cljs.core.Keyword(null,"mutable",
"mutable",875778266),!0],null))],null)};cljs.core.NodeSeq.cljs$lang$type=!0;cljs.core.NodeSeq.cljs$lang$ctorStr="cljs.core/NodeSeq";cljs.core.NodeSeq.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/NodeSeq")};cljs.core.__GT_NodeSeq=function(a,b,c,d,e){return new cljs.core.NodeSeq(a,b,c,d,e)};
var G__15258_15261=cljs.core.NodeSeq.prototype,G__15259_15262=cljs.core.ITER_SYMBOL,G__15260_15263=function(a,b){return function(){return cljs.core.es6_iterator(this)}}(G__15258_15261,G__15259_15262);goog.object.set(G__15258_15261,G__15259_15262,G__15260_15263);
cljs.core.create_inode_seq=function(a){switch(arguments.length){case 1:return cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 3:return cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$3(a,0,null)};
cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$3=function(a,b,c){if(null==c)for(c=a.length;;)if(bthis.cnt?cljs.core.count(cljs.core.next(this))+1:this.cnt};cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=cljs.core.hash_ordered_coll(this)};cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return cljs.core.equiv_sequential(this,b)};
cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IEmptyableCollection$_empty$arity$1=function(a){return cljs.core._with_meta(cljs.core.List.EMPTY,this.meta)};cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IReduce$_reduce$arity$2=function(a,b){return cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$2(b,this)};cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IReduce$_reduce$arity$3=function(a,b,c){return cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$3(b,c,this)};
cljs.core.PersistentTreeMapSeq.prototype.cljs$core$ISeq$_first$arity$1=function(a){return cljs.core.peek(this.stack)};cljs.core.PersistentTreeMapSeq.prototype.cljs$core$ISeq$_rest$arity$1=function(a){a=cljs.core.first(this.stack);a=cljs.core.tree_map_seq_push(this.ascending_QMARK_?a.right:a.left,cljs.core.next(this.stack),this.ascending_QMARK_);return null!=a?new cljs.core.PersistentTreeMapSeq(null,a,this.ascending_QMARK_,this.cnt-1,null):cljs.core.List.EMPTY};
cljs.core.PersistentTreeMapSeq.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return this};cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.core.PersistentTreeMapSeq(b,this.stack,this.ascending_QMARK_,this.cnt,this.__hash)};cljs.core.PersistentTreeMapSeq.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return cljs.core.cons(b,this)};
cljs.core.PersistentTreeMapSeq.getBasis=function(){return new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Symbol(null,"meta","meta",-1154898805,null),new cljs.core.Symbol(null,"stack","stack",847125597,null),cljs.core.with_meta(new cljs.core.Symbol(null,"ascending?","ascending?",-1938452653,null),new cljs.core.PersistentArrayMap(null,1,[new cljs.core.Keyword(null,"tag","tag",-1290361223),new cljs.core.Symbol(null,"boolean","boolean",-278886877,null)],null)),
new cljs.core.Symbol(null,"cnt","cnt",1924510325,null),cljs.core.with_meta(new cljs.core.Symbol(null,"__hash","__hash",-1328796629,null),new cljs.core.PersistentArrayMap(null,1,[new cljs.core.Keyword(null,"mutable","mutable",875778266),!0],null))],null)};cljs.core.PersistentTreeMapSeq.cljs$lang$type=!0;cljs.core.PersistentTreeMapSeq.cljs$lang$ctorStr="cljs.core/PersistentTreeMapSeq";cljs.core.PersistentTreeMapSeq.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/PersistentTreeMapSeq")};
cljs.core.__GT_PersistentTreeMapSeq=function(a,b,c,d,e){return new cljs.core.PersistentTreeMapSeq(a,b,c,d,e)};var G__15330_15333=cljs.core.PersistentTreeMapSeq.prototype,G__15331_15334=cljs.core.ITER_SYMBOL,G__15332_15335=function(a,b){return function(){return cljs.core.es6_iterator(this)}}(G__15330_15333,G__15331_15334);goog.object.set(G__15330_15333,G__15331_15334,G__15332_15335);
cljs.core.create_tree_map_seq=function(a,b,c){return new cljs.core.PersistentTreeMapSeq(null,cljs.core.tree_map_seq_push(a,null,b),b,c,null)};
cljs.core.balance_left=function(a,b,c,d){return c instanceof cljs.core.RedNode?c.left instanceof cljs.core.RedNode?new cljs.core.RedNode(c.key,c.val,c.left.blacken(),new cljs.core.BlackNode(a,b,c.right,d,null),null):c.right instanceof cljs.core.RedNode?new cljs.core.RedNode(c.right.key,c.right.val,new cljs.core.BlackNode(c.key,c.val,c.left,c.right.left,null),new cljs.core.BlackNode(a,b,c.right.right,d,null),null):new cljs.core.BlackNode(a,b,c,d,null):new cljs.core.BlackNode(a,b,c,d,null)};
cljs.core.balance_right=function(a,b,c,d){return d instanceof cljs.core.RedNode?d.right instanceof cljs.core.RedNode?new cljs.core.RedNode(d.key,d.val,new cljs.core.BlackNode(a,b,c,d.left,null),d.right.blacken(),null):d.left instanceof cljs.core.RedNode?new cljs.core.RedNode(d.left.key,d.left.val,new cljs.core.BlackNode(a,b,c,d.left.left,null),new cljs.core.BlackNode(d.key,d.val,d.left.right,d.right,null),null):new cljs.core.BlackNode(a,b,c,d,null):new cljs.core.BlackNode(a,b,c,d,null)};
cljs.core.balance_left_del=function(a,b,c,d){if(c instanceof cljs.core.RedNode)return new cljs.core.RedNode(a,b,c.blacken(),d,null);if(d instanceof cljs.core.BlackNode)return cljs.core.balance_right(a,b,c,d.redden());if(d instanceof cljs.core.RedNode&&d.left instanceof cljs.core.BlackNode)return new cljs.core.RedNode(d.left.key,d.left.val,new cljs.core.BlackNode(a,b,c,d.left.left,null),cljs.core.balance_right(d.key,d.val,d.left.right,d.right.redden()),null);throw Error("red-black tree invariant violation");
};
cljs.core.balance_right_del=function(a,b,c,d){if(d instanceof cljs.core.RedNode)return new cljs.core.RedNode(a,b,c,d.blacken(),null);if(c instanceof cljs.core.BlackNode)return cljs.core.balance_left(a,b,c.redden(),d);if(c instanceof cljs.core.RedNode&&c.right instanceof cljs.core.BlackNode)return new cljs.core.RedNode(c.right.key,c.right.val,cljs.core.balance_left(c.key,c.val,c.left.redden(),c.right.left),new cljs.core.BlackNode(a,b,c.right.right,d,null),null);throw Error("red-black tree invariant violation");};
cljs.core.tree_map_kv_reduce=function(a,b,c){var d=null!=a.left?function(){var d=a.left;return cljs.core.tree_map_kv_reduce.cljs$core$IFn$_invoke$arity$3?cljs.core.tree_map_kv_reduce.cljs$core$IFn$_invoke$arity$3(d,b,c):cljs.core.tree_map_kv_reduce.call(null,d,b,c)}():c;if(cljs.core.reduced_QMARK_(d))return d;var e=function(){var c=a.key,e=a.val;return b.cljs$core$IFn$_invoke$arity$3?b.cljs$core$IFn$_invoke$arity$3(d,c,e):b.call(null,d,c,e)}();if(cljs.core.reduced_QMARK_(e))return e;if(null!=a.right){var f=
a.right;return cljs.core.tree_map_kv_reduce.cljs$core$IFn$_invoke$arity$3?cljs.core.tree_map_kv_reduce.cljs$core$IFn$_invoke$arity$3(f,b,e):cljs.core.tree_map_kv_reduce.call(null,f,b,e)}return e};cljs.core.BlackNode=function(a,b,c,d,e){this.key=a;this.val=b;this.left=c;this.right=d;this.__hash=e;this.cljs$lang$protocol_mask$partition0$=166619935;this.cljs$lang$protocol_mask$partition1$=0};cljs.core.BlackNode.prototype.cljs$core$IFind$=cljs.core.PROTOCOL_SENTINEL;
cljs.core.BlackNode.prototype.cljs$core$IFind$_find$arity$2=function(a,b){switch(b){case 0:return new cljs.core.MapEntry(0,this.key,null);case 1:return new cljs.core.MapEntry(1,this.val,null);default:return null}};
cljs.core.BlackNode.prototype.lastIndexOf=function(){var a=null,b=function(a){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,cljs.core.count(this))},c=function(a,b){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+(arguments.length-1));};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.BlackNode.prototype.indexOf=function(){var a=null,b=function(a){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,0)},c=function(a,b){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+(arguments.length-1));};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();cljs.core.BlackNode.prototype.add_right=function(a){return a.balance_right(this)};
cljs.core.BlackNode.prototype.redden=function(){return new cljs.core.RedNode(this.key,this.val,this.left,this.right,null)};cljs.core.BlackNode.prototype.blacken=function(){return this};cljs.core.BlackNode.prototype.add_left=function(a){return a.balance_left(this)};cljs.core.BlackNode.prototype.replace=function(a,b,c,d){return new cljs.core.BlackNode(a,b,c,d,null)};cljs.core.BlackNode.prototype.balance_left=function(a){return new cljs.core.BlackNode(a.key,a.val,this,a.right,null)};
cljs.core.BlackNode.prototype.balance_right=function(a){return new cljs.core.BlackNode(a.key,a.val,a.left,this,null)};cljs.core.BlackNode.prototype.remove_left=function(a){return cljs.core.balance_left_del(this.key,this.val,a,this.right)};cljs.core.BlackNode.prototype.kv_reduce=function(a,b){return cljs.core.tree_map_kv_reduce(this,a,b)};cljs.core.BlackNode.prototype.remove_right=function(a){return cljs.core.balance_right_del(this.key,this.val,this.left,a)};
cljs.core.BlackNode.prototype.cljs$core$ILookup$_lookup$arity$2=function(a,b){return this.cljs$core$IIndexed$_nth$arity$3(null,b,null)};cljs.core.BlackNode.prototype.cljs$core$ILookup$_lookup$arity$3=function(a,b,c){return this.cljs$core$IIndexed$_nth$arity$3(null,b,c)};cljs.core.BlackNode.prototype.cljs$core$IIndexed$_nth$arity$2=function(a,b){if(0===b)return this.key;if(1===b)return this.val;throw Error("Index out of bounds");};
cljs.core.BlackNode.prototype.cljs$core$IIndexed$_nth$arity$3=function(a,b,c){return 0===b?this.key:1===b?this.val:c};cljs.core.BlackNode.prototype.cljs$core$IVector$_assoc_n$arity$3=function(a,b,c){return(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[this.key,this.val],null)).cljs$core$IVector$_assoc_n$arity$3(null,b,c)};cljs.core.BlackNode.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return null};
cljs.core.BlackNode.prototype.cljs$core$ICounted$_count$arity$1=function(a){return 2};cljs.core.BlackNode.prototype.cljs$core$IMapEntry$_key$arity$1=function(a){return this.key};cljs.core.BlackNode.prototype.cljs$core$IMapEntry$_val$arity$1=function(a){return this.val};cljs.core.BlackNode.prototype.cljs$core$IStack$_peek$arity$1=function(a){return this.val};
cljs.core.BlackNode.prototype.cljs$core$IStack$_pop$arity$1=function(a){return new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[this.key],null)};cljs.core.BlackNode.prototype.cljs$core$IReversible$_rseq$arity$1=function(a){return new cljs.core.IndexedSeq([this.val,this.key],0,null)};cljs.core.BlackNode.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=cljs.core.hash_ordered_coll(this)};
cljs.core.BlackNode.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return cljs.core.equiv_sequential(this,b)};cljs.core.BlackNode.prototype.cljs$core$IEmptyableCollection$_empty$arity$1=function(a){return null};cljs.core.BlackNode.prototype.cljs$core$IReduce$_reduce$arity$2=function(a,b){return cljs.core.ci_reduce.cljs$core$IFn$_invoke$arity$2(this,b)};
cljs.core.BlackNode.prototype.cljs$core$IReduce$_reduce$arity$3=function(a,b,c){return cljs.core.ci_reduce.cljs$core$IFn$_invoke$arity$3(this,b,c)};cljs.core.BlackNode.prototype.cljs$core$IAssociative$_assoc$arity$3=function(a,b,c){return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[this.key,this.val],null),b,c)};
cljs.core.BlackNode.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2=function(a,b){return 0===b||1===b};cljs.core.BlackNode.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return new cljs.core.IndexedSeq([this.key,this.val],0,null)};cljs.core.BlackNode.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return cljs.core._with_meta(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[this.key,this.val],null),b)};
cljs.core.BlackNode.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[this.key,this.val,b],null)};
cljs.core.BlackNode.prototype.call=function(){var a=null;a=function(a,c,d){switch(arguments.length){case 2:return this.cljs$core$IIndexed$_nth$arity$2(null,c);case 3:return this.cljs$core$IIndexed$_nth$arity$3(null,c,d)}throw Error("Invalid arity: "+(arguments.length-1));};a.cljs$core$IFn$_invoke$arity$2=function(a,c){return this.cljs$core$IIndexed$_nth$arity$2(null,c)};a.cljs$core$IFn$_invoke$arity$3=function(a,c,d){return this.cljs$core$IIndexed$_nth$arity$3(null,c,d)};return a}();
cljs.core.BlackNode.prototype.apply=function(a,b){return this.call.apply(this,[this].concat(cljs.core.aclone(b)))};cljs.core.BlackNode.prototype.cljs$core$IFn$_invoke$arity$1=function(a){return this.cljs$core$IIndexed$_nth$arity$2(null,a)};cljs.core.BlackNode.prototype.cljs$core$IFn$_invoke$arity$2=function(a,b){return this.cljs$core$IIndexed$_nth$arity$3(null,a,b)};
cljs.core.BlackNode.getBasis=function(){return new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Symbol(null,"key","key",124488940,null),new cljs.core.Symbol(null,"val","val",1769233139,null),new cljs.core.Symbol(null,"left","left",1241415590,null),new cljs.core.Symbol(null,"right","right",1187949694,null),cljs.core.with_meta(new cljs.core.Symbol(null,"__hash","__hash",-1328796629,null),new cljs.core.PersistentArrayMap(null,1,[new cljs.core.Keyword(null,
"mutable","mutable",875778266),!0],null))],null)};cljs.core.BlackNode.cljs$lang$type=!0;cljs.core.BlackNode.cljs$lang$ctorStr="cljs.core/BlackNode";cljs.core.BlackNode.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/BlackNode")};cljs.core.__GT_BlackNode=function(a,b,c,d,e){return new cljs.core.BlackNode(a,b,c,d,e)};
var G__15351_15354=cljs.core.BlackNode.prototype,G__15352_15355=cljs.core.ITER_SYMBOL,G__15353_15356=function(a,b){return function(){return cljs.core.es6_iterator(this)}}(G__15351_15354,G__15352_15355);goog.object.set(G__15351_15354,G__15352_15355,G__15353_15356);cljs.core.RedNode=function(a,b,c,d,e){this.key=a;this.val=b;this.left=c;this.right=d;this.__hash=e;this.cljs$lang$protocol_mask$partition0$=166619935;this.cljs$lang$protocol_mask$partition1$=0};
cljs.core.RedNode.prototype.cljs$core$IFind$=cljs.core.PROTOCOL_SENTINEL;cljs.core.RedNode.prototype.cljs$core$IFind$_find$arity$2=function(a,b){switch(b){case 0:return new cljs.core.MapEntry(0,this.key,null);case 1:return new cljs.core.MapEntry(1,this.val,null);default:return null}};
cljs.core.RedNode.prototype.lastIndexOf=function(){var a=null,b=function(a){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,cljs.core.count(this))},c=function(a,b){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+(arguments.length-1));};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.RedNode.prototype.indexOf=function(){var a=null,b=function(a){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,0)},c=function(a,b){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+(arguments.length-1));};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.RedNode.prototype.add_right=function(a){return new cljs.core.RedNode(this.key,this.val,this.left,a,null)};cljs.core.RedNode.prototype.redden=function(){throw Error("red-black tree invariant violation");};cljs.core.RedNode.prototype.blacken=function(){return new cljs.core.BlackNode(this.key,this.val,this.left,this.right,null)};cljs.core.RedNode.prototype.add_left=function(a){return new cljs.core.RedNode(this.key,this.val,a,this.right,null)};
cljs.core.RedNode.prototype.replace=function(a,b,c,d){return new cljs.core.RedNode(a,b,c,d,null)};
cljs.core.RedNode.prototype.balance_left=function(a){return this.left instanceof cljs.core.RedNode?new cljs.core.RedNode(this.key,this.val,this.left.blacken(),new cljs.core.BlackNode(a.key,a.val,this.right,a.right,null),null):this.right instanceof cljs.core.RedNode?new cljs.core.RedNode(this.right.key,this.right.val,new cljs.core.BlackNode(this.key,this.val,this.left,this.right.left,null),new cljs.core.BlackNode(a.key,a.val,this.right.right,a.right,null),null):new cljs.core.BlackNode(a.key,a.val,
this,a.right,null)};
cljs.core.RedNode.prototype.balance_right=function(a){return this.right instanceof cljs.core.RedNode?new cljs.core.RedNode(this.key,this.val,new cljs.core.BlackNode(a.key,a.val,a.left,this.left,null),this.right.blacken(),null):this.left instanceof cljs.core.RedNode?new cljs.core.RedNode(this.left.key,this.left.val,new cljs.core.BlackNode(a.key,a.val,a.left,this.left.left,null),new cljs.core.BlackNode(this.key,this.val,this.left.right,this.right,null),null):new cljs.core.BlackNode(a.key,a.val,a.left,
this,null)};cljs.core.RedNode.prototype.remove_left=function(a){return new cljs.core.RedNode(this.key,this.val,a,this.right,null)};cljs.core.RedNode.prototype.kv_reduce=function(a,b){return cljs.core.tree_map_kv_reduce(this,a,b)};cljs.core.RedNode.prototype.remove_right=function(a){return new cljs.core.RedNode(this.key,this.val,this.left,a,null)};cljs.core.RedNode.prototype.cljs$core$ILookup$_lookup$arity$2=function(a,b){return this.cljs$core$IIndexed$_nth$arity$3(null,b,null)};
cljs.core.RedNode.prototype.cljs$core$ILookup$_lookup$arity$3=function(a,b,c){return this.cljs$core$IIndexed$_nth$arity$3(null,b,c)};cljs.core.RedNode.prototype.cljs$core$IIndexed$_nth$arity$2=function(a,b){if(0===b)return this.key;if(1===b)return this.val;throw Error("Index out of bounds");};cljs.core.RedNode.prototype.cljs$core$IIndexed$_nth$arity$3=function(a,b,c){return 0===b?this.key:1===b?this.val:c};
cljs.core.RedNode.prototype.cljs$core$IVector$_assoc_n$arity$3=function(a,b,c){return(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[this.key,this.val],null)).cljs$core$IVector$_assoc_n$arity$3(null,b,c)};cljs.core.RedNode.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return null};cljs.core.RedNode.prototype.cljs$core$ICounted$_count$arity$1=function(a){return 2};cljs.core.RedNode.prototype.cljs$core$IMapEntry$_key$arity$1=function(a){return this.key};
cljs.core.RedNode.prototype.cljs$core$IMapEntry$_val$arity$1=function(a){return this.val};cljs.core.RedNode.prototype.cljs$core$IStack$_peek$arity$1=function(a){return this.val};cljs.core.RedNode.prototype.cljs$core$IStack$_pop$arity$1=function(a){return new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[this.key],null)};cljs.core.RedNode.prototype.cljs$core$IReversible$_rseq$arity$1=function(a){return new cljs.core.IndexedSeq([this.val,this.key],0,null)};
cljs.core.RedNode.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=cljs.core.hash_ordered_coll(this)};cljs.core.RedNode.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return cljs.core.equiv_sequential(this,b)};cljs.core.RedNode.prototype.cljs$core$IEmptyableCollection$_empty$arity$1=function(a){return null};
cljs.core.RedNode.prototype.cljs$core$IReduce$_reduce$arity$2=function(a,b){return cljs.core.ci_reduce.cljs$core$IFn$_invoke$arity$2(this,b)};cljs.core.RedNode.prototype.cljs$core$IReduce$_reduce$arity$3=function(a,b,c){return cljs.core.ci_reduce.cljs$core$IFn$_invoke$arity$3(this,b,c)};
cljs.core.RedNode.prototype.cljs$core$IAssociative$_assoc$arity$3=function(a,b,c){return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[this.key,this.val],null),b,c)};cljs.core.RedNode.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2=function(a,b){return 0===b||1===b};cljs.core.RedNode.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return new cljs.core.IndexedSeq([this.key,this.val],0,null)};
cljs.core.RedNode.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return cljs.core._with_meta(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[this.key,this.val],null),b)};cljs.core.RedNode.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[this.key,this.val,b],null)};
cljs.core.RedNode.prototype.call=function(){var a=null;a=function(a,c,d){switch(arguments.length){case 2:return this.cljs$core$IIndexed$_nth$arity$2(null,c);case 3:return this.cljs$core$IIndexed$_nth$arity$3(null,c,d)}throw Error("Invalid arity: "+(arguments.length-1));};a.cljs$core$IFn$_invoke$arity$2=function(a,c){return this.cljs$core$IIndexed$_nth$arity$2(null,c)};a.cljs$core$IFn$_invoke$arity$3=function(a,c,d){return this.cljs$core$IIndexed$_nth$arity$3(null,c,d)};return a}();
cljs.core.RedNode.prototype.apply=function(a,b){return this.call.apply(this,[this].concat(cljs.core.aclone(b)))};cljs.core.RedNode.prototype.cljs$core$IFn$_invoke$arity$1=function(a){return this.cljs$core$IIndexed$_nth$arity$2(null,a)};cljs.core.RedNode.prototype.cljs$core$IFn$_invoke$arity$2=function(a,b){return this.cljs$core$IIndexed$_nth$arity$3(null,a,b)};
cljs.core.RedNode.getBasis=function(){return new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Symbol(null,"key","key",124488940,null),new cljs.core.Symbol(null,"val","val",1769233139,null),new cljs.core.Symbol(null,"left","left",1241415590,null),new cljs.core.Symbol(null,"right","right",1187949694,null),cljs.core.with_meta(new cljs.core.Symbol(null,"__hash","__hash",-1328796629,null),new cljs.core.PersistentArrayMap(null,1,[new cljs.core.Keyword(null,"mutable",
"mutable",875778266),!0],null))],null)};cljs.core.RedNode.cljs$lang$type=!0;cljs.core.RedNode.cljs$lang$ctorStr="cljs.core/RedNode";cljs.core.RedNode.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/RedNode")};cljs.core.__GT_RedNode=function(a,b,c,d,e){return new cljs.core.RedNode(a,b,c,d,e)};
var G__15363_15366=cljs.core.RedNode.prototype,G__15364_15367=cljs.core.ITER_SYMBOL,G__15365_15368=function(a,b){return function(){return cljs.core.es6_iterator(this)}}(G__15363_15366,G__15364_15367);goog.object.set(G__15363_15366,G__15364_15367,G__15365_15368);
cljs.core.tree_map_add=function(a,b,c,d,e){if(null==b)return new cljs.core.RedNode(c,d,null,null,null);var f=function(){var d=b.key;return a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(c,d):a.call(null,c,d)}();if(0===f)return e[0]=b,null;if(0>f)return f=function(){var f=b.left;return cljs.core.tree_map_add.cljs$core$IFn$_invoke$arity$5?cljs.core.tree_map_add.cljs$core$IFn$_invoke$arity$5(a,f,c,d,e):cljs.core.tree_map_add.call(null,a,f,c,d,e)}(),null!=f?b.add_left(f):null;f=function(){var f=
b.right;return cljs.core.tree_map_add.cljs$core$IFn$_invoke$arity$5?cljs.core.tree_map_add.cljs$core$IFn$_invoke$arity$5(a,f,c,d,e):cljs.core.tree_map_add.call(null,a,f,c,d,e)}();return null!=f?b.add_right(f):null};
cljs.core.tree_map_append=function(a,b){if(null==a)return b;if(null==b)return a;if(a instanceof cljs.core.RedNode){if(b instanceof cljs.core.RedNode){var c=function(){var c=a.right,e=b.left;return cljs.core.tree_map_append.cljs$core$IFn$_invoke$arity$2?cljs.core.tree_map_append.cljs$core$IFn$_invoke$arity$2(c,e):cljs.core.tree_map_append.call(null,c,e)}();return c instanceof cljs.core.RedNode?new cljs.core.RedNode(c.key,c.val,new cljs.core.RedNode(a.key,a.val,a.left,c.left,null),new cljs.core.RedNode(b.key,
b.val,c.right,b.right,null),null):new cljs.core.RedNode(a.key,a.val,a.left,new cljs.core.RedNode(b.key,b.val,c,b.right,null),null)}return new cljs.core.RedNode(a.key,a.val,a.left,function(){var c=a.right;return cljs.core.tree_map_append.cljs$core$IFn$_invoke$arity$2?cljs.core.tree_map_append.cljs$core$IFn$_invoke$arity$2(c,b):cljs.core.tree_map_append.call(null,c,b)}(),null)}if(b instanceof cljs.core.RedNode)return new cljs.core.RedNode(b.key,b.val,function(){var c=b.left;return cljs.core.tree_map_append.cljs$core$IFn$_invoke$arity$2?
cljs.core.tree_map_append.cljs$core$IFn$_invoke$arity$2(a,c):cljs.core.tree_map_append.call(null,a,c)}(),b.right,null);c=function(){var c=a.right,e=b.left;return cljs.core.tree_map_append.cljs$core$IFn$_invoke$arity$2?cljs.core.tree_map_append.cljs$core$IFn$_invoke$arity$2(c,e):cljs.core.tree_map_append.call(null,c,e)}();return c instanceof cljs.core.RedNode?new cljs.core.RedNode(c.key,c.val,new cljs.core.BlackNode(a.key,a.val,a.left,c.left,null),new cljs.core.BlackNode(b.key,b.val,c.right,b.right,
null),null):cljs.core.balance_left_del(a.key,a.val,a.left,new cljs.core.BlackNode(b.key,b.val,c,b.right,null))};
cljs.core.tree_map_remove=function(a,b,c,d){if(null!=b){var e=function(){var d=b.key;return a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(c,d):a.call(null,c,d)}();if(0===e)return d[0]=b,cljs.core.tree_map_append(b.left,b.right);if(0>e)return e=function(){var e=b.left;return cljs.core.tree_map_remove.cljs$core$IFn$_invoke$arity$4?cljs.core.tree_map_remove.cljs$core$IFn$_invoke$arity$4(a,e,c,d):cljs.core.tree_map_remove.call(null,a,e,c,d)}(),null!=e||null!=d[0]?b.left instanceof cljs.core.BlackNode?
cljs.core.balance_left_del(b.key,b.val,e,b.right):new cljs.core.RedNode(b.key,b.val,e,b.right,null):null;e=function(){var e=b.right;return cljs.core.tree_map_remove.cljs$core$IFn$_invoke$arity$4?cljs.core.tree_map_remove.cljs$core$IFn$_invoke$arity$4(a,e,c,d):cljs.core.tree_map_remove.call(null,a,e,c,d)}();return null!=e||null!=d[0]?b.right instanceof cljs.core.BlackNode?cljs.core.balance_right_del(b.key,b.val,b.left,e):new cljs.core.RedNode(b.key,b.val,b.left,e,null):null}return null};
cljs.core.tree_map_replace=function(a,b,c,d){var e=b.key,f=a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(c,e):a.call(null,c,e);return 0===f?b.replace(e,d,b.left,b.right):0>f?b.replace(e,b.val,function(){var e=b.left;return cljs.core.tree_map_replace.cljs$core$IFn$_invoke$arity$4?cljs.core.tree_map_replace.cljs$core$IFn$_invoke$arity$4(a,e,c,d):cljs.core.tree_map_replace.call(null,a,e,c,d)}(),b.right):b.replace(e,b.val,b.left,function(){var e=b.right;return cljs.core.tree_map_replace.cljs$core$IFn$_invoke$arity$4?
cljs.core.tree_map_replace.cljs$core$IFn$_invoke$arity$4(a,e,c,d):cljs.core.tree_map_replace.call(null,a,e,c,d)}())};cljs.core.PersistentTreeMap=function(a,b,c,d,e){this.comp=a;this.tree=b;this.cnt=c;this.meta=d;this.__hash=e;this.cljs$lang$protocol_mask$partition0$=418776847;this.cljs$lang$protocol_mask$partition1$=8192};cljs.core.PersistentTreeMap.prototype.cljs$core$IFind$=cljs.core.PROTOCOL_SENTINEL;cljs.core.PersistentTreeMap.prototype.cljs$core$IFind$_find$arity$2=function(a,b){return this.entry_at(b)};
cljs.core.PersistentTreeMap.prototype.forEach=function(a){for(var b=cljs.core.seq(this),c=null,d=0,e=0;;)if(ec?b.left:b.right}else return null};cljs.core.PersistentTreeMap.prototype.has=function(a){return cljs.core.contains_QMARK_(this,a)};
cljs.core.PersistentTreeMap.prototype.cljs$core$ILookup$_lookup$arity$2=function(a,b){return this.cljs$core$ILookup$_lookup$arity$3(null,b,null)};cljs.core.PersistentTreeMap.prototype.cljs$core$ILookup$_lookup$arity$3=function(a,b,c){a=this.entry_at(b);return null!=a?a.val:c};cljs.core.PersistentTreeMap.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3=function(a,b,c){return null!=this.tree?cljs.core.unreduced(cljs.core.tree_map_kv_reduce(this.tree,b,c)):c};
cljs.core.PersistentTreeMap.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta};cljs.core.PersistentTreeMap.prototype.cljs$core$ICloneable$_clone$arity$1=function(a){return new cljs.core.PersistentTreeMap(this.comp,this.tree,this.cnt,this.meta,this.__hash)};cljs.core.PersistentTreeMap.prototype.cljs$core$ICounted$_count$arity$1=function(a){return this.cnt};
cljs.core.PersistentTreeMap.prototype.cljs$core$IReversible$_rseq$arity$1=function(a){return 0e?(a=cljs.core.conj.cljs$core$IFn$_invoke$arity$2(a,d),d=d.left):d=d.right:0<
e?(a=cljs.core.conj.cljs$core$IFn$_invoke$arity$2(a,d),d=d.right):d=d.left}else return null==a?null:new cljs.core.PersistentTreeMapSeq(null,a,c,-1,null)}else return null};cljs.core.PersistentTreeMap.prototype.cljs$core$ISorted$_entry_key$arity$2=function(a,b){return cljs.core.key(b)};cljs.core.PersistentTreeMap.prototype.cljs$core$ISorted$_comparator$arity$1=function(a){return this.comp};
cljs.core.PersistentTreeMap.getBasis=function(){return new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Symbol(null,"comp","comp",-1462482139,null),new cljs.core.Symbol(null,"tree","tree",1444219499,null),new cljs.core.Symbol(null,"cnt","cnt",1924510325,null),new cljs.core.Symbol(null,"meta","meta",-1154898805,null),cljs.core.with_meta(new cljs.core.Symbol(null,"__hash","__hash",-1328796629,null),new cljs.core.PersistentArrayMap(null,1,[new cljs.core.Keyword(null,
"mutable","mutable",875778266),!0],null))],null)};cljs.core.PersistentTreeMap.cljs$lang$type=!0;cljs.core.PersistentTreeMap.cljs$lang$ctorStr="cljs.core/PersistentTreeMap";cljs.core.PersistentTreeMap.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/PersistentTreeMap")};cljs.core.__GT_PersistentTreeMap=function(a,b,c,d,e){return new cljs.core.PersistentTreeMap(a,b,c,d,e)};cljs.core.PersistentTreeMap.EMPTY=new cljs.core.PersistentTreeMap(cljs.core.compare,null,0,null,cljs.core.empty_unordered_hash);
var G__15447_15450=cljs.core.PersistentTreeMap.prototype,G__15448_15451=cljs.core.ITER_SYMBOL,G__15449_15452=function(a,b){return function(){return cljs.core.es6_iterator(this)}}(G__15447_15450,G__15448_15451);goog.object.set(G__15447_15450,G__15448_15451,G__15449_15452);cljs.core.hash_map=function(a){for(var b=[],c=arguments.length,d=0;;)if(d(a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(c):a.call(null,c))?b:c};
cljs.core.max_key.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c,d){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(b,c){return cljs.core.max_key.cljs$core$IFn$_invoke$arity$3(a,b,c)},cljs.core.max_key.cljs$core$IFn$_invoke$arity$3(a,b,c),d)};
cljs.core.max_key.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);var d=cljs.core.next(c);c=cljs.core.first(d);d=cljs.core.next(d);return cljs.core.max_key.cljs$core$IFn$_invoke$arity$variadic(b,a,c,d)};cljs.core.max_key.cljs$lang$maxFixedArity=3;
cljs.core.min_key=function(a){switch(arguments.length){case 2:return cljs.core.min_key.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.min_key.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:for(var b=[],c=arguments.length,d=0;;)if(dthis.end};cljs.core.RangeIterator.prototype.next=function(){var a=this.i;this.i+=this.step;return a};
cljs.core.RangeIterator.getBasis=function(){return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.with_meta(new cljs.core.Symbol(null,"i","i",253690212,null),new cljs.core.PersistentArrayMap(null,1,[new cljs.core.Keyword(null,"mutable","mutable",875778266),!0],null)),new cljs.core.Symbol(null,"end","end",1372345569,null),new cljs.core.Symbol(null,"step","step",-1365547645,null)],null)};cljs.core.RangeIterator.cljs$lang$type=!0;
cljs.core.RangeIterator.cljs$lang$ctorStr="cljs.core/RangeIterator";cljs.core.RangeIterator.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/RangeIterator")};cljs.core.__GT_RangeIterator=function(a,b,c){return new cljs.core.RangeIterator(a,b,c)};cljs.core.Range=function(a,b,c,d,e){this.meta=a;this.start=b;this.end=c;this.step=d;this.__hash=e;this.cljs$lang$protocol_mask$partition0$=32375006;this.cljs$lang$protocol_mask$partition1$=139264};
cljs.core.Range.prototype.toString=function(){return cljs.core.pr_str_STAR_(this)};cljs.core.Range.prototype.equiv=function(a){return this.cljs$core$IEquiv$_equiv$arity$2(null,a)};
cljs.core.Range.prototype.indexOf=function(){var a=null,b=function(a){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,0)},c=function(a,b){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+(arguments.length-1));};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.Range.prototype.lastIndexOf=function(){var a=null,b=function(a){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,cljs.core.count(this))},c=function(a,b){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+(arguments.length-1));};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.Range.prototype.cljs$core$IIndexed$_nth$arity$2=function(a,b){if(0<=b&&bthis.end&&0===this.step)return this.start;throw Error("Index out of bounds");};cljs.core.Range.prototype.cljs$core$IIndexed$_nth$arity$3=function(a,b,c){return 0<=b&&bthis.end&&0===this.step?this.start:c};
cljs.core.Range.prototype.cljs$core$IIterable$_iterator$arity$1=function(a){return new cljs.core.RangeIterator(this.start,this.end,this.step)};cljs.core.Range.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta};cljs.core.Range.prototype.cljs$core$ICloneable$_clone$arity$1=function(a){return new cljs.core.Range(this.meta,this.start,this.end,this.step,this.__hash)};
cljs.core.Range.prototype.cljs$core$INext$_next$arity$1=function(a){return 0this.end?new cljs.core.Range(this.meta,this.start+this.step,this.end,this.step,null):null};cljs.core.Range.prototype.cljs$core$ICounted$_count$arity$1=function(a){return cljs.core.not(this.cljs$core$ISeqable$_seq$arity$1(null))?0:Math.ceil((this.end-this.start)/this.step)};
cljs.core.Range.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=cljs.core.hash_ordered_coll(this)};cljs.core.Range.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return cljs.core.equiv_sequential(this,b)};cljs.core.Range.prototype.cljs$core$IEmptyableCollection$_empty$arity$1=function(a){return cljs.core._with_meta(cljs.core.List.EMPTY,this.meta)};
cljs.core.Range.prototype.cljs$core$IReduce$_reduce$arity$2=function(a,b){return cljs.core.ci_reduce.cljs$core$IFn$_invoke$arity$2(this,b)};cljs.core.Range.prototype.cljs$core$IReduce$_reduce$arity$3=function(a,b,c){for(a=this.start;;)if(0this.end){c=b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(c,a):b.call(null,c,a);if(cljs.core.reduced_QMARK_(c))return cljs.core.deref(c);a+=this.step}else return c};
cljs.core.Range.prototype.cljs$core$ISeq$_first$arity$1=function(a){return null==this.cljs$core$ISeqable$_seq$arity$1(null)?null:this.start};cljs.core.Range.prototype.cljs$core$ISeq$_rest$arity$1=function(a){return null!=this.cljs$core$ISeqable$_seq$arity$1(null)?new cljs.core.Range(this.meta,this.start+this.step,this.end,this.step,null):cljs.core.List.EMPTY};
cljs.core.Range.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return 0this.step?this.start>this.end?this:null:this.start===this.end?null:this};cljs.core.Range.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.core.Range(b,this.start,this.end,this.step,this.__hash)};cljs.core.Range.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return cljs.core.cons(b,this)};
cljs.core.Range.getBasis=function(){return new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Symbol(null,"meta","meta",-1154898805,null),new cljs.core.Symbol(null,"start","start",1285322546,null),new cljs.core.Symbol(null,"end","end",1372345569,null),new cljs.core.Symbol(null,"step","step",-1365547645,null),cljs.core.with_meta(new cljs.core.Symbol(null,"__hash","__hash",-1328796629,null),new cljs.core.PersistentArrayMap(null,1,[new cljs.core.Keyword(null,
"mutable","mutable",875778266),!0],null))],null)};cljs.core.Range.cljs$lang$type=!0;cljs.core.Range.cljs$lang$ctorStr="cljs.core/Range";cljs.core.Range.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/Range")};cljs.core.__GT_Range=function(a,b,c,d,e){return new cljs.core.Range(a,b,c,d,e)};var G__15710_15713=cljs.core.Range.prototype,G__15711_15714=cljs.core.ITER_SYMBOL,G__15712_15715=function(a,b){return function(){return cljs.core.es6_iterator(this)}}(G__15710_15713,G__15711_15714);
goog.object.set(G__15710_15713,G__15711_15714,G__15712_15715);
cljs.core.range=function(a){switch(arguments.length){case 0:return cljs.core.range.cljs$core$IFn$_invoke$arity$0();case 1:return cljs.core.range.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.range.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.range.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.range.cljs$core$IFn$_invoke$arity$0=function(){return cljs.core.range.cljs$core$IFn$_invoke$arity$3(0,Number.MAX_VALUE,1)};cljs.core.range.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.core.range.cljs$core$IFn$_invoke$arity$3(0,a,1)};cljs.core.range.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core.range.cljs$core$IFn$_invoke$arity$3(a,b,1)};cljs.core.range.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return new cljs.core.Range(null,a,b,c,null)};
cljs.core.range.cljs$lang$maxFixedArity=3;cljs.core.take_nth=function(a){switch(arguments.length){case 1:return cljs.core.take_nth.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.take_nth.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.take_nth.cljs$core$IFn$_invoke$arity$1=function(a){if("number"!==typeof a)throw Error("Assert failed: (number? n)");return function(b){return function(c){return function(){var d=null,e=function(){return b.cljs$core$IFn$_invoke$arity$0?b.cljs$core$IFn$_invoke$arity$0():b.call(null)},f=function(a){return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a)},g=function(d,e){var f=cljs.core._vreset_BANG_(c,cljs.core._deref(c)+1);return 0===cljs.core.rem(f,a)?b.cljs$core$IFn$_invoke$arity$2?
b.cljs$core$IFn$_invoke$arity$2(d,e):b.call(null,d,e):d};d=function(a,b){switch(arguments.length){case 0:return e.call(this);case 1:return f.call(this,a);case 2:return g.call(this,a,b)}throw Error("Invalid arity: "+(arguments.length-1));};d.cljs$core$IFn$_invoke$arity$0=e;d.cljs$core$IFn$_invoke$arity$1=f;d.cljs$core$IFn$_invoke$arity$2=g;return d}()}(cljs.core.volatile_BANG_(-1))}};
cljs.core.take_nth.cljs$core$IFn$_invoke$arity$2=function(a,b){if("number"!==typeof a)throw Error("Assert failed: (number? n)");return new cljs.core.LazySeq(null,function(){var c=cljs.core.seq(b);return c?cljs.core.cons(cljs.core.first(c),cljs.core.take_nth.cljs$core$IFn$_invoke$arity$2(a,cljs.core.drop.cljs$core$IFn$_invoke$arity$2(a,c))):null},null,null)};cljs.core.take_nth.cljs$lang$maxFixedArity=2;
cljs.core.split_with=function(a,b){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.take_while.cljs$core$IFn$_invoke$arity$2(a,b),cljs.core.drop_while.cljs$core$IFn$_invoke$arity$2(a,b)],null)};
cljs.core.partition_by=function(a){switch(arguments.length){case 1:return cljs.core.partition_by.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.partition_by.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.partition_by.cljs$core$IFn$_invoke$arity$1=function(a){return function(b){var c=cljs.core.array_list(),d=cljs.core.volatile_BANG_(new cljs.core.Keyword("cljs.core","none","cljs.core/none",926646439));return function(c,d){return function(){var e=null,f=function(){return b.cljs$core$IFn$_invoke$arity$0?b.cljs$core$IFn$_invoke$arity$0():b.call(null)},k=function(a){if(!cljs.core.truth_(c.isEmpty())){var d=cljs.core.vec(c.toArray());c.clear();a=cljs.core.unreduced(b.cljs$core$IFn$_invoke$arity$2?
b.cljs$core$IFn$_invoke$arity$2(a,d):b.call(null,a,d))}return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a)},l=function(e,f){var g=cljs.core.deref(d),h=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(f):a.call(null,f);cljs.core.vreset_BANG_(d,h);if(cljs.core.keyword_identical_QMARK_(g,new cljs.core.Keyword("cljs.core","none","cljs.core/none",926646439))||cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(h,g))return c.add(f),e;g=cljs.core.vec(c.toArray());
c.clear();e=b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(e,g):b.call(null,e,g);cljs.core.reduced_QMARK_(e)||c.add(f);return e};e=function(a,b){switch(arguments.length){case 0:return f.call(this);case 1:return k.call(this,a);case 2:return l.call(this,a,b)}throw Error("Invalid arity: "+(arguments.length-1));};e.cljs$core$IFn$_invoke$arity$0=f;e.cljs$core$IFn$_invoke$arity$1=k;e.cljs$core$IFn$_invoke$arity$2=l;return e}()}(c,d)}};
cljs.core.partition_by.cljs$core$IFn$_invoke$arity$2=function(a,b){return new cljs.core.LazySeq(null,function(){var c=cljs.core.seq(b);if(c){var d=cljs.core.first(c),e=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(d):a.call(null,d);d=cljs.core.cons(d,cljs.core.take_while.cljs$core$IFn$_invoke$arity$2(function(b,c,d,e){return function(b){return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(c,a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(b):a.call(null,b))}}(d,e,c,
c),cljs.core.next(c)));return cljs.core.cons(d,cljs.core.partition_by.cljs$core$IFn$_invoke$arity$2(a,cljs.core.seq(cljs.core.drop.cljs$core$IFn$_invoke$arity$2(cljs.core.count(d),c))))}return null},null,null)};cljs.core.partition_by.cljs$lang$maxFixedArity=2;
cljs.core.frequencies=function(a){return cljs.core.persistent_BANG_(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(a,c){return cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(a,c,cljs.core.get.cljs$core$IFn$_invoke$arity$3(a,c,0)+1)},cljs.core.transient$(cljs.core.PersistentArrayMap.EMPTY),a))};
cljs.core.reductions=function(a){switch(arguments.length){case 2:return cljs.core.reductions.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.reductions.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.reductions.cljs$core$IFn$_invoke$arity$2=function(a,b){return new cljs.core.LazySeq(null,function(){var c=cljs.core.seq(b);return c?cljs.core.reductions.cljs$core$IFn$_invoke$arity$3(a,cljs.core.first(c),cljs.core.rest(c)):new cljs.core.List(null,a.cljs$core$IFn$_invoke$arity$0?a.cljs$core$IFn$_invoke$arity$0():a.call(null),null,1,null)},null,null)};
cljs.core.reductions.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return cljs.core.reduced_QMARK_(b)?new cljs.core.List(null,cljs.core.deref(b),null,1,null):cljs.core.cons(b,new cljs.core.LazySeq(null,function(){var d=cljs.core.seq(c);return d?cljs.core.reductions.cljs$core$IFn$_invoke$arity$3(a,function(){var c=cljs.core.first(d);return a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(b,c):a.call(null,b,c)}(),cljs.core.rest(d)):null},null,null))};
cljs.core.reductions.cljs$lang$maxFixedArity=3;
cljs.core.juxt=function(a){switch(arguments.length){case 1:return cljs.core.juxt.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.juxt.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.juxt.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:for(var b=[],c=arguments.length,d=0;;)if(da?1:a}(),g=cljs.core.subs.cljs$core$IFn$_invoke$arity$2(b,f);return cljs.core.truth_(c)?new cljs.core.LazySeq(null,function(c,d,e,f,g){return function(){return cljs.core.cons(c,f<=cljs.core.count(b)?cljs.core.re_seq.cljs$core$IFn$_invoke$arity$2?cljs.core.re_seq.cljs$core$IFn$_invoke$arity$2(a,g):cljs.core.re_seq.call(null,a,g):
null)}}(c,d,e,f,g),null,null):null};cljs.core.re_pattern=function(a){if(a instanceof RegExp)return a;var b=cljs.core.re_find(/^\(\?([idmsux]*)\)/,a),c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,0,null);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,1,null);a=cljs.core.subs.cljs$core$IFn$_invoke$arity$2(a,cljs.core.count(c));c=RegExp;b=cljs.core.truth_(b)?b:"";return new c(a,b)};
cljs.core.pr_sequential_writer=function(a,b,c,d,e,f,g){var h=cljs.core._STAR_print_level_STAR_;cljs.core._STAR_print_level_STAR_=null==cljs.core._STAR_print_level_STAR_?null:cljs.core._STAR_print_level_STAR_-1;try{if(null!=cljs.core._STAR_print_level_STAR_&&0>cljs.core._STAR_print_level_STAR_)return cljs.core._write(a,"#");cljs.core._write(a,c);if(0===(new cljs.core.Keyword(null,"print-length","print-length",1931866356)).cljs$core$IFn$_invoke$arity$1(f))cljs.core.seq(g)&&cljs.core._write(a,function(){var a=
(new cljs.core.Keyword(null,"more-marker","more-marker",-14717935)).cljs$core$IFn$_invoke$arity$1(f);return cljs.core.truth_(a)?a:"..."}());else{if(cljs.core.seq(g)){var k=cljs.core.first(g);b.cljs$core$IFn$_invoke$arity$3?b.cljs$core$IFn$_invoke$arity$3(k,a,f):b.call(null,k,a,f)}for(var l=cljs.core.next(g),m=(new cljs.core.Keyword(null,"print-length","print-length",1931866356)).cljs$core$IFn$_invoke$arity$1(f)-1;;)if(!l||null!=m&&0===m){cljs.core.seq(l)&&0===m&&(cljs.core._write(a,d),cljs.core._write(a,
function(){var a=(new cljs.core.Keyword(null,"more-marker","more-marker",-14717935)).cljs$core$IFn$_invoke$arity$1(f);return cljs.core.truth_(a)?a:"..."}()));break}else{cljs.core._write(a,d);var n=cljs.core.first(l);c=a;g=f;b.cljs$core$IFn$_invoke$arity$3?b.cljs$core$IFn$_invoke$arity$3(n,c,g):b.call(null,n,c,g);var p=cljs.core.next(l);c=m-1;l=p;m=c}}return cljs.core._write(a,e)}finally{cljs.core._STAR_print_level_STAR_=h}};
cljs.core.write_all=function(a){for(var b=[],c=arguments.length,d=0;;)if(d=goog.debug.MAX_STACK_DEPTH){b.push("[...long stack...]");break}}a&&d>=a?b.push("[...reached max depth limit...]"):b.push("[end]");return b.join("")};
goog.debug.MAX_STACK_DEPTH=50;goog.debug.getNativeStackTrace_=function(a){var b=Error();if(Error.captureStackTrace)return Error.captureStackTrace(b,a),String(b.stack);try{throw b;}catch(c){b=c}return(a=b.stack)?String(a):null};goog.debug.getStacktrace=function(a){var b;goog.debug.FORCE_SLOPPY_STACKS||(b=goog.debug.getNativeStackTrace_(a||goog.debug.getStacktrace));b||(b=goog.debug.getStacktraceHelper_(a||arguments.callee.caller,[]));return b};
goog.debug.getStacktraceHelper_=function(a,b){var c=[];if(goog.array.contains(b,a))c.push("[...circular reference...]");else if(a&&b.length=this.getEffectiveLevel().value};
goog.debug.Logger.prototype.log=function(a,b,c){goog.debug.LOGGING_ENABLED&&this.isLoggable(a)&&(goog.isFunction(b)&&(b=b()),this.doLogRecord_(this.getLogRecord(a,b,c)))};goog.debug.Logger.prototype.getLogRecord=function(a,b,c){a=goog.debug.LogBuffer.isBufferingEnabled()?goog.debug.LogBuffer.getInstance().addRecord(a,b,this.name_):new goog.debug.LogRecord(a,String(b),this.name_);c&&a.setException(c);return a};
goog.debug.Logger.prototype.shout=function(a,b){goog.debug.LOGGING_ENABLED&&this.log(goog.debug.Logger.Level.SHOUT,a,b)};goog.debug.Logger.prototype.severe=function(a,b){goog.debug.LOGGING_ENABLED&&this.log(goog.debug.Logger.Level.SEVERE,a,b)};goog.debug.Logger.prototype.warning=function(a,b){goog.debug.LOGGING_ENABLED&&this.log(goog.debug.Logger.Level.WARNING,a,b)};goog.debug.Logger.prototype.info=function(a,b){goog.debug.LOGGING_ENABLED&&this.log(goog.debug.Logger.Level.INFO,a,b)};
goog.debug.Logger.prototype.config=function(a,b){goog.debug.LOGGING_ENABLED&&this.log(goog.debug.Logger.Level.CONFIG,a,b)};goog.debug.Logger.prototype.fine=function(a,b){goog.debug.LOGGING_ENABLED&&this.log(goog.debug.Logger.Level.FINE,a,b)};goog.debug.Logger.prototype.finer=function(a,b){goog.debug.LOGGING_ENABLED&&this.log(goog.debug.Logger.Level.FINER,a,b)};goog.debug.Logger.prototype.finest=function(a,b){goog.debug.LOGGING_ENABLED&&this.log(goog.debug.Logger.Level.FINEST,a,b)};
goog.debug.Logger.prototype.logRecord=function(a){goog.debug.LOGGING_ENABLED&&this.isLoggable(a.getLevel())&&this.doLogRecord_(a)};goog.debug.Logger.prototype.doLogRecord_=function(a){goog.debug.Logger.logToProfilers("log:"+a.getMessage());if(goog.debug.Logger.ENABLE_HIERARCHY)for(var b=this;b;)b.callPublish_(a),b=b.getParent();else{b=0;for(var c;c=goog.debug.Logger.rootHandlers_[b++];)c(a)}};goog.debug.Logger.prototype.callPublish_=function(a){if(this.handlers_)for(var b=0,c;c=this.handlers_[b];b++)c(a)};
goog.debug.Logger.prototype.setParent_=function(a){this.parent_=a};goog.debug.Logger.prototype.addChild_=function(a,b){this.getChildren()[a]=b};goog.debug.LogManager={};goog.debug.LogManager.loggers_={};goog.debug.LogManager.rootLogger_=null;
goog.debug.LogManager.initialize=function(){goog.debug.LogManager.rootLogger_||(goog.debug.LogManager.rootLogger_=new goog.debug.Logger(goog.debug.Logger.ROOT_LOGGER_NAME),goog.debug.LogManager.loggers_[goog.debug.Logger.ROOT_LOGGER_NAME]=goog.debug.LogManager.rootLogger_,goog.debug.LogManager.rootLogger_.setLevel(goog.debug.Logger.Level.CONFIG))};goog.debug.LogManager.getLoggers=function(){return goog.debug.LogManager.loggers_};
goog.debug.LogManager.getRoot=function(){goog.debug.LogManager.initialize();return goog.debug.LogManager.rootLogger_};goog.debug.LogManager.getLogger=function(a){goog.debug.LogManager.initialize();return goog.debug.LogManager.loggers_[a]||goog.debug.LogManager.createLogger_(a)};goog.debug.LogManager.createFunctionForCatchErrors=function(a){return function(b){(a||goog.debug.LogManager.getRoot()).severe("Error: "+b.message+" ("+b.fileName+" @ Line: "+b.line+")")}};
goog.debug.LogManager.createLogger_=function(a){var b=new goog.debug.Logger(a);if(goog.debug.Logger.ENABLE_HIERARCHY){var c=a.lastIndexOf("."),d=a.substr(0,c);c=a.substr(c+1);d=goog.debug.LogManager.getLogger(d);d.addChild_(c,b);b.setParent_(d)}return goog.debug.LogManager.loggers_[a]=b};goog.log={};goog.log.ENABLED=goog.debug.LOGGING_ENABLED;goog.log.ROOT_LOGGER_NAME=goog.debug.Logger.ROOT_LOGGER_NAME;goog.log.Logger=goog.debug.Logger;goog.log.Level=goog.debug.Logger.Level;goog.log.LogRecord=goog.debug.LogRecord;goog.log.getLogger=function(a,b){return goog.log.ENABLED?(a=goog.debug.LogManager.getLogger(a),b&&a&&a.setLevel(b),a):null};goog.log.addHandler=function(a,b){goog.log.ENABLED&&a&&a.addHandler(b)};
goog.log.removeHandler=function(a,b){return goog.log.ENABLED&&a?a.removeHandler(b):!1};goog.log.log=function(a,b,c,d){goog.log.ENABLED&&a&&a.log(b,c,d)};goog.log.error=function(a,b,c){goog.log.ENABLED&&a&&a.severe(b,c)};goog.log.warning=function(a,b,c){goog.log.ENABLED&&a&&a.warning(b,c)};goog.log.info=function(a,b,c){goog.log.ENABLED&&a&&a.info(b,c)};goog.log.fine=function(a,b,c){goog.log.ENABLED&&a&&a.fine(b,c)};goog.net={};goog.net.xpc={};goog.net.xpc.TransportTypes={NATIVE_MESSAGING:1,FRAME_ELEMENT_METHOD:2,IFRAME_RELAY:3,IFRAME_POLLING:4,FLASH:5,NIX:6,DIRECT:7};goog.net.xpc.TransportNames={1:"NativeMessagingTransport",2:"FrameElementMethodTransport",3:"IframeRelayTransport",4:"IframePollingTransport",5:"FlashTransport",6:"NixTransport",7:"DirectTransport"};
goog.net.xpc.CfgFields={CHANNEL_NAME:"cn",AUTH_TOKEN:"at",REMOTE_AUTH_TOKEN:"rat",PEER_URI:"pu",IFRAME_ID:"ifrid",TRANSPORT:"tp",LOCAL_RELAY_URI:"lru",PEER_RELAY_URI:"pru",LOCAL_POLL_URI:"lpu",PEER_POLL_URI:"ppu",PEER_HOSTNAME:"ph",ONE_SIDED_HANDSHAKE:"osh",ROLE:"role",NATIVE_TRANSPORT_PROTOCOL_VERSION:"nativeProtocolVersion",DIRECT_TRANSPORT_SYNC_MODE:"directSyncMode"};
goog.net.xpc.UriCfgFields=[goog.net.xpc.CfgFields.PEER_URI,goog.net.xpc.CfgFields.LOCAL_RELAY_URI,goog.net.xpc.CfgFields.PEER_RELAY_URI,goog.net.xpc.CfgFields.LOCAL_POLL_URI,goog.net.xpc.CfgFields.PEER_POLL_URI];goog.net.xpc.ChannelStates={NOT_CONNECTED:1,CONNECTED:2,CLOSED:3};goog.net.xpc.TRANSPORT_SERVICE_="tp";goog.net.xpc.SETUP="SETUP";goog.net.xpc.SETUP_NTPV2="SETUP_NTPV2";goog.net.xpc.SETUP_ACK_="SETUP_ACK";goog.net.xpc.SETUP_ACK_NTPV2="SETUP_ACK_NTPV2";goog.net.xpc.channels={};
goog.net.xpc.getRandomString=function(a,b){b=b||goog.net.xpc.randomStringCharacters_;for(var c=b.length,d="";0=a.keyCode)a.keyCode=-1}catch(b){}};goog.events.BrowserEvent.prototype.getBrowserEvent=function(){return this.event_};goog.events.Listenable=function(){};goog.events.Listenable.IMPLEMENTED_BY_PROP="closure_listenable_"+(1E6*Math.random()|0);goog.events.Listenable.addImplementation=function(a){a.prototype[goog.events.Listenable.IMPLEMENTED_BY_PROP]=!0};goog.events.Listenable.isImplementedBy=function(a){return!(!a||!a[goog.events.Listenable.IMPLEMENTED_BY_PROP])};goog.events.ListenableKey=function(){};goog.events.ListenableKey.counter_=0;goog.events.ListenableKey.reserveKey=function(){return++goog.events.ListenableKey.counter_};goog.events.Listener=function(a,b,c,d,e,f){goog.events.Listener.ENABLE_MONITORING&&(this.creationStack=Error().stack);this.listener=a;this.proxy=b;this.src=c;this.type=d;this.capture=!!e;this.handler=f;this.key=goog.events.ListenableKey.reserveKey();this.removed=this.callOnce=!1};goog.events.Listener.ENABLE_MONITORING=!1;goog.events.Listener.prototype.markAsRemoved=function(){this.removed=!0;this.handler=this.src=this.proxy=this.listener=null};goog.events.ListenerMap=function(a){this.src=a;this.listeners={};this.typeCount_=0};goog.events.ListenerMap.prototype.getTypeCount=function(){return this.typeCount_};goog.events.ListenerMap.prototype.getListenerCount=function(){var a=0,b;for(b in this.listeners)a+=this.listeners[b].length;return a};
goog.events.ListenerMap.prototype.add=function(a,b,c,d,e){var f=a.toString();a=this.listeners[f];a||(a=this.listeners[f]=[],this.typeCount_++);var g=goog.events.ListenerMap.findListenerIndex_(a,b,d,e);-1a.keyCode||void 0!=a.returnValue};
goog.events.uniqueIdCounter_=0;goog.events.getUniqueId=function(a){return a+"_"+goog.events.uniqueIdCounter_++};goog.events.getListenerMap_=function(a){a=a[goog.events.LISTENER_MAP_PROP_];return a instanceof goog.events.ListenerMap?a:null};goog.events.LISTENER_WRAPPER_PROP_="__closure_events_fn_"+(1E9*Math.random()>>>0);
goog.events.wrapListener=function(a){goog.asserts.assert(a,"Listener can not be null.");if(goog.isFunction(a))return a;goog.asserts.assert(a.handleEvent,"An object listener must have handleEvent method.");a[goog.events.LISTENER_WRAPPER_PROP_]||(a[goog.events.LISTENER_WRAPPER_PROP_]=function(b){return a.handleEvent(b)});return a[goog.events.LISTENER_WRAPPER_PROP_]};goog.debug.entryPointRegistry.register(function(a){goog.events.handleBrowserEvent_=a(goog.events.handleBrowserEvent_)});goog.events.EventTarget=function(){goog.Disposable.call(this);this.eventTargetListeners_=new goog.events.ListenerMap(this);this.actualEventTarget_=this;this.parentEventTarget_=null};goog.inherits(goog.events.EventTarget,goog.Disposable);goog.events.Listenable.addImplementation(goog.events.EventTarget);goog.events.EventTarget.MAX_ANCESTORS_=1E3;goog.events.EventTarget.prototype.getParentEventTarget=function(){return this.parentEventTarget_};
goog.events.EventTarget.prototype.setParentEventTarget=function(a){this.parentEventTarget_=a};goog.events.EventTarget.prototype.addEventListener=function(a,b,c,d){goog.events.listen(this,a,b,c,d)};goog.events.EventTarget.prototype.removeEventListener=function(a,b,c,d){goog.events.unlisten(this,a,b,c,d)};
goog.events.EventTarget.prototype.dispatchEvent=function(a){this.assertInitialized_();var b=this.getParentEventTarget();if(b){var c=[];for(var d=1;b;b=b.getParentEventTarget())c.push(b),goog.asserts.assert(++dgoog.Timer.MAX_TIMEOUT_?goog.Timer.INVALID_TIMEOUT_ID_:goog.Timer.defaultTimerObject.setTimeout(a,b||0)};goog.Timer.clear=function(a){goog.Timer.defaultTimerObject.clearTimeout(a)};
goog.Timer.promise=function(a,b){var c=null;return(new goog.Promise(function(d,e){c=goog.Timer.callOnce(function(){d(b)},a);c==goog.Timer.INVALID_TIMEOUT_ID_&&e(Error("Failed to schedule timer."))})).thenCatch(function(a){goog.Timer.clear(c);throw a;})};goog.json={};goog.json.USE_NATIVE_JSON=!1;goog.json.TRY_NATIVE_JSON=!1;goog.json.isValid=function(a){return/^\s*$/.test(a)?!1:/^[\],:{}\s\u2028\u2029]*$/.test(a.replace(/\\["\\\/bfnrtu]/g,"@").replace(/(?:"[^"\\\n\r\u2028\u2029\x00-\x08\x0a-\x1f]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)[\s\u2028\u2029]*(?=:|,|]|}|$)/g,"]").replace(/(?:^|:|,)(?:[\s\u2028\u2029]*\[)+/g,""))};goog.json.errorLogger_=goog.nullFunction;goog.json.setErrorLogger=function(a){goog.json.errorLogger_=a};
goog.json.parse=goog.json.USE_NATIVE_JSON?goog.global.JSON.parse:function(a){if(goog.json.TRY_NATIVE_JSON)try{return goog.global.JSON.parse(a)}catch(d){var b=d}a=String(a);if(goog.json.isValid(a))try{var c=eval("("+a+")");b&&goog.json.errorLogger_("Invalid JSON: "+a,b);return c}catch(d){}throw Error("Invalid JSON string: "+a);};
goog.json.unsafeParse=goog.json.USE_NATIVE_JSON?goog.global.JSON.parse:function(a){if(goog.json.TRY_NATIVE_JSON)try{return goog.global.JSON.parse(a)}catch(d){var b=d}var c=eval("("+a+")");b&&goog.json.errorLogger_("Invalid JSON: "+a,b);return c};goog.json.serialize=goog.json.USE_NATIVE_JSON?goog.global.JSON.stringify:function(a,b){return(new goog.json.Serializer(b)).serialize(a)};goog.json.Serializer=function(a){this.replacer_=a};
goog.json.Serializer.prototype.serialize=function(a){var b=[];this.serializeInternal(a,b);return b.join("")};
goog.json.Serializer.prototype.serializeInternal=function(a,b){if(null==a)b.push("null");else{if("object"==typeof a){if(goog.isArray(a)){this.serializeArray(a,b);return}if(a instanceof String||a instanceof Number||a instanceof Boolean)a=a.valueOf();else{this.serializeObject_(a,b);return}}switch(typeof a){case "string":this.serializeString_(a,b);break;case "number":this.serializeNumber_(a,b);break;case "boolean":b.push(String(a));break;case "function":b.push("null");break;default:throw Error("Unknown type: "+
typeof a);}}};goog.json.Serializer.charToJsonCharCache_={'"':'\\"',"\\":"\\\\","/":"\\/","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\x0B":"\\u000b"};goog.json.Serializer.charsToReplace_=/\uffff/.test("")?/[\\"\x00-\x1f\x7f-\uffff]/g:/[\\"\x00-\x1f\x7f-\xff]/g;
goog.json.Serializer.prototype.serializeString_=function(a,b){b.push('"',a.replace(goog.json.Serializer.charsToReplace_,function(a){var b=goog.json.Serializer.charToJsonCharCache_[a];b||(b="\\u"+(a.charCodeAt(0)|65536).toString(16).substr(1),goog.json.Serializer.charToJsonCharCache_[a]=b);return b}),'"')};goog.json.Serializer.prototype.serializeNumber_=function(a,b){b.push(isFinite(a)&&!isNaN(a)?String(a):"null")};
goog.json.Serializer.prototype.serializeArray=function(a,b){var c=a.length;b.push("[");for(var d="",e=0;egoog.net.XmlHttp.ReadyState.LOADED?this.xhr_.status:-1}catch(a){return-1}};goog.net.XhrIo.prototype.getStatusText=function(){try{return this.getReadyState()>goog.net.XmlHttp.ReadyState.LOADED?this.xhr_.statusText:""}catch(a){return goog.log.fine(this.logger_,"Can not get status: "+a.message),""}};goog.net.XhrIo.prototype.getLastUri=function(){return String(this.lastUri_)};
goog.net.XhrIo.prototype.getResponseText=function(){try{return this.xhr_?this.xhr_.responseText:""}catch(a){return goog.log.fine(this.logger_,"Can not get responseText: "+a.message),""}};goog.net.XhrIo.prototype.getResponseBody=function(){try{if(this.xhr_&&"responseBody"in this.xhr_)return this.xhr_.responseBody}catch(a){goog.log.fine(this.logger_,"Can not get responseBody: "+a.message)}return null};
goog.net.XhrIo.prototype.getResponseXml=function(){try{return this.xhr_?this.xhr_.responseXML:null}catch(a){return goog.log.fine(this.logger_,"Can not get responseXML: "+a.message),null}};goog.net.XhrIo.prototype.getResponseJson=function(a){if(this.xhr_){var b=this.xhr_.responseText;a&&0==b.indexOf(a)&&(b=b.substring(a.length));return goog.json.hybrid.parse(b)}};
goog.net.XhrIo.prototype.getResponse=function(){try{if(!this.xhr_)return null;if("response"in this.xhr_)return this.xhr_.response;switch(this.responseType_){case goog.net.XhrIo.ResponseType.DEFAULT:case goog.net.XhrIo.ResponseType.TEXT:return this.xhr_.responseText;case goog.net.XhrIo.ResponseType.ARRAY_BUFFER:if("mozResponseArrayBuffer"in this.xhr_)return this.xhr_.mozResponseArrayBuffer}goog.log.error(this.logger_,"Response type "+this.responseType_+" is not supported on this browser");return null}catch(a){return goog.log.fine(this.logger_,
"Can not get response: "+a.message),null}};goog.net.XhrIo.prototype.getResponseHeader=function(a){if(this.xhr_&&this.isComplete())return a=this.xhr_.getResponseHeader(a),goog.isNull(a)?void 0:a};goog.net.XhrIo.prototype.getAllResponseHeaders=function(){return this.xhr_&&this.isComplete()?this.xhr_.getAllResponseHeaders():""};
goog.net.XhrIo.prototype.getResponseHeaders=function(){for(var a={},b=this.getAllResponseHeaders().split("\r\n"),c=0;c=this.branches_&&this.cancel()};goog.async.Deferred.prototype.continue_=function(a,b){this.blocked_=!1;this.updateResult_(a,b)};goog.async.Deferred.prototype.updateResult_=function(a,b){this.fired_=!0;this.result_=b;this.hadError_=!a;this.fire_()};goog.async.Deferred.prototype.check_=function(){if(this.hasFired()){if(!this.silentlyCanceled_)throw new goog.async.Deferred.AlreadyCalledError(this);this.silentlyCanceled_=!1}};
goog.async.Deferred.prototype.callback=function(a){this.check_();this.assertNotDeferred_(a);this.updateResult_(!0,a)};goog.async.Deferred.prototype.errback=function(a){this.check_();this.assertNotDeferred_(a);this.makeStackTraceLong_(a);this.updateResult_(!1,a)};goog.async.Deferred.prototype.makeStackTraceLong_=function(a){goog.async.Deferred.LONG_STACK_TRACES&&this.constructorStack_&&goog.isObject(a)&&a.stack&&/^[^\n]+(\n [^\n]+)+/.test(a.stack)&&(a.stack=a.stack+"\nDEFERRED OPERATION:\n"+this.constructorStack_)};
goog.async.Deferred.prototype.assertNotDeferred_=function(a){goog.asserts.assert(!(a instanceof goog.async.Deferred),"An execution sequence may not be initiated with a blocking Deferred.")};goog.async.Deferred.prototype.addCallback=function(a,b){return this.addCallbacks(a,null,b)};goog.async.Deferred.prototype.addErrback=function(a,b){return this.addCallbacks(null,a,b)};goog.async.Deferred.prototype.addBoth=function(a,b){return this.addCallbacks(a,a,b)};
goog.async.Deferred.prototype.addFinally=function(a,b){return this.addCallbacks(a,function(b){var c=a.call(this,b);if(!goog.isDef(c))throw b;return c},b)};goog.async.Deferred.prototype.addCallbacks=function(a,b,c){goog.asserts.assert(!this.blocking_,"Blocking Deferreds can not be re-used");this.sequence_.push([a,b,c]);this.hasFired()&&this.fire_();return this};
goog.async.Deferred.prototype.then=function(a,b,c){var d,e,f=new goog.Promise(function(a,b){d=a;e=b});this.addCallbacks(d,function(a){a instanceof goog.async.Deferred.CanceledError?f.cancel():e(a)});return f.then(a,b,c)};goog.Thenable.addImplementation(goog.async.Deferred);goog.async.Deferred.prototype.chainDeferred=function(a){this.addCallbacks(a.callback,a.errback,a);return this};
goog.async.Deferred.prototype.awaitDeferred=function(a){return a instanceof goog.async.Deferred?this.addCallback(goog.bind(a.branch,a)):this.addCallback(function(){return a})};goog.async.Deferred.prototype.branch=function(a){var b=new goog.async.Deferred;this.chainDeferred(b);a&&(b.parent_=this,this.branches_++);return b};goog.async.Deferred.prototype.hasFired=function(){return this.fired_};goog.async.Deferred.prototype.isError=function(a){return a instanceof Error};
goog.async.Deferred.prototype.hasErrback_=function(){return goog.array.some(this.sequence_,function(a){return goog.isFunction(a[1])})};
goog.async.Deferred.prototype.fire_=function(){this.unhandledErrorId_&&this.hasFired()&&this.hasErrback_()&&(goog.async.Deferred.unscheduleError_(this.unhandledErrorId_),this.unhandledErrorId_=0);this.parent_&&(this.parent_.branches_--,delete this.parent_);for(var a=this.result_,b=!1,c=!1;this.sequence_.length&&!this.blocked_;){var d=this.sequence_.shift(),e=d[0],f=d[1];d=d[2];if(e=this.hadError_?f:e)try{var g=e.call(d||this.defaultScope_,a);goog.isDef(g)&&(this.hadError_=this.hadError_&&(g==a||this.isError(g)),
this.result_=a=g);if(goog.Thenable.isImplementedBy(a)||"function"===typeof goog.global.Promise&&a instanceof goog.global.Promise)this.blocked_=c=!0}catch(h){a=h,this.hadError_=!0,this.makeStackTraceLong_(a),this.hasErrback_()||(b=!0)}}this.result_=a;c?(c=goog.bind(this.continue_,this,!0),g=goog.bind(this.continue_,this,!1),a instanceof goog.async.Deferred?(a.addCallbacks(c,g),a.blocking_=!0):a.then(c,g)):!goog.async.Deferred.STRICT_ERRORS||!this.isError(a)||a instanceof goog.async.Deferred.CanceledError||
(b=this.hadError_=!0);b&&(this.unhandledErrorId_=goog.async.Deferred.scheduleError_(a))};goog.async.Deferred.succeed=function(a){var b=new goog.async.Deferred;b.callback(a);return b};goog.async.Deferred.fromPromise=function(a){var b=new goog.async.Deferred;b.callback();b.addCallback(function(){return a});return b};goog.async.Deferred.fail=function(a){var b=new goog.async.Deferred;b.errback(a);return b};goog.async.Deferred.canceled=function(){var a=new goog.async.Deferred;a.cancel();return a};
goog.async.Deferred.when=function(a,b,c){return a instanceof goog.async.Deferred?a.branch(!0).addCallback(b,c):goog.async.Deferred.succeed(a).addCallback(b,c)};goog.async.Deferred.AlreadyCalledError=function(a){goog.debug.Error.call(this);this.deferred=a};goog.inherits(goog.async.Deferred.AlreadyCalledError,goog.debug.Error);goog.async.Deferred.AlreadyCalledError.prototype.message="Deferred has already fired";goog.async.Deferred.AlreadyCalledError.prototype.name="AlreadyCalledError";
goog.async.Deferred.CanceledError=function(a){goog.debug.Error.call(this);this.deferred=a};goog.inherits(goog.async.Deferred.CanceledError,goog.debug.Error);goog.async.Deferred.CanceledError.prototype.message="Deferred was canceled";goog.async.Deferred.CanceledError.prototype.name="CanceledError";goog.async.Deferred.Error_=function(a){this.id_=goog.global.setTimeout(goog.bind(this.throwError,this),0);this.error_=a};
goog.async.Deferred.Error_.prototype.throwError=function(){goog.asserts.assert(goog.async.Deferred.errorMap_[this.id_],"Cannot throw an error that is not scheduled.");delete goog.async.Deferred.errorMap_[this.id_];throw this.error_;};goog.async.Deferred.Error_.prototype.resetTimer=function(){goog.global.clearTimeout(this.id_)};goog.async.Deferred.errorMap_={};goog.async.Deferred.scheduleError_=function(a){a=new goog.async.Deferred.Error_(a);goog.async.Deferred.errorMap_[a.id_]=a;return a.id_};
goog.async.Deferred.unscheduleError_=function(a){var b=goog.async.Deferred.errorMap_[a];b&&(b.resetTimer(),delete goog.async.Deferred.errorMap_[a])};goog.async.Deferred.assertNoErrors=function(){var a=goog.async.Deferred.errorMap_,b;for(b in a){var c=a[b];c.resetTimer();c.throwError()}};goog.async.Delay=function(a,b,c){goog.Disposable.call(this);this.listener_=a;this.interval_=b||0;this.handler_=c;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(a){this.stop();this.id_=goog.Timer.callOnce(this.callback_,goog.isDef(a)?a:this.interval_)};goog.async.Delay.prototype.startIfNotActive=function(a){this.isActive()||this.start(a)};goog.async.Delay.prototype.stop=function(){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(){this.isActive()&&this.fire()};
goog.async.Delay.prototype.isActive=function(){return 0!=this.id_};goog.async.Delay.prototype.doAction_=function(){this.id_=0;this.listener_&&this.listener_.call(this.handler_)};goog.events.EventHandler=function(a){goog.Disposable.call(this);this.handler_=a;this.keys_={}};goog.inherits(goog.events.EventHandler,goog.Disposable);goog.events.EventHandler.typeArray_=[];goog.events.EventHandler.prototype.listen=function(a,b,c,d){return this.listen_(a,b,c,d)};goog.events.EventHandler.prototype.listenWithScope=function(a,b,c,d,e){return this.listen_(a,b,c,d,e)};
goog.events.EventHandler.prototype.listen_=function(a,b,c,d,e){goog.isArray(b)||(b&&(goog.events.EventHandler.typeArray_[0]=b.toString()),b=goog.events.EventHandler.typeArray_);for(var f=0;f=a;){var c=goog.net.xpc.IframeRelayTransport.iframeRefs_.shift().iframeElement;goog.dom.removeNode(c);goog.log.log(goog.net.xpc.logger,goog.log.Level.FINEST,"iframe removed")}goog.net.xpc.IframeRelayTransport.cleanupTimer_=window.setTimeout(goog.net.xpc.IframeRelayTransport.cleanupCb_,
goog.net.xpc.IframeRelayTransport.CLEANUP_INTERVAL_)},goog.net.xpc.IframeRelayTransport.cleanupCb_=function(){goog.net.xpc.IframeRelayTransport.cleanup_()});goog.net.xpc.IframeRelayTransport.IE_PAYLOAD_MAX_SIZE_=1800;goog.net.xpc.IframeRelayTransport.fragmentMap_={};goog.net.xpc.IframeRelayTransport.prototype.transportType=goog.net.xpc.TransportTypes.IFRAME_RELAY;
goog.net.xpc.IframeRelayTransport.prototype.connect=function(){this.getWindow().xpcRelay||(this.getWindow().xpcRelay=goog.net.xpc.IframeRelayTransport.receiveMessage_);this.send(goog.net.xpc.TRANSPORT_SERVICE_,goog.net.xpc.SETUP)};
goog.net.xpc.IframeRelayTransport.receiveMessage_=function(a,b){var c=b.indexOf(":"),d=b.substr(0,c);b=b.substr(c+1);if(goog.userAgent.IE&&-1!=(c=d.indexOf("|"))){g=d.substr(0,c);d=d.substr(c+1);c=d.indexOf("+");var e=d.substr(0,c);c=parseInt(d.substr(c+1),10);var f=goog.net.xpc.IframeRelayTransport.fragmentMap_[e];f||(f=goog.net.xpc.IframeRelayTransport.fragmentMap_[e]={fragments:[],received:0,expected:0});goog.string.contains(d,"++")&&(f.expected=c+1);f.fragments[c]=b;f.received++;if(f.received!=
f.expected)return;b=f.fragments.join("");delete goog.net.xpc.IframeRelayTransport.fragmentMap_[e]}else var g=d;goog.net.xpc.channels[a].xpcDeliver(g,decodeURIComponent(b))};goog.net.xpc.IframeRelayTransport.prototype.transportServiceHandler=function(a){a==goog.net.xpc.SETUP?(this.send(goog.net.xpc.TRANSPORT_SERVICE_,goog.net.xpc.SETUP_ACK_),this.channel_.notifyConnected()):a==goog.net.xpc.SETUP_ACK_&&this.channel_.notifyConnected()};
goog.net.xpc.IframeRelayTransport.prototype.send=function(a,b){b=encodeURIComponent(b);var c=b.length,d=goog.net.xpc.IframeRelayTransport.IE_PAYLOAD_MAX_SIZE_;if(goog.userAgent.IE&&c>d)for(var e=goog.string.getRandomString(),f=0,g=0;f=c?"++":"+")+g)}else this.send_(a,b)};
goog.net.xpc.IframeRelayTransport.prototype.send_=function(a,b,c){if(goog.userAgent.IE){var d=this.getWindow().document.createElement("DIV");goog.dom.safe.setInnerHtml(d,goog.html.SafeHtml.createIframe(null,null,{onload:goog.string.Const.from("this.xpcOnload()"),sandbox:null}));d=d.childNodes[0];d.xpcOnload=goog.net.xpc.IframeRelayTransport.iframeLoadHandler_}else d=this.getWindow().document.createElement("IFRAME"),goog.userAgent.WEBKIT?goog.net.xpc.IframeRelayTransport.iframeRefs_.push({timestamp:goog.now(),
iframeElement:d}):goog.events.listen(d,"load",goog.net.xpc.IframeRelayTransport.iframeLoadHandler_);var e=d.style;e.visibility="hidden";e.width=d.style.height="0px";e.position="absolute";e=this.peerRelayUri_;e+="#"+this.channel_.name;this.peerIframeId_&&(e+=","+this.peerIframeId_);e+="|"+a;c&&(e+="|"+c);e+=":"+b;d.src=e;this.getWindow().document.body.appendChild(d);goog.log.log(goog.net.xpc.logger,goog.log.Level.FINEST,"msg sent: "+e)};
goog.net.xpc.IframeRelayTransport.iframeLoadHandler_=function(){goog.log.log(goog.net.xpc.logger,goog.log.Level.FINEST,"iframe-load");goog.dom.removeNode(this);this.xpcOnload=null};goog.net.xpc.IframeRelayTransport.prototype.disposeInternal=function(){goog.net.xpc.IframeRelayTransport.superClass_.disposeInternal.call(this);goog.userAgent.WEBKIT&&goog.net.xpc.IframeRelayTransport.cleanup_(0)};goog.net.xpc.NativeMessagingTransport=function(a,b,c,d,e){goog.net.xpc.Transport.call(this,c);this.channel_=a;this.protocolVersion_=e||2;goog.asserts.assert(1<=this.protocolVersion_);goog.asserts.assert(2>=this.protocolVersion_);this.peerHostname_=b||"*";this.eventHandler_=new goog.events.EventHandler(this);this.maybeAttemptToConnectTimer_=new goog.Timer(100,this.getWindow());this.oneSidedHandshake_=!!d;this.setupAckReceived_=new goog.async.Deferred;this.setupAckSent_=new goog.async.Deferred;this.connected_=
new goog.async.Deferred;this.endpointId_=goog.net.xpc.getRandomString(10);this.peerEndpointId_=null;this.oneSidedHandshake_?this.channel_.getRole()==goog.net.xpc.CrossPageChannelRole.INNER?this.connected_.awaitDeferred(this.setupAckReceived_):this.connected_.awaitDeferred(this.setupAckSent_):(this.connected_.awaitDeferred(this.setupAckReceived_),2==this.protocolVersion_&&this.connected_.awaitDeferred(this.setupAckSent_));this.connected_.addCallback(this.notifyConnected_,this);this.connected_.callback(!0);
this.eventHandler_.listen(this.maybeAttemptToConnectTimer_,goog.Timer.TICK,this.maybeAttemptToConnect_);goog.log.info(goog.net.xpc.logger,"NativeMessagingTransport created. protocolVersion\x3d"+this.protocolVersion_+", oneSidedHandshake\x3d"+this.oneSidedHandshake_+", role\x3d"+this.channel_.getRole())};goog.inherits(goog.net.xpc.NativeMessagingTransport,goog.net.xpc.Transport);goog.net.xpc.NativeMessagingTransport.CONNECTION_DELAY_MS_=200;
goog.net.xpc.NativeMessagingTransport.prototype.peerProtocolVersion_=null;goog.net.xpc.NativeMessagingTransport.prototype.initialized_=!1;goog.net.xpc.NativeMessagingTransport.prototype.transportType=goog.net.xpc.TransportTypes.NATIVE_MESSAGING;goog.net.xpc.NativeMessagingTransport.MESSAGE_DELIMITER_=",";goog.net.xpc.NativeMessagingTransport.activeCount_={};goog.net.xpc.NativeMessagingTransport.prototype.sendTimerId_=0;
goog.net.xpc.NativeMessagingTransport.prototype.couldPeerVersionBe_=function(a){return null==this.peerProtocolVersion_||this.peerProtocolVersion_==a};
goog.net.xpc.NativeMessagingTransport.initialize_=function(a){var b=goog.getUid(a),c=goog.net.xpc.NativeMessagingTransport.activeCount_[b];goog.isNumber(c)||(c=0);0==c&&goog.events.listen(a.postMessage?a:a.document,"message",goog.net.xpc.NativeMessagingTransport.messageReceived_,!1,goog.net.xpc.NativeMessagingTransport);goog.net.xpc.NativeMessagingTransport.activeCount_[b]=c+1};
goog.net.xpc.NativeMessagingTransport.messageReceived_=function(a){var b=a.getBrowserEvent().data;if(!goog.isString(b))return!1;var c=b.indexOf("|"),d=b.indexOf(":");if(-1==c||-1==d)return!1;var e=b.substring(0,c);c=b.substring(c+1,d);b=b.substring(d+1);goog.log.fine(goog.net.xpc.logger,"messageReceived: channel\x3d"+e+", service\x3d"+c+", payload\x3d"+b);if(d=goog.net.xpc.channels[e])return d.xpcDeliver(c,b,a.getBrowserEvent().origin),!0;d=goog.net.xpc.NativeMessagingTransport.parseTransportPayload_(b)[0];
for(var f in goog.net.xpc.channels){var g=goog.net.xpc.channels[f];if(g.getRole()==goog.net.xpc.CrossPageChannelRole.INNER&&!g.isConnected()&&c==goog.net.xpc.TRANSPORT_SERVICE_&&(d==goog.net.xpc.SETUP||d==goog.net.xpc.SETUP_NTPV2)&&g.isMessageOriginAcceptable(a.getBrowserEvent().origin))return g.updateChannelNameAndCatalog(e),g.xpcDeliver(c,b),!0}goog.log.info(goog.net.xpc.logger,'channel name mismatch; message ignored"');return!1};
goog.net.xpc.NativeMessagingTransport.prototype.transportServiceHandler=function(a){var b=goog.net.xpc.NativeMessagingTransport.parseTransportPayload_(a);a=b[1];switch(b[0]){case goog.net.xpc.SETUP_ACK_:this.setPeerProtocolVersion_(1);this.setupAckReceived_.hasFired()||this.setupAckReceived_.callback(!0);break;case goog.net.xpc.SETUP_ACK_NTPV2:2==this.protocolVersion_&&(this.setPeerProtocolVersion_(2),this.setupAckReceived_.hasFired()||this.setupAckReceived_.callback(!0));break;case goog.net.xpc.SETUP:this.setPeerProtocolVersion_(1);
this.sendSetupAckMessage_(1);break;case goog.net.xpc.SETUP_NTPV2:2==this.protocolVersion_&&(b=this.peerProtocolVersion_,this.setPeerProtocolVersion_(2),this.sendSetupAckMessage_(2),1!=b&&null==this.peerEndpointId_||this.peerEndpointId_==a||(goog.log.info(goog.net.xpc.logger,"Sending SETUP and changing peer ID to: "+a),this.sendSetupMessage_()),this.peerEndpointId_=a)}};
goog.net.xpc.NativeMessagingTransport.prototype.sendSetupMessage_=function(){goog.asserts.assert(!(1==this.protocolVersion_&&2==this.peerProtocolVersion_));if(2==this.protocolVersion_&&this.couldPeerVersionBe_(2)){var a=goog.net.xpc.SETUP_NTPV2;a+=goog.net.xpc.NativeMessagingTransport.MESSAGE_DELIMITER_;a+=this.endpointId_;this.send(goog.net.xpc.TRANSPORT_SERVICE_,a)}this.couldPeerVersionBe_(1)&&this.send(goog.net.xpc.TRANSPORT_SERVICE_,goog.net.xpc.SETUP)};
goog.net.xpc.NativeMessagingTransport.prototype.sendSetupAckMessage_=function(a){goog.asserts.assert(1!=this.protocolVersion_||2!=a,"Shouldn't try to send a v2 setup ack in v1 mode.");if(2==this.protocolVersion_&&this.couldPeerVersionBe_(2)&&2==a)this.send(goog.net.xpc.TRANSPORT_SERVICE_,goog.net.xpc.SETUP_ACK_NTPV2);else if(this.couldPeerVersionBe_(1)&&1==a)this.send(goog.net.xpc.TRANSPORT_SERVICE_,goog.net.xpc.SETUP_ACK_);else return;this.setupAckSent_.hasFired()||this.setupAckSent_.callback(!0)};
goog.net.xpc.NativeMessagingTransport.prototype.setPeerProtocolVersion_=function(a){a>this.peerProtocolVersion_&&(this.peerProtocolVersion_=a);1==this.peerProtocolVersion_&&(this.setupAckSent_.hasFired()||this.oneSidedHandshake_||this.setupAckSent_.callback(!0),this.peerEndpointId_=null)};goog.net.xpc.NativeMessagingTransport.prototype.connect=function(){goog.net.xpc.NativeMessagingTransport.initialize_(this.getWindow());this.initialized_=!0;this.maybeAttemptToConnect_()};
goog.net.xpc.NativeMessagingTransport.prototype.maybeAttemptToConnect_=function(){var a=this.channel_.getRole()==goog.net.xpc.CrossPageChannelRole.OUTER;this.oneSidedHandshake_&&a||this.channel_.isConnected()||this.isDisposed()?this.maybeAttemptToConnectTimer_.stop():(this.maybeAttemptToConnectTimer_.start(),this.sendSetupMessage_())};
goog.net.xpc.NativeMessagingTransport.prototype.send=function(a,b){var c=this.channel_.getPeerWindowObject();c?(this.send=function(a,b){var d=this,e=this.channel_.name;this.sendTimerId_=goog.Timer.callOnce(function(){d.sendTimerId_=0;try{var f=c.postMessage?c:c.document;f.postMessage?(f.postMessage(e+"|"+a+":"+b,d.peerHostname_),goog.log.fine(goog.net.xpc.logger,"send(): service\x3d"+a+" payload\x3d"+b+" to hostname\x3d"+d.peerHostname_)):goog.log.warning(goog.net.xpc.logger,"Peer window had no postMessage function.")}catch(k){goog.log.warning(goog.net.xpc.logger,
"Error performing postMessage, ignoring.",k)}},0)},this.send(a,b)):goog.log.fine(goog.net.xpc.logger,"send(): window not ready")};goog.net.xpc.NativeMessagingTransport.prototype.notifyConnected_=function(){this.channel_.notifyConnected(1==this.protocolVersion_||1==this.peerProtocolVersion_?goog.net.xpc.NativeMessagingTransport.CONNECTION_DELAY_MS_:void 0)};
goog.net.xpc.NativeMessagingTransport.prototype.disposeInternal=function(){if(this.initialized_){var a=this.getWindow(),b=goog.getUid(a),c=goog.net.xpc.NativeMessagingTransport.activeCount_[b];goog.net.xpc.NativeMessagingTransport.activeCount_[b]=c-1;1==c&&goog.events.unlisten(a.postMessage?a:a.document,"message",goog.net.xpc.NativeMessagingTransport.messageReceived_,!1,goog.net.xpc.NativeMessagingTransport)}this.sendTimerId_&&(goog.Timer.clear(this.sendTimerId_),this.sendTimerId_=0);goog.dispose(this.eventHandler_);
delete this.eventHandler_;goog.dispose(this.maybeAttemptToConnectTimer_);delete this.maybeAttemptToConnectTimer_;this.setupAckReceived_.cancel();delete this.setupAckReceived_;this.setupAckSent_.cancel();delete this.setupAckSent_;this.connected_.cancel();delete this.connected_;delete this.send;goog.net.xpc.NativeMessagingTransport.superClass_.disposeInternal.call(this)};
goog.net.xpc.NativeMessagingTransport.parseTransportPayload_=function(a){a=a.split(goog.net.xpc.NativeMessagingTransport.MESSAGE_DELIMITER_);a[1]=a[1]||null;return a};goog.net.xpc.NixTransport=function(a,b){goog.net.xpc.Transport.call(this,b);this.channel_=a;this.authToken_=a[goog.net.xpc.CfgFields.AUTH_TOKEN]||"";this.remoteAuthToken_=a[goog.net.xpc.CfgFields.REMOTE_AUTH_TOKEN]||"";goog.net.xpc.NixTransport.conductGlobalSetup_(this.getWindow());this[goog.net.xpc.NixTransport.NIX_HANDLE_MESSAGE]=this.handleMessage_;this[goog.net.xpc.NixTransport.NIX_CREATE_CHANNEL]=this.createChannel_};goog.inherits(goog.net.xpc.NixTransport,goog.net.xpc.Transport);
goog.net.xpc.NixTransport.NIX_WRAPPER="GCXPC____NIXVBS_wrapper";goog.net.xpc.NixTransport.NIX_GET_WRAPPER="GCXPC____NIXVBS_get_wrapper";goog.net.xpc.NixTransport.NIX_HANDLE_MESSAGE="GCXPC____NIXJS_handle_message";goog.net.xpc.NixTransport.NIX_CREATE_CHANNEL="GCXPC____NIXJS_create_channel";goog.net.xpc.NixTransport.NIX_ID_FIELD="GCXPC____NIXVBS_container";
goog.net.xpc.NixTransport.isNixSupported=function(){var a=!1;try{var b=window.opener;window.opener={};a=goog.reflect.canAccessProperty(window,"opener");window.opener=b}catch(c){}return a};
goog.net.xpc.NixTransport.conductGlobalSetup_=function(a){if(!a.nix_setup_complete){var b="Class "+goog.net.xpc.NixTransport.NIX_WRAPPER+"\n Private m_Transport\nPrivate m_Auth\nPublic Sub SetTransport(transport)\nIf isEmpty(m_Transport) Then\nSet m_Transport \x3d transport\nEnd If\nEnd Sub\nPublic Sub SetAuth(auth)\nIf isEmpty(m_Auth) Then\nm_Auth \x3d auth\nEnd If\nEnd Sub\nPublic Function GetAuthToken()\n GetAuthToken \x3d m_Auth\nEnd Function\nPublic Sub SendMessage(service, payload)\n Call m_Transport."+goog.net.xpc.NixTransport.NIX_HANDLE_MESSAGE+
"(service, payload)\nEnd Sub\nPublic Sub CreateChannel(channel)\n Call m_Transport."+goog.net.xpc.NixTransport.NIX_CREATE_CHANNEL+"(channel)\nEnd Sub\nPublic Sub "+goog.net.xpc.NixTransport.NIX_ID_FIELD+"()\n End Sub\nEnd Class\n Function "+goog.net.xpc.NixTransport.NIX_GET_WRAPPER+"(transport, auth)\nDim wrap\nSet wrap \x3d New "+goog.net.xpc.NixTransport.NIX_WRAPPER+"\nwrap.SetTransport transport\nwrap.SetAuth auth\nSet "+goog.net.xpc.NixTransport.NIX_GET_WRAPPER+" \x3d wrap\nEnd Function";try{a.execScript(b,
"vbscript"),a.nix_setup_complete=!0}catch(c){goog.log.error(goog.net.xpc.logger,"exception caught while attempting global setup: "+c)}}};goog.net.xpc.NixTransport.prototype.transportType=goog.net.xpc.TransportTypes.NIX;goog.net.xpc.NixTransport.prototype.localSetupCompleted_=!1;goog.net.xpc.NixTransport.prototype.nixChannel_=null;goog.net.xpc.NixTransport.prototype.connect=function(){this.channel_.getRole()==goog.net.xpc.CrossPageChannelRole.OUTER?this.attemptOuterSetup_():this.attemptInnerSetup_()};
goog.net.xpc.NixTransport.prototype.attemptOuterSetup_=function(){if(!this.localSetupCompleted_){var a=this.channel_.getIframeElement();try{var b=this.getWindow()[goog.net.xpc.NixTransport.NIX_GET_WRAPPER];a.contentWindow.opener=b(this,this.authToken_);this.localSetupCompleted_=!0}catch(c){goog.log.error(goog.net.xpc.logger,"exception caught while attempting setup: "+c)}this.localSetupCompleted_||this.getWindow().setTimeout(goog.bind(this.attemptOuterSetup_,this),100)}};
goog.net.xpc.NixTransport.prototype.attemptInnerSetup_=function(){if(!this.localSetupCompleted_){try{var a=this.getWindow().opener;if(a&&goog.net.xpc.NixTransport.NIX_ID_FIELD in a){this.nixChannel_=a;if(this.nixChannel_.GetAuthToken()!=this.remoteAuthToken_){goog.log.error(goog.net.xpc.logger,"Invalid auth token from other party");return}var b=this.getWindow()[goog.net.xpc.NixTransport.NIX_GET_WRAPPER];this.nixChannel_.CreateChannel(b(this,this.authToken_));this.localSetupCompleted_=!0;this.channel_.notifyConnected()}}catch(c){goog.log.error(goog.net.xpc.logger,
"exception caught while attempting setup: "+c);return}this.localSetupCompleted_||this.getWindow().setTimeout(goog.bind(this.attemptInnerSetup_,this),100)}};
goog.net.xpc.NixTransport.prototype.createChannel_=function(a){"unknown"==typeof a&&goog.net.xpc.NixTransport.NIX_ID_FIELD in a||goog.log.error(goog.net.xpc.logger,"Invalid NIX channel given to createChannel_");this.nixChannel_=a;this.nixChannel_.GetAuthToken()!=this.remoteAuthToken_?goog.log.error(goog.net.xpc.logger,"Invalid auth token from other party"):this.channel_.notifyConnected()};
goog.net.xpc.NixTransport.prototype.handleMessage_=function(a,b){this.getWindow().setTimeout(goog.bind(function(){this.channel_.xpcDeliver(a,b)},this),1)};goog.net.xpc.NixTransport.prototype.send=function(a,b){"unknown"!==typeof this.nixChannel_&&goog.log.error(goog.net.xpc.logger,"NIX channel not connected");this.nixChannel_.SendMessage(a,b)};goog.net.xpc.NixTransport.prototype.disposeInternal=function(){goog.net.xpc.NixTransport.superClass_.disposeInternal.call(this);this.nixChannel_=null};goog.net.xpc.CrossPageChannel=function(a,b){goog.messaging.AbstractChannel.call(this);for(var c=0,d;d=goog.net.xpc.UriCfgFields[c];c++)if(d in a&&!/^https?:\/\//.test(a[d]))throw Error("URI "+a[d]+" is invalid for field "+d);this.cfg_=a;this.name=this.cfg_[goog.net.xpc.CfgFields.CHANNEL_NAME]||goog.net.xpc.getRandomString(10);this.domHelper_=b||goog.dom.getDomHelper();this.deferredDeliveries_=[];this.peerLoadHandler_=new goog.events.EventHandler(this);a[goog.net.xpc.CfgFields.LOCAL_POLL_URI]=a[goog.net.xpc.CfgFields.LOCAL_POLL_URI]||
goog.uri.utils.getHost(this.domHelper_.getWindow().location.href)+"/robots.txt";a[goog.net.xpc.CfgFields.PEER_POLL_URI]=a[goog.net.xpc.CfgFields.PEER_POLL_URI]||goog.uri.utils.getHost(a[goog.net.xpc.CfgFields.PEER_URI]||"")+"/robots.txt";goog.net.xpc.channels[this.name]=this;goog.events.getListener(window,goog.events.EventType.UNLOAD,goog.net.xpc.CrossPageChannel.disposeAll_)||goog.events.listenOnce(window,goog.events.EventType.UNLOAD,goog.net.xpc.CrossPageChannel.disposeAll_);goog.log.info(goog.net.xpc.logger,
"CrossPageChannel created: "+this.name)};goog.inherits(goog.net.xpc.CrossPageChannel,goog.messaging.AbstractChannel);goog.net.xpc.CrossPageChannel.TRANSPORT_SERVICE_ESCAPE_RE_=new RegExp("^%*"+goog.net.xpc.TRANSPORT_SERVICE_+"$");goog.net.xpc.CrossPageChannel.TRANSPORT_SERVICE_UNESCAPE_RE_=new RegExp("^%+"+goog.net.xpc.TRANSPORT_SERVICE_+"$");goog.net.xpc.CrossPageChannel.prototype.connectionDelay_=null;goog.net.xpc.CrossPageChannel.prototype.peerWindowDeferred_=null;
goog.net.xpc.CrossPageChannel.prototype.transport_=null;goog.net.xpc.CrossPageChannel.prototype.state_=goog.net.xpc.ChannelStates.NOT_CONNECTED;goog.net.xpc.CrossPageChannel.prototype.isConnected=function(){return this.state_==goog.net.xpc.ChannelStates.CONNECTED};goog.net.xpc.CrossPageChannel.prototype.peerWindowObject_=null;goog.net.xpc.CrossPageChannel.prototype.iframeElement_=null;goog.net.xpc.CrossPageChannel.prototype.getConfig=function(){return this.cfg_};
goog.net.xpc.CrossPageChannel.prototype.getIframeElement=function(){return this.iframeElement_};goog.net.xpc.CrossPageChannel.prototype.setPeerWindowObject=function(a){this.peerWindowObject_=a};goog.net.xpc.CrossPageChannel.prototype.getPeerWindowObject=function(){return this.peerWindowObject_};goog.net.xpc.CrossPageChannel.prototype.isPeerAvailable=function(){try{return!!this.peerWindowObject_&&!this.peerWindowObject_.closed}catch(a){return!1}};
goog.net.xpc.CrossPageChannel.prototype.determineTransportType_=function(){return goog.isFunction(document.postMessage)||goog.isFunction(window.postMessage)||goog.userAgent.IE&&window.postMessage?goog.net.xpc.TransportTypes.NATIVE_MESSAGING:goog.userAgent.GECKO?goog.net.xpc.TransportTypes.FRAME_ELEMENT_METHOD:goog.userAgent.IE&&this.cfg_[goog.net.xpc.CfgFields.PEER_RELAY_URI]?goog.net.xpc.TransportTypes.IFRAME_RELAY:goog.userAgent.IE&&goog.net.xpc.NixTransport.isNixSupported()?goog.net.xpc.TransportTypes.NIX:
goog.net.xpc.TransportTypes.IFRAME_POLLING};
goog.net.xpc.CrossPageChannel.prototype.createTransport_=function(){if(!this.transport_){var a=goog.net.xpc.CfgFields;this.cfg_[a.TRANSPORT]||(this.cfg_[a.TRANSPORT]=this.determineTransportType_());switch(this.cfg_[a.TRANSPORT]){case goog.net.xpc.TransportTypes.NATIVE_MESSAGING:this.transport_=new goog.net.xpc.NativeMessagingTransport(this,this.cfg_[a.PEER_HOSTNAME],this.domHelper_,!!this.cfg_[a.ONE_SIDED_HANDSHAKE],this.cfg_[a.NATIVE_TRANSPORT_PROTOCOL_VERSION]||2);break;case goog.net.xpc.TransportTypes.NIX:this.transport_=
new goog.net.xpc.NixTransport(this,this.domHelper_);break;case goog.net.xpc.TransportTypes.FRAME_ELEMENT_METHOD:this.transport_=new goog.net.xpc.FrameElementMethodTransport(this,this.domHelper_);break;case goog.net.xpc.TransportTypes.IFRAME_RELAY:this.transport_=new goog.net.xpc.IframeRelayTransport(this,this.domHelper_);break;case goog.net.xpc.TransportTypes.IFRAME_POLLING:this.transport_=new goog.net.xpc.IframePollingTransport(this,this.domHelper_);break;case goog.net.xpc.TransportTypes.DIRECT:this.peerWindowObject_&&
goog.net.xpc.DirectTransport.isSupported(this.peerWindowObject_)?this.transport_=new goog.net.xpc.DirectTransport(this,this.domHelper_):goog.log.info(goog.net.xpc.logger,"DirectTransport not supported for this window, peer window in different security context or not set yet.")}if(this.transport_)goog.log.info(goog.net.xpc.logger,"Transport created: "+this.transport_.getName());else throw Error("CrossPageChannel: No suitable transport found!");}};
goog.net.xpc.CrossPageChannel.prototype.getTransportType=function(){return this.transport_.getType()};goog.net.xpc.CrossPageChannel.prototype.getTransportName=function(){return this.transport_.getName()};
goog.net.xpc.CrossPageChannel.prototype.getPeerConfiguration=function(){var a={};a[goog.net.xpc.CfgFields.CHANNEL_NAME]=this.name;a[goog.net.xpc.CfgFields.TRANSPORT]=this.cfg_[goog.net.xpc.CfgFields.TRANSPORT];a[goog.net.xpc.CfgFields.ONE_SIDED_HANDSHAKE]=this.cfg_[goog.net.xpc.CfgFields.ONE_SIDED_HANDSHAKE];this.cfg_[goog.net.xpc.CfgFields.LOCAL_RELAY_URI]&&(a[goog.net.xpc.CfgFields.PEER_RELAY_URI]=this.cfg_[goog.net.xpc.CfgFields.LOCAL_RELAY_URI]);this.cfg_[goog.net.xpc.CfgFields.LOCAL_POLL_URI]&&
(a[goog.net.xpc.CfgFields.PEER_POLL_URI]=this.cfg_[goog.net.xpc.CfgFields.LOCAL_POLL_URI]);this.cfg_[goog.net.xpc.CfgFields.PEER_POLL_URI]&&(a[goog.net.xpc.CfgFields.LOCAL_POLL_URI]=this.cfg_[goog.net.xpc.CfgFields.PEER_POLL_URI]);var b=this.cfg_[goog.net.xpc.CfgFields.ROLE];b&&(a[goog.net.xpc.CfgFields.ROLE]=b==goog.net.xpc.CrossPageChannelRole.INNER?goog.net.xpc.CrossPageChannelRole.OUTER:goog.net.xpc.CrossPageChannelRole.INNER);return a};
goog.net.xpc.CrossPageChannel.prototype.createPeerIframe=function(a,b,c){goog.log.info(goog.net.xpc.logger,"createPeerIframe()");var d=this.cfg_[goog.net.xpc.CfgFields.IFRAME_ID];d||(d=this.cfg_[goog.net.xpc.CfgFields.IFRAME_ID]="xpcpeer"+goog.net.xpc.getRandomString(4));var e=goog.dom.getDomHelper(a).createElement("IFRAME");e.id=e.name=d;b?b(e):e.style.width=e.style.height="100%";this.cleanUpIncompleteConnection_();this.peerWindowDeferred_=new goog.async.Deferred(void 0,this);var f=this.getPeerUri(c);
this.peerLoadHandler_.listenOnceWithScope(e,"load",this.peerWindowDeferred_.callback,!1,this.peerWindowDeferred_);goog.userAgent.GECKO||goog.userAgent.WEBKIT?window.setTimeout(goog.bind(function(){a.appendChild(e);e.src=f.toString();goog.log.info(goog.net.xpc.logger,"peer iframe created ("+d+")")},this),1):(e.src=f.toString(),a.appendChild(e),goog.log.info(goog.net.xpc.logger,"peer iframe created ("+d+")"));return e};
goog.net.xpc.CrossPageChannel.prototype.cleanUpIncompleteConnection_=function(){this.peerWindowDeferred_&&(this.peerWindowDeferred_.cancel(),this.peerWindowDeferred_=null);this.deferredDeliveries_.length=0;this.peerLoadHandler_.removeAll()};
goog.net.xpc.CrossPageChannel.prototype.getPeerUri=function(a){var b=this.cfg_[goog.net.xpc.CfgFields.PEER_URI];goog.isString(b)&&(b=this.cfg_[goog.net.xpc.CfgFields.PEER_URI]=new goog.Uri(b));!1!==a&&b.setParameterValue("xpc",goog.json.serialize(this.getPeerConfiguration()));return b};
goog.net.xpc.CrossPageChannel.prototype.connect=function(a){this.connectCb_=a||goog.nullFunction;this.state_==goog.net.xpc.ChannelStates.CLOSED&&(this.state_=goog.net.xpc.ChannelStates.NOT_CONNECTED);this.peerWindowDeferred_?this.peerWindowDeferred_.addCallback(this.continueConnection_):this.continueConnection_()};
goog.net.xpc.CrossPageChannel.prototype.continueConnection_=function(){goog.log.info(goog.net.xpc.logger,"continueConnection_()");this.peerWindowDeferred_=null;this.cfg_[goog.net.xpc.CfgFields.IFRAME_ID]&&(this.iframeElement_=this.domHelper_.getElement(this.cfg_[goog.net.xpc.CfgFields.IFRAME_ID]));if(this.iframeElement_){var a=this.iframeElement_.contentWindow;a||(a=window.frames[this.cfg_[goog.net.xpc.CfgFields.IFRAME_ID]]);this.setPeerWindowObject(a)}if(!this.peerWindowObject_){if(window==window.top)throw Error("CrossPageChannel: Can't connect, peer window-object not set.");
this.setPeerWindowObject(window.parent)}this.createTransport_();for(this.transport_.connect();0=b||b>=2+cljs.core.count.call(null,a))return cljs.core.conj.call(null,cljs.core.vec.call(null,cljs.core.cons.call(null,"",cljs.core.map.call(null,cljs.core.str,cljs.core.seq.call(null,a)))),"");var c=cljs.core._EQ__EQ_;if(cljs.core.truth_(c.call(null,1,b)))return new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[a],null);if(cljs.core.truth_(c.call(null,2,b)))return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,
["",a],null);b-=2;return cljs.core.conj.call(null,cljs.core.vec.call(null,cljs.core.cons.call(null,"",cljs.core.subvec.call(null,cljs.core.vec.call(null,cljs.core.map.call(null,cljs.core.str,cljs.core.seq.call(null,a))),0,b))),cljs.core.subs.call(null,a,b))};
clojure.string.split=function(a){switch(arguments.length){case 2:return clojure.string.split.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return clojure.string.split.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};clojure.string.split.cljs$core$IFn$_invoke$arity$2=function(a,b){return clojure.string.split.call(null,a,b,0)};
clojure.string.split.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return clojure.string.discard_trailing_if_needed.call(null,c,"/(?:)/"===[cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join("")?clojure.string.split_with_empty_regex.call(null,a,c):1>c?cljs.core.vec.call(null,[cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)].join("").split(b)):function(){for(var d=a,e=c,f=cljs.core.PersistentVector.EMPTY;;){if(1===e)return cljs.core.conj.call(null,f,d);var g=cljs.core.re_find.call(null,b,d);if(null!=
g){var h=d.indexOf(g);g=d.substring(h+cljs.core.count.call(null,g));--e;f=cljs.core.conj.call(null,f,d.substring(0,h));d=g}else return cljs.core.conj.call(null,f,d)}}())};clojure.string.split.cljs$lang$maxFixedArity=3;clojure.string.split_lines=function(a){return clojure.string.split.call(null,a,/\n|\r\n/)};clojure.string.trim=function(a){return goog.string.trim(a)};clojure.string.triml=function(a){return goog.string.trimLeft(a)};clojure.string.trimr=function(a){return goog.string.trimRight(a)};
clojure.string.trim_newline=function(a){for(var b=a.length;;){if(0===b)return"";var c=cljs.core.get.call(null,a,b-1);if("\n"===c||"\r"===c)--b;else return a.substring(0,b)}};clojure.string.blank_QMARK_=function(a){return goog.string.isEmptySafe(a)};
clojure.string.escape=function(a,b){for(var c=new goog.string.StringBuffer,d=a.length,e=0;;){if(d===e)return c.toString();var f=a.charAt(e),g=cljs.core.get.call(null,b,f);null!=g?c.append([cljs.core.str.cljs$core$IFn$_invoke$arity$1(g)].join("")):c.append(f);e+=1}};
clojure.string.index_of=function(a){switch(arguments.length){case 2:return clojure.string.index_of.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return clojure.string.index_of.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};clojure.string.index_of.cljs$core$IFn$_invoke$arity$2=function(a,b){a=a.indexOf(b);return 0>a?null:a};
clojure.string.index_of.cljs$core$IFn$_invoke$arity$3=function(a,b,c){a=a.indexOf(b,c);return 0>a?null:a};clojure.string.index_of.cljs$lang$maxFixedArity=3;
clojure.string.last_index_of=function(a){switch(arguments.length){case 2:return clojure.string.last_index_of.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return clojure.string.last_index_of.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
clojure.string.last_index_of.cljs$core$IFn$_invoke$arity$2=function(a,b){a=a.lastIndexOf(b);return 0>a?null:a};clojure.string.last_index_of.cljs$core$IFn$_invoke$arity$3=function(a,b,c){a=a.lastIndexOf(b,c);return 0>a?null:a};clojure.string.last_index_of.cljs$lang$maxFixedArity=3;clojure.string.starts_with_QMARK_=function(a,b){return goog.string.startsWith(a,b)};clojure.string.ends_with_QMARK_=function(a,b){return goog.string.endsWith(a,b)};
clojure.string.includes_QMARK_=function(a,b){return goog.string.contains(a,b)};clojure.walk={};
clojure.walk.walk=function(a,b,c){return cljs.core.list_QMARK_.call(null,c)?b.call(null,cljs.core.apply.call(null,cljs.core.list,cljs.core.map.call(null,a,c))):cljs.core.map_entry_QMARK_.call(null,c)?b.call(null,cljs.core.vec.call(null,cljs.core.map.call(null,a,c))):cljs.core.seq_QMARK_.call(null,c)?b.call(null,cljs.core.doall.call(null,cljs.core.map.call(null,a,c))):cljs.core.record_QMARK_.call(null,c)?b.call(null,cljs.core.reduce.call(null,function(b,c){return cljs.core.conj.call(null,b,a.call(null,
c))},c,c)):cljs.core.coll_QMARK_.call(null,c)?b.call(null,cljs.core.into.call(null,cljs.core.empty.call(null,c),cljs.core.map.call(null,a,c))):b.call(null,c)};clojure.walk.postwalk=function(a,b){return clojure.walk.walk.call(null,cljs.core.partial.call(null,clojure.walk.postwalk,a),a,b)};clojure.walk.prewalk=function(a,b){return clojure.walk.walk.call(null,cljs.core.partial.call(null,clojure.walk.prewalk,a),cljs.core.identity,a.call(null,b))};
clojure.walk.keywordize_keys=function(a){return clojure.walk.postwalk.call(null,function(a){return function(b){return cljs.core.map_QMARK_.call(null,b)?cljs.core.into.call(null,cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.call(null,a,b)):b}}(function(a){var b=cljs.core.nth.call(null,a,0,null);a=cljs.core.nth.call(null,a,1,null);return"string"===typeof b?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.keyword.call(null,b),a],null):new cljs.core.PersistentVector(null,
2,5,cljs.core.PersistentVector.EMPTY_NODE,[b,a],null)}),a)};
clojure.walk.stringify_keys=function(a){return clojure.walk.postwalk.call(null,function(a){return function(b){return cljs.core.map_QMARK_.call(null,b)?cljs.core.into.call(null,cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.call(null,a,b)):b}}(function(a){var b=cljs.core.nth.call(null,a,0,null);a=cljs.core.nth.call(null,a,1,null);return b instanceof cljs.core.Keyword?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.name.call(null,b),a],null):new cljs.core.PersistentVector(null,
2,5,cljs.core.PersistentVector.EMPTY_NODE,[b,a],null)}),a)};clojure.walk.prewalk_replace=function(a,b){return clojure.walk.prewalk.call(null,function(b){return cljs.core.contains_QMARK_.call(null,a,b)?a.call(null,b):b},b)};clojure.walk.postwalk_replace=function(a,b){return clojure.walk.postwalk.call(null,function(b){return cljs.core.contains_QMARK_.call(null,a,b)?a.call(null,b):b},b)};cljs.spec={};cljs.spec.gen={};cljs.spec.gen.alpha={};cljs.spec.gen.alpha.LazyVar=function(a,b){this.f=a;this.cached=b;this.cljs$lang$protocol_mask$partition0$=32768;this.cljs$lang$protocol_mask$partition1$=0};cljs.spec.gen.alpha.LazyVar.prototype.cljs$core$IDeref$_deref$arity$1=function(a){if(null!=this.cached)return this.cached;a=this.f.call(null);null!=a&&(this.cached=a);return a};
cljs.spec.gen.alpha.LazyVar.getBasis=function(){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Symbol(null,"f","f",43394975,null),cljs.core.with_meta(new cljs.core.Symbol(null,"cached","cached",-1216707864,null),new cljs.core.PersistentArrayMap(null,1,[new cljs.core.Keyword(null,"mutable","mutable",875778266),!0],null))],null)};cljs.spec.gen.alpha.LazyVar.cljs$lang$type=!0;cljs.spec.gen.alpha.LazyVar.cljs$lang$ctorStr="cljs.spec.gen.alpha/LazyVar";
cljs.spec.gen.alpha.LazyVar.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write.call(null,b,"cljs.spec.gen.alpha/LazyVar")};cljs.spec.gen.alpha.__GT_LazyVar=function(a,b){return new cljs.spec.gen.alpha.LazyVar(a,b)};
cljs.spec.gen.alpha.quick_check_ref=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check.quick_check)return clojure.test.check.quick_check;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Symbol("clojure.test.check","quick-check","clojure.test.check/quick-check",-810344251,null))," does not exist, ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.namespace.call(null,new cljs.core.Symbol("clojure.test.check",
"quick-check","clojure.test.check/quick-check",-810344251,null)))," never required"].join(""));},null);cljs.spec.gen.alpha.quick_check=function(a){for(var b=[],c=arguments.length,d=0;;)if(d(new cljs.core.Keyword("cljs.spec.alpha","recursion-limit","cljs.spec.alpha/recursion-limit",601284994)).cljs$core$IFn$_invoke$arity$1(a)&&cljs.core.contains_QMARK_.call(null,cljs.core.set.call(null,c),d)};cljs.spec.alpha.inck=function(a,b){return cljs.core.assoc.call(null,a,b,function(){var c=cljs.core.get.call(null,a,b);return cljs.core.truth_(c)?c:0}()+1)};
cljs.spec.alpha.dt=function(a){switch(arguments.length){case 3:return cljs.spec.alpha.dt.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);case 4:return cljs.spec.alpha.dt.cljs$core$IFn$_invoke$arity$4(arguments[0],arguments[1],arguments[2],arguments[3]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};cljs.spec.alpha.dt.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return cljs.spec.alpha.dt.call(null,a,b,c,null)};
cljs.spec.alpha.dt.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){if(cljs.core.truth_(a)){var e=cljs.spec.alpha.the_spec.call(null,a);if(cljs.core.truth_(e))return cljs.spec.alpha.conform.call(null,e,b);if(cljs.core.ifn_QMARK_.call(null,a))return cljs.core.truth_(d)?a.call(null,b):cljs.core.truth_(a.call(null,b))?b:new cljs.core.Keyword("cljs.spec.alpha","invalid","cljs.spec.alpha/invalid",-1220295119);throw Error([cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.pr_str.call(null,c))," is not a fn, expected predicate fn"].join(""));
}return b};cljs.spec.alpha.dt.cljs$lang$maxFixedArity=4;cljs.spec.alpha.valid_QMARK_=function(a){switch(arguments.length){case 2:return cljs.spec.alpha.valid_QMARK_.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.spec.alpha.valid_QMARK_.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.spec.alpha.valid_QMARK_.cljs$core$IFn$_invoke$arity$2=function(a,b){a=cljs.spec.alpha.specize.call(null,a);return cljs.core.not.call(null,cljs.spec.alpha.invalid_QMARK_.call(null,cljs.spec.alpha.conform_STAR_.call(null,a,b)))};cljs.spec.alpha.valid_QMARK_.cljs$core$IFn$_invoke$arity$3=function(a,b,c){a=cljs.spec.alpha.specize.call(null,a,c);return cljs.core.not.call(null,cljs.spec.alpha.invalid_QMARK_.call(null,cljs.spec.alpha.conform_STAR_.call(null,a,b)))};
cljs.spec.alpha.valid_QMARK_.cljs$lang$maxFixedArity=3;cljs.spec.alpha.pvalid_QMARK_=function(a){switch(arguments.length){case 2:return cljs.spec.alpha.pvalid_QMARK_.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.spec.alpha.pvalid_QMARK_.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.spec.alpha.pvalid_QMARK_.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core.not.call(null,cljs.spec.alpha.invalid_QMARK_.call(null,cljs.spec.alpha.dt.call(null,a,b,new cljs.core.Keyword("cljs.spec.alpha","unknown","cljs.spec.alpha/unknown",651034818))))};cljs.spec.alpha.pvalid_QMARK_.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return cljs.core.not.call(null,cljs.spec.alpha.invalid_QMARK_.call(null,cljs.spec.alpha.dt.call(null,a,b,c)))};
cljs.spec.alpha.pvalid_QMARK_.cljs$lang$maxFixedArity=3;
cljs.spec.alpha.explain_1=function(a,b,c,d,e,f){var g=cljs.spec.alpha.maybe_spec.call(null,b);return cljs.core.truth_(cljs.spec.alpha.spec_QMARK_.call(null,g))?cljs.spec.alpha.explain_STAR_.call(null,g,c,function(){var a=cljs.spec.alpha.spec_name.call(null,g);return cljs.core.truth_(a)?cljs.core.conj.call(null,d,a):d}(),e,f):new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentArrayMap(null,5,[new cljs.core.Keyword(null,"path","path",-188191168),c,
new cljs.core.Keyword(null,"pred","pred",1927423397),a,new cljs.core.Keyword(null,"val","val",128701612),f,new cljs.core.Keyword(null,"via","via",-1904457336),d,new cljs.core.Keyword(null,"in","in",-1531184865),e],null)],null)};
cljs.spec.alpha.map_spec_impl=function(a){var b=null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core.apply.call(null,cljs.core.hash_map,a):a,c=cljs.core.get.call(null,b,new cljs.core.Keyword(null,"opt","opt",-794706369)),d=cljs.core.get.call(null,b,new cljs.core.Keyword(null,"req-un","req-un",1074571008)),e=cljs.core.get.call(null,b,new cljs.core.Keyword(null,"opt-un","opt-un",883442496)),f=cljs.core.get.call(null,b,new cljs.core.Keyword(null,
"gfn","gfn",791517474)),g=cljs.core.get.call(null,b,new cljs.core.Keyword(null,"pred-exprs","pred-exprs",1792271395)),h=cljs.core.get.call(null,b,new cljs.core.Keyword(null,"keys-pred","keys-pred",858984739)),k=cljs.core.get.call(null,b,new cljs.core.Keyword(null,"opt-keys","opt-keys",1262688261)),l=cljs.core.get.call(null,b,new cljs.core.Keyword(null,"req-specs","req-specs",553962313)),m=cljs.core.get.call(null,b,new cljs.core.Keyword(null,"req","req",-326448303)),n=cljs.core.get.call(null,b,new cljs.core.Keyword(null,
"req-keys","req-keys",514319221)),p=cljs.core.get.call(null,b,new cljs.core.Keyword(null,"opt-specs","opt-specs",-384905450)),q=cljs.core.get.call(null,b,new cljs.core.Keyword(null,"pred-forms","pred-forms",172611832)),r=cljs.core.zipmap.call(null,cljs.core.concat.call(null,n,k),cljs.core.concat.call(null,l,p)),t=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t){return function(b){var c=a.call(null,b);return cljs.core.truth_(c)?c:b}}(r,a,b,b,c,d,e,f,g,h,k,l,m,n,p,q),u=cljs.core.random_uuid.call(null);"undefined"===
typeof cljs.spec.alpha.t_cljs$spec$alpha17058&&(cljs.spec.alpha.t_cljs$spec$alpha17058=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,F,M){this.p__17055=a;this.keys__GT_specnames=b;this.opt=c;this.req_un=d;this.opt_un=e;this.gfn=f;this.pred_exprs=g;this.keys_pred=h;this.argm=k;this.opt_keys=l;this.req_specs=m;this.req=n;this.id=p;this.req_keys=q;this.opt_specs=r;this.map__17056=t;this.k__GT_s=u;this.pred_forms=F;this.meta17059=M;this.cljs$lang$protocol_mask$partition0$=393216;this.cljs$lang$protocol_mask$partition1$=
0},cljs.spec.alpha.t_cljs$spec$alpha17058.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,F){return function(a,b){return new cljs.spec.alpha.t_cljs$spec$alpha17058(this.p__17055,this.keys__GT_specnames,this.opt,this.req_un,this.opt_un,this.gfn,this.pred_exprs,this.keys_pred,this.argm,this.opt_keys,this.req_specs,this.req,this.id,this.req_keys,this.opt_specs,this.map__17056,this.k__GT_s,this.pred_forms,b)}}(r,t,u,a,b,b,c,d,e,f,g,h,k,l,m,n,p,q),cljs.spec.alpha.t_cljs$spec$alpha17058.prototype.cljs$core$IMeta$_meta$arity$1=
function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,F){return function(a){return this.meta17059}}(r,t,u,a,b,b,c,d,e,f,g,h,k,l,m,n,p,q),cljs.spec.alpha.t_cljs$spec$alpha17058.prototype.cljs$spec$alpha$Specize$=cljs.core.PROTOCOL_SENTINEL,cljs.spec.alpha.t_cljs$spec$alpha17058.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,F){return function(a){return this}}(r,t,u,a,b,b,c,d,e,f,g,h,k,l,m,n,p,q),cljs.spec.alpha.t_cljs$spec$alpha17058.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2=
function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,F){return function(a,b){return this}}(r,t,u,a,b,b,c,d,e,f,g,h,k,l,m,n,p,q),cljs.spec.alpha.t_cljs$spec$alpha17058.prototype.cljs$spec$alpha$Spec$=cljs.core.PROTOCOL_SENTINEL,cljs.spec.alpha.t_cljs$spec$alpha17058.prototype.cljs$spec$alpha$Spec$conform_STAR_$arity$2=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,F){return function(a,b){if(cljs.core.truth_(this.keys_pred.call(null,b))){a=cljs.spec.alpha.registry.call(null);var c=cljs.core.seq.call(null,b),d=cljs.core.first.call(null,
c);cljs.core.next.call(null,c);cljs.core.nth.call(null,d,0,null);cljs.core.nth.call(null,d,1,null);for(d=c=b;;){b=c;var e=cljs.core.seq.call(null,d);c=cljs.core.first.call(null,e);var f=cljs.core.next.call(null,e);e=c;c=cljs.core.nth.call(null,e,0,null);e=cljs.core.nth.call(null,e,1,null);if(cljs.core.truth_(d))if(d=this.keys__GT_specnames.call(null,c),d=cljs.core.get.call(null,a,d),cljs.core.truth_(d)){d=cljs.spec.alpha.conform.call(null,d,e);if(cljs.core.truth_(cljs.spec.alpha.invalid_QMARK_.call(null,
d)))return new cljs.core.Keyword("cljs.spec.alpha","invalid","cljs.spec.alpha/invalid",-1220295119);b=d===e?b:cljs.core.assoc.call(null,b,c,d);d=f;c=b}else d=f,c=b;else return b}}else return new cljs.core.Keyword("cljs.spec.alpha","invalid","cljs.spec.alpha/invalid",-1220295119)}}(r,t,u,a,b,b,c,d,e,f,g,h,k,l,m,n,p,q),cljs.spec.alpha.t_cljs$spec$alpha17058.prototype.cljs$spec$alpha$Spec$unform_STAR_$arity$2=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,F){return function(a,b){a=cljs.spec.alpha.registry.call(null);
var c=cljs.core.keys.call(null,b),d=cljs.core.seq.call(null,c);cljs.core.first.call(null,d);cljs.core.next.call(null,d);for(d=b;;){var e=cljs.core.seq.call(null,c),f=cljs.core.first.call(null,e);e=cljs.core.next.call(null,e);if(cljs.core.truth_(c))if(cljs.core.contains_QMARK_.call(null,a,this.keys__GT_specnames.call(null,f))){c=cljs.core.get.call(null,b,f);var g=cljs.spec.alpha.unform.call(null,this.keys__GT_specnames.call(null,f),c);d=c===g?d:cljs.core.assoc.call(null,d,f,g);c=e}else c=e;else return d}}}(r,
t,u,a,b,b,c,d,e,f,g,h,k,l,m,n,p,q),cljs.spec.alpha.t_cljs$spec$alpha17058.prototype.cljs$spec$alpha$Spec$explain_STAR_$arity$5=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,F){return function(v,w,x,y,z){var A=this,D=this;if(cljs.core.map_QMARK_.call(null,z)){var E=cljs.spec.alpha.registry.call(null);return cljs.core.apply.call(null,cljs.core.concat,function(){var v=cljs.core.seq.call(null,cljs.core.keep.call(null,cljs.core.identity,cljs.core.map.call(null,function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,
w,x){return function(a,b){return cljs.core.truth_(a.call(null,z))?null:b}}(E,D,a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,F),A.pred_exprs,A.pred_forms)));return v?cljs.core.map.call(null,function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,A,D,E,B){return function(a){return cljs.core.identity.call(null,new cljs.core.PersistentArrayMap(null,5,[new cljs.core.Keyword(null,"path","path",-188191168),w,new cljs.core.Keyword(null,"pred","pred",1927423397),a,new cljs.core.Keyword(null,"val","val",128701612),z,new cljs.core.Keyword(null,
"via","via",-1904457336),x,new cljs.core.Keyword(null,"in","in",-1531184865),y],null))}}(v,v,E,D,a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,F),v):null}(),cljs.core.map.call(null,function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,z,D){return function(b){var c=cljs.core.nth.call(null,b,0,null),d=cljs.core.nth.call(null,b,1,null);return cljs.core.truth_(function(){var b=!cljs.core.contains_QMARK_.call(null,a,A.keys__GT_specnames.call(null,c));return b?b:cljs.spec.alpha.pvalid_QMARK_.call(null,A.keys__GT_specnames.call(null,
c),d,c)}())?null:cljs.spec.alpha.explain_1.call(null,A.keys__GT_specnames.call(null,c),A.keys__GT_specnames.call(null,c),cljs.core.conj.call(null,w,c),x,cljs.core.conj.call(null,y,c),d)}}(E,D,a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,F),cljs.core.seq.call(null,z)))}return new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentArrayMap(null,5,[new cljs.core.Keyword(null,"path","path",-188191168),w,new cljs.core.Keyword(null,"pred","pred",1927423397),new cljs.core.Symbol(null,
"map?","map?",-1780568534,null),new cljs.core.Keyword(null,"val","val",128701612),z,new cljs.core.Keyword(null,"via","via",-1904457336),x,new cljs.core.Keyword(null,"in","in",-1531184865),y],null)],null)}}(r,t,u,a,b,b,c,d,e,f,g,h,k,l,m,n,p,q),cljs.spec.alpha.t_cljs$spec$alpha17058.prototype.cljs$spec$alpha$Spec$gen_STAR_$arity$4=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,F){return function(v,w,x,y){var z=this;if(cljs.core.truth_(z.gfn))return z.gfn.call(null);v=cljs.spec.alpha.inck.call(null,y,z.id);
y=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,y,z){return function(b,c){return cljs.spec.alpha.gensub.call(null,c,w,cljs.core.conj.call(null,x,b),a,b)}}(v,this,a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,F);var A=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,y,A,D){return function(E,B){return cljs.core.truth_(cljs.spec.alpha.recur_limit_QMARK_.call(null,a,z.id,x,E))?null:new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[E,cljs.spec.gen.alpha.delay_impl.call(null,new cljs.core.Delay(function(a,
b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,y,z,A){return function(){return cljs.spec.alpha.gensub.call(null,B,w,cljs.core.conj.call(null,x,E),a,E)}}(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,y,A,D),null))],null)}}(v,y,this,a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,F),D=cljs.core.map.call(null,y,z.req_keys,z.req_specs),E=cljs.core.remove.call(null,cljs.core.nil_QMARK_,cljs.core.map.call(null,A,z.opt_keys,z.opt_specs));if(cljs.core.every_QMARK_.call(null,cljs.core.identity,cljs.core.concat.call(null,D,E))){var B=cljs.core.zipmap.call(null,
z.req_keys,D),G=cljs.core.into.call(null,cljs.core.PersistentArrayMap.EMPTY,E);return cljs.spec.gen.alpha.bind.call(null,cljs.spec.gen.alpha.choose.call(null,0,cljs.core.count.call(null,G)),function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,y,z,A,D,E,B){return function(c){var d=cljs.core.concat.call(null,cljs.core.seq.call(null,a),cljs.core.seq.call(null,b)?cljs.core.shuffle.call(null,cljs.core.seq.call(null,b)):null);return cljs.core.apply.call(null,cljs.spec.gen.alpha.hash_map,cljs.core.apply.call(null,
cljs.core.concat,cljs.core.take.call(null,c+cljs.core.count.call(null,a),d)))}}(B,G,v,y,A,D,E,this,a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,F))}return null}}(r,t,u,a,b,b,c,d,e,f,g,h,k,l,m,n,p,q),cljs.spec.alpha.t_cljs$spec$alpha17058.prototype.cljs$spec$alpha$Spec$with_gen_STAR_$arity$2=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,F){return function(a,b){return cljs.spec.alpha.map_spec_impl.call(null,cljs.core.assoc.call(null,this.argm,new cljs.core.Keyword(null,"gfn","gfn",791517474),b))}}(r,t,u,a,b,b,c,
d,e,f,g,h,k,l,m,n,p,q),cljs.spec.alpha.t_cljs$spec$alpha17058.prototype.cljs$spec$alpha$Spec$describe_STAR_$arity$1=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,F){return function(a){var b=this;return cljs.core.cons.call(null,new cljs.core.Symbol("cljs.spec.alpha","keys","cljs.spec.alpha/keys",1109346032,null),function(){var a=cljs.core.PersistentVector.EMPTY;a=cljs.core.truth_(b.req)?cljs.core.conj.call(null,a,new cljs.core.Keyword(null,"req","req",-326448303),b.req):a;a=cljs.core.truth_(b.opt)?cljs.core.conj.call(null,
a,new cljs.core.Keyword(null,"opt","opt",-794706369),b.opt):a;a=cljs.core.truth_(b.req_un)?cljs.core.conj.call(null,a,new cljs.core.Keyword(null,"req-un","req-un",1074571008),b.req_un):a;return cljs.core.truth_(b.opt_un)?cljs.core.conj.call(null,a,new cljs.core.Keyword(null,"opt-un","opt-un",883442496),b.opt_un):a}())}}(r,t,u,a,b,b,c,d,e,f,g,h,k,l,m,n,p,q),cljs.spec.alpha.t_cljs$spec$alpha17058.getBasis=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,F){return function(){return new cljs.core.PersistentVector(null,
19,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Symbol(null,"p__17055","p__17055",1563726594,null),new cljs.core.Symbol(null,"keys-\x3especnames","keys-\x3especnames",1791294693,null),new cljs.core.Symbol(null,"opt","opt",845825158,null),new cljs.core.Symbol(null,"req-un","req-un",-1579864761,null),new cljs.core.Symbol(null,"opt-un","opt-un",-1770993273,null),new cljs.core.Symbol(null,"gfn","gfn",-1862918295,null),new cljs.core.Symbol(null,"pred-exprs","pred-exprs",-862164374,null),new cljs.core.Symbol(null,
"keys-pred","keys-pred",-1795451030,null),new cljs.core.Symbol(null,"argm","argm",-181546357,null),new cljs.core.Symbol(null,"opt-keys","opt-keys",-1391747508,null),new cljs.core.Symbol(null,"req-specs","req-specs",-2100473456,null),new cljs.core.Symbol(null,"req","req",1314083224,null),new cljs.core.Symbol(null,"id","id",252129435,null),new cljs.core.Symbol(null,"req-keys","req-keys",-2140116548,null),new cljs.core.Symbol(null,"opt-specs","opt-specs",1255626077,null),new cljs.core.Symbol(null,"map__17056",
"map__17056",1008738205,null),new cljs.core.Symbol(null,"k-\x3es","k-\x3es",-1685112801,null),new cljs.core.Symbol(null,"pred-forms","pred-forms",1813143359,null),new cljs.core.Symbol(null,"meta17059","meta17059",1908596492,null)],null)}}(r,t,u,a,b,b,c,d,e,f,g,h,k,l,m,n,p,q),cljs.spec.alpha.t_cljs$spec$alpha17058.cljs$lang$type=!0,cljs.spec.alpha.t_cljs$spec$alpha17058.cljs$lang$ctorStr="cljs.spec.alpha/t_cljs$spec$alpha17058",cljs.spec.alpha.t_cljs$spec$alpha17058.cljs$lang$ctorPrWriter=function(a,
b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,F){return function(a,b,c){return cljs.core._write.call(null,b,"cljs.spec.alpha/t_cljs$spec$alpha17058")}}(r,t,u,a,b,b,c,d,e,f,g,h,k,l,m,n,p,q),cljs.spec.alpha.__GT_t_cljs$spec$alpha17058=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,F){return function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w){return new cljs.spec.alpha.t_cljs$spec$alpha17058(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w)}}(r,t,u,a,b,b,c,d,e,f,g,h,k,l,m,n,p,q));return new cljs.spec.alpha.t_cljs$spec$alpha17058(a,
t,c,d,e,f,g,h,b,k,l,m,u,n,p,b,r,q,cljs.core.PersistentArrayMap.EMPTY)};
cljs.spec.alpha.spec_impl=function(a){switch(arguments.length){case 4:return cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(arguments[0],arguments[1],arguments[2],arguments[3]);case 5:return cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$5(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){return cljs.spec.alpha.spec_impl.call(null,a,b,c,d,null)};
cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$5=function(a,b,c,d,e){if(cljs.core.truth_(cljs.spec.alpha.spec_QMARK_.call(null,b)))return cljs.core.truth_(c)?cljs.spec.alpha.with_gen.call(null,b,c):b;if(cljs.core.truth_(cljs.spec.alpha.regex_QMARK_.call(null,b)))return cljs.spec.alpha.regex_spec_impl.call(null,b,c);if(cljs.core.ident_QMARK_.call(null,b))return a=cljs.spec.alpha.the_spec.call(null,b),cljs.core.truth_(c)?cljs.spec.alpha.with_gen.call(null,a,c):a;"undefined"===typeof cljs.spec.alpha.t_cljs$spec$alpha17107&&
(cljs.spec.alpha.t_cljs$spec$alpha17107=function(a,b,c,d,e,m){this.form=a;this.pred=b;this.gfn=c;this.cpred_QMARK_=d;this.unc=e;this.meta17108=m;this.cljs$lang$protocol_mask$partition0$=393216;this.cljs$lang$protocol_mask$partition1$=0},cljs.spec.alpha.t_cljs$spec$alpha17107.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.spec.alpha.t_cljs$spec$alpha17107(this.form,this.pred,this.gfn,this.cpred_QMARK_,this.unc,b)},cljs.spec.alpha.t_cljs$spec$alpha17107.prototype.cljs$core$IMeta$_meta$arity$1=
function(a){return this.meta17108},cljs.spec.alpha.t_cljs$spec$alpha17107.prototype.cljs$spec$alpha$Specize$=cljs.core.PROTOCOL_SENTINEL,cljs.spec.alpha.t_cljs$spec$alpha17107.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1=function(a){return this},cljs.spec.alpha.t_cljs$spec$alpha17107.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2=function(a,b){return this},cljs.spec.alpha.t_cljs$spec$alpha17107.prototype.cljs$spec$alpha$Spec$=cljs.core.PROTOCOL_SENTINEL,cljs.spec.alpha.t_cljs$spec$alpha17107.prototype.cljs$spec$alpha$Spec$conform_STAR_$arity$2=
function(a,b){a=this.pred.call(null,b);return cljs.core.truth_(this.cpred_QMARK_)?a:cljs.core.truth_(a)?b:new cljs.core.Keyword("cljs.spec.alpha","invalid","cljs.spec.alpha/invalid",-1220295119)},cljs.spec.alpha.t_cljs$spec$alpha17107.prototype.cljs$spec$alpha$Spec$unform_STAR_$arity$2=function(a,b){if(cljs.core.truth_(this.cpred_QMARK_)){if(cljs.core.truth_(this.unc))return this.unc.call(null,b);throw Error("no unform fn for conformer");}return b},cljs.spec.alpha.t_cljs$spec$alpha17107.prototype.cljs$spec$alpha$Spec$explain_STAR_$arity$5=
function(a,b,c,d,e){return cljs.core.truth_(cljs.spec.alpha.invalid_QMARK_.call(null,cljs.spec.alpha.dt.call(null,this.pred,e,this.form,this.cpred_QMARK_)))?new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentArrayMap(null,5,[new cljs.core.Keyword(null,"path","path",-188191168),b,new cljs.core.Keyword(null,"pred","pred",1927423397),this.form,new cljs.core.Keyword(null,"val","val",128701612),e,new cljs.core.Keyword(null,"via","via",-1904457336),c,
new cljs.core.Keyword(null,"in","in",-1531184865),d],null)],null):null},cljs.spec.alpha.t_cljs$spec$alpha17107.prototype.cljs$spec$alpha$Spec$gen_STAR_$arity$4=function(a,b,c,d){return cljs.core.truth_(this.gfn)?this.gfn.call(null):cljs.spec.gen.alpha.gen_for_pred.call(null,this.pred)},cljs.spec.alpha.t_cljs$spec$alpha17107.prototype.cljs$spec$alpha$Spec$with_gen_STAR_$arity$2=function(a,b){return cljs.spec.alpha.spec_impl.call(null,this.form,this.pred,b,this.cpred_QMARK_,this.unc)},cljs.spec.alpha.t_cljs$spec$alpha17107.prototype.cljs$spec$alpha$Spec$describe_STAR_$arity$1=
function(a){return this.form},cljs.spec.alpha.t_cljs$spec$alpha17107.getBasis=function(){return new cljs.core.PersistentVector(null,6,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Symbol(null,"form","form",16469056,null),new cljs.core.Symbol(null,"pred","pred",-727012372,null),new cljs.core.Symbol(null,"gfn","gfn",-1862918295,null),new cljs.core.Symbol(null,"cpred?","cpred?",35589515,null),new cljs.core.Symbol(null,"unc","unc",-465250751,null),new cljs.core.Symbol(null,"meta17108","meta17108",
1791800355,null)],null)},cljs.spec.alpha.t_cljs$spec$alpha17107.cljs$lang$type=!0,cljs.spec.alpha.t_cljs$spec$alpha17107.cljs$lang$ctorStr="cljs.spec.alpha/t_cljs$spec$alpha17107",cljs.spec.alpha.t_cljs$spec$alpha17107.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write.call(null,b,"cljs.spec.alpha/t_cljs$spec$alpha17107")},cljs.spec.alpha.__GT_t_cljs$spec$alpha17107=function(a,b,c,d,e,m){return new cljs.spec.alpha.t_cljs$spec$alpha17107(a,b,c,d,e,m)});return new cljs.spec.alpha.t_cljs$spec$alpha17107(a,
b,c,d,e,cljs.core.PersistentArrayMap.EMPTY)};cljs.spec.alpha.spec_impl.cljs$lang$maxFixedArity=5;
cljs.spec.alpha.multi_spec_impl=function(a){switch(arguments.length){case 3:return cljs.spec.alpha.multi_spec_impl.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);case 4:return cljs.spec.alpha.multi_spec_impl.cljs$core$IFn$_invoke$arity$4(arguments[0],arguments[1],arguments[2],arguments[3]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.spec.alpha.multi_spec_impl.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return cljs.spec.alpha.multi_spec_impl.call(null,a,b,c,null)};
cljs.spec.alpha.multi_spec_impl.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){var e=cljs.core.random_uuid.call(null),f=function(a){return function(a){var c=cljs.core.deref.call(null,b),d=cljs.core._get_method.call(null,c,cljs.core._dispatch_fn.call(null,c).call(null,a));return cljs.core.truth_(d)?c.call(null,a):d}}(e),g=function(a,c){return function(a){return cljs.core._dispatch_fn.call(null,cljs.core.deref.call(null,b)).call(null,a)}}(e,f),h=c instanceof cljs.core.Keyword?function(a,b,d){return function(a,
b){return cljs.core.assoc.call(null,a,c,b)}}(e,f,g):c;"undefined"===typeof cljs.spec.alpha.t_cljs$spec$alpha17118&&(cljs.spec.alpha.t_cljs$spec$alpha17118=function(a,b,c,d,e,f,g,h,u){this.form=a;this.mmvar=b;this.retag=c;this.gfn=d;this.id=e;this.predx=f;this.dval=g;this.tag=h;this.meta17119=u;this.cljs$lang$protocol_mask$partition0$=393216;this.cljs$lang$protocol_mask$partition1$=0},cljs.spec.alpha.t_cljs$spec$alpha17118.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b,c,d){return function(a,
b){return new cljs.spec.alpha.t_cljs$spec$alpha17118(this.form,this.mmvar,this.retag,this.gfn,this.id,this.predx,this.dval,this.tag,b)}}(e,f,g,h),cljs.spec.alpha.t_cljs$spec$alpha17118.prototype.cljs$core$IMeta$_meta$arity$1=function(a,b,c,d){return function(a){return this.meta17119}}(e,f,g,h),cljs.spec.alpha.t_cljs$spec$alpha17118.prototype.cljs$spec$alpha$Specize$=cljs.core.PROTOCOL_SENTINEL,cljs.spec.alpha.t_cljs$spec$alpha17118.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1=function(a,
b,c,d){return function(a){return this}}(e,f,g,h),cljs.spec.alpha.t_cljs$spec$alpha17118.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2=function(a,b,c,d){return function(a,b){return this}}(e,f,g,h),cljs.spec.alpha.t_cljs$spec$alpha17118.prototype.cljs$spec$alpha$Spec$=cljs.core.PROTOCOL_SENTINEL,cljs.spec.alpha.t_cljs$spec$alpha17118.prototype.cljs$spec$alpha$Spec$conform_STAR_$arity$2=function(a,b,c,d){return function(a,b){a=this.predx.call(null,b);return cljs.core.truth_(a)?cljs.spec.alpha.dt.call(null,
a,b,this.form):new cljs.core.Keyword("cljs.spec.alpha","invalid","cljs.spec.alpha/invalid",-1220295119)}}(e,f,g,h),cljs.spec.alpha.t_cljs$spec$alpha17118.prototype.cljs$spec$alpha$Spec$unform_STAR_$arity$2=function(a,b,c,d){return function(a,b){a=this.predx.call(null,b);if(cljs.core.truth_(a))return cljs.spec.alpha.unform.call(null,a,b);throw Error(["No method of: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(this.form)," for dispatch value: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(this.dval.call(null,
b))].join(""));}}(e,f,g,h),cljs.spec.alpha.t_cljs$spec$alpha17118.prototype.cljs$spec$alpha$Spec$explain_STAR_$arity$5=function(a,b,c,d){return function(a,b,c,d,e){a=this.dval.call(null,e);b=cljs.core.conj.call(null,b,a);a=this.predx.call(null,e);return cljs.core.truth_(a)?cljs.spec.alpha.explain_1.call(null,this.form,a,b,c,d,e):new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentArrayMap(null,6,[new cljs.core.Keyword(null,"path","path",-188191168),
b,new cljs.core.Keyword(null,"pred","pred",1927423397),this.form,new cljs.core.Keyword(null,"val","val",128701612),e,new cljs.core.Keyword(null,"reason","reason",-2070751759),"no method",new cljs.core.Keyword(null,"via","via",-1904457336),c,new cljs.core.Keyword(null,"in","in",-1531184865),d],null)],null)}}(e,f,g,h),cljs.spec.alpha.t_cljs$spec$alpha17118.prototype.cljs$spec$alpha$Spec$gen_STAR_$arity$4=function(a,b,c,d){return function(e,f,g,h){var k=this;if(cljs.core.truth_(k.gfn))return k.gfn.call(null);
e=function(a,b,c,d,e){return function(l){var m=cljs.core.nth.call(null,l,0,null),n=cljs.core.nth.call(null,l,1,null),p=n.call(null,null),q=cljs.spec.alpha.inck.call(null,h,k.id);return cljs.core.truth_(cljs.spec.alpha.recur_limit_QMARK_.call(null,q,k.id,g,m))?null:cljs.spec.gen.alpha.delay_impl.call(null,new cljs.core.Delay(function(a,b,c,d,e,h,l,m,n,p){return function(){return cljs.spec.gen.alpha.fmap.call(null,function(a,b,c,d,e,f,g,h,l,m){return function(a){return k.tag.call(null,a,d)}}(a,b,c,
d,e,h,l,m,n,p),cljs.spec.alpha.gensub.call(null,b,f,cljs.core.conj.call(null,g,d),a,new cljs.core.List(null,new cljs.core.Symbol(null,"method","method",1696235119,null),new cljs.core.List(null,k.form,new cljs.core.List(null,d,null,1,null),2,null),3,null)))}}(q,p,l,m,n,a,b,c,d,e),null))}}(this,a,b,c,d);e=cljs.core.remove.call(null,cljs.core.nil_QMARK_,cljs.core.map.call(null,e,cljs.core.remove.call(null,function(a,b,c,d,e,f){return function(a){a=cljs.core.nth.call(null,a,0,null);return cljs.spec.alpha.invalid_QMARK_.call(null,
a)}}(e,this,a,b,c,d),cljs.core.methods$.call(null,cljs.core.deref.call(null,k.mmvar)))));return cljs.core.every_QMARK_.call(null,cljs.core.identity,e)?cljs.spec.gen.alpha.one_of.call(null,e):null}}(e,f,g,h),cljs.spec.alpha.t_cljs$spec$alpha17118.prototype.cljs$spec$alpha$Spec$with_gen_STAR_$arity$2=function(a,b,c,d){return function(a,b){return cljs.spec.alpha.multi_spec_impl.call(null,this.form,this.mmvar,this.retag,b)}}(e,f,g,h),cljs.spec.alpha.t_cljs$spec$alpha17118.prototype.cljs$spec$alpha$Spec$describe_STAR_$arity$1=
function(a,b,c,d){return function(a){return cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,new cljs.core.Symbol("cljs.spec.alpha","multi-spec","cljs.spec.alpha/multi-spec",175821274,null),null,1,null),new cljs.core.List(null,this.form,null,1,null),new cljs.core.List(null,this.retag,null,1,null))))}}(e,f,g,h),cljs.spec.alpha.t_cljs$spec$alpha17118.getBasis=function(a,b,c,d){return function(){return new cljs.core.PersistentVector(null,9,5,cljs.core.PersistentVector.EMPTY_NODE,
[new cljs.core.Symbol(null,"form","form",16469056,null),new cljs.core.Symbol(null,"mmvar","mmvar",-1714325675,null),new cljs.core.Symbol(null,"retag","retag",528972725,null),new cljs.core.Symbol(null,"gfn","gfn",-1862918295,null),new cljs.core.Symbol(null,"id","id",252129435,null),new cljs.core.Symbol(null,"predx","predx",2063470948,null),new cljs.core.Symbol(null,"dval","dval",835211877,null),new cljs.core.Symbol(null,"tag","tag",350170304,null),new cljs.core.Symbol(null,"meta17119","meta17119",
-954644996,null)],null)}}(e,f,g,h),cljs.spec.alpha.t_cljs$spec$alpha17118.cljs$lang$type=!0,cljs.spec.alpha.t_cljs$spec$alpha17118.cljs$lang$ctorStr="cljs.spec.alpha/t_cljs$spec$alpha17118",cljs.spec.alpha.t_cljs$spec$alpha17118.cljs$lang$ctorPrWriter=function(a,b,c,d){return function(a,b,c){return cljs.core._write.call(null,b,"cljs.spec.alpha/t_cljs$spec$alpha17118")}}(e,f,g,h),cljs.spec.alpha.__GT_t_cljs$spec$alpha17118=function(a,b,c,d){return function(a,b,c,d,e,f,g,h,k){return new cljs.spec.alpha.t_cljs$spec$alpha17118(a,
b,c,d,e,f,g,h,k)}}(e,f,g,h));return new cljs.spec.alpha.t_cljs$spec$alpha17118(a,b,c,d,e,f,g,h,cljs.core.PersistentArrayMap.EMPTY)};cljs.spec.alpha.multi_spec_impl.cljs$lang$maxFixedArity=4;
cljs.spec.alpha.tuple_impl=function(a){switch(arguments.length){case 2:return cljs.spec.alpha.tuple_impl.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.spec.alpha.tuple_impl.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.spec.alpha.tuple_impl.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.spec.alpha.tuple_impl.call(null,a,b,null)};
cljs.spec.alpha.tuple_impl.cljs$core$IFn$_invoke$arity$3=function(a,b,c){var d=new cljs.core.Delay(function(){return cljs.core.mapv.call(null,cljs.spec.alpha.specize,b,a)},null),e=cljs.core.count.call(null,b);"undefined"===typeof cljs.spec.alpha.t_cljs$spec$alpha17132&&(cljs.spec.alpha.t_cljs$spec$alpha17132=function(a,b,c,d,e,m){this.forms=a;this.preds=b;this.gfn=c;this.specs=d;this.cnt=e;this.meta17133=m;this.cljs$lang$protocol_mask$partition0$=393216;this.cljs$lang$protocol_mask$partition1$=0},
cljs.spec.alpha.t_cljs$spec$alpha17132.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return function(a,b){return new cljs.spec.alpha.t_cljs$spec$alpha17132(this.forms,this.preds,this.gfn,this.specs,this.cnt,b)}}(d,e),cljs.spec.alpha.t_cljs$spec$alpha17132.prototype.cljs$core$IMeta$_meta$arity$1=function(a,b){return function(a){return this.meta17133}}(d,e),cljs.spec.alpha.t_cljs$spec$alpha17132.prototype.cljs$spec$alpha$Specize$=cljs.core.PROTOCOL_SENTINEL,cljs.spec.alpha.t_cljs$spec$alpha17132.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1=
function(a,b){return function(a){return this}}(d,e),cljs.spec.alpha.t_cljs$spec$alpha17132.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2=function(a,b){return function(a,b){return this}}(d,e),cljs.spec.alpha.t_cljs$spec$alpha17132.prototype.cljs$spec$alpha$Spec$=cljs.core.PROTOCOL_SENTINEL,cljs.spec.alpha.t_cljs$spec$alpha17132.prototype.cljs$spec$alpha$Spec$conform_STAR_$arity$2=function(a,b){return function(a,b){a=cljs.core.deref.call(null,this.specs);if(cljs.core.vector_QMARK_.call(null,
b)&&cljs.core._EQ_.call(null,cljs.core.count.call(null,b),this.cnt))for(var c=b,d=0;;){if(cljs.core._EQ_.call(null,d,this.cnt))return c;var e=b.call(null,d),f=cljs.spec.alpha.conform_STAR_.call(null,a.call(null,d),e);if(cljs.core.truth_(cljs.spec.alpha.invalid_QMARK_.call(null,f)))return new cljs.core.Keyword("cljs.spec.alpha","invalid","cljs.spec.alpha/invalid",-1220295119);c=f===e?c:cljs.core.assoc.call(null,c,d,f);d+=1}else return new cljs.core.Keyword("cljs.spec.alpha","invalid","cljs.spec.alpha/invalid",
-1220295119)}}(d,e),cljs.spec.alpha.t_cljs$spec$alpha17132.prototype.cljs$spec$alpha$Spec$unform_STAR_$arity$2=function(a,b){return function(a,b){if(!cljs.core.vector_QMARK_.call(null,b)||!cljs.core._EQ_.call(null,cljs.core.count.call(null,b),cljs.core.count.call(null,this.preds)))throw Error("Assert failed: (c/and (vector? x) (\x3d (count x) (count preds)))");a=b;for(var c=0;;){if(cljs.core._EQ_.call(null,c,cljs.core.count.call(null,b)))return a;var d=b.call(null,c),e=cljs.spec.alpha.unform.call(null,
this.preds.call(null,c),d);a=d===e?a:cljs.core.assoc.call(null,a,c,e);c+=1}}}(d,e),cljs.spec.alpha.t_cljs$spec$alpha17132.prototype.cljs$spec$alpha$Spec$explain_STAR_$arity$5=function(a,b){return function(c,d,e,f,g){return cljs.core.vector_QMARK_.call(null,g)?cljs.core.not_EQ_.call(null,cljs.core.count.call(null,g),cljs.core.count.call(null,this.preds))?new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentArrayMap(null,5,[new cljs.core.Keyword(null,
"path","path",-188191168),d,new cljs.core.Keyword(null,"pred","pred",1927423397),cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,new cljs.core.Symbol("cljs.core","\x3d","cljs.core/\x3d",-1891498332,null),null,1,null),new cljs.core.List(null,cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,new cljs.core.Symbol("cljs.core","count","cljs.core/count",-921270233,null),null,1,null),new cljs.core.List(null,
new cljs.core.Symbol(null,"%","%",-950237169,null),null,1,null)))),null,1,null),new cljs.core.List(null,cljs.core.count.call(null,this.preds),null,1,null)))),new cljs.core.Keyword(null,"val","val",128701612),g,new cljs.core.Keyword(null,"via","via",-1904457336),e,new cljs.core.Keyword(null,"in","in",-1531184865),f],null)],null):cljs.core.apply.call(null,cljs.core.concat,cljs.core.map.call(null,function(a,b,c){return function(a,b,c){var h=g.call(null,a);return cljs.core.truth_(cljs.spec.alpha.pvalid_QMARK_.call(null,
c,h))?null:cljs.spec.alpha.explain_1.call(null,b,c,cljs.core.conj.call(null,d,a),e,cljs.core.conj.call(null,f,a),h)}}(this,a,b),cljs.core.range.call(null,cljs.core.count.call(null,this.preds)),this.forms,this.preds)):new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentArrayMap(null,5,[new cljs.core.Keyword(null,"path","path",-188191168),d,new cljs.core.Keyword(null,"pred","pred",1927423397),new cljs.core.Symbol(null,"vector?","vector?",-61367869,
null),new cljs.core.Keyword(null,"val","val",128701612),g,new cljs.core.Keyword(null,"via","via",-1904457336),e,new cljs.core.Keyword(null,"in","in",-1531184865),f],null)],null)}}(d,e),cljs.spec.alpha.t_cljs$spec$alpha17132.prototype.cljs$spec$alpha$Spec$gen_STAR_$arity$4=function(a,b){return function(c,d,e,f){if(cljs.core.truth_(this.gfn))return this.gfn.call(null);c=function(a,b,c){return function(a,b,c){return cljs.spec.alpha.gensub.call(null,b,d,cljs.core.conj.call(null,e,a),f,c)}}(this,a,b);
c=cljs.core.map.call(null,c,cljs.core.range.call(null,cljs.core.count.call(null,this.preds)),this.preds,this.forms);return cljs.core.every_QMARK_.call(null,cljs.core.identity,c)?cljs.core.apply.call(null,cljs.spec.gen.alpha.tuple,c):null}}(d,e),cljs.spec.alpha.t_cljs$spec$alpha17132.prototype.cljs$spec$alpha$Spec$with_gen_STAR_$arity$2=function(a,b){return function(a,b){return cljs.spec.alpha.tuple_impl.call(null,this.forms,this.preds,b)}}(d,e),cljs.spec.alpha.t_cljs$spec$alpha17132.prototype.cljs$spec$alpha$Spec$describe_STAR_$arity$1=
function(a,b){return function(a){return cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,new cljs.core.Symbol("cljs.spec.alpha","tuple","cljs.spec.alpha/tuple",-415901908,null),null,1,null),this.forms)))}}(d,e),cljs.spec.alpha.t_cljs$spec$alpha17132.getBasis=function(a,b){return function(){return new cljs.core.PersistentVector(null,6,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Symbol(null,"forms","forms",-608443419,null),new cljs.core.Symbol(null,
"preds","preds",150921777,null),new cljs.core.Symbol(null,"gfn","gfn",-1862918295,null),new cljs.core.Symbol(null,"specs","specs",-1227865028,null),new cljs.core.Symbol(null,"cnt","cnt",1924510325,null),new cljs.core.Symbol(null,"meta17133","meta17133",1775067839,null)],null)}}(d,e),cljs.spec.alpha.t_cljs$spec$alpha17132.cljs$lang$type=!0,cljs.spec.alpha.t_cljs$spec$alpha17132.cljs$lang$ctorStr="cljs.spec.alpha/t_cljs$spec$alpha17132",cljs.spec.alpha.t_cljs$spec$alpha17132.cljs$lang$ctorPrWriter=
function(a,b){return function(a,b,c){return cljs.core._write.call(null,b,"cljs.spec.alpha/t_cljs$spec$alpha17132")}}(d,e),cljs.spec.alpha.__GT_t_cljs$spec$alpha17132=function(a,b){return function(a,b,c,d,e,f){return new cljs.spec.alpha.t_cljs$spec$alpha17132(a,b,c,d,e,f)}}(d,e));return new cljs.spec.alpha.t_cljs$spec$alpha17132(a,b,c,d,e,cljs.core.PersistentArrayMap.EMPTY)};cljs.spec.alpha.tuple_impl.cljs$lang$maxFixedArity=3;
cljs.spec.alpha.tagged_ret=function(a,b){return new cljs.core.MapEntry(a,b,null)};
cljs.spec.alpha.or_spec_impl=function(a,b,c,d){var e=cljs.core.random_uuid.call(null),f=cljs.core.zipmap.call(null,a,c),g=new cljs.core.Delay(function(a,d){return function(){return cljs.core.mapv.call(null,cljs.spec.alpha.specize,c,b)}}(e,f),null),h=function(){var b=cljs.core.count.call(null,c);switch(b){case 2:return function(b,c,d,e){return function(b){var c=cljs.core.deref.call(null,e),d=cljs.spec.alpha.conform_STAR_.call(null,c.call(null,0),b);return cljs.core.truth_(cljs.spec.alpha.invalid_QMARK_.call(null,
d))?(b=cljs.spec.alpha.conform_STAR_.call(null,c.call(null,1),b),cljs.core.truth_(cljs.spec.alpha.invalid_QMARK_.call(null,b))?new cljs.core.Keyword("cljs.spec.alpha","invalid","cljs.spec.alpha/invalid",-1220295119):cljs.spec.alpha.tagged_ret.call(null,a.call(null,1),b)):cljs.spec.alpha.tagged_ret.call(null,a.call(null,0),d)}}(b,e,f,g);case 3:return function(b,c,d,e){return function(b){var c=cljs.core.deref.call(null,e),d=cljs.spec.alpha.conform_STAR_.call(null,c.call(null,0),b);return cljs.core.truth_(cljs.spec.alpha.invalid_QMARK_.call(null,
d))?(d=cljs.spec.alpha.conform_STAR_.call(null,c.call(null,1),b),cljs.core.truth_(cljs.spec.alpha.invalid_QMARK_.call(null,d))?(b=cljs.spec.alpha.conform_STAR_.call(null,c.call(null,2),b),cljs.core.truth_(cljs.spec.alpha.invalid_QMARK_.call(null,b))?new cljs.core.Keyword("cljs.spec.alpha","invalid","cljs.spec.alpha/invalid",-1220295119):cljs.spec.alpha.tagged_ret.call(null,a.call(null,2),b)):cljs.spec.alpha.tagged_ret.call(null,a.call(null,1),d)):cljs.spec.alpha.tagged_ret.call(null,a.call(null,0),
d)}}(b,e,f,g);default:return function(b,c,d,e){return function(b){for(var c=cljs.core.deref.call(null,e),d=0;;)if(de?1:e,d=0;;){if(d>=cljs.core.count.call(null,b))return b;if(cljs.core.truth_(cljs.spec.alpha.valid_QMARK_.call(null,a,cljs.core.nth.call(null,b,d))))d+=e;else return new cljs.core.Keyword("cljs.spec.alpha","invalid","cljs.spec.alpha/invalid",-1220295119)}else for(e=cljs.spec.alpha._STAR_coll_check_limit_STAR_,d=0,c=cljs.core.seq.call(null,b),g=cljs.core.seq.call(null,c),cljs.core.first.call(null,g),cljs.core.next.call(null,
g);;){f=cljs.core.seq.call(null,c);g=cljs.core.first.call(null,f);f=cljs.core.next.call(null,f);h=c;if(null==h||cljs.core._EQ_.call(null,d,e))return b;if(cljs.core.truth_(cljs.spec.alpha.valid_QMARK_.call(null,a,g)))c=f,d+=1;else return new cljs.core.Keyword("cljs.spec.alpha","invalid","cljs.spec.alpha/invalid",-1220295119)}}}(q,w,x,y,C,L,c,e,e,f,g,h,k,l,m,n,p,q,r,t,u,v),cljs.spec.alpha.t_cljs$spec$alpha17225.prototype.cljs$spec$alpha$Spec$unform_STAR_$arity$2=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,
r,t,u,v,w,x,y,C){return function(a,b){if(cljs.core.truth_(this.conform_all)){a=cljs.core.deref.call(null,this.spec);var c=this.cfns.call(null,b),d=cljs.core.nth.call(null,c,0,null),e=cljs.core.nth.call(null,c,1,null);c=cljs.core.nth.call(null,c,2,null);d=d.call(null,b);var f=cljs.core.seq.call(null,b),g=cljs.core.seq.call(null,f);cljs.core.first.call(null,g);cljs.core.next.call(null,g);for(g=0;;){var h=cljs.core.seq.call(null,f);f=cljs.core.first.call(null,h);h=cljs.core.next.call(null,h);var k=f;
f=h;if(g>=cljs.core.count.call(null,b))return c.call(null,d);d=e.call(null,d,g,k,cljs.spec.alpha.unform_STAR_.call(null,a,k));g+=1}}else return b}}(q,w,x,y,C,L,c,e,e,f,g,h,k,l,m,n,p,q,r,t,u,v),cljs.spec.alpha.t_cljs$spec$alpha17225.prototype.cljs$spec$alpha$Spec$explain_STAR_$arity$5=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,y,C){return function(z,A,D,E,F){var B=this;z=cljs.spec.alpha.coll_prob.call(null,F,B.kind,B.kind_form,B.distinct,B.count,B.min_count,B.max_count,A,D,E);return cljs.core.truth_(z)?
z:cljs.core.apply.call(null,cljs.core.concat,(cljs.core.truth_(B.conform_all)?cljs.core.identity:cljs.core.partial.call(null,cljs.core.take,cljs.spec.alpha._STAR_coll_error_limit_STAR_)).call(null,cljs.core.keep.call(null,cljs.core.identity,cljs.core.map.call(null,function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,y,z,C,F){return function(a,b){a=B.kfn.call(null,a,b);return cljs.core.truth_(B.check_QMARK_.call(null,b))?null:cljs.spec.alpha.explain_1.call(null,B.form,B.pred,A,D,cljs.core.conj.call(null,
E,a),b)}}(z,this,a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,y,C),cljs.core.range.call(null),F))))}}(q,w,x,y,C,L,c,e,e,f,g,h,k,l,m,n,p,q,r,t,u,v),cljs.spec.alpha.t_cljs$spec$alpha17225.prototype.cljs$spec$alpha$Spec$gen_STAR_$arity$4=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,y,C){return function(z,A,D,E){var B=this;if(cljs.core.truth_(B.gfn))return B.gfn.call(null);z=cljs.spec.alpha.gensub.call(null,B.pred,A,D,E,B.form);return cljs.spec.gen.alpha.bind.call(null,cljs.core.truth_(B.gen_into)?cljs.spec.gen.alpha.return$.call(null,
cljs.core.empty.call(null,B.gen_into)):cljs.core.truth_(B.kind)?cljs.spec.gen.alpha.fmap.call(null,function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,y,z,A,B){return function(a){return cljs.core.empty_QMARK_.call(null,a)?a:cljs.core.empty.call(null,a)}}(z,this,a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,y,C),cljs.spec.alpha.gensub.call(null,B.kind,A,D,E,B.form)):cljs.spec.gen.alpha.return$.call(null,cljs.core.PersistentVector.EMPTY),function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,y,z,A,C){return function(D){return cljs.spec.gen.alpha.fmap.call(null,
function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,y,z,A,B){return function(a){return cljs.core.vector_QMARK_.call(null,D)?a:cljs.core.into.call(null,D,a)}}(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,y,z,A,C),cljs.core.truth_(B.distinct)?cljs.core.truth_(B.count)?cljs.spec.gen.alpha.vector_distinct.call(null,a,new cljs.core.PersistentArrayMap(null,2,[new cljs.core.Keyword(null,"num-elements","num-elements",1960422107),B.count,new cljs.core.Keyword(null,"max-tries","max-tries",-1824441792),100],null)):
cljs.spec.gen.alpha.vector_distinct.call(null,a,new cljs.core.PersistentArrayMap(null,3,[new cljs.core.Keyword(null,"min-elements","min-elements",949370780),function(){var a=B.min_count;return cljs.core.truth_(a)?a:0}(),new cljs.core.Keyword(null,"max-elements","max-elements",433034073),function(){var a=B.max_count;if(cljs.core.truth_(a))return a;a=B.gen_max;var b=B.min_count;b=cljs.core.truth_(b)?b:0;b*=2;return a>b?a:b}(),new cljs.core.Keyword(null,"max-tries","max-tries",-1824441792),100],null)):
cljs.core.truth_(B.count)?cljs.spec.gen.alpha.vector.call(null,a,B.count):cljs.core.truth_(function(){var a=B.min_count;return cljs.core.truth_(a)?a:B.max_count}())?cljs.spec.gen.alpha.vector.call(null,a,function(){var a=B.min_count;return cljs.core.truth_(a)?a:0}(),function(){var a=B.max_count;if(cljs.core.truth_(a))return a;a=B.gen_max;var b=B.min_count;b=cljs.core.truth_(b)?b:0;b*=2;return a>b?a:b}()):cljs.spec.gen.alpha.vector.call(null,a,0,B.gen_max))}}(z,this,a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,
u,v,w,x,y,C))}}(q,w,x,y,C,L,c,e,e,f,g,h,k,l,m,n,p,q,r,t,u,v),cljs.spec.alpha.t_cljs$spec$alpha17225.prototype.cljs$spec$alpha$Spec$with_gen_STAR_$arity$2=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,y,C){return function(a,b){return cljs.spec.alpha.every_impl.call(null,this.form,this.pred,this.opts,b)}}(q,w,x,y,C,L,c,e,e,f,g,h,k,l,m,n,p,q,r,t,u,v),cljs.spec.alpha.t_cljs$spec$alpha17225.prototype.cljs$spec$alpha$Spec$describe_STAR_$arity$1=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,y,C){return function(a){a=
this.describe_form;return cljs.core.truth_(a)?a:cljs.core.sequence.call(null,cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.List(null,new cljs.core.Symbol("cljs.spec.alpha","every","cljs.spec.alpha/every",123912744,null),null,1,null),new cljs.core.List(null,this.form,null,1,null),cljs.core.mapcat.call(null,cljs.core.identity,this.opts))))}}(q,w,x,y,C,L,c,e,e,f,g,h,k,l,m,n,p,q,r,t,u,v),cljs.spec.alpha.t_cljs$spec$alpha17225.getBasis=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,
x,y,C){return function(){return new cljs.core.PersistentVector(null,25,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Symbol(null,"form","form",16469056,null),new cljs.core.Symbol(null,"max-count","max-count",-1115250464,null),new cljs.core.Symbol(null,"check?","check?",409539557,null),new cljs.core.Symbol(null,"map__17223","map__17223",1607152550,null),new cljs.core.Symbol(null,"gfn","gfn",-1862918295,null),new cljs.core.Symbol(null,"gen-max","gen-max",846851082,null),new cljs.core.Symbol(null,
"p__17222","p__17222",-1543695541,null),new cljs.core.Symbol(null,"pred","pred",-727012372,null),new cljs.core.Symbol(null,"cpred","cpred",-540353554,null),new cljs.core.Symbol(null,"conform-keys","conform-keys",-159510287,null),new cljs.core.Symbol(null,"kind-form","kind-form",1155997457,null),new cljs.core.Symbol(null,"addcv","addcv",-1552991247,null),new cljs.core.Symbol(null,"cfns","cfns",1335482066,null),new cljs.core.Symbol(null,"describe-form","describe-form",-1410156588,null),new cljs.core.Symbol(null,
"distinct","distinct",-148347594,null),new cljs.core.Symbol(null,"spec","spec",1988051928,null),new cljs.core.Symbol(null,"kfn","kfn",729311001,null),new cljs.core.Symbol(null,"gen-into","gen-into",592640985,null),new cljs.core.Symbol(null,"count","count",-514511684,null),new cljs.core.Symbol(null,"min-count","min-count",-1059726756,null),new cljs.core.Symbol(null,"opts","opts",1795607228,null),new cljs.core.Symbol(null,"kind","kind",923265724,null),new cljs.core.Symbol(null,"conform-all","conform-all",
-980179459,null),new cljs.core.Symbol(null,"conform-into","conform-into",-1039113729,null),new cljs.core.Symbol(null,"meta17226","meta17226",396000346,null)],null)}}(q,w,x,y,C,L,c,e,e,f,g,h,k,l,m,n,p,q,r,t,u,v),cljs.spec.alpha.t_cljs$spec$alpha17225.cljs$lang$type=!0,cljs.spec.alpha.t_cljs$spec$alpha17225.cljs$lang$ctorStr="cljs.spec.alpha/t_cljs$spec$alpha17225",cljs.spec.alpha.t_cljs$spec$alpha17225.cljs$lang$ctorPrWriter=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,y,C){return function(a,b,
c){return cljs.core._write.call(null,b,"cljs.spec.alpha/t_cljs$spec$alpha17225")}}(q,w,x,y,C,L,c,e,e,f,g,h,k,l,m,n,p,q,r,t,u,v),cljs.spec.alpha.__GT_t_cljs$spec$alpha17225=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,y,C){return function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,y,z,A,B,C){return new cljs.spec.alpha.t_cljs$spec$alpha17225(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,y,z,A,B,C)}}(q,w,x,y,C,L,c,e,e,f,g,h,k,l,m,n,p,q,r,t,u,v));return new cljs.spec.alpha.t_cljs$spec$alpha17225(a,f,x,e,d,
h,c,b,k,l,g,C,L,m,n,w,y,q,r,t,e,u,v,q,cljs.core.PersistentArrayMap.EMPTY)};cljs.spec.alpha.every_impl.cljs$lang$maxFixedArity=4;cljs.spec.alpha.accept=function(a){return new cljs.core.PersistentArrayMap(null,2,[new cljs.core.Keyword("cljs.spec.alpha","op","cljs.spec.alpha/op",-1269055252),new cljs.core.Keyword("cljs.spec.alpha","accept","cljs.spec.alpha/accept",370988198),new cljs.core.Keyword(null,"ret","ret",-468222814),a],null)};
cljs.spec.alpha.accept_QMARK_=function(a){a=null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core.apply.call(null,cljs.core.hash_map,a):a;a=cljs.core.get.call(null,a,new cljs.core.Keyword("cljs.spec.alpha","op","cljs.spec.alpha/op",-1269055252));return cljs.core._EQ_.call(null,new cljs.core.Keyword("cljs.spec.alpha","accept","cljs.spec.alpha/accept",370988198),a)};
cljs.spec.alpha.pcat_STAR_=function(a){var b=null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core.apply.call(null,cljs.core.hash_map,a):a,c=cljs.core.get.call(null,b,new cljs.core.Keyword(null,"ps","ps",292358046));a=cljs.core.seq.call(null,c);var d=cljs.core.first.call(null,a);a=cljs.core.next.call(null,a);var e=cljs.core.get.call(null,b,new cljs.core.Keyword(null,"ks","ks",1900203942)),f=cljs.core.seq.call(null,e),g=cljs.core.first.call(null,
f);f=cljs.core.next.call(null,f);var h=cljs.core.get.call(null,b,new cljs.core.Keyword(null,"forms","forms",2045992350)),k=cljs.core.seq.call(null,h);cljs.core.first.call(null,k);k=cljs.core.next.call(null,k);var l=cljs.core.get.call(null,b,new cljs.core.Keyword(null,"ret","ret",-468222814));b=cljs.core.get.call(null,b,new cljs.core.Keyword(null,"rep+","rep+",-281382396));return cljs.core.every_QMARK_.call(null,cljs.core.identity,c)?cljs.core.truth_(cljs.spec.alpha.accept_QMARK_.call(null,d))?(c=
(new cljs.core.Keyword(null,"ret","ret",-468222814)).cljs$core$IFn$_invoke$arity$1(d),c=cljs.core.conj.call(null,l,cljs.core.truth_(e)?cljs.core.PersistentArrayMap.createAsIfByAssoc([g,c]):c),a?cljs.spec.alpha.pcat_STAR_.call(null,new cljs.core.PersistentArrayMap(null,4,[new cljs.core.Keyword(null,"ps","ps",292358046),a,new cljs.core.Keyword(null,"ks","ks",1900203942),f,new cljs.core.Keyword(null,"forms","forms",2045992350),k,new cljs.core.Keyword(null,"ret","ret",-468222814),c],null)):cljs.spec.alpha.accept.call(null,
c)):new cljs.core.PersistentArrayMap(null,6,[new cljs.core.Keyword("cljs.spec.alpha","op","cljs.spec.alpha/op",-1269055252),new cljs.core.Keyword("cljs.spec.alpha","pcat","cljs.spec.alpha/pcat",26406623),new cljs.core.Keyword(null,"ps","ps",292358046),c,new cljs.core.Keyword(null,"ret","ret",-468222814),l,new cljs.core.Keyword(null,"ks","ks",1900203942),e,new cljs.core.Keyword(null,"forms","forms",2045992350),h,new cljs.core.Keyword(null,"rep+","rep+",-281382396),b],null):null};
cljs.spec.alpha.pcat=function(a){for(var b=[],c=arguments.length,d=0;;)if(dc?clojure.browser.repl.send_print.call(null,a,b,c+1):console.log(["Could not send ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)," after ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(c)," attempts."].join(""))}}(d));return clojure.browser.net.transmit.call(null,
d,a,"POST",b,null,0)};clojure.browser.repl.send_print.cljs$lang$maxFixedArity=3;clojure.browser.repl.order=cljs.core.atom.call(null,0);
clojure.browser.repl.wrap_message=function(a,b){return cljs.core.pr_str.call(null,new cljs.core.PersistentArrayMap(null,3,[new cljs.core.Keyword(null,"type","type",1174270348),a,new cljs.core.Keyword(null,"content","content",15833224),b,new cljs.core.Keyword(null,"order","order",-1254677256),cljs.core.swap_BANG_.call(null,clojure.browser.repl.order,cljs.core.inc)],null))};
clojure.browser.repl.start_evaluator=function(a){var b=clojure.browser.net.xpc_connection.call(null);if(cljs.core.truth_(b)){var c=clojure.browser.net.xhr_connection.call(null),d=cljs.core.atom.call(null,!1),e=function(a,b,c,d){return function m(){if(cljs.core.truth_(cljs.core.deref.call(null,b)))return null;clojure.browser.net.transmit.call(null,c,new cljs.core.Keyword(null,"start-handshake","start-handshake",359692894),null);return setTimeout(m,10)}}(c,d,b,b);clojure.browser.net.connect.call(null,
b,e);clojure.browser.net.register_service.call(null,b,new cljs.core.Keyword(null,"ack-handshake","ack-handshake",1651340387),function(b,c,d,e,l){return function(d){if(cljs.core.truth_(cljs.core.deref.call(null,c)))return null;cljs.core.reset_BANG_.call(null,c,!0);return clojure.browser.repl.send_result.call(null,b,a,clojure.browser.repl.wrap_message.call(null,new cljs.core.Keyword(null,"ready","ready",1086465795),"ready"))}}(c,d,e,b,b));clojure.browser.event.listen.call(null,c,new cljs.core.Keyword(null,
"success","success",1890645906),function(a,b,c,d,e){return function(a){return clojure.browser.net.transmit.call(null,d,new cljs.core.Keyword(null,"evaluate-javascript","evaluate-javascript",-315749780),a.currentTarget.getResponseText(cljs.core.List.EMPTY))}}(c,d,e,b,b));clojure.browser.net.register_service.call(null,b,new cljs.core.Keyword(null,"send-result","send-result",35388249),function(b,c,d,e,l){return function(c){return clojure.browser.repl.send_result.call(null,b,a,clojure.browser.repl.wrap_message.call(null,
new cljs.core.Keyword(null,"result","result",1415092211),c))}}(c,d,e,b,b));return clojure.browser.net.register_service.call(null,b,new cljs.core.Keyword(null,"print","print",1299562414),function(b,c,d,e,l){return function(b){return clojure.browser.repl.send_print.call(null,a,clojure.browser.repl.wrap_message.call(null,new cljs.core.Keyword(null,"print","print",1299562414),b))}}(c,d,e,b,b))}return alert("No 'xpc' param provided to child iframe.")};clojure.browser.repl.load_queue=null;
clojure.browser.repl.bootstrap=function(){if(cljs.core.truth_(COMPILED))return null;goog.require__=goog.require;goog.isProvided_=function(a){return!1};goog.constructNamespace_("cljs.user");goog.writeScriptTag__=function(a,b){var c=function(a){return function(){return cljs.core.truth_(function(){var b=clojure.browser.repl.load_queue;return cljs.core.truth_(b)?!1===cljs.core.deref.call(null,a):b}())?(cljs.core.swap_BANG_.call(null,a,cljs.core.not),0===clojure.browser.repl.load_queue.length?clojure.browser.repl.load_queue=
null:goog.writeScriptTag__.apply(null,clojure.browser.repl.load_queue.shift())):null}}(cljs.core.atom.call(null,!1));return document.body.appendChild(function(){var d=document.createElement("script");goog.object.set(d,"type","text/javascript");goog.object.set(d,"onload",c);goog.object.set(d,"onreadystatechange",c);null==b?goog.object.set(d,"src",a):goog.dom.setTextContext(d,b);return d}())};goog.writeScriptTag_=function(a,b){if(cljs.core.truth_(clojure.browser.repl.load_queue))return clojure.browser.repl.load_queue.push([a,
b]);clojure.browser.repl.load_queue=[];return goog.writeScriptTag__(a,b)};return goog.require=function(a,b){cljs.core._EQ_.call(null,b,"reload-all")&&(goog.cljsReloadAll_=!0);var c=cljs.core.truth_(b)?b:goog.cljsReloadAll__;cljs.core.truth_(c)&&(c=goog.object.get(goog.dependencies_.nameToPath,a),goog.object.remove(goog.dependencies_.visited,c),goog.object.remove(goog.dependencies_.written,c),goog.object.remove(goog.dependencies_.written,[cljs.core.str.cljs$core$IFn$_invoke$arity$1(goog.basePath),
cljs.core.str.cljs$core$IFn$_invoke$arity$1(c)].join("")));a=goog.require__(a);cljs.core._EQ_.call(null,b,"reload-all")&&(goog.cljsReloadAll_=!1);return a}};
clojure.browser.repl.connect=function(a){var b=cljs.core.atom.call(null,!1);a=clojure.browser.net.xpc_connection.call(null,new cljs.core.PersistentArrayMap(null,1,[new cljs.core.Keyword(null,"peer_uri","peer_uri",910305997),a],null));cljs.core.swap_BANG_.call(null,clojure.browser.repl.xpc_connection,cljs.core.constantly.call(null,a));clojure.browser.net.register_service.call(null,a,new cljs.core.Keyword(null,"start-handshake","start-handshake",359692894),function(a,b){return function(c){if(cljs.core.truth_(cljs.core.deref.call(null,
a)))return null;cljs.core.reset_BANG_.call(null,a,!0);cljs.core.reset_BANG_.call(null,clojure.browser.repl.parent_connected_QMARK_,!0);clojure.browser.net.transmit.call(null,b,new cljs.core.Keyword(null,"ack-handshake","ack-handshake",1651340387),null);return clojure.browser.repl.flush_print_queue_BANG_.call(null,b)}}(b,a));clojure.browser.net.register_service.call(null,a,new cljs.core.Keyword(null,"evaluate-javascript","evaluate-javascript",-315749780),function(a,b){return function(a){return clojure.browser.net.transmit.call(null,
b,new cljs.core.Keyword(null,"send-result","send-result",35388249),clojure.browser.repl.evaluate_javascript.call(null,b,a))}}(b,a));clojure.browser.net.connect.call(null,a,cljs.core.constantly.call(null,null),function(a,b){return function(a){return a.style.display="none"}}(b,a));clojure.browser.repl.bootstrap.call(null);return a};clojure.browser.repl.client={};clojure.browser.repl.client.start=function(a){return goog.events.listen(window,"load",function(){return clojure.browser.repl.start_evaluator.call(null,a)})};
© 2015 - 2025 Weber Informatics LLC | Privacy Policy