var GLOBAL_Error=Error,GLOBAL_undefined=undefined,GLOBAL_encodeURIComponent=encodeURIComponent,GLOBAL_String=String,GLOBAL_window=window,GLOBAL_Object=Object,GLOBAL_document=document,GLOBAL_decodeURIComponent=decodeURIComponent,GLOBAL_Math=Math,GLOBAL_Array=Array;function SETPROP_toString(b,c){return b.toString=c}function SETPROP_length(b,c){return b.length=c}function SETPROP_className(b,c){return b.className=c}function SETPROP_width(b,c){return b.width=c}
function SETPROP_innerHTML(b,c){return b.innerHTML=c}function SETPROP_value(b,c){return b.value=c}function SETPROP_currentTarget(b,c){return b.currentTarget=c}function SETPROP_target(b,c){return b.target=c}function SETPROP_keyCode(b,c){return b.keyCode=c}function SETPROP_type(b,c){return b.type=c}function SETPROP_contains(b,c){return b.contains=c}function SETPROP_height(b,c){return b.height=c}
var $$PROP_appendChild="appendChild",$$PROP_push="push",$$PROP_stop="stop",$$PROP_toString="toString",$$PROP_length="length",$$PROP_propertyIsEnumerable="propertyIsEnumerable",$$PROP_prototype="prototype",$$PROP_test="test",$$PROP_exec="exec",$$PROP_width="width",$$PROP_abort="abort",$$PROP_slice="slice",$$PROP_setTimeout="setTimeout",$$PROP_replace="replace",$$PROP_nodeType="nodeType",$$PROP_document="document",$$PROP_split="split",$$PROP_floor="floor",$$PROP_value="value",$$PROP_location="location",
$$PROP_indexOf="indexOf",$$PROP_message="message",$$PROP_hasOwnProperty="hasOwnProperty",$$PROP_dispatchEvent="dispatchEvent",$$PROP_style="style",$$PROP_left="left",$$PROP_target="target",$$PROP_call="call",$$PROP_send="send",$$PROP_remove="remove",$$PROP_createElement="createElement",$$PROP_keyCode="keyCode",$$PROP_firstChild="firstChild",$$PROP_forEach="forEach",$$PROP_addEventListener="addEventListener",$$PROP_bottom="bottom",$$PROP_substring="substring",$$PROP_handleEvent="handleEvent",$$PROP_type=
"type",$$PROP_contains="contains",$$PROP_apply="apply",$$PROP_name="name",$$PROP_parentNode="parentNode",$$PROP_fileName="fileName",$$PROP_contentWindow="contentWindow",$$PROP_height="height",$$PROP_getTime="getTime",$$PROP_join="join",$$PROP_toLowerCase="toLowerCase",$$PROP_right="right",a,goog=goog||{},goog$global=this,goog$getObjectByName=function(b,c){b=b[$$PROP_split](".");c=c||goog$global;for(var d;d=b.shift();)if(c[d])c=c[d];else return null;return c},goog$nullFunction=function(){},goog$typeOf=
function(b){var c=typeof b;if(c=="object")if(b){if(b instanceof GLOBAL_Array||!(b instanceof GLOBAL_Object)&&GLOBAL_Object[$$PROP_prototype][$$PROP_toString][$$PROP_call](b)=="[object Array]"||typeof b[$$PROP_length]=="number"&&typeof b.splice!="undefined"&&typeof b[$$PROP_propertyIsEnumerable]!="undefined"&&!b[$$PROP_propertyIsEnumerable]("splice"))return"array";if(!(b instanceof GLOBAL_Object)&&(GLOBAL_Object[$$PROP_prototype][$$PROP_toString][$$PROP_call](b)=="[object Function]"||typeof b[$$PROP_call]!=
"undefined"&&typeof b[$$PROP_propertyIsEnumerable]!="undefined"&&!b[$$PROP_propertyIsEnumerable]("call")))return"function"}else return"null";else if(c=="function"&&typeof b[$$PROP_call]=="undefined")return"object";return c},goog$isArray=function(b){return goog$typeOf(b)=="array"},goog$isArrayLike=function(b){var c=goog$typeOf(b);return c=="array"||c=="object"&&typeof b[$$PROP_length]=="number"},goog$isString=function(b){return typeof b=="string"},goog$isFunction=function(b){return goog$typeOf(b)==
"function"},goog$isObject=function(b){b=goog$typeOf(b);return b=="object"||b=="array"||b=="function"},goog$getHashCode=function(b){if(b[$$PROP_hasOwnProperty]&&b[$$PROP_hasOwnProperty](goog$HASH_CODE_PROPERTY_))return b[goog$HASH_CODE_PROPERTY_];b[goog$HASH_CODE_PROPERTY_]||(b[goog$HASH_CODE_PROPERTY_]=++goog$hashCodeCounter_);return b[goog$HASH_CODE_PROPERTY_]},goog$HASH_CODE_PROPERTY_="closure_hashCode_"+GLOBAL_Math[$$PROP_floor](GLOBAL_Math.random()*2147483648)[$$PROP_toString](36),goog$hashCodeCounter_=
0,goog$cloneObject=function(b){var c=goog$typeOf(b);if(c=="object"||c=="array"){if(b.clone)return b.clone[$$PROP_call](b);c=c=="array"?[]:{};for(var d in b)c[d]=goog$cloneObject(b[d]);return c}return b},goog$bind=function(b,c){var d=c||goog$global;if(arguments[$$PROP_length]>2){var e=GLOBAL_Array[$$PROP_prototype][$$PROP_slice][$$PROP_call](arguments,2);return function(){var f=GLOBAL_Array[$$PROP_prototype][$$PROP_slice][$$PROP_call](arguments);GLOBAL_Array[$$PROP_prototype].unshift[$$PROP_apply](f,
e);return b[$$PROP_apply](d,f)}}else return function(){return b[$$PROP_apply](d,arguments)}},goog$partial=function(b){var c=GLOBAL_Array[$$PROP_prototype][$$PROP_slice][$$PROP_call](arguments,1);return function(){var d=GLOBAL_Array[$$PROP_prototype][$$PROP_slice][$$PROP_call](arguments);d.unshift[$$PROP_apply](d,c);return b[$$PROP_apply](this,d)}},goog$now=Date.now||function(){return(new Date)[$$PROP_getTime]()},goog$inherits=function(b,c){function d(){}d.prototype=c[$$PROP_prototype];b.superClass_=
c[$$PROP_prototype];b.prototype=new d;b[$$PROP_prototype].constructor=b};var goog$array$indexOf=function(b,c,d){if(b[$$PROP_indexOf])return b[$$PROP_indexOf](c,d);if(GLOBAL_Array[$$PROP_indexOf])return GLOBAL_Array[$$PROP_indexOf](b,c,d);for(d=d=d==null?0:d<0?GLOBAL_Math.max(0,b[$$PROP_length]+d):d;d<b[$$PROP_length];d++)if(d in b&&b[d]===c)return d;return-1},goog$array$forEach=function(b,c,d){if(b[$$PROP_forEach])b[$$PROP_forEach](c,d);else if(GLOBAL_Array[$$PROP_forEach])GLOBAL_Array[$$PROP_forEach](b,c,d);else for(var e=b[$$PROP_length],f=goog$isString(b)?b[$$PROP_split](""):
b,g=0;g<e;g++)g in f&&c[$$PROP_call](d,f[g],g,b)},goog$array$contains=function(b,c){if(b[$$PROP_contains])return b[$$PROP_contains](c);return goog$array$indexOf(b,c)>-1},goog$array$remove=function(b,c){c=goog$array$indexOf(b,c);var d;if(d=c!=-1)GLOBAL_Array[$$PROP_prototype].splice[$$PROP_call](b,c,1)[$$PROP_length]==1;return d},goog$array$clone=function(b){if(goog$isArray(b))return b.concat();else{for(var c=[],d=0,e=b[$$PROP_length];d<e;d++)c[d]=b[d];return c}},goog$array$extend=function(b){for(var c=
1;c<arguments[$$PROP_length];c++){var d=arguments[c];if(goog$isArrayLike(d)){d=d;d=goog$isArray(d)?d.concat():goog$array$clone(d);b[$$PROP_push][$$PROP_apply](b,d)}else b[$$PROP_push](d)}},goog$array$slice=function(b,c,d){return arguments[$$PROP_length]<=2?GLOBAL_Array[$$PROP_prototype][$$PROP_slice][$$PROP_call](b,c):GLOBAL_Array[$$PROP_prototype][$$PROP_slice][$$PROP_call](b,c,d)};var goog$math$Coordinate=function(b,c){this.x=b!==GLOBAL_undefined?b:0;this.y=c!==GLOBAL_undefined?c:0};goog$math$Coordinate[$$PROP_prototype].clone=function(){return new goog$math$Coordinate(this.x,this.y)};SETPROP_toString(goog$math$Coordinate[$$PROP_prototype],function(){return"("+this.x+", "+this.y+")"});var goog$math$Size=function(b,c){SETPROP_width(this,b);SETPROP_height(this,c)};a=goog$math$Size[$$PROP_prototype];a.clone=function(){return new goog$math$Size(this[$$PROP_width],this[$$PROP_height])};SETPROP_toString(a,function(){return"("+this[$$PROP_width]+" x "+this[$$PROP_height]+")"});a.ceil=function(){SETPROP_width(this,GLOBAL_Math.ceil(this[$$PROP_width]));SETPROP_height(this,GLOBAL_Math.ceil(this[$$PROP_height]));return this};
a.floor=function(){SETPROP_width(this,GLOBAL_Math[$$PROP_floor](this[$$PROP_width]));SETPROP_height(this,GLOBAL_Math[$$PROP_floor](this[$$PROP_height]));return this};a.round=function(){SETPROP_width(this,GLOBAL_Math.round(this[$$PROP_width]));SETPROP_height(this,GLOBAL_Math.round(this[$$PROP_height]));return this};a.scale=function(b){this.width*=b;this.height*=b;return this};var goog$object$forEach=function(b,c,d){for(var e in b)c[$$PROP_call](d,b[e],e,b)},goog$object$getValues=function(b){var c=[],d=0;for(var e in b)c[d++]=b[e];return c},goog$object$getKeys=function(b){var c=[],d=0;for(var e in b)c[d++]=e;return c},goog$object$PROTOTYPE_FIELDS_=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],goog$object$extend=function(b){for(var c,d,e=1;e<arguments[$$PROP_length];e++){d=arguments[e];for(c in d)b[c]=d[c];
for(var f=0;f<goog$object$PROTOTYPE_FIELDS_[$$PROP_length];f++){c=goog$object$PROTOTYPE_FIELDS_[f];if(GLOBAL_Object[$$PROP_prototype][$$PROP_hasOwnProperty][$$PROP_call](d,c))b[c]=d[c]}}};var goog$string$subs=function(b){for(var c=1;c<arguments[$$PROP_length];c++){var d=GLOBAL_String(arguments[c])[$$PROP_replace](/\$/g,"$$$$");b=b[$$PROP_replace](/\%s/,d)}return b},goog$string$trim=function(b){return b[$$PROP_replace](/^[\s\xa0]+|[\s\xa0]+$/g,"")},goog$string$encodeUriRegExp_=/^[a-zA-Z0-9\-_.!~*'()]*$/,goog$string$urlEncode=function(b){b=GLOBAL_String(b);if(!goog$string$encodeUriRegExp_[$$PROP_test](b))return GLOBAL_encodeURIComponent(b);return b},goog$string$urlDecode=function(b){return GLOBAL_decodeURIComponent(b[$$PROP_replace](/\+/g,
" "))},goog$string$htmlEscape=function(b,c){if(c)return b[$$PROP_replace](goog$string$amperRe_,"&amp;")[$$PROP_replace](goog$string$ltRe_,"&lt;")[$$PROP_replace](goog$string$gtRe_,"&gt;")[$$PROP_replace](goog$string$quotRe_,"&quot;");else{if(!goog$string$allRe_[$$PROP_test](b))return b;if(b[$$PROP_indexOf]("&")!=-1)b=b[$$PROP_replace](goog$string$amperRe_,"&amp;");if(b[$$PROP_indexOf]("<")!=-1)b=b[$$PROP_replace](goog$string$ltRe_,"&lt;");if(b[$$PROP_indexOf](">")!=-1)b=b[$$PROP_replace](goog$string$gtRe_,
"&gt;");if(b[$$PROP_indexOf]('"')!=-1)b=b[$$PROP_replace](goog$string$quotRe_,"&quot;");return b}},goog$string$amperRe_=/&/g,goog$string$ltRe_=/</g,goog$string$gtRe_=/>/g,goog$string$quotRe_=/\"/g,goog$string$allRe_=/[&<>\"]/,goog$string$unescapeEntitiesUsingDom_=function(b){var c=goog$global[$$PROP_document][$$PROP_createElement]("a");SETPROP_innerHTML(c,b);c.normalize&&c.normalize();b=c[$$PROP_firstChild].nodeValue;SETPROP_innerHTML(c,"");return b},goog$string$unescapePureXmlEntities_=function(b){return b[$$PROP_replace](/&([^;]+);/g,
function(c,d){switch(d){case "amp":return"&";case "lt":return"<";case "gt":return">";case "quot":return'"';default:if(d.charAt(0)=="#"){d=Number("0"+d.substr(1));if(!isNaN(d))return GLOBAL_String.fromCharCode(d)}return c}})},goog$string$truncate=function(b,c,d){if(d){b=b;b=goog$string$contains(b,"&")?"document"in goog$global&&!goog$string$contains(b,"<")?goog$string$unescapeEntitiesUsingDom_(b):goog$string$unescapePureXmlEntities_(b):b}if(b[$$PROP_length]>c)b=b[$$PROP_substring](0,c-3)+"...";if(d)b=
goog$string$htmlEscape(b);return b},goog$string$contains=function(b,c){return b[$$PROP_indexOf](c)!=-1},goog$string$compareVersions=function(b,c){var d=0;b=goog$string$trim(GLOBAL_String(b))[$$PROP_split](".");c=goog$string$trim(GLOBAL_String(c))[$$PROP_split](".");for(var e=GLOBAL_Math.max(b[$$PROP_length],c[$$PROP_length]),f=0;d==0&&f<e;f++){var g=b[f]||"",h=c[f]||"",i=new RegExp("(\\d*)(\\D*)","g"),j=new RegExp("(\\d*)(\\D*)","g");do{var l=i[$$PROP_exec](g)||["","",""],k=j[$$PROP_exec](h)||["",
"",""];if(l[0][$$PROP_length]==0&&k[0][$$PROP_length]==0)break;d=l[1][$$PROP_length]==0?0:parseInt(l[1],10);var n=k[1][$$PROP_length]==0?0:parseInt(k[1],10);d=goog$string$compareElements_(d,n)||goog$string$compareElements_(l[2][$$PROP_length]==0,k[2][$$PROP_length]==0)||goog$string$compareElements_(l[2],k[2])}while(d==0)}return d},goog$string$compareElements_=function(b,c){if(b<c)return-1;else if(b>c)return 1;return 0};goog$now();var goog$userAgent$detectedOpera_,goog$userAgent$detectedIe_,goog$userAgent$detectedWebkit_,goog$userAgent$detectedMobile_,goog$userAgent$detectedGecko_,goog$userAgent$detectedCamino_,goog$userAgent$detectedMac_,goog$userAgent$detectedWindows_,goog$userAgent$detectedLinux_,goog$userAgent$detectedX11_,goog$userAgent$getUserAgentString=function(){return goog$global.navigator?goog$global.navigator.userAgent:null},goog$userAgent$getNavigator=function(){return goog$global.navigator};
goog$userAgent$detectedCamino_=goog$userAgent$detectedGecko_=goog$userAgent$detectedMobile_=goog$userAgent$detectedWebkit_=goog$userAgent$detectedIe_=goog$userAgent$detectedOpera_=false;var JSCompiler_inline_ua_163;
if(JSCompiler_inline_ua_163=goog$userAgent$getUserAgentString()){var JSCompiler_inline_navigator$$1_164=goog$userAgent$getNavigator();goog$userAgent$detectedOpera_=JSCompiler_inline_ua_163[$$PROP_indexOf]("Opera")==0;goog$userAgent$detectedIe_=!goog$userAgent$detectedOpera_&&JSCompiler_inline_ua_163[$$PROP_indexOf]("MSIE")!=-1;goog$userAgent$detectedMobile_=(goog$userAgent$detectedWebkit_=!goog$userAgent$detectedOpera_&&JSCompiler_inline_ua_163[$$PROP_indexOf]("WebKit")!=-1)&&JSCompiler_inline_ua_163[$$PROP_indexOf]("Mobile")!=
-1;goog$userAgent$detectedCamino_=(goog$userAgent$detectedGecko_=!goog$userAgent$detectedOpera_&&!goog$userAgent$detectedWebkit_&&JSCompiler_inline_navigator$$1_164.product=="Gecko")&&JSCompiler_inline_navigator$$1_164.vendor=="Camino"}
var goog$userAgent$OPERA=goog$userAgent$detectedOpera_,goog$userAgent$IE=goog$userAgent$detectedIe_,goog$userAgent$GECKO=goog$userAgent$detectedGecko_,goog$userAgent$WEBKIT=goog$userAgent$detectedWebkit_,goog$userAgent$MOBILE=goog$userAgent$detectedMobile_,JSCompiler_inline_result_6,JSCompiler_inline_navigator$$2_8=goog$userAgent$getNavigator(),goog$userAgent$PLATFORM=JSCompiler_inline_result_6=JSCompiler_inline_navigator$$2_8&&JSCompiler_inline_navigator$$2_8.platform||"";
goog$userAgent$detectedMac_=goog$string$contains(goog$userAgent$PLATFORM,"Mac");goog$userAgent$detectedWindows_=goog$string$contains(goog$userAgent$PLATFORM,"Win");goog$userAgent$detectedLinux_=goog$string$contains(goog$userAgent$PLATFORM,"Linux");goog$userAgent$detectedX11_=!!goog$userAgent$getNavigator()&&goog$string$contains(goog$userAgent$getNavigator().appVersion||"","X11");var JSCompiler_inline_result_10,JSCompiler_inline_version$$1_15="",JSCompiler_inline_re$$2_16;
if(goog$userAgent$OPERA&&goog$global.opera){var JSCompiler_inline_operaVersion_17=goog$global.opera.version;JSCompiler_inline_version$$1_15=typeof JSCompiler_inline_operaVersion_17=="function"?JSCompiler_inline_operaVersion_17():JSCompiler_inline_operaVersion_17}else{if(goog$userAgent$GECKO)JSCompiler_inline_re$$2_16=/rv\:([^\);]+)(\)|;)/;else if(goog$userAgent$IE)JSCompiler_inline_re$$2_16=/MSIE\s+([^\);]+)(\)|;)/;else if(goog$userAgent$WEBKIT)JSCompiler_inline_re$$2_16=/WebKit\/(\S+)/;if(JSCompiler_inline_re$$2_16){var JSCompiler_inline_arr$$32_18=
JSCompiler_inline_re$$2_16[$$PROP_exec](goog$userAgent$getUserAgentString());JSCompiler_inline_version$$1_15=JSCompiler_inline_arr$$32_18?JSCompiler_inline_arr$$32_18[1]:""}}var goog$userAgent$VERSION=JSCompiler_inline_result_10=JSCompiler_inline_version$$1_15,goog$userAgent$isVersionCache_={},goog$userAgent$isVersion=function(b){return goog$userAgent$isVersionCache_[b]||(goog$userAgent$isVersionCache_[b]=goog$string$compareVersions(goog$userAgent$VERSION,b)>=0)};var goog$dom$getElement=function(b){return goog$isString(b)?GLOBAL_document.getElementById(b):b},goog$dom$$=goog$dom$getElement,goog$dom$getElementsByTagNameAndClass=function(b,c,d){a:{var e=GLOBAL_document;c=c;d=d||e;b=b&&b!="*"?b[$$PROP_toLowerCase]():"";if(d.querySelectorAll&&(b||c)&&(!goog$userAgent$WEBKIT||e.compatMode=="CSS1Compat"||goog$userAgent$isVersion("528"))){c=b+(c?"."+c:"");c=d.querySelectorAll(c)}else{if(c&&d.getElementsByClassName){e=d.getElementsByClassName(c);if(b){d={};for(var f=
0,g=0,h;h=e[g];g++)if(b==h.nodeName[$$PROP_toLowerCase]())d[f++]=h;SETPROP_length(d,f);c=d;break a}else{c=e;break a}}e=d.getElementsByTagName(b||"*");if(c){d={};for(g=f=0;h=e[g];g++){b=h.className;if(typeof b[$$PROP_split]=="function"&&goog$array$contains(b[$$PROP_split](" "),c))d[f++]=h}SETPROP_length(d,f);c=d}else c=e}}return c},goog$dom$$$=goog$dom$getElementsByTagNameAndClass,goog$dom$setProperties=function(b,c){goog$object$forEach(c,function(d,e){if(e=="style")b[$$PROP_style].cssText=d;else if(e==
"class")SETPROP_className(b,d);else if(e=="for")b.htmlFor=d;else if(e in goog$dom$DIRECT_ATTRIBUTE_MAP_)b.setAttribute(goog$dom$DIRECT_ATTRIBUTE_MAP_[e],d);else b[e]=d})},goog$dom$DIRECT_ATTRIBUTE_MAP_={cellpadding:"cellPadding",cellspacing:"cellSpacing",colspan:"colSpan",rowspan:"rowSpan",valign:"vAlign",height:"height",width:"width",usemap:"useMap",frameborder:"frameBorder",type:"type"},goog$dom$getWindow_=function(b){if(b.parentWindow)return b.parentWindow;if(goog$userAgent$WEBKIT&&!goog$userAgent$isVersion("500")&&
!goog$userAgent$MOBILE){var c=b[$$PROP_createElement]("script");SETPROP_innerHTML(c,"document.parentWindow=window");var d=b.documentElement;d[$$PROP_appendChild](c);d.removeChild(c);return b.parentWindow}return b.defaultView},goog$dom$createDom=function(){return goog$dom$createDom_(GLOBAL_document,arguments)},goog$dom$createDom_=function(b,c){var d=c[0],e=c[1];if(goog$userAgent$IE&&e&&(e[$$PROP_name]||e[$$PROP_type])){d=["<",d];e[$$PROP_name]&&d[$$PROP_push](' name="',goog$string$htmlEscape(e[$$PROP_name]),
'"');if(e[$$PROP_type]){d[$$PROP_push](' type="',goog$string$htmlEscape(e[$$PROP_type]),'"');e=goog$cloneObject(e);delete e[$$PROP_type]}d[$$PROP_push](">");d=d[$$PROP_join]("")}var f=b[$$PROP_createElement](d);if(e)if(goog$isString(e))SETPROP_className(f,e);else goog$dom$setProperties(f,e);if(c[$$PROP_length]>2){function g(h){if(h)f[$$PROP_appendChild](goog$isString(h)?b.createTextNode(h):h)}for(e=2;e<c[$$PROP_length];e++){d=c[e];goog$isArrayLike(d)&&!(goog$isObject(d)&&d[$$PROP_nodeType]>0)?goog$array$forEach(goog$dom$isNodeList(d)?
goog$array$clone(d):d,g):g(d)}}return f},goog$dom$$dom=goog$dom$createDom,goog$dom$appendChild=function(b,c){b[$$PROP_appendChild](c)},goog$dom$removeChildren=function(b){for(var c;c=b[$$PROP_firstChild];)b.removeChild(c)},goog$dom$insertSiblingBefore=function(b,c){c[$$PROP_parentNode]&&c[$$PROP_parentNode].insertBefore(b,c)},goog$dom$removeNode=function(b){return b&&b[$$PROP_parentNode]?b[$$PROP_parentNode].removeChild(b):null},goog$dom$replaceNode=function(b,c){var d=c[$$PROP_parentNode];d&&d.replaceChild(b,
c)},goog$dom$getNextElementNode_=function(b,c){for(;b&&b[$$PROP_nodeType]!=1;)b=c?b.nextSibling:b.previousSibling;return b},goog$dom$BAD_CONTAINS_WEBKIT_=goog$userAgent$WEBKIT&&goog$userAgent$isVersion("522"),goog$dom$contains=function(b,c){if(typeof b[$$PROP_contains]!="undefined"&&!goog$dom$BAD_CONTAINS_WEBKIT_&&c[$$PROP_nodeType]==1)return b==c||b[$$PROP_contains](c);if(typeof b.compareDocumentPosition!="undefined")return b==c||Boolean(b.compareDocumentPosition(c)&16);for(;c&&b!=c;)c=c[$$PROP_parentNode];
return c==b},goog$dom$getFrameContentDocument=function(b){return b=goog$userAgent$WEBKIT?b[$$PROP_document]||b[$$PROP_contentWindow][$$PROP_document]:b.contentDocument||b[$$PROP_contentWindow][$$PROP_document]},goog$dom$isNodeList=function(b){if(b&&typeof b[$$PROP_length]=="number")if(goog$isObject(b))return typeof b.item=="function"||typeof b.item=="string";else if(goog$isFunction(b))return typeof b.item=="function";return false},goog$dom$DomHelper=function(b){this.document_=b||goog$global[$$PROP_document]||
GLOBAL_document};a=goog$dom$DomHelper[$$PROP_prototype];a.createElement=function(b){return this.document_[$$PROP_createElement](b)};a.createTextNode=function(b){return this.document_.createTextNode(b)};a.appendChild=goog$dom$appendChild;a.removeNode=goog$dom$removeNode;a.replaceNode=goog$dom$replaceNode;SETPROP_contains(a,goog$dom$contains);var goog$Disposable=function(){};goog$Disposable[$$PROP_prototype].disposed_=false;goog$Disposable[$$PROP_prototype].dispose=function(){if(!this.disposed_){this.disposed_=true;this.disposeInternal()}};goog$Disposable[$$PROP_prototype].disposeInternal=function(){};var goog$structs$SimplePool=function(b,c){goog$Disposable[$$PROP_call](this);this.maxCount_=c;this.freeQueue_=[];this.createInitial_(b)};goog$inherits(goog$structs$SimplePool,goog$Disposable);a=goog$structs$SimplePool[$$PROP_prototype];a.createObjectFn_=null;a.disposeObjectFn_=null;a.setCreateObjectFn=function(b){this.createObjectFn_=b};a.setDisposeObjectFn=function(b){this.disposeObjectFn_=b};a.getObject=function(){if(this.freeQueue_[$$PROP_length])return this.freeQueue_.pop();return this.createObject()};
a.releaseObject=function(b){this.freeQueue_[$$PROP_length]<this.maxCount_?this.freeQueue_[$$PROP_push](b):this.disposeObject(b)};a.createInitial_=function(b){if(b>this.maxCount_)throw GLOBAL_Error("[goog.structs.SimplePool] Initial cannot be greater than max");for(var c=0;c<b;c++)this.freeQueue_[$$PROP_push](this.createObject())};a.createObject=function(){return this.createObjectFn_?this.createObjectFn_():{}};
a.disposeObject=function(b){if(this.disposeObjectFn_)this.disposeObjectFn_(b);else if(goog$isFunction(b.dispose))b.dispose();else for(var c in b)delete b[c]};a.disposeInternal=function(){goog$structs$SimplePool.superClass_.disposeInternal[$$PROP_call](this);for(var b=this.freeQueue_;b[$$PROP_length];)this.disposeObject(b.pop());delete this.freeQueue_};var goog$events$Event=function(b,c){SETPROP_type(this,b);SETPROP_target(this,c);SETPROP_currentTarget(this,this[$$PROP_target])};goog$inherits(goog$events$Event,goog$Disposable);a=goog$events$Event[$$PROP_prototype];a.disposeInternal=function(){delete this[$$PROP_type];delete this[$$PROP_target];delete this.currentTarget};a.propagationStopped_=false;a.returnValue_=true;a.stopPropagation=function(){this.propagationStopped_=true};a.preventDefault=function(){this.returnValue_=false};var goog$events$BrowserEvent=function(b,c){b&&this.init(b,c)};goog$inherits(goog$events$BrowserEvent,goog$events$Event);a=goog$events$BrowserEvent[$$PROP_prototype];SETPROP_type(a,null);SETPROP_target(a,null);a.relatedTarget=null;a.offsetX=0;a.offsetY=0;a.clientX=0;a.clientY=0;a.screenX=0;a.screenY=0;a.button=0;SETPROP_keyCode(a,0);a.charCode=0;a.ctrlKey=false;a.altKey=false;a.shiftKey=false;a.metaKey=false;a.event_=null;
a.init=function(b,c){SETPROP_type(this,b[$$PROP_type]);SETPROP_target(this,b[$$PROP_target]||b.srcElement);SETPROP_currentTarget(this,c);this.relatedTarget=b.relatedTarget?b.relatedTarget:this[$$PROP_type]=="mouseover"?b.fromElement:this[$$PROP_type]=="mouseout"?b.toElement:null;this.offsetX=typeof b.layerX=="number"?b.layerX:b.offsetX;this.offsetY=typeof b.layerY=="number"?b.layerY:b.offsetY;this.clientX=typeof b.clientX=="number"?b.clientX:b.pageX;this.clientY=typeof b.clientY=="number"?b.clientY:
b.pageY;this.screenX=b.screenX||0;this.screenY=b.screenY||0;this.button=b.button;SETPROP_keyCode(this,b[$$PROP_keyCode]||0);this.charCode=b.charCode||(this[$$PROP_type]=="keypress"?b[$$PROP_keyCode]:0);this.ctrlKey=b.ctrlKey;this.altKey=b.altKey;this.shiftKey=b.shiftKey;this.metaKey=b.metaKey;this.event_=b;delete this.returnValue_;delete this.propagationStopped_};
a.stopPropagation=function(){this.propagationStopped_=true;if(this.event_.stopPropagation)this.event_.stopPropagation();else this.event_.cancelBubble=true};a.preventDefault=function(){this.returnValue_=false;if(this.event_.preventDefault)this.event_.preventDefault();else{this.event_.returnValue=false;try{SETPROP_keyCode(this.event_,-1)}catch(b){}}};a.getBrowserEvent=function(){return this.event_};
a.disposeInternal=function(){goog$events$BrowserEvent.superClass_.disposeInternal[$$PROP_call](this);this.event_=null};var goog$events$Listener=function(){},goog$events$Listener$counter_=0;a=goog$events$Listener[$$PROP_prototype];a.key=0;a.removed=false;a.callOnce=false;
a.init=function(b,c,d,e,f,g){if(goog$isFunction(b))this.isFunctionListener_=true;else if(b&&b[$$PROP_handleEvent]&&goog$isFunction(b[$$PROP_handleEvent]))this.isFunctionListener_=false;else throw GLOBAL_Error("Invalid listener argument");this.listener=b;this.proxy=c;this.src=d;SETPROP_type(this,e);this.capture=!!f;this.handler=g;this.callOnce=false;this.key=++goog$events$Listener$counter_;this.removed=false};
a.handleEvent=function(b){if(this.isFunctionListener_)return this.listener[$$PROP_call](this.handler||this.src,b);return this.listener[$$PROP_handleEvent][$$PROP_call](this.listener,b)};var goog$events$listeners_={},goog$events$listenerTree_={},goog$events$sources_={},goog$events$objectPool_=new goog$structs$SimplePool(0,600);goog$events$objectPool_.setCreateObjectFn(function(){return{count_:0,remaining_:0}});goog$events$objectPool_.setDisposeObjectFn(function(b){b.count_=0});var goog$events$arrayPool_=new goog$structs$SimplePool(0,600);goog$events$arrayPool_.setCreateObjectFn(function(){return[]});
goog$events$arrayPool_.setDisposeObjectFn(function(b){SETPROP_length(b,0);delete b.locked_;delete b.needsCleanup_});var goog$events$handleEventProxyPool_=new goog$structs$SimplePool(0,600);goog$events$handleEventProxyPool_.setCreateObjectFn(function(){var b=function(c){return goog$events$handleBrowserEvent_[$$PROP_call](b.src,b.key,c)};return b});var goog$events$createListenerFunction_=function(){return new goog$events$Listener},goog$events$listenerPool_=new goog$structs$SimplePool(0,600);goog$events$listenerPool_.setCreateObjectFn(goog$events$createListenerFunction_);
var goog$events$createEventFunction_=function(){return new goog$events$BrowserEvent},goog$events$eventPool_,JSCompiler_inline_eventPool_53=null;if(goog$userAgent$IE){JSCompiler_inline_eventPool_53=new goog$structs$SimplePool(0,600);JSCompiler_inline_eventPool_53.setCreateObjectFn(goog$events$createEventFunction_)}goog$events$eventPool_=JSCompiler_inline_eventPool_53;
var goog$events$onString_="on",goog$events$onStringMap_={},goog$events$listen=function(b,c,d,e,f){if(c)if(goog$isArray(c)){for(var g=0;g<c[$$PROP_length];g++)goog$events$listen(b,c[g],d,e,f);return null}else{e=!!e;var h=goog$events$listenerTree_;c in h||(h[c]=goog$events$objectPool_.getObject());h=h[c];if(!(e in h)){h[e]=goog$events$objectPool_.getObject();h.count_++}h=h[e];var i=goog$getHashCode(b),j;h.remaining_++;if(h[i]){j=h[i];for(g=0;g<j[$$PROP_length];g++){h=j[g];if(h.listener==d&&h.handler==
f){if(h.removed)break;return j[g].key}}}else{j=h[i]=goog$events$arrayPool_.getObject();h.count_++}g=goog$events$handleEventProxyPool_.getObject();g.src=b;h=goog$events$listenerPool_.getObject();h.init(d,g,b,c,e,f);d=h.key;g.key=d;j[$$PROP_push](h);goog$events$listeners_[d]=h;goog$events$sources_[i]||(goog$events$sources_[i]=goog$events$arrayPool_.getObject());goog$events$sources_[i][$$PROP_push](h);if(b[$$PROP_addEventListener]){if(b==goog$global||!b.customEvent_)b[$$PROP_addEventListener](c,g,e)}else b.attachEvent(goog$events$getOnString_(c),
g);return d}else throw GLOBAL_Error("Invalid event type");},goog$events$unlisten=function(b,c,d,e,f){if(goog$isArray(c)){for(var g=0;g<c[$$PROP_length];g++)goog$events$unlisten(b,c[g],d,e,f);return null}e=!!e;a:{g=goog$events$listenerTree_;if(c in g){g=g[c];if(e in g){g=g[e];b=goog$getHashCode(b);if(g[b]){b=g[b];break a}}}b=null}if(!b)return false;for(g=0;g<b[$$PROP_length];g++)if(b[g].listener==d&&b[g].capture==e&&b[g].handler==f)return goog$events$unlistenByKey(b[g].key);return false},goog$events$unlistenByKey=
function(b){if(!goog$events$listeners_[b])return false;var c=goog$events$listeners_[b];if(c.removed)return false;var d=c.src,e=c[$$PROP_type],f=c.proxy,g=c.capture;if(d.removeEventListener){if(d==goog$global||!d.customEvent_)d.removeEventListener(e,f,g)}else d.detachEvent&&d.detachEvent(goog$events$getOnString_(e),f);d=goog$getHashCode(d);f=goog$events$listenerTree_[e][g][d];if(goog$events$sources_[d]){var h=goog$events$sources_[d];goog$array$remove(h,c);h[$$PROP_length]==0&&delete goog$events$sources_[d]}c.removed=
true;f.needsCleanup_=true;goog$events$cleanUp_(e,g,d,f);delete goog$events$listeners_[b];return true},goog$events$cleanUp_=function(b,c,d,e){if(!e.locked_)if(e.needsCleanup_){for(var f=0,g=0;f<e[$$PROP_length];f++)if(e[f].removed)goog$events$listenerPool_.releaseObject(e[f]);else{if(f!=g)e[g]=e[f];g++}SETPROP_length(e,g);e.needsCleanup_=false;if(g==0){goog$events$arrayPool_.releaseObject(e);delete goog$events$listenerTree_[b][c][d];goog$events$listenerTree_[b][c].count_--;if(goog$events$listenerTree_[b][c].count_==
0){goog$events$objectPool_.releaseObject(goog$events$listenerTree_[b][c]);delete goog$events$listenerTree_[b][c];goog$events$listenerTree_[b].count_--}if(goog$events$listenerTree_[b].count_==0){goog$events$objectPool_.releaseObject(goog$events$listenerTree_[b]);delete goog$events$listenerTree_[b]}}}},goog$events$removeAll=function(b,c,d){var e=0,f=b==null,g=c==null,h=d==null;d=!!d;if(f)goog$object$forEach(goog$events$sources_,function(j){for(var l=j[$$PROP_length]-1;l>=0;l--){var k=j[l];if((g||c==
k[$$PROP_type])&&(h||d==k.capture)){goog$events$unlistenByKey(k.key);e++}}});else{b=goog$getHashCode(b);if(goog$events$sources_[b]){b=goog$events$sources_[b];for(f=b[$$PROP_length]-1;f>=0;f--){var i=b[f];if((g||c==i[$$PROP_type])&&(h||d==i.capture)){goog$events$unlistenByKey(i.key);e++}}}}return e},goog$events$getOnString_=function(b){if(b in goog$events$onStringMap_)return goog$events$onStringMap_[b];return goog$events$onStringMap_[b]=goog$events$onString_+b},goog$events$fireListeners_=function(b,
c,d,e,f){var g=1;c=goog$getHashCode(c);if(b[c]){b.remaining_--;b=b[c];if(b.locked_)b.locked_++;else b.locked_=1;try{for(var h=b[$$PROP_length],i=0;i<h;i++){var j=b[i];if(j&&!j.removed)g&=goog$events$fireListener(j,f)!==false}}finally{b.locked_--;goog$events$cleanUp_(d,e,c,b)}}return Boolean(g)},goog$events$fireListener=function(b,c){c=b[$$PROP_handleEvent](c);b.callOnce&&goog$events$unlistenByKey(b.key);return c},goog$events$handleBrowserEvent_=function(b,c){if(!goog$events$listeners_[b])return true;
b=goog$events$listeners_[b];var d=b[$$PROP_type],e=goog$events$listenerTree_;if(!(d in e))return true;e=e[d];var f,g;if(goog$userAgent$IE){f=c||goog$getObjectByName("window.event");c=true in e;var h=false in e;if(c){if(f[$$PROP_keyCode]<0||f.returnValue!=GLOBAL_undefined)return true;a:{var i=f,j=false;if(i[$$PROP_keyCode]==0)try{SETPROP_keyCode(i,-1);break a}catch(l){j=true}if(j||i.returnValue==GLOBAL_undefined)i.returnValue=true}}i=goog$events$eventPool_.getObject();i.init(f,this);f=true;try{if(c){for(var k=
goog$events$arrayPool_.getObject(),n=i.currentTarget;n;n=n[$$PROP_parentNode])k[$$PROP_push](n);g=e[true];g.remaining_=g.count_;for(var m=k[$$PROP_length]-1;!i.propagationStopped_&&m>=0&&g.remaining_;m--){SETPROP_currentTarget(i,k[m]);f&=goog$events$fireListeners_(g,k[m],d,true,i)}if(h){g=e[false];g.remaining_=g.count_;for(m=0;!i.propagationStopped_&&m<k[$$PROP_length]&&g.remaining_;m++){SETPROP_currentTarget(i,k[m]);f&=goog$events$fireListeners_(g,k[m],d,false,i)}}}else f=goog$events$fireListener(b,
i)}finally{if(k){SETPROP_length(k,0);goog$events$arrayPool_.releaseObject(k)}i.dispose();goog$events$eventPool_.releaseObject(i)}return f}g=new goog$events$BrowserEvent(c,this);try{f=goog$events$fireListener(b,g)}finally{g.dispose()}return f};var goog$events$EventHandler=function(b){this.handler_=b};goog$inherits(goog$events$EventHandler,goog$Disposable);var goog$events$EventHandler$keyPool_=new goog$structs$SimplePool(0,100);a=goog$events$EventHandler[$$PROP_prototype];a.listen=function(b,c,d,e,f){if(goog$isArray(c))for(var g=0;g<c[$$PROP_length];g++)this.listen(b,c[g],d,e,f);else{b=goog$events$listen(b,c,d||this,e||false,f||this.handler_||this);this.recordListenerKey_(b)}return this};
a.recordListenerKey_=function(b){if(this.keys_)this.keys_[b]=true;else if(this.key_){this.keys_=goog$events$EventHandler$keyPool_.getObject();this.keys_[this.key_]=true;this.key_=null;this.keys_[b]=true}else this.key_=b};a.removeAll=function(){if(this.keys_){for(var b in this.keys_){goog$events$unlistenByKey(b);delete this.keys_[b]}goog$events$EventHandler$keyPool_.releaseObject(this.keys_);this.keys_=null}else this.key_&&goog$events$unlistenByKey(this.key_)};
a.disposeInternal=function(){goog$events$EventHandler.superClass_.disposeInternal[$$PROP_call](this);this.removeAll()};a.handleEvent=function(){throw GLOBAL_Error("EventHandler.handleEvent not implemented");};var goog$events$EventTarget=function(){};goog$inherits(goog$events$EventTarget,goog$Disposable);a=goog$events$EventTarget[$$PROP_prototype];a.customEvent_=true;a.parentEventTarget_=null;a.getParentEventTarget=function(){return this.parentEventTarget_};a.addEventListener=function(b,c,d,e){goog$events$listen(this,b,c,d,e)};a.removeEventListener=function(b,c,d,e){goog$events$unlisten(this,b,c,d,e)};
a.dispatchEvent=function(b){b=b;if(goog$isString(b))b=new goog$events$Event(b,this);else if(b instanceof goog$events$Event)SETPROP_target(b,b[$$PROP_target]||this);else{var c=b;b=new goog$events$Event(b[$$PROP_type],this);goog$object$extend(b,c)}c=1;var d,e=b[$$PROP_type],f=goog$events$listenerTree_;if(e in f){f=f[e];e=true in f;var g;if(e){d=[];for(g=this;g;g=g.getParentEventTarget())d[$$PROP_push](g);g=f[true];g.remaining_=g.count_;for(var h=d[$$PROP_length]-1;!b.propagationStopped_&&h>=0&&g.remaining_;h--){SETPROP_currentTarget(b,
d[h]);c&=goog$events$fireListeners_(g,d[h],b[$$PROP_type],true,b)&&b.returnValue_!=false}}if(g=false in f){g=f[false];g.remaining_=g.count_;if(e)for(h=0;!b.propagationStopped_&&h<d[$$PROP_length]&&g.remaining_;h++){SETPROP_currentTarget(b,d[h]);c&=goog$events$fireListeners_(g,d[h],b[$$PROP_type],false,b)&&b.returnValue_!=false}else for(d=this;!b.propagationStopped_&&d&&g.remaining_;d=d.getParentEventTarget()){SETPROP_currentTarget(b,d);c&=goog$events$fireListeners_(g,d,b[$$PROP_type],false,b)&&b.returnValue_!=
false}}b=Boolean(c)}else b=true;return b};a.disposeInternal=function(){goog$events$EventTarget.superClass_.disposeInternal[$$PROP_call](this);goog$events$removeAll(this);this.parentEventTarget_=null};var goog$Timer=function(b,c){goog$events$EventTarget[$$PROP_call](this);this.interval_=b||1;this.timerObject_=c||goog$Timer$defaultTimerObject;this.boundTick_=goog$bind(this.tick_,this);this.last_=goog$now()};goog$inherits(goog$Timer,goog$events$EventTarget);goog$Timer[$$PROP_prototype].enabled=false;var goog$Timer$defaultTimerObject=goog$global.window,goog$Timer$intervalScale=0.8;a=goog$Timer[$$PROP_prototype];a.timer_=null;
a.setInterval=function(b){this.interval_=b;if(this.timer_&&this.enabled){this[$$PROP_stop]();this.start()}else this.timer_&&this[$$PROP_stop]()};a.tick_=function(){if(this.enabled){var b=goog$now()-this.last_;if(b>0&&b<this.interval_*goog$Timer$intervalScale)this.timer_=this.timerObject_[$$PROP_setTimeout](this.boundTick_,this.interval_-b);else{this.dispatchTick_();if(this.enabled){this.timer_=this.timerObject_[$$PROP_setTimeout](this.boundTick_,this.interval_);this.last_=goog$now()}}}};
a.dispatchTick_=function(){this[$$PROP_dispatchEvent]("tick")};a.start=function(){this.enabled=true;if(!this.timer_){this.timer_=this.timerObject_[$$PROP_setTimeout](this.boundTick_,this.interval_);this.last_=goog$now()}};a.stop=function(){this.enabled=false;if(this.timer_){this.timerObject_.clearTimeout(this.timer_);this.timer_=null}};a.disposeInternal=function(){goog$Timer.superClass_.disposeInternal[$$PROP_call](this);this[$$PROP_stop]();delete this.timerObject_};var goog$History=function(b,c,d,e){goog$events$EventTarget[$$PROP_call](this);if(b&&!c)throw GLOBAL_Error("Can't use invisible history without providing a blank page.");var f;if(d)f=d;else{f="history_state"+goog$History$historyCount_;GLOBAL_document.write(goog$string$subs('<input type="text" name="%s" id="%s" style="display:none" />',f,f));f=goog$dom$getElement(f)}this.hiddenInput_=f;this.window_=d?(d[$$PROP_nodeType]==9?d:d.ownerDocument||d[$$PROP_document])?goog$dom$getWindow_(d[$$PROP_nodeType]==
9?d:d.ownerDocument||d[$$PROP_document]):GLOBAL_window:GLOBAL_window;this.baseUrl_=this.window_[$$PROP_location].href[$$PROP_split]("#")[0]+"#";this.iframeSrc_=c;if(goog$userAgent$IE&&!c)this.iframeSrc_=GLOBAL_window[$$PROP_location].protocol=="https"?"https:///":'javascript:""';this.timer_=new goog$Timer(150);this.userVisible_=!b;this.eventHandler_=new goog$events$EventHandler(this);if(b||goog$userAgent$IE){if(e)b=e;else{b="history_iframe"+goog$History$historyCount_;c=this.iframeSrc_?'src="'+goog$string$htmlEscape(this.iframeSrc_)+
'"':"";GLOBAL_document.write(goog$string$subs('<iframe id="%s" style="display:none" %s></iframe>',b,c));b=goog$dom$getElement(b)}this.iframe_=b;this.unsetIframe_=true}if(goog$userAgent$IE){this.eventHandler_.listen(this.window_,"load",this.onDocumentLoaded);this.shouldEnable_=this.documentLoaded=false}this.userVisible_?this.setHash_(this.getToken(),true):this.setIframeToken_(this.hiddenInput_[$$PROP_value]);goog$History$historyCount_++};goog$inherits(goog$History,goog$events$EventTarget);a=goog$History[$$PROP_prototype];
a.enabled_=false;a.longerPolling_=false;a.lastToken_=null;a.lockedToken_=null;a.disposeInternal=function(){goog$History.superClass_.disposeInternal[$$PROP_call](this);this.eventHandler_.dispose();this.setEnabled(false)};
a.setEnabled=function(b){if(b!=this.enabled_)if(goog$userAgent$IE&&!this.documentLoaded)this.shouldEnable_=b;else if(b){if(goog$userAgent$OPERA)this.eventHandler_.listen(this.window_[$$PROP_document],goog$History$INPUT_EVENTS_,this.operaDefibrillator_);else goog$userAgent$GECKO&&this.eventHandler_.listen(this.window_,"pageshow",this.onShow_);if(!goog$userAgent$IE||this.documentLoaded){this.eventHandler_.listen(this.timer_,"tick",this.poll_);this.enabled_=true;if(!goog$userAgent$IE)this.lastToken_=
this.getToken();this.timer_.start();this[$$PROP_dispatchEvent](new goog$History$Event(this.getToken()))}}else{this.enabled_=false;this.eventHandler_.removeAll();this.timer_[$$PROP_stop]()}};a.onDocumentLoaded=function(){this.documentLoaded=true;this.hiddenInput_[$$PROP_value]&&this.setIframeToken_(this.hiddenInput_[$$PROP_value],true);this.setEnabled(this.shouldEnable_)};a.onShow_=function(b){if(b.getBrowserEvent().persisted){this.setEnabled(false);this.setEnabled(true)}};
a.getToken=function(){return this.lockedToken_!==null?this.lockedToken_:this.userVisible_?this.getLocationFragment_(this.window_):this.getIframeToken_()||""};a.setToken=function(b,c){this.setHistoryState_(b,false,c)};a.getLocationFragment_=function(b){b=b[$$PROP_location].href;var c=b[$$PROP_indexOf]("#");return c<0?"":b[$$PROP_substring](c+1)};
a.setHistoryState_=function(b,c,d){if(this.getToken()!=b)if(this.userVisible_){this.setHash_(b,c);goog$userAgent$IE&&this.setIframeToken_(b,c,d);this.enabled_&&this.poll_()}else{this.setIframeToken_(b,c);this.lockedToken_=this.lastToken_=SETPROP_value(this.hiddenInput_,b);this[$$PROP_dispatchEvent](new goog$History$Event(b))}};a.setHash_=function(b,c){b=this.baseUrl_+(b||"");var d=this.window_[$$PROP_location];if(b!=d.href)if(c)d[$$PROP_replace](b);else d.href=b};
a.setIframeToken_=function(b,c,d){if(this.unsetIframe_||b!=this.getIframeToken_()){this.unsetIframe_=false;b=goog$string$urlEncode(b);if(goog$userAgent$IE){var e=goog$dom$getFrameContentDocument(this.iframe_);e.open("text/html",c?"replace":GLOBAL_undefined);e.write(goog$string$subs("<title>%s</title><body>%s</body>",goog$string$htmlEscape(d||this.window_[$$PROP_document].title),b));e.close()}else{b=this.iframeSrc_+"#"+b;if(d=this.iframe_[$$PROP_contentWindow])if(c)d[$$PROP_location][$$PROP_replace](b);
else d[$$PROP_location].href=b}}};a.getIframeToken_=function(){if(goog$userAgent$IE){var b=goog$dom$getFrameContentDocument(this.iframe_);return b.body?goog$string$urlDecode(b.body.innerHTML):null}else if(b=this.iframe_[$$PROP_contentWindow]){var c;try{c=goog$string$urlDecode(this.getLocationFragment_(b))}catch(d){this.longerPolling_||this.setLongerPolling_(true);return null}this.longerPolling_&&this.setLongerPolling_(false);return c||null}else return null};
a.poll_=function(){if(this.userVisible_){var b=this.getLocationFragment_(this.window_);b!=this.lastToken_&&this.update_(b)}if(!this.userVisible_||goog$userAgent$IE){b=this.getIframeToken_()||"";if(this.lockedToken_==null||b==this.lockedToken_){this.lockedToken_=null;b!=this.lastToken_&&this.update_(b)}}};a.update_=function(b){this.lastToken_=SETPROP_value(this.hiddenInput_,b);if(this.userVisible_){goog$userAgent$IE&&this.setIframeToken_(b);this.setHash_(b)}else this.setIframeToken_(b);this[$$PROP_dispatchEvent](new goog$History$Event(this.getToken()))};
a.setLongerPolling_=function(b){if(this.longerPolling_!=b)this.timer_.setInterval(b?10000:150);this.longerPolling_=b};a.operaDefibrillator_=function(){this.timer_[$$PROP_stop]();this.timer_.start()};var goog$History$INPUT_EVENTS_=["mousedown","keydown","mousemove"],goog$History$historyCount_=0,goog$History$Event=function(b){goog$events$Event[$$PROP_call](this,"navigate");this.token=b};goog$inherits(goog$History$Event,goog$events$Event);var goog$math$Box=function(b,c,d,e){this.top=b;this.right=c;this.bottom=d;this.left=e};goog$math$Box[$$PROP_prototype].clone=function(){return new goog$math$Box(this.top,this[$$PROP_right],this[$$PROP_bottom],this[$$PROP_left])};SETPROP_toString(goog$math$Box[$$PROP_prototype],function(){return"("+this.top+"t, "+this[$$PROP_right]+"r, "+this[$$PROP_bottom]+"b, "+this[$$PROP_left]+"l)"});
SETPROP_contains(goog$math$Box[$$PROP_prototype],function(b){b=!this||!b?false:b instanceof goog$math$Box?b[$$PROP_left]>=this[$$PROP_left]&&b[$$PROP_right]<=this[$$PROP_right]&&b.top>=this.top&&b[$$PROP_bottom]<=this[$$PROP_bottom]:b.x>=this[$$PROP_left]&&b.x<=this[$$PROP_right]&&b.y>=this.top&&b.y<=this[$$PROP_bottom];return b});
goog$math$Box[$$PROP_prototype].expand=function(b,c,d,e){if(goog$isObject(b)){this.top-=b.top;this.right+=b[$$PROP_right];this.bottom+=b[$$PROP_bottom];this.left-=b[$$PROP_left]}else{this.top-=b;this.right+=c;this.bottom+=d;this.left-=e}return this};var goog$math$Rect=function(b,c,d,e){this.left=b;this.top=c;SETPROP_width(this,d);SETPROP_height(this,e)};goog$math$Rect[$$PROP_prototype].clone=function(){return new goog$math$Rect(this[$$PROP_left],this.top,this[$$PROP_width],this[$$PROP_height])};SETPROP_toString(goog$math$Rect[$$PROP_prototype],function(){return"("+this[$$PROP_left]+", "+this.top+" - "+this[$$PROP_width]+"w x "+this[$$PROP_height]+"h)"});
SETPROP_contains(goog$math$Rect[$$PROP_prototype],function(b){return b instanceof goog$math$Rect?this[$$PROP_left]<=b[$$PROP_left]&&this[$$PROP_left]+this[$$PROP_width]>=b[$$PROP_left]+b[$$PROP_width]&&this.top<=b.top&&this.top+this[$$PROP_height]>=b.top+b[$$PROP_height]:b.x>=this[$$PROP_left]&&b.x<=this[$$PROP_left]+this[$$PROP_width]&&b.y>=this.top&&b.y<=this.top+this[$$PROP_height]});var goog$userAgent$product$detectedFirefox_,goog$userAgent$product$detectedCamino_,goog$userAgent$product$detectedIphone_,goog$userAgent$product$detectedAndroid_,goog$userAgent$product$detectedChrome_,goog$userAgent$product$detectedSafari_;goog$userAgent$product$detectedSafari_=goog$userAgent$product$detectedChrome_=goog$userAgent$product$detectedAndroid_=goog$userAgent$product$detectedIphone_=goog$userAgent$product$detectedCamino_=goog$userAgent$product$detectedFirefox_=false;
var JSCompiler_inline_ua$$1_168=goog$userAgent$getUserAgentString();
if(JSCompiler_inline_ua$$1_168)if(JSCompiler_inline_ua$$1_168[$$PROP_indexOf]("Firefox")!=-1)goog$userAgent$product$detectedFirefox_=true;else if(JSCompiler_inline_ua$$1_168[$$PROP_indexOf]("Camino")!=-1)goog$userAgent$product$detectedCamino_=true;else if(JSCompiler_inline_ua$$1_168[$$PROP_indexOf]("iPhone")!=-1||JSCompiler_inline_ua$$1_168[$$PROP_indexOf]("iPod")!=-1)goog$userAgent$product$detectedIphone_=true;else if(JSCompiler_inline_ua$$1_168[$$PROP_indexOf]("Android")!=-1)goog$userAgent$product$detectedAndroid_=
true;else if(JSCompiler_inline_ua$$1_168[$$PROP_indexOf]("Chrome")!=-1)goog$userAgent$product$detectedChrome_=true;else if(JSCompiler_inline_ua$$1_168[$$PROP_indexOf]("Safari")!=-1)goog$userAgent$product$detectedSafari_=true;var goog$style$setStyle=function(b,c,d){goog$isString(c)?goog$style$setStyle_(b,d,c):goog$object$forEach(c,goog$partial(goog$style$setStyle_,b))},goog$style$setStyle_=function(b,c,d){b[$$PROP_style][goog$style$toCamelCase(d)]=c},goog$style$toCamelCaseCache_={},goog$style$toCamelCase=function(b){return goog$style$toCamelCaseCache_[b]||(goog$style$toCamelCaseCache_[b]=GLOBAL_String(b)[$$PROP_replace](/\-([a-z])/g,function(c,d){return d.toUpperCase()}))};if("StopIteration"in goog$global)var goog$iter$StopIteration=goog$global.StopIteration;else goog$iter$StopIteration=GLOBAL_Error("StopIteration");var goog$iter$Iterator=function(){};goog$iter$Iterator[$$PROP_prototype].next=function(){throw goog$iter$StopIteration;};goog$iter$Iterator[$$PROP_prototype].__iterator__=function(){return this};var goog$structs$getValues=function(b){if(typeof b.getValues=="function")return b.getValues();if(goog$isString(b))return b[$$PROP_split]("");if(goog$isArrayLike(b)){for(var c=[],d=b[$$PROP_length],e=0;e<d;e++)c[$$PROP_push](b[e]);return c}return goog$object$getValues(b)},goog$structs$getKeys=function(b){if(typeof b.getKeys=="function")return b.getKeys();if(typeof b.getValues=="function")return GLOBAL_undefined;if(goog$isArrayLike(b)||goog$isString(b)){var c=[];b=b[$$PROP_length];for(var d=0;d<b;d++)c[$$PROP_push](d);
return c}return goog$object$getKeys(b)},goog$structs$forEach=function(b,c,d){if(typeof b[$$PROP_forEach]=="function")b[$$PROP_forEach](c,d);else if(goog$isArrayLike(b)||goog$isString(b))goog$array$forEach(b,c,d);else for(var e=goog$structs$getKeys(b),f=goog$structs$getValues(b),g=f[$$PROP_length],h=0;h<g;h++)c[$$PROP_call](d,f[h],e&&e[h],b)};var goog$structs$Map=function(b){this.map_={};this.keys_=[];var c=arguments[$$PROP_length];if(c>1){if(c%2)throw GLOBAL_Error("Uneven number of arguments");for(var d=0;d<c;d+=2)this.set(arguments[d],arguments[d+1])}else b&&this.addAll(b)};a=goog$structs$Map[$$PROP_prototype];a.count_=0;a.version_=0;a.getValues=function(){this.cleanupKeysArray_();for(var b=[],c=0;c<this.keys_[$$PROP_length];c++){var d=this.keys_[c];b[$$PROP_push](this.map_[d])}return b};
a.getKeys=function(){this.cleanupKeysArray_();return this.keys_.concat()};a.containsKey=function(b){return goog$structs$Map$hasKey_(this.map_,b)};a.clear=function(){this.map_={};SETPROP_length(this.keys_,0);this.version_=this.count_=0};a.remove=function(b){if(goog$structs$Map$hasKey_(this.map_,b)){delete this.map_[b];this.count_--;this.version_++;this.keys_[$$PROP_length]>2*this.count_&&this.cleanupKeysArray_();return true}return false};
a.cleanupKeysArray_=function(){if(this.count_!=this.keys_[$$PROP_length]){for(var b=0,c=0;b<this.keys_[$$PROP_length];){var d=this.keys_[b];if(goog$structs$Map$hasKey_(this.map_,d))this.keys_[c++]=d;b++}SETPROP_length(this.keys_,c)}if(this.count_!=this.keys_[$$PROP_length]){var e={};for(c=b=0;b<this.keys_[$$PROP_length];){d=this.keys_[b];if(!goog$structs$Map$hasKey_(e,d)){this.keys_[c++]=d;e[d]=1}b++}SETPROP_length(this.keys_,c)}};
a.get=function(b,c){if(goog$structs$Map$hasKey_(this.map_,b))return this.map_[b];return c};a.set=function(b,c){if(!goog$structs$Map$hasKey_(this.map_,b)){this.count_++;this.keys_[$$PROP_push](b);this.version_++}this.map_[b]=c};a.addAll=function(b){var c;if(b instanceof goog$structs$Map){c=b.getKeys();b=b.getValues()}else{c=goog$object$getKeys(b);b=goog$object$getValues(b)}for(var d=0;d<c[$$PROP_length];d++)this.set(c[d],b[d])};a.clone=function(){return new goog$structs$Map(this)};
a.__iterator__=function(b){this.cleanupKeysArray_();var c=0,d=this.keys_,e=this.map_,f=this.version_,g=this,h=new goog$iter$Iterator;h.next=function(){for(;1;){if(f!=g.version_)throw GLOBAL_Error("The map has changed since the iterator was created");if(c>=d[$$PROP_length])throw goog$iter$StopIteration;var i=d[c++];return b?i:e[i]}};return h};var goog$structs$Map$hasKey_=function(b,c){return GLOBAL_Object[$$PROP_prototype][$$PROP_hasOwnProperty][$$PROP_call](b,c)};var goog$structs$Set=function(b){this.map_=new goog$structs$Map;b&&this.addAll(b)},goog$structs$Set$getKey_=function(b){var c=typeof b;return c=="object"&&b||c=="function"?"o"+goog$getHashCode(b):c.substr(0,1)+b};a=goog$structs$Set[$$PROP_prototype];a.add=function(b){this.map_.set(goog$structs$Set$getKey_(b),b)};a.addAll=function(b){b=goog$structs$getValues(b);for(var c=b[$$PROP_length],d=0;d<c;d++)this.add(b[d])};
a.removeAll=function(b){b=goog$structs$getValues(b);for(var c=b[$$PROP_length],d=0;d<c;d++)this[$$PROP_remove](b[d])};a.remove=function(b){return this.map_[$$PROP_remove](goog$structs$Set$getKey_(b))};a.clear=function(){this.map_.clear()};SETPROP_contains(a,function(b){return this.map_.containsKey(goog$structs$Set$getKey_(b))});a.getValues=function(){return this.map_.getValues()};a.clone=function(){return new goog$structs$Set(this)};a.__iterator__=function(){return this.map_.__iterator__(false)};var goog$debug$exposeException=function(b,c){try{var d;b=b;var e=goog$getObjectByName("window.location.href");d=typeof b=="string"?{message:b,name:"Unknown error",lineNumber:"Not available",fileName:e,stack:"Not available"}:!b.lineNumber||!b[$$PROP_fileName]||!b.stack?{message:b[$$PROP_message],name:b[$$PROP_name],lineNumber:b.lineNumber||b.line||"Not available",fileName:b[$$PROP_fileName]||b.filename||b.sourceURL||e,stack:b.stack||"Not available"}:b;var f="Message: "+goog$string$htmlEscape(d[$$PROP_message])+
'\nUrl: <a href="view-source:'+d[$$PROP_fileName]+'" target="_new">'+d[$$PROP_fileName]+"</a>\nLine: "+d.lineNumber+"\n\nBrowser stack:\n"+goog$string$htmlEscape(d.stack+"-> ")+"[end]\n\nJS stack traversal:\n"+goog$string$htmlEscape(goog$debug$getStacktrace(c)+"-> ");return f}catch(g){return"Exception trying to expose exception! You win, we lose. "+g}},goog$debug$getStacktrace=function(b){return goog$debug$getStacktraceHelper_(b||arguments.callee.caller,[])},goog$debug$getStacktraceHelper_=function(b,
c){var d=[];if(goog$array$contains(c,b))d[$$PROP_push]("[...circular reference...]");else if(b&&c[$$PROP_length]<50){d[$$PROP_push](goog$debug$getFunctionName(b)+"(");for(var e=b.arguments,f=0;f<e[$$PROP_length];f++){f>0&&d[$$PROP_push](", ");var g;g=e[f];switch(typeof g){case "object":g=g?"object":"null";break;case "string":g=g;break;case "number":g=GLOBAL_String(g);break;case "boolean":g=g?"true":"false";break;case "function":g=(g=goog$debug$getFunctionName(g))?g:"[fn]";break;case "undefined":default:g=
typeof g;break}if(g[$$PROP_length]>40)g=g.substr(0,40)+"...";d[$$PROP_push](g)}c[$$PROP_push](b);d[$$PROP_push](")\n");try{d[$$PROP_push](goog$debug$getStacktraceHelper_(b.caller,c))}catch(h){d[$$PROP_push]("[exception trying to get caller]\n")}}else b?d[$$PROP_push]("[...long stack...]"):d[$$PROP_push]("[end]");return d[$$PROP_join]("")},goog$debug$getFunctionName=function(b){b=GLOBAL_String(b);if(!goog$debug$fnNameCache_[b]){var c=/function ([^\(]+)/[$$PROP_exec](b);if(c){c=c[1];goog$debug$fnNameCache_[b]=
c}else goog$debug$fnNameCache_[b]="[Anonymous]"}return goog$debug$fnNameCache_[b]},goog$debug$fnNameCache_={};var goog$debug$LogRecord=function(b,c,d,e,f){this.sequenceNumber_=typeof f=="number"?f:goog$debug$LogRecord$nextSequenceNumber_++;this.time_=e||goog$now();this.level_=b;this.msg_=c;this.loggerName_=d};goog$debug$LogRecord[$$PROP_prototype].exception_=null;goog$debug$LogRecord[$$PROP_prototype].exceptionText_=null;var goog$debug$LogRecord$nextSequenceNumber_=0;goog$debug$LogRecord[$$PROP_prototype].setException=function(b){this.exception_=b};
goog$debug$LogRecord[$$PROP_prototype].setExceptionText=function(b){this.exceptionText_=b};goog$debug$LogRecord[$$PROP_prototype].getLevel=function(){return this.level_};goog$debug$LogRecord[$$PROP_prototype].setLevel=function(b){this.level_=b};var goog$debug$Logger=function(b){this.name_=b;this.parent_=null;this.children_={};this.handlers_=[]};goog$debug$Logger[$$PROP_prototype].level_=null;var goog$debug$Logger$Level=function(b,c){this.name=b;SETPROP_value(this,c)};SETPROP_toString(goog$debug$Logger$Level[$$PROP_prototype],function(){return this[$$PROP_name]});new goog$debug$Logger$Level("OFF",Infinity);new goog$debug$Logger$Level("SHOUT",1200);new goog$debug$Logger$Level("SEVERE",1000);
var goog$debug$Logger$Level$WARNING=new goog$debug$Logger$Level("WARNING",900);new goog$debug$Logger$Level("INFO",800);var goog$debug$Logger$Level$CONFIG=new goog$debug$Logger$Level("CONFIG",700),goog$debug$Logger$Level$FINE=new goog$debug$Logger$Level("FINE",500);new goog$debug$Logger$Level("FINER",400);var goog$debug$Logger$Level$FINEST=new goog$debug$Logger$Level("FINEST",300);new goog$debug$Logger$Level("ALL",0);a=goog$debug$Logger[$$PROP_prototype];a.getParent=function(){return this.parent_};
a.setLevel=function(b){this.level_=b};a.getLevel=function(){return this.level_};a.isLoggable=function(b){if(this.level_)return b[$$PROP_value]>=this.level_[$$PROP_value];if(this.parent_)return this.parent_.isLoggable(b);return false};a.log=function(b,c,d){this.isLoggable(b)&&this.logRecord(this.getLogRecord(b,c,d))};a.getLogRecord=function(b,c,d){var e=new goog$debug$LogRecord(b,GLOBAL_String(c),this.name_);if(d){e.setException(d);e.setExceptionText(goog$debug$exposeException(d,arguments.callee.caller))}return e};
a.warning=function(b,c){this.log(goog$debug$Logger$Level$WARNING,b,c)};a.fine=function(b,c){this.log(goog$debug$Logger$Level$FINE,b,c)};a.finest=function(b,c){this.log(goog$debug$Logger$Level$FINEST,b,c)};a.logRecord=function(b){if(this.isLoggable(b.getLevel()))for(var c=this;c;){c.callPublish_(b);c=c.getParent()}};a.callPublish_=function(b){for(var c=0;c<this.handlers_[$$PROP_length];c++)this.handlers_[c](b)};a.setParent_=function(b){this.parent_=b};a.addChild_=function(b,c){this.children_[b]=c};
var goog$debug$LogManager$loggers_={},goog$debug$LogManager$rootLogger_=null,goog$debug$LogManager$getLogger=function(b){if(!goog$debug$LogManager$rootLogger_){goog$debug$LogManager$rootLogger_=new goog$debug$Logger("");goog$debug$LogManager$loggers_[""]=goog$debug$LogManager$rootLogger_;goog$debug$LogManager$rootLogger_.setLevel(goog$debug$Logger$Level$CONFIG)}return b in goog$debug$LogManager$loggers_?goog$debug$LogManager$loggers_[b]:goog$debug$LogManager$createLogger_(b)},goog$debug$LogManager$createLogger_=
function(b){var c=new goog$debug$Logger(b),d=b[$$PROP_split]("."),e=d[d[$$PROP_length]-1];d.length-=1;d=d[$$PROP_join](".");d=goog$debug$LogManager$getLogger(d);d.addChild_(e,c);c.setParent_(d);return goog$debug$LogManager$loggers_[b]=c};var goog$json$parse=function(b){b=GLOBAL_String(b);var c;c=b;if(/^\s*$/[$$PROP_test](c))c=false;else{var d=/\\["\\\/bfnrtu]/g,e=/"[^"\\\n\r\u2028\u2029\x00-\x08\x10-\x1f\x80-\x9f]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,f=/(?:^|:|,)(?:[\s\u2028\u2029]*\[)+/g,g=/^[\],:{}\s\u2028\u2029]*$/;c=g[$$PROP_test](c[$$PROP_replace](d,"@")[$$PROP_replace](e,"]")[$$PROP_replace](f,""))}if(c)try{return eval("("+b+")")}catch(h){}throw GLOBAL_Error("Invalid JSON string: "+b);};/\uffff/[$$PROP_test]("\uffff");var goog$net$XhrMonitor_=function(){if(goog$userAgent$GECKO){this.contextsToXhr_={};this.xhrToContexts_={};this.stack_=[]}};a=goog$net$XhrMonitor_[$$PROP_prototype];a.logger_=goog$debug$LogManager$getLogger("goog.net.xhrMonitor");a.pushContext=function(b){if(goog$userAgent$GECKO){var c=goog$isString(b)?b:goog$isObject(b)?goog$getHashCode(b):"";this.logger_.finest("Pushing context: "+b+" ("+c+")");this.stack_[$$PROP_push](c)}};
a.popContext=function(){if(goog$userAgent$GECKO){var b=this.stack_.pop();this.logger_.finest("Popping context: "+b);this.updateDependentContexts_(b)}};a.markXhrOpen=function(b){if(goog$userAgent$GECKO){b=goog$getHashCode(b);this.logger_.fine("Opening XHR : "+b);for(var c=0;c<this.stack_[$$PROP_length];c++){var d=this.stack_[c];this.addToMap_(this.contextsToXhr_,d,b);this.addToMap_(this.xhrToContexts_,b,d)}}};
a.markXhrClosed=function(b){if(goog$userAgent$GECKO){b=goog$getHashCode(b);this.logger_.fine("Closing XHR : "+b);delete this.xhrToContexts_[b];for(var c in this.contextsToXhr_){goog$array$remove(this.contextsToXhr_[c],b);this.contextsToXhr_[c][$$PROP_length]==0&&delete this.contextsToXhr_[c]}}};
a.updateDependentContexts_=function(b){var c=this.xhrToContexts_[b],d=this.contextsToXhr_[b];if(c&&d){this.logger_.finest("Updating dependent contexts");goog$array$forEach(c,function(e){goog$array$forEach(d,function(f){this.addToMap_(this.contextsToXhr_,e,f);this.addToMap_(this.xhrToContexts_,f,e)},this)},this)}};a.addToMap_=function(b,c,d){b[c]||(b[c]=[]);goog$array$contains(b[c],d)||b[c][$$PROP_push](d)};var goog$net$xhrMonitor=new goog$net$XhrMonitor_;var goog$net$XmlHttp=function(){return goog$net$XmlHttp$factory_()},goog$net$XmlHttp$factory_=null,goog$net$XmlHttp$optionsFactory_=null,goog$net$XmlHttp$cachedOptions_=null,goog$net$XmlHttp$defaultFactory_=function(){var b=goog$net$XmlHttp$getProgId_();return b?new ActiveXObject(b):new XMLHttpRequest},goog$net$XmlHttp$defaultOptionsFactory_=function(){var b=goog$net$XmlHttp$getProgId_(),c={};if(b){c[0]=true;c[1]=true}return c},JSCompiler_inline_optionsFactory_127=goog$net$XmlHttp$defaultOptionsFactory_;
goog$net$XmlHttp$factory_=goog$net$XmlHttp$defaultFactory_;goog$net$XmlHttp$optionsFactory_=JSCompiler_inline_optionsFactory_127;
var goog$net$XmlHttp$ieProgId_=goog$net$XmlHttp$cachedOptions_=null,goog$net$XmlHttp$getProgId_=function(){if(!goog$net$XmlHttp$ieProgId_&&typeof XMLHttpRequest=="undefined"&&typeof ActiveXObject!="undefined"){for(var b=["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"],c=0;c<b[$$PROP_length];c++){var d=b[c];try{new ActiveXObject(d);return goog$net$XmlHttp$ieProgId_=d}catch(e){}}throw GLOBAL_Error("Could not create ActiveXObject. ActiveX might be disabled, or MSXML might not be installed");
}return goog$net$XmlHttp$ieProgId_};var goog$net$XhrIo=function(){goog$events$EventTarget[$$PROP_call](this);this.headers=new goog$structs$Map};goog$inherits(goog$net$XhrIo,goog$events$EventTarget);goog$net$XhrIo[$$PROP_prototype].logger_=goog$debug$LogManager$getLogger("goog.net.XhrIo");
var goog$net$XhrIo$sendInstances_=[],goog$net$XhrIo$send=function(b,c,d,e,f,g){var h=new goog$net$XhrIo;goog$net$XhrIo$sendInstances_[$$PROP_push](h);c&&goog$events$listen(h,"complete",c);goog$events$listen(h,"ready",goog$partial(goog$net$XhrIo$cleanupSend_,h));g&&h.setTimeoutInterval(g);h[$$PROP_send](b,d,e,f)},goog$net$XhrIo$cleanup=function(){for(var b=goog$net$XhrIo$sendInstances_;b[$$PROP_length];)b.pop().dispose()},goog$net$XhrIo$protectEntryPoints=function(b,c){goog$net$XhrIo[$$PROP_prototype].onReadyStateChangeEntryPoint_=
b.protectEntryPoint(goog$net$XhrIo[$$PROP_prototype].onReadyStateChangeEntryPoint_,c)},goog$net$XhrIo$cleanupSend_=function(b){b.dispose();goog$array$remove(goog$net$XhrIo$sendInstances_,b)};a=goog$net$XhrIo[$$PROP_prototype];a.active_=false;a.xhr_=null;a.xhrOptions_=null;a.lastUri_="";a.lastMethod_="";a.lastErrorCode_=0;a.lastError_="";a.errorDispatched_=false;a.inSend_=false;a.inOpen_=false;a.inAbort_=false;a.timeoutInterval_=0;a.timeoutId_=null;
a.setTimeoutInterval=function(b){this.timeoutInterval_=GLOBAL_Math.max(0,b)};
a.send=function(b,c,d,e){if(this.active_)throw GLOBAL_Error("[goog.net.XhrIo] Object is active with another request");c=c||"GET";this.lastUri_=b;this.lastError_="";this.lastErrorCode_=0;this.lastMethod_=c;this.errorDispatched_=false;this.active_=true;this.xhr_=new goog$net$XmlHttp;this.xhrOptions_=goog$net$XmlHttp$cachedOptions_||(goog$net$XmlHttp$cachedOptions_=goog$net$XmlHttp$optionsFactory_());goog$net$xhrMonitor.markXhrOpen(this.xhr_);this.xhr_.onreadystatechange=goog$bind(this.onReadyStateChange_,
this);try{this.logger_.fine(this.formatMsg_("Opening Xhr"));this.inOpen_=true;this.xhr_.open(c,b,true);this.inOpen_=false}catch(f){this.logger_.fine(this.formatMsg_("Error opening Xhr: "+f[$$PROP_message]));this.error_(5,f);return}b=d||"";var g=this.headers.clone();e&&goog$structs$forEach(e,function(i,j){g.set(j,i)});c=="POST"&&!g.containsKey("Content-Type")&&g.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8");goog$structs$forEach(g,function(i,j){this.xhr_.setRequestHeader(j,i)},
this);try{if(this.timeoutId_){goog$Timer$defaultTimerObject.clearTimeout(this.timeoutId_);this.timeoutId_=null}if(this.timeoutInterval_>0){this.logger_.fine(this.formatMsg_("Will abort after "+this.timeoutInterval_+"ms if incomplete"));this.timeoutId_=goog$Timer$defaultTimerObject[$$PROP_setTimeout](goog$bind(this.timeout_,this),this.timeoutInterval_)}this.logger_.fine(this.formatMsg_("Sending request"));this.inSend_=true;this.xhr_[$$PROP_send](b);this.inSend_=false}catch(h){this.logger_.fine(this.formatMsg_("Send error: "+
h[$$PROP_message]));this.error_(5,h)}};a.dispatchEvent=function(b){if(this.xhr_){goog$net$xhrMonitor.pushContext(this.xhr_);try{goog$net$XhrIo.superClass_[$$PROP_dispatchEvent][$$PROP_call](this,b)}finally{goog$net$xhrMonitor.popContext()}}else goog$net$XhrIo.superClass_[$$PROP_dispatchEvent][$$PROP_call](this,b)};
a.timeout_=function(){if(typeof goog!="undefined")if(this.xhr_){this.lastError_="Timed out after "+this.timeoutInterval_+"ms, aborting";this.lastErrorCode_=8;this.logger_.fine(this.formatMsg_(this.lastError_));this[$$PROP_dispatchEvent]("timeout");this[$$PROP_abort](8)}};a.error_=function(b,c){this.active_=false;if(this.xhr_){this.inAbort_=true;this.xhr_[$$PROP_abort]();this.inAbort_=false}this.lastError_=c;this.lastErrorCode_=b;this.dispatchErrors_();this.cleanUpXhr_()};
a.dispatchErrors_=function(){if(!this.errorDispatched_){this.errorDispatched_=true;this[$$PROP_dispatchEvent]("complete");this[$$PROP_dispatchEvent]("error")}};a.abort=function(b){if(this.xhr_){this.logger_.fine(this.formatMsg_("Aborting"));this.active_=false;this.inAbort_=true;this.xhr_[$$PROP_abort]();this.inAbort_=false;this.lastErrorCode_=b||7;this[$$PROP_dispatchEvent]("complete");this[$$PROP_dispatchEvent]("abort");this.cleanUpXhr_()}};
a.disposeInternal=function(){if(this.xhr_){if(this.active_){this.active_=false;this.inAbort_=true;this.xhr_[$$PROP_abort]();this.inAbort_=false}this.cleanUpXhr_(true)}goog$net$XhrIo.superClass_.disposeInternal[$$PROP_call](this)};a.onReadyStateChange_=function(){!this.inOpen_&&!this.inSend_&&!this.inAbort_?this.onReadyStateChangeEntryPoint_():this.onReadyStateChangeHelper_()};a.onReadyStateChangeEntryPoint_=function(){this.onReadyStateChangeHelper_()};
a.onReadyStateChangeHelper_=function(){if(this.active_)if(typeof goog!="undefined")if(this.xhrOptions_[1]&&this.getReadyState()==4&&this.getStatus()==2)this.logger_.fine(this.formatMsg_("Local request error detected and ignored"));else if(this.inSend_&&this.getReadyState()==4)goog$Timer$defaultTimerObject[$$PROP_setTimeout](goog$bind(this.onReadyStateChange_,this),0);else{this[$$PROP_dispatchEvent]("readystatechange");if(this.isComplete()){this.logger_.fine(this.formatMsg_("Request complete"));this.active_=
false;if(this.isSuccess()){this[$$PROP_dispatchEvent]("complete");this[$$PROP_dispatchEvent]("success")}else{this.lastErrorCode_=6;this.lastError_=this.getStatusText()+" ["+this.getStatus()+"]";this.dispatchErrors_()}this.cleanUpXhr_()}}};
a.cleanUpXhr_=function(b){if(this.xhr_){this.xhr_.onreadystatechange=this.xhrOptions_[0]?goog$nullFunction:null;var c=this.xhr_;this.xhrOptions_=this.xhr_=null;if(this.timeoutId_){goog$Timer$defaultTimerObject.clearTimeout(this.timeoutId_);this.timeoutId_=null}if(!b){goog$net$xhrMonitor.pushContext(c);this[$$PROP_dispatchEvent]("ready");goog$net$xhrMonitor.popContext()}goog$net$xhrMonitor.markXhrClosed(c)}};a.isComplete=function(){return this.getReadyState()==4};
a.isSuccess=function(){switch(this.getStatus()){case 0:case 200:case 204:case 304:return true;default:return false}};a.getReadyState=function(){return this.xhr_?this.xhr_.readyState:0};a.getStatus=function(){try{return this.getReadyState()>2?this.xhr_.status:-1}catch(b){this.logger_.warning("Can not get status: "+b[$$PROP_message]);return-1}};a.getStatusText=function(){try{return this.getReadyState()>2?this.xhr_.statusText:""}catch(b){this.logger_.fine("Can not get status: "+b[$$PROP_message]);return""}};
a.getResponseText=function(){return this.xhr_?this.xhr_.responseText:""};a.getResponseJson=function(){return this.xhr_?goog$json$parse(this.xhr_.responseText):GLOBAL_undefined};a.getResponseHeader=function(b){return this.xhr_&&this.isComplete()?this.xhr_.getResponseHeader(b):GLOBAL_undefined};a.formatMsg_=function(b){return b+" ["+this.lastMethod_+" "+this.lastUri_+" "+this.getStatus()+"]"};var goog$net$XhrLite=goog$net$XhrIo;goog$net$XhrLite.send=goog$net$XhrIo$send;goog$net$XhrLite.cleanup=goog$net$XhrIo$cleanup;goog$net$XhrLite.protectEntryPoints=goog$net$XhrIo$protectEntryPoints;goog$net$XhrLite.cleanupSend_=goog$net$XhrIo$cleanupSend_;goog$net$XhrLite.CONTENT_TYPE_HEADER="Content-Type";goog$net$XhrLite.FORM_CONTENT_TYPE="application/x-www-form-urlencoded;charset=utf-8";goog$net$XhrLite.sendInstances_=goog$net$XhrIo$sendInstances_;var goog$uri$utils$splitRe_=/^(?:([^:\/?#]+):)?(?:\/\/(?:([^\/?#]*)@)?([^\/?#:@]*)(?::([0-9]+))?)?([^?#]+)?(?:\?([^#]*))?(?:#(.*))?$/,goog$uri$utils$split=function(b){return b.match(goog$uri$utils$splitRe_)};var goog$Uri=function(b,c){var d;if(b instanceof goog$Uri){this.setIgnoreCase(c==null?b.getIgnoreCase():c);this.setScheme(b.getScheme());this.setUserInfo(b.getUserInfo());this.setDomain(b.getDomain());this.setPort(b.getPort());this.setPath(b.getPath());this.setQueryData(b.getQueryData().clone());this.setFragment(b.getFragment())}else if(b&&(d=goog$uri$utils$split(GLOBAL_String(b)))){this.setIgnoreCase(!!c);this.setScheme(d[1]||"",true);this.setUserInfo(d[2]||"",true);this.setDomain(d[3]||"",true);
this.setPort(d[4]);this.setPath(d[5]||"",true);this.setQuery(d[6]||"",true);this.setFragment(d[7]||"",true)}else{this.setIgnoreCase(!!c);this.queryData_=new goog$Uri$QueryData(null,this,this.ignoreCase_)}};a=goog$Uri[$$PROP_prototype];a.scheme_="";a.userInfo_="";a.domain_="";a.port_=null;a.path_="";a.fragment_="";a.isReadOnly_=false;a.ignoreCase_=false;
SETPROP_toString(a,function(){if(this.cachedToString_)return this.cachedToString_;var b=[];this.scheme_&&b[$$PROP_push](goog$Uri$encodeSpecialChars_(this.scheme_,goog$Uri$reDisallowedInSchemeOrUserInfo_),":");if(this.domain_){b[$$PROP_push]("//");this.userInfo_&&b[$$PROP_push](goog$Uri$encodeSpecialChars_(this.userInfo_,goog$Uri$reDisallowedInSchemeOrUserInfo_),"@");b[$$PROP_push](goog$Uri$encodeString_(this.domain_));this.port_!=null&&b[$$PROP_push](":",GLOBAL_String(this.getPort()))}this.path_&&
b[$$PROP_push](goog$Uri$encodeSpecialChars_(this.path_,goog$Uri$reDisallowedInPath_));var c=GLOBAL_String(this.queryData_);c&&b[$$PROP_push]("?",c);this.fragment_&&b[$$PROP_push]("#",goog$Uri$encodeSpecialChars_(this.fragment_,goog$Uri$reDisallowedInFragment_));return this.cachedToString_=b[$$PROP_join]("")});
a.clone=function(){var b;b=this.scheme_;var c=this.userInfo_,d=this.domain_,e=this.port_,f=this.path_,g=this.queryData_.clone(),h=this.fragment_,i=new goog$Uri(null,this.ignoreCase_);b&&i.setScheme(b);c&&i.setUserInfo(c);d&&i.setDomain(d);e&&i.setPort(e);f&&i.setPath(f);g&&i.setQueryData(g);h&&i.setFragment(h);return b=i};a.getScheme=function(){return this.scheme_};
a.setScheme=function(b,c){this.enforceReadOnly();delete this.cachedToString_;if(this.scheme_=c?b?GLOBAL_decodeURIComponent(b):"":b)this.scheme_=this.scheme_[$$PROP_replace](/:$/,"");return this};a.getUserInfo=function(){return this.userInfo_};a.setUserInfo=function(b,c){this.enforceReadOnly();delete this.cachedToString_;this.userInfo_=c?b?GLOBAL_decodeURIComponent(b):"":b;return this};a.getDomain=function(){return this.domain_};
a.setDomain=function(b,c){this.enforceReadOnly();delete this.cachedToString_;this.domain_=c?b?GLOBAL_decodeURIComponent(b):"":b;return this};a.getPort=function(){return this.port_};a.setPort=function(b){this.enforceReadOnly();delete this.cachedToString_;if(b){b=Number(b);if(isNaN(b)||b<0)throw GLOBAL_Error("Bad port number "+b);this.port_=b}else this.port_=null;return this};a.getPath=function(){return this.path_};
a.setPath=function(b,c){this.enforceReadOnly();delete this.cachedToString_;this.path_=c?b?GLOBAL_decodeURIComponent(b):"":b;return this};a.setQueryData=function(b,c){this.enforceReadOnly();delete this.cachedToString_;if(b instanceof goog$Uri$QueryData){this.queryData_=b;this.queryData_.uri_=this;this.queryData_.setIgnoreCase(this.ignoreCase_)}else{c||(b=goog$Uri$encodeSpecialChars_(b,goog$Uri$reDisallowedInQuery_));this.queryData_=new goog$Uri$QueryData(b,this,this.ignoreCase_)}return this};
a.setQuery=function(b,c){return this.setQueryData(b,c)};a.getQueryData=function(){return this.queryData_};a.getFragment=function(){return this.fragment_};a.setFragment=function(b,c){this.enforceReadOnly();delete this.cachedToString_;this.fragment_=c?b?GLOBAL_decodeURIComponent(b):"":b;return this};a.removeParameter=function(b){this.enforceReadOnly();this.queryData_[$$PROP_remove](b);return this};
a.enforceReadOnly=function(){if(this.isReadOnly_)throw GLOBAL_Error("Tried to modify a read-only Uri");};a.setIgnoreCase=function(b){this.ignoreCase_=b;this.queryData_&&this.queryData_.setIgnoreCase(b)};a.getIgnoreCase=function(){return this.ignoreCase_};
var goog$Uri$encodeString_=function(b){if(goog$isString(b))return GLOBAL_encodeURIComponent(b);return null},goog$Uri$encodeSpecialRegExp_=/^[a-zA-Z0-9\-_.!~*'():\/;?]*$/,goog$Uri$encodeSpecialChars_=function(b,c){var d=null;if(goog$isString(b)){d=b;goog$Uri$encodeSpecialRegExp_[$$PROP_test](d)||(d=encodeURI(b));if(d.search(c)>=0)d=d[$$PROP_replace](c,goog$Uri$encodeChar_)}return d},goog$Uri$encodeChar_=function(b){b=b.charCodeAt(0);return"%"+(b>>4&15)[$$PROP_toString](16)+(b&15)[$$PROP_toString](16)},
goog$Uri$reDisallowedInSchemeOrUserInfo_=/[#\/\?@]/g,goog$Uri$reDisallowedInPath_=/[\#\?]/g,goog$Uri$reDisallowedInQuery_=/[\#\?@]/g,goog$Uri$reDisallowedInFragment_=/#/g,goog$Uri$QueryData=function(b,c,d){this.encodedQuery_=b||null;this.uri_=c||null;this.ignoreCase_=!!d};a=goog$Uri$QueryData[$$PROP_prototype];
a.ensureKeyMapInitialized_=function(){if(!this.keyMap_){this.keyMap_=new goog$structs$Map;if(this.encodedQuery_)for(var b=this.encodedQuery_[$$PROP_split]("&"),c=0;c<b[$$PROP_length];c++){var d=b[c][$$PROP_indexOf]("="),e=null,f=null;if(d>=0){e=b[c][$$PROP_substring](0,d);f=b[c][$$PROP_substring](d+1)}else e=b[c];e=goog$string$urlDecode(e);e=this.getKeyName_(e);this.add(e,f?goog$string$urlDecode(f):"")}}};a.keyMap_=null;a.count_=null;
a.add=function(b,c){this.ensureKeyMapInitialized_();this.invalidateCache_();b=this.getKeyName_(b);if(this.containsKey(b)){var d=this.keyMap_.get(b);goog$isArray(d)?d[$$PROP_push](c):this.keyMap_.set(b,[d,c])}else this.keyMap_.set(b,c);this.count_++;return this};a.remove=function(b){this.ensureKeyMapInitialized_();b=this.getKeyName_(b);if(this.keyMap_.containsKey(b)){this.invalidateCache_();var c=this.keyMap_.get(b);if(goog$isArray(c))this.count_-=c[$$PROP_length];else this.count_--;return this.keyMap_[$$PROP_remove](b)}return false};
a.clear=function(){this.invalidateCache_();this.keyMap_&&this.keyMap_.clear();this.count_=0};a.containsKey=function(b){this.ensureKeyMapInitialized_();b=this.getKeyName_(b);return this.keyMap_.containsKey(b)};a.getKeys=function(){this.ensureKeyMapInitialized_();for(var b=this.keyMap_.getValues(),c=this.keyMap_.getKeys(),d=[],e=0;e<c[$$PROP_length];e++){var f=b[e];if(goog$isArray(f))for(var g=0;g<f[$$PROP_length];g++)d[$$PROP_push](c[e]);else d[$$PROP_push](c[e])}return d};
a.getValues=function(b){this.ensureKeyMapInitialized_();if(b){b=this.getKeyName_(b);if(this.containsKey(b)){var c=this.keyMap_.get(b);if(goog$isArray(c))return c;else{b=[];b[$$PROP_push](c)}}else b=[]}else{c=this.keyMap_.getValues();b=[];for(var d=0;d<c[$$PROP_length];d++){var e=c[d];goog$isArray(e)?goog$array$extend(b,e):b[$$PROP_push](e)}}return b};
a.set=function(b,c){this.ensureKeyMapInitialized_();this.invalidateCache_();b=this.getKeyName_(b);if(this.containsKey(b)){var d=this.keyMap_.get(b);if(goog$isArray(d))this.count_-=d[$$PROP_length];else this.count_--}this.keyMap_.set(b,c);this.count_++;return this};a.get=function(b,c){this.ensureKeyMapInitialized_();b=this.getKeyName_(b);if(this.containsKey(b)){b=this.keyMap_.get(b);return goog$isArray(b)?b[0]:b}else return c};
SETPROP_toString(a,function(){if(this.encodedQuery_)return this.encodedQuery_;if(!this.keyMap_)return"";for(var b=[],c=0,d=this.keyMap_.getKeys(),e=0;e<d[$$PROP_length];e++){var f=d[e],g=goog$string$urlEncode(f);f=this.keyMap_.get(f);if(goog$isArray(f))for(var h=0;h<f[$$PROP_length];h++){c>0&&b[$$PROP_push]("&");b[$$PROP_push](g,"=",goog$string$urlEncode(f[h]));c++}else{c>0&&b[$$PROP_push]("&");b[$$PROP_push](g,"=",goog$string$urlEncode(f));c++}}return this.encodedQuery_=b[$$PROP_join]("")});
a.invalidateCache_=function(){delete this.decodedQuery_;delete this.encodedQuery_;this.uri_&&delete this.uri_.cachedToString_};a.clone=function(){var b=new goog$Uri$QueryData;if(this.decodedQuery_)b.decodedQuery_=this.decodedQuery_;if(this.encodedQuery_)b.encodedQuery_=this.encodedQuery_;if(this.keyMap_)b.keyMap_=this.keyMap_.clone();return b};a.getKeyName_=function(b){b=GLOBAL_String(b);if(this.ignoreCase_)b=b[$$PROP_toLowerCase]();return b};
a.setIgnoreCase=function(b){var c=b&&!this.ignoreCase_;if(c){this.ensureKeyMapInitialized_();this.invalidateCache_();goog$structs$forEach(this.keyMap_,function(d,e){var f=e[$$PROP_toLowerCase]();if(e!=f){this[$$PROP_remove](e);this.add(f,d)}},this)}this.ignoreCase_=b};a.extend=function(){for(var b=0;b<arguments[$$PROP_length];b++){var c=arguments[b];goog$structs$forEach(c,function(d,e){this.add(e,d)},this)}};var GCJ={},JSCompiler_inline_opt_objectToExportTo_178=GLOBAL_undefined,JSCompiler_inline_parts_179="GCJ"[$$PROP_split]("."),JSCompiler_inline_cur_180=JSCompiler_inline_opt_objectToExportTo_178||goog$global;!(JSCompiler_inline_parts_179[0]in JSCompiler_inline_cur_180)&&JSCompiler_inline_cur_180.execScript&&JSCompiler_inline_cur_180.execScript("var "+JSCompiler_inline_parts_179[0]);
for(var JSCompiler_inline_part_181;JSCompiler_inline_parts_179[$$PROP_length]&&(JSCompiler_inline_part_181=JSCompiler_inline_parts_179.shift());)if(!JSCompiler_inline_parts_179[$$PROP_length]&&GCJ!==GLOBAL_undefined)JSCompiler_inline_cur_180[JSCompiler_inline_part_181]=GCJ;else JSCompiler_inline_cur_180=JSCompiler_inline_cur_180[JSCompiler_inline_part_181]?JSCompiler_inline_cur_180[JSCompiler_inline_part_181]:(JSCompiler_inline_cur_180[JSCompiler_inline_part_181]={});
GCJ.MAX_CONSECUTIVE_POLLING_FAILURES=15;GCJ.PLEASE_TRY_AGAIN_MESSAGE='Please try again. If the problem persists, <a href="mailto:programmingcontest-feedback@google.com">contact us</a>.';GCJ.e=function(b){return goog$dom$$(b)};GCJ.createElementUnder=function(b,c,d){var e=[b,d];goog$array$extend(e,goog$array$slice(arguments,3));e=goog$dom$$dom[$$PROP_apply](this,e);c[$$PROP_appendChild](e);return e};
GCJ.listenExclusively=function(b,c,d){if(goog$isString(b))b=goog$dom$$(b);goog$events$removeAll(b,c);goog$events$listen(b,c,d)};GCJ.formatSecondsTime=function(b){if(b<0)return"";if(b==0)return"0";var c=GLOBAL_Math[$$PROP_floor](b/60);b=b-c*60;b=":"+(b<10?"0":"")+b;if(c<60)return""+c+b;var d=GLOBAL_Math[$$PROP_floor](c/60);c-=d*60;return""+d+":"+(c<10?"0":"")+c+b};GCJ.IO_TYPES=["-small","-large"];GCJ.IO_TIMELIMITS=[4,8];
GCJ.alternateTableRowClasses=function(b){b=goog$dom$getNextElementNode_(b[$$PROP_firstChild],true);for(var c=true;b;){if(c)if(b.className)b.className+=" oddrow";else SETPROP_className(b,"oddrow");b=goog$dom$getNextElementNode_(b.nextSibling,true);c=!c}};GCJ.findPosition=function(b){var c=0,d=0;if(b.offsetParent){c=b.offsetLeft;for(d=b.offsetTop;b=b.offsetParent;){c+=b.offsetLeft;d+=b.offsetTop}}return[c,d]};GCJ.grayOutTextarea=function(b){b[$$PROP_style].color="gray";SETPROP_value(b,b.defaultValue)};
GCJ.clearTextareaIfGrayed=function(b){if(b[$$PROP_style].color=="gray"){b[$$PROP_style].color="";SETPROP_value(b,"")}};GCJ.makeInvisible=function(b){b[$$PROP_style].visibility="hidden"};GCJ.makeVisible=function(b){b[$$PROP_style].visibility="visible"};GCJ.changeDisplayMode=function(b,c){if(goog$isString(b))b=goog$dom$$(b);b&&goog$style$setStyle(b,"display",c)};GCJ.show=function(b){GCJ.changeDisplayMode(b,"block")};GCJ.hide=function(b){GCJ.changeDisplayMode(b,"none")};
GCJ.displayElementsByClass=function(b,c){b=goog$dom$$$(null,b);for(var d=0;d<b[$$PROP_length];++d)GCJ.changeDisplayMode(b[d],c)};GCJ.toggleVisibility=function(b,c,d,e){b=GCJ.e(b);if(!b[$$PROP_style].display||b[$$PROP_style].display=="none"){GCJ.show(b);b="open"}else{GCJ.hide(b);b="close"}if(c){c=GCJ.e(c);c.src=b=="open"?d:e}};GCJ.addEvent=function(b,c,d){if(b[$$PROP_addEventListener])b[$$PROP_addEventListener](c,d,false);else b.attachEvent&&b.attachEvent("on"+c,d)};
GCJ.paramsToUrl_=function(b,c){return b+"?"+GCJ.urlEscapeParams_(c)};GCJ.getCsrfToken=function(b){if(b)if(b=goog$dom$$("csrf-form-"+b))return b.csrfmiddlewaretoken[$$PROP_value];return""};GCJ.urlEscapeParams_=function(b){var c=[];for(var d in b)c[$$PROP_push](GLOBAL_encodeURIComponent(d)+"="+GLOBAL_encodeURIComponent(b[d]));return c[$$PROP_join]("&")};
GCJ.ajaxRequest=function(b,c,d,e){var f;e=e||"GET";c.csrfmiddlewaretoken=GCJ.getCsrfToken(c.cmd);if(e=="GET")b=GCJ.paramsToUrl_(b,c);else{b=b;f=GCJ.urlEscapeParams_(c)}goog$net$XhrLite[$$PROP_send](b,function(g){var h=g[$$PROP_target];g=h.getResponseText();h=h.getStatus();d(g,h)},e,f)};
GCJ.ajaxJsonRequest=function(b,c,d,e){var f;e=e||"GET";c.csrfmiddlewaretoken=GCJ.getCsrfToken(c.cmd);if(e=="GET")b=GCJ.paramsToUrl_(b,c);else{b=b;f=GCJ.urlEscapeParams_(c)}goog$net$XhrLite[$$PROP_send](b,function(g){g=g[$$PROP_target];var h=g.getStatus(),i="";if(h==200)try{i=g.getResponseJson()}catch(j){h=500}else i=g.getResponseText();d(i,h)},e,f)};GCJ.ajaxForward=function(b,c){c.csrfmiddlewaretoken=GCJ.getCsrfToken(c.cmd);GLOBAL_window.location=GCJ.paramsToUrl_(b,c)};GCJ.timerDeadlines={};
GCJ.timerCallbacks={};GCJ.startTimer=function(b,c,d){GCJ.timerDeadlines[b]=new Date((new Date)[$$PROP_getTime]()+c);GCJ.timerCallbacks[b]=d?d:function(){};GCJ.updateTimeLeft_(b)};GCJ.stopTimer=function(b){delete GCJ.timerDeadlines[b];delete GCJ.timerCallbacks[b]};GCJ.updateTimerDuration=function(b,c,d){if(c<0)GCJ.stopTimer(b);else{c=new Date((new Date)[$$PROP_getTime]()+c);var e=GCJ.timerDeadlines[b];if(e)d&&c>e||(GCJ.timerDeadlines[b]=c)}};
GCJ.getTimeLeft=function(b){return(b=GCJ.timerDeadlines[b])?b[$$PROP_getTime]()-(new Date)[$$PROP_getTime]():0};GCJ.updateTimeLeft_=function(b){var c=-1;if(c=GCJ.timerDeadlines[b]){c=c[$$PROP_getTime]()-(new Date)[$$PROP_getTime]();if(GCJ.e(b)!=null)if(c<=0){SETPROP_innerHTML(GCJ.e(b),"Time expired");GCJ.timerCallbacks[b]();GCJ.stopTimer(b)}else{SETPROP_innerHTML(GCJ.e(b),GCJ.formatTime(c));goog$global[$$PROP_setTimeout](goog$partial(GCJ.updateTimeLeft_,b),1000)}}};
GCJ.formatTime=function(b){var c=b/1000,d=GLOBAL_Math[$$PROP_floor](c)%60;b=GLOBAL_Math[$$PROP_floor](c/60)%60;c=GLOBAL_Math[$$PROP_floor](c/60/60);var e=GLOBAL_Math[$$PROP_floor](c/24);c%=24;d=(d<10?"0":"")+d;var f="";if(e==0&&c==0&&b<=10)f=b+":"+d;else{if(e>0)f+=e+" day"+(e==1?" ":"s ");if(c>0)f+=c+"hr ";if(b>0)f+=b+"min"}return f};GCJ.initHistory=function(){GCJ.history=new goog$History;goog$events$listen(GCJ.history,"navigate",GCJ.historyNavCallback)};GCJ.historyNavCallback=function(){};
GCJ.changeHistoryState=function(b,c){var d=GCJ.history.getToken();d=new goog$Uri$QueryData(d);d.set(b,""+c);GCJ.history.setToken(d[$$PROP_toString]())};GCJ.REFRESH_INTERVAL=1800000;GCJ.MAX_NAME_LENGTH=20;GCJ.timeDelta=0;GCJ.contests=[];GCJ.enterContest=function(b){GLOBAL_window.location=GCJ.base_url+"/dashboard?c="+b};
GCJ.addCurrentContest=function(b){var c=b.practiceWait?b.practiceWait*60:3600,d=-b.secsToEnd;if(b.secsToEnd>0)GCJ.timeDelta=GLOBAL_Math.min(GCJ.timeDelta,b.secsToEnd);else if(d<c)GCJ.timeDelta=GLOBAL_Math.min(GCJ.timeDelta,c-d);else if(3600>d)GCJ.timeDelta=GLOBAL_Math.min(GCJ.timeDelta,3600-d);var e=goog$dom$$("index-current-contest-tbody"),f=GCJ.createElementUnder("tr",e,{"class":"highlightrow"}),g;g=b.qualified?goog$dom$$dom("span",{},goog$dom$$dom("br"),goog$dom$$dom("a",{href:GCJ.base_url+"/dashboard?c="+
b.id,style:"font-size:120%;"},b[$$PROP_name]),goog$dom$$dom("br"),goog$dom$$dom("span",{style:"font-size:30%;color:#ffffe6"},".")):goog$dom$$dom("a",{href:GCJ.base_url+"/dashboard?c="+b.id},b[$$PROP_name]);e="Time remaining:";var h=b.secsToEnd;if(b.secsToEnd<=0)if(d<c){e="Practice open in:";h=c-d}else{e="Open to practice.";h=-1}if(b.qualified){d=GCJ.createElementUnder("td",f,{"class":"index-contest-name-td"},goog$dom$$dom("span",{"class":"bold"},g),goog$dom$$dom("br"),goog$dom$$dom("span",{style:"font-size:30%;color:#ffffe6"},
"."),e+" ");if(h>0){c="index-contest-end-timer_"+b.id;GCJ.createElementUnder("span",d,{id:c});GCJ.startTimer(c,h*1000)}}else d=GCJ.createElementUnder("td",f,{"class":"index-contest-name-td"},goog$dom$$dom("span",{"class":"bold"},g),goog$dom$$dom("br"),goog$dom$$dom("span",{"class":"index-contest-duration"},"Duration: ",GCJ.formatTime(b.duration*60*1000)));GCJ.createElementUnder("span",d,{style:"padding: 0 0.3em 0 0.3em; color: gray"}," | ");c=GCJ.createElementUnder("a",d,{href:GCJ.base_url+"/scoreboard?c="+
b.id,target:"new","class":"index-scores-link"});SETPROP_innerHTML(c,"scores&raquo;");f=GCJ.createElementUnder("td",f,{"class":"index-contest-date-td"});if(b.qualified){e=GCJ.createElementUnder("input",f,{src:GCJ.base_url+"/static/enter-button.gif","class":"index-big-button",type:"image",id:"index-enter-button",alt:"Enter the contest."});goog$events$listen(e,"click",goog$partial(GCJ.enterContest,b.id))}else{GCJ.createElementUnder("span",f,{"class":"gray"},e);GCJ.createElementUnder("br",f);if(h>0){c=
"index-contest-end-timer_"+b.id;GCJ.createElementUnder("span",f,{id:c});GCJ.startTimer(c,h*1000)}}};
GCJ.addUpcomingContest=function(b){if(b.secsToStart>86400)GCJ.timeDelta=GLOBAL_Math.min(GCJ.timeDelta,b.secsToStart-86400);else if(b.secsToStart>0)GCJ.timeDelta=GLOBAL_Math.min(GCJ.timeDelta,b.secsToStart);var c=goog$dom$$("index-upcoming-contest-tbody");c=GCJ.createElementUnder("tr",c);GCJ.createElementUnder("td",c,{"class":"index-contest-name-td"},goog$dom$$dom("span",{"class":"bold"},b[$$PROP_name]),goog$dom$$dom("br"),goog$dom$$dom("span",{"class":"index-contest-duration"},"Duration: ",GCJ.formatTime(b.duration*
60*1000)));c=GCJ.createElementUnder("td",c,{"class":"index-contest-date-td"});if(b.secsToStart>86400){GCJ.createElementUnder("span",c,{"class":"bold"},b.startDate);GCJ.createElementUnder("br",c);GCJ.createElementUnder("a",c,{href:b.timeAndDateUrl},b.startTime)}else{GCJ.createElementUnder("span",c,{"class":"gray"},"Contest starts in");GCJ.createElementUnder("br",c);var d="index-contest-start-timer_"+b.id;GCJ.createElementUnder("span",c,{id:d});GCJ.startTimer(d,b.secsToStart*1000)}};
GCJ.addPastContest=function(b){var c=-b.secsToEnd,d=b.practiceWait?b.practiceWait*60:3600;if(c<d)GCJ.timeDelta=GLOBAL_Math.min(GCJ.timeDelta,d-c);var e=goog$dom$$("index-past-contest-tbody"),f=goog$dom$$dom("tr"),g=goog$dom$getNextElementNode_(e[$$PROP_firstChild],true);g?goog$dom$insertSiblingBefore(f,g):goog$dom$appendChild(e,f);e=GCJ.createElementUnder("td",f,{"class":"index-past-name-td"});c<d?GCJ.createElementUnder("span",e,{},b[$$PROP_name]):GCJ.createElementUnder("a",e,{href:GCJ.base_url+"/dashboard?c="+
b.id},b[$$PROP_name]);GCJ.createElementUnder("br",e);GCJ.createElementUnder("span",e,{"class":"index-past-duration"},"Duration: ",GCJ.formatTime(b.duration*60*1000));f=GCJ.createElementUnder("td",f,{"class":"index-past-date-td"});if(c<d){b="index-time-left_"+b.id;GCJ.createElementUnder("span",f,{},"open in",goog$dom$$dom("br"),goog$dom$$dom("span",{id:b}));GCJ.startTimer(b,(d-c)*1000)}else{GCJ.createElementUnder("span",f,{"class":"index-past-date"},b.startDate);GCJ.createElementUnder("br",f);c=GCJ.createElementUnder("a",
f,{href:GCJ.base_url+"/scoreboard?c="+b.id,target:"new","class":"index-scores-link"});SETPROP_innerHTML(c,"scores&raquo")}};GCJ.clearTables=function(){var b=goog$dom$$("index-enter-button");b&&goog$events$removeAll(b);goog$dom$removeChildren(goog$dom$$("index-current-contest-tbody"));goog$dom$removeChildren(goog$dom$$("index-upcoming-contest-tbody"));goog$dom$removeChildren(goog$dom$$("index-past-contest-tbody"))};
GCJ.renderContests=function(){GCJ.clearTables();for(var b=0,c=0,d=0,e=0;e<GCJ.contests[$$PROP_length];++e){var f=GCJ.contests[e];f.secsToStart-=GCJ.timeDelta;f.secsToEnd-=GCJ.timeDelta}GCJ.timeDelta=GCJ.REFRESH_INTERVAL;for(e=0;e<GCJ.contests[$$PROP_length];++e){f=GCJ.contests[e];if(f.secsToStart<=0&&f.secsToEnd>-3600){++b;GCJ.addCurrentContest(f)}else if(f.secsToEnd<=0){++d;GCJ.addPastContest(f)}else{++c;GCJ.addUpcomingContest(f)}}SETPROP_innerHTML(goog$dom$$("index-current-contest-span"),"Current Contest"+
(b==1?"":"s"));GCJ.changeDisplayMode("index-current-contest-div",b>0?"block":"none");SETPROP_innerHTML(goog$dom$$("index-upcoming-contest-span"),"Upcoming Contest"+(c==1?"":"s"));GCJ.changeDisplayMode("index-upcoming-contest-div",c>0?"block":"none");SETPROP_innerHTML(goog$dom$$("index-past-contest-span"),"Previous Contest"+(d==1?"":"s"));GCJ.changeDisplayMode("index-past-contest-div",d>0?"block":"none");c=goog$dom$$("index-upcoming-contest-tbody");GCJ.alternateTableRowClasses(c);if(b==0)if(b=goog$dom$getNextElementNode_(c[$$PROP_firstChild],
true))SETPROP_className(b,"highlightrow");GLOBAL_window[$$PROP_setTimeout](GCJ.renderContests,GCJ.timeDelta*1000)};
GCJ.fillSiteRegistrationDiv=function(){var b=goog$dom$$("index-register-div-inner");goog$dom$removeChildren(b);var c=function(){var g=["span",b,{"class":"index-bold-contest-name"}];goog$array$extend(g,arguments);GCJ.createElementUnder[$$PROP_apply](null,g)},d=function(g,h){GCJ.createElementUnder("a",b,{href:GCJ.base_url+h},g)},e=function(g,h,i){g=GCJ.createElementUnder("input",b,{src:GCJ.base_url+"/static/"+g,"class":"index-big-button",type:"image",alt:h});goog$events$listen(g,"click",function(){GLOBAL_window.location=
GCJ.base_url+i})},f=function(){return goog$dom$$dom("br")};if(GCJ.tournamentName)if(GCJ.registeredForTournament){c("You have registered for",f(),GCJ.tournamentName,f(),f());d("Update your profile\u00bb","/registration?cmd=Update")}else if(GCJ.tournamentRegistrationOpen){c("Register for",f(),GCJ.tournamentName,f());e("register-button.gif","Register for "+GCJ.tournamentName,"/registration")}else GCJ.registeredForSite?c("Registration for",f(),GCJ.tournamentName,f(),"is closed",f(),f()):c("Registration for",
f(),GCJ.tournamentName,f(),"is closed");else if(GCJ.registeredForSite){e=goog$string$truncate(GCJ.userNickname,GCJ.MAX_NAME_LENGTH);c("Welcome back, ",f(),e,f(),f());d("Update your profile\u00bb","/registration?cmd=Update")}else return false;return true};
GCJ.updateRegisterDiv=function(){var b=new Date;b={cmd:"GetInitialValues",zx:b[$$PROP_getTime]()};GCJ.ajaxJsonRequest(GCJ.base_url+"/do",b,function(c,d){if(d==200){GCJ.registeredForSite=c.registeredForSite;GCJ.contests=c.contests;GCJ.secsToRegClose=c.secsToRegClose;GCJ.tournamentName=c.tournamentName;GCJ.registeredForTournament=c.registeredForTournament;GCJ.tournamentRegistrationOpen=c.tournamentRegistrationOpen;GCJ.onInitialValuesReady()}})};
GCJ.onInitialValuesReady=function(){GCJ.hide("index-loading-message");GCJ.fillSiteRegistrationDiv()?GCJ.show("index-register-div"):GCJ.hide("index-register-div");GCJ.timeDelta=0;GCJ.renderContests();GCJ.secsToRegClose>0&&GLOBAL_window[$$PROP_setTimeout](goog$partial(GCJ.updateRegisterDiv),GCJ.secsToRegClose*1000+1000);GLOBAL_window[$$PROP_setTimeout]('window.location = "";',GCJ.REFRESH_INTERVAL);goog$events$listen(GLOBAL_window,"unload",function(){goog$events$removeAll()})};
GCJ.main=function(){GCJ.initFrontpageData();GCJ.updateRegisterDiv()};
