(function() {var f,aa=aa||{},k=this,ba=function(){},ca=function(a){var b=typeof a;if("object"==b)if(a){if(a instanceof Array)return"array";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);if("[object Window]"==c)return"object";if("[object Array]"==c||"number"==typeof a.length&&"undefined"!=typeof a.splice&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("splice"))return"array";if("[object Function]"==c||"undefined"!=typeof a.call&&"undefined"!=typeof a.propertyIsEnumerable&& !a.propertyIsEnumerable("call"))return"function"}else return"null";else if("function"==b&&"undefined"==typeof a.call)return"object";return b},m=function(a){return void 0!==a},n=function(a){return"array"==ca(a)},da=function(a){var b=ca(a);return"array"==b||"object"==b&&"number"==typeof a.length},p=function(a){return"string"==typeof a},q=function(a){return"number"==typeof a},r=function(a){return"function"==ca(a)},ea=function(a){var b=typeof a;return"object"==b&&null!=a||"function"==b},ga=function(a){"removeAttribute"in a&&a.removeAttribute(fa);try{delete a[fa]}catch(b){}},fa="closure_uid_"+(1E9*Math.random()>>>0),ha=0,ia=function(a,b,c){return a.call.apply(a.bind,arguments)},ja=function(a,b,c){if(!a)throw Error();if(2b?e+="000":256>b?e+="00":4096>b&&(e+="0");return ya[a]= e+b.toString(16)}),'"')};var Aa=function(a){Error.captureStackTrace?Error.captureStackTrace(this,Aa):this.stack=Error().stack||"";a&&(this.message=String(a))};v(Aa,Error);Aa.prototype.name="CustomError";var Ba=function(a,b){for(var c=a.split("%s"),d="",e=Array.prototype.slice.call(arguments,1);e.length&&1")&&(a=a.replace(Fa,">"));-1!=a.indexOf('"')&&(a=a.replace(Ga,"""));return a},Da=/&/g,Ea=//g,Ga=/\"/g,Ca=/[&<>\"]/;var Ia=function(a,b){b.unshift(a);Aa.call(this,Ba.apply(null,b));b.shift()};v(Ia,Aa);Ia.prototype.name="AssertionError";var x=function(a,b,c){if(!a){var d=Array.prototype.slice.call(arguments,2),e="Assertion failed";if(b)var e=e+(": "+b),g=d;throw new Ia(""+e,g||[]);}},Ja=function(a,b){throw new Ia("Failure"+(a?": "+a:""),Array.prototype.slice.call(arguments,1));};var y=Array.prototype,Ka=y.indexOf?function(a,b,c){x(null!=a.length);return y.indexOf.call(a,b,c)}:function(a,b,c){c=null==c?0:0>c?Math.max(0,a.length+c):c;if(p(a))return p(b)&&1==b.length?a.indexOf(b,c):-1;for(;cb?null:p(a)?a.charAt(b):a[b]},Oa=function(a,b){var c=Ka(a,b),d;if(d=0<=c)x(null!=a.length),y.splice.call(a,c,1);return d},Pa=function(a){return y.concat.apply(y,arguments)},Qa=function(a,b){for(var c=1;c=arguments.length?y.slice.call(a,b):y.slice.call(a,b,c)};var Sa=function(){};Sa.prototype.oa=!1;Sa.prototype.Wa=function(){this.oa||(this.oa=!0,this.B())};Sa.prototype.B=function(){if(this.Ya)for(;this.Ya.length;)this.Ya.shift()()};var Ta=function(a,b){this.type=a;this.currentTarget=this.target=b};Ta.prototype.B=function(){};Ta.prototype.Wa=function(){};Ta.prototype.Z=!1;Ta.prototype.ab=!0;var Ua,Va,Wa,Xa,Ya=function(){return k.navigator?k.navigator.userAgent:null};Xa=Wa=Va=Ua=!1;var Za;if(Za=Ya()){var $a=k.navigator;Ua=0==Za.lastIndexOf("Opera",0);Va=!Ua&&(-1!=Za.indexOf("MSIE")||-1!=Za.indexOf("Trident"));Wa=!Ua&&-1!=Za.indexOf("WebKit");Xa=!Ua&&!Wa&&!Va&&"Gecko"==$a.product}var ab=Ua,bb=Va,cb=Xa,db=Wa,eb; t:{var fb="",gb;if(ab&&k.opera)var hb=k.opera.version,fb="function"==typeof hb?hb():hb;else if(cb?gb=/rv\:([^\);]+)(\)|;)/:bb?gb=/\b(?:MSIE|rv)\s+([^\);]+)(\)|;)/:db&&(gb=/WebKit\/(\S+)/),gb)var ib=gb.exec(Ya()),fb=ib?ib[1]:"";if(bb){var jb,kb=k.document;jb=kb?kb.documentMode:void 0;if(jb>parseFloat(fb)){eb=String(jb);break t}}eb=fb} var lb=eb,mb={},A=function(a){var b;if(!(b=mb[a])){b=0;for(var c=String(lb).replace(/^[\s\xa0]+|[\s\xa0]+$/g,"").split("."),d=String(a).replace(/^[\s\xa0]+|[\s\xa0]+$/g,"").split("."),e=Math.max(c.length,d.length),g=0;0==b&&g(0==I[1].length?0:parseInt(I[1],10))?1:0)||((0==t[2].length)<(0==I[2].length)?-1:(0==t[2].length)>(0==I[2].length)?1:0)||(t[2]I[2]?1:0)}while(0==b)}b=mb[a]=0<=b}return b};bb&&A("9");!db||A("528");cb&&A("1.9b")||bb&&A("8")||ab&&A("9.5")||db&&A("528");cb&&!A("8")||bb&&A("9");var nb="closure_listenable_"+(1E6*Math.random()|0),ob=0;var pb=function(a,b,c,d,e){this.ga=a;this.kb=null;this.src=b;this.type=c;this.capture=!!d;this.fa=e;this.key=++ob;this.ha=this.ia=!1},qb=function(a){a.ha=!0;a.ga=null;a.kb=null;a.src=null;a.fa=null};var rb=function(a){this.src=a;this.k={};this.ea=0};rb.prototype.add=function(a,b,c,d,e){var g=this.k[a];g||(g=this.k[a]=[],this.ea++);var h;t:{for(h=0;h++d,"infinite loop")}c=this.mb;d=a.type||a;if(p(a))a=new Ta(a,c);else if(a instanceof Ta)a.target=a.target||c;else{var e=a;a=new Ta(d,c);sa(a,e)}var e=!0,g;if(b)for(var h=b.length-1;!a.Z&&0<=h;h--)g=a.currentTarget=b[h],e=tb(g,d,!0,a)&&e;a.Z||(g=a.currentTarget=c,e=tb(g,d,!0,a)&&e,a.Z||(e=tb(g,d,!1,a)&&e));if(b)for(h=0;!a.Z&&h=c.length)throw ub;var h=c[b++];return a?h:d[h]}};return h};var xb=function(a){if("function"==typeof a.m)return a.m();if(p(a))return a.split("");if(da(a)){for(var b=[],c=a.length,d=0;db.length){c.push(Bb(a)+"(");for(var d=a.arguments,e=0;e=Kb(this).value)for(a=this.ub(a,b,c),b="log:"+a.gb,k.console&&(k.console.timeStamp?k.console.timeStamp(b):k.console.markTimeline&&k.console.markTimeline(b)),k.msWriteProfilerMark&&k.msWriteProfilerMark(b),b=this;b;){c=b;var d=a;if(c.Ta)for(var e=0,g=void 0;g=c.Ta[e];e++)g(d);b=b.getParent()}}; E.prototype.ub=function(a,b,c){var d=new Db(a,String(b),this.tb);if(c){d.Ha=c;var e;var g=arguments.callee.caller;try{var h;var l;i:{for(var F=["window","location","href"],B=k,t;t=F.shift();)if(null!=B[t])B=B[t];else{l=null;break i}l=B}if(p(c))h={message:c,name:"Unknown error",lineNumber:"Not available",fileName:l,stack:"Not available"};else{var I,T,F=!1;try{I=c.lineNumber||c.$b||"Not available"}catch(vd){I="Not available",F=!0}try{T=c.fileName||c.filename||c.sourceURL||k.$googDebugFname||l}catch(wd){T= "Not available",F=!0}h=!F&&c.lineNumber&&c.fileName&&c.stack&&c.message&&c.name?c:{message:c.message||"Not available",name:c.name||"UnknownError",lineNumber:I,fileName:T,stack:c.stack||"Not available"}}e="Message: "+Ha(h.message)+'\nUrl: '+h.fileName+"\nLine: "+h.lineNumber+"\n\nBrowser stack:\n"+Ha(h.stack+"-> ")+"[end]\n\nJS stack traversal:\n"+Ha(Ab(g)+"-> ")}catch(kd){e="Exception trying to expose exception! You win, we lose. "+kd}d.Ga=e}return d}; var Lb={},Mb=null,Nb=function(a){Mb||(Mb=new E(""),Lb[""]=Mb,Mb.Sa(Ib));var b;if(!(b=Lb[a])){b=new E(a);var c=a.lastIndexOf("."),d=a.substr(c+1),c=Nb(a.substr(0,c));c.sa||(c.sa={});c.sa[d]=b;b.Y=c;Lb[a]=b}return b};var G=function(a,b){a&&a.log(Jb,b,void 0)};var Ob=function(a,b,c){if(r(a))c&&(a=s(a,c));else if(a&&"function"==typeof a.handleEvent)a=s(a.handleEvent,a);else throw Error("Invalid listener argument");return 2147483647b&&(b+=e);return[L.data.D,"map",a.mapid,d,b,c].join("/")+"?token="+a.token};L.data.Pa=function(a,b){a.json_format="v2";return L.data.i("/value",L.data.r(a),b)}; L.data.Ka=function(a,b){a.json_format="v2";n(a.size)&&(a.size=a.size.join("x"));var c=L.data.r(a).add("getid","1");return L.data.i("/thumb",c,b)};L.data.Ma=function(a){return L.data.D+"/api/thumb?thumbid="+a.thumbid+"&token="+a.token};L.data.Ja=function(a,b){a.json_format="v2";return L.data.i("/download",L.data.r(a),b)};L.data.La=function(a){return L.data.D+"/api/download?docid="+a.docid+"&token="+a.token};L.data.Xa=function(a){return L.data.i("/algorithms",null,a,"GET")}; L.data.cc=function(a,b,c){a={value:a,json_format:"v2"};void 0!==b&&(a.id=b);return L.data.i("/create",L.data.r(a),c)};L.data.fc=function(a,b){var c={};q(a)&&(c.count=a);return L.data.i("/newtaskid",L.data.r(c),b)};L.data.dc=function(a,b){if(p(a))a=[a];else if(!n(a))throw Error("Invalid task_id: expected a string or an array of strings.");return L.data.i("/taskstatus?q="+a.join(),null,b,"GET")};L.data.gc=function(a,b,c){b.tid=a;return L.data.i("/prepare",L.data.r(b),c)}; L.data.i=function(a,b,c,d){function e(a,b){var c=!1;try{var d=ua(a),e=d.data}catch(g){c=!0}var T=void 0;c||!("data"in d||"error"in d)?T="Malformed response: "+a:"error"in d&&(T=d.error.message);if(b)b(e,T);else{if(!T)return e;throw Error(T);}}L.data.W();d=d||"POST";a=L.data.U+a;b=b?b.toString():"";if(c)ac(a,function(a){return e(a.target.Da(),c)},d,b,{"Content-Type":"application/x-www-form-urlencoded"},L.data.Oa);else{var g=H();g.open(d,a,!1);g.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); g.send(b);return e(g.responseText,null)}};L.data.r=function(a){var b=new ic,c;for(c in a)b.set(c,a[c]);return b}; L.data.jc=function(a){var b=a||{};ac=function(a,c,g,h){var l=new function(){};l.target={};l.target.Da=function(){return a in b?p(b[a])?b[a]:b[a](a,c,g,h):'{"error": {}}'};setTimeout(s(c,l,l),0)};var c=function(){};c.prototype.open=function(a,b){this.url=b;this.method=a};c.prototype.setRequestHeader=function(){};c.prototype.send=function(a){this.responseText=this.url in b?p(b[this.url])?b[this.url]:b[this.url](this.url,this.method,a):(new va(void 0)).e({data:{url:this.url,method:this.method,data:a}})}; H=function(){return new c}};u("ee.data",L.data);L.data.getInfo=L.data.s;L.data.getList=L.data.Mb;L.data.getMapId=L.data.ra;L.data.getValue=L.data.Pa;L.data.getThumbId=L.data.Ka;L.data.makeThumbUrl=L.data.Ma;L.data.getDownloadId=L.data.Ja;L.data.makeDownloadUrl=L.data.La;var lc=function(){};var mc=function(a){this.na=!1!==a;this.C=[];this.ma={}},oc=function(a){return(new va).e(nc(new mc(!0),a))},pc=function(a){a=nc(new mc(!1),a);return"JSON"in window?window.JSON.stringify(a,null," "):(new va).e(a)},nc=function(a,b){var c=a.V(b);a.na&&(c=ea(c)&&"ValueRef"==c.type&&1==a.C.length?a.C[0][1]:{type:"CompoundValue",scope:a.C,value:c},a.C=[],a.ma={});return c}; mc.prototype.V=function(a){if(!m(a))throw Error("Can't encode an undefined value.");var b=ea(a)?a[fa]||(a[fa]=++ha):null,c=this.na?this.ma[b]:void 0;if(m(c))return{type:"ValueRef",value:c};if(null===a||"boolean"==typeof a||q(a)||p(a))return a;if(ea(a)&&"function"==typeof a.getFullYear)return{type:"Date",value:Math.floor(1E3*a.getTime())};if(a instanceof lc){if(a=a.j(s(this.V,this)),!ea(a)||"ArgumentRef"==a.type)return a}else if(n(a))a=z(a,function(a){return this.V(a)},this);else if(ea(a)&&!r(a))a= na(a,function(a){if(!r(a))return this.V(a)},this),ga(a),a={type:"Dictionary",value:a};else throw Error("Can't encode object: "+a);return this.na?(c=String(this.C.length),this.C.push([c,a]),this.ma[b]=c,{type:"ValueRef",value:c}):a};u("ee.Serializer",mc);u("ee.Serializer.toJSON",oc);u("ee.Serializer.toReadableJSON",pc);var M=function(a,b){if(!(this instanceof M))return new M(a,b);this.w=a;this.o=b};v(M,lc);f=M.prototype;f.s=function(a){return L.data.Pa({json:this.e()},a)};f.j=function(a){var b={},c;for(c in this.o)m(this.o[c])&&(b[c]=a(this.o[c]));b={type:"Invocation",arguments:b};a=a(this.w);b[p(a)?"functionName":"function"]=a;return b};f.e=function(){return oc(this)};f.toString=function(){return"ee."+this.name()+"("+pc(this)+")"};f.name=function(){return"ComputedObject"};u("ee.ComputedObject",M); M.prototype.getInfo=M.prototype.s;M.prototype.serialize=M.prototype.e;M.prototype.toString=M.prototype.toString;var N=function(){if(!(this instanceof N))return new N};v(N,lc);var qc=function(a){return a};N.prototype.call=function(a){return this.apply(rc(this,Array.prototype.slice.call(arguments,0)))}; N.prototype.apply=function(a){for(var b=M,c=this.l().args,d={},e={},g=0;gb||4/,"");for(var c=0;c/,"");return new Q(b,a)});a&&a()};a?L.data.Xa(b):b(L.data.Xa())}},S=function(a,b,c,d){Fc();var e= d||"";la(w,function(d,h){var l=h.split(".");if(2==l.length&&l[0]==b){var l=e+l[1],F=d.l();Ec[h]=!0;var B=!1;if(F.args.length)var t=F.args[0].type,B="Object"!=t&&L.b.Ba(t,c);t=B?a.prototype:a;l in t&&(l+="_");t[l]=function(a){var b=Array.prototype.slice.call(arguments,0);B&&b.unshift(this);return d.call.apply(d,b)};t[l].toString=s(d.toString,d,l,B);t[l].signature=F}})},Ic=function(a){var b=function(a){for(var b in a)r(a[b])&&a[b].signature&&delete a[b]};b(a);b(a.prototype)};var Jc=function(a,b,c){if(!(this instanceof Jc))return new Jc(a,b,c);var d,e;if(r(c)){if(n(a)||!ea(a))throw Error('The "args" of a custom function created from a native JS function must be a map from name to type.');d=[];e=[];var g=[],h;for(h in a){var l=a[h];d.push(h);e.push(l);g.push(Kc(l,h))}c=c.apply(null,g)}else{if(!n(a))throw Error('The "args" of a custom function created from an expression must be an array of names.');d=a;e=z(a,function(){return Object})}this.za=d;this.bb=e;this.cb=b||Object; this.qb=c};v(Jc,N);Jc.prototype.j=function(a){return{type:"Function",argumentNames:this.za,body:a(this.qb)}};Jc.prototype.l=function(){return{name:"",args:z(this.za,function(a,b){return{name:a,type:L.b.Ca(this.bb[b]),optional:!1}},this),returns:L.b.Ca(this.cb)}};var Kc=function(a,b){var c=function(){};a=a||Object;c.prototype=a.prototype instanceof lc?a.prototype:lc.prototype;c=new c;c.j=function(){return{type:"ArgumentRef",value:b}};c[L.b.Aa]=a;return c};var U=function(a,b){if(!(this instanceof U))return new U(a,b);if(a instanceof U){if(b)throw Error("Can't create Feature out of a Feature and properties.");return a}if(2/,"");c[e]=!0}for(var g in b)g in c&&!(g in L)&&(L[g]=L.vb(g),L.$.push(g))}; L.sb=function(){for(var a=0;a