var a,k=k||{};k.scope={};k.ASSUME_ES5=!1;k.ASSUME_NO_NATIVE_MAP=!1;k.ASSUME_NO_NATIVE_SET=!1;k.SIMPLE_FROUND_POLYFILL=!1;k.objectCreate=k.ASSUME_ES5||"function"==typeof Object.create?Object.create:function(b){var c=function(){};c.prototype=b;return new c};k.underscoreProtoCanBeSet=function(){var b={a:!0},c={};try{return c.__proto__=b,c.a}catch(d){}return!1};
k.setPrototypeOf="function"==typeof Object.setPrototypeOf?Object.setPrototypeOf:k.underscoreProtoCanBeSet()?function(b,c){b.__proto__=c;if(b.__proto__!==c)throw new TypeError(b+" is not extensible");return b}:null;
k.inherits=function(b,c){b.prototype=k.objectCreate(c.prototype);b.prototype.constructor=b;if(k.setPrototypeOf){var d=k.setPrototypeOf;d(b,c)}else for(d in c)if("prototype"!=d)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(c,d);e&&Object.defineProperty(b,d,e)}else b[d]=c[d];b.superClass_=c.prototype};k.findInternal=function(b,c,d){b instanceof String&&(b=String(b));for(var e=b.length,f=0;f<e;f++){var g=b[f];if(c.call(d,g,f,b))return{i:f,v:g}}return{i:-1,v:void 0}};
k.defineProperty=k.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(b,c,d){b!=Array.prototype&&b!=Object.prototype&&(b[c]=d.value)};k.getGlobal=function(b){return"undefined"!=typeof window&&window===b?b:"undefined"!=typeof global&&null!=global?global:b};k.global=k.getGlobal(this);
k.polyfill=function(b,c){if(c){var d=k.global;b=b.split(".");for(var e=0;e<b.length-1;e++){var f=b[e];f in d||(d[f]={});d=d[f]}b=b[b.length-1];e=d[b];c=c(e);c!=e&&null!=c&&k.defineProperty(d,b,{configurable:!0,writable:!0,value:c})}};k.checkStringArgs=function(b){if(null==b)throw new TypeError("The 'this' value for String.prototype.repeat must not be null or undefined");return b+""};
k.polyfill("String.prototype.repeat",function(b){return b?b:function(c){var d=k.checkStringArgs(this);if(0>c||1342177279<c)throw new RangeError("Invalid count value");c|=0;for(var e="";c;)if(c&1&&(e+=d),c>>>=1)d+=d;return e}});var p=p||{};p.global=this||self;p.isDef=function(b){return void 0!==b};p.isString=function(b){return"string"==typeof b};p.isBoolean=function(b){return"boolean"==typeof b};p.isNumber=function(b){return"number"==typeof b};
p.exportPath_=function(b,c,d){b=b.split(".");d=d||p.global;b[0]in d||"undefined"==typeof d.execScript||d.execScript("var "+b[0]);for(var e;b.length&&(e=b.shift());)b.length||void 0===c?d=d[e]&&d[e]!==Object.prototype[e]?d[e]:d[e]={}:d[e]=c};p.define=function(b,c){return c};p.FEATURESET_YEAR=2012;p.DEBUG=!0;p.LOCALE="en";p.TRUSTED_SITE=!0;p.STRICT_MODE_COMPATIBLE=!1;p.DISALLOW_TEST_ONLY_CODE=!p.DEBUG;p.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING=!1;
p.provide=function(b){if(p.isInModuleLoader_())throw Error("goog.provide cannot be used within a module.");p.constructNamespace_(b)};p.constructNamespace_=function(b,c){p.exportPath_(b,c)};p.getScriptNonce=function(){null===p.cspNonce_&&(p.cspNonce_=p.getScriptNonce_());return p.cspNonce_};p.NONCE_PATTERN_=/^[\w+/_-]+[=]{0,2}$/;p.cspNonce_=null;
p.getScriptNonce_=function(){var b=p.global.document;return(b=b.querySelector&&b.querySelector("script[nonce]"))&&(b=b.nonce||b.getAttribute("nonce"))&&p.NONCE_PATTERN_.test(b)?b:""};p.VALID_MODULE_RE_=/^[a-zA-Z_$][a-zA-Z0-9._$]*$/;
p.module=function(b){if("string"!==typeof b||!b||-1==b.search(p.VALID_MODULE_RE_))throw Error("Invalid module identifier");if(!p.isInGoogModuleLoader_())throw Error("Module "+b+" has been loaded incorrectly. Note, modules cannot be loaded as normal scripts. They require some kind of pre-processing step. You're likely trying to load a module via a script tag or as a part of a concatenated bundle without rewriting the module. For more info see: https://github.com/google/closure-library/wiki/goog.module:-an-ES6-module-like-alternative-to-goog.provide.");if(p.moduleLoaderState_.moduleName)throw Error("goog.module may only be called once per module.");
p.moduleLoaderState_.moduleName=b};p.module.get=function(){return null};p.module.getInternal_=function(){return null};p.ModuleType={ES6:"es6",GOOG:"goog"};p.moduleLoaderState_=null;p.isInModuleLoader_=function(){return p.isInGoogModuleLoader_()||p.isInEs6ModuleLoader_()};p.isInGoogModuleLoader_=function(){return!!p.moduleLoaderState_&&p.moduleLoaderState_.type==p.ModuleType.GOOG};
p.isInEs6ModuleLoader_=function(){if(p.moduleLoaderState_&&p.moduleLoaderState_.type==p.ModuleType.ES6)return!0;var b=p.global.$jscomp;return b?"function"!=typeof b.getCurrentModulePath?!1:!!b.getCurrentModulePath():!1};p.module.declareLegacyNamespace=function(){p.moduleLoaderState_.declareLegacyNamespace=!0};
p.declareModuleId=function(b){if(p.moduleLoaderState_)p.moduleLoaderState_.moduleName=b;else{var c=p.global.$jscomp;if(!c||"function"!=typeof c.getCurrentModulePath)throw Error('Module with namespace "'+b+'" has been loaded incorrectly.');c=c.require(c.getCurrentModulePath());p.loadedModules_[b]={exports:c,type:p.ModuleType.ES6,moduleId:b}}};p.setTestOnly=function(b){if(p.DISALLOW_TEST_ONLY_CODE)throw b=b||"",Error("Importing test-only code into non-debug environment"+(b?": "+b:"."));};
p.forwardDeclare=function(){};p.getObjectByName=function(b){b=b.split(".");for(var c=p.global,d=0;d<b.length;d++)if(c=c[b[d]],null==c)return null;return c};p.globalize=function(b,c){c=c||p.global;for(var d in b)c[d]=b[d]};p.addDependency=function(){};p.useStrictRequires=!1;p.ENABLE_DEBUG_LOADER=!0;p.logToConsole_=function(b){p.global.console&&p.global.console.error(b)};p.require=function(){};p.requireType=function(){return{}};p.basePath="";p.nullFunction=function(){};
p.abstractMethod=function(){throw Error("unimplemented abstract method");};p.addSingletonGetter=function(b){b.instance_=void 0;b.getInstance=function(){if(b.instance_)return b.instance_;p.DEBUG&&(p.instantiatedSingletons_[p.instantiatedSingletons_.length]=b);return b.instance_=new b}};p.instantiatedSingletons_=[];p.LOAD_MODULE_USING_EVAL=!0;p.SEAL_MODULE_EXPORTS=p.DEBUG;p.loadedModules_={};p.DEPENDENCIES_ENABLED=!1;p.TRANSPILE="detect";p.ASSUME_ES_MODULES_TRANSPILED=!1;p.TRANSPILE_TO_LANGUAGE="";
p.TRANSPILER="transpile.js";p.hasBadLetScoping=null;p.useSafari10Workaround=function(){if(null==p.hasBadLetScoping){try{var b=!eval('"use strict";let x = 1; function f() { return typeof x; };f() == "number";')}catch(c){b=!1}p.hasBadLetScoping=b}return p.hasBadLetScoping};p.workaroundSafari10EvalBug=function(b){return"(function(){"+b+"\n;})();\n"};
p.loadModule=function(b){var c=p.moduleLoaderState_;try{p.moduleLoaderState_={moduleName:"",declareLegacyNamespace:!1,type:p.ModuleType.GOOG};if(p.isFunction(b))var d=b.call(void 0,{});else if("string"===typeof b)p.useSafari10Workaround()&&(b=p.workaroundSafari10EvalBug(b)),d=p.loadModuleFromSource_.call(void 0,b);else throw Error("Invalid module definition");var e=p.moduleLoaderState_.moduleName;if("string"===typeof e&&e)p.moduleLoaderState_.declareLegacyNamespace?p.constructNamespace_(e,d):p.SEAL_MODULE_EXPORTS&&
Object.seal&&"object"==typeof d&&null!=d&&Object.seal(d),p.loadedModules_[e]={exports:d,type:p.ModuleType.GOOG,moduleId:p.moduleLoaderState_.moduleName};else throw Error('Invalid module name "'+e+'"');}finally{p.moduleLoaderState_=c}};p.loadModuleFromSource_=function(b){eval(b);return{}};p.normalizePath_=function(b){b=b.split("/");for(var c=0;c<b.length;)"."==b[c]?b.splice(c,1):c&&".."==b[c]&&b[c-1]&&".."!=b[c-1]?b.splice(--c,2):c++;return b.join("/")};
p.loadFileSync_=function(b){if(p.global.CLOSURE_LOAD_FILE_SYNC)return p.global.CLOSURE_LOAD_FILE_SYNC(b);try{var c=new p.global.XMLHttpRequest;c.open("get",b,!1);c.send();return 0==c.status||200==c.status?c.responseText:null}catch(d){return null}};
p.transpile_=function(b,c,d){var e=p.global.$jscomp;e||(p.global.$jscomp=e={});var f=e.transpile;if(!f){var g=p.basePath+p.TRANSPILER,h=p.loadFileSync_(g);if(h){(function(){(0,eval)(h+"\n//# sourceURL="+g)}).call(p.global);if(p.global.$gwtExport&&p.global.$gwtExport.$jscomp&&!p.global.$gwtExport.$jscomp.transpile)throw Error('The transpiler did not properly export the "transpile" method. $gwtExport: '+JSON.stringify(p.global.$gwtExport));p.global.$jscomp.transpile=p.global.$gwtExport.$jscomp.transpile;
e=p.global.$jscomp;f=e.transpile}}if(!f){var l=" requires transpilation but no transpiler was found.";l+=' Please add "//javascript/closure:transpiler" as a data dependency to ensure it is included.';f=e.transpile=function(m,n){p.logToConsole_(n+l);return m}}return f(b,c,d)};
p.typeOf=function(b){var c=typeof b;if("object"==c)if(b){if(b instanceof Array)return"array";if(b instanceof Object)return c;var d=Object.prototype.toString.call(b);if("[object Window]"==d)return"object";if("[object Array]"==d||"number"==typeof b.length&&"undefined"!=typeof b.splice&&"undefined"!=typeof b.propertyIsEnumerable&&!b.propertyIsEnumerable("splice"))return"array";if("[object Function]"==d||"undefined"!=typeof b.call&&"undefined"!=typeof b.propertyIsEnumerable&&!b.propertyIsEnumerable("call"))return"function"}else return"null";
else if("function"==c&&"undefined"==typeof b.call)return"object";return c};p.isNull=function(b){return null===b};p.isDefAndNotNull=function(b){return null!=b};p.isArray=function(b){return"array"==p.typeOf(b)};p.isArrayLike=function(b){var c=p.typeOf(b);return"array"==c||"object"==c&&"number"==typeof b.length};p.isDateLike=function(b){return p.isObject(b)&&"function"==typeof b.getFullYear};p.isFunction=function(b){return"function"==p.typeOf(b)};
p.isObject=function(b){var c=typeof b;return"object"==c&&null!=b||"function"==c};p.getUid=function(b){return b[p.UID_PROPERTY_]||(b[p.UID_PROPERTY_]=++p.uidCounter_)};p.hasUid=function(b){return!!b[p.UID_PROPERTY_]};p.removeUid=function(b){null!==b&&"removeAttribute"in b&&b.removeAttribute(p.UID_PROPERTY_);try{delete b[p.UID_PROPERTY_]}catch(c){}};p.UID_PROPERTY_="closure_uid_"+(1E9*Math.random()>>>0);p.uidCounter_=0;p.getHashCode=p.getUid;p.removeHashCode=p.removeUid;
p.cloneObject=function(b){var c=p.typeOf(b);if("object"==c||"array"==c){if("function"===typeof b.clone)return b.clone();c="array"==c?[]:{};for(var d in b)c[d]=p.cloneObject(b[d]);return c}return b};p.bindNative_=function(b,c,d){return b.call.apply(b.bind,arguments)};
p.bindJs_=function(b,c,d){if(!b)throw Error();if(2<arguments.length){var e=Array.prototype.slice.call(arguments,2);return function(){var f=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(f,e);return b.apply(c,f)}}return function(){return b.apply(c,arguments)}};p.bind=function(b,c,d){Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?p.bind=p.bindNative_:p.bind=p.bindJs_;return p.bind.apply(null,arguments)};
p.partial=function(b,c){var d=Array.prototype.slice.call(arguments,1);return function(){var e=d.slice();e.push.apply(e,arguments);return b.apply(this,e)}};p.mixin=function(b,c){for(var d in c)b[d]=c[d]};p.now=p.TRUSTED_SITE&&Date.now||function(){return+new Date};
p.globalEval=function(b){if(p.global.execScript)p.global.execScript(b,"JavaScript");else if(p.global.eval){if(null==p.evalWorksForGlobals_){try{p.global.eval("var _evalTest_ = 1;")}catch(e){}if("undefined"!=typeof p.global._evalTest_){try{delete p.global._evalTest_}catch(e){}p.evalWorksForGlobals_=!0}else p.evalWorksForGlobals_=!1}if(p.evalWorksForGlobals_)p.global.eval(b);else{var c=p.global.document,d=c.createElement("script");d.type="text/javascript";d.defer=!1;d.appendChild(c.createTextNode(b));
c.head.appendChild(d);c.head.removeChild(d)}}else throw Error("goog.globalEval not available");};p.evalWorksForGlobals_=null;
p.getCssName=function(b,c){if("."==String(b).charAt(0))throw Error('className passed in goog.getCssName must not start with ".". You passed: '+b);var d=function(f){return p.cssNameMapping_[f]||f},e=function(f){f=f.split("-");for(var g=[],h=0;h<f.length;h++)g.push(d(f[h]));return g.join("-")};e=p.cssNameMapping_?"BY_WHOLE"==p.cssNameMappingStyle_?d:e:function(f){return f};b=c?b+"-"+e(c):e(b);return p.global.CLOSURE_CSS_NAME_MAP_FN?p.global.CLOSURE_CSS_NAME_MAP_FN(b):b};
p.setCssNameMapping=function(b,c){p.cssNameMapping_=b;p.cssNameMappingStyle_=c};p.getMsg=function(b,c,d){d&&d.html&&(b=b.replace(/</g,"&lt;"));c&&(b=b.replace(/\{\$([^}]+)}/g,function(e,f){return null!=c&&f in c?c[f]:e}));return b};p.getMsgWithFallback=function(b){return b};p.exportSymbol=function(b,c,d){p.exportPath_(b,c,d)};p.exportProperty=function(b,c,d){b[c]=d};
p.inherits=function(b,c){function d(){}d.prototype=c.prototype;b.superClass_=c.prototype;b.prototype=new d;b.prototype.constructor=b;b.base=function(e,f,g){for(var h=Array(arguments.length-2),l=2;l<arguments.length;l++)h[l-2]=arguments[l];return c.prototype[f].apply(e,h)}};
p.base=function(b,c,d){var e=arguments.callee.caller;if(p.STRICT_MODE_COMPATIBLE||p.DEBUG&&!e)throw Error("arguments.caller not defined.  goog.base() cannot be used with strict mode code. See http://www.ecma-international.org/ecma-262/5.1/#sec-C");if("undefined"!==typeof e.superClass_){for(var f=Array(arguments.length-1),g=1;g<arguments.length;g++)f[g-1]=arguments[g];return e.superClass_.constructor.apply(b,f)}if("string"!=typeof c&&"symbol"!=typeof c)throw Error("method names provided to goog.base must be a string or a symbol");
f=Array(arguments.length-2);for(g=2;g<arguments.length;g++)f[g-2]=arguments[g];g=!1;for(var h=b.constructor.prototype;h;h=Object.getPrototypeOf(h))if(h[c]===e)g=!0;else if(g)return h[c].apply(b,f);if(b[c]===e)return b.constructor.prototype[c].apply(b,f);throw Error("goog.base called from a method of one name to a method of a different name");};p.scope=function(b){if(p.isInModuleLoader_())throw Error("goog.scope is not supported within a module.");b.call(p.global)};
p.defineClass=function(b,c){var d=c.constructor,e=c.statics;d&&d!=Object.prototype.constructor||(d=function(){throw Error("cannot instantiate an interface (no constructor defined).");});d=p.defineClass.createSealingConstructor_(d,b);b&&p.inherits(d,b);delete c.constructor;delete c.statics;p.defineClass.applyProperties_(d.prototype,c);null!=e&&(e instanceof Function?e(d):p.defineClass.applyProperties_(d,e));return d};p.defineClass.SEAL_CLASS_INSTANCES=p.DEBUG;
p.defineClass.createSealingConstructor_=function(b,c){if(!p.defineClass.SEAL_CLASS_INSTANCES)return b;var d=!p.defineClass.isUnsealable_(c),e=function(){var f=b.apply(this,arguments)||this;f[p.UID_PROPERTY_]=f[p.UID_PROPERTY_];this.constructor===e&&d&&Object.seal instanceof Function&&Object.seal(f);return f};return e};p.defineClass.isUnsealable_=function(b){return b&&b.prototype&&b.prototype[p.UNSEALABLE_CONSTRUCTOR_PROPERTY_]};p.defineClass.OBJECT_PROTOTYPE_FIELDS_="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");
p.defineClass.applyProperties_=function(b,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(b[d]=c[d]);for(var e=0;e<p.defineClass.OBJECT_PROTOTYPE_FIELDS_.length;e++)d=p.defineClass.OBJECT_PROTOTYPE_FIELDS_[e],Object.prototype.hasOwnProperty.call(c,d)&&(b[d]=c[d])};p.tagUnsealableClass=function(){};p.UNSEALABLE_CONSTRUCTOR_PROPERTY_="goog_defineClass_legacy_unsealable";p.TRUSTED_TYPES_POLICY_NAME="";p.identity_=function(b){return b};
p.createTrustedTypesPolicy=function(b){var c=null,d=p.global.trustedTypes||p.global.TrustedTypes;if(!d||!d.createPolicy)return c;try{c=d.createPolicy(b,{createHTML:p.identity_,createScript:p.identity_,createScriptURL:p.identity_,createURL:p.identity_})}catch(e){p.logToConsole_(e.message)}return c};p.TRUSTED_TYPES_POLICY_=p.TRUSTED_TYPES_POLICY_NAME?p.createTrustedTypesPolicy(p.TRUSTED_TYPES_POLICY_NAME+"#base"):null;p.craw={};p.craw.AppWindowDelegate=function(){};p.craw.AppWindowDelegate.defaultImpl_=p.craw.AppWindowDelegate;p.craw.AppWindowDelegate.setDefaultImpl=function(){p.craw.AppWindowDelegate.defaultImpl_=q.WindowDelegate};p.craw.AppWindowDelegate.createDefaultImpl=function(b){return new p.craw.AppWindowDelegate.defaultImpl_(b)};p.craw.AppWindowDelegate.prototype.onWindowReady=function(){};p.craw.AppWindowDelegate.prototype.pollOnlineStatus=function(){return null};
p.craw.AppWindowDelegate.prototype.finishedLaunch=function(){return!0};p.craw.AppWindowDelegate.prototype.getAppUnavailableMessage=function(){return chrome.i18n.getMessage("craw_app_unavailable")};p.debug={};p.debug.Error=function(b){if(Error.captureStackTrace)Error.captureStackTrace(this,p.debug.Error);else{var c=Error().stack;c&&(this.stack=c)}b&&(this.message=String(b))};p.inherits(p.debug.Error,Error);p.debug.Error.prototype.name="CustomError";p.dom={};p.dom.NodeType={ELEMENT:1,ATTRIBUTE:2,TEXT:3,CDATA_SECTION:4,ENTITY_REFERENCE:5,ENTITY:6,PROCESSING_INSTRUCTION:7,COMMENT:8,DOCUMENT:9,DOCUMENT_TYPE:10,DOCUMENT_FRAGMENT:11,NOTATION:12};p.asserts={};p.asserts.ENABLE_ASSERTS=p.DEBUG;p.asserts.AssertionError=function(b,c){p.debug.Error.call(this,p.asserts.subs_(b,c))};p.inherits(p.asserts.AssertionError,p.debug.Error);p.asserts.AssertionError.prototype.name="AssertionError";p.asserts.DEFAULT_ERROR_HANDLER=function(b){throw b;};p.asserts.errorHandler_=p.asserts.DEFAULT_ERROR_HANDLER;p.asserts.subs_=function(b,c){b=b.split("%s");for(var d="",e=b.length-1,f=0;f<e;f++)d+=b[f]+(f<c.length?c[f]:"%s");return d+b[e]};
p.asserts.doAssertFailure_=function(b,c,d,e){var f="Assertion failed";if(d){f+=": "+d;var g=e}else b&&(f+=": "+b,g=c);b=new p.asserts.AssertionError(""+f,g||[]);p.asserts.errorHandler_(b)};p.asserts.setErrorHandler=function(b){p.asserts.ENABLE_ASSERTS&&(p.asserts.errorHandler_=b)};p.asserts.assert=function(b,c,d){p.asserts.ENABLE_ASSERTS&&!b&&p.asserts.doAssertFailure_("",null,c,Array.prototype.slice.call(arguments,2));return b};
p.asserts.assertExists=function(b,c,d){p.asserts.ENABLE_ASSERTS&&null==b&&p.asserts.doAssertFailure_("Expected to exist: %s.",[b],c,Array.prototype.slice.call(arguments,2));return b};p.asserts.fail=function(b,c){p.asserts.ENABLE_ASSERTS&&p.asserts.errorHandler_(new p.asserts.AssertionError("Failure"+(b?": "+b:""),Array.prototype.slice.call(arguments,1)))};
p.asserts.assertNumber=function(b,c,d){p.asserts.ENABLE_ASSERTS&&"number"!==typeof b&&p.asserts.doAssertFailure_("Expected number but got %s: %s.",[p.typeOf(b),b],c,Array.prototype.slice.call(arguments,2));return b};p.asserts.assertString=function(b,c,d){p.asserts.ENABLE_ASSERTS&&"string"!==typeof b&&p.asserts.doAssertFailure_("Expected string but got %s: %s.",[p.typeOf(b),b],c,Array.prototype.slice.call(arguments,2))};
p.asserts.assertFunction=function(b,c,d){p.asserts.ENABLE_ASSERTS&&!p.isFunction(b)&&p.asserts.doAssertFailure_("Expected function but got %s: %s.",[p.typeOf(b),b],c,Array.prototype.slice.call(arguments,2))};p.asserts.assertObject=function(b,c,d){p.asserts.ENABLE_ASSERTS&&!p.isObject(b)&&p.asserts.doAssertFailure_("Expected object but got %s: %s.",[p.typeOf(b),b],c,Array.prototype.slice.call(arguments,2));return b};
p.asserts.assertArray=function(b,c,d){p.asserts.ENABLE_ASSERTS&&!p.isArray(b)&&p.asserts.doAssertFailure_("Expected array but got %s: %s.",[p.typeOf(b),b],c,Array.prototype.slice.call(arguments,2))};p.asserts.assertBoolean=function(b,c,d){p.asserts.ENABLE_ASSERTS&&"boolean"!==typeof b&&p.asserts.doAssertFailure_("Expected boolean but got %s: %s.",[p.typeOf(b),b],c,Array.prototype.slice.call(arguments,2));return b};
p.asserts.assertElement=function(b,c,d){!p.asserts.ENABLE_ASSERTS||p.isObject(b)&&b.nodeType==p.dom.NodeType.ELEMENT||p.asserts.doAssertFailure_("Expected Element but got %s: %s.",[p.typeOf(b),b],c,Array.prototype.slice.call(arguments,2));return b};p.asserts.assertInstanceof=function(b,c,d,e){!p.asserts.ENABLE_ASSERTS||b instanceof c||p.asserts.doAssertFailure_("Expected instanceof %s but got %s.",[p.asserts.getType_(c),p.asserts.getType_(b)],d,Array.prototype.slice.call(arguments,3));return b};
p.asserts.assertFinite=function(b,c,d){!p.asserts.ENABLE_ASSERTS||"number"==typeof b&&isFinite(b)||p.asserts.doAssertFailure_("Expected %s to be a finite number but it is not.",[b],c,Array.prototype.slice.call(arguments,2));return b};p.asserts.assertObjectPrototypeIsIntact=function(){for(var b in Object.prototype)p.asserts.fail(b+" should not be enumerable in Object.prototype.")};
p.asserts.getType_=function(b){return b instanceof Function?b.displayName||b.name||"unknown type name":b instanceof Object?b.constructor.displayName||b.constructor.name||Object.prototype.toString.call(b):null===b?"null":typeof b};p.array={};p.NATIVE_ARRAY_PROTOTYPES=p.TRUSTED_SITE;p.array.ASSUME_NATIVE_FUNCTIONS=2012<p.FEATURESET_YEAR;p.array.peek=function(b){return b[b.length-1]};p.array.last=p.array.peek;
p.array.indexOf=p.NATIVE_ARRAY_PROTOTYPES&&(p.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.indexOf)?function(b,c,d){p.asserts.assert(null!=b.length);return Array.prototype.indexOf.call(b,c,d)}:function(b,c,d){d=null==d?0:0>d?Math.max(0,b.length+d):d;if("string"===typeof b)return"string"!==typeof c||1!=c.length?-1:b.indexOf(c,d);for(;d<b.length;d++)if(d in b&&b[d]===c)return d;return-1};
p.array.lastIndexOf=p.NATIVE_ARRAY_PROTOTYPES&&(p.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.lastIndexOf)?function(b,c,d){p.asserts.assert(null!=b.length);return Array.prototype.lastIndexOf.call(b,c,null==d?b.length-1:d)}:function(b,c,d){d=null==d?b.length-1:d;0>d&&(d=Math.max(0,b.length+d));if("string"===typeof b)return"string"!==typeof c||1!=c.length?-1:b.lastIndexOf(c,d);for(;0<=d;d--)if(d in b&&b[d]===c)return d;return-1};
p.array.forEach=p.NATIVE_ARRAY_PROTOTYPES&&(p.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.forEach)?function(b,c,d){p.asserts.assert(null!=b.length);Array.prototype.forEach.call(b,c,d)}:function(b,c,d){for(var e=b.length,f="string"===typeof b?b.split(""):b,g=0;g<e;g++)g in f&&c.call(d,f[g],g,b)};p.array.forEachRight=function(b,c){var d=b.length,e="string"===typeof b?b.split(""):b;for(--d;0<=d;--d)d in e&&c.call(void 0,e[d],d,b)};
p.array.filter=p.NATIVE_ARRAY_PROTOTYPES&&(p.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.filter)?function(b,c,d){p.asserts.assert(null!=b.length);return Array.prototype.filter.call(b,c,d)}:function(b,c,d){for(var e=b.length,f=[],g=0,h="string"===typeof b?b.split(""):b,l=0;l<e;l++)if(l in h){var m=h[l];c.call(d,m,l,b)&&(f[g++]=m)}return f};
p.array.map=p.NATIVE_ARRAY_PROTOTYPES&&(p.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.map)?function(b,c,d){p.asserts.assert(null!=b.length);return Array.prototype.map.call(b,c,d)}:function(b,c,d){for(var e=b.length,f=Array(e),g="string"===typeof b?b.split(""):b,h=0;h<e;h++)h in g&&(f[h]=c.call(d,g[h],h,b));return f};
p.array.reduce=p.NATIVE_ARRAY_PROTOTYPES&&(p.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.reduce)?function(b,c,d,e){p.asserts.assert(null!=b.length);e&&(c=p.bind(c,e));return Array.prototype.reduce.call(b,c,d)}:function(b,c,d,e){var f=d;p.array.forEach(b,function(g,h){f=c.call(e,f,g,h,b)});return f};
p.array.reduceRight=p.NATIVE_ARRAY_PROTOTYPES&&(p.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.reduceRight)?function(b,c,d,e){p.asserts.assert(null!=b.length);p.asserts.assert(null!=c);e&&(c=p.bind(c,e));return Array.prototype.reduceRight.call(b,c,d)}:function(b,c,d,e){var f=d;p.array.forEachRight(b,function(g,h){f=c.call(e,f,g,h,b)});return f};
p.array.some=p.NATIVE_ARRAY_PROTOTYPES&&(p.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.some)?function(b,c,d){p.asserts.assert(null!=b.length);return Array.prototype.some.call(b,c,d)}:function(b,c,d){for(var e=b.length,f="string"===typeof b?b.split(""):b,g=0;g<e;g++)if(g in f&&c.call(d,f[g],g,b))return!0;return!1};
p.array.every=p.NATIVE_ARRAY_PROTOTYPES&&(p.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.every)?function(b,c,d){p.asserts.assert(null!=b.length);return Array.prototype.every.call(b,c,d)}:function(b,c,d){for(var e=b.length,f="string"===typeof b?b.split(""):b,g=0;g<e;g++)if(g in f&&!c.call(d,f[g],g,b))return!1;return!0};p.array.count=function(b,c,d){var e=0;p.array.forEach(b,function(f,g,h){c.call(d,f,g,h)&&++e},d);return e};
p.array.find=function(b,c,d){c=p.array.findIndex(b,c,d);return 0>c?null:"string"===typeof b?b.charAt(c):b[c]};p.array.findIndex=function(b,c,d){for(var e=b.length,f="string"===typeof b?b.split(""):b,g=0;g<e;g++)if(g in f&&c.call(d,f[g],g,b))return g;return-1};p.array.findRight=function(b,c,d){c=p.array.findIndexRight(b,c,d);return 0>c?null:"string"===typeof b?b.charAt(c):b[c]};
p.array.findIndexRight=function(b,c,d){var e=b.length,f="string"===typeof b?b.split(""):b;for(--e;0<=e;e--)if(e in f&&c.call(d,f[e],e,b))return e;return-1};p.array.contains=function(b,c){return 0<=p.array.indexOf(b,c)};p.array.isEmpty=function(b){return 0==b.length};p.array.clear=function(b){if(!p.isArray(b))for(var c=b.length-1;0<=c;c--)delete b[c];b.length=0};p.array.insert=function(b,c){p.array.contains(b,c)||b.push(c)};p.array.insertAt=function(b,c,d){p.array.splice(b,d,0,c)};
p.array.insertArrayAt=function(b,c,d){p.partial(p.array.splice,b,d,0).apply(null,c)};p.array.insertBefore=function(b,c,d){var e;2==arguments.length||0>(e=p.array.indexOf(b,d))?b.push(c):p.array.insertAt(b,c,e)};p.array.remove=function(b,c){c=p.array.indexOf(b,c);var d;(d=0<=c)&&p.array.removeAt(b,c);return d};p.array.removeLast=function(b,c){c=p.array.lastIndexOf(b,c);return 0<=c?(p.array.removeAt(b,c),!0):!1};
p.array.removeAt=function(b,c){p.asserts.assert(null!=b.length);return 1==Array.prototype.splice.call(b,c,1).length};p.array.removeIf=function(b,c,d){c=p.array.findIndex(b,c,d);return 0<=c?(p.array.removeAt(b,c),!0):!1};p.array.removeAllIf=function(b,c,d){var e=0;p.array.forEachRight(b,function(f,g){c.call(d,f,g,b)&&p.array.removeAt(b,g)&&e++});return e};p.array.concat=function(b){return Array.prototype.concat.apply([],arguments)};p.array.join=function(b){return Array.prototype.concat.apply([],arguments)};
p.array.toArray=function(b){var c=b.length;if(0<c){for(var d=Array(c),e=0;e<c;e++)d[e]=b[e];return d}return[]};p.array.clone=p.array.toArray;p.array.extend=function(b,c){for(var d=1;d<arguments.length;d++){var e=arguments[d];if(p.isArrayLike(e)){var f=b.length||0,g=e.length||0;b.length=f+g;for(var h=0;h<g;h++)b[f+h]=e[h]}else b.push(e)}};p.array.splice=function(b,c,d,e){p.asserts.assert(null!=b.length);return Array.prototype.splice.apply(b,p.array.slice(arguments,1))};
p.array.slice=function(b,c,d){p.asserts.assert(null!=b.length);return 2>=arguments.length?Array.prototype.slice.call(b,c):Array.prototype.slice.call(b,c,d)};p.array.removeDuplicates=function(b,c){c=c||b;for(var d={},e=0,f=0;f<b.length;){var g=b[f++];var h=g;h=p.isObject(h)?"o"+p.getUid(h):(typeof h).charAt(0)+h;Object.prototype.hasOwnProperty.call(d,h)||(d[h]=!0,c[e++]=g)}c.length=e};p.array.binarySearch=function(b,c,d){return p.array.binarySearch_(b,d||p.array.defaultCompare,!1,c)};
p.array.binarySelect=function(b,c,d){return p.array.binarySearch_(b,c,!0,void 0,d)};p.array.binarySearch_=function(b,c,d,e,f){for(var g=0,h=b.length,l;g<h;){var m=g+(h-g>>>1);var n=d?c.call(f,b[m],m,b):c(e,b[m]);0<n?g=m+1:(h=m,l=!n)}return l?g:-g-1};p.array.sort=function(b,c){b.sort(c||p.array.defaultCompare)};
p.array.stableSort=function(b,c){for(var d=Array(b.length),e=0;e<b.length;e++)d[e]={index:e,value:b[e]};var f=c||p.array.defaultCompare;p.array.sort(d,function(g,h){return f(g.value,h.value)||g.index-h.index});for(e=0;e<b.length;e++)b[e]=d[e].value};p.array.sortByKey=function(b,c,d){var e=d||p.array.defaultCompare;p.array.sort(b,function(f,g){return e(c(f),c(g))})};p.array.sortObjectsByKey=function(b,c,d){p.array.sortByKey(b,function(e){return e[c]},d)};
p.array.isSorted=function(b){for(var c=p.array.defaultCompare,d=1;d<b.length;d++)if(0<c(b[d-1],b[d]))return!1;return!0};p.array.equals=function(b,c){if(!p.isArrayLike(b)||!p.isArrayLike(c)||b.length!=c.length)return!1;for(var d=b.length,e=p.array.defaultCompareEquality,f=0;f<d;f++)if(!e(b[f],c[f]))return!1;return!0};
p.array.compare3=function(b,c,d){d=d||p.array.defaultCompare;for(var e=Math.min(b.length,c.length),f=0;f<e;f++){var g=d(b[f],c[f]);if(0!=g)return g}return p.array.defaultCompare(b.length,c.length)};p.array.defaultCompare=function(b,c){return b>c?1:b<c?-1:0};p.array.inverseDefaultCompare=function(b,c){return-p.array.defaultCompare(b,c)};p.array.defaultCompareEquality=function(b,c){return b===c};
p.array.binaryInsert=function(b,c,d){d=p.array.binarySearch(b,c,d);return 0>d?(p.array.insertAt(b,c,-(d+1)),!0):!1};p.array.binaryRemove=function(b,c,d){c=p.array.binarySearch(b,c,d);return 0<=c?p.array.removeAt(b,c):!1};p.array.bucket=function(b,c,d){for(var e={},f=0;f<b.length;f++){var g=b[f],h=c.call(d,g,f,b);void 0!==h&&(e[h]||(e[h]=[])).push(g)}return e};p.array.toObject=function(b,c,d){var e={};p.array.forEach(b,function(f,g){e[c.call(d,f,g,b)]=f});return e};
p.array.range=function(b,c,d){var e=[],f=0,g=b;d=d||1;void 0!==c&&(f=b,g=c);if(0>d*(g-f))return[];if(0<d)for(b=f;b<g;b+=d)e.push(b);else for(b=f;b>g;b+=d)e.push(b);return e};p.array.repeat=function(b,c){for(var d=[],e=0;e<c;e++)d[e]=b;return d};p.array.flatten=function(b){for(var c=[],d=0;d<arguments.length;d++){var e=arguments[d];if(p.isArray(e))for(var f=0;f<e.length;f+=8192){var g=p.array.slice(e,f,f+8192);g=p.array.flatten.apply(null,g);for(var h=0;h<g.length;h++)c.push(g[h])}else c.push(e)}return c};
p.array.rotate=function(b,c){p.asserts.assert(null!=b.length);b.length&&(c%=b.length,0<c?Array.prototype.unshift.apply(b,b.splice(-c,c)):0>c&&Array.prototype.push.apply(b,b.splice(0,-c)));return b};p.array.moveItem=function(b,c,d){p.asserts.assert(0<=c&&c<b.length);p.asserts.assert(0<=d&&d<b.length);c=Array.prototype.splice.call(b,c,1);Array.prototype.splice.call(b,d,0,c[0])};
p.array.zip=function(b){if(!arguments.length)return[];for(var c=[],d=arguments[0].length,e=1;e<arguments.length;e++)arguments[e].length<d&&(d=arguments[e].length);for(e=0;e<d;e++){for(var f=[],g=0;g<arguments.length;g++)f.push(arguments[g][e]);c.push(f)}return c};p.array.shuffle=function(b,c){c=c||Math.random;for(var d=b.length-1;0<d;d--){var e=Math.floor(c()*(d+1)),f=b[d];b[d]=b[e];b[e]=f}};p.array.copyByIndex=function(b,c){var d=[];p.array.forEach(c,function(e){d.push(b[e])});return d};
p.array.concatMap=function(b,c,d){return p.array.concat.apply([],p.array.map(b,c,d))};p.debug.errorcontext={};p.debug.errorcontext.addErrorContext=function(b,c,d){b[p.debug.errorcontext.CONTEXT_KEY_]||(b[p.debug.errorcontext.CONTEXT_KEY_]={});b[p.debug.errorcontext.CONTEXT_KEY_][c]=d};p.debug.errorcontext.getErrorContext=function(b){return b[p.debug.errorcontext.CONTEXT_KEY_]||{}};p.debug.errorcontext.CONTEXT_KEY_="__closure__error__context__984382";p.string={};p.string.internal={};p.string.internal.startsWith=function(b,c){return 0==b.lastIndexOf(c,0)};p.string.internal.endsWith=function(b,c){var d=b.length-c.length;return 0<=d&&b.indexOf(c,d)==d};p.string.internal.caseInsensitiveStartsWith=function(b,c){return 0==p.string.internal.caseInsensitiveCompare(c,b.substr(0,c.length))};p.string.internal.caseInsensitiveEndsWith=function(b,c){return 0==p.string.internal.caseInsensitiveCompare(c,b.substr(b.length-c.length,c.length))};
p.string.internal.caseInsensitiveEquals=function(b,c){return b.toLowerCase()==c.toLowerCase()};p.string.internal.isEmptyOrWhitespace=function(b){return/^[\s\xa0]*$/.test(b)};p.string.internal.trim=p.TRUSTED_SITE&&String.prototype.trim?function(b){return b.trim()}:function(b){return/^[\s\xa0]*([\s\S]*?)[\s\xa0]*$/.exec(b)[1]};p.string.internal.caseInsensitiveCompare=function(b,c){b=String(b).toLowerCase();c=String(c).toLowerCase();return b<c?-1:b==c?0:1};
p.string.internal.newLineToBr=function(b,c){return b.replace(/(\r\n|\r|\n)/g,c?"<br />":"<br>")};
p.string.internal.htmlEscape=function(b,c){if(c)b=b.replace(p.string.internal.AMP_RE_,"&amp;").replace(p.string.internal.LT_RE_,"&lt;").replace(p.string.internal.GT_RE_,"&gt;").replace(p.string.internal.QUOT_RE_,"&quot;").replace(p.string.internal.SINGLE_QUOTE_RE_,"&#39;").replace(p.string.internal.NULL_RE_,"&#0;");else{if(!p.string.internal.ALL_RE_.test(b))return b;-1!=b.indexOf("&")&&(b=b.replace(p.string.internal.AMP_RE_,"&amp;"));-1!=b.indexOf("<")&&(b=b.replace(p.string.internal.LT_RE_,"&lt;"));
-1!=b.indexOf(">")&&(b=b.replace(p.string.internal.GT_RE_,"&gt;"));-1!=b.indexOf('"')&&(b=b.replace(p.string.internal.QUOT_RE_,"&quot;"));-1!=b.indexOf("'")&&(b=b.replace(p.string.internal.SINGLE_QUOTE_RE_,"&#39;"));-1!=b.indexOf("\x00")&&(b=b.replace(p.string.internal.NULL_RE_,"&#0;"))}return b};p.string.internal.AMP_RE_=/&/g;p.string.internal.LT_RE_=/</g;p.string.internal.GT_RE_=/>/g;p.string.internal.QUOT_RE_=/"/g;p.string.internal.SINGLE_QUOTE_RE_=/'/g;p.string.internal.NULL_RE_=/\x00/g;
p.string.internal.ALL_RE_=/[\x00&<>"']/;p.string.internal.whitespaceEscape=function(b){return p.string.internal.newLineToBr(b.replace(/  /g," &#160;"),void 0)};p.string.internal.contains=function(b,c){return-1!=b.indexOf(c)};p.string.internal.caseInsensitiveContains=function(b,c){return p.string.internal.contains(b.toLowerCase(),c.toLowerCase())};
p.string.internal.compareVersions=function(b,c){var d=0;b=p.string.internal.trim(String(b)).split(".");c=p.string.internal.trim(String(c)).split(".");for(var e=Math.max(b.length,c.length),f=0;0==d&&f<e;f++){var g=b[f]||"",h=c[f]||"";do{g=/(\d*)(\D*)(.*)/.exec(g)||["","","",""];h=/(\d*)(\D*)(.*)/.exec(h)||["","","",""];if(0==g[0].length&&0==h[0].length)break;d=p.string.internal.compareElements_(0==g[1].length?0:parseInt(g[1],10),0==h[1].length?0:parseInt(h[1],10))||p.string.internal.compareElements_(0==
g[2].length,0==h[2].length)||p.string.internal.compareElements_(g[2],h[2]);g=g[3];h=h[3]}while(0==d)}return d};p.string.internal.compareElements_=function(b,c){return b<c?-1:b>c?1:0};p.labs={};p.labs.userAgent={};p.labs.userAgent.util={};p.labs.userAgent.util.getNativeUserAgentString_=function(){var b=p.labs.userAgent.util.getNavigator_();return b&&(b=b.userAgent)?b:""};p.labs.userAgent.util.getNavigator_=function(){return p.global.navigator};p.labs.userAgent.util.userAgent_=p.labs.userAgent.util.getNativeUserAgentString_();p.labs.userAgent.util.setUserAgent=function(b){p.labs.userAgent.util.userAgent_=b||p.labs.userAgent.util.getNativeUserAgentString_()};
p.labs.userAgent.util.getUserAgent=function(){return p.labs.userAgent.util.userAgent_};p.labs.userAgent.util.matchUserAgent=function(b){return p.string.internal.contains(p.labs.userAgent.util.getUserAgent(),b)};p.labs.userAgent.util.matchUserAgentIgnoreCase=function(b){return p.string.internal.caseInsensitiveContains(p.labs.userAgent.util.getUserAgent(),b)};
p.labs.userAgent.util.extractVersionTuples=function(b){for(var c=/(\w[\w ]+)\/([^\s]+)\s*(?:\((.*?)\))?/g,d=[],e;e=c.exec(b);)d.push([e[1],e[2],e[3]||void 0]);return d};p.object={};p.object.is=function(b,c){return b===c?0!==b||1/b===1/c:b!==b&&c!==c};p.object.forEach=function(b,c,d){for(var e in b)c.call(d,b[e],e,b)};p.object.filter=function(b,c,d){var e={},f;for(f in b)c.call(d,b[f],f,b)&&(e[f]=b[f]);return e};p.object.map=function(b,c,d){var e={},f;for(f in b)e[f]=c.call(d,b[f],f,b);return e};p.object.some=function(b,c,d){for(var e in b)if(c.call(d,b[e],e,b))return!0;return!1};p.object.every=function(b,c,d){for(var e in b)if(!c.call(d,b[e],e,b))return!1;return!0};
p.object.getCount=function(b){var c=0,d;for(d in b)c++;return c};p.object.getAnyKey=function(b){for(var c in b)return c};p.object.getAnyValue=function(b){for(var c in b)return b[c]};p.object.contains=function(b,c){return p.object.containsValue(b,c)};p.object.getValues=function(b){var c=[],d=0,e;for(e in b)c[d++]=b[e];return c};p.object.getKeys=function(b){var c=[],d=0,e;for(e in b)c[d++]=e;return c};
p.object.getValueByKeys=function(b,c){var d=p.isArrayLike(c),e=d?c:arguments;for(d=d?0:1;d<e.length;d++){if(null==b)return;b=b[e[d]]}return b};p.object.containsKey=function(b,c){return null!==b&&c in b};p.object.containsValue=function(b,c){for(var d in b)if(b[d]==c)return!0;return!1};p.object.findKey=function(b,c,d){for(var e in b)if(c.call(d,b[e],e,b))return e};p.object.findValue=function(b,c,d){return(c=p.object.findKey(b,c,d))&&b[c]};p.object.isEmpty=function(b){for(var c in b)return!1;return!0};
p.object.clear=function(b){for(var c in b)delete b[c]};p.object.remove=function(b,c){var d;(d=c in b)&&delete b[c];return d};p.object.add=function(b,c,d){if(null!==b&&c in b)throw Error('The object already contains the key "'+c+'"');p.object.set(b,c,d)};p.object.get=function(b,c,d){return null!==b&&c in b?b[c]:d};p.object.set=function(b,c,d){b[c]=d};p.object.setIfUndefined=function(b,c,d){return c in b?b[c]:b[c]=d};
p.object.setWithReturnValueIfNotSet=function(b,c,d){if(c in b)return b[c];d=d();return b[c]=d};p.object.equals=function(b,c){for(var d in b)if(!(d in c)||b[d]!==c[d])return!1;for(var e in c)if(!(e in b))return!1;return!0};p.object.clone=function(b){var c={},d;for(d in b)c[d]=b[d];return c};p.object.unsafeClone=function(b){var c=p.typeOf(b);if("object"==c||"array"==c){if(p.isFunction(b.clone))return b.clone();c="array"==c?[]:{};for(var d in b)c[d]=p.object.unsafeClone(b[d]);return c}return b};
p.object.transpose=function(b){var c={},d;for(d in b)c[b[d]]=d;return c};p.object.PROTOTYPE_FIELDS_="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");p.object.extend=function(b,c){for(var d,e,f=1;f<arguments.length;f++){e=arguments[f];for(d in e)b[d]=e[d];for(var g=0;g<p.object.PROTOTYPE_FIELDS_.length;g++)d=p.object.PROTOTYPE_FIELDS_[g],Object.prototype.hasOwnProperty.call(e,d)&&(b[d]=e[d])}};
p.object.create=function(b){var c=arguments.length;if(1==c&&p.isArray(arguments[0]))return p.object.create.apply(null,arguments[0]);if(c%2)throw Error("Uneven number of arguments");for(var d={},e=0;e<c;e+=2)d[arguments[e]]=arguments[e+1];return d};p.object.createSet=function(b){var c=arguments.length;if(1==c&&p.isArray(arguments[0]))return p.object.createSet.apply(null,arguments[0]);for(var d={},e=0;e<c;e++)d[arguments[e]]=!0;return d};
p.object.createImmutableView=function(b){var c=b;Object.isFrozen&&!Object.isFrozen(b)&&(c=Object.create(b),Object.freeze(c));return c};p.object.isImmutableView=function(b){return!!Object.isFrozen&&Object.isFrozen(b)};
p.object.getAllPropertyNames=function(b,c,d){if(!b)return[];if(!Object.getOwnPropertyNames||!Object.getPrototypeOf)return p.object.getKeys(b);for(var e={};b&&(b!==Object.prototype||c)&&(b!==Function.prototype||d);){for(var f=Object.getOwnPropertyNames(b),g=0;g<f.length;g++)e[f[g]]=!0;b=Object.getPrototypeOf(b)}return p.object.getKeys(e)};p.object.getSuperClass=function(b){return(b=Object.getPrototypeOf(b.prototype))&&b.constructor};p.labs.userAgent.browser={};p.labs.userAgent.browser.matchOpera_=function(){return p.labs.userAgent.util.matchUserAgent("Opera")};p.labs.userAgent.browser.matchIE_=function(){return p.labs.userAgent.util.matchUserAgent("Trident")||p.labs.userAgent.util.matchUserAgent("MSIE")};p.labs.userAgent.browser.matchEdgeHtml_=function(){return p.labs.userAgent.util.matchUserAgent("Edge")};p.labs.userAgent.browser.matchEdgeChromium_=function(){return p.labs.userAgent.util.matchUserAgent("Edg/")};
p.labs.userAgent.browser.matchOperaChromium_=function(){return p.labs.userAgent.util.matchUserAgent("OPR")};p.labs.userAgent.browser.matchFirefox_=function(){return p.labs.userAgent.util.matchUserAgent("Firefox")||p.labs.userAgent.util.matchUserAgent("FxiOS")};
p.labs.userAgent.browser.matchSafari_=function(){return p.labs.userAgent.util.matchUserAgent("Safari")&&!(p.labs.userAgent.browser.matchChrome_()||p.labs.userAgent.browser.matchCoast_()||p.labs.userAgent.browser.matchOpera_()||p.labs.userAgent.browser.matchEdgeHtml_()||p.labs.userAgent.browser.matchEdgeChromium_()||p.labs.userAgent.browser.matchOperaChromium_()||p.labs.userAgent.browser.matchFirefox_()||p.labs.userAgent.browser.isSilk()||p.labs.userAgent.util.matchUserAgent("Android"))};
p.labs.userAgent.browser.matchCoast_=function(){return p.labs.userAgent.util.matchUserAgent("Coast")};p.labs.userAgent.browser.matchIosWebview_=function(){return(p.labs.userAgent.util.matchUserAgent("iPad")||p.labs.userAgent.util.matchUserAgent("iPhone"))&&!p.labs.userAgent.browser.matchSafari_()&&!p.labs.userAgent.browser.matchChrome_()&&!p.labs.userAgent.browser.matchCoast_()&&!p.labs.userAgent.browser.matchFirefox_()&&p.labs.userAgent.util.matchUserAgent("AppleWebKit")};
p.labs.userAgent.browser.matchChrome_=function(){return(p.labs.userAgent.util.matchUserAgent("Chrome")||p.labs.userAgent.util.matchUserAgent("CriOS"))&&!p.labs.userAgent.browser.matchEdgeHtml_()};p.labs.userAgent.browser.matchAndroidBrowser_=function(){return p.labs.userAgent.util.matchUserAgent("Android")&&!(p.labs.userAgent.browser.isChrome()||p.labs.userAgent.browser.isFirefox()||p.labs.userAgent.browser.isOpera()||p.labs.userAgent.browser.isSilk())};p.labs.userAgent.browser.isOpera=p.labs.userAgent.browser.matchOpera_;
p.labs.userAgent.browser.isIE=p.labs.userAgent.browser.matchIE_;p.labs.userAgent.browser.isEdge=p.labs.userAgent.browser.matchEdgeHtml_;p.labs.userAgent.browser.isEdgeChromium=p.labs.userAgent.browser.matchEdgeChromium_;p.labs.userAgent.browser.isOperaChromium=p.labs.userAgent.browser.matchOperaChromium_;p.labs.userAgent.browser.isFirefox=p.labs.userAgent.browser.matchFirefox_;p.labs.userAgent.browser.isSafari=p.labs.userAgent.browser.matchSafari_;p.labs.userAgent.browser.isCoast=p.labs.userAgent.browser.matchCoast_;
p.labs.userAgent.browser.isIosWebview=p.labs.userAgent.browser.matchIosWebview_;p.labs.userAgent.browser.isChrome=p.labs.userAgent.browser.matchChrome_;p.labs.userAgent.browser.isAndroidBrowser=p.labs.userAgent.browser.matchAndroidBrowser_;p.labs.userAgent.browser.isSilk=function(){return p.labs.userAgent.util.matchUserAgent("Silk")};
p.labs.userAgent.browser.getVersion=function(){function b(f){f=p.array.find(f,e);return d[f]||""}var c=p.labs.userAgent.util.getUserAgent();if(p.labs.userAgent.browser.isIE())return p.labs.userAgent.browser.getIEVersion_(c);c=p.labs.userAgent.util.extractVersionTuples(c);var d={};p.array.forEach(c,function(f){d[f[0]]=f[1]});var e=p.partial(p.object.containsKey,d);return p.labs.userAgent.browser.isOpera()?b(["Version","Opera"]):p.labs.userAgent.browser.isEdge()?b(["Edge"]):p.labs.userAgent.browser.isEdgeChromium()?
b(["Edg"]):p.labs.userAgent.browser.isChrome()?b(["Chrome","CriOS"]):(c=c[2])&&c[1]||""};p.labs.userAgent.browser.isVersionOrHigher=function(b){return 0<=p.string.internal.compareVersions(p.labs.userAgent.browser.getVersion(),b)};
p.labs.userAgent.browser.getIEVersion_=function(b){var c=/rv: *([\d\.]*)/.exec(b);if(c&&c[1])return c[1];c="";var d=/MSIE +([\d\.]+)/.exec(b);if(d&&d[1])if(b=/Trident\/(\d.\d)/.exec(b),"7.0"==d[1])if(b&&b[1])switch(b[1]){case "4.0":c="8.0";break;case "5.0":c="9.0";break;case "6.0":c="10.0";break;case "7.0":c="11.0"}else c="7.0";else c=d[1];return c};p.dom.asserts={};p.dom.asserts.assertIsLocation=function(b){if(p.asserts.ENABLE_ASSERTS){var c=p.dom.asserts.getWindow_(b);c&&(!b||!(b instanceof c.Location)&&b instanceof c.Element)&&p.asserts.fail("Argument is not a Location (or a non-Element mock); got: %s",p.dom.asserts.debugStringForType_(b))}};
p.dom.asserts.assertIsElementType_=function(b,c){if(p.asserts.ENABLE_ASSERTS){var d=p.dom.asserts.getWindow_(b);d&&"undefined"!=typeof d[c]&&(b&&(b instanceof d[c]||!(b instanceof d.Location||b instanceof d.Element))||p.asserts.fail("Argument is not a %s (or a non-Element, non-Location mock); got: %s",c,p.dom.asserts.debugStringForType_(b)))}return b};p.dom.asserts.assertIsHTMLAnchorElement=function(b){p.dom.asserts.assertIsElementType_(b,"HTMLAnchorElement")};
p.dom.asserts.assertIsHTMLButtonElement=function(b){return p.dom.asserts.assertIsElementType_(b,"HTMLButtonElement")};p.dom.asserts.assertIsHTMLLinkElement=function(b){p.dom.asserts.assertIsElementType_(b,"HTMLLinkElement")};p.dom.asserts.assertIsHTMLImageElement=function(b){p.dom.asserts.assertIsElementType_(b,"HTMLImageElement")};p.dom.asserts.assertIsHTMLAudioElement=function(b){p.dom.asserts.assertIsElementType_(b,"HTMLAudioElement")};
p.dom.asserts.assertIsHTMLVideoElement=function(b){p.dom.asserts.assertIsElementType_(b,"HTMLVideoElement")};p.dom.asserts.assertIsHTMLInputElement=function(b){return p.dom.asserts.assertIsElementType_(b,"HTMLInputElement")};p.dom.asserts.assertIsHTMLTextAreaElement=function(b){return p.dom.asserts.assertIsElementType_(b,"HTMLTextAreaElement")};p.dom.asserts.assertIsHTMLCanvasElement=function(b){return p.dom.asserts.assertIsElementType_(b,"HTMLCanvasElement")};
p.dom.asserts.assertIsHTMLEmbedElement=function(b){p.dom.asserts.assertIsElementType_(b,"HTMLEmbedElement")};p.dom.asserts.assertIsHTMLFormElement=function(b){return p.dom.asserts.assertIsElementType_(b,"HTMLFormElement")};p.dom.asserts.assertIsHTMLFrameElement=function(b){p.dom.asserts.assertIsElementType_(b,"HTMLFrameElement")};p.dom.asserts.assertIsHTMLIFrameElement=function(b){p.dom.asserts.assertIsElementType_(b,"HTMLIFrameElement")};
p.dom.asserts.assertIsHTMLObjectElement=function(b){p.dom.asserts.assertIsElementType_(b,"HTMLObjectElement")};p.dom.asserts.assertIsHTMLScriptElement=function(b){p.dom.asserts.assertIsElementType_(b,"HTMLScriptElement")};p.dom.asserts.debugStringForType_=function(b){if(p.isObject(b))try{return b.constructor.displayName||b.constructor.name||Object.prototype.toString.call(b)}catch(c){return"<object could not be stringified>"}else return void 0===b?"undefined":null===b?"null":typeof b};
p.dom.asserts.getWindow_=function(b){try{var c=b&&b.ownerDocument,d=c&&(c.defaultView||c.parentWindow);d=d||p.global;if(d.Element&&d.Location)return d}catch(e){}return null};p.functions={};p.functions.constant=function(b){return function(){return b}};p.functions.FALSE=function(){return!1};p.functions.TRUE=function(){return!0};p.functions.NULL=function(){return null};p.functions.identity=function(b){return b};p.functions.error=function(b){return function(){throw Error(b);}};p.functions.fail=function(){};p.functions.lock=function(b,c){c=c||0;return function(){return b.apply(this,Array.prototype.slice.call(arguments,0,c))}};p.functions.nth=function(b){return function(){return arguments[b]}};
p.functions.partialRight=function(b,c){var d=Array.prototype.slice.call(arguments,1);return function(){var e=Array.prototype.slice.call(arguments);e.push.apply(e,d);return b.apply(this,e)}};p.functions.withReturnValue=function(b,c){return p.functions.sequence(b,p.functions.constant(c))};p.functions.equalTo=function(b,c){return function(d){return c?b==d:b===d}};
p.functions.compose=function(b,c){var d=arguments,e=d.length;return function(){var f;e&&(f=d[e-1].apply(this,arguments));for(var g=e-2;0<=g;g--)f=d[g].call(this,f);return f}};p.functions.sequence=function(b){var c=arguments,d=c.length;return function(){for(var e,f=0;f<d;f++)e=c[f].apply(this,arguments);return e}};p.functions.and=function(b){var c=arguments,d=c.length;return function(){for(var e=0;e<d;e++)if(!c[e].apply(this,arguments))return!1;return!0}};
p.functions.or=function(b){var c=arguments,d=c.length;return function(){for(var e=0;e<d;e++)if(c[e].apply(this,arguments))return!0;return!1}};p.functions.not=function(b){return function(){return!b.apply(this,arguments)}};p.functions.create=function(b,c){var d=function(){};d.prototype=b.prototype;d=new d;b.apply(d,Array.prototype.slice.call(arguments,1));return d};p.functions.CACHE_RETURN_VALUE=!0;
p.functions.cacheReturnValue=function(b){var c=!1,d;return function(){if(!p.functions.CACHE_RETURN_VALUE)return b();c||(d=b(),c=!0);return d}};p.functions.once=function(b){var c=b;return function(){if(c){var d=c;c=null;d()}}};p.functions.debounce=function(b,c,d){var e=0;return function(f){p.global.clearTimeout(e);var g=arguments;e=p.global.setTimeout(function(){b.apply(d,g)},c)}};
p.functions.throttle=function(b,c,d){var e=0,f=!1,g=[],h=function(){e=0;f&&(f=!1,l())},l=function(){e=p.global.setTimeout(h,c);b.apply(d,g)};return function(m){g=arguments;e?f=!0:l()}};p.functions.rateLimit=function(b,c,d){var e=0,f=function(){e=0};return function(g){e||(e=p.global.setTimeout(f,c),b.apply(d,arguments))}};p.dom.HtmlElement=function(){};p.dom.TagName=function(b){this.tagName_=b};p.dom.TagName.prototype.toString=function(){return this.tagName_};p.dom.TagName.A=new p.dom.TagName("A");p.dom.TagName.ABBR=new p.dom.TagName("ABBR");p.dom.TagName.ACRONYM=new p.dom.TagName("ACRONYM");p.dom.TagName.ADDRESS=new p.dom.TagName("ADDRESS");p.dom.TagName.APPLET=new p.dom.TagName("APPLET");p.dom.TagName.AREA=new p.dom.TagName("AREA");p.dom.TagName.ARTICLE=new p.dom.TagName("ARTICLE");p.dom.TagName.ASIDE=new p.dom.TagName("ASIDE");
p.dom.TagName.AUDIO=new p.dom.TagName("AUDIO");p.dom.TagName.B=new p.dom.TagName("B");p.dom.TagName.BASE=new p.dom.TagName("BASE");p.dom.TagName.BASEFONT=new p.dom.TagName("BASEFONT");p.dom.TagName.BDI=new p.dom.TagName("BDI");p.dom.TagName.BDO=new p.dom.TagName("BDO");p.dom.TagName.BIG=new p.dom.TagName("BIG");p.dom.TagName.BLOCKQUOTE=new p.dom.TagName("BLOCKQUOTE");p.dom.TagName.BODY=new p.dom.TagName("BODY");p.dom.TagName.BR=new p.dom.TagName("BR");p.dom.TagName.BUTTON=new p.dom.TagName("BUTTON");
p.dom.TagName.CANVAS=new p.dom.TagName("CANVAS");p.dom.TagName.CAPTION=new p.dom.TagName("CAPTION");p.dom.TagName.CENTER=new p.dom.TagName("CENTER");p.dom.TagName.CITE=new p.dom.TagName("CITE");p.dom.TagName.CODE=new p.dom.TagName("CODE");p.dom.TagName.COL=new p.dom.TagName("COL");p.dom.TagName.COLGROUP=new p.dom.TagName("COLGROUP");p.dom.TagName.COMMAND=new p.dom.TagName("COMMAND");p.dom.TagName.DATA=new p.dom.TagName("DATA");p.dom.TagName.DATALIST=new p.dom.TagName("DATALIST");
p.dom.TagName.DD=new p.dom.TagName("DD");p.dom.TagName.DEL=new p.dom.TagName("DEL");p.dom.TagName.DETAILS=new p.dom.TagName("DETAILS");p.dom.TagName.DFN=new p.dom.TagName("DFN");p.dom.TagName.DIALOG=new p.dom.TagName("DIALOG");p.dom.TagName.DIR=new p.dom.TagName("DIR");p.dom.TagName.DIV=new p.dom.TagName("DIV");p.dom.TagName.DL=new p.dom.TagName("DL");p.dom.TagName.DT=new p.dom.TagName("DT");p.dom.TagName.EM=new p.dom.TagName("EM");p.dom.TagName.EMBED=new p.dom.TagName("EMBED");
p.dom.TagName.FIELDSET=new p.dom.TagName("FIELDSET");p.dom.TagName.FIGCAPTION=new p.dom.TagName("FIGCAPTION");p.dom.TagName.FIGURE=new p.dom.TagName("FIGURE");p.dom.TagName.FONT=new p.dom.TagName("FONT");p.dom.TagName.FOOTER=new p.dom.TagName("FOOTER");p.dom.TagName.FORM=new p.dom.TagName("FORM");p.dom.TagName.FRAME=new p.dom.TagName("FRAME");p.dom.TagName.FRAMESET=new p.dom.TagName("FRAMESET");p.dom.TagName.H1=new p.dom.TagName("H1");p.dom.TagName.H2=new p.dom.TagName("H2");p.dom.TagName.H3=new p.dom.TagName("H3");
p.dom.TagName.H4=new p.dom.TagName("H4");p.dom.TagName.H5=new p.dom.TagName("H5");p.dom.TagName.H6=new p.dom.TagName("H6");p.dom.TagName.HEAD=new p.dom.TagName("HEAD");p.dom.TagName.HEADER=new p.dom.TagName("HEADER");p.dom.TagName.HGROUP=new p.dom.TagName("HGROUP");p.dom.TagName.HR=new p.dom.TagName("HR");p.dom.TagName.HTML=new p.dom.TagName("HTML");p.dom.TagName.I=new p.dom.TagName("I");p.dom.TagName.IFRAME=new p.dom.TagName("IFRAME");p.dom.TagName.IMG=new p.dom.TagName("IMG");
p.dom.TagName.INPUT=new p.dom.TagName("INPUT");p.dom.TagName.INS=new p.dom.TagName("INS");p.dom.TagName.ISINDEX=new p.dom.TagName("ISINDEX");p.dom.TagName.KBD=new p.dom.TagName("KBD");p.dom.TagName.KEYGEN=new p.dom.TagName("KEYGEN");p.dom.TagName.LABEL=new p.dom.TagName("LABEL");p.dom.TagName.LEGEND=new p.dom.TagName("LEGEND");p.dom.TagName.LI=new p.dom.TagName("LI");p.dom.TagName.LINK=new p.dom.TagName("LINK");p.dom.TagName.MAIN=new p.dom.TagName("MAIN");p.dom.TagName.MAP=new p.dom.TagName("MAP");
p.dom.TagName.MARK=new p.dom.TagName("MARK");p.dom.TagName.MATH=new p.dom.TagName("MATH");p.dom.TagName.MENU=new p.dom.TagName("MENU");p.dom.TagName.MENUITEM=new p.dom.TagName("MENUITEM");p.dom.TagName.META=new p.dom.TagName("META");p.dom.TagName.METER=new p.dom.TagName("METER");p.dom.TagName.NAV=new p.dom.TagName("NAV");p.dom.TagName.NOFRAMES=new p.dom.TagName("NOFRAMES");p.dom.TagName.NOSCRIPT=new p.dom.TagName("NOSCRIPT");p.dom.TagName.OBJECT=new p.dom.TagName("OBJECT");p.dom.TagName.OL=new p.dom.TagName("OL");
p.dom.TagName.OPTGROUP=new p.dom.TagName("OPTGROUP");p.dom.TagName.OPTION=new p.dom.TagName("OPTION");p.dom.TagName.OUTPUT=new p.dom.TagName("OUTPUT");p.dom.TagName.P=new p.dom.TagName("P");p.dom.TagName.PARAM=new p.dom.TagName("PARAM");p.dom.TagName.PICTURE=new p.dom.TagName("PICTURE");p.dom.TagName.PRE=new p.dom.TagName("PRE");p.dom.TagName.PROGRESS=new p.dom.TagName("PROGRESS");p.dom.TagName.Q=new p.dom.TagName("Q");p.dom.TagName.RP=new p.dom.TagName("RP");p.dom.TagName.RT=new p.dom.TagName("RT");
p.dom.TagName.RTC=new p.dom.TagName("RTC");p.dom.TagName.RUBY=new p.dom.TagName("RUBY");p.dom.TagName.S=new p.dom.TagName("S");p.dom.TagName.SAMP=new p.dom.TagName("SAMP");p.dom.TagName.SCRIPT=new p.dom.TagName("SCRIPT");p.dom.TagName.SECTION=new p.dom.TagName("SECTION");p.dom.TagName.SELECT=new p.dom.TagName("SELECT");p.dom.TagName.SMALL=new p.dom.TagName("SMALL");p.dom.TagName.SOURCE=new p.dom.TagName("SOURCE");p.dom.TagName.SPAN=new p.dom.TagName("SPAN");p.dom.TagName.STRIKE=new p.dom.TagName("STRIKE");
p.dom.TagName.STRONG=new p.dom.TagName("STRONG");p.dom.TagName.STYLE=new p.dom.TagName("STYLE");p.dom.TagName.SUB=new p.dom.TagName("SUB");p.dom.TagName.SUMMARY=new p.dom.TagName("SUMMARY");p.dom.TagName.SUP=new p.dom.TagName("SUP");p.dom.TagName.SVG=new p.dom.TagName("SVG");p.dom.TagName.TABLE=new p.dom.TagName("TABLE");p.dom.TagName.TBODY=new p.dom.TagName("TBODY");p.dom.TagName.TD=new p.dom.TagName("TD");p.dom.TagName.TEMPLATE=new p.dom.TagName("TEMPLATE");p.dom.TagName.TEXTAREA=new p.dom.TagName("TEXTAREA");
p.dom.TagName.TFOOT=new p.dom.TagName("TFOOT");p.dom.TagName.TH=new p.dom.TagName("TH");p.dom.TagName.THEAD=new p.dom.TagName("THEAD");p.dom.TagName.TIME=new p.dom.TagName("TIME");p.dom.TagName.TITLE=new p.dom.TagName("TITLE");p.dom.TagName.TR=new p.dom.TagName("TR");p.dom.TagName.TRACK=new p.dom.TagName("TRACK");p.dom.TagName.TT=new p.dom.TagName("TT");p.dom.TagName.U=new p.dom.TagName("U");p.dom.TagName.UL=new p.dom.TagName("UL");p.dom.TagName.VAR=new p.dom.TagName("VAR");p.dom.TagName.VIDEO=new p.dom.TagName("VIDEO");
p.dom.TagName.WBR=new p.dom.TagName("WBR");p.dom.tags={};p.dom.tags.VOID_TAGS_={area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0};p.dom.tags.isVoidTag=function(b){return!0===p.dom.tags.VOID_TAGS_[b]};p.html={};p.html.trustedtypes={};p.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY=p.TRUSTED_TYPES_POLICY_NAME?p.createTrustedTypesPolicy(p.TRUSTED_TYPES_POLICY_NAME+"#html"):null;p.string.TypedString=function(){};p.string.Const=function(b,c){this.stringConstValueWithSecurityContract__googStringSecurityPrivate_=b===p.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_&&c||"";this.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_=p.string.Const.TYPE_MARKER_};p.string.Const.prototype.implementsGoogStringTypedString=!0;p.string.Const.prototype.getTypedStringValue=function(){return this.stringConstValueWithSecurityContract__googStringSecurityPrivate_};
p.DEBUG&&(p.string.Const.prototype.toString=function(){return"Const{"+this.stringConstValueWithSecurityContract__googStringSecurityPrivate_+"}"});p.string.Const.unwrap=function(b){if(b instanceof p.string.Const&&b.constructor===p.string.Const&&b.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_===p.string.Const.TYPE_MARKER_)return b.stringConstValueWithSecurityContract__googStringSecurityPrivate_;p.asserts.fail("expected object of type Const, got '"+b+"'");return"type_error:Const"};
p.string.Const.from=function(b){return new p.string.Const(p.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_,b)};p.string.Const.TYPE_MARKER_={};p.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_={};p.string.Const.EMPTY=p.string.Const.from("");p.html.SafeScript=function(){this.privateDoNotAccessOrElseSafeScriptWrappedValue_="";this.SAFE_SCRIPT_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=p.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_};p.html.SafeScript.prototype.implementsGoogStringTypedString=!0;p.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={};p.html.SafeScript.fromConstant=function(b){b=p.string.Const.unwrap(b);return 0===b.length?p.html.SafeScript.EMPTY:p.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(b)};
p.html.SafeScript.fromConstantAndArgs=function(b,c){for(var d=[],e=1;e<arguments.length;e++)d.push(p.html.SafeScript.stringify_(arguments[e]));return p.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse("("+p.string.Const.unwrap(b)+")("+d.join(", ")+");")};p.html.SafeScript.fromJson=function(b){return p.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(p.html.SafeScript.stringify_(b))};p.html.SafeScript.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeScriptWrappedValue_.toString()};
p.DEBUG&&(p.html.SafeScript.prototype.toString=function(){return"SafeScript{"+this.privateDoNotAccessOrElseSafeScriptWrappedValue_+"}"});p.html.SafeScript.unwrap=function(b){return p.html.SafeScript.unwrapTrustedScript(b).toString()};
p.html.SafeScript.unwrapTrustedScript=function(b){if(b instanceof p.html.SafeScript&&b.constructor===p.html.SafeScript&&b.SAFE_SCRIPT_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===p.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return b.privateDoNotAccessOrElseSafeScriptWrappedValue_;p.asserts.fail("expected object of type SafeScript, got '"+b+"' of type "+p.typeOf(b));return"type_error:SafeScript"};p.html.SafeScript.stringify_=function(b){return JSON.stringify(b).replace(/</g,"\\x3c")};
p.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse=function(b){return(new p.html.SafeScript).initSecurityPrivateDoNotAccessOrElse_(b)};p.html.SafeScript.prototype.initSecurityPrivateDoNotAccessOrElse_=function(b){this.privateDoNotAccessOrElseSafeScriptWrappedValue_=p.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY?p.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY.createScript(b):b;return this};p.html.SafeScript.EMPTY=p.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse("");p.fs={};p.fs.url={};p.fs.url.createObjectUrl=function(b){return p.fs.url.getUrlObject_().createObjectURL(b)};p.fs.url.revokeObjectUrl=function(b){p.fs.url.getUrlObject_().revokeObjectURL(b)};p.fs.url.getUrlObject_=function(){var b=p.fs.url.findUrlObject_();if(null!=b)return b;throw Error("This browser doesn't seem to support blob URLs");};
p.fs.url.findUrlObject_=function(){return void 0!==p.global.URL&&void 0!==p.global.URL.createObjectURL?p.global.URL:void 0!==p.global.webkitURL&&void 0!==p.global.webkitURL.createObjectURL?p.global.webkitURL:void 0!==p.global.createObjectURL?p.global:null};p.fs.url.browserSupportsObjectUrls=function(){return null!=p.fs.url.findUrlObject_()};p.i18n={};p.i18n.bidi={};p.i18n.bidi.FORCE_RTL=!1;
p.i18n.bidi.IS_RTL=p.i18n.bidi.FORCE_RTL||("ar"==p.LOCALE.substring(0,2).toLowerCase()||"fa"==p.LOCALE.substring(0,2).toLowerCase()||"he"==p.LOCALE.substring(0,2).toLowerCase()||"iw"==p.LOCALE.substring(0,2).toLowerCase()||"ps"==p.LOCALE.substring(0,2).toLowerCase()||"sd"==p.LOCALE.substring(0,2).toLowerCase()||"ug"==p.LOCALE.substring(0,2).toLowerCase()||"ur"==p.LOCALE.substring(0,2).toLowerCase()||"yi"==p.LOCALE.substring(0,2).toLowerCase())&&(2==p.LOCALE.length||"-"==p.LOCALE.substring(2,3)||"_"==
p.LOCALE.substring(2,3))||3<=p.LOCALE.length&&"ckb"==p.LOCALE.substring(0,3).toLowerCase()&&(3==p.LOCALE.length||"-"==p.LOCALE.substring(3,4)||"_"==p.LOCALE.substring(3,4))||7<=p.LOCALE.length&&("-"==p.LOCALE.substring(2,3)||"_"==p.LOCALE.substring(2,3))&&("adlm"==p.LOCALE.substring(3,7).toLowerCase()||"arab"==p.LOCALE.substring(3,7).toLowerCase()||"hebr"==p.LOCALE.substring(3,7).toLowerCase()||"nkoo"==p.LOCALE.substring(3,7).toLowerCase()||"rohg"==p.LOCALE.substring(3,7).toLowerCase()||"thaa"==p.LOCALE.substring(3,
7).toLowerCase())||8<=p.LOCALE.length&&("-"==p.LOCALE.substring(3,4)||"_"==p.LOCALE.substring(3,4))&&("adlm"==p.LOCALE.substring(4,8).toLowerCase()||"arab"==p.LOCALE.substring(4,8).toLowerCase()||"hebr"==p.LOCALE.substring(4,8).toLowerCase()||"nkoo"==p.LOCALE.substring(4,8).toLowerCase()||"rohg"==p.LOCALE.substring(4,8).toLowerCase()||"thaa"==p.LOCALE.substring(4,8).toLowerCase());p.i18n.bidi.Format={LRE:"\u202a",RLE:"\u202b",PDF:"\u202c",LRM:"\u200e",RLM:"\u200f"};p.i18n.bidi.Dir={LTR:1,RTL:-1,NEUTRAL:0};
p.i18n.bidi.RIGHT="right";p.i18n.bidi.LEFT="left";p.i18n.bidi.I18N_RIGHT=p.i18n.bidi.IS_RTL?p.i18n.bidi.LEFT:p.i18n.bidi.RIGHT;p.i18n.bidi.I18N_LEFT=p.i18n.bidi.IS_RTL?p.i18n.bidi.RIGHT:p.i18n.bidi.LEFT;p.i18n.bidi.toDir=function(b){return"number"==typeof b?0<b?p.i18n.bidi.Dir.LTR:0>b?p.i18n.bidi.Dir.RTL:p.i18n.bidi.Dir.NEUTRAL:null==b?null:b?p.i18n.bidi.Dir.RTL:p.i18n.bidi.Dir.LTR};p.i18n.bidi.ltrChars_="A-Za-z\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02b8\u0300-\u0590\u0900-\u1fff\u200e\u2c00-\ud801\ud804-\ud839\ud83c-\udbff\uf900-\ufb1c\ufe00-\ufe6f\ufefd-\uffff";
p.i18n.bidi.rtlChars_="\u0591-\u06ef\u06fa-\u08ff\u200f\ud802-\ud803\ud83a-\ud83b\ufb1d-\ufdff\ufe70-\ufefc";p.i18n.bidi.htmlSkipReg_=/<[^>]*>|&[^;]+;/g;p.i18n.bidi.stripHtmlIfNeeded_=function(b,c){return c?b.replace(p.i18n.bidi.htmlSkipReg_,""):b};p.i18n.bidi.rtlCharReg_=new RegExp("["+p.i18n.bidi.rtlChars_+"]");p.i18n.bidi.ltrCharReg_=new RegExp("["+p.i18n.bidi.ltrChars_+"]");p.i18n.bidi.hasAnyRtl=function(b,c){return p.i18n.bidi.rtlCharReg_.test(p.i18n.bidi.stripHtmlIfNeeded_(b,c))};
p.i18n.bidi.hasRtlChar=p.i18n.bidi.hasAnyRtl;p.i18n.bidi.hasAnyLtr=function(b){return p.i18n.bidi.ltrCharReg_.test(p.i18n.bidi.stripHtmlIfNeeded_(b,void 0))};p.i18n.bidi.ltrRe_=new RegExp("^["+p.i18n.bidi.ltrChars_+"]");p.i18n.bidi.rtlRe_=new RegExp("^["+p.i18n.bidi.rtlChars_+"]");p.i18n.bidi.isRtlChar=function(b){return p.i18n.bidi.rtlRe_.test(b)};p.i18n.bidi.isLtrChar=function(b){return p.i18n.bidi.ltrRe_.test(b)};p.i18n.bidi.isNeutralChar=function(b){return!p.i18n.bidi.isLtrChar(b)&&!p.i18n.bidi.isRtlChar(b)};
p.i18n.bidi.ltrDirCheckRe_=new RegExp("^[^"+p.i18n.bidi.rtlChars_+"]*["+p.i18n.bidi.ltrChars_+"]");p.i18n.bidi.rtlDirCheckRe_=new RegExp("^[^"+p.i18n.bidi.ltrChars_+"]*["+p.i18n.bidi.rtlChars_+"]");p.i18n.bidi.startsWithRtl=function(b,c){return p.i18n.bidi.rtlDirCheckRe_.test(p.i18n.bidi.stripHtmlIfNeeded_(b,c))};p.i18n.bidi.isRtlText=p.i18n.bidi.startsWithRtl;p.i18n.bidi.startsWithLtr=function(b,c){return p.i18n.bidi.ltrDirCheckRe_.test(p.i18n.bidi.stripHtmlIfNeeded_(b,c))};
p.i18n.bidi.isLtrText=p.i18n.bidi.startsWithLtr;p.i18n.bidi.isRequiredLtrRe_=/^http:\/\/.*/;p.i18n.bidi.isNeutralText=function(b,c){b=p.i18n.bidi.stripHtmlIfNeeded_(b,c);return p.i18n.bidi.isRequiredLtrRe_.test(b)||!p.i18n.bidi.hasAnyLtr(b)&&!p.i18n.bidi.hasAnyRtl(b)};p.i18n.bidi.ltrExitDirCheckRe_=new RegExp("["+p.i18n.bidi.ltrChars_+"][^"+p.i18n.bidi.rtlChars_+"]*$");p.i18n.bidi.rtlExitDirCheckRe_=new RegExp("["+p.i18n.bidi.rtlChars_+"][^"+p.i18n.bidi.ltrChars_+"]*$");
p.i18n.bidi.endsWithLtr=function(b,c){return p.i18n.bidi.ltrExitDirCheckRe_.test(p.i18n.bidi.stripHtmlIfNeeded_(b,c))};p.i18n.bidi.isLtrExitText=p.i18n.bidi.endsWithLtr;p.i18n.bidi.endsWithRtl=function(b,c){return p.i18n.bidi.rtlExitDirCheckRe_.test(p.i18n.bidi.stripHtmlIfNeeded_(b,c))};p.i18n.bidi.isRtlExitText=p.i18n.bidi.endsWithRtl;p.i18n.bidi.rtlLocalesRe_=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;
p.i18n.bidi.isRtlLanguage=function(b){return p.i18n.bidi.rtlLocalesRe_.test(b)};p.i18n.bidi.bracketGuardTextRe_=/(\(.*?\)+)|(\[.*?\]+)|(\{.*?\}+)|(<.*?>+)/g;p.i18n.bidi.guardBracketInText=function(b,c){c=(void 0===c?p.i18n.bidi.hasAnyRtl(b):c)?p.i18n.bidi.Format.RLM:p.i18n.bidi.Format.LRM;return b.replace(p.i18n.bidi.bracketGuardTextRe_,c+"$&"+c)};p.i18n.bidi.enforceRtlInHtml=function(b){return"<"==b.charAt(0)?b.replace(/<\w+/,"$& dir=rtl"):"\n<span dir=rtl>"+b+"</span>"};
p.i18n.bidi.enforceRtlInText=function(b){return p.i18n.bidi.Format.RLE+b+p.i18n.bidi.Format.PDF};p.i18n.bidi.enforceLtrInHtml=function(b){return"<"==b.charAt(0)?b.replace(/<\w+/,"$& dir=ltr"):"\n<span dir=ltr>"+b+"</span>"};p.i18n.bidi.enforceLtrInText=function(b){return p.i18n.bidi.Format.LRE+b+p.i18n.bidi.Format.PDF};p.i18n.bidi.dimensionsRe_=/:\s*([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)/g;p.i18n.bidi.leftRe_=/left/gi;p.i18n.bidi.rightRe_=/right/gi;p.i18n.bidi.tempRe_=/%%%%/g;
p.i18n.bidi.mirrorCSS=function(b){return b.replace(p.i18n.bidi.dimensionsRe_,":$1 $4 $3 $2").replace(p.i18n.bidi.leftRe_,"%%%%").replace(p.i18n.bidi.rightRe_,p.i18n.bidi.LEFT).replace(p.i18n.bidi.tempRe_,p.i18n.bidi.RIGHT)};p.i18n.bidi.doubleQuoteSubstituteRe_=/([\u0591-\u05f2])"/g;p.i18n.bidi.singleQuoteSubstituteRe_=/([\u0591-\u05f2])'/g;p.i18n.bidi.normalizeHebrewQuote=function(b){return b.replace(p.i18n.bidi.doubleQuoteSubstituteRe_,"$1\u05f4").replace(p.i18n.bidi.singleQuoteSubstituteRe_,"$1\u05f3")};
p.i18n.bidi.wordSeparatorRe_=/\s+/;p.i18n.bidi.hasNumeralsRe_=/[\d\u06f0-\u06f9]/;p.i18n.bidi.rtlDetectionThreshold_=.4;
p.i18n.bidi.estimateDirection=function(b,c){var d=0,e=0,f=!1;b=p.i18n.bidi.stripHtmlIfNeeded_(b,c).split(p.i18n.bidi.wordSeparatorRe_);for(c=0;c<b.length;c++){var g=b[c];p.i18n.bidi.startsWithRtl(g)?(d++,e++):p.i18n.bidi.isRequiredLtrRe_.test(g)?f=!0:p.i18n.bidi.hasAnyLtr(g)?e++:p.i18n.bidi.hasNumeralsRe_.test(g)&&(f=!0)}return 0==e?f?p.i18n.bidi.Dir.LTR:p.i18n.bidi.Dir.NEUTRAL:d/e>p.i18n.bidi.rtlDetectionThreshold_?p.i18n.bidi.Dir.RTL:p.i18n.bidi.Dir.LTR};
p.i18n.bidi.detectRtlDirectionality=function(b,c){return p.i18n.bidi.estimateDirection(b,c)==p.i18n.bidi.Dir.RTL};p.i18n.bidi.setElementDirAndAlign=function(b,c){b&&(c=p.i18n.bidi.toDir(c))&&(b.style.textAlign=c==p.i18n.bidi.Dir.RTL?p.i18n.bidi.RIGHT:p.i18n.bidi.LEFT,b.dir=c==p.i18n.bidi.Dir.RTL?"rtl":"ltr")};p.i18n.bidi.setElementDirByTextDirectionality=function(b,c){switch(p.i18n.bidi.estimateDirection(c)){case p.i18n.bidi.Dir.LTR:b.dir="ltr";break;case p.i18n.bidi.Dir.RTL:b.dir="rtl";break;default:b.removeAttribute("dir")}};
p.i18n.bidi.DirectionalString=function(){};p.html.TrustedResourceUrl=function(b,c,d){this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_=b===p.html.TrustedResourceUrl.CONSTRUCTOR_TOKEN_PRIVATE_&&c||"";this.trustedURL_=b===p.html.TrustedResourceUrl.CONSTRUCTOR_TOKEN_PRIVATE_&&d||null;this.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=p.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_};p.html.TrustedResourceUrl.prototype.implementsGoogStringTypedString=!0;
p.html.TrustedResourceUrl.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_.toString()};p.html.TrustedResourceUrl.prototype.implementsGoogI18nBidiDirectionalString=!0;p.html.TrustedResourceUrl.prototype.getDirection=function(){return p.i18n.bidi.Dir.LTR};p.DEBUG&&(p.html.TrustedResourceUrl.prototype.toString=function(){return"TrustedResourceUrl{"+this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_+"}"});
p.html.TrustedResourceUrl.unwrap=function(b){return p.html.TrustedResourceUrl.unwrapTrustedScriptURL(b).toString()};
p.html.TrustedResourceUrl.unwrapTrustedScriptURL=function(b){if(b instanceof p.html.TrustedResourceUrl&&b.constructor===p.html.TrustedResourceUrl&&b.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===p.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return b.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_;p.asserts.fail("expected object of type TrustedResourceUrl, got '"+b+"' of type "+p.typeOf(b));return"type_error:TrustedResourceUrl"};
p.html.TrustedResourceUrl.unwrapTrustedURL=function(b){return b.trustedURL_?b.trustedURL_:p.html.TrustedResourceUrl.unwrap(b)};
p.html.TrustedResourceUrl.format=function(b,c){var d=p.string.Const.unwrap(b);if(!p.html.TrustedResourceUrl.BASE_URL_.test(d))throw Error("Invalid TrustedResourceUrl format: "+d);b=d.replace(p.html.TrustedResourceUrl.FORMAT_MARKER_,function(e,f){if(!Object.prototype.hasOwnProperty.call(c,f))throw Error('Found marker, "'+f+'", in format string, "'+d+'", but no valid label mapping found in args: '+JSON.stringify(c));e=c[f];return e instanceof p.string.Const?p.string.Const.unwrap(e):encodeURIComponent(String(e))});
return p.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(b)};p.html.TrustedResourceUrl.FORMAT_MARKER_=/%{(\w+)}/g;p.html.TrustedResourceUrl.BASE_URL_=/^((https:)?\/\/[0-9a-z.:[\]-]+\/|\/[^/\\]|[^:/\\%]+\/|[^:/\\%]*[?#]|about:blank#)/i;p.html.TrustedResourceUrl.URL_PARAM_PARSER_=/^([^?#]*)(\?[^#]*)?(#[\s\S]*)?/;
p.html.TrustedResourceUrl.formatWithParams=function(b,c,d,e){b=p.html.TrustedResourceUrl.format(b,c);b=p.html.TrustedResourceUrl.unwrap(b);b=p.html.TrustedResourceUrl.URL_PARAM_PARSER_.exec(b);c=b[3]||"";return p.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(b[1]+p.html.TrustedResourceUrl.stringifyParams_("?",b[2]||"",d)+p.html.TrustedResourceUrl.stringifyParams_("#",c,e))};p.html.TrustedResourceUrl.fromConstant=function(b){return p.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(p.string.Const.unwrap(b))};
p.html.TrustedResourceUrl.fromConstants=function(b){for(var c="",d=0;d<b.length;d++)c+=p.string.Const.unwrap(b[d]);return p.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(c)};p.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={};
p.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse=function(b){var c=p.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY?p.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY.createScriptURL(b):b;b=p.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY?p.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY.createURL(b):null;return new p.html.TrustedResourceUrl(p.html.TrustedResourceUrl.CONSTRUCTOR_TOKEN_PRIVATE_,c,b)};
p.html.TrustedResourceUrl.stringifyParams_=function(b,c,d){if(null==d)return c;if("string"===typeof d)return d?b+encodeURIComponent(d):"";for(var e in d){var f=d[e];f=p.isArray(f)?f:[f];for(var g=0;g<f.length;g++){var h=f[g];null!=h&&(c||(c=b),c+=(c.length>b.length?"&":"")+encodeURIComponent(e)+"="+encodeURIComponent(String(h)))}}return c};p.html.TrustedResourceUrl.CONSTRUCTOR_TOKEN_PRIVATE_={};p.html.SafeUrl=function(b,c){this.privateDoNotAccessOrElseSafeUrlWrappedValue_=b===p.html.SafeUrl.CONSTRUCTOR_TOKEN_PRIVATE_&&c||"";this.SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=p.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_};p.html.SafeUrl.INNOCUOUS_STRING="about:invalid#zClosurez";p.html.SafeUrl.prototype.implementsGoogStringTypedString=!0;p.html.SafeUrl.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeUrlWrappedValue_.toString()};
p.html.SafeUrl.prototype.implementsGoogI18nBidiDirectionalString=!0;p.html.SafeUrl.prototype.getDirection=function(){return p.i18n.bidi.Dir.LTR};p.DEBUG&&(p.html.SafeUrl.prototype.toString=function(){return"SafeUrl{"+this.privateDoNotAccessOrElseSafeUrlWrappedValue_+"}"});p.html.SafeUrl.unwrap=function(b){return p.html.SafeUrl.unwrapTrustedURL(b).toString()};
p.html.SafeUrl.unwrapTrustedURL=function(b){if(b instanceof p.html.SafeUrl&&b.constructor===p.html.SafeUrl&&b.SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===p.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return b.privateDoNotAccessOrElseSafeUrlWrappedValue_;p.asserts.fail("expected object of type SafeUrl, got '"+b+"' of type "+p.typeOf(b));return"type_error:SafeUrl"};p.html.SafeUrl.fromConstant=function(b){return p.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(p.string.Const.unwrap(b))};
p.html.SAFE_MIME_TYPE_PATTERN_=/^(?:audio\/(?:3gpp2|3gpp|aac|L16|midi|mp3|mp4|mpeg|oga|ogg|opus|x-m4a|x-wav|wav|webm)|image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp|x-icon)|text\/csv|video\/(?:mpeg|mp4|ogg|webm|quicktime))(?:;\w+=(?:\w+|"[\w;=]+"))*$/i;p.html.SafeUrl.isSafeMimeType=function(b){return p.html.SAFE_MIME_TYPE_PATTERN_.test(b)};p.html.SafeUrl.fromBlob=function(b){b=p.html.SAFE_MIME_TYPE_PATTERN_.test(b.type)?p.fs.url.createObjectUrl(b):p.html.SafeUrl.INNOCUOUS_STRING;return p.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(b)};
p.html.DATA_URL_PATTERN_=/^data:([^,]*);base64,[a-z0-9+\/]+=*$/i;p.html.SafeUrl.fromDataUrl=function(b){b=b.replace(/(%0A|%0D)/g,"");var c=b.match(p.html.DATA_URL_PATTERN_);c=c&&p.html.SAFE_MIME_TYPE_PATTERN_.test(c[1]);return p.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(c?b:p.html.SafeUrl.INNOCUOUS_STRING)};p.html.SafeUrl.fromTelUrl=function(b){p.string.internal.caseInsensitiveStartsWith(b,"tel:")||(b=p.html.SafeUrl.INNOCUOUS_STRING);return p.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(b)};
p.html.SIP_URL_PATTERN_=/^sip[s]?:[+a-z0-9_.!$%&'*\/=^`{|}~-]+@([a-z0-9-]+\.)+[a-z0-9]{2,63}$/i;p.html.SafeUrl.fromSipUrl=function(b){p.html.SIP_URL_PATTERN_.test(decodeURIComponent(b))||(b=p.html.SafeUrl.INNOCUOUS_STRING);return p.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(b)};p.html.SafeUrl.fromFacebookMessengerUrl=function(b){p.string.internal.caseInsensitiveStartsWith(b,"fb-messenger://share")||(b=p.html.SafeUrl.INNOCUOUS_STRING);return p.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(b)};
p.html.SafeUrl.fromWhatsAppUrl=function(b){p.string.internal.caseInsensitiveStartsWith(b,"whatsapp://send")||(b=p.html.SafeUrl.INNOCUOUS_STRING);return p.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(b)};p.html.SafeUrl.fromSmsUrl=function(b){p.string.internal.caseInsensitiveStartsWith(b,"sms:")&&p.html.SafeUrl.isSmsUrlBodyValid_(b)||(b=p.html.SafeUrl.INNOCUOUS_STRING);return p.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(b)};
p.html.SafeUrl.isSmsUrlBodyValid_=function(b){var c=b.indexOf("#");0<c&&(b=b.substring(0,c));c=b.match(/[?&]body=/gi);if(!c)return!0;if(1<c.length)return!1;b=b.match(/[?&]body=([^&]*)/)[1];if(!b)return!0;try{decodeURIComponent(b)}catch(d){return!1}return/^(?:[a-z0-9\-_.~]|%[0-9a-f]{2})+$/i.test(b)};p.html.SafeUrl.fromSshUrl=function(b){p.string.internal.caseInsensitiveStartsWith(b,"ssh://")||(b=p.html.SafeUrl.INNOCUOUS_STRING);return p.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(b)};
p.html.SafeUrl.sanitizeChromeExtensionUrl=function(b,c){return p.html.SafeUrl.sanitizeExtensionUrl_(/^chrome-extension:\/\/([^\/]+)\//,b,c)};p.html.SafeUrl.sanitizeFirefoxExtensionUrl=function(b,c){return p.html.SafeUrl.sanitizeExtensionUrl_(/^moz-extension:\/\/([^\/]+)\//,b,c)};p.html.SafeUrl.sanitizeEdgeExtensionUrl=function(b,c){return p.html.SafeUrl.sanitizeExtensionUrl_(/^ms-browser-extension:\/\/([^\/]+)\//,b,c)};
p.html.SafeUrl.sanitizeExtensionUrl_=function(b,c,d){(b=b.exec(c))?(b=b[1],-1==(d instanceof p.string.Const?[p.string.Const.unwrap(d)]:d.map(function(e){return p.string.Const.unwrap(e)})).indexOf(b)&&(c=p.html.SafeUrl.INNOCUOUS_STRING)):c=p.html.SafeUrl.INNOCUOUS_STRING;return p.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(c)};p.html.SafeUrl.fromTrustedResourceUrl=function(b){return p.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(p.html.TrustedResourceUrl.unwrap(b))};
p.html.SAFE_URL_PATTERN_=/^(?:(?:https?|mailto|ftp):|[^:/?#]*(?:[/?#]|$))/i;p.html.SafeUrl.SAFE_URL_PATTERN=p.html.SAFE_URL_PATTERN_;p.html.SafeUrl.sanitize=function(b){if(b instanceof p.html.SafeUrl)return b;b="object"==typeof b&&b.implementsGoogStringTypedString?b.getTypedStringValue():String(b);p.html.SAFE_URL_PATTERN_.test(b)||(b=p.html.SafeUrl.INNOCUOUS_STRING);return p.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(b)};
p.html.SafeUrl.sanitizeAssertUnchanged=function(b,c){if(b instanceof p.html.SafeUrl)return b;b="object"==typeof b&&b.implementsGoogStringTypedString?b.getTypedStringValue():String(b);if(c&&/^data:/i.test(b)&&(c=p.html.SafeUrl.fromDataUrl(b),c.getTypedStringValue()==b))return c;p.asserts.assert(p.html.SAFE_URL_PATTERN_.test(b),"%s does not match the safe URL pattern",b)||(b=p.html.SafeUrl.INNOCUOUS_STRING);return p.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(b)};
p.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={};p.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse=function(b){return new p.html.SafeUrl(p.html.SafeUrl.CONSTRUCTOR_TOKEN_PRIVATE_,p.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY?p.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY.createURL(b):b)};p.html.SafeUrl.ABOUT_BLANK=p.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse("about:blank");p.html.SafeUrl.CONSTRUCTOR_TOKEN_PRIVATE_={};p.html.SafeStyle=function(){this.privateDoNotAccessOrElseSafeStyleWrappedValue_="";this.SAFE_STYLE_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=p.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_};p.html.SafeStyle.prototype.implementsGoogStringTypedString=!0;p.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={};
p.html.SafeStyle.fromConstant=function(b){b=p.string.Const.unwrap(b);if(0===b.length)return p.html.SafeStyle.EMPTY;p.asserts.assert(p.string.internal.endsWith(b,";"),"Last character of style string is not ';': "+b);p.asserts.assert(p.string.internal.contains(b,":"),"Style string must contain at least one ':', to specify a \"name: value\" pair: "+b);return p.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(b)};p.html.SafeStyle.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeStyleWrappedValue_};
p.DEBUG&&(p.html.SafeStyle.prototype.toString=function(){return"SafeStyle{"+this.privateDoNotAccessOrElseSafeStyleWrappedValue_+"}"});p.html.SafeStyle.unwrap=function(b){if(b instanceof p.html.SafeStyle&&b.constructor===p.html.SafeStyle&&b.SAFE_STYLE_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===p.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return b.privateDoNotAccessOrElseSafeStyleWrappedValue_;p.asserts.fail("expected object of type SafeStyle, got '"+b+"' of type "+p.typeOf(b));return"type_error:SafeStyle"};
p.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse=function(b){return(new p.html.SafeStyle).initSecurityPrivateDoNotAccessOrElse_(b)};p.html.SafeStyle.prototype.initSecurityPrivateDoNotAccessOrElse_=function(b){this.privateDoNotAccessOrElseSafeStyleWrappedValue_=b;return this};p.html.SafeStyle.EMPTY=p.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse("");p.html.SafeStyle.INNOCUOUS_STRING="zClosurez";
p.html.SafeStyle.create=function(b){var c="",d;for(d in b){if(!/^[-_a-zA-Z0-9]+$/.test(d))throw Error("Name allows only [-_a-zA-Z0-9], got: "+d);var e=b[d];null!=e&&(e=p.isArray(e)?p.array.map(e,p.html.SafeStyle.sanitizePropertyValue_).join(" "):p.html.SafeStyle.sanitizePropertyValue_(e),c+=d+":"+e+";")}return c?p.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(c):p.html.SafeStyle.EMPTY};
p.html.SafeStyle.sanitizePropertyValue_=function(b){if(b instanceof p.html.SafeUrl)return'url("'+p.html.SafeUrl.unwrap(b).replace(/</g,"%3c").replace(/[\\"]/g,"\\$&")+'")';b=b instanceof p.string.Const?p.string.Const.unwrap(b):p.html.SafeStyle.sanitizePropertyValueString_(String(b));if(/[{;}]/.test(b))throw new p.asserts.AssertionError("Value does not allow [{;}], got: %s.",[b]);return b};
p.html.SafeStyle.sanitizePropertyValueString_=function(b){var c=b.replace(p.html.SafeStyle.FUNCTIONS_RE_,"$1").replace(p.html.SafeStyle.FUNCTIONS_RE_,"$1").replace(p.html.SafeStyle.URL_RE_,"url");if(p.html.SafeStyle.VALUE_RE_.test(c)){if(p.html.SafeStyle.COMMENT_RE_.test(b))return p.asserts.fail("String value disallows comments, got: "+b),p.html.SafeStyle.INNOCUOUS_STRING;if(!p.html.SafeStyle.hasBalancedQuotes_(b))return p.asserts.fail("String value requires balanced quotes, got: "+b),p.html.SafeStyle.INNOCUOUS_STRING;
if(!p.html.SafeStyle.hasBalancedSquareBrackets_(b))return p.asserts.fail("String value requires balanced square brackets and one identifier per pair of brackets, got: "+b),p.html.SafeStyle.INNOCUOUS_STRING}else return p.asserts.fail("String value allows only "+p.html.SafeStyle.VALUE_ALLOWED_CHARS_+" and simple functions, got: "+b),p.html.SafeStyle.INNOCUOUS_STRING;return p.html.SafeStyle.sanitizeUrl_(b)};
p.html.SafeStyle.hasBalancedQuotes_=function(b){for(var c=!0,d=!0,e=0;e<b.length;e++){var f=b.charAt(e);"'"==f&&d?c=!c:'"'==f&&c&&(d=!d)}return c&&d};p.html.SafeStyle.hasBalancedSquareBrackets_=function(b){for(var c=!0,d=/^[-_a-zA-Z0-9]$/,e=0;e<b.length;e++){var f=b.charAt(e);if("]"==f){if(c)return!1;c=!0}else if("["==f){if(!c)return!1;c=!1}else if(!c&&!d.test(f))return!1}return c};p.html.SafeStyle.VALUE_ALLOWED_CHARS_="[-,.\"'%_!# a-zA-Z0-9\\[\\]]";
p.html.SafeStyle.VALUE_RE_=new RegExp("^"+p.html.SafeStyle.VALUE_ALLOWED_CHARS_+"+$");p.html.SafeStyle.URL_RE_=/\b(url\([ \t\n]*)('[ -&(-\[\]-~]*'|"[ !#-\[\]-~]*"|[!#-&*-\[\]-~]*)([ \t\n]*\))/g;p.html.SafeStyle.ALLOWED_FUNCTIONS_="calc cubic-bezier fit-content hsl hsla matrix minmax repeat rgb rgba (rotate|scale|translate)(X|Y|Z|3d)?".split(" ");p.html.SafeStyle.FUNCTIONS_RE_=new RegExp("\\b("+p.html.SafeStyle.ALLOWED_FUNCTIONS_.join("|")+")\\([-+*/0-9a-z.%\\[\\], ]+\\)","g");
p.html.SafeStyle.COMMENT_RE_=/\/\*/;p.html.SafeStyle.sanitizeUrl_=function(b){return b.replace(p.html.SafeStyle.URL_RE_,function(c,d,e,f){var g="";e=e.replace(/^(['"])(.*)\1$/,function(h,l,m){g=l;return m});c=p.html.SafeUrl.sanitize(e).getTypedStringValue();return d+g+c+g+f})};
p.html.SafeStyle.concat=function(b){var c="",d=function(e){p.isArray(e)?p.array.forEach(e,d):c+=p.html.SafeStyle.unwrap(e)};p.array.forEach(arguments,d);return c?p.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(c):p.html.SafeStyle.EMPTY};p.html.SafeStyleSheet=function(){this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_="";this.SAFE_STYLE_SHEET_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=p.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_};p.html.SafeStyleSheet.prototype.implementsGoogStringTypedString=!0;p.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={};
p.html.SafeStyleSheet.createRule=function(b,c){if(p.string.internal.contains(b,"<"))throw Error("Selector does not allow '<', got: "+b);var d=b.replace(/('|")((?!\1)[^\r\n\f\\]|\\[\s\S])*\1/g,"");if(!/^[-_a-zA-Z0-9#.:* ,>+~[\]()=^$|]+$/.test(d))throw Error("Selector allows only [-_a-zA-Z0-9#.:* ,>+~[\\]()=^$|] and strings, got: "+b);if(!p.html.SafeStyleSheet.hasBalancedBrackets_(d))throw Error("() and [] in selector must be balanced, got: "+b);c instanceof p.html.SafeStyle||(c=p.html.SafeStyle.create(c));
b=b+"{"+p.html.SafeStyle.unwrap(c).replace(/</g,"\\3C ")+"}";return p.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(b)};p.html.SafeStyleSheet.hasBalancedBrackets_=function(b){for(var c={"(":")","[":"]"},d=[],e=0;e<b.length;e++){var f=b[e];if(c[f])d.push(c[f]);else if(p.object.contains(c,f)&&d.pop()!=f)return!1}return 0==d.length};
p.html.SafeStyleSheet.concat=function(b){var c="",d=function(e){p.isArray(e)?p.array.forEach(e,d):c+=p.html.SafeStyleSheet.unwrap(e)};p.array.forEach(arguments,d);return p.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(c)};p.html.SafeStyleSheet.fromConstant=function(b){b=p.string.Const.unwrap(b);if(0===b.length)return p.html.SafeStyleSheet.EMPTY;p.asserts.assert(!p.string.internal.contains(b,"<"),"Forbidden '<' character in style sheet string: "+b);return p.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(b)};
p.html.SafeStyleSheet.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_};p.DEBUG&&(p.html.SafeStyleSheet.prototype.toString=function(){return"SafeStyleSheet{"+this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_+"}"});
p.html.SafeStyleSheet.unwrap=function(b){if(b instanceof p.html.SafeStyleSheet&&b.constructor===p.html.SafeStyleSheet&&b.SAFE_STYLE_SHEET_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===p.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return b.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_;p.asserts.fail("expected object of type SafeStyleSheet, got '"+b+"' of type "+p.typeOf(b));return"type_error:SafeStyleSheet"};
p.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse=function(b){return(new p.html.SafeStyleSheet).initSecurityPrivateDoNotAccessOrElse_(b)};p.html.SafeStyleSheet.prototype.initSecurityPrivateDoNotAccessOrElse_=function(b){this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_=b;return this};p.html.SafeStyleSheet.EMPTY=p.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse("");p.html.SafeHtml=function(){this.privateDoNotAccessOrElseSafeHtmlWrappedValue_="";this.SAFE_HTML_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=p.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_;this.dir_=null};p.html.SafeHtml.ENABLE_ERROR_MESSAGES=p.DEBUG;p.html.SafeHtml.SUPPORT_STYLE_ATTRIBUTE=!0;p.html.SafeHtml.prototype.implementsGoogI18nBidiDirectionalString=!0;p.html.SafeHtml.prototype.getDirection=function(){return this.dir_};p.html.SafeHtml.prototype.implementsGoogStringTypedString=!0;
p.html.SafeHtml.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeHtmlWrappedValue_.toString()};p.DEBUG&&(p.html.SafeHtml.prototype.toString=function(){return"SafeHtml{"+this.privateDoNotAccessOrElseSafeHtmlWrappedValue_+"}"});p.html.SafeHtml.unwrap=function(b){return p.html.SafeHtml.unwrapTrustedHTML(b).toString()};
p.html.SafeHtml.unwrapTrustedHTML=function(b){if(b instanceof p.html.SafeHtml&&b.constructor===p.html.SafeHtml&&b.SAFE_HTML_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===p.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return b.privateDoNotAccessOrElseSafeHtmlWrappedValue_;p.asserts.fail("expected object of type SafeHtml, got '"+b+"' of type "+p.typeOf(b));return"type_error:SafeHtml"};
p.html.SafeHtml.htmlEscape=function(b){if(b instanceof p.html.SafeHtml)return b;var c="object"==typeof b,d=null;c&&b.implementsGoogI18nBidiDirectionalString&&(d=b.getDirection());return p.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(p.string.internal.htmlEscape(c&&b.implementsGoogStringTypedString?b.getTypedStringValue():String(b)),d)};
p.html.SafeHtml.htmlEscapePreservingNewlines=function(b){if(b instanceof p.html.SafeHtml)return b;b=p.html.SafeHtml.htmlEscape(b);return p.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(p.string.internal.newLineToBr(p.html.SafeHtml.unwrap(b)),b.getDirection())};
p.html.SafeHtml.htmlEscapePreservingNewlinesAndSpaces=function(b){if(b instanceof p.html.SafeHtml)return b;b=p.html.SafeHtml.htmlEscape(b);return p.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(p.string.internal.whitespaceEscape(p.html.SafeHtml.unwrap(b)),b.getDirection())};p.html.SafeHtml.from=p.html.SafeHtml.htmlEscape;p.html.SafeHtml.VALID_NAMES_IN_TAG_=/^[a-zA-Z0-9-]+$/;p.html.SafeHtml.URL_ATTRIBUTES_={action:!0,cite:!0,data:!0,formaction:!0,href:!0,manifest:!0,poster:!0,src:!0};
p.html.SafeHtml.NOT_ALLOWED_TAG_NAMES_={APPLET:!0,BASE:!0,EMBED:!0,IFRAME:!0,LINK:!0,MATH:!0,META:!0,OBJECT:!0,SCRIPT:!0,STYLE:!0,SVG:!0,TEMPLATE:!0};p.html.SafeHtml.create=function(b,c,d){p.html.SafeHtml.verifyTagName(String(b));return p.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse(String(b),c,d)};
p.html.SafeHtml.verifyTagName=function(b){if(!p.html.SafeHtml.VALID_NAMES_IN_TAG_.test(b))throw Error(p.html.SafeHtml.ENABLE_ERROR_MESSAGES?"Invalid tag name <"+b+">.":"");if(b.toUpperCase()in p.html.SafeHtml.NOT_ALLOWED_TAG_NAMES_)throw Error(p.html.SafeHtml.ENABLE_ERROR_MESSAGES?"Tag name <"+b+"> is not allowed for SafeHtml.":"");};
p.html.SafeHtml.createIframe=function(b,c,d,e){b&&p.html.TrustedResourceUrl.unwrap(b);var f={};f.src=b||null;f.srcdoc=c&&p.html.SafeHtml.unwrap(c);b=p.html.SafeHtml.combineAttributes(f,{sandbox:""},d);return p.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("iframe",b,e)};
p.html.SafeHtml.createSandboxIframe=function(b,c,d,e){if(!p.html.SafeHtml.canUseSandboxIframe())throw Error(p.html.SafeHtml.ENABLE_ERROR_MESSAGES?"The browser does not support sandboxed iframes.":"");var f={};f.src=b?p.html.SafeUrl.unwrap(p.html.SafeUrl.sanitize(b)):null;f.srcdoc=c||null;f.sandbox="";b=p.html.SafeHtml.combineAttributes(f,{},d);return p.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("iframe",b,e)};
p.html.SafeHtml.canUseSandboxIframe=function(){return p.global.HTMLIFrameElement&&"sandbox"in p.global.HTMLIFrameElement.prototype};p.html.SafeHtml.createScriptSrc=function(b,c){p.html.TrustedResourceUrl.unwrap(b);b=p.html.SafeHtml.combineAttributes({src:b},{},c);return p.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("script",b)};
p.html.SafeHtml.createScript=function(b,c){for(var d in c){var e=d.toLowerCase();if("language"==e||"src"==e||"text"==e||"type"==e)throw Error(p.html.SafeHtml.ENABLE_ERROR_MESSAGES?'Cannot set "'+e+'" attribute':"");}d="";b=p.array.concat(b);for(e=0;e<b.length;e++)d+=p.html.SafeScript.unwrap(b[e]);b=p.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(d,p.i18n.bidi.Dir.NEUTRAL);return p.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("script",c,b)};
p.html.SafeHtml.createStyle=function(b,c){c=p.html.SafeHtml.combineAttributes({type:"text/css"},{},c);var d="";b=p.array.concat(b);for(var e=0;e<b.length;e++)d+=p.html.SafeStyleSheet.unwrap(b[e]);b=p.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(d,p.i18n.bidi.Dir.NEUTRAL);return p.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("style",c,b)};
p.html.SafeHtml.createMetaRefresh=function(b,c){b=p.html.SafeUrl.unwrap(p.html.SafeUrl.sanitize(b));(p.labs.userAgent.browser.isIE()||p.labs.userAgent.browser.isEdge())&&p.string.internal.contains(b,";")&&(b="'"+b.replace(/'/g,"%27")+"'");return p.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("meta",{"http-equiv":"refresh",content:(c||0)+"; url="+b})};
p.html.SafeHtml.getAttrNameAndValue_=function(b,c,d){if(d instanceof p.string.Const)d=p.string.Const.unwrap(d);else if("style"==c.toLowerCase())if(p.html.SafeHtml.SUPPORT_STYLE_ATTRIBUTE)d=p.html.SafeHtml.getStyleValue_(d);else throw Error(p.html.SafeHtml.ENABLE_ERROR_MESSAGES?'Attribute "style" not supported.':"");else{if(/^on/i.test(c))throw Error(p.html.SafeHtml.ENABLE_ERROR_MESSAGES?'Attribute "'+c+'" requires goog.string.Const value, "'+d+'" given.':"");if(c.toLowerCase()in p.html.SafeHtml.URL_ATTRIBUTES_)if(d instanceof
p.html.TrustedResourceUrl)d=p.html.TrustedResourceUrl.unwrap(d);else if(d instanceof p.html.SafeUrl)d=p.html.SafeUrl.unwrap(d);else if("string"===typeof d)d=p.html.SafeUrl.sanitize(d).getTypedStringValue();else throw Error(p.html.SafeHtml.ENABLE_ERROR_MESSAGES?'Attribute "'+c+'" on tag "'+b+'" requires goog.html.SafeUrl, goog.string.Const, or string, value "'+d+'" given.':"");}d.implementsGoogStringTypedString&&(d=d.getTypedStringValue());p.asserts.assert("string"===typeof d||"number"===typeof d,
"String or number value expected, got "+typeof d+" with value: "+d);return c+'="'+p.string.internal.htmlEscape(String(d))+'"'};p.html.SafeHtml.getStyleValue_=function(b){if(!p.isObject(b))throw Error(p.html.SafeHtml.ENABLE_ERROR_MESSAGES?'The "style" attribute requires goog.html.SafeStyle or map of style properties, '+typeof b+" given: "+b:"");b instanceof p.html.SafeStyle||(b=p.html.SafeStyle.create(b));return p.html.SafeStyle.unwrap(b)};
p.html.SafeHtml.createWithDir=function(b,c,d,e){c=p.html.SafeHtml.create(c,d,e);c.dir_=b;return c};
p.html.SafeHtml.join=function(b,c){b=p.html.SafeHtml.htmlEscape(b);var d=b.getDirection(),e=[],f=function(g){p.isArray(g)?p.array.forEach(g,f):(g=p.html.SafeHtml.htmlEscape(g),e.push(p.html.SafeHtml.unwrap(g)),g=g.getDirection(),d==p.i18n.bidi.Dir.NEUTRAL?d=g:g!=p.i18n.bidi.Dir.NEUTRAL&&d!=g&&(d=null))};p.array.forEach(c,f);return p.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(e.join(p.html.SafeHtml.unwrap(b)),d)};
p.html.SafeHtml.concat=function(b){return p.html.SafeHtml.join(p.html.SafeHtml.EMPTY,Array.prototype.slice.call(arguments))};p.html.SafeHtml.concatWithDir=function(b,c){var d=p.html.SafeHtml.concat(p.array.slice(arguments,1));d.dir_=b;return d};p.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={};p.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse=function(b,c){return(new p.html.SafeHtml).initSecurityPrivateDoNotAccessOrElse_(b,c)};
p.html.SafeHtml.prototype.initSecurityPrivateDoNotAccessOrElse_=function(b,c){this.privateDoNotAccessOrElseSafeHtmlWrappedValue_=p.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY?p.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY.createHTML(b):b;this.dir_=c;return this};
p.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse=function(b,c,d){var e=null;var f="<"+b+p.html.SafeHtml.stringifyAttributes(b,c);null==d?d=[]:p.isArray(d)||(d=[d]);p.dom.tags.isVoidTag(b.toLowerCase())?(p.asserts.assert(!d.length,"Void tag <"+b+"> does not allow content."),f+=">"):(e=p.html.SafeHtml.concat(d),f+=">"+p.html.SafeHtml.unwrap(e)+"</"+b+">",e=e.getDirection());(b=c&&c.dir)&&(e=/^(ltr|rtl|auto)$/i.test(b)?p.i18n.bidi.Dir.NEUTRAL:null);return p.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(f,
e)};p.html.SafeHtml.stringifyAttributes=function(b,c){var d="";if(c)for(var e in c){if(!p.html.SafeHtml.VALID_NAMES_IN_TAG_.test(e))throw Error(p.html.SafeHtml.ENABLE_ERROR_MESSAGES?'Invalid attribute name "'+e+'".':"");var f=c[e];null!=f&&(d+=" "+p.html.SafeHtml.getAttrNameAndValue_(b,e,f))}return d};
p.html.SafeHtml.combineAttributes=function(b,c,d){var e={},f;for(f in b)p.asserts.assert(f.toLowerCase()==f,"Must be lower case"),e[f]=b[f];for(f in c)p.asserts.assert(f.toLowerCase()==f,"Must be lower case"),e[f]=c[f];if(d)for(f in d){var g=f.toLowerCase();if(g in b)throw Error(p.html.SafeHtml.ENABLE_ERROR_MESSAGES?'Cannot override "'+g+'" attribute, got "'+f+'" with value "'+d[f]+'"':"");g in c&&delete e[g];e[f]=d[f]}return e};
p.html.SafeHtml.DOCTYPE_HTML=p.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("<!DOCTYPE html>",p.i18n.bidi.Dir.NEUTRAL);p.html.SafeHtml.EMPTY=p.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("",p.i18n.bidi.Dir.NEUTRAL);p.html.SafeHtml.BR=p.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("<br>",p.i18n.bidi.Dir.NEUTRAL);p.html.uncheckedconversions={};p.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract=function(b,c){p.asserts.assertString(p.string.Const.unwrap(b),"must provide justification");p.asserts.assert(!p.string.internal.isEmptyOrWhitespace(p.string.Const.unwrap(b)),"must provide non-empty justification");return p.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(c,null)};
p.html.uncheckedconversions.safeScriptFromStringKnownToSatisfyTypeContract=function(b,c){p.asserts.assertString(p.string.Const.unwrap(b),"must provide justification");p.asserts.assert(!p.string.internal.isEmptyOrWhitespace(p.string.Const.unwrap(b)),"must provide non-empty justification");return p.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(c)};
p.html.uncheckedconversions.safeStyleFromStringKnownToSatisfyTypeContract=function(b,c){p.asserts.assertString(p.string.Const.unwrap(b),"must provide justification");p.asserts.assert(!p.string.internal.isEmptyOrWhitespace(p.string.Const.unwrap(b)),"must provide non-empty justification");return p.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(c)};
p.html.uncheckedconversions.safeStyleSheetFromStringKnownToSatisfyTypeContract=function(b,c){p.asserts.assertString(p.string.Const.unwrap(b),"must provide justification");p.asserts.assert(!p.string.internal.isEmptyOrWhitespace(p.string.Const.unwrap(b)),"must provide non-empty justification");return p.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(c)};
p.html.uncheckedconversions.safeUrlFromStringKnownToSatisfyTypeContract=function(b,c){p.asserts.assertString(p.string.Const.unwrap(b),"must provide justification");p.asserts.assert(!p.string.internal.isEmptyOrWhitespace(p.string.Const.unwrap(b)),"must provide non-empty justification");return p.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(c)};
p.html.uncheckedconversions.trustedResourceUrlFromStringKnownToSatisfyTypeContract=function(b,c){p.asserts.assertString(p.string.Const.unwrap(b),"must provide justification");p.asserts.assert(!p.string.internal.isEmptyOrWhitespace(p.string.Const.unwrap(b)),"must provide non-empty justification");return p.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(c)};p.dom.safe={};p.dom.safe.InsertAdjacentHtmlPosition={AFTERBEGIN:"afterbegin",AFTEREND:"afterend",BEFOREBEGIN:"beforebegin",BEFOREEND:"beforeend"};p.dom.safe.insertAdjacentHtml=function(b,c,d){b.insertAdjacentHTML(c,p.html.SafeHtml.unwrapTrustedHTML(d))};p.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_={MATH:!0,SCRIPT:!0,STYLE:!0,SVG:!0,TEMPLATE:!0};
p.dom.safe.isInnerHtmlCleanupRecursive_=p.functions.cacheReturnValue(function(){if(p.DEBUG&&"undefined"===typeof document)return!1;var b=document.createElement("div"),c=document.createElement("div");c.appendChild(document.createElement("div"));b.appendChild(c);if(p.DEBUG&&!b.firstChild)return!1;c=b.firstChild.firstChild;b.innerHTML=p.html.SafeHtml.unwrapTrustedHTML(p.html.SafeHtml.EMPTY);return!c.parentElement});
p.dom.safe.unsafeSetInnerHtmlDoNotUseOrElse=function(b,c){if(p.dom.safe.isInnerHtmlCleanupRecursive_())for(;b.lastChild;)b.removeChild(b.lastChild);b.innerHTML=p.html.SafeHtml.unwrapTrustedHTML(c)};p.dom.safe.setInnerHtml=function(b,c){if(p.asserts.ENABLE_ASSERTS&&p.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_[b.tagName.toUpperCase()])throw Error("goog.dom.safe.setInnerHtml cannot be used to set content of "+b.tagName+".");p.dom.safe.unsafeSetInnerHtmlDoNotUseOrElse(b,c)};
p.dom.safe.setOuterHtml=function(b,c){b.outerHTML=p.html.SafeHtml.unwrapTrustedHTML(c)};p.dom.safe.setFormElementAction=function(b,c){c=c instanceof p.html.SafeUrl?c:p.html.SafeUrl.sanitizeAssertUnchanged(c);p.dom.asserts.assertIsHTMLFormElement(b).action=p.html.SafeUrl.unwrapTrustedURL(c)};p.dom.safe.setButtonFormAction=function(b,c){c=c instanceof p.html.SafeUrl?c:p.html.SafeUrl.sanitizeAssertUnchanged(c);p.dom.asserts.assertIsHTMLButtonElement(b).formAction=p.html.SafeUrl.unwrapTrustedURL(c)};
p.dom.safe.setInputFormAction=function(b,c){c=c instanceof p.html.SafeUrl?c:p.html.SafeUrl.sanitizeAssertUnchanged(c);p.dom.asserts.assertIsHTMLInputElement(b).formAction=p.html.SafeUrl.unwrapTrustedURL(c)};p.dom.safe.setStyle=function(b,c){b.style.cssText=p.html.SafeStyle.unwrap(c)};p.dom.safe.documentWrite=function(b){b.write(p.html.SafeHtml.unwrapTrustedHTML(p.html.SafeHtml.EMPTY))};
p.dom.safe.setAnchorHref=function(b,c){p.dom.asserts.assertIsHTMLAnchorElement(b);c=c instanceof p.html.SafeUrl?c:p.html.SafeUrl.sanitizeAssertUnchanged(c);b.href=p.html.SafeUrl.unwrapTrustedURL(c)};p.dom.safe.setImageSrc=function(b,c){p.dom.asserts.assertIsHTMLImageElement(b);c=c instanceof p.html.SafeUrl?c:p.html.SafeUrl.sanitizeAssertUnchanged(c,/^data:image\//i.test(c));b.src=p.html.SafeUrl.unwrapTrustedURL(c)};
p.dom.safe.setAudioSrc=function(b,c){p.dom.asserts.assertIsHTMLAudioElement(b);c=c instanceof p.html.SafeUrl?c:p.html.SafeUrl.sanitizeAssertUnchanged(c,/^data:audio\//i.test(c));b.src=p.html.SafeUrl.unwrapTrustedURL(c)};p.dom.safe.setVideoSrc=function(b,c){p.dom.asserts.assertIsHTMLVideoElement(b);c=c instanceof p.html.SafeUrl?c:p.html.SafeUrl.sanitizeAssertUnchanged(c,/^data:video\//i.test(c));b.src=p.html.SafeUrl.unwrapTrustedURL(c)};
p.dom.safe.setEmbedSrc=function(b,c){p.dom.asserts.assertIsHTMLEmbedElement(b);b.src=p.html.TrustedResourceUrl.unwrapTrustedScriptURL(c)};p.dom.safe.setFrameSrc=function(b,c){p.dom.asserts.assertIsHTMLFrameElement(b);b.src=p.html.TrustedResourceUrl.unwrapTrustedURL(c)};p.dom.safe.setIframeSrc=function(b){var c=p.html.TrustedResourceUrl.fromConstant(p.string.Const.EMPTY);p.dom.asserts.assertIsHTMLIFrameElement(b);b.src=p.html.TrustedResourceUrl.unwrapTrustedURL(c)};
p.dom.safe.setIframeSrcdoc=function(b,c){p.dom.asserts.assertIsHTMLIFrameElement(b);b.srcdoc=p.html.SafeHtml.unwrapTrustedHTML(c)};
p.dom.safe.setLinkHrefAndRel=function(b,c,d){p.dom.asserts.assertIsHTMLLinkElement(b);b.rel=d;p.string.internal.caseInsensitiveContains(d,"stylesheet")?(p.asserts.assert(c instanceof p.html.TrustedResourceUrl,'URL must be TrustedResourceUrl because "rel" contains "stylesheet"'),b.href=p.html.TrustedResourceUrl.unwrapTrustedURL(c)):b.href=c instanceof p.html.TrustedResourceUrl?p.html.TrustedResourceUrl.unwrapTrustedURL(c):c instanceof p.html.SafeUrl?p.html.SafeUrl.unwrapTrustedURL(c):p.html.SafeUrl.unwrapTrustedURL(p.html.SafeUrl.sanitizeAssertUnchanged(c))};
p.dom.safe.setObjectData=function(b,c){p.dom.asserts.assertIsHTMLObjectElement(b);b.data=p.html.TrustedResourceUrl.unwrapTrustedScriptURL(c)};p.dom.safe.setScriptSrc=function(b,c){p.dom.asserts.assertIsHTMLScriptElement(b);b.src=p.html.TrustedResourceUrl.unwrapTrustedScriptURL(c);(c=p.getScriptNonce())&&b.setAttribute("nonce",c)};
p.dom.safe.setScriptContent=function(b,c){p.dom.asserts.assertIsHTMLScriptElement(b);b.text=p.html.SafeScript.unwrapTrustedScript(c);(c=p.getScriptNonce())&&b.setAttribute("nonce",c)};p.dom.safe.setLocationHref=function(b,c){p.dom.asserts.assertIsLocation(b);c=c instanceof p.html.SafeUrl?c:p.html.SafeUrl.sanitizeAssertUnchanged(c);b.href=p.html.SafeUrl.unwrapTrustedURL(c)};
p.dom.safe.assignLocation=function(b,c){p.dom.asserts.assertIsLocation(b);c=c instanceof p.html.SafeUrl?c:p.html.SafeUrl.sanitizeAssertUnchanged(c);b.assign(p.html.SafeUrl.unwrapTrustedURL(c))};p.dom.safe.replaceLocation=function(b,c){p.dom.asserts.assertIsLocation(b);c=c instanceof p.html.SafeUrl?c:p.html.SafeUrl.sanitizeAssertUnchanged(c);b.replace(p.html.SafeUrl.unwrapTrustedURL(c))};
p.dom.safe.openInWindow=function(b,c,d,e,f){b=b instanceof p.html.SafeUrl?b:p.html.SafeUrl.sanitizeAssertUnchanged(b);return(c||p.global).open(p.html.SafeUrl.unwrapTrustedURL(b),d?p.string.Const.unwrap(d):"",e,f)};p.dom.safe.parseFromStringHtml=function(b,c){return p.dom.safe.parseFromString(b,c,"text/html")};p.dom.safe.parseFromString=function(b,c,d){return b.parseFromString(p.html.SafeHtml.unwrapTrustedHTML(c),d)};
p.dom.safe.createImageFromBlob=function(b){if(!/^image\/.*/g.test(b.type))throw Error("goog.dom.safe.createImageFromBlob only accepts MIME type image/.*.");var c=p.global.URL.createObjectURL(b);b=new p.global.Image;b.onload=function(){p.global.URL.revokeObjectURL(c)};p.dom.safe.setImageSrc(b,p.html.uncheckedconversions.safeUrlFromStringKnownToSatisfyTypeContract(p.string.Const.from("Image blob URL."),c));return b};p.string.DETECT_DOUBLE_ESCAPING=!1;p.string.FORCE_NON_DOM_HTML_UNESCAPING=!1;p.string.Unicode={NBSP:"\u00a0"};p.string.startsWith=p.string.internal.startsWith;p.string.endsWith=p.string.internal.endsWith;p.string.caseInsensitiveStartsWith=p.string.internal.caseInsensitiveStartsWith;p.string.caseInsensitiveEndsWith=p.string.internal.caseInsensitiveEndsWith;p.string.caseInsensitiveEquals=p.string.internal.caseInsensitiveEquals;
p.string.subs=function(b,c){for(var d=b.split("%s"),e="",f=Array.prototype.slice.call(arguments,1);f.length&&1<d.length;)e+=d.shift()+f.shift();return e+d.join("%s")};p.string.collapseWhitespace=function(b){return b.replace(/[\s\xa0]+/g," ").replace(/^\s+|\s+$/g,"")};p.string.isEmptyOrWhitespace=p.string.internal.isEmptyOrWhitespace;p.string.isEmptyString=function(b){return 0==b.length};p.string.isEmpty=p.string.isEmptyOrWhitespace;p.string.isEmptyOrWhitespaceSafe=function(b){return p.string.isEmptyOrWhitespace(p.string.makeSafe(b))};
p.string.isEmptySafe=p.string.isEmptyOrWhitespaceSafe;p.string.isBreakingWhitespace=function(b){return!/[^\t\n\r ]/.test(b)};p.string.isAlpha=function(b){return!/[^a-zA-Z]/.test(b)};p.string.isNumeric=function(b){return!/[^0-9]/.test(b)};p.string.isAlphaNumeric=function(b){return!/[^a-zA-Z0-9]/.test(b)};p.string.isSpace=function(b){return" "==b};p.string.isUnicodeChar=function(b){return 1==b.length&&" "<=b&&"~">=b||"\u0080"<=b&&"\ufffd">=b};
p.string.stripNewlines=function(b){return b.replace(/(\r\n|\r|\n)+/g," ")};p.string.canonicalizeNewlines=function(b){return b.replace(/(\r\n|\r|\n)/g,"\n")};p.string.normalizeWhitespace=function(b){return b.replace(/\xa0|\s/g," ")};p.string.normalizeSpaces=function(b){return b.replace(/\xa0|[ \t]+/g," ")};p.string.collapseBreakingSpaces=function(b){return b.replace(/[\t\r\n ]+/g," ").replace(/^[\t\r\n ]+|[\t\r\n ]+$/g,"")};p.string.trim=p.string.internal.trim;
p.string.trimLeft=function(b){return b.replace(/^[\s\xa0]+/,"")};p.string.trimRight=function(b){return b.replace(/[\s\xa0]+$/,"")};p.string.caseInsensitiveCompare=p.string.internal.caseInsensitiveCompare;
p.string.numberAwareCompare_=function(b,c,d){if(b==c)return 0;if(!b)return-1;if(!c)return 1;for(var e=b.toLowerCase().match(d),f=c.toLowerCase().match(d),g=Math.min(e.length,f.length),h=0;h<g;h++){d=e[h];var l=f[h];if(d!=l)return b=parseInt(d,10),!isNaN(b)&&(c=parseInt(l,10),!isNaN(c)&&b-c)?b-c:d<l?-1:1}return e.length!=f.length?e.length-f.length:b<c?-1:1};p.string.intAwareCompare=function(b,c){return p.string.numberAwareCompare_(b,c,/\d+|\D+/g)};
p.string.floatAwareCompare=function(b,c){return p.string.numberAwareCompare_(b,c,/\d+|\.\d+|\D+/g)};p.string.numerateCompare=p.string.floatAwareCompare;p.string.urlEncode=function(b){return encodeURIComponent(String(b))};p.string.urlDecode=function(b){return decodeURIComponent(b.replace(/\+/g," "))};p.string.newLineToBr=p.string.internal.newLineToBr;p.string.htmlEscape=function(b,c){b=p.string.internal.htmlEscape(b,c);p.string.DETECT_DOUBLE_ESCAPING&&(b=b.replace(p.string.E_RE_,"&#101;"));return b};
p.string.E_RE_=/e/g;p.string.unescapeEntities=function(b){return p.string.contains(b,"&")?!p.string.FORCE_NON_DOM_HTML_UNESCAPING&&"document"in p.global?p.string.unescapeEntitiesUsingDom_(b):p.string.unescapePureXmlEntities_(b):b};p.string.unescapeEntitiesWithDocument=function(b,c){return p.string.contains(b,"&")?p.string.unescapeEntitiesUsingDom_(b,c):b};
p.string.unescapeEntitiesUsingDom_=function(b,c){var d={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"'};var e=c?c.createElement("div"):p.global.document.createElement("div");return b.replace(p.string.HTML_ENTITY_PATTERN_,function(f,g){var h=d[f];if(h)return h;"#"==g.charAt(0)&&(g=Number("0"+g.substr(1)),isNaN(g)||(h=String.fromCharCode(g)));h||(p.dom.safe.setInnerHtml(e,p.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract(p.string.Const.from("Single HTML entity."),f+" ")),h=e.firstChild.nodeValue.slice(0,
-1));return d[f]=h})};p.string.unescapePureXmlEntities_=function(b){return b.replace(/&([^;]+);/g,function(c,d){switch(d){case "amp":return"&";case "lt":return"<";case "gt":return">";case "quot":return'"';default:return"#"!=d.charAt(0)||(d=Number("0"+d.substr(1)),isNaN(d))?c:String.fromCharCode(d)}})};p.string.HTML_ENTITY_PATTERN_=/&([^;\s<&]+);?/g;p.string.whitespaceEscape=function(b){return p.string.newLineToBr(b.replace(/  /g," &#160;"),void 0)};
p.string.preserveSpaces=function(b){return b.replace(/(^|[\n ]) /g,"$1"+p.string.Unicode.NBSP)};p.string.stripQuotes=function(b,c){for(var d=c.length,e=0;e<d;e++){var f=1==d?c:c.charAt(e);if(b.charAt(0)==f&&b.charAt(b.length-1)==f)return b.substring(1,b.length-1)}return b};p.string.truncate=function(b,c,d){d&&(b=p.string.unescapeEntities(b));b.length>c&&(b=b.substring(0,c-3)+"...");d&&(b=p.string.htmlEscape(b));return b};
p.string.truncateMiddle=function(b,c,d,e){d&&(b=p.string.unescapeEntities(b));e&&b.length>c?(e>c&&(e=c),b=b.substring(0,c-e)+"..."+b.substring(b.length-e)):b.length>c&&(e=Math.floor(c/2),b=b.substring(0,e+c%2)+"..."+b.substring(b.length-e));d&&(b=p.string.htmlEscape(b));return b};p.string.specialEscapeChars_={"\x00":"\\0","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\x0B":"\\x0B",'"':'\\"',"\\":"\\\\","<":"\\u003C"};p.string.jsEscapeCache_={"'":"\\'"};
p.string.quote=function(b){b=String(b);for(var c=['"'],d=0;d<b.length;d++){var e=b.charAt(d),f=e.charCodeAt(0);c[d+1]=p.string.specialEscapeChars_[e]||(31<f&&127>f?e:p.string.escapeChar(e))}c.push('"');return c.join("")};p.string.escapeString=function(b){for(var c=[],d=0;d<b.length;d++)c[d]=p.string.escapeChar(b.charAt(d));return c.join("")};
p.string.escapeChar=function(b){if(b in p.string.jsEscapeCache_)return p.string.jsEscapeCache_[b];if(b in p.string.specialEscapeChars_)return p.string.jsEscapeCache_[b]=p.string.specialEscapeChars_[b];var c=b.charCodeAt(0);if(31<c&&127>c)var d=b;else{if(256>c){if(d="\\x",16>c||256<c)d+="0"}else d="\\u",4096>c&&(d+="0");d+=c.toString(16).toUpperCase()}return p.string.jsEscapeCache_[b]=d};p.string.contains=p.string.internal.contains;p.string.caseInsensitiveContains=p.string.internal.caseInsensitiveContains;
p.string.countOf=function(b,c){return b&&c?b.split(c).length-1:0};p.string.removeAt=function(b){return b};p.string.remove=function(b,c){return b.replace(c,"")};p.string.removeAll=function(b,c){c=new RegExp(p.string.regExpEscape(c),"g");return b.replace(c,"")};p.string.replaceAll=function(b,c,d){c=new RegExp(p.string.regExpEscape(c),"g");return b.replace(c,d.replace(/\$/g,"$$$$"))};p.string.regExpEscape=function(b){return String(b).replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")};
p.string.repeat=String.prototype.repeat?function(b,c){return b.repeat(c)}:function(b,c){return Array(c+1).join(b)};p.string.padNumber=function(b,c,d){b=void 0!==d?b.toFixed(d):String(b);d=b.indexOf(".");-1==d&&(d=b.length);return p.string.repeat("0",Math.max(0,c-d))+b};p.string.makeSafe=function(b){return null==b?"":String(b)};p.string.buildString=function(b){return Array.prototype.join.call(arguments,"")};
p.string.getRandomString=function(){return Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^p.now()).toString(36)};p.string.compareVersions=p.string.internal.compareVersions;p.string.hashCode=function(b){for(var c=0,d=0;d<b.length;++d)c=31*c+b.charCodeAt(d)>>>0;return c};p.string.uniqueStringCounter_=2147483648*Math.random()|0;p.string.createUniqueString=function(){return"goog_"+p.string.uniqueStringCounter_++};
p.string.toNumber=function(b){var c=Number(b);return 0==c&&p.string.isEmptyOrWhitespace(b)?NaN:c};p.string.isLowerCamelCase=function(b){return/^[a-z]+([A-Z][a-z]*)*$/.test(b)};p.string.isUpperCamelCase=function(b){return/^([A-Z][a-z]*)+$/.test(b)};p.string.toCamelCase=function(b){return String(b).replace(/\-([a-z])/g,function(c,d){return d.toUpperCase()})};p.string.toSelectorCase=function(b){return String(b).replace(/([A-Z])/g,"-$1").toLowerCase()};
p.string.toTitleCase=function(b,c){c="string"===typeof c?p.string.regExpEscape(c):"\\s";return b.replace(new RegExp("(^"+(c?"|["+c+"]+":"")+")([a-z])","g"),function(d,e,f){return e+f.toUpperCase()})};p.string.capitalize=function(b){return String(b.charAt(0)).toUpperCase()+String(b.substr(1)).toLowerCase()};p.string.parseInt=function(b){isFinite(b)&&(b=String(b));return"string"===typeof b?/^\s*-?0x/i.test(b)?parseInt(b,16):parseInt(b,10):NaN};
p.string.splitLimit=function(b,c,d){b=b.split(c);for(var e=[];0<d&&b.length;)e.push(b.shift()),d--;b.length&&e.push(b.join(c));return e};p.string.lastComponent=function(b,c){if(c)"string"==typeof c&&(c=[c]);else return b;for(var d=-1,e=0;e<c.length;e++)if(""!=c[e]){var f=b.lastIndexOf(c[e]);f>d&&(d=f)}return-1==d?b:b.slice(d+1)};
p.string.editDistance=function(b,c){var d=[],e=[];if(b==c)return 0;if(!b.length||!c.length)return Math.max(b.length,c.length);for(var f=0;f<c.length+1;f++)d[f]=f;for(f=0;f<b.length;f++){e[0]=f+1;for(var g=0;g<c.length;g++)e[g+1]=Math.min(e[g]+1,d[g+1]+1,d[g]+Number(b[f]!=c[g]));for(g=0;g<d.length;g++)d[g]=e[g]}return e[c.length]};p.labs.userAgent.engine={};p.labs.userAgent.engine.isPresto=function(){return p.labs.userAgent.util.matchUserAgent("Presto")};p.labs.userAgent.engine.isTrident=function(){return p.labs.userAgent.util.matchUserAgent("Trident")||p.labs.userAgent.util.matchUserAgent("MSIE")};p.labs.userAgent.engine.isEdge=function(){return p.labs.userAgent.util.matchUserAgent("Edge")};p.labs.userAgent.engine.isWebKit=function(){return p.labs.userAgent.util.matchUserAgentIgnoreCase("WebKit")&&!p.labs.userAgent.engine.isEdge()};
p.labs.userAgent.engine.isGecko=function(){return p.labs.userAgent.util.matchUserAgent("Gecko")&&!p.labs.userAgent.engine.isWebKit()&&!p.labs.userAgent.engine.isTrident()&&!p.labs.userAgent.engine.isEdge()};
p.labs.userAgent.engine.getVersion=function(){var b=p.labs.userAgent.util.getUserAgent();if(b){b=p.labs.userAgent.util.extractVersionTuples(b);var c=p.labs.userAgent.engine.getEngineTuple_(b);if(c)return"Gecko"==c[0]?p.labs.userAgent.engine.getVersionForKey_(b):c[1];b=b[0];var d;if(b&&(d=b[2])&&(d=/Trident\/([^\s;]+)/.exec(d)))return d[1]}return""};
p.labs.userAgent.engine.getEngineTuple_=function(b){if(!p.labs.userAgent.engine.isEdge())return b[1];for(var c=0;c<b.length;c++){var d=b[c];if("Edge"==d[0])return d}};p.labs.userAgent.engine.isVersionOrHigher=function(b){return 0<=p.string.compareVersions(p.labs.userAgent.engine.getVersion(),b)};p.labs.userAgent.engine.getVersionForKey_=function(b){return(b=p.array.find(b,function(c){return"Firefox"==c[0]}))&&b[1]||""};p.labs.userAgent.platform={};p.labs.userAgent.platform.isAndroid=function(){return p.labs.userAgent.util.matchUserAgent("Android")};p.labs.userAgent.platform.isIpod=function(){return p.labs.userAgent.util.matchUserAgent("iPod")};p.labs.userAgent.platform.isIphone=function(){return p.labs.userAgent.util.matchUserAgent("iPhone")&&!p.labs.userAgent.util.matchUserAgent("iPod")&&!p.labs.userAgent.util.matchUserAgent("iPad")};p.labs.userAgent.platform.isIpad=function(){return p.labs.userAgent.util.matchUserAgent("iPad")};
p.labs.userAgent.platform.isIos=function(){return p.labs.userAgent.platform.isIphone()||p.labs.userAgent.platform.isIpad()||p.labs.userAgent.platform.isIpod()};p.labs.userAgent.platform.isMacintosh=function(){return p.labs.userAgent.util.matchUserAgent("Macintosh")};p.labs.userAgent.platform.isLinux=function(){return p.labs.userAgent.util.matchUserAgent("Linux")};p.labs.userAgent.platform.isWindows=function(){return p.labs.userAgent.util.matchUserAgent("Windows")};
p.labs.userAgent.platform.isChromeOS=function(){return p.labs.userAgent.util.matchUserAgent("CrOS")};p.labs.userAgent.platform.isChromecast=function(){return p.labs.userAgent.util.matchUserAgent("CrKey")};p.labs.userAgent.platform.isKaiOS=function(){return p.labs.userAgent.util.matchUserAgentIgnoreCase("KaiOS")};p.labs.userAgent.platform.isGo2Phone=function(){return p.labs.userAgent.util.matchUserAgentIgnoreCase("GAFP")};
p.labs.userAgent.platform.getVersion=function(){var b=p.labs.userAgent.util.getUserAgent(),c="";p.labs.userAgent.platform.isWindows()?(c=/Windows (?:NT|Phone) ([0-9.]+)/,c=(b=c.exec(b))?b[1]:"0.0"):p.labs.userAgent.platform.isIos()?(c=/(?:iPhone|iPod|iPad|CPU)\s+OS\s+(\S+)/,c=(b=c.exec(b))&&b[1].replace(/_/g,".")):p.labs.userAgent.platform.isMacintosh()?(c=/Mac OS X ([0-9_.]+)/,c=(b=c.exec(b))?b[1].replace(/_/g,"."):"10"):p.labs.userAgent.platform.isKaiOS()?(c=/(?:KaiOS)\/(\S+)/i,c=(b=c.exec(b))&&
b[1]):p.labs.userAgent.platform.isAndroid()?(c=/Android\s+([^\);]+)(\)|;)/,c=(b=c.exec(b))&&b[1]):p.labs.userAgent.platform.isChromeOS()&&(c=/(?:CrOS\s+(?:i686|x86_64)\s+([0-9.]+))/,c=(b=c.exec(b))&&b[1]);return c||""};p.labs.userAgent.platform.isVersionOrHigher=function(b){return 0<=p.string.compareVersions(p.labs.userAgent.platform.getVersion(),b)};p.reflect={};p.reflect.object=function(b,c){return c};p.reflect.objectProperty=function(b){return b};p.reflect.sinkValue=function(b){p.reflect.sinkValue[" "](b);return b};p.reflect.sinkValue[" "]=p.nullFunction;p.reflect.canAccessProperty=function(b){try{return p.reflect.sinkValue(b.nodeName),!0}catch(c){}return!1};p.reflect.cache=function(b,c,d,e){e=e?e(c):c;return Object.prototype.hasOwnProperty.call(b,e)?b[e]:b[e]=d(c)};p.userAgent={};p.userAgent.ASSUME_IE=!1;p.userAgent.ASSUME_EDGE=!1;p.userAgent.ASSUME_GECKO=!1;p.userAgent.ASSUME_WEBKIT=!1;p.userAgent.ASSUME_MOBILE_WEBKIT=!1;p.userAgent.ASSUME_OPERA=!1;p.userAgent.ASSUME_ANY_VERSION=!1;p.userAgent.BROWSER_KNOWN_=p.userAgent.ASSUME_IE||p.userAgent.ASSUME_EDGE||p.userAgent.ASSUME_GECKO||p.userAgent.ASSUME_MOBILE_WEBKIT||p.userAgent.ASSUME_WEBKIT||p.userAgent.ASSUME_OPERA;p.userAgent.getUserAgentString=function(){return p.labs.userAgent.util.getUserAgent()};
p.userAgent.getNavigatorTyped=function(){return p.global.navigator||null};p.userAgent.getNavigator=function(){return p.userAgent.getNavigatorTyped()};p.userAgent.OPERA=p.userAgent.BROWSER_KNOWN_?p.userAgent.ASSUME_OPERA:p.labs.userAgent.browser.isOpera();p.userAgent.IE=p.userAgent.BROWSER_KNOWN_?p.userAgent.ASSUME_IE:p.labs.userAgent.browser.isIE();p.userAgent.EDGE=p.userAgent.BROWSER_KNOWN_?p.userAgent.ASSUME_EDGE:p.labs.userAgent.engine.isEdge();p.userAgent.EDGE_OR_IE=p.userAgent.EDGE||p.userAgent.IE;
p.userAgent.GECKO=p.userAgent.BROWSER_KNOWN_?p.userAgent.ASSUME_GECKO:p.labs.userAgent.engine.isGecko();p.userAgent.WEBKIT=p.userAgent.BROWSER_KNOWN_?p.userAgent.ASSUME_WEBKIT||p.userAgent.ASSUME_MOBILE_WEBKIT:p.labs.userAgent.engine.isWebKit();p.userAgent.isMobile_=function(){return p.userAgent.WEBKIT&&p.labs.userAgent.util.matchUserAgent("Mobile")};p.userAgent.MOBILE=p.userAgent.ASSUME_MOBILE_WEBKIT||p.userAgent.isMobile_();p.userAgent.SAFARI=p.userAgent.WEBKIT;
p.userAgent.determinePlatform_=function(){var b=p.userAgent.getNavigatorTyped();return b&&b.platform||""};p.userAgent.PLATFORM=p.userAgent.determinePlatform_();p.userAgent.ASSUME_MAC=!1;p.userAgent.ASSUME_WINDOWS=!1;p.userAgent.ASSUME_LINUX=!1;p.userAgent.ASSUME_X11=!1;p.userAgent.ASSUME_ANDROID=!1;p.userAgent.ASSUME_IPHONE=!1;p.userAgent.ASSUME_IPAD=!1;p.userAgent.ASSUME_IPOD=!1;p.userAgent.ASSUME_KAIOS=!1;p.userAgent.ASSUME_GO2PHONE=!1;
p.userAgent.PLATFORM_KNOWN_=p.userAgent.ASSUME_MAC||p.userAgent.ASSUME_WINDOWS||p.userAgent.ASSUME_LINUX||p.userAgent.ASSUME_X11||p.userAgent.ASSUME_ANDROID||p.userAgent.ASSUME_IPHONE||p.userAgent.ASSUME_IPAD||p.userAgent.ASSUME_IPOD;p.userAgent.MAC=p.userAgent.PLATFORM_KNOWN_?p.userAgent.ASSUME_MAC:p.labs.userAgent.platform.isMacintosh();p.userAgent.WINDOWS=p.userAgent.PLATFORM_KNOWN_?p.userAgent.ASSUME_WINDOWS:p.labs.userAgent.platform.isWindows();
p.userAgent.isLegacyLinux_=function(){return p.labs.userAgent.platform.isLinux()||p.labs.userAgent.platform.isChromeOS()};p.userAgent.LINUX=p.userAgent.PLATFORM_KNOWN_?p.userAgent.ASSUME_LINUX:p.userAgent.isLegacyLinux_();p.userAgent.isX11_=function(){var b=p.userAgent.getNavigatorTyped();return!!b&&p.string.contains(b.appVersion||"","X11")};p.userAgent.X11=p.userAgent.PLATFORM_KNOWN_?p.userAgent.ASSUME_X11:p.userAgent.isX11_();
p.userAgent.ANDROID=p.userAgent.PLATFORM_KNOWN_?p.userAgent.ASSUME_ANDROID:p.labs.userAgent.platform.isAndroid();p.userAgent.IPHONE=p.userAgent.PLATFORM_KNOWN_?p.userAgent.ASSUME_IPHONE:p.labs.userAgent.platform.isIphone();p.userAgent.IPAD=p.userAgent.PLATFORM_KNOWN_?p.userAgent.ASSUME_IPAD:p.labs.userAgent.platform.isIpad();p.userAgent.IPOD=p.userAgent.PLATFORM_KNOWN_?p.userAgent.ASSUME_IPOD:p.labs.userAgent.platform.isIpod();
p.userAgent.IOS=p.userAgent.PLATFORM_KNOWN_?p.userAgent.ASSUME_IPHONE||p.userAgent.ASSUME_IPAD||p.userAgent.ASSUME_IPOD:p.labs.userAgent.platform.isIos();p.userAgent.KAIOS=p.userAgent.PLATFORM_KNOWN_?p.userAgent.ASSUME_KAIOS:p.labs.userAgent.platform.isKaiOS();p.userAgent.GO2PHONE=p.userAgent.PLATFORM_KNOWN_?p.userAgent.ASSUME_GO2PHONE:p.labs.userAgent.platform.isGo2Phone();
p.userAgent.determineVersion_=function(){var b="",c=p.userAgent.getVersionRegexResult_();c&&(b=c?c[1]:"");return p.userAgent.IE&&(c=p.userAgent.getDocumentMode_(),null!=c&&c>parseFloat(b))?String(c):b};
p.userAgent.getVersionRegexResult_=function(){var b=p.userAgent.getUserAgentString();if(p.userAgent.GECKO)return/rv:([^\);]+)(\)|;)/.exec(b);if(p.userAgent.EDGE)return/Edge\/([\d\.]+)/.exec(b);if(p.userAgent.IE)return/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(b);if(p.userAgent.WEBKIT)return/WebKit\/(\S+)/.exec(b);if(p.userAgent.OPERA)return/(?:Version)[ \/]?(\S+)/.exec(b)};p.userAgent.getDocumentMode_=function(){var b=p.global.document;return b?b.documentMode:void 0};p.userAgent.VERSION=p.userAgent.determineVersion_();
p.userAgent.compare=function(b,c){return p.string.compareVersions(b,c)};p.userAgent.isVersionOrHigherCache_={};p.userAgent.isVersionOrHigher=function(b){return p.userAgent.ASSUME_ANY_VERSION||p.reflect.cache(p.userAgent.isVersionOrHigherCache_,b,function(){return 0<=p.string.compareVersions(p.userAgent.VERSION,b)})};p.userAgent.isVersion=p.userAgent.isVersionOrHigher;p.userAgent.isDocumentModeOrHigher=function(b){return Number(p.userAgent.DOCUMENT_MODE)>=b};p.userAgent.isDocumentMode=p.userAgent.isDocumentModeOrHigher;
var u;u=p.global.document&&p.userAgent.IE?p.userAgent.getDocumentMode_():void 0;p.userAgent.DOCUMENT_MODE=u;p.debug.LOGGING_ENABLED=p.DEBUG;p.debug.FORCE_SLOPPY_STACKS=!1;p.debug.catchErrors=function(b,c,d){d=d||p.global;var e=d.onerror,f=!!c;p.userAgent.WEBKIT&&!p.userAgent.isVersionOrHigher("535.3")&&(f=!f);d.onerror=function(g,h,l,m,n){e&&e(g,h,l,m,n);b({message:g,fileName:h,line:l,lineNumber:l,col:m,error:n});return f}};
p.debug.expose=function(b,c){if("undefined"==typeof b)return"undefined";if(null==b)return"NULL";var d=[],e;for(e in b)if(c||!p.isFunction(b[e])){var f=e+" = ";try{f+=b[e]}catch(g){f+="*** "+g+" ***"}d.push(f)}return d.join("\n")};
p.debug.deepExpose=function(b,c){var d=[],e=[],f={},g=function(h,l){var m=l+"  ";try{if(void 0===h)d.push("undefined");else if(null===h)d.push("NULL");else if("string"===typeof h)d.push('"'+h.replace(/\n/g,"\n"+l)+'"');else if(p.isFunction(h))d.push(String(h).replace(/\n/g,"\n"+l));else if(p.isObject(h)){p.hasUid(h)||e.push(h);var n=p.getUid(h);if(f[n])d.push("*** reference loop detected (id="+n+") ***");else{f[n]=!0;d.push("{");for(var t in h)if(c||!p.isFunction(h[t]))d.push("\n"),d.push(m),d.push(t+
" = "),g(h[t],m);d.push("\n"+l+"}");delete f[n]}}else d.push(h)}catch(B){d.push("*** "+B+" ***")}};g(b,"");for(b=0;b<e.length;b++)p.removeUid(e[b]);return d.join("")};p.debug.exposeArray=function(b){for(var c=[],d=0;d<b.length;d++)p.isArray(b[d])?c.push(p.debug.exposeArray(b[d])):c.push(b[d]);return"[ "+c.join(", ")+" ]"};
p.debug.normalizeErrorObject=function(b){var c=p.getObjectByName("window.location.href");null==b&&(b='Unknown Error of type "null/undefined"');if("string"===typeof b)return{message:b,name:"Unknown error",lineNumber:"Not available",fileName:c,stack:"Not available"};var d=!1;try{var e=b.lineNumber||b.line||"Not available"}catch(g){e="Not available",d=!0}try{var f=b.fileName||b.filename||b.sourceURL||p.global.$googDebugFname||c}catch(g){f="Not available",d=!0}return!d&&b.lineNumber&&b.fileName&&b.stack&&
b.message&&b.name?b:(c=b.message,null==c&&(c=b.constructor&&b.constructor instanceof Function?'Unknown Error of type "'+(b.constructor.name?b.constructor.name:p.debug.getFunctionName(b.constructor))+'"':"Unknown Error of unknown type"),{message:c,name:b.name||"UnknownError",lineNumber:e,fileName:f,stack:b.stack||"Not available"})};
p.debug.enhanceError=function(b,c){b instanceof Error||(b=Error(b),Error.captureStackTrace&&Error.captureStackTrace(b,p.debug.enhanceError));b.stack||(b.stack=p.debug.getStacktrace(p.debug.enhanceError));if(c){for(var d=0;b["message"+d];)++d;b["message"+d]=String(c)}return b};p.debug.enhanceErrorWithContext=function(b,c){b=p.debug.enhanceError(b);if(c)for(var d in c)p.debug.errorcontext.addErrorContext(b,d,c[d]);return b};
p.debug.getStacktraceSimple=function(b){if(!p.debug.FORCE_SLOPPY_STACKS){var c=p.debug.getNativeStackTrace_(p.debug.getStacktraceSimple);if(c)return c}c=[];for(var d=arguments.callee.caller,e=0;d&&(!b||e<b);){c.push(p.debug.getFunctionName(d));c.push("()\n");try{d=d.caller}catch(f){c.push("[exception trying to get caller]\n");break}e++;if(e>=p.debug.MAX_STACK_DEPTH){c.push("[...long stack...]");break}}b&&e>=b?c.push("[...reached max depth limit...]"):c.push("[end]");return c.join("")};
p.debug.MAX_STACK_DEPTH=50;p.debug.getNativeStackTrace_=function(b){var c=Error();if(Error.captureStackTrace)return Error.captureStackTrace(c,b),String(c.stack);try{throw c;}catch(d){c=d}return(b=c.stack)?String(b):null};p.debug.getStacktrace=function(b){var c;p.debug.FORCE_SLOPPY_STACKS||(c=p.debug.getNativeStackTrace_(b||p.debug.getStacktrace));c||(c=p.debug.getStacktraceHelper_(b||arguments.callee.caller,[]));return c};
p.debug.getStacktraceHelper_=function(b,c){var d=[];if(p.array.contains(c,b))d.push("[...circular reference...]");else if(b&&c.length<p.debug.MAX_STACK_DEPTH){d.push(p.debug.getFunctionName(b)+"(");for(var e=b.arguments,f=0;e&&f<e.length;f++){0<f&&d.push(", ");var g=e[f];switch(typeof g){case "object":g=g?"object":"null";break;case "string":break;case "number":g=String(g);break;case "boolean":g=g?"true":"false";break;case "function":g=(g=p.debug.getFunctionName(g))?g:"[fn]";break;default:g=typeof g}40<
g.length&&(g=g.substr(0,40)+"...");d.push(g)}c.push(b);d.push(")\n");try{d.push(p.debug.getStacktraceHelper_(b.caller,c))}catch(h){d.push("[exception trying to get caller]\n")}}else b?d.push("[...long stack...]"):d.push("[end]");return d.join("")};p.debug.getFunctionName=function(b){if(p.debug.fnNameCache_[b])return p.debug.fnNameCache_[b];b=String(b);if(!p.debug.fnNameCache_[b]){var c=/function\s+([^\(]+)/m.exec(b);p.debug.fnNameCache_[b]=c?c[1]:"[Anonymous]"}return p.debug.fnNameCache_[b]};
p.debug.makeWhitespaceVisible=function(b){return b.replace(/ /g,"[_]").replace(/\f/g,"[f]").replace(/\n/g,"[n]\n").replace(/\r/g,"[r]").replace(/\t/g,"[t]")};p.debug.runtimeType=function(b){return b instanceof Function?b.displayName||b.name||"unknown type name":b instanceof Object?b.constructor.displayName||b.constructor.name||Object.prototype.toString.call(b):null===b?"null":typeof b};p.debug.fnNameCache_={};p.debug.freezeInternal_=p.DEBUG&&Object.freeze||function(b){return b};p.debug.freeze=function(b){return p.debug.freezeInternal_(b)};p.debug.entryPointRegistry={};p.debug.EntryPointMonitor=function(){};p.debug.entryPointRegistry.refList_=[];p.debug.entryPointRegistry.monitors_=[];p.debug.entryPointRegistry.monitorsMayExist_=!1;p.debug.entryPointRegistry.register=function(b){p.debug.entryPointRegistry.refList_[p.debug.entryPointRegistry.refList_.length]=b;if(p.debug.entryPointRegistry.monitorsMayExist_)for(var c=p.debug.entryPointRegistry.monitors_,d=0;d<c.length;d++)b(p.bind(c[d].wrap,c[d]))};
p.debug.entryPointRegistry.monitorAll=function(b){p.debug.entryPointRegistry.monitorsMayExist_=!0;for(var c=p.bind(b.wrap,b),d=0;d<p.debug.entryPointRegistry.refList_.length;d++)p.debug.entryPointRegistry.refList_[d](c);p.debug.entryPointRegistry.monitors_.push(b)};
p.debug.entryPointRegistry.unmonitorAllIfPossible=function(b){var c=p.debug.entryPointRegistry.monitors_;p.asserts.assert(b==c[c.length-1],"Only the most recent monitor can be unwrapped.");b=p.bind(b.unwrap,b);for(var d=0;d<p.debug.entryPointRegistry.refList_.length;d++)p.debug.entryPointRegistry.refList_[d](b);c.length--};p.disposable={};p.disposable.IDisposable=function(){};p.Disposable=function(){p.Disposable.MONITORING_MODE!=p.Disposable.MonitoringMode.OFF&&(p.Disposable.instances_[p.getUid(this)]=this);this.disposed_=this.disposed_;this.onDisposeCallbacks_=this.onDisposeCallbacks_};p.Disposable.MonitoringMode={OFF:0,PERMANENT:1,INTERACTIVE:2};p.Disposable.MONITORING_MODE=0;p.Disposable.INCLUDE_STACK_ON_CREATION=!0;p.Disposable.instances_={};
p.Disposable.getUndisposedObjects=function(){var b=[],c;for(c in p.Disposable.instances_)p.Disposable.instances_.hasOwnProperty(c)&&b.push(p.Disposable.instances_[Number(c)]);return b};p.Disposable.clearUndisposedObjects=function(){p.Disposable.instances_={}};p.Disposable.prototype.disposed_=!1;p.Disposable.prototype.isDisposed=function(){return this.disposed_};
p.Disposable.prototype.dispose=function(){if(!this.disposed_&&(this.disposed_=!0,this.disposeInternal(),p.Disposable.MONITORING_MODE!=p.Disposable.MonitoringMode.OFF)){var b=p.getUid(this);if(p.Disposable.MONITORING_MODE==p.Disposable.MonitoringMode.PERMANENT&&!p.Disposable.instances_.hasOwnProperty(b))throw Error(this+" did not call the goog.Disposable base constructor or was disposed of after a clearUndisposedObjects call");if(p.Disposable.MONITORING_MODE!=p.Disposable.MonitoringMode.OFF&&this.onDisposeCallbacks_&&
0<this.onDisposeCallbacks_.length)throw Error(this+" did not empty its onDisposeCallbacks queue. This probably means it overrode dispose() or disposeInternal() without calling the superclass' method.");delete p.Disposable.instances_[b]}};p.Disposable.prototype.disposeInternal=function(){if(this.onDisposeCallbacks_)for(;this.onDisposeCallbacks_.length;)this.onDisposeCallbacks_.shift()()};p.Disposable.isDisposed=function(){return!1};p.dispose=function(b){b&&"function"==typeof b.dispose&&b.dispose()};
p.disposeAll=function(b){for(var c=0,d=arguments.length;c<d;++c){var e=arguments[c];p.isArrayLike(e)?p.disposeAll.apply(null,e):p.dispose(e)}};p.events={};k.scope.purify=function(b){return{valueOf:b}.valueOf()};
p.events.BrowserFeature={HAS_W3C_BUTTON:!p.userAgent.IE||p.userAgent.isDocumentModeOrHigher(9),HAS_W3C_EVENT_SUPPORT:!p.userAgent.IE||p.userAgent.isDocumentModeOrHigher(9),SET_KEY_CODE_TO_PREVENT_DEFAULT:p.userAgent.IE&&!p.userAgent.isVersionOrHigher("9"),HAS_NAVIGATOR_ONLINE_PROPERTY:!p.userAgent.WEBKIT||p.userAgent.isVersionOrHigher("528"),HAS_HTML5_NETWORK_EVENT_SUPPORT:p.userAgent.GECKO&&p.userAgent.isVersionOrHigher("1.9b")||p.userAgent.IE&&p.userAgent.isVersionOrHigher("8")||p.userAgent.OPERA&&
p.userAgent.isVersionOrHigher("9.5")||p.userAgent.WEBKIT&&p.userAgent.isVersionOrHigher("528"),HTML5_NETWORK_EVENTS_FIRE_ON_BODY:p.userAgent.GECKO&&!p.userAgent.isVersionOrHigher("8")||p.userAgent.IE&&!p.userAgent.isVersionOrHigher("9"),TOUCH_ENABLED:"ontouchstart"in p.global||!!(p.global.document&&document.documentElement&&"ontouchstart"in document.documentElement)||!(!p.global.navigator||!p.global.navigator.maxTouchPoints&&!p.global.navigator.msMaxTouchPoints),POINTER_EVENTS:"PointerEvent"in p.global,
MSPOINTER_EVENTS:"MSPointerEvent"in p.global&&!(!p.global.navigator||!p.global.navigator.msPointerEnabled),PASSIVE_EVENTS:(0,k.scope.purify)(function(){if(!p.global.addEventListener||!Object.defineProperty)return!1;var b=!1,c=Object.defineProperty({},"passive",{get:function(){b=!0}});try{p.global.addEventListener("test",p.nullFunction,c),p.global.removeEventListener("test",p.nullFunction,c)}catch(d){}return b})};p.events.EventId=function(b){this.id=b};p.events.EventId.prototype.toString=function(){return this.id};p.events.Event=function(b,c){this.type=b instanceof p.events.EventId?String(b):b;this.currentTarget=this.target=c;this.defaultPrevented=this.propagationStopped_=!1;this.returnValue_=!0};p.events.Event.prototype.stopPropagation=function(){this.propagationStopped_=!0};p.events.Event.prototype.preventDefault=function(){this.defaultPrevented=!0;this.returnValue_=!1};p.events.Event.stopPropagation=function(b){b.stopPropagation()};p.events.Event.preventDefault=function(b){b.preventDefault()};p.events.getVendorPrefixedName_=function(b){return p.userAgent.WEBKIT?"webkit"+b:p.userAgent.OPERA?"o"+b.toLowerCase():b.toLowerCase()};
p.events.EventType={CLICK:"click",RIGHTCLICK:"rightclick",DBLCLICK:"dblclick",AUXCLICK:"auxclick",MOUSEDOWN:"mousedown",MOUSEUP:"mouseup",MOUSEOVER:"mouseover",MOUSEOUT:"mouseout",MOUSEMOVE:"mousemove",MOUSEENTER:"mouseenter",MOUSELEAVE:"mouseleave",MOUSECANCEL:"mousecancel",SELECTIONCHANGE:"selectionchange",SELECTSTART:"selectstart",WHEEL:"wheel",KEYPRESS:"keypress",KEYDOWN:"keydown",KEYUP:"keyup",BLUR:"blur",FOCUS:"focus",DEACTIVATE:"deactivate",FOCUSIN:"focusin",FOCUSOUT:"focusout",CHANGE:"change",
RESET:"reset",SELECT:"select",SUBMIT:"submit",INPUT:"input",PROPERTYCHANGE:"propertychange",DRAGSTART:"dragstart",DRAG:"drag",DRAGENTER:"dragenter",DRAGOVER:"dragover",DRAGLEAVE:"dragleave",DROP:"drop",DRAGEND:"dragend",TOUCHSTART:"touchstart",TOUCHMOVE:"touchmove",TOUCHEND:"touchend",TOUCHCANCEL:"touchcancel",BEFOREUNLOAD:"beforeunload",CONSOLEMESSAGE:"consolemessage",CONTEXTMENU:"contextmenu",DEVICECHANGE:"devicechange",DEVICEMOTION:"devicemotion",DEVICEORIENTATION:"deviceorientation",DOMCONTENTLOADED:"DOMContentLoaded",
ERROR:"error",HELP:"help",LOAD:"load",LOSECAPTURE:"losecapture",ORIENTATIONCHANGE:"orientationchange",READYSTATECHANGE:"readystatechange",RESIZE:"resize",SCROLL:"scroll",UNLOAD:"unload",CANPLAY:"canplay",CANPLAYTHROUGH:"canplaythrough",DURATIONCHANGE:"durationchange",EMPTIED:"emptied",ENDED:"ended",LOADEDDATA:"loadeddata",LOADEDMETADATA:"loadedmetadata",PAUSE:"pause",PLAY:"play",PLAYING:"playing",RATECHANGE:"ratechange",SEEKED:"seeked",SEEKING:"seeking",STALLED:"stalled",SUSPEND:"suspend",TIMEUPDATE:"timeupdate",
VOLUMECHANGE:"volumechange",WAITING:"waiting",SOURCEOPEN:"sourceopen",SOURCEENDED:"sourceended",SOURCECLOSED:"sourceclosed",ABORT:"abort",UPDATE:"update",UPDATESTART:"updatestart",UPDATEEND:"updateend",HASHCHANGE:"hashchange",PAGEHIDE:"pagehide",PAGESHOW:"pageshow",POPSTATE:"popstate",COPY:"copy",PASTE:"paste",CUT:"cut",BEFORECOPY:"beforecopy",BEFORECUT:"beforecut",BEFOREPASTE:"beforepaste",ONLINE:"online",OFFLINE:"offline",MESSAGE:"message",CONNECT:"connect",INSTALL:"install",ACTIVATE:"activate",
FETCH:"fetch",FOREIGNFETCH:"foreignfetch",MESSAGEERROR:"messageerror",STATECHANGE:"statechange",UPDATEFOUND:"updatefound",CONTROLLERCHANGE:"controllerchange",ANIMATIONSTART:p.events.getVendorPrefixedName_("AnimationStart"),ANIMATIONEND:p.events.getVendorPrefixedName_("AnimationEnd"),ANIMATIONITERATION:p.events.getVendorPrefixedName_("AnimationIteration"),TRANSITIONEND:p.events.getVendorPrefixedName_("TransitionEnd"),POINTERDOWN:"pointerdown",POINTERUP:"pointerup",POINTERCANCEL:"pointercancel",POINTERMOVE:"pointermove",
POINTEROVER:"pointerover",POINTEROUT:"pointerout",POINTERENTER:"pointerenter",POINTERLEAVE:"pointerleave",GOTPOINTERCAPTURE:"gotpointercapture",LOSTPOINTERCAPTURE:"lostpointercapture",MSGESTURECHANGE:"MSGestureChange",MSGESTUREEND:"MSGestureEnd",MSGESTUREHOLD:"MSGestureHold",MSGESTURESTART:"MSGestureStart",MSGESTURETAP:"MSGestureTap",MSGOTPOINTERCAPTURE:"MSGotPointerCapture",MSINERTIASTART:"MSInertiaStart",MSLOSTPOINTERCAPTURE:"MSLostPointerCapture",MSPOINTERCANCEL:"MSPointerCancel",MSPOINTERDOWN:"MSPointerDown",
MSPOINTERENTER:"MSPointerEnter",MSPOINTERHOVER:"MSPointerHover",MSPOINTERLEAVE:"MSPointerLeave",MSPOINTERMOVE:"MSPointerMove",MSPOINTEROUT:"MSPointerOut",MSPOINTEROVER:"MSPointerOver",MSPOINTERUP:"MSPointerUp",TEXT:"text",TEXTINPUT:p.userAgent.IE?"textinput":"textInput",COMPOSITIONSTART:"compositionstart",COMPOSITIONUPDATE:"compositionupdate",COMPOSITIONEND:"compositionend",BEFOREINPUT:"beforeinput",EXIT:"exit",LOADABORT:"loadabort",LOADCOMMIT:"loadcommit",LOADREDIRECT:"loadredirect",LOADSTART:"loadstart",
LOADSTOP:"loadstop",RESPONSIVE:"responsive",SIZECHANGED:"sizechanged",UNRESPONSIVE:"unresponsive",VISIBILITYCHANGE:"visibilitychange",STORAGE:"storage",DOMSUBTREEMODIFIED:"DOMSubtreeModified",DOMNODEINSERTED:"DOMNodeInserted",DOMNODEREMOVED:"DOMNodeRemoved",DOMNODEREMOVEDFROMDOCUMENT:"DOMNodeRemovedFromDocument",DOMNODEINSERTEDINTODOCUMENT:"DOMNodeInsertedIntoDocument",DOMATTRMODIFIED:"DOMAttrModified",DOMCHARACTERDATAMODIFIED:"DOMCharacterDataModified",BEFOREPRINT:"beforeprint",AFTERPRINT:"afterprint",
BEFOREINSTALLPROMPT:"beforeinstallprompt",APPINSTALLED:"appinstalled"};p.events.getPointerFallbackEventName_=function(b,c,d){return p.events.BrowserFeature.POINTER_EVENTS?b:p.events.BrowserFeature.MSPOINTER_EVENTS?c:d};
p.events.PointerFallbackEventType={POINTERDOWN:p.events.getPointerFallbackEventName_(p.events.EventType.POINTERDOWN,p.events.EventType.MSPOINTERDOWN,p.events.EventType.MOUSEDOWN),POINTERUP:p.events.getPointerFallbackEventName_(p.events.EventType.POINTERUP,p.events.EventType.MSPOINTERUP,p.events.EventType.MOUSEUP),POINTERCANCEL:p.events.getPointerFallbackEventName_(p.events.EventType.POINTERCANCEL,p.events.EventType.MSPOINTERCANCEL,p.events.EventType.MOUSECANCEL),POINTERMOVE:p.events.getPointerFallbackEventName_(p.events.EventType.POINTERMOVE,
p.events.EventType.MSPOINTERMOVE,p.events.EventType.MOUSEMOVE),POINTEROVER:p.events.getPointerFallbackEventName_(p.events.EventType.POINTEROVER,p.events.EventType.MSPOINTEROVER,p.events.EventType.MOUSEOVER),POINTEROUT:p.events.getPointerFallbackEventName_(p.events.EventType.POINTEROUT,p.events.EventType.MSPOINTEROUT,p.events.EventType.MOUSEOUT),POINTERENTER:p.events.getPointerFallbackEventName_(p.events.EventType.POINTERENTER,p.events.EventType.MSPOINTERENTER,p.events.EventType.MOUSEENTER),POINTERLEAVE:p.events.getPointerFallbackEventName_(p.events.EventType.POINTERLEAVE,
p.events.EventType.MSPOINTERLEAVE,p.events.EventType.MOUSELEAVE)};
p.events.PointerTouchFallbackEventType={POINTERDOWN:p.events.getPointerFallbackEventName_(p.events.EventType.POINTERDOWN,p.events.EventType.MSPOINTERDOWN,p.events.EventType.TOUCHSTART),POINTERUP:p.events.getPointerFallbackEventName_(p.events.EventType.POINTERUP,p.events.EventType.MSPOINTERUP,p.events.EventType.TOUCHEND),POINTERCANCEL:p.events.getPointerFallbackEventName_(p.events.EventType.POINTERCANCEL,p.events.EventType.MSPOINTERCANCEL,p.events.EventType.TOUCHCANCEL),POINTERMOVE:p.events.getPointerFallbackEventName_(p.events.EventType.POINTERMOVE,
p.events.EventType.MSPOINTERMOVE,p.events.EventType.TOUCHMOVE)};p.events.PointerAsMouseEventType={MOUSEDOWN:p.events.PointerFallbackEventType.POINTERDOWN,MOUSEUP:p.events.PointerFallbackEventType.POINTERUP,MOUSECANCEL:p.events.PointerFallbackEventType.POINTERCANCEL,MOUSEMOVE:p.events.PointerFallbackEventType.POINTERMOVE,MOUSEOVER:p.events.PointerFallbackEventType.POINTEROVER,MOUSEOUT:p.events.PointerFallbackEventType.POINTEROUT,MOUSEENTER:p.events.PointerFallbackEventType.POINTERENTER,MOUSELEAVE:p.events.PointerFallbackEventType.POINTERLEAVE};
p.events.MouseAsMouseEventType={MOUSEDOWN:p.events.EventType.MOUSEDOWN,MOUSEUP:p.events.EventType.MOUSEUP,MOUSECANCEL:p.events.EventType.MOUSECANCEL,MOUSEMOVE:p.events.EventType.MOUSEMOVE,MOUSEOVER:p.events.EventType.MOUSEOVER,MOUSEOUT:p.events.EventType.MOUSEOUT,MOUSEENTER:p.events.EventType.MOUSEENTER,MOUSELEAVE:p.events.EventType.MOUSELEAVE};
p.events.PointerAsTouchEventType={TOUCHCANCEL:p.events.PointerTouchFallbackEventType.POINTERCANCEL,TOUCHEND:p.events.PointerTouchFallbackEventType.POINTERUP,TOUCHMOVE:p.events.PointerTouchFallbackEventType.POINTERMOVE,TOUCHSTART:p.events.PointerTouchFallbackEventType.POINTERDOWN};p.events.USE_LAYER_XY_AS_OFFSET_XY=!1;
p.events.BrowserEvent=function(b,c){p.events.Event.call(this,b?b.type:"");this.relatedTarget=this.currentTarget=this.target=null;this.button=this.screenY=this.screenX=this.clientY=this.clientX=this.offsetY=this.offsetX=0;this.key="";this.charCode=this.keyCode=0;this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=!1;this.state=null;this.pointerId=0;this.pointerType="";this.event_=null;if(b){var d=this.type=b.type,e=b.changedTouches&&b.changedTouches.length?b.changedTouches[0]:null;this.target=b.target||
b.srcElement;this.currentTarget=c;(c=b.relatedTarget)?p.userAgent.GECKO&&(p.reflect.canAccessProperty(c)||(c=null)):d==p.events.EventType.MOUSEOVER?c=b.fromElement:d==p.events.EventType.MOUSEOUT&&(c=b.toElement);this.relatedTarget=c;e?(this.clientX=void 0!==e.clientX?e.clientX:e.pageX,this.clientY=void 0!==e.clientY?e.clientY:e.pageY,this.screenX=e.screenX||0,this.screenY=e.screenY||0):(p.events.USE_LAYER_XY_AS_OFFSET_XY?(this.offsetX=void 0!==b.layerX?b.layerX:b.offsetX,this.offsetY=void 0!==b.layerY?
b.layerY:b.offsetY):(this.offsetX=p.userAgent.WEBKIT||void 0!==b.offsetX?b.offsetX:b.layerX,this.offsetY=p.userAgent.WEBKIT||void 0!==b.offsetY?b.offsetY:b.layerY),this.clientX=void 0!==b.clientX?b.clientX:b.pageX,this.clientY=void 0!==b.clientY?b.clientY:b.pageY,this.screenX=b.screenX||0,this.screenY=b.screenY||0);this.button=b.button;this.keyCode=b.keyCode||0;this.key=b.key||"";this.charCode=b.charCode||("keypress"==d?b.keyCode:0);this.ctrlKey=b.ctrlKey;this.altKey=b.altKey;this.shiftKey=b.shiftKey;
this.metaKey=b.metaKey;this.pointerId=b.pointerId||0;this.pointerType=p.events.BrowserEvent.getPointerType_(b);this.state=b.state;this.event_=b;b.defaultPrevented&&this.preventDefault()}};p.inherits(p.events.BrowserEvent,p.events.Event);p.events.BrowserEvent.MouseButton={LEFT:0,MIDDLE:1,RIGHT:2};p.events.BrowserEvent.PointerType={MOUSE:"mouse",PEN:"pen",TOUCH:"touch"};p.events.BrowserEvent.IEButtonMap=p.debug.freeze([1,4,2]);p.events.BrowserEvent.IE_BUTTON_MAP=p.events.BrowserEvent.IEButtonMap;
p.events.BrowserEvent.IE_POINTER_TYPE_MAP=p.debug.freeze({2:p.events.BrowserEvent.PointerType.TOUCH,3:p.events.BrowserEvent.PointerType.PEN,4:p.events.BrowserEvent.PointerType.MOUSE});p.events.BrowserEvent.prototype.stopPropagation=function(){p.events.BrowserEvent.superClass_.stopPropagation.call(this);this.event_.stopPropagation?this.event_.stopPropagation():this.event_.cancelBubble=!0};
p.events.BrowserEvent.prototype.preventDefault=function(){p.events.BrowserEvent.superClass_.preventDefault.call(this);var b=this.event_;if(b.preventDefault)b.preventDefault();else if(b.returnValue=!1,p.events.BrowserFeature.SET_KEY_CODE_TO_PREVENT_DEFAULT)try{if(b.ctrlKey||112<=b.keyCode&&123>=b.keyCode)b.keyCode=-1}catch(c){}};p.events.BrowserEvent.getPointerType_=function(b){return"string"===typeof b.pointerType?b.pointerType:p.events.BrowserEvent.IE_POINTER_TYPE_MAP[b.pointerType]||""};p.events.Listenable=function(){};p.events.Listenable.IMPLEMENTED_BY_PROP="closure_listenable_"+(1E6*Math.random()|0);p.events.Listenable.addImplementation=function(b){b.prototype[p.events.Listenable.IMPLEMENTED_BY_PROP]=!0};p.events.Listenable.isImplementedBy=function(b){return!(!b||!b[p.events.Listenable.IMPLEMENTED_BY_PROP])};p.events.ListenableKey=function(){};p.events.ListenableKey.counter_=0;p.events.ListenableKey.reserveKey=function(){return++p.events.ListenableKey.counter_};p.events.Listener=function(b,c,d,e,f){this.listener=b;this.proxy=null;this.src=c;this.type=d;this.capture=!!e;this.handler=f;this.key=p.events.ListenableKey.reserveKey();this.removed=this.callOnce=!1};p.events.Listener.ENABLE_MONITORING=!1;var v=function(b){b.removed=!0;b.listener=null;b.proxy=null;b.src=null;b.handler=null};p.events.ListenerMap=function(b){this.src=b;this.listeners={};this.typeCount_=0};p.events.ListenerMap.prototype.add=function(b,c,d,e,f){var g=b.toString();b=this.listeners[g];b||(b=this.listeners[g]=[],this.typeCount_++);var h=p.events.ListenerMap.findListenerIndex_(b,c,e,f);-1<h?(c=b[h],d||(c.callOnce=!1)):(c=new p.events.Listener(c,this.src,g,!!e,f),c.callOnce=d,b.push(c));return c};
p.events.ListenerMap.prototype.remove=function(b,c,d,e){b=b.toString();if(!(b in this.listeners))return!1;var f=this.listeners[b];c=p.events.ListenerMap.findListenerIndex_(f,c,d,e);return-1<c?(v(f[c]),p.array.removeAt(f,c),0==f.length&&(delete this.listeners[b],this.typeCount_--),!0):!1};var x=function(b,c){var d=c.type;if(!(d in b.listeners))return!1;var e=p.array.remove(b.listeners[d],c);e&&(v(c),0==b.listeners[d].length&&(delete b.listeners[d],b.typeCount_--));return e};
p.events.ListenerMap.prototype.removeAll=function(b){b=b&&b.toString();var c=0,d;for(d in this.listeners)if(!b||d==b){for(var e=this.listeners[d],f=0;f<e.length;f++)++c,v(e[f]);delete this.listeners[d];this.typeCount_--}return c};p.events.ListenerMap.prototype.getListeners=function(b,c){b=this.listeners[b.toString()];var d=[];if(b)for(var e=0;e<b.length;++e){var f=b[e];f.capture==c&&d.push(f)}return d};
p.events.ListenerMap.prototype.getListener=function(b,c,d,e){b=this.listeners[b.toString()];var f=-1;b&&(f=p.events.ListenerMap.findListenerIndex_(b,c,d,e));return-1<f?b[f]:null};p.events.ListenerMap.prototype.hasListener=function(b,c){var d=void 0!==b,e=d?b.toString():"",f=void 0!==c;return p.object.some(this.listeners,function(g){for(var h=0;h<g.length;++h)if(!(d&&g[h].type!=e||f&&g[h].capture!=c))return!0;return!1})};
p.events.ListenerMap.findListenerIndex_=function(b,c,d,e){for(var f=0;f<b.length;++f){var g=b[f];if(!g.removed&&g.listener==c&&g.capture==!!d&&g.handler==e)return f}return-1};p.events.LISTENER_MAP_PROP_="closure_lm_"+(1E6*Math.random()|0);p.events.onString_="on";p.events.onStringMap_={};p.events.CaptureSimulationMode={OFF_AND_FAIL:0,OFF_AND_SILENT:1,ON:2};p.events.CAPTURE_SIMULATION_MODE=2;p.events.listenerCountEstimate_=0;
p.events.listen=function(b,c,d,e,f){if(e&&e.once)return p.events.listenOnce(b,c,d,e,f);if(p.isArray(c)){for(var g=0;g<c.length;g++)p.events.listen(b,c[g],d,e,f);return null}d=p.events.wrapListener(d);return p.events.Listenable.isImplementedBy(b)?b.listen(c,d,p.isObject(e)?!!e.capture:!!e,f):p.events.listen_(b,c,d,!1,e,f)};
p.events.listen_=function(b,c,d,e,f,g){if(!c)throw Error("Invalid event type");var h=p.isObject(f)?!!f.capture:!!f;if(h&&!p.events.BrowserFeature.HAS_W3C_EVENT_SUPPORT){if(p.events.CAPTURE_SIMULATION_MODE==p.events.CaptureSimulationMode.OFF_AND_FAIL)return p.asserts.fail("Can not register capture listener in IE8-."),null;if(p.events.CAPTURE_SIMULATION_MODE==p.events.CaptureSimulationMode.OFF_AND_SILENT)return null}var l=p.events.getListenerMap_(b);l||(b[p.events.LISTENER_MAP_PROP_]=l=new p.events.ListenerMap(b));
d=l.add(c,d,e,h,g);if(d.proxy)return d;e=p.events.getProxy();d.proxy=e;e.src=b;e.listener=d;if(b.addEventListener)p.events.BrowserFeature.PASSIVE_EVENTS||(f=h),void 0===f&&(f=!1),b.addEventListener(c.toString(),e,f);else if(b.attachEvent)b.attachEvent(p.events.getOnString_(c.toString()),e);else if(b.addListener&&b.removeListener)p.asserts.assert("change"===c,"MediaQueryList only has a change event"),b.addListener(e);else throw Error("addEventListener and attachEvent are unavailable.");p.events.listenerCountEstimate_++;
return d};p.events.getProxy=function(){var b=p.events.handleBrowserEvent_,c=p.events.BrowserFeature.HAS_W3C_EVENT_SUPPORT?function(d){return b.call(c.src,c.listener,d)}:function(d){d=b.call(c.src,c.listener,d);if(!d)return d};return c};
p.events.listenOnce=function(b,c,d,e,f){if(p.isArray(c)){for(var g=0;g<c.length;g++)p.events.listenOnce(b,c[g],d,e,f);return null}d=p.events.wrapListener(d);return p.events.Listenable.isImplementedBy(b)?b.listenOnce(c,d,p.isObject(e)?!!e.capture:!!e,f):p.events.listen_(b,c,d,!0,e,f)};p.events.listenWithWrapper=function(b,c,d,e,f){c.listen(b,d,e,f)};
p.events.unlisten=function(b,c,d,e,f){if(p.isArray(c)){for(var g=0;g<c.length;g++)p.events.unlisten(b,c[g],d,e,f);return null}e=p.isObject(e)?!!e.capture:!!e;d=p.events.wrapListener(d);if(p.events.Listenable.isImplementedBy(b))return b.unlisten(c,d,e,f);if(!b)return!1;if(b=p.events.getListenerMap_(b))if(c=b.getListener(c,d,e,f))return p.events.unlistenByKey(c);return!1};
p.events.unlistenByKey=function(b){if("number"===typeof b||!b||b.removed)return!1;var c=b.src;if(p.events.Listenable.isImplementedBy(c))return c.unlistenByKey(b);var d=b.type,e=b.proxy;c.removeEventListener?c.removeEventListener(d,e,b.capture):c.detachEvent?c.detachEvent(p.events.getOnString_(d),e):c.addListener&&c.removeListener&&c.removeListener(e);p.events.listenerCountEstimate_--;(d=p.events.getListenerMap_(c))?(x(d,b),0==d.typeCount_&&(d.src=null,c[p.events.LISTENER_MAP_PROP_]=null)):v(b);return!0};
p.events.unlistenWithWrapper=function(b,c,d,e,f){c.unlisten(b,d,e,f)};p.events.removeAll=function(b,c){if(!b)return 0;if(p.events.Listenable.isImplementedBy(b))return b.eventTargetListeners_?b.eventTargetListeners_.removeAll(c):0;b=p.events.getListenerMap_(b);if(!b)return 0;var d=0;c=c&&c.toString();for(var e in b.listeners)if(!c||e==c)for(var f=b.listeners[e].concat(),g=0;g<f.length;++g)p.events.unlistenByKey(f[g])&&++d;return d};
p.events.getListeners=function(b,c){return p.events.Listenable.isImplementedBy(b)?b.getListeners(c,void 0):b?(b=p.events.getListenerMap_(b))?b.getListeners(c,void 0):[]:[]};p.events.getListener=function(b,c,d,e){d=p.events.wrapListener(d);e=!!e;return p.events.Listenable.isImplementedBy(b)?b.getListener(c,d,e,void 0):b?(b=p.events.getListenerMap_(b))?b.getListener(c,d,e,void 0):null:null};
p.events.hasListener=function(b,c,d){if(p.events.Listenable.isImplementedBy(b))return b.hasListener(c,d);b=p.events.getListenerMap_(b);return!!b&&b.hasListener(c,d)};p.events.expose=function(b){var c=[],d;for(d in b)b[d]&&b[d].id?c.push(d+" = "+b[d]+" ("+b[d].id+")"):c.push(d+" = "+b[d]);return c.join("\n")};p.events.getOnString_=function(b){return b in p.events.onStringMap_?p.events.onStringMap_[b]:p.events.onStringMap_[b]=p.events.onString_+b};
p.events.fireListeners=function(b,c,d){return p.events.Listenable.isImplementedBy(b)?b.fireListeners(c,d,void 0):p.events.fireListeners_(b,c,d,void 0)};p.events.fireListeners_=function(b,c,d,e){var f=!0;if(b=p.events.getListenerMap_(b))if(c=b.listeners[c.toString()])for(c=c.concat(),b=0;b<c.length;b++){var g=c[b];g&&g.capture==d&&!g.removed&&(g=p.events.fireListener(g,e),f=f&&!1!==g)}return f};
p.events.fireListener=function(b,c){var d=b.listener,e=b.handler||b.src;b.callOnce&&p.events.unlistenByKey(b);return d.call(e,c)};p.events.getTotalListenerCount=function(){return p.events.listenerCountEstimate_};p.events.dispatchEvent=function(b,c){p.asserts.assert(p.events.Listenable.isImplementedBy(b),"Can not use goog.events.dispatchEvent with non-goog.events.Listenable instance.");return b.dispatchEvent(c)};p.events.protectBrowserEventEntryPoint=function(b){p.events.handleBrowserEvent_=b.protectEntryPoint(p.events.handleBrowserEvent_)};
p.events.handleBrowserEvent_=function(b,c){if(b.removed)return!0;if(!p.events.BrowserFeature.HAS_W3C_EVENT_SUPPORT){var d=c||p.getObjectByName("window.event");c=new p.events.BrowserEvent(d,this);var e=!0;if(p.events.CAPTURE_SIMULATION_MODE==p.events.CaptureSimulationMode.ON){if(!p.events.isMarkedIeEvent_(d)){p.events.markIeEvent_(d);d=[];for(var f=c.currentTarget;f;f=f.parentNode)d.push(f);b=b.type;for(f=d.length-1;!c.propagationStopped_&&0<=f;f--){c.currentTarget=d[f];var g=p.events.fireListeners_(d[f],
b,!0,c);e=e&&g}for(f=0;!c.propagationStopped_&&f<d.length;f++)c.currentTarget=d[f],g=p.events.fireListeners_(d[f],b,!1,c),e=e&&g}}else e=p.events.fireListener(b,c);return e}return p.events.fireListener(b,new p.events.BrowserEvent(c,this))};p.events.markIeEvent_=function(b){var c=!1;if(0==b.keyCode)try{b.keyCode=-1;return}catch(d){c=!0}if(c||void 0==b.returnValue)b.returnValue=!0};p.events.isMarkedIeEvent_=function(b){return 0>b.keyCode||void 0!=b.returnValue};p.events.uniqueIdCounter_=0;
p.events.getUniqueId=function(b){return b+"_"+p.events.uniqueIdCounter_++};p.events.getListenerMap_=function(b){b=b[p.events.LISTENER_MAP_PROP_];return b instanceof p.events.ListenerMap?b:null};p.events.LISTENER_WRAPPER_PROP_="__closure_events_fn_"+(1E9*Math.random()>>>0);
p.events.wrapListener=function(b){p.asserts.assert(b,"Listener can not be null.");if(p.isFunction(b))return b;p.asserts.assert(b.handleEvent,"An object listener must have handleEvent method.");b[p.events.LISTENER_WRAPPER_PROP_]||(b[p.events.LISTENER_WRAPPER_PROP_]=function(c){return b.handleEvent(c)});return b[p.events.LISTENER_WRAPPER_PROP_]};p.debug.entryPointRegistry.register(function(b){p.events.handleBrowserEvent_=b(p.events.handleBrowserEvent_)});p.events.EventTarget=function(){p.Disposable.call(this);this.eventTargetListeners_=new p.events.ListenerMap(this);this.actualEventTarget_=this;this.parentEventTarget_=null};p.inherits(p.events.EventTarget,p.Disposable);p.events.Listenable.addImplementation(p.events.EventTarget);p.events.EventTarget.MAX_ANCESTORS_=1E3;a=p.events.EventTarget.prototype;a.addEventListener=function(b,c,d,e){p.events.listen(this,b,c,d,e)};a.removeEventListener=function(b,c,d,e){p.events.unlisten(this,b,c,d,e)};
a.dispatchEvent=function(b){y(this);var c=this.parentEventTarget_;if(c){var d=[];for(var e=1;c;c=c.parentEventTarget_)d.push(c),p.asserts.assert(++e<p.events.EventTarget.MAX_ANCESTORS_,"infinite loop")}return p.events.EventTarget.dispatchEventInternal_(this.actualEventTarget_,b,d)};a.disposeInternal=function(){p.events.EventTarget.superClass_.disposeInternal.call(this);this.eventTargetListeners_&&this.eventTargetListeners_.removeAll(void 0);this.parentEventTarget_=null};
a.listen=function(b,c,d,e){y(this);return this.eventTargetListeners_.add(String(b),c,!1,d,e)};a.listenOnce=function(b,c,d,e){return this.eventTargetListeners_.add(String(b),c,!0,d,e)};a.unlisten=function(b,c,d,e){return this.eventTargetListeners_.remove(String(b),c,d,e)};a.unlistenByKey=function(b){return x(this.eventTargetListeners_,b)};
a.fireListeners=function(b,c,d){b=this.eventTargetListeners_.listeners[String(b)];if(!b)return!0;b=b.concat();for(var e=!0,f=0;f<b.length;++f){var g=b[f];if(g&&!g.removed&&g.capture==c){var h=g.listener,l=g.handler||g.src;g.callOnce&&this.unlistenByKey(g);e=!1!==h.call(l,d)&&e}}return e&&0!=d.returnValue_};a.getListeners=function(b,c){return this.eventTargetListeners_.getListeners(String(b),c)};a.getListener=function(b,c,d,e){return this.eventTargetListeners_.getListener(String(b),c,d,e)};
a.hasListener=function(b,c){return this.eventTargetListeners_.hasListener(void 0!==b?String(b):void 0,c)};var y=function(b){p.asserts.assert(b.eventTargetListeners_,"Event target is not initialized. Did you call the superclass (goog.events.EventTarget) constructor?")};
p.events.EventTarget.dispatchEventInternal_=function(b,c,d){var e=c.type||c;if("string"===typeof c)c=new p.events.Event(c,b);else if(c instanceof p.events.Event)c.target=c.target||b;else{var f=c;c=new p.events.Event(e,b);p.object.extend(c,f)}f=!0;if(d)for(var g=d.length-1;!c.propagationStopped_&&0<=g;g--){var h=c.currentTarget=d[g];f=h.fireListeners(e,!0,c)&&f}c.propagationStopped_||(h=c.currentTarget=b,f=h.fireListeners(e,!0,c)&&f,c.propagationStopped_||(f=h.fireListeners(e,!1,c)&&f));if(d)for(g=
0;!c.propagationStopped_&&g<d.length;g++)h=c.currentTarget=d[g],f=h.fireListeners(e,!1,c)&&f;return f};p.math={};p.math.randomInt=function(){return Math.floor(Math.random()*p.craw.AppWindow.NETWORK_TEST_URLS_.length)};p.math.uniformRandom=function(b,c){return b+Math.random()*(c-b)};p.math.clamp=function(b,c,d){return Math.min(Math.max(b,c),d)};p.math.modulo=function(b,c){b%=c;return 0>b*c?b+c:b};p.math.lerp=function(b,c,d){return b+d*(c-b)};p.math.nearlyEquals=function(b,c,d){return Math.abs(b-c)<=(d||1E-6)};p.math.standardAngle=function(b){return p.math.modulo(b,360)};
p.math.standardAngleInRadians=function(b){return p.math.modulo(b,2*Math.PI)};p.math.toRadians=function(b){return b*Math.PI/180};p.math.toDegrees=function(b){return 180*b/Math.PI};p.math.angleDx=function(b,c){return c*Math.cos(p.math.toRadians(b))};p.math.angleDy=function(b,c){return c*Math.sin(p.math.toRadians(b))};p.math.angle=function(b,c,d,e){return p.math.standardAngle(p.math.toDegrees(Math.atan2(e-c,d-b)))};
p.math.angleDifference=function(b,c){b=p.math.standardAngle(c)-p.math.standardAngle(b);180<b?b-=360:-180>=b&&(b=360+b);return b};p.math.sign=function(b){return 0<b?1:0>b?-1:b};
p.math.longestCommonSubsequence=function(b,c,d,e){d=d||function(t,B){return t==B};e=e||function(t){return b[t]};for(var f=b.length,g=c.length,h=[],l=0;l<f+1;l++)h[l]=[],h[l][0]=0;for(var m=0;m<g+1;m++)h[0][m]=0;for(l=1;l<=f;l++)for(m=1;m<=g;m++)d(b[l-1],c[m-1])?h[l][m]=h[l-1][m-1]+1:h[l][m]=Math.max(h[l-1][m],h[l][m-1]);var n=[];l=f;for(m=g;0<l&&0<m;)d(b[l-1],c[m-1])?(n.unshift(e(l-1,m-1)),l--,m--):h[l-1][m]>h[l][m-1]?l--:m--;return n};
p.math.sum=function(b){return p.array.reduce(arguments,function(c,d){return c+d},0)};p.math.average=function(b){return p.math.sum.apply(null,arguments)/arguments.length};p.math.sampleVariance=function(b){var c=arguments.length;if(2>c)return 0;var d=p.math.average.apply(null,arguments);return p.math.sum.apply(null,p.array.map(arguments,function(e){return Math.pow(e-d,2)}))/(c-1)};p.math.standardDeviation=function(b){return Math.sqrt(p.math.sampleVariance.apply(null,arguments))};
p.math.isInt=function(b){return isFinite(b)&&0==b%1};p.math.isFiniteNumber=function(b){return isFinite(b)};p.math.isNegativeZero=function(b){return 0==b&&0>1/b};p.math.log10Floor=function(b){if(0<b){var c=Math.round(Math.log(b)*Math.LOG10E);return c-(parseFloat("1e"+c)>b?1:0)}return 0==b?-Infinity:NaN};p.math.safeFloor=function(b,c){p.asserts.assert(void 0===c||0<c);return Math.floor(b+(c||2E-15))};p.math.safeCeil=function(b,c){p.asserts.assert(void 0===c||0<c);return Math.ceil(b-(c||2E-15))};p.iter={};p.iter.StopIteration="StopIteration"in p.global?p.global.StopIteration:{message:"StopIteration",stack:""};p.iter.Iterator=function(){};p.iter.Iterator.prototype.next=function(){throw p.iter.StopIteration;};p.iter.Iterator.prototype.__iterator__=function(){return this};
p.iter.toIterator=function(b){if(b instanceof p.iter.Iterator)return b;if("function"==typeof b.__iterator__)return b.__iterator__(!1);if(p.isArrayLike(b)){var c=0,d=new p.iter.Iterator;d.next=function(){for(;;){if(c>=b.length)throw p.iter.StopIteration;if(c in b)return b[c++];c++}};return d}throw Error("Not implemented");};
p.iter.forEach=function(b,c,d){if(p.isArrayLike(b))try{p.array.forEach(b,c,d)}catch(e){if(e!==p.iter.StopIteration)throw e;}else{b=p.iter.toIterator(b);try{for(;;)c.call(d,b.next(),void 0,b)}catch(e){if(e!==p.iter.StopIteration)throw e;}}};p.iter.filter=function(b,c,d){var e=p.iter.toIterator(b);b=new p.iter.Iterator;b.next=function(){for(;;){var f=e.next();if(c.call(d,f,void 0,e))return f}};return b};p.iter.filterFalse=function(b,c,d){return p.iter.filter(b,p.functions.not(c),d)};
p.iter.range=function(b,c,d){var e=0,f=b,g=d||1;1<arguments.length&&(e=b,f=+c);if(0==g)throw Error("Range step argument must not be zero");var h=new p.iter.Iterator;h.next=function(){if(0<g&&e>=f||0>g&&e<=f)throw p.iter.StopIteration;var l=e;e+=g;return l};return h};p.iter.join=function(b,c){return p.iter.toArray(b).join(c)};p.iter.map=function(b,c,d){var e=p.iter.toIterator(b);b=new p.iter.Iterator;b.next=function(){var f=e.next();return c.call(d,f,void 0,e)};return b};
p.iter.reduce=function(b,c,d,e){var f=d;p.iter.forEach(b,function(g){f=c.call(e,f,g)});return f};p.iter.some=function(b,c,d){b=p.iter.toIterator(b);try{for(;;)if(c.call(d,b.next(),void 0,b))return!0}catch(e){if(e!==p.iter.StopIteration)throw e;}return!1};p.iter.every=function(b,c,d){b=p.iter.toIterator(b);try{for(;;)if(!c.call(d,b.next(),void 0,b))return!1}catch(e){if(e!==p.iter.StopIteration)throw e;}return!0};p.iter.chain=function(b){return p.iter.chainFromIterable(arguments)};
p.iter.chainFromIterable=function(b){var c=p.iter.toIterator(b);b=new p.iter.Iterator;var d=null;b.next=function(){for(;;){if(null==d){var e=c.next();d=p.iter.toIterator(e)}try{return d.next()}catch(f){if(f!==p.iter.StopIteration)throw f;d=null}}};return b};p.iter.dropWhile=function(b,c,d){var e=p.iter.toIterator(b);b=new p.iter.Iterator;var f=!0;b.next=function(){for(;;){var g=e.next();if(!f||!c.call(d,g,void 0,e))return f=!1,g}};return b};
p.iter.takeWhile=function(b,c,d){var e=p.iter.toIterator(b);b=new p.iter.Iterator;b.next=function(){var f=e.next();if(c.call(d,f,void 0,e))return f;throw p.iter.StopIteration;};return b};p.iter.toArray=function(b){if(p.isArrayLike(b))return p.array.toArray(b);b=p.iter.toIterator(b);var c=[];p.iter.forEach(b,function(d){c.push(d)});return c};p.iter.equals=function(b,c){b=p.iter.zipLongest({},b,c);var d=p.array.defaultCompareEquality;return p.iter.every(b,function(e){return d(e[0],e[1])})};
p.iter.nextOrValue=function(b){try{p.iter.toIterator(b).next()}catch(c){if(c!=p.iter.StopIteration)throw c;}};
p.iter.product=function(b){if(p.array.some(arguments,function(f){return!f.length})||!arguments.length)return new p.iter.Iterator;var c=new p.iter.Iterator,d=arguments,e=p.array.repeat(0,d.length);c.next=function(){if(e){for(var f=p.array.map(e,function(h,l){return d[l][h]}),g=e.length-1;0<=g;g--){p.asserts.assert(e);if(e[g]<d[g].length-1){e[g]++;break}if(0==g){e=null;break}e[g]=0}return f}throw p.iter.StopIteration;};return c};
p.iter.cycle=function(b){var c=p.iter.toIterator(b),d=[],e=0;b=new p.iter.Iterator;var f=!1;b.next=function(){var g=null;if(!f)try{return g=c.next(),d.push(g),g}catch(h){if(h!=p.iter.StopIteration||p.array.isEmpty(d))throw h;f=!0}g=d[e];e=(e+1)%d.length;return g};return b};p.iter.count=function(b,c){var d=b||0,e=void 0!==c?c:1;b=new p.iter.Iterator;b.next=function(){var f=d;d+=e;return f};return b};p.iter.repeat=function(b){var c=new p.iter.Iterator;c.next=p.functions.constant(b);return c};
p.iter.accumulate=function(b){var c=p.iter.toIterator(b),d=0;b=new p.iter.Iterator;b.next=function(){return d+=c.next()};return b};p.iter.zip=function(b){var c=arguments,d=new p.iter.Iterator;if(0<c.length){var e=p.array.map(c,p.iter.toIterator);d.next=function(){return p.array.map(e,function(f){return f.next()})}}return d};
p.iter.zipLongest=function(b,c){var d=p.array.slice(arguments,1),e=new p.iter.Iterator;if(0<d.length){var f=p.array.map(d,p.iter.toIterator);e.next=function(){var g=!1,h=p.array.map(f,function(l){try{var m=l.next();g=!0}catch(n){if(n!==p.iter.StopIteration)throw n;m=b}return m});if(!g)throw p.iter.StopIteration;return h}}return e};p.iter.compress=function(b,c){var d=p.iter.toIterator(c);return p.iter.filter(b,function(){return!!d.next()})};
p.iter.GroupByIterator_=function(b,c){this.iterator=p.iter.toIterator(b);this.keyFunc=c||p.functions.identity};p.inherits(p.iter.GroupByIterator_,p.iter.Iterator);
p.iter.GroupByIterator_.prototype.next=function(){for(;this.currentKey==this.targetKey;)this.currentValue=this.iterator.next(),this.currentKey=this.keyFunc(this.currentValue);for(var b=this.targetKey=this.currentKey,c=this.targetKey,d=[];this.currentKey==c;){d.push(this.currentValue);try{this.currentValue=this.iterator.next()}catch(e){if(e!==p.iter.StopIteration)throw e;break}this.currentKey=this.keyFunc(this.currentValue)}return[b,d]};
p.iter.groupBy=function(b,c){return new p.iter.GroupByIterator_(b,c)};p.iter.starMap=function(b,c,d){var e=p.iter.toIterator(b);b=new p.iter.Iterator;b.next=function(){var f=p.iter.toArray(e.next());return c.apply(d,p.array.concat(f,void 0,e))};return b};
p.iter.tee=function(b,c){var d=p.iter.toIterator(b),e=p.array.map(p.array.range("number"===typeof c?c:2),function(){return[]}),f=function(){var g=d.next();p.array.forEach(e,function(h){h.push(g)})};return p.array.map(e,function(g){var h=new p.iter.Iterator;h.next=function(){p.array.isEmpty(g)&&f();p.asserts.assert(!p.array.isEmpty(g));return g.shift()};return h})};p.iter.enumerate=function(b,c){return p.iter.zip(p.iter.count(c),b)};
p.iter.limit=function(b,c){p.asserts.assert(p.math.isInt(c)&&0<=c);var d=p.iter.toIterator(b);b=new p.iter.Iterator;var e=c;b.next=function(){if(0<e--)return d.next();throw p.iter.StopIteration;};return b};p.iter.consume=function(b,c){p.asserts.assert(p.math.isInt(c)&&0<=c);for(b=p.iter.toIterator(b);0<c--;)p.iter.nextOrValue(b);return b};
p.iter.slice=function(b,c,d){p.asserts.assert(p.math.isInt(c)&&0<=c);b=p.iter.consume(b,c);"number"===typeof d&&(p.asserts.assert(p.math.isInt(d)&&d>=c),b=p.iter.limit(b,d-c));return b};p.iter.hasDuplicates_=function(b){var c=[];p.array.removeDuplicates(b,c);return b.length!=c.length};p.iter.permutations=function(b,c){b=p.iter.toArray(b);c=p.array.repeat(b,"number"===typeof c?c:b.length);c=p.iter.product.apply(void 0,c);return p.iter.filter(c,function(d){return!p.iter.hasDuplicates_(d)})};
p.iter.combinations=function(b,c){function d(g){return e[g]}var e=p.iter.toArray(b);b=p.iter.range(e.length);c=p.iter.permutations(b,c);var f=p.iter.filter(c,function(g){return p.array.isSorted(g)});c=new p.iter.Iterator;c.next=function(){return p.array.map(f.next(),d)};return c};
p.iter.combinationsWithReplacement=function(b,c){function d(g){return e[g]}var e=p.iter.toArray(b);b=p.array.range(e.length);c=p.array.repeat(b,c);c=p.iter.product.apply(void 0,c);var f=p.iter.filter(c,function(g){return p.array.isSorted(g)});c=new p.iter.Iterator;c.next=function(){return p.array.map(f.next(),d)};return c};p.structs={};p.structs.Map=function(b,c){this.map_={};this.keys_=[];this.version_=this.count_=0;var d=arguments.length;if(1<d){if(d%2)throw Error("Uneven number of arguments");for(var e=0;e<d;e+=2)this.set(arguments[e],arguments[e+1])}else b&&this.addAll(b)};a=p.structs.Map.prototype;a.getCount=function(){return this.count_};a.getValues=function(){z(this);for(var b=[],c=0;c<this.keys_.length;c++)b.push(this.map_[this.keys_[c]]);return b};a.getKeys=function(){z(this);return this.keys_.concat()};
a.containsKey=function(b){return p.structs.Map.hasKey_(this.map_,b)};a.containsValue=function(b){for(var c=0;c<this.keys_.length;c++){var d=this.keys_[c];if(p.structs.Map.hasKey_(this.map_,d)&&this.map_[d]==b)return!0}return!1};a.equals=function(b,c){if(this===b)return!0;if(this.count_!=b.getCount())return!1;c=c||p.structs.Map.defaultEquals;z(this);for(var d,e=0;d=this.keys_[e];e++)if(!c(this.get(d),b.get(d)))return!1;return!0};p.structs.Map.defaultEquals=function(b,c){return b===c};
p.structs.Map.prototype.isEmpty=function(){return 0==this.count_};p.structs.Map.prototype.clear=function(){this.map_={};this.version_=this.count_=this.keys_.length=0};p.structs.Map.prototype.remove=function(b){return p.structs.Map.hasKey_(this.map_,b)?(delete this.map_[b],this.count_--,this.version_++,this.keys_.length>2*this.count_&&z(this),!0):!1};
var z=function(b){if(b.count_!=b.keys_.length){for(var c=0,d=0;c<b.keys_.length;){var e=b.keys_[c];p.structs.Map.hasKey_(b.map_,e)&&(b.keys_[d++]=e);c++}b.keys_.length=d}if(b.count_!=b.keys_.length){var f={};for(d=c=0;c<b.keys_.length;)e=b.keys_[c],p.structs.Map.hasKey_(f,e)||(b.keys_[d++]=e,f[e]=1),c++;b.keys_.length=d}};a=p.structs.Map.prototype;a.get=function(b,c){return p.structs.Map.hasKey_(this.map_,b)?this.map_[b]:c};
a.set=function(b,c){p.structs.Map.hasKey_(this.map_,b)||(this.count_++,this.keys_.push(b),this.version_++);this.map_[b]=c};a.addAll=function(b){if(b instanceof p.structs.Map)for(var c=b.getKeys(),d=0;d<c.length;d++)this.set(c[d],b.get(c[d]));else for(c in b)this.set(c,b[c])};a.forEach=function(b,c){for(var d=this.getKeys(),e=0;e<d.length;e++){var f=d[e],g=this.get(f);b.call(c,g,f,this)}};a.clone=function(){return new p.structs.Map(this)};
a.transpose=function(){for(var b=new p.structs.Map,c=0;c<this.keys_.length;c++){var d=this.keys_[c];b.set(this.map_[d],d)}return b};a.toObject=function(){z(this);for(var b={},c=0;c<this.keys_.length;c++){var d=this.keys_[c];b[d]=this.map_[d]}return b};
a.__iterator__=function(b){z(this);var c=0,d=this.version_,e=this,f=new p.iter.Iterator;f.next=function(){if(d!=e.version_)throw Error("The map has changed since the iterator was created");if(c>=e.keys_.length)throw p.iter.StopIteration;var g=e.keys_[c++];return b?g:e.map_[g]};return f};p.structs.Map.hasKey_=function(b,c){return Object.prototype.hasOwnProperty.call(b,c)};p.structs.LinkedMap=function(b){this.maxCount_=b||null;this.cache_=!0;this.evictionCallback_=void 0;this.map_=new p.structs.Map;this.head_=new p.structs.LinkedMap.Node_("",void 0);this.head_.next=this.head_.prev=this.head_};var C=function(b,c){(c=b.map_.get(c))&&b.cache_&&(c.remove(),A(b,c));return c};a=p.structs.LinkedMap.prototype;a.get=function(b,c){return(b=C(this,b))?b.value:c};a.set=function(b,c){var d=C(this,b);d?d.value=c:(d=new p.structs.LinkedMap.Node_(b,c),this.map_.set(b,d),A(this,d))};
a.peek=function(){return this.head_.next.value};a.shift=function(){return D(this,this.head_.next)};a.pop=function(){return D(this,this.head_.prev)};a.remove=function(b){return(b=this.map_.get(b))?(this.removeNode(b),!0):!1};a.removeNode=function(b){b.remove();this.map_.remove(b.key)};a.getCount=function(){return this.map_.getCount()};a.isEmpty=function(){return this.map_.isEmpty()};a.getKeys=function(){return this.map(function(b,c){return c})};a.getValues=function(){return this.map(function(b){return b})};
a.contains=function(b){return this.some(function(c){return c==b})};a.containsKey=function(b){return this.map_.containsKey(b)};a.clear=function(){E(this,0)};a.forEach=function(b,c){for(var d=this.head_.next;d!=this.head_;d=d.next)b.call(c,d.value,d.key,this)};a.map=function(b,c){for(var d=[],e=this.head_.next;e!=this.head_;e=e.next)d.push(b.call(c,e.value,e.key,this));return d};a.some=function(b,c){for(var d=this.head_.next;d!=this.head_;d=d.next)if(b.call(c,d.value,d.key,this))return!0;return!1};
a.every=function(b,c){for(var d=this.head_.next;d!=this.head_;d=d.next)if(!b.call(c,d.value,d.key,this))return!1;return!0};
var A=function(b,c){b.cache_?(c.next=b.head_.next,c.prev=b.head_,b.head_.next=c,c.next.prev=c):(c.prev=b.head_.prev,c.next=b.head_,b.head_.prev=c,c.prev.next=c);null!=b.maxCount_&&E(b,b.maxCount_)},E=function(b,c){for(;b.getCount()>c;){var d=b.cache_?b.head_.prev:b.head_.next;b.removeNode(d);b.evictionCallback_&&b.evictionCallback_(d.key,d.value)}},D=function(b,c){b.head_!=c&&b.removeNode(c);return c.value};p.structs.LinkedMap.Node_=function(b,c){this.key=b;this.value=c};
p.structs.LinkedMap.Node_.prototype.remove=function(){this.prev.next=this.next;this.next.prev=this.prev;delete this.prev;delete this.next};var q={LicensesCache:function(b,c){p.events.EventTarget.call(this);this.timeout_=b||36E5;this.cache_=new p.structs.LinkedMap(c||100)}};k.inherits(q.LicensesCache,p.events.EventTarget);q.LicensesCache.prototype.get=function(b){b=this.cache_.get(b);var c;if(c=b)c=this.timeout_,c=p.now()-b.timeStamp_<=c;return c?b.licenses_:null};q.LicensesCache.prototype.remove=function(b){this.cache_.remove(b)};q.LicensesCache.Entry=function(b){this.timeStamp_=p.now();this.licenses_=b};p.structs.getCount=function(b){return b.getCount&&"function"==typeof b.getCount?b.getCount():p.isArrayLike(b)||"string"===typeof b?b.length:p.object.getCount(b)};p.structs.getValues=function(b){if(b.getValues&&"function"==typeof b.getValues)return b.getValues();if("string"===typeof b)return b.split("");if(p.isArrayLike(b)){for(var c=[],d=b.length,e=0;e<d;e++)c.push(b[e]);return c}return p.object.getValues(b)};
p.structs.getKeys=function(b){if(b.getKeys&&"function"==typeof b.getKeys)return b.getKeys();if(!b.getValues||"function"!=typeof b.getValues){if(p.isArrayLike(b)||"string"===typeof b){var c=[];b=b.length;for(var d=0;d<b;d++)c.push(d);return c}return p.object.getKeys(b)}};
p.structs.contains=function(b,c){return b.contains&&"function"==typeof b.contains?b.contains(c):b.containsValue&&"function"==typeof b.containsValue?b.containsValue(c):p.isArrayLike(b)||"string"===typeof b?p.array.contains(b,c):p.object.containsValue(b,c)};p.structs.isEmpty=function(b){return b.isEmpty&&"function"==typeof b.isEmpty?b.isEmpty():p.isArrayLike(b)||"string"===typeof b?p.array.isEmpty(b):p.object.isEmpty(b)};
p.structs.clear=function(b){b.clear&&"function"==typeof b.clear?b.clear():p.isArrayLike(b)?p.array.clear(b):p.object.clear(b)};p.structs.forEach=function(b,c,d){if(b.forEach&&"function"==typeof b.forEach)b.forEach(c,d);else if(p.isArrayLike(b)||"string"===typeof b)p.array.forEach(b,c,d);else for(var e=p.structs.getKeys(b),f=p.structs.getValues(b),g=f.length,h=0;h<g;h++)c.call(d,f[h],e&&e[h],b)};
p.structs.filter=function(b,c,d){if("function"==typeof b.filter)return b.filter(c,d);if(p.isArrayLike(b)||"string"===typeof b)return p.array.filter(b,c,d);var e=p.structs.getKeys(b),f=p.structs.getValues(b),g=f.length;if(e){var h={};for(var l=0;l<g;l++)c.call(d,f[l],e[l],b)&&(h[e[l]]=f[l])}else for(h=[],l=0;l<g;l++)c.call(d,f[l],void 0,b)&&h.push(f[l]);return h};
p.structs.map=function(b,c,d){if("function"==typeof b.map)return b.map(c,d);if(p.isArrayLike(b)||"string"===typeof b)return p.array.map(b,c,d);var e=p.structs.getKeys(b),f=p.structs.getValues(b),g=f.length;if(e){var h={};for(var l=0;l<g;l++)h[e[l]]=c.call(d,f[l],e[l],b)}else for(h=[],l=0;l<g;l++)h[l]=c.call(d,f[l],void 0,b);return h};
p.structs.some=function(b,c,d){if("function"==typeof b.some)return b.some(c,d);if(p.isArrayLike(b)||"string"===typeof b)return p.array.some(b,c,d);for(var e=p.structs.getKeys(b),f=p.structs.getValues(b),g=f.length,h=0;h<g;h++)if(c.call(d,f[h],e&&e[h],b))return!0;return!1};
p.structs.every=function(b,c,d){if("function"==typeof b.every)return b.every(c,d);if(p.isArrayLike(b)||"string"===typeof b)return p.array.every(b,c,d);for(var e=p.structs.getKeys(b),f=p.structs.getValues(b),g=f.length,h=0;h<g;h++)if(!c.call(d,f[h],e&&e[h],b))return!1;return!0};p.uri={};p.uri.utils={};p.uri.utils.CharCode_={AMPERSAND:38,EQUAL:61,HASH:35,QUESTION:63};p.uri.utils.buildFromEncodedParts=function(b,c,d,e,f,g,h){var l="";b&&(l+=b+":");d&&(l+="//",c&&(l+=c+"@"),l+=d,e&&(l+=":"+e));f&&(l+=f);g&&(l+="?"+g);h&&(l+="#"+h);return l};p.uri.utils.splitRe_=/^(?:([^:/?#.]+):)?(?:\/\/(?:([^/?#]*)@)?([^/#?]*?)(?::([0-9]+))?(?=[/#?]|$))?([^?#]+)?(?:\?([^#]*))?(?:#([\s\S]*))?$/;p.uri.utils.ComponentIndex={SCHEME:1,USER_INFO:2,DOMAIN:3,PORT:4,PATH:5,QUERY_DATA:6,FRAGMENT:7};
p.uri.utils.split=function(b){return b.match(p.uri.utils.splitRe_)};p.uri.utils.decodeIfPossible_=function(b,c){return b?c?decodeURI(b):decodeURIComponent(b):b};p.uri.utils.getComponentByIndex_=function(b,c){return p.uri.utils.split(c)[b]||null};p.uri.utils.getScheme=function(b){return p.uri.utils.getComponentByIndex_(p.uri.utils.ComponentIndex.SCHEME,b)};
p.uri.utils.getEffectiveScheme=function(b){b=p.uri.utils.getScheme(b);!b&&p.global.self&&p.global.self.location&&(b=p.global.self.location.protocol,b=b.substr(0,b.length-1));return b?b.toLowerCase():""};p.uri.utils.getUserInfoEncoded=function(){return p.uri.utils.getComponentByIndex_(p.uri.utils.ComponentIndex.USER_INFO,void 0)};p.uri.utils.getUserInfo=function(){return p.uri.utils.decodeIfPossible_(p.uri.utils.getUserInfoEncoded())};
p.uri.utils.getDomainEncoded=function(){return p.uri.utils.getComponentByIndex_(p.uri.utils.ComponentIndex.DOMAIN,void 0)};p.uri.utils.getDomain=function(){return p.uri.utils.decodeIfPossible_(p.uri.utils.getDomainEncoded(),!0)};p.uri.utils.getPort=function(){return Number(p.uri.utils.getComponentByIndex_(p.uri.utils.ComponentIndex.PORT,void 0))||null};p.uri.utils.getPathEncoded=function(){return p.uri.utils.getComponentByIndex_(p.uri.utils.ComponentIndex.PATH,void 0)};
p.uri.utils.getPath=function(){return p.uri.utils.decodeIfPossible_(p.uri.utils.getPathEncoded(),!0)};p.uri.utils.getQueryData=function(){return p.uri.utils.getComponentByIndex_(p.uri.utils.ComponentIndex.QUERY_DATA,void 0)};p.uri.utils.getFragmentEncoded=function(){var b=(void 0).indexOf("#");return 0>b?null:(void 0).substr(b+1)};p.uri.utils.setFragmentEncoded=function(b,c){return p.uri.utils.removeFragment(b)+(c?"#"+c:"")};p.uri.utils.getFragment=function(){return p.uri.utils.decodeIfPossible_(p.uri.utils.getFragmentEncoded())};
p.uri.utils.getHost=function(b){b=p.uri.utils.split(b);return p.uri.utils.buildFromEncodedParts(b[p.uri.utils.ComponentIndex.SCHEME],b[p.uri.utils.ComponentIndex.USER_INFO],b[p.uri.utils.ComponentIndex.DOMAIN],b[p.uri.utils.ComponentIndex.PORT])};p.uri.utils.getOrigin=function(b){b=p.uri.utils.split(b);return p.uri.utils.buildFromEncodedParts(b[p.uri.utils.ComponentIndex.SCHEME],null,b[p.uri.utils.ComponentIndex.DOMAIN],b[p.uri.utils.ComponentIndex.PORT])};
p.uri.utils.getPathAndAfter=function(b){b=p.uri.utils.split(b);return p.uri.utils.buildFromEncodedParts(null,null,null,null,b[p.uri.utils.ComponentIndex.PATH],b[p.uri.utils.ComponentIndex.QUERY_DATA],b[p.uri.utils.ComponentIndex.FRAGMENT])};p.uri.utils.removeFragment=function(b){var c=b.indexOf("#");return 0>c?b:b.substr(0,c)};
p.uri.utils.haveSameDomain=function(b,c){b=p.uri.utils.split(b);c=p.uri.utils.split(c);return b[p.uri.utils.ComponentIndex.DOMAIN]==c[p.uri.utils.ComponentIndex.DOMAIN]&&b[p.uri.utils.ComponentIndex.SCHEME]==c[p.uri.utils.ComponentIndex.SCHEME]&&b[p.uri.utils.ComponentIndex.PORT]==c[p.uri.utils.ComponentIndex.PORT]};p.uri.utils.assertNoFragmentsOrQueries_=function(b){p.asserts.assert(0>b.indexOf("#")&&0>b.indexOf("?"),"goog.uri.utils: Fragment or query identifiers are not supported: [%s]",b)};
p.uri.utils.parseQueryData=function(b,c){if(b){b=b.split("&");for(var d=0;d<b.length;d++){var e=b[d].indexOf("="),f=null;if(0<=e){var g=b[d].substring(0,e);f=b[d].substring(e+1)}else g=b[d];c(g,f?p.string.urlDecode(f):"")}}};p.uri.utils.splitQueryData_=function(b){var c=b.indexOf("#");0>c&&(c=b.length);var d=b.indexOf("?");if(0>d||d>c){d=c;var e=""}else e=b.substring(d+1,c);return[b.substr(0,d),e,b.substr(c)]};p.uri.utils.joinQueryData_=function(b){return b[0]+(b[1]?"?"+b[1]:"")+b[2]};
p.uri.utils.appendQueryData_=function(b,c){return c?b?b+"&"+c:c:b};p.uri.utils.appendQueryDataToUri_=function(b,c){if(!c)return b;b=p.uri.utils.splitQueryData_(b);b[1]=p.uri.utils.appendQueryData_(b[1],c);return p.uri.utils.joinQueryData_(b)};p.uri.utils.appendKeyValuePairs_=function(b,c,d){p.asserts.assertString(b);if(p.isArray(c)){p.asserts.assertArray(c);for(var e=0;e<c.length;e++)p.uri.utils.appendKeyValuePairs_(b,String(c[e]),d)}else null!=c&&d.push(b+(""===c?"":"="+p.string.urlEncode(c)))};
p.uri.utils.buildQueryData=function(b,c){p.asserts.assert(0==Math.max(b.length-(c||0),0)%2,"goog.uri.utils: Key/value lists must be even in length.");var d=[];for(c=c||0;c<b.length;c+=2)p.uri.utils.appendKeyValuePairs_(b[c],b[c+1],d);return d.join("&")};p.uri.utils.buildQueryDataFromMap=function(b){var c=[],d;for(d in b)p.uri.utils.appendKeyValuePairs_(d,b[d],c);return c.join("&")};
p.uri.utils.appendParams=function(b,c){var d=2==arguments.length?p.uri.utils.buildQueryData(arguments[1],0):p.uri.utils.buildQueryData(arguments,1);return p.uri.utils.appendQueryDataToUri_(b,d)};p.uri.utils.appendParamsFromMap=function(b,c){c=p.uri.utils.buildQueryDataFromMap(c);return p.uri.utils.appendQueryDataToUri_(b,c)};p.uri.utils.appendParam=function(b,c,d){d=null!=d?"="+p.string.urlEncode(d):"";return p.uri.utils.appendQueryDataToUri_(b,c+d)};
p.uri.utils.findParam_=function(b,c,d,e){for(var f=d.length;0<=(c=b.indexOf(d,c))&&c<e;){var g=b.charCodeAt(c-1);if(g==p.uri.utils.CharCode_.AMPERSAND||g==p.uri.utils.CharCode_.QUESTION)if(g=b.charCodeAt(c+f),!g||g==p.uri.utils.CharCode_.EQUAL||g==p.uri.utils.CharCode_.AMPERSAND||g==p.uri.utils.CharCode_.HASH)return c;c+=f+1}return-1};p.uri.utils.hashOrEndRe_=/#|$/;p.uri.utils.hasParam=function(b,c){return 0<=p.uri.utils.findParam_(b,0,c,b.search(p.uri.utils.hashOrEndRe_))};
p.uri.utils.getParamValue=function(b,c){var d=b.search(p.uri.utils.hashOrEndRe_),e=p.uri.utils.findParam_(b,0,c,d);if(0>e)return null;var f=b.indexOf("&",e);if(0>f||f>d)f=d;e+=c.length+1;return p.string.urlDecode(b.substr(e,f-e))};p.uri.utils.getParamValues=function(b,c){for(var d=b.search(p.uri.utils.hashOrEndRe_),e=0,f,g=[];0<=(f=p.uri.utils.findParam_(b,e,c,d));){e=b.indexOf("&",f);if(0>e||e>d)e=d;f+=c.length+1;g.push(p.string.urlDecode(b.substr(f,e-f)))}return g};
p.uri.utils.trailingQueryPunctuationRe_=/[?&]($|#)/;p.uri.utils.removeParam=function(b,c){for(var d=b.search(p.uri.utils.hashOrEndRe_),e=0,f,g=[];0<=(f=p.uri.utils.findParam_(b,e,c,d));)g.push(b.substring(e,f)),e=Math.min(b.indexOf("&",f)+1||d,d);g.push(b.substr(e));return g.join("").replace(p.uri.utils.trailingQueryPunctuationRe_,"$1")};
p.uri.utils.setParam=function(b){var c=p.uri.utils.StandardQueryParam.RANDOM,d=p.string.getRandomString();return p.uri.utils.appendParam(p.uri.utils.removeParam(b,c),c,d)};p.uri.utils.setParamsFromMap=function(b,c){b=p.uri.utils.splitQueryData_(b);var d=b[1],e=[];d&&p.array.forEach(d.split("&"),function(f){var g=f.indexOf("=");c.hasOwnProperty(0<=g?f.substr(0,g):f)||e.push(f)});b[1]=p.uri.utils.appendQueryData_(e.join("&"),p.uri.utils.buildQueryDataFromMap(c));return p.uri.utils.joinQueryData_(b)};
p.uri.utils.appendPath=function(b,c){p.uri.utils.assertNoFragmentsOrQueries_(b);p.string.endsWith(b,"/")&&(b=b.substr(0,b.length-1));p.string.startsWith(c,"/")&&(c=c.substr(1));return p.string.buildString(b,"/",c)};p.uri.utils.setPath=function(b,c){p.string.startsWith(c,"/");p.uri.utils.split(b)};p.uri.utils.StandardQueryParam={RANDOM:"zx"};p.uri.utils.makeUnique=function(b){return p.uri.utils.setParam(b)};p.Uri=function(b,c){this.domain_=this.userInfo_=this.scheme_="";this.port_=null;this.fragment_=this.path_="";this.ignoreCase_=this.isReadOnly_=!1;var d;b instanceof p.Uri?(this.ignoreCase_=void 0!==c?c:b.ignoreCase_,F(this,b.getScheme()),G(this,b.getUserInfo()),H(this,b.getDomain()),I(this,b.getPort()),this.setPath(b.getPath()),J(this,b.getQueryData().clone()),K(this,b.getFragment())):b&&(d=p.uri.utils.split(String(b)))?(this.ignoreCase_=!!c,F(this,d[p.uri.utils.ComponentIndex.SCHEME]||"",!0),G(this,
d[p.uri.utils.ComponentIndex.USER_INFO]||"",!0),H(this,d[p.uri.utils.ComponentIndex.DOMAIN]||"",!0),I(this,d[p.uri.utils.ComponentIndex.PORT]),this.setPath(d[p.uri.utils.ComponentIndex.PATH]||"",!0),J(this,d[p.uri.utils.ComponentIndex.QUERY_DATA]||"",!0),K(this,d[p.uri.utils.ComponentIndex.FRAGMENT]||"",!0)):(this.ignoreCase_=!!c,this.queryData_=new p.Uri.QueryData(null,this.ignoreCase_))};p.Uri.RANDOM_PARAM=p.uri.utils.StandardQueryParam.RANDOM;
p.Uri.prototype.toString=function(){var b=[],c=this.getScheme();c&&b.push(p.Uri.encodeSpecialChars_(c,p.Uri.reDisallowedInSchemeOrUserInfo_,!0),":");var d=this.getDomain();if(d||"file"==c)b.push("//"),(c=this.getUserInfo())&&b.push(p.Uri.encodeSpecialChars_(c,p.Uri.reDisallowedInSchemeOrUserInfo_,!0),"@"),b.push(p.Uri.removeDoubleEncoding_(p.string.urlEncode(d))),d=this.getPort(),null!=d&&b.push(":",String(d));if(d=this.getPath())this.domain_&&"/"!=d.charAt(0)&&b.push("/"),b.push(p.Uri.encodeSpecialChars_(d,
"/"==d.charAt(0)?p.Uri.reDisallowedInAbsolutePath_:p.Uri.reDisallowedInRelativePath_,!0));(d=this.queryData_.toString())&&b.push("?",d);(d=this.getFragment())&&b.push("#",p.Uri.encodeSpecialChars_(d,p.Uri.reDisallowedInFragment_));return b.join("")};
p.Uri.prototype.resolve=function(b){var c=this.clone(),d=!!b.scheme_;d?F(c,b.getScheme()):d=!!b.userInfo_;d?G(c,b.getUserInfo()):d=!!b.domain_;d?H(c,b.getDomain()):d=null!=b.port_;var e=b.getPath();if(d)I(c,b.getPort());else if(d=!!b.path_){if("/"!=e.charAt(0))if(this.domain_&&!this.path_)e="/"+e;else{var f=c.getPath().lastIndexOf("/");-1!=f&&(e=c.getPath().substr(0,f+1)+e)}e=p.Uri.removeDotSegments(e)}d?c.setPath(e):d=""!==b.queryData_.toString();d?J(c,b.getQueryData().clone()):d=!!b.fragment_;d&&
K(c,b.getFragment());return c};p.Uri.prototype.clone=function(){return new p.Uri(this)};p.Uri.prototype.getScheme=function(){return this.scheme_};var F=function(b,c,d){L(b);b.scheme_=d?p.Uri.decodeOrEmpty_(c,!0):c;b.scheme_&&(b.scheme_=b.scheme_.replace(/:$/,""))};p.Uri.prototype.getUserInfo=function(){return this.userInfo_};var G=function(b,c,d){L(b);b.userInfo_=d?p.Uri.decodeOrEmpty_(c):c};p.Uri.prototype.getDomain=function(){return this.domain_};
var H=function(b,c,d){L(b);b.domain_=d?p.Uri.decodeOrEmpty_(c,!0):c};p.Uri.prototype.getPort=function(){return this.port_};var I=function(b,c){L(b);if(c){c=Number(c);if(isNaN(c)||0>c)throw Error("Bad port number "+c);b.port_=c}else b.port_=null};p.Uri.prototype.getPath=function(){return this.path_};p.Uri.prototype.setPath=function(b,c){L(this);this.path_=c?p.Uri.decodeOrEmpty_(b,!0):b};
var J=function(b,c,d){L(b);c instanceof p.Uri.QueryData?(b.queryData_=c,b.queryData_.setIgnoreCase(b.ignoreCase_)):(d||(c=p.Uri.encodeSpecialChars_(c,p.Uri.reDisallowedInQuery_)),b.queryData_=new p.Uri.QueryData(c,b.ignoreCase_))};p.Uri.prototype.getQueryData=function(){return this.queryData_};p.Uri.prototype.getQuery=function(){return this.queryData_.toString()};var M=function(b,c,d){L(b);b.queryData_.set(c,d)};p.Uri.prototype.getFragment=function(){return this.fragment_};
var K=function(b,c,d){L(b);b.fragment_=d?p.Uri.decodeOrEmpty_(c):c};p.Uri.prototype.makeUnique=function(){L(this);M(this,p.Uri.RANDOM_PARAM,p.string.getRandomString());return this};p.Uri.prototype.removeParameter=function(b){L(this);this.queryData_.remove(b);return this};var L=function(b){if(b.isReadOnly_)throw Error("Tried to modify a read-only Uri");};p.Uri.prototype.setIgnoreCase=function(b){this.ignoreCase_=b;this.queryData_&&this.queryData_.setIgnoreCase(b)};
p.Uri.parse=function(b,c){return b instanceof p.Uri?b.clone():new p.Uri(b,c)};p.Uri.create=function(b,c,d,e,f,g,h,l){l=new p.Uri(null,l);b&&F(l,b);c&&G(l,c);d&&H(l,d);e&&I(l,e);f&&l.setPath(f);g&&J(l,g);h&&K(l,h);return l};p.Uri.resolve=function(b,c){b instanceof p.Uri||(b=p.Uri.parse(b));c instanceof p.Uri||(c=p.Uri.parse(c));return b.resolve(c)};
p.Uri.removeDotSegments=function(b){if(".."==b||"."==b)return"";if(p.string.contains(b,"./")||p.string.contains(b,"/.")){var c=p.string.startsWith(b,"/");b=b.split("/");for(var d=[],e=0;e<b.length;){var f=b[e++];"."==f?c&&e==b.length&&d.push(""):".."==f?((1<d.length||1==d.length&&""!=d[0])&&d.pop(),c&&e==b.length&&d.push("")):(d.push(f),c=!0)}return d.join("/")}return b};p.Uri.decodeOrEmpty_=function(b,c){return b?c?decodeURI(b.replace(/%25/g,"%2525")):decodeURIComponent(b):""};
p.Uri.encodeSpecialChars_=function(b,c,d){return"string"===typeof b?(b=encodeURI(b).replace(c,p.Uri.encodeChar_),d&&(b=p.Uri.removeDoubleEncoding_(b)),b):null};p.Uri.encodeChar_=function(b){b=b.charCodeAt(0);return"%"+(b>>4&15).toString(16)+(b&15).toString(16)};p.Uri.removeDoubleEncoding_=function(b){return b.replace(/%25([0-9a-fA-F]{2})/g,"%$1")};p.Uri.reDisallowedInSchemeOrUserInfo_=/[#\/\?@]/g;p.Uri.reDisallowedInRelativePath_=/[#\?:]/g;p.Uri.reDisallowedInAbsolutePath_=/[#\?]/g;
p.Uri.reDisallowedInQuery_=/[#\?@]/g;p.Uri.reDisallowedInFragment_=/#/g;p.Uri.haveSameDomain=function(b,c){b=p.uri.utils.split(b);c=p.uri.utils.split(c);return b[p.uri.utils.ComponentIndex.DOMAIN]==c[p.uri.utils.ComponentIndex.DOMAIN]&&b[p.uri.utils.ComponentIndex.PORT]==c[p.uri.utils.ComponentIndex.PORT]};p.Uri.QueryData=function(b,c){this.count_=this.keyMap_=null;this.encodedQuery_=b||null;this.ignoreCase_=!!c};
var N=function(b){b.keyMap_||(b.keyMap_=new p.structs.Map,b.count_=0,b.encodedQuery_&&p.uri.utils.parseQueryData(b.encodedQuery_,function(c,d){b.add(p.string.urlDecode(c),d)}))};p.Uri.QueryData.createFromMap=function(b,c,d){c=p.structs.getKeys(b);if("undefined"==typeof c)throw Error("Keys are undefined");d=new p.Uri.QueryData(null,d);b=p.structs.getValues(b);for(var e=0;e<c.length;e++){var f=c[e],g=b[e];p.isArray(g)?O(d,f,g):d.add(f,g)}return d};
p.Uri.QueryData.createFromKeysValues=function(b,c,d,e){if(b.length!=c.length)throw Error("Mismatched lengths for keys/values");d=new p.Uri.QueryData(null,e);for(e=0;e<b.length;e++)d.add(b[e],c[e]);return d};a=p.Uri.QueryData.prototype;a.getCount=function(){N(this);return this.count_};a.add=function(b,c){N(this);this.encodedQuery_=null;b=P(this,b);var d=this.keyMap_.get(b);d||this.keyMap_.set(b,d=[]);d.push(c);this.count_=p.asserts.assertNumber(this.count_)+1;return this};
a.remove=function(b){N(this);b=P(this,b);return this.keyMap_.containsKey(b)?(this.encodedQuery_=null,this.count_=p.asserts.assertNumber(this.count_)-this.keyMap_.get(b).length,this.keyMap_.remove(b)):!1};a.clear=function(){this.keyMap_=this.encodedQuery_=null;this.count_=0};a.isEmpty=function(){N(this);return 0==this.count_};a.containsKey=function(b){N(this);b=P(this,b);return this.keyMap_.containsKey(b)};a.containsValue=function(b){var c=this.getValues();return p.array.contains(c,b)};
a.forEach=function(b,c){N(this);this.keyMap_.forEach(function(d,e){p.array.forEach(d,function(f){b.call(c,f,e,this)},this)},this)};a.getKeys=function(){N(this);for(var b=this.keyMap_.getValues(),c=this.keyMap_.getKeys(),d=[],e=0;e<c.length;e++)for(var f=b[e],g=0;g<f.length;g++)d.push(c[e]);return d};
a.getValues=function(b){N(this);var c=[];if("string"===typeof b)this.containsKey(b)&&(c=p.array.concat(c,this.keyMap_.get(P(this,b))));else{b=this.keyMap_.getValues();for(var d=0;d<b.length;d++)c=p.array.concat(c,b[d])}return c};a.set=function(b,c){N(this);this.encodedQuery_=null;b=P(this,b);this.containsKey(b)&&(this.count_=p.asserts.assertNumber(this.count_)-this.keyMap_.get(b).length);this.keyMap_.set(b,[c]);this.count_=p.asserts.assertNumber(this.count_)+1;return this};
a.get=function(b,c){if(!b)return c;b=this.getValues(b);return 0<b.length?String(b[0]):c};var O=function(b,c,d){b.remove(c);0<d.length&&(b.encodedQuery_=null,b.keyMap_.set(P(b,c),p.array.clone(d)),b.count_=p.asserts.assertNumber(b.count_)+d.length)};
p.Uri.QueryData.prototype.toString=function(){if(this.encodedQuery_)return this.encodedQuery_;if(!this.keyMap_)return"";for(var b=[],c=this.keyMap_.getKeys(),d=0;d<c.length;d++){var e=c[d],f=p.string.urlEncode(e);e=this.getValues(e);for(var g=0;g<e.length;g++){var h=f;""!==e[g]&&(h+="="+p.string.urlEncode(e[g]));b.push(h)}}return this.encodedQuery_=b.join("&")};
p.Uri.QueryData.prototype.clone=function(){var b=new p.Uri.QueryData;b.encodedQuery_=this.encodedQuery_;this.keyMap_&&(b.keyMap_=this.keyMap_.clone(),b.count_=this.count_);return b};var P=function(b,c){c=String(c);b.ignoreCase_&&(c=c.toLowerCase());return c};p.Uri.QueryData.prototype.setIgnoreCase=function(b){b&&!this.ignoreCase_&&(N(this),this.encodedQuery_=null,this.keyMap_.forEach(function(c,d){var e=d.toLowerCase();d!=e&&(this.remove(d),O(this,e,c))},this));this.ignoreCase_=b};
p.Uri.QueryData.prototype.extend=function(b){for(var c=0;c<arguments.length;c++)p.structs.forEach(arguments[c],function(d,e){this.add(e,d)},this)};q.Errors={};q.Errors.ErrorTypes={MINT_JWT_ERROR:"MINT_JWT_ERROR",PURCHASE_CANCELED:"PURCHASE_CANCELED",CONSUME_PURCHASE_ERROR:"CONSUME_PURCHASE_ERROR",GET_PURCHASES_ERROR:"GET_PURCHASES_ERROR",GET_SKU_DETAILS_ERROR:"GET_SKU_DETAILS_ERROR",ENV_NOT_SUPPORTED_ERROR:"ENV_NOT_SUPPORTED_ERROR",TOKEN_MISSING_ERROR:"TOKEN_MISSING_ERROR",INVALID_RESPONSE_ERROR:"INVALID_RESPONSE_ERROR"};q.Errors.getErrorResponse=function(b){return{request:{},response:{errorType:b}}};q.WebStoreService=function(){this.baseUrl_=q.WebStoreService.Environment.SANDBOX;this.baseUrlAndPath_=this.baseUrl_+q.WebStoreService.WEB_STORE_REQUEST_PATH_};q.WebStoreService.Environment={PROD:"https://www.googleapis.com",SANDBOX:"https://www-googleapis-staging.sandbox.google.com"};q.WebStoreService.WEB_STORE_REQUEST_PATH_="/chromewebstore/v1.1";
var aa=function(b,c,d,e,f,g,h,l,m,n){var t=d?d:"",B=l||"application/x-www-form-urlencoded",Z=function(w,r){if(r&&200==w){w=null;try{w=JSON.parse(r)}catch(ua){g(q.Errors.ErrorTypes.INVALID_RESPONSE_ERROR);return}f(w)}else g(q.Errors.ErrorTypes.INVALID_RESPONSE_ERROR)},ba=function(w){if(w){var r=new XMLHttpRequest;r.open(e,c);r.setRequestHeader("Authorization","Bearer "+w);r.setRequestHeader("Content-Type",B);r.onreadystatechange=function(){4==r.readyState&&(401==r.status&&w?chrome.identity.removeCachedAuthToken({token:w},
function(){h?aa(b,e,d,e,f,g,!1,l,m,n):(console.log(r),Z(r.status,r.responseText))}):(console.log(r),Z(r.status,r.responseText)))};r.send(t)}else g(q.Errors.ErrorTypes.TOKEN_MISSING_ERROR)};n?ba(n):chrome.identity.getAuthToken({interactive:m||!1},ba)};q.WebStoreService.prototype.onFailure_=function(b,c,d){b(q.Errors.getErrorResponse(d||c))};
var ca=function(b,c,d,e,f,g,h,l){c={hl:window.navigator.language,itemId:c,sku:d,paymentVersion:1};h&&(c.gl=h);h=new p.Uri.QueryData;l&&h.add("projection",l);l=new p.Uri(b.baseUrlAndPath_+"/payments/buy");J(l,h);f=p.bind(b.onFailure_,b,f,q.Errors.ErrorTypes.MINT_JWT_ERROR);aa(b,l.toString(),JSON.stringify(c),"POST",function(m){e(m.jwt,m.paymentData,m.signature)},f,!0,"application/json",void 0,g)};p.dom.BrowserFeature={};p.dom.BrowserFeature.ASSUME_NO_OFFSCREEN_CANVAS=!1;p.dom.BrowserFeature.ASSUME_OFFSCREEN_CANVAS=!1;p.dom.BrowserFeature.detectOffscreenCanvas_=function(){try{return!!(new self.OffscreenCanvas(0,0)).getContext("2d")}catch(b){}return!1};p.dom.BrowserFeature.OFFSCREEN_CANVAS_2D=!p.dom.BrowserFeature.ASSUME_NO_OFFSCREEN_CANVAS&&(p.dom.BrowserFeature.ASSUME_OFFSCREEN_CANVAS||p.dom.BrowserFeature.detectOffscreenCanvas_());
p.dom.BrowserFeature.CAN_ADD_NAME_OR_TYPE_ATTRIBUTES=!p.userAgent.IE||p.userAgent.isDocumentModeOrHigher(9);p.dom.BrowserFeature.CAN_USE_CHILDREN_ATTRIBUTE=!p.userAgent.GECKO&&!p.userAgent.IE||p.userAgent.IE&&p.userAgent.isDocumentModeOrHigher(9)||p.userAgent.GECKO&&p.userAgent.isVersionOrHigher("1.9.1");p.dom.BrowserFeature.CAN_USE_INNER_TEXT=p.userAgent.IE&&!p.userAgent.isVersionOrHigher("9");p.dom.BrowserFeature.CAN_USE_PARENT_ELEMENT_PROPERTY=p.userAgent.IE||p.userAgent.OPERA||p.userAgent.WEBKIT;
p.dom.BrowserFeature.INNER_HTML_NEEDS_SCOPED_ELEMENT=p.userAgent.IE;p.dom.BrowserFeature.LEGACY_IE_RANGES=p.userAgent.IE&&!p.userAgent.isDocumentModeOrHigher(9);p.math.Coordinate=function(b,c){this.x=void 0!==b?b:0;this.y=void 0!==c?c:0};p.math.Coordinate.prototype.clone=function(){return new p.math.Coordinate(this.x,this.y)};p.DEBUG&&(p.math.Coordinate.prototype.toString=function(){return"("+this.x+", "+this.y+")"});p.math.Coordinate.prototype.equals=function(b){return b instanceof p.math.Coordinate&&p.math.Coordinate.equals(this,b)};p.math.Coordinate.equals=function(b,c){return b==c?!0:b&&c?b.x==c.x&&b.y==c.y:!1};
p.math.Coordinate.distance=function(b,c){var d=b.x-c.x;b=b.y-c.y;return Math.sqrt(d*d+b*b)};p.math.Coordinate.magnitude=function(b){return Math.sqrt(b.x*b.x+b.y*b.y)};p.math.Coordinate.azimuth=function(b){return p.math.angle(0,0,b.x,b.y)};p.math.Coordinate.squaredDistance=function(b,c){var d=b.x-c.x;b=b.y-c.y;return d*d+b*b};p.math.Coordinate.difference=function(b,c){return new p.math.Coordinate(b.x-c.x,b.y-c.y)};p.math.Coordinate.sum=function(b,c){return new p.math.Coordinate(b.x+c.x,b.y+c.y)};
a=p.math.Coordinate.prototype;a.ceil=function(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);return this};a.floor=function(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);return this};a.round=function(){this.x=Math.round(this.x);this.y=Math.round(this.y);return this};a.translate=function(b,c){b instanceof p.math.Coordinate?(this.x+=b.x,this.y+=b.y):(this.x+=Number(b),"number"===typeof c&&(this.y+=c));return this};a.scale=function(b,c){this.x*=b;this.y*="number"===typeof c?c:b;return this};p.math.Size=function(b,c){this.width=b;this.height=c};p.math.Size.equals=function(b,c){return b==c?!0:b&&c?b.width==c.width&&b.height==c.height:!1};p.math.Size.prototype.clone=function(){return new p.math.Size(this.width,this.height)};p.DEBUG&&(p.math.Size.prototype.toString=function(){return"("+this.width+" x "+this.height+")"});a=p.math.Size.prototype;a.aspectRatio=function(){return this.width/this.height};a.isEmpty=function(){return!(this.width*this.height)};
a.ceil=function(){this.width=Math.ceil(this.width);this.height=Math.ceil(this.height);return this};a.floor=function(){this.width=Math.floor(this.width);this.height=Math.floor(this.height);return this};a.round=function(){this.width=Math.round(this.width);this.height=Math.round(this.height);return this};a.scale=function(b,c){this.width*=b;this.height*="number"===typeof c?c:b;return this};p.dom.ASSUME_QUIRKS_MODE=!1;p.dom.ASSUME_STANDARDS_MODE=!1;p.dom.COMPAT_MODE_KNOWN_=p.dom.ASSUME_QUIRKS_MODE||p.dom.ASSUME_STANDARDS_MODE;p.dom.getDomHelper=function(b){return b?new p.dom.DomHelper(p.dom.getOwnerDocument(b)):p.dom.defaultDomHelper_||(p.dom.defaultDomHelper_=new p.dom.DomHelper)};p.dom.getDocument=function(){return document};p.dom.getElement=function(b){return p.dom.getElementHelper_(document,b)};p.dom.getElementHelper_=function(b,c){return"string"===typeof c?b.getElementById(c):c};
p.dom.getRequiredElement=function(b){return p.dom.getRequiredElementHelper_(document,b)};p.dom.getRequiredElementHelper_=function(b,c){p.asserts.assertString(c);b=p.dom.getElementHelper_(b,c);return b=p.asserts.assertElement(b,"No element found with id: "+c)};p.dom.$=p.dom.getElement;p.dom.getElementsByTagName=function(b,c){return(c||document).getElementsByTagName(String(b))};p.dom.getElementsByTagNameAndClass=function(b,c,d){return p.dom.getElementsByTagNameAndClass_(document,b,c,d)};
p.dom.getElementByTagNameAndClass=function(b,c,d){return p.dom.getElementByTagNameAndClass_(document,b,c,d)};p.dom.getElementsByClass=function(b,c){var d=c||document;return p.dom.canUseQuerySelector_(d)?d.querySelectorAll("."+b):p.dom.getElementsByTagNameAndClass_(document,"*",b,c)};p.dom.getElementByClass=function(b,c){var d=c||document;return(d.getElementsByClassName?d.getElementsByClassName(b)[0]:p.dom.getElementByTagNameAndClass_(document,"*",b,c))||null};
p.dom.getRequiredElementByClass=function(b,c){c=p.dom.getElementByClass(b,c);return p.asserts.assert(c,"No element found with className: "+b)};p.dom.canUseQuerySelector_=function(b){return!(!b.querySelectorAll||!b.querySelector)};
p.dom.getElementsByTagNameAndClass_=function(b,c,d,e){b=e||b;c=c&&"*"!=c?String(c).toUpperCase():"";if(p.dom.canUseQuerySelector_(b)&&(c||d))return b.querySelectorAll(c+(d?"."+d:""));if(d&&b.getElementsByClassName){b=b.getElementsByClassName(d);if(c){e={};for(var f=0,g=0,h;h=b[g];g++)c==h.nodeName&&(e[f++]=h);e.length=f;return e}return b}b=b.getElementsByTagName(c||"*");if(d){e={};for(g=f=0;h=b[g];g++)c=h.className,"function"==typeof c.split&&p.array.contains(c.split(/\s+/),d)&&(e[f++]=h);e.length=
f;return e}return b};p.dom.getElementByTagNameAndClass_=function(b,c,d,e){var f=e||b,g=c&&"*"!=c?String(c).toUpperCase():"";return p.dom.canUseQuerySelector_(f)&&(g||d)?f.querySelector(g+(d?"."+d:"")):p.dom.getElementsByTagNameAndClass_(b,c,d,e)[0]||null};p.dom.$$=p.dom.getElementsByTagNameAndClass;
p.dom.setProperties=function(b,c){p.object.forEach(c,function(d,e){d&&"object"==typeof d&&d.implementsGoogStringTypedString&&(d=d.getTypedStringValue());"style"==e?b.style.cssText=d:"class"==e?b.className=d:"for"==e?b.htmlFor=d:p.dom.DIRECT_ATTRIBUTE_MAP_.hasOwnProperty(e)?b.setAttribute(p.dom.DIRECT_ATTRIBUTE_MAP_[e],d):p.string.startsWith(e,"aria-")||p.string.startsWith(e,"data-")?b.setAttribute(e,d):b[e]=d})};
p.dom.DIRECT_ATTRIBUTE_MAP_={cellpadding:"cellPadding",cellspacing:"cellSpacing",colspan:"colSpan",frameborder:"frameBorder",height:"height",maxlength:"maxLength",nonce:"nonce",role:"role",rowspan:"rowSpan",type:"type",usemap:"useMap",valign:"vAlign",width:"width"};p.dom.getViewportSize=function(b){return p.dom.getViewportSize_(b||window)};p.dom.getViewportSize_=function(b){b=b.document;b=p.dom.isCss1CompatMode_(b)?b.documentElement:b.body;return new p.math.Size(b.clientWidth,b.clientHeight)};
p.dom.getDocumentHeight=function(){return p.dom.getDocumentHeight_(window)};p.dom.getDocumentHeightForWindow=function(b){return p.dom.getDocumentHeight_(b)};
p.dom.getDocumentHeight_=function(b){var c=b.document,d=0;if(c){d=c.body;var e=c.documentElement;if(!e||!d)return 0;b=p.dom.getViewportSize_(b).height;if(p.dom.isCss1CompatMode_(c)&&e.scrollHeight)d=e.scrollHeight!=b?e.scrollHeight:e.offsetHeight;else{c=e.scrollHeight;var f=e.offsetHeight;e.clientHeight!=f&&(c=d.scrollHeight,f=d.offsetHeight);d=c>b?c>f?c:f:c<f?c:f}}return d};p.dom.getPageScroll=function(b){return p.dom.getDomHelper((b||p.global||window).document).getDocumentScroll()};
p.dom.getDocumentScroll=function(){return p.dom.getDocumentScroll_(document)};p.dom.getDocumentScroll_=function(b){var c=p.dom.getDocumentScrollElement_(b);b=p.dom.getWindow_(b);return p.userAgent.IE&&p.userAgent.isVersionOrHigher("10")&&b.pageYOffset!=c.scrollTop?new p.math.Coordinate(c.scrollLeft,c.scrollTop):new p.math.Coordinate(b.pageXOffset||c.scrollLeft,b.pageYOffset||c.scrollTop)};p.dom.getDocumentScrollElement=function(){return p.dom.getDocumentScrollElement_(document)};
p.dom.getDocumentScrollElement_=function(b){return b.scrollingElement?b.scrollingElement:!p.userAgent.WEBKIT&&p.dom.isCss1CompatMode_(b)?b.documentElement:b.body||b.documentElement};p.dom.getWindow=function(b){return b?p.dom.getWindow_(b):window};p.dom.getWindow_=function(b){return b.parentWindow||b.defaultView};p.dom.createDom=function(b,c,d){return p.dom.createDom_(document,arguments)};
p.dom.createDom_=function(b,c){var d=String(c[0]),e=c[1];if(!p.dom.BrowserFeature.CAN_ADD_NAME_OR_TYPE_ATTRIBUTES&&e&&(e.name||e.type)){d=["<",d];e.name&&d.push(' name="',p.string.htmlEscape(e.name),'"');if(e.type){d.push(' type="',p.string.htmlEscape(e.type),'"');var f={};p.object.extend(f,e);delete f.type;e=f}d.push(">");d=d.join("")}d=p.dom.createElement_(b,d);e&&("string"===typeof e?d.className=e:p.isArray(e)?d.className=e.join(" "):p.dom.setProperties(d,e));2<c.length&&p.dom.append_(b,d,c,2);
return d};p.dom.append_=function(b,c,d,e){function f(h){h&&c.appendChild("string"===typeof h?b.createTextNode(h):h)}for(;e<d.length;e++){var g=d[e];p.isArrayLike(g)&&!p.dom.isNodeLike(g)?p.array.forEach(p.dom.isNodeList(g)?p.array.toArray(g):g,f):f(g)}};p.dom.$dom=p.dom.createDom;p.dom.createElement=function(b){return p.dom.createElement_(document,b)};p.dom.createElement_=function(b,c){c=String(c);"application/xhtml+xml"===b.contentType&&(c=c.toLowerCase());return b.createElement(c)};
p.dom.createTextNode=function(b){return document.createTextNode(String(b))};p.dom.createTable=function(b,c,d){return p.dom.createTable_(document,b,c,!!d)};p.dom.createTable_=function(b,c,d,e){for(var f=p.dom.createElement_(b,"TABLE"),g=f.appendChild(p.dom.createElement_(b,"TBODY")),h=0;h<c;h++){for(var l=p.dom.createElement_(b,"TR"),m=0;m<d;m++){var n=p.dom.createElement_(b,"TD");e&&p.dom.setTextContent(n,p.string.Unicode.NBSP);l.appendChild(n)}g.appendChild(l)}return f};
p.dom.constHtmlToNode=function(b){var c=p.array.map(arguments,p.string.Const.unwrap);c=p.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract(p.string.Const.from("Constant HTML string, that gets turned into a Node later, so it will be automatically balanced."),c.join(""));return p.dom.safeHtmlToNode(c)};p.dom.safeHtmlToNode=function(b){return p.dom.safeHtmlToNode_(document,b)};
p.dom.safeHtmlToNode_=function(b,c){var d=p.dom.createElement_(b,"DIV");p.dom.BrowserFeature.INNER_HTML_NEEDS_SCOPED_ELEMENT?(p.dom.safe.setInnerHtml(d,p.html.SafeHtml.concat(p.html.SafeHtml.BR,c)),d.removeChild(p.asserts.assert(d.firstChild))):p.dom.safe.setInnerHtml(d,c);return p.dom.childrenToNode_(b,d)};p.dom.childrenToNode_=function(b,c){if(1==c.childNodes.length)return c.removeChild(p.asserts.assert(c.firstChild));for(b=b.createDocumentFragment();c.firstChild;)b.appendChild(c.firstChild);return b};
p.dom.isCss1CompatMode=function(){return p.dom.isCss1CompatMode_(document)};p.dom.isCss1CompatMode_=function(b){return p.dom.COMPAT_MODE_KNOWN_?p.dom.ASSUME_STANDARDS_MODE:"CSS1Compat"==b.compatMode};p.dom.canHaveChildren=function(b){if(b.nodeType!=p.dom.NodeType.ELEMENT)return!1;switch(b.tagName){case "APPLET":case "AREA":case "BASE":case "BR":case "COL":case "COMMAND":case "EMBED":case "FRAME":case "HR":case "IMG":case "INPUT":case "IFRAME":case "ISINDEX":case "KEYGEN":case "LINK":case "NOFRAMES":case "NOSCRIPT":case "META":case "OBJECT":case "PARAM":case "SCRIPT":case "SOURCE":case "STYLE":case "TRACK":case "WBR":return!1}return!0};
p.dom.appendChild=function(b,c){p.asserts.assert(null!=b&&null!=c,"goog.dom.appendChild expects non-null arguments");b.appendChild(c)};p.dom.append=function(b,c){p.dom.append_(p.dom.getOwnerDocument(b),b,arguments,1)};p.dom.removeChildren=function(b){for(var c;c=b.firstChild;)b.removeChild(c)};p.dom.insertSiblingBefore=function(b,c){p.asserts.assert(null!=b&&null!=c,"goog.dom.insertSiblingBefore expects non-null arguments");c.parentNode&&c.parentNode.insertBefore(b,c)};
p.dom.insertSiblingAfter=function(b,c){p.asserts.assert(null!=b&&null!=c,"goog.dom.insertSiblingAfter expects non-null arguments");c.parentNode&&c.parentNode.insertBefore(b,c.nextSibling)};p.dom.insertChildAt=function(b,c,d){p.asserts.assert(null!=b,"goog.dom.insertChildAt expects a non-null parent");b.insertBefore(c,b.childNodes[d]||null)};p.dom.removeNode=function(b){return b&&b.parentNode?b.parentNode.removeChild(b):null};
p.dom.replaceNode=function(b,c){p.asserts.assert(null!=b&&null!=c,"goog.dom.replaceNode expects non-null arguments");var d=c.parentNode;d&&d.replaceChild(b,c)};p.dom.flattenElement=function(b){var c,d=b.parentNode;if(d&&d.nodeType!=p.dom.NodeType.DOCUMENT_FRAGMENT){if(b.removeNode)return b.removeNode(!1);for(;c=b.firstChild;)d.insertBefore(c,b);return p.dom.removeNode(b)}};
p.dom.getChildren=function(b){return p.dom.BrowserFeature.CAN_USE_CHILDREN_ATTRIBUTE&&void 0!=b.children?b.children:p.array.filter(b.childNodes,function(c){return c.nodeType==p.dom.NodeType.ELEMENT})};p.dom.getFirstElementChild=function(b){return void 0!==b.firstElementChild?b.firstElementChild:p.dom.getNextElementNode_(b.firstChild,!0)};p.dom.getLastElementChild=function(b){return void 0!==b.lastElementChild?b.lastElementChild:p.dom.getNextElementNode_(b.lastChild,!1)};
p.dom.getNextElementSibling=function(b){return void 0!==b.nextElementSibling?b.nextElementSibling:p.dom.getNextElementNode_(b.nextSibling,!0)};p.dom.getPreviousElementSibling=function(b){return void 0!==b.previousElementSibling?b.previousElementSibling:p.dom.getNextElementNode_(b.previousSibling,!1)};p.dom.getNextElementNode_=function(b,c){for(;b&&b.nodeType!=p.dom.NodeType.ELEMENT;)b=c?b.nextSibling:b.previousSibling;return b};
p.dom.getNextNode=function(b){if(!b)return null;if(b.firstChild)return b.firstChild;for(;b&&!b.nextSibling;)b=b.parentNode;return b?b.nextSibling:null};p.dom.getPreviousNode=function(b){if(!b)return null;if(!b.previousSibling)return b.parentNode;for(b=b.previousSibling;b&&b.lastChild;)b=b.lastChild;return b};p.dom.isNodeLike=function(b){return p.isObject(b)&&0<b.nodeType};p.dom.isElement=function(b){return p.isObject(b)&&b.nodeType==p.dom.NodeType.ELEMENT};
p.dom.isWindow=function(b){return p.isObject(b)&&b.window==b};p.dom.getParentElement=function(b){var c;if(p.dom.BrowserFeature.CAN_USE_PARENT_ELEMENT_PROPERTY&&!(p.userAgent.IE&&p.userAgent.isVersionOrHigher("9")&&!p.userAgent.isVersionOrHigher("10")&&p.global.SVGElement&&b instanceof p.global.SVGElement)&&(c=b.parentElement))return c;c=b.parentNode;return p.dom.isElement(c)?c:null};
p.dom.contains=function(b,c){if(!b||!c)return!1;if(b.contains&&c.nodeType==p.dom.NodeType.ELEMENT)return b==c||b.contains(c);if("undefined"!=typeof b.compareDocumentPosition)return b==c||!!(b.compareDocumentPosition(c)&16);for(;c&&b!=c;)c=c.parentNode;return c==b};
p.dom.compareNodeOrder=function(b,c){if(b==c)return 0;if(b.compareDocumentPosition)return b.compareDocumentPosition(c)&2?1:-1;if(p.userAgent.IE&&!p.userAgent.isDocumentModeOrHigher(9)){if(b.nodeType==p.dom.NodeType.DOCUMENT)return-1;if(c.nodeType==p.dom.NodeType.DOCUMENT)return 1}if("sourceIndex"in b||b.parentNode&&"sourceIndex"in b.parentNode){var d=b.nodeType==p.dom.NodeType.ELEMENT,e=c.nodeType==p.dom.NodeType.ELEMENT;if(d&&e)return b.sourceIndex-c.sourceIndex;var f=b.parentNode,g=c.parentNode;
return f==g?p.dom.compareSiblingOrder_(b,c):!d&&p.dom.contains(f,c)?-1*p.dom.compareParentsDescendantNodeIe_(b,c):!e&&p.dom.contains(g,b)?p.dom.compareParentsDescendantNodeIe_(c,b):(d?b.sourceIndex:f.sourceIndex)-(e?c.sourceIndex:g.sourceIndex)}e=p.dom.getOwnerDocument(b);d=e.createRange();d.selectNode(b);d.collapse(!0);b=e.createRange();b.selectNode(c);b.collapse(!0);return d.compareBoundaryPoints(p.global.Range.START_TO_END,b)};
p.dom.compareParentsDescendantNodeIe_=function(b,c){var d=b.parentNode;if(d==c)return-1;for(;c.parentNode!=d;)c=c.parentNode;return p.dom.compareSiblingOrder_(c,b)};p.dom.compareSiblingOrder_=function(b,c){for(;c=c.previousSibling;)if(c==b)return-1;return 1};
p.dom.findCommonAncestor=function(b){var c,d=arguments.length;if(!d)return null;if(1==d)return arguments[0];var e=[],f=Infinity;for(c=0;c<d;c++){for(var g=[],h=arguments[c];h;)g.unshift(h),h=h.parentNode;e.push(g);f=Math.min(f,g.length)}g=null;for(c=0;c<f;c++){h=e[0][c];for(var l=1;l<d;l++)if(h!=e[l][c])return g;g=h}return g};p.dom.isInDocument=function(b){return 16==(b.ownerDocument.compareDocumentPosition(b)&16)};
p.dom.getOwnerDocument=function(b){p.asserts.assert(b,"Node cannot be null or undefined.");return b.nodeType==p.dom.NodeType.DOCUMENT?b:b.ownerDocument||b.document};p.dom.getFrameContentDocument=function(b){return b.contentDocument||b.contentWindow.document};p.dom.getFrameContentWindow=function(b){try{return b.contentWindow||(b.contentDocument?p.dom.getWindow(b.contentDocument):null)}catch(c){}return null};
p.dom.setTextContent=function(b,c){p.asserts.assert(null!=b,"goog.dom.setTextContent expects a non-null value for node");if("textContent"in b)b.textContent=c;else if(b.nodeType==p.dom.NodeType.TEXT)b.data=String(c);else if(b.firstChild&&b.firstChild.nodeType==p.dom.NodeType.TEXT){for(;b.lastChild!=b.firstChild;)b.removeChild(p.asserts.assert(b.lastChild));b.firstChild.data=String(c)}else{p.dom.removeChildren(b);var d=p.dom.getOwnerDocument(b);b.appendChild(d.createTextNode(String(c)))}};
p.dom.getOuterHtml=function(b){p.asserts.assert(null!==b,"goog.dom.getOuterHtml expects a non-null value for element");if("outerHTML"in b)return b.outerHTML;var c=p.dom.getOwnerDocument(b);c=p.dom.createElement_(c,"DIV");c.appendChild(b.cloneNode(!0));return c.innerHTML};p.dom.findNode=function(b,c){var d=[];return p.dom.findNodes_(b,c,d,!0)?d[0]:void 0};p.dom.findNodes=function(b,c){var d=[];p.dom.findNodes_(b,c,d,!1);return d};
p.dom.findNodes_=function(b,c,d,e){if(null!=b)for(b=b.firstChild;b;){if(c(b)&&(d.push(b),e)||p.dom.findNodes_(b,c,d,e))return!0;b=b.nextSibling}return!1};p.dom.findElement=function(b,c){for(b=p.dom.getChildrenReverse_(b);0<b.length;){var d=b.pop();if(c(d))return d;for(d=d.lastElementChild;d;d=d.previousElementSibling)b.push(d)}return null};p.dom.findElements=function(b,c){var d=[];for(b=p.dom.getChildrenReverse_(b);0<b.length;){var e=b.pop();c(e)&&d.push(e);for(e=e.lastElementChild;e;e=e.previousElementSibling)b.push(e)}return d};
p.dom.getChildrenReverse_=function(b){if(b.nodeType==p.dom.NodeType.DOCUMENT)return[b.documentElement];var c=[];for(b=b.lastElementChild;b;b=b.previousElementSibling)c.push(b);return c};p.dom.TAGS_TO_IGNORE_={SCRIPT:1,STYLE:1,HEAD:1,IFRAME:1,OBJECT:1};p.dom.PREDEFINED_TAG_VALUES_={IMG:" ",BR:"\n"};p.dom.isFocusableTabIndex=function(b){return p.dom.hasSpecifiedTabIndex_(b)&&p.dom.isTabIndexFocusable_(b)};p.dom.setFocusableTabIndex=function(b,c){c?b.tabIndex=0:(b.tabIndex=-1,b.removeAttribute("tabIndex"))};
p.dom.isFocusable=function(b){var c;return(c=p.dom.nativelySupportsFocus_(b)?!b.disabled&&(!p.dom.hasSpecifiedTabIndex_(b)||p.dom.isTabIndexFocusable_(b)):p.dom.isFocusableTabIndex(b))&&p.userAgent.IE?p.dom.hasNonZeroBoundingRect_(b):c};p.dom.hasSpecifiedTabIndex_=function(b){return p.userAgent.IE&&!p.userAgent.isVersionOrHigher("9")?(b=b.getAttributeNode("tabindex"),null!=b&&b.specified):b.hasAttribute("tabindex")};
p.dom.isTabIndexFocusable_=function(b){b=b.tabIndex;return"number"===typeof b&&0<=b&&32768>b};p.dom.nativelySupportsFocus_=function(b){return"A"==b.tagName&&b.hasAttribute("href")||"INPUT"==b.tagName||"TEXTAREA"==b.tagName||"SELECT"==b.tagName||"BUTTON"==b.tagName};p.dom.hasNonZeroBoundingRect_=function(b){b=!p.isFunction(b.getBoundingClientRect)||p.userAgent.IE&&null==b.parentElement?{height:b.offsetHeight,width:b.offsetWidth}:b.getBoundingClientRect();return null!=b&&0<b.height&&0<b.width};
p.dom.getTextContent=function(b){if(p.dom.BrowserFeature.CAN_USE_INNER_TEXT&&null!==b&&"innerText"in b)b=p.string.canonicalizeNewlines(b.innerText);else{var c=[];p.dom.getTextContent_(b,c,!0);b=c.join("")}b=b.replace(/ \xAD /g," ").replace(/\xAD/g,"");b=b.replace(/\u200B/g,"");p.dom.BrowserFeature.CAN_USE_INNER_TEXT||(b=b.replace(/ +/g," "));" "!=b&&(b=b.replace(/^\s*/,""));return b};p.dom.getRawTextContent=function(b){var c=[];p.dom.getTextContent_(b,c,!1);return c.join("")};
p.dom.getTextContent_=function(b,c,d){if(!(b.nodeName in p.dom.TAGS_TO_IGNORE_))if(b.nodeType==p.dom.NodeType.TEXT)d?c.push(String(b.nodeValue).replace(/(\r\n|\r|\n)/g,"")):c.push(b.nodeValue);else if(b.nodeName in p.dom.PREDEFINED_TAG_VALUES_)c.push(p.dom.PREDEFINED_TAG_VALUES_[b.nodeName]);else for(b=b.firstChild;b;)p.dom.getTextContent_(b,c,d),b=b.nextSibling};p.dom.getNodeTextLength=function(b){return p.dom.getTextContent(b).length};
p.dom.getNodeTextOffset=function(b,c){c=c||p.dom.getOwnerDocument(b).body;for(var d=[];b&&b!=c;){for(var e=b;e=e.previousSibling;)d.unshift(p.dom.getTextContent(e));b=b.parentNode}return p.string.trimLeft(d.join("")).replace(/ +/g," ").length};
p.dom.getNodeAtOffset=function(b,c,d){b=[b];for(var e=0,f=null;0<b.length&&e<c;)if(f=b.pop(),!(f.nodeName in p.dom.TAGS_TO_IGNORE_))if(f.nodeType==p.dom.NodeType.TEXT){var g=f.nodeValue.replace(/(\r\n|\r|\n)/g,"").replace(/ +/g," ");e+=g.length}else if(f.nodeName in p.dom.PREDEFINED_TAG_VALUES_)e+=p.dom.PREDEFINED_TAG_VALUES_[f.nodeName].length;else for(g=f.childNodes.length-1;0<=g;g--)b.push(f.childNodes[g]);p.isObject(d)&&(d.remainder=f?f.nodeValue.length+c-e-1:0,d.node=f);return f};
p.dom.isNodeList=function(b){if(b&&"number"==typeof b.length){if(p.isObject(b))return"function"==typeof b.item||"string"==typeof b.item;if(p.isFunction(b))return"function"==typeof b.item}return!1};p.dom.getAncestorByTagNameAndClass=function(b,c,d,e){if(!c&&!d)return null;var f=c?String(c).toUpperCase():null;return p.dom.getAncestor(b,function(g){return(!f||g.nodeName==f)&&(!d||"string"===typeof g.className&&p.array.contains(g.className.split(/\s+/),d))},!0,e)};
p.dom.getAncestorByClass=function(b,c,d){return p.dom.getAncestorByTagNameAndClass(b,null,c,d)};p.dom.getAncestor=function(b,c,d,e){b&&!d&&(b=b.parentNode);for(d=0;b&&(null==e||d<=e);){p.asserts.assert("parentNode"!=b.name);if(c(b))return b;b=b.parentNode;d++}return null};p.dom.getActiveElement=function(b){try{var c=b&&b.activeElement;return c&&c.nodeName?c:null}catch(d){return null}};
p.dom.getPixelRatio=function(){var b=p.dom.getWindow();return void 0!==b.devicePixelRatio?b.devicePixelRatio:b.matchMedia?p.dom.matchesPixelRatio_(3)||p.dom.matchesPixelRatio_(2)||p.dom.matchesPixelRatio_(1.5)||p.dom.matchesPixelRatio_(1)||.75:1};p.dom.matchesPixelRatio_=function(b){return p.dom.getWindow().matchMedia("(min-resolution: "+b+"dppx),(min--moz-device-pixel-ratio: "+b+"),(min-resolution: "+96*b+"dpi)").matches?b:0};p.dom.getCanvasContext2D=function(b){return b.getContext("2d")};
p.dom.DomHelper=function(b){this.document_=b||p.global.document||document};a=p.dom.DomHelper.prototype;a.getDomHelper=p.dom.getDomHelper;a.getDocument=function(){return this.document_};a.getElement=function(b){return p.dom.getElementHelper_(this.document_,b)};a.getRequiredElement=function(b){return p.dom.getRequiredElementHelper_(this.document_,b)};a.$=p.dom.DomHelper.prototype.getElement;a.getElementsByTagName=function(b,c){return(c||this.document_).getElementsByTagName(String(b))};
a.getElementsByTagNameAndClass=function(b,c,d){return p.dom.getElementsByTagNameAndClass_(this.document_,b,c,d)};a.getElementByTagNameAndClass=function(b,c,d){return p.dom.getElementByTagNameAndClass_(this.document_,b,c,d)};a.getElementsByClass=function(b,c){return p.dom.getElementsByClass(b,c||this.document_)};a.getElementByClass=function(b,c){return p.dom.getElementByClass(b,c||this.document_)};a.getRequiredElementByClass=function(b,c){return p.dom.getRequiredElementByClass(b,c||this.document_)};
a.$$=p.dom.DomHelper.prototype.getElementsByTagNameAndClass;a.setProperties=p.dom.setProperties;a.getViewportSize=function(b){return p.dom.getViewportSize(b||this.getWindow())};a.getDocumentHeight=function(){return p.dom.getDocumentHeight_(this.getWindow())};a.createDom=function(b,c,d){return p.dom.createDom_(this.document_,arguments)};a.$dom=p.dom.DomHelper.prototype.createDom;a.createElement=function(b){return p.dom.createElement_(this.document_,b)};a.createTextNode=function(b){return this.document_.createTextNode(String(b))};
a.createTable=function(b,c,d){return p.dom.createTable_(this.document_,b,c,!!d)};a.safeHtmlToNode=function(b){return p.dom.safeHtmlToNode_(this.document_,b)};a.isCss1CompatMode=function(){return p.dom.isCss1CompatMode_(this.document_)};a.getWindow=function(){return p.dom.getWindow_(this.document_)};a.getDocumentScrollElement=function(){return p.dom.getDocumentScrollElement_(this.document_)};a.getDocumentScroll=function(){return p.dom.getDocumentScroll_(this.document_)};
a.getActiveElement=function(b){return p.dom.getActiveElement(b||this.document_)};a.appendChild=p.dom.appendChild;a.append=p.dom.append;a.canHaveChildren=p.dom.canHaveChildren;a.removeChildren=p.dom.removeChildren;a.insertSiblingBefore=p.dom.insertSiblingBefore;a.insertSiblingAfter=p.dom.insertSiblingAfter;a.insertChildAt=p.dom.insertChildAt;a.removeNode=p.dom.removeNode;a.replaceNode=p.dom.replaceNode;a.flattenElement=p.dom.flattenElement;a.getChildren=p.dom.getChildren;a.getFirstElementChild=p.dom.getFirstElementChild;
a.getLastElementChild=p.dom.getLastElementChild;a.getNextElementSibling=p.dom.getNextElementSibling;a.getPreviousElementSibling=p.dom.getPreviousElementSibling;a.getNextNode=p.dom.getNextNode;a.getPreviousNode=p.dom.getPreviousNode;a.isNodeLike=p.dom.isNodeLike;a.isElement=p.dom.isElement;a.isWindow=p.dom.isWindow;a.getParentElement=p.dom.getParentElement;a.contains=p.dom.contains;a.compareNodeOrder=p.dom.compareNodeOrder;a.findCommonAncestor=p.dom.findCommonAncestor;a.getOwnerDocument=p.dom.getOwnerDocument;
a.getFrameContentDocument=p.dom.getFrameContentDocument;a.getFrameContentWindow=p.dom.getFrameContentWindow;a.setTextContent=p.dom.setTextContent;a.getOuterHtml=p.dom.getOuterHtml;a.findNode=p.dom.findNode;a.findNodes=p.dom.findNodes;a.isFocusableTabIndex=p.dom.isFocusableTabIndex;a.setFocusableTabIndex=p.dom.setFocusableTabIndex;a.isFocusable=p.dom.isFocusable;a.getTextContent=p.dom.getTextContent;a.getNodeTextLength=p.dom.getNodeTextLength;a.getNodeTextOffset=p.dom.getNodeTextOffset;
a.getNodeAtOffset=p.dom.getNodeAtOffset;a.isNodeList=p.dom.isNodeList;a.getAncestorByTagNameAndClass=p.dom.getAncestorByTagNameAndClass;a.getAncestorByClass=p.dom.getAncestorByClass;a.getAncestor=p.dom.getAncestor;a.getCanvasContext2D=p.dom.getCanvasContext2D;q.WindowDelegate=function(){this.isFinishedLaunch_=this.retrieveJwtFailed_=this.transactionStarted_=this.walletIsLoaded_=!1;this.webStoreService_=new q.WebStoreService};p.inherits(q.WindowDelegate,p.craw.AppWindowDelegate);p.craw.AppWindowDelegate.setDefaultImpl();q.WindowDelegate.prototype.getAppUnavailableMessage=function(){return chrome.i18n.getMessage("iap_unavailable")};
q.WindowDelegate.prototype.pollOnlineStatus=function(){if(!window.iapParams_.oauthToken)return chrome.i18n.getMessage("please_sign_in");if(this.retrieveJwtFailed_)return chrome.i18n.getMessage("jwt_retrieve_failed")};q.WindowDelegate.prototype.finishedLaunch=function(){return this.isFinishedLaunch_};
var Q=function(b){var c=window.iapParams_;b.isFinishedLaunch_&&c.oauthToken&&b.walletIsLoaded_&&!b.transactionStarted_&&(b.transactionStarted_=!0,p.dom.getDocument().querySelector("webview").contentWindow.postMessage({jwt:window.iapJwt_,parameters:c},"*"))};q.WindowDelegate.prototype.retrieveJwtOnSuccess_=function(b,c,d){window.iapJwt_=b;window.payment_data=c;window.signature=d;this.retrieveJwtFailed_=!1;this.isFinishedLaunch_=!0;Q(this)};
q.WindowDelegate.prototype.retrieveJwtOnFailed_=function(){this.isFinishedLaunch_=this.retrieveJwtFailed_=!0};
q.WindowDelegate.prototype.onWindowReady=function(){var b=p.dom.getDocument().querySelector("webview");if(b){b.style.borderTop="1px #eaeaea solid";var c=!1,d=window.iapParams_,e=this,f=function(g){if(window.sku_){var h=window.sku_,l=window.iapParams_||{},m=e.webStoreService_,n=l||{};if("env"in n){switch(n.env){case "prod":m.baseUrl_=q.WebStoreService.Environment.PROD;break;default:m.baseUrl_=q.WebStoreService.Environment.SANDBOX}m.baseUrlAndPath_=m.baseUrl_+q.WebStoreService.WEB_STORE_REQUEST_PATH_}e.retrieveJwtFailed_=
!1;e.isFinishedLaunch_=!1;ca(e.webStoreService_,l.applicationId,h,p.bind(e.retrieveJwtOnSuccess_,e),p.bind(e.retrieveJwtOnFailed_,e),g,l.gl,l.projection)}else e.isFinishedLaunch_=!0,Q(e)};d.oauthToken?f(d.oauthToken):chrome.identity.getAuthToken({interactive:!0},function(g){window.iapParams_.oauthToken=g;f(g)});b.addEventListener("contentload",function(){if(!c){c=!0;switch(d.env||"sandbox"){case "prod":var g="https://payments.google.com/payments/v4/js/integrator.js";break;default:g="https://sandbox.google.com/payments/v4/js/integrator.js"}b.executeScript({runAt:"document_start",
code:'document.write("<script type=\\"text/javascript\\" src=\\"'+g+"\\\" data-payments-main>\x3c/script><script type=\\\"text/javascript\\\">window.addEventListener('message', function(e) {  if (e.origin != 'chrome-extension://"+chrome.runtime.id+"') return;var mode = payments.business.integration.mashupMode.embedded('renderplace');var bootstrapper = payments.business.integration.bootstrap.asMashupMode(mode);bootstrapper    .usingDefaultActivityStatusChangeHandler()    .usingBaseZIndex(1201)    .usingOnResizeFrameCallback(function() {        var iframe = document.getElementById('renderplaceIframe');        var size = {'width': iframe.clientWidth, 'height': iframe.clientHeight};        e.source.postMessage({resize: size}, e.origin);})    .usingOAuthToken(e.data.parameters.oauthToken)    .usingStyle(':md;pc=#80868b');var standaloneContextBootstrapper = bootstrapper.inStandaloneContext(    payments.business.integration.standaloneContextAuthId.forGaia());var buyFlowScenario =    standaloneContextBootstrapper.buyFlow(function(res) {        e.source.postMessage({type: 'success', result: res}, e.origin);});buyFlowScenario.withEncryptedParameters(e.data.jwt);buyFlowScenario.load(undefined, function(res) {    e.source.postMessage({type: 'failure', result: res}, e.origin);});}, false);console.log('registered payment listener: ' + Date.now());\x3c/script>&nbsp;\");"},
function(){console.log("did exec once");b.executeScript({runAt:"document_end",code:"document.write(\"<script type=\\\"text/javascript\\\">var elem = document.createElement('div');elem.setAttribute('id', 'renderplace');elem.setAttribute('style', 'margin-left:35px;margin-right:35px;');document.body.appendChild(elem);console.log('finished loading, start payment: ' + Date.now());\x3c/script>\");"})})}},!1);b.addEventListener("consolemessage",function(g){-1!=g.message.indexOf("finished")&&(e.walletIsLoaded_=
!0,Q(e))});b.addEventListener("newwindow",function(g){window.open(g.targetUrl);g.window.discard()},!1)}};window.addEventListener("message",function(b){console.log("event",b);if("type"in b.data)window.purchase_result=b.data.result,window.close();else if("resize"in b.data){var c=chrome.app.window.current();c.resizeTo(c.outerBounds.width+0,b.data.resize.height+80)}},!1);p.async={};p.async.FreeList=function(b,c,d){this.limit_=d;this.create_=b;this.reset_=c;this.occupants_=0;this.head_=null};p.async.FreeList.prototype.get=function(){if(0<this.occupants_){this.occupants_--;var b=this.head_;this.head_=b.next;b.next=null}else b=this.create_();return b};p.async.FreeList.prototype.put=function(b){this.reset_(b);this.occupants_<this.limit_&&(this.occupants_++,b.next=this.head_,this.head_=b)};p.async.throwException=function(b){p.global.setTimeout(function(){throw b;},0)};p.async.nextTick=function(b,c,d){var e=b;c&&(e=p.bind(b,c));e=p.async.nextTick.wrapCallback_(e);p.isFunction(p.global.setImmediate)&&(d||p.async.nextTick.useSetImmediate_())?p.global.setImmediate(e):(p.async.nextTick.setImmediate_||(p.async.nextTick.setImmediate_=p.async.nextTick.getSetImmediateEmulator_()),p.async.nextTick.setImmediate_(e))};
p.async.nextTick.useSetImmediate_=function(){return p.global.Window&&p.global.Window.prototype&&!p.labs.userAgent.browser.isEdge()&&p.global.Window.prototype.setImmediate==p.global.setImmediate?!1:!0};
p.async.nextTick.getSetImmediateEmulator_=function(){var b=p.global.MessageChannel;"undefined"===typeof b&&"undefined"!==typeof window&&window.postMessage&&window.addEventListener&&!p.labs.userAgent.engine.isPresto()&&(b=function(){var f=p.dom.createElement("IFRAME");f.style.display="none";p.dom.safe.setIframeSrc(f);document.documentElement.appendChild(f);var g=f.contentWindow;f=g.document;f.open();p.dom.safe.documentWrite(f);f.close();var h="callImmediate"+Math.random(),l="file:"==g.location.protocol?
"*":g.location.protocol+"//"+g.location.host;f=p.bind(function(m){if(("*"==l||m.origin==l)&&m.data==h)this.port1.onmessage()},this);g.addEventListener("message",f,!1);this.port1={};this.port2={postMessage:function(){g.postMessage(h,l)}}});if("undefined"!==typeof b&&!p.labs.userAgent.browser.isIE()){var c=new b,d={},e=d;c.port1.onmessage=function(){if(void 0!==d.next){d=d.next;var f=d.cb;d.cb=null;f()}};return function(f){e.next={cb:f};e=e.next;c.port2.postMessage(0)}}return"undefined"!==typeof document&&
"onreadystatechange"in p.dom.createElement("SCRIPT")?function(f){var g=p.dom.createElement("SCRIPT");g.onreadystatechange=function(){g.onreadystatechange=null;g.parentNode.removeChild(g);g=null;f();f=null};document.documentElement.appendChild(g)}:function(f){p.global.setTimeout(f,0)}};p.async.nextTick.wrapCallback_=p.functions.identity;p.debug.entryPointRegistry.register(function(b){p.async.nextTick.wrapCallback_=b});p.async.WorkQueue=function(){this.workTail_=this.workHead_=null};p.async.WorkQueue.DEFAULT_MAX_UNUSED=100;p.async.WorkQueue.freelist_=new p.async.FreeList(function(){return new p.async.WorkItem},function(b){b.reset()},p.async.WorkQueue.DEFAULT_MAX_UNUSED);p.async.WorkQueue.prototype.add=function(b,c){var d=p.async.WorkQueue.freelist_.get();d.set(b,c);this.workTail_?this.workTail_.next=d:(p.asserts.assert(!this.workHead_),this.workHead_=d);this.workTail_=d};
p.async.WorkQueue.prototype.remove=function(){var b=null;this.workHead_&&(b=this.workHead_,this.workHead_=this.workHead_.next,this.workHead_||(this.workTail_=null),b.next=null);return b};p.async.WorkItem=function(){this.next=this.scope=this.fn=null};p.async.WorkItem.prototype.set=function(b,c){this.fn=b;this.scope=c;this.next=null};p.async.WorkItem.prototype.reset=function(){this.next=this.scope=this.fn=null};p.ASSUME_NATIVE_PROMISE=!1;p.async.run=function(b,c){p.async.run.schedule_||p.async.run.initializeRunner_();p.async.run.workQueueScheduled_||(p.async.run.schedule_(),p.async.run.workQueueScheduled_=!0);p.async.run.workQueue_.add(b,c)};p.async.run.initializeRunner_=function(){if(p.ASSUME_NATIVE_PROMISE||p.global.Promise&&p.global.Promise.resolve){var b=p.global.Promise.resolve(void 0);p.async.run.schedule_=function(){b.then(p.async.run.processWorkQueue)}}else p.async.run.schedule_=function(){p.async.nextTick(p.async.run.processWorkQueue)}};
p.async.run.forceNextTick=function(b){p.async.run.schedule_=function(){p.async.nextTick(p.async.run.processWorkQueue);b&&b(p.async.run.processWorkQueue)}};p.async.run.workQueueScheduled_=!1;p.async.run.workQueue_=new p.async.WorkQueue;p.DEBUG&&(p.async.run.resetQueue=function(){p.async.run.workQueueScheduled_=!1;p.async.run.workQueue_=new p.async.WorkQueue});
p.async.run.processWorkQueue=function(){for(var b;b=p.async.run.workQueue_.remove();){try{b.fn.call(b.scope)}catch(c){p.async.throwException(c)}p.async.WorkQueue.freelist_.put(b)}p.async.run.workQueueScheduled_=!1};p.debug.LogRecord=function(b,c,d,e,f){this.reset(b,c,d,e,f)};p.debug.LogRecord.prototype.exception_=null;p.debug.LogRecord.ENABLE_SEQUENCE_NUMBERS=!0;p.debug.LogRecord.nextSequenceNumber_=0;p.debug.LogRecord.prototype.reset=function(b,c,d,e,f){p.debug.LogRecord.ENABLE_SEQUENCE_NUMBERS&&("number"==typeof f||p.debug.LogRecord.nextSequenceNumber_++);e||p.now();this.level_=b;this.msg_=c;delete this.exception_};p.debug.LogRecord.prototype.setLevel=function(b){this.level_=b};
p.debug.LogRecord.prototype.getMessage=function(){return this.msg_};p.debug.LogBuffer=function(){p.asserts.assert(p.debug.LogBuffer.isBufferingEnabled(),"Cannot use goog.debug.LogBuffer without defining goog.debug.LogBuffer.CAPACITY.");this.clear()};p.debug.LogBuffer.getInstance=function(){p.debug.LogBuffer.instance_||(p.debug.LogBuffer.instance_=new p.debug.LogBuffer);return p.debug.LogBuffer.instance_};p.debug.LogBuffer.CAPACITY=0;p.debug.LogBuffer.isBufferingEnabled=function(){return 0<p.debug.LogBuffer.CAPACITY};
p.debug.LogBuffer.prototype.clear=function(){this.buffer_=Array(p.debug.LogBuffer.CAPACITY);this.curIndex_=-1;this.isFull_=!1};p.debug.Logger=function(b){this.name_=b;this.handlers_=this.children_=this.level_=this.parent_=null};p.debug.Logger.ROOT_LOGGER_NAME="";p.debug.Logger.ENABLE_HIERARCHY=!0;p.debug.Logger.ENABLE_PROFILER_LOGGING=!1;p.debug.Logger.ENABLE_HIERARCHY||(p.debug.Logger.rootHandlers_=[]);p.debug.Logger.Level=function(b,c){this.name=b;this.value=c};p.debug.Logger.Level.prototype.toString=function(){return this.name};p.debug.Logger.Level.OFF=new p.debug.Logger.Level("OFF",Infinity);
p.debug.Logger.Level.SHOUT=new p.debug.Logger.Level("SHOUT",1200);p.debug.Logger.Level.SEVERE=new p.debug.Logger.Level("SEVERE",1E3);p.debug.Logger.Level.WARNING=new p.debug.Logger.Level("WARNING",900);p.debug.Logger.Level.INFO=new p.debug.Logger.Level("INFO",800);p.debug.Logger.Level.CONFIG=new p.debug.Logger.Level("CONFIG",700);p.debug.Logger.Level.FINE=new p.debug.Logger.Level("FINE",500);p.debug.Logger.Level.FINER=new p.debug.Logger.Level("FINER",400);
p.debug.Logger.Level.FINEST=new p.debug.Logger.Level("FINEST",300);p.debug.Logger.Level.ALL=new p.debug.Logger.Level("ALL",0);p.debug.Logger.Level.PREDEFINED_LEVELS=[p.debug.Logger.Level.OFF,p.debug.Logger.Level.SHOUT,p.debug.Logger.Level.SEVERE,p.debug.Logger.Level.WARNING,p.debug.Logger.Level.INFO,p.debug.Logger.Level.CONFIG,p.debug.Logger.Level.FINE,p.debug.Logger.Level.FINER,p.debug.Logger.Level.FINEST,p.debug.Logger.Level.ALL];p.debug.Logger.Level.predefinedLevelsCache_=null;
p.debug.Logger.Level.createPredefinedLevelsCache_=function(){p.debug.Logger.Level.predefinedLevelsCache_={};for(var b=0,c;c=p.debug.Logger.Level.PREDEFINED_LEVELS[b];b++)p.debug.Logger.Level.predefinedLevelsCache_[c.value]=c,p.debug.Logger.Level.predefinedLevelsCache_[c.name]=c};p.debug.Logger.Level.getPredefinedLevel=function(b){p.debug.Logger.Level.predefinedLevelsCache_||p.debug.Logger.Level.createPredefinedLevelsCache_();return p.debug.Logger.Level.predefinedLevelsCache_[b]||null};
p.debug.Logger.Level.getPredefinedLevelByValue=function(b){p.debug.Logger.Level.predefinedLevelsCache_||p.debug.Logger.Level.createPredefinedLevelsCache_();if(b in p.debug.Logger.Level.predefinedLevelsCache_)return p.debug.Logger.Level.predefinedLevelsCache_[b];for(var c=0;c<p.debug.Logger.Level.PREDEFINED_LEVELS.length;++c){var d=p.debug.Logger.Level.PREDEFINED_LEVELS[c];if(d.value<=b)return d}return null};p.debug.Logger.getLogger=function(b){return p.debug.LogManager.getLogger(b)};
p.debug.Logger.logToProfilers=function(b){if(p.debug.Logger.ENABLE_PROFILER_LOGGING){var c=p.global.msWriteProfilerMark;c?c(b):(c=p.global.console)&&c.timeStamp&&c.timeStamp(b)}};a=p.debug.Logger.prototype;a.addHandler=function(b){p.debug.LOGGING_ENABLED&&(p.debug.Logger.ENABLE_HIERARCHY?(this.handlers_||(this.handlers_=[]),this.handlers_.push(b)):(p.asserts.assert(!this.name_,"Cannot call addHandler on a non-root logger when goog.debug.Logger.ENABLE_HIERARCHY is false."),p.debug.Logger.rootHandlers_.push(b)))};
a.removeHandler=function(b){if(p.debug.LOGGING_ENABLED){var c=p.debug.Logger.ENABLE_HIERARCHY?this.handlers_:p.debug.Logger.rootHandlers_;return!!c&&p.array.remove(c,b)}return!1};a.getParent=function(){return this.parent_};a.getChildren=function(){this.children_||(this.children_={});return this.children_};
a.setLevel=function(b){p.debug.LOGGING_ENABLED&&(p.debug.Logger.ENABLE_HIERARCHY?this.level_=b:(p.asserts.assert(!this.name_,"Cannot call setLevel() on a non-root logger when goog.debug.Logger.ENABLE_HIERARCHY is false."),p.debug.Logger.rootLevel_=b))};
var da=function(b){if(!p.debug.LOGGING_ENABLED)return p.debug.Logger.Level.OFF;if(!p.debug.Logger.ENABLE_HIERARCHY)return p.debug.Logger.rootLevel_;if(b.level_)return b.level_;if(b.parent_)return da(b.parent_);p.asserts.fail("Root logger has no level set.");return null};
p.debug.Logger.prototype.log=function(b,c,d){if(p.debug.LOGGING_ENABLED&&p.debug.LOGGING_ENABLED&&b.value>=da(this).value){p.isFunction(c)&&(c=c());if(p.debug.LogBuffer.isBufferingEnabled()){var e=p.debug.LogBuffer.getInstance(),f=this.name_,g=(e.curIndex_+1)%p.debug.LogBuffer.CAPACITY;e.curIndex_=g;e.isFull_?(e=e.buffer_[g],e.reset(b,c,f),b=e):(e.isFull_=g==p.debug.LogBuffer.CAPACITY-1,b=e.buffer_[g]=new p.debug.LogRecord(b,c,f))}else b=new p.debug.LogRecord(b,String(c),this.name_);d&&(b.exception_=
d);p.debug.Logger.ENABLE_PROFILER_LOGGING&&p.debug.Logger.logToProfilers("log:"+b.getMessage());if(p.debug.Logger.ENABLE_HIERARCHY)for(d=this;d;){f=d;e=b;if(f.handlers_)for(g=0;c=f.handlers_[g];g++)c(e);d=d.getParent()}else for(d=0;c=p.debug.Logger.rootHandlers_[d++];)c(b)}};p.debug.Logger.prototype.warning=function(b,c){p.debug.LOGGING_ENABLED&&this.log(p.debug.Logger.Level.WARNING,b,c)};p.debug.Logger.prototype.info=function(b,c){p.debug.LOGGING_ENABLED&&this.log(p.debug.Logger.Level.INFO,b,c)};
p.debug.Logger.prototype.fine=function(b,c){p.debug.LOGGING_ENABLED&&this.log(p.debug.Logger.Level.FINE,b,c)};p.debug.LogManager={};p.debug.LogManager.loggers_={};p.debug.LogManager.rootLogger_=null;p.debug.LogManager.initialize=function(){p.debug.LogManager.rootLogger_||(p.debug.LogManager.rootLogger_=new p.debug.Logger(p.debug.Logger.ROOT_LOGGER_NAME),p.debug.LogManager.loggers_[p.debug.Logger.ROOT_LOGGER_NAME]=p.debug.LogManager.rootLogger_,p.debug.LogManager.rootLogger_.setLevel(p.debug.Logger.Level.CONFIG))};
p.debug.LogManager.getLoggers=function(){return p.debug.LogManager.loggers_};p.debug.LogManager.getRoot=function(){p.debug.LogManager.initialize();return p.debug.LogManager.rootLogger_};p.debug.LogManager.getLogger=function(b){p.debug.LogManager.initialize();return p.debug.LogManager.loggers_[b]||p.debug.LogManager.createLogger_(b)};
p.debug.LogManager.createFunctionForCatchErrors=function(b){return function(c){var d=b||p.debug.LogManager.getRoot();p.debug.LOGGING_ENABLED&&d.log(p.debug.Logger.Level.SEVERE,"Error: "+c.message+" ("+c.fileName+" @ Line: "+c.line+")",void 0)}};
p.debug.LogManager.createLogger_=function(b){var c=new p.debug.Logger(b);if(p.debug.Logger.ENABLE_HIERARCHY){var d=b.lastIndexOf("."),e=b.substr(d+1);d=p.debug.LogManager.getLogger(b.substr(0,d));d.getChildren()[e]=c;c.parent_=d}return p.debug.LogManager.loggers_[b]=c};p.json={};p.json.USE_NATIVE_JSON=!1;p.json.TRY_NATIVE_JSON=!1;p.json.isValid=function(b){return/^\s*$/.test(b)?!1:/^[\],:{}\s\u2028\u2029]*$/.test(b.replace(/\\["\\\/bfnrtu]/g,"@").replace(/(?:"[^"\\\n\r\u2028\u2029\x00-\x08\x0a-\x1f]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)[\s\u2028\u2029]*(?=:|,|]|}|$)/g,"]").replace(/(?:^|:|,)(?:[\s\u2028\u2029]*\[)+/g,""))};p.json.errorLogger_=p.nullFunction;p.json.setErrorLogger=function(b){p.json.errorLogger_=b};
p.json.parse=p.json.USE_NATIVE_JSON?p.global.JSON.parse:function(b){if(p.json.TRY_NATIVE_JSON)try{return p.global.JSON.parse(b)}catch(e){var c=e}b=String(b);if(p.json.isValid(b))try{var d=eval("("+b+")");c&&p.json.errorLogger_("Invalid JSON: "+b,c);return d}catch(e){}throw Error("Invalid JSON string: "+b);};p.json.serialize=p.json.USE_NATIVE_JSON?p.global.JSON.stringify:function(b,c){return(new p.json.Serializer(c)).serialize(b)};p.json.Serializer=function(b){this.replacer_=b};
p.json.Serializer.prototype.serialize=function(b){var c=[];R(this,b,c);return c.join("")};
var R=function(b,c,d){if(null==c)d.push("null");else{if("object"==typeof c){if(p.isArray(c)){var e=c;c=e.length;d.push("[");for(var f="",g=0;g<c;g++)d.push(f),f=e[g],R(b,b.replacer_?b.replacer_.call(e,String(g),f):f,d),f=",";d.push("]");return}if(c instanceof String||c instanceof Number||c instanceof Boolean)c=c.valueOf();else{d.push("{");g="";for(e in c)Object.prototype.hasOwnProperty.call(c,e)&&(f=c[e],"function"!=typeof f&&(d.push(g),ea(e,d),d.push(":"),R(b,b.replacer_?b.replacer_.call(c,e,f):
f,d),g=","));d.push("}");return}}switch(typeof c){case "string":ea(c,d);break;case "number":d.push(isFinite(c)&&!isNaN(c)?String(c):"null");break;case "boolean":d.push(String(c));break;case "function":d.push("null");break;default:throw Error("Unknown type: "+typeof c);}}};p.json.Serializer.charToJsonCharCache_={'"':'\\"',"\\":"\\\\","/":"\\/","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\x0B":"\\u000b"};
p.json.Serializer.charsToReplace_=/\uffff/.test("\uffff")?/[\\"\x00-\x1f\x7f-\uffff]/g:/[\\"\x00-\x1f\x7f-\xff]/g;var ea=function(b,c){c.push('"',b.replace(p.json.Serializer.charsToReplace_,function(d){var e=p.json.Serializer.charToJsonCharCache_[d];e||(e="\\u"+(d.charCodeAt(0)|65536).toString(16).substr(1),p.json.Serializer.charToJsonCharCache_[d]=e);return e}),'"')};p.json.hybrid={};p.json.hybrid.stringify=p.json.USE_NATIVE_JSON?p.global.JSON.stringify:function(b){if(p.global.JSON)try{return p.global.JSON.stringify(b)}catch(c){}return p.json.serialize(b)};p.json.hybrid.parse_=function(b){var c=p.json.parse;if(p.global.JSON)try{var d=p.global.JSON.parse(b);p.asserts.assert("object"==typeof d);return d}catch(e){}return c(b)};p.json.hybrid.parse=p.json.USE_NATIVE_JSON?p.global.JSON.parse:function(b){return p.json.hybrid.parse_(b)};p.log={};p.log.ENABLED=p.debug.LOGGING_ENABLED;p.log.ROOT_LOGGER_NAME=p.debug.Logger.ROOT_LOGGER_NAME;p.log.Logger=p.debug.Logger;p.log.Level=p.debug.Logger.Level;p.log.LogRecord=p.debug.LogRecord;p.log.getLogger=function(b){return p.log.ENABLED?p.debug.LogManager.getLogger(b):null};p.log.addHandler=function(b){p.log.ENABLED&&b&&b.addHandler(void 0)};p.log.removeHandler=function(b){return p.log.ENABLED&&b?b.removeHandler(void 0):!1};p.log.log=function(b,c,d,e){p.log.ENABLED&&b&&b.log(c,d,e)};
p.log.error=function(b,c,d){p.log.ENABLED&&b&&p.debug.LOGGING_ENABLED&&b.log(p.debug.Logger.Level.SEVERE,c,d)};p.log.warning=function(b,c){p.log.ENABLED&&b&&b.warning(c,void 0)};p.log.info=function(b,c,d){p.log.ENABLED&&b&&b.info(c,d)};p.log.fine=function(b,c){p.log.ENABLED&&b&&b.fine(c,void 0)};p.net={};p.net.ErrorCode={NO_ERROR:0,ACCESS_DENIED:1,FILE_NOT_FOUND:2,FF_SILENT_ERROR:3,CUSTOM_ERROR:4,EXCEPTION:5,HTTP_ERROR:6,ABORT:7,TIMEOUT:8,OFFLINE:9};
p.net.ErrorCode.getDebugMessage=function(b){switch(b){case p.net.ErrorCode.NO_ERROR:return"No Error";case p.net.ErrorCode.ACCESS_DENIED:return"Access denied to content document";case p.net.ErrorCode.FILE_NOT_FOUND:return"File not found";case p.net.ErrorCode.FF_SILENT_ERROR:return"Firefox silently errored";case p.net.ErrorCode.CUSTOM_ERROR:return"Application custom error";case p.net.ErrorCode.EXCEPTION:return"An exception occurred";case p.net.ErrorCode.HTTP_ERROR:return"Http response at 400 or 500 level";
case p.net.ErrorCode.ABORT:return"Request was aborted";case p.net.ErrorCode.TIMEOUT:return"Request timed out";case p.net.ErrorCode.OFFLINE:return"The resource is not available offline";default:return"Unrecognized error code"}};p.net.EventType={COMPLETE:"complete",SUCCESS:"success",ERROR:"error",ABORT:"abort",READY:"ready",READY_STATE_CHANGE:"readystatechange",TIMEOUT:"timeout",INCREMENTAL_DATA:"incrementaldata",PROGRESS:"progress",DOWNLOAD_PROGRESS:"downloadprogress",UPLOAD_PROGRESS:"uploadprogress"};p.net.HttpStatus={CONTINUE:100,SWITCHING_PROTOCOLS:101,OK:200,CREATED:201,ACCEPTED:202,NON_AUTHORITATIVE_INFORMATION:203,NO_CONTENT:204,RESET_CONTENT:205,PARTIAL_CONTENT:206,MULTI_STATUS:207,MULTIPLE_CHOICES:300,MOVED_PERMANENTLY:301,FOUND:302,SEE_OTHER:303,NOT_MODIFIED:304,USE_PROXY:305,TEMPORARY_REDIRECT:307,PERMANENT_REDIRECT:308,BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,METHOD_NOT_ALLOWED:405,NOT_ACCEPTABLE:406,PROXY_AUTHENTICATION_REQUIRED:407,REQUEST_TIMEOUT:408,
CONFLICT:409,GONE:410,LENGTH_REQUIRED:411,PRECONDITION_FAILED:412,REQUEST_ENTITY_TOO_LARGE:413,REQUEST_URI_TOO_LONG:414,UNSUPPORTED_MEDIA_TYPE:415,REQUEST_RANGE_NOT_SATISFIABLE:416,EXPECTATION_FAILED:417,UNPROCESSABLE_ENTITY:422,LOCKED:423,FAILED_DEPENDENCY:424,PRECONDITION_REQUIRED:428,TOO_MANY_REQUESTS:429,REQUEST_HEADER_FIELDS_TOO_LARGE:431,INTERNAL_SERVER_ERROR:500,NOT_IMPLEMENTED:501,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504,HTTP_VERSION_NOT_SUPPORTED:505,INSUFFICIENT_STORAGE:507,
NETWORK_AUTHENTICATION_REQUIRED:511,QUIRK_IE_NO_CONTENT:1223};p.net.HttpStatus.isSuccess=function(b){switch(b){case p.net.HttpStatus.OK:case p.net.HttpStatus.CREATED:case p.net.HttpStatus.ACCEPTED:case p.net.HttpStatus.NO_CONTENT:case p.net.HttpStatus.PARTIAL_CONTENT:case p.net.HttpStatus.NOT_MODIFIED:case p.net.HttpStatus.QUIRK_IE_NO_CONTENT:return!0;default:return!1}};p.net.XhrLike=function(){};a=p.net.XhrLike.prototype;a.open=function(){};a.send=function(){};a.abort=function(){};a.setRequestHeader=function(){};a.getResponseHeader=function(){};a.getAllResponseHeaders=function(){};p.net.XmlHttpFactory=function(){};p.net.XmlHttpFactory.prototype.cachedOptions_=null;p.net.XmlHttpFactory.prototype.getOptions=function(){var b;(b=this.cachedOptions_)||(b={},fa(this)&&(b[p.net.XmlHttp.OptionType.USE_NULL_FUNCTION]=!0,b[p.net.XmlHttp.OptionType.LOCAL_REQUEST_ERROR]=!0),b=this.cachedOptions_=b);return b};p.net.WrapperXmlHttpFactory=function(b,c){this.xhrFactory_=b;this.optionsFactory_=c};p.inherits(p.net.WrapperXmlHttpFactory,p.net.XmlHttpFactory);p.net.WrapperXmlHttpFactory.prototype.createInstance=function(){return this.xhrFactory_()};p.net.WrapperXmlHttpFactory.prototype.getOptions=function(){return this.optionsFactory_()};p.net.XmlHttp=function(){return p.net.XmlHttp.factory_.createInstance()};p.net.XmlHttp.ASSUME_NATIVE_XHR=!1;p.net.XmlHttpDefines={};p.net.XmlHttpDefines.ASSUME_NATIVE_XHR=!1;p.net.XmlHttp.getOptions=function(){return p.net.XmlHttp.factory_.getOptions()};p.net.XmlHttp.OptionType={USE_NULL_FUNCTION:0,LOCAL_REQUEST_ERROR:1};p.net.XmlHttp.ReadyState={UNINITIALIZED:0,LOADING:1,LOADED:2,INTERACTIVE:3,COMPLETE:4};
p.net.XmlHttp.setFactory=function(b,c){p.net.XmlHttp.setGlobalFactory(new p.net.WrapperXmlHttpFactory(p.asserts.assert(b),p.asserts.assert(c)))};p.net.XmlHttp.setGlobalFactory=function(b){p.net.XmlHttp.factory_=b};p.net.DefaultXmlHttpFactory=function(){};p.inherits(p.net.DefaultXmlHttpFactory,p.net.XmlHttpFactory);p.net.DefaultXmlHttpFactory.prototype.createInstance=function(){var b=fa(this);return b?new ActiveXObject(b):new XMLHttpRequest};
var fa=function(b){if(p.net.XmlHttp.ASSUME_NATIVE_XHR||p.net.XmlHttpDefines.ASSUME_NATIVE_XHR)return"";if(!b.ieProgId_&&"undefined"==typeof XMLHttpRequest&&"undefined"!=typeof ActiveXObject){for(var c=["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"],d=0;d<c.length;d++){var e=c[d];try{return new ActiveXObject(e),b.ieProgId_=e}catch(f){}}throw Error("Could not create ActiveXObject. ActiveX might be disabled, or MSXML might not be installed");}return b.ieProgId_};p.net.XmlHttp.setGlobalFactory(new p.net.DefaultXmlHttpFactory);p.promise={};p.promise.Resolver=function(){};p.Thenable=function(){};p.Thenable.prototype.then=function(){};p.Thenable.IMPLEMENTED_BY_PROP="$goog_Thenable";p.Thenable.addImplementation=function(b){b.prototype[p.Thenable.IMPLEMENTED_BY_PROP]=!0};p.Thenable.isImplementedBy=function(b){if(!b)return!1;try{return!!b[p.Thenable.IMPLEMENTED_BY_PROP]}catch(c){return!1}};p.Promise=function(b,c){this.state_=p.Promise.State_.PENDING;this.result_=void 0;this.callbackEntriesTail_=this.callbackEntries_=this.parent_=null;this.executing_=!1;0<p.Promise.UNHANDLED_REJECTION_DELAY?this.unhandledRejectionId_=0:0==p.Promise.UNHANDLED_REJECTION_DELAY&&(this.hadUnhandledRejection_=!1);p.Promise.LONG_STACK_TRACES&&(this.stack_=[],S(this,Error("created")),this.currentStep_=0);if(b!=p.nullFunction)try{var d=this;b.call(c,function(e){T(d,p.Promise.State_.FULFILLED,e)},function(e){if(p.DEBUG&&
!(e instanceof p.Promise.CancellationError))try{if(e instanceof Error)throw e;throw Error("Promise rejected.");}catch(f){}T(d,p.Promise.State_.REJECTED,e)})}catch(e){T(this,p.Promise.State_.REJECTED,e)}};p.Promise.LONG_STACK_TRACES=!1;p.Promise.UNHANDLED_REJECTION_DELAY=0;p.Promise.State_={PENDING:0,BLOCKED:1,FULFILLED:2,REJECTED:3};p.Promise.CallbackEntry_=function(){this.next=this.context=this.onRejected=this.onFulfilled=this.child=null;this.always=!1};
p.Promise.CallbackEntry_.prototype.reset=function(){this.context=this.onRejected=this.onFulfilled=this.child=null;this.always=!1};p.Promise.DEFAULT_MAX_UNUSED=100;p.Promise.freelist_=new p.async.FreeList(function(){return new p.Promise.CallbackEntry_},function(b){b.reset()},p.Promise.DEFAULT_MAX_UNUSED);p.Promise.getCallbackEntry_=function(b,c,d){var e=p.Promise.freelist_.get();e.onFulfilled=b;e.onRejected=c;e.context=d;return e};p.Promise.returnEntry_=function(b){p.Promise.freelist_.put(b)};
p.Promise.resolve=function(b){if(b instanceof p.Promise)return b;var c=new p.Promise(p.nullFunction);T(c,p.Promise.State_.FULFILLED,b);return c};p.Promise.reject=function(b){return new p.Promise(function(c,d){d(b)})};p.Promise.resolveThen_=function(b,c,d){p.Promise.maybeThen_(b,c,d,null)||p.async.run(p.partial(c,b))};p.Promise.race=function(b){return new p.Promise(function(c,d){b.length||c(void 0);for(var e=0,f;e<b.length;e++)f=b[e],p.Promise.resolveThen_(f,c,d)})};
p.Promise.all=function(b){return new p.Promise(function(c,d){var e=b.length,f=[];if(e)for(var g=function(n,t){e--;f[n]=t;0==e&&c(f)},h=function(n){d(n)},l=0,m;l<b.length;l++)m=b[l],p.Promise.resolveThen_(m,p.partial(g,l),h);else c(f)})};
p.Promise.allSettled=function(b){return new p.Promise(function(c){var d=b.length,e=[];if(d)for(var f=function(l,m,n){d--;e[l]=m?{fulfilled:!0,value:n}:{fulfilled:!1,reason:n};0==d&&c(e)},g=0,h;g<b.length;g++)h=b[g],p.Promise.resolveThen_(h,p.partial(f,g,!0),p.partial(f,g,!1));else c(e)})};
p.Promise.firstFulfilled=function(b){return new p.Promise(function(c,d){var e=b.length,f=[];if(e)for(var g=function(n){c(n)},h=function(n,t){e--;f[n]=t;0==e&&d(f)},l=0,m;l<b.length;l++)m=b[l],p.Promise.resolveThen_(m,g,p.partial(h,l));else c(void 0)})};p.Promise.withResolver=function(){var b,c,d=new p.Promise(function(e,f){b=e;c=f});return new p.Promise.Resolver_(d,b,c)};
p.Promise.prototype.then=function(b,c,d){null!=b&&p.asserts.assertFunction(b,"opt_onFulfilled should be a function.");null!=c&&p.asserts.assertFunction(c,"opt_onRejected should be a function. Did you pass opt_context as the second argument instead of the third?");p.Promise.LONG_STACK_TRACES&&S(this,Error("then"));return ha(this,p.isFunction(b)?b:null,p.isFunction(c)?c:null,d)};p.Thenable.addImplementation(p.Promise);
var ia=function(b,c){p.Promise.LONG_STACK_TRACES&&S(b,Error("thenCatch"));return ha(b,null,c,void 0)};p.Promise.prototype.cancel=function(b){if(this.state_==p.Promise.State_.PENDING){var c=new p.Promise.CancellationError(b);p.async.run(function(){ja(this,c)},this)}};
var ja=function(b,c){if(b.state_==p.Promise.State_.PENDING)if(b.parent_){var d=b.parent_;if(d.callbackEntries_){for(var e=0,f=null,g=null,h=d.callbackEntries_;h&&(h.always||(e++,h.child==b&&(f=h),!(f&&1<e)));h=h.next)f||(g=h);f&&(d.state_==p.Promise.State_.PENDING&&1==e?ja(d,c):(g?(e=g,p.asserts.assert(d.callbackEntries_),p.asserts.assert(null!=e),e.next==d.callbackEntriesTail_&&(d.callbackEntriesTail_=e),e.next=e.next.next):ka(d),la(d,f,p.Promise.State_.REJECTED,c)))}b.parent_=null}else T(b,p.Promise.State_.REJECTED,
c)},na=function(b,c){b.callbackEntries_||b.state_!=p.Promise.State_.FULFILLED&&b.state_!=p.Promise.State_.REJECTED||ma(b);p.asserts.assert(null!=c.onFulfilled);b.callbackEntriesTail_?b.callbackEntriesTail_.next=c:b.callbackEntries_=c;b.callbackEntriesTail_=c},ha=function(b,c,d,e){var f=p.Promise.getCallbackEntry_(null,null,null);f.child=new p.Promise(function(g,h){f.onFulfilled=c?function(l){try{var m=c.call(e,l);g(m)}catch(n){h(n)}}:g;f.onRejected=d?function(l){try{var m=d.call(e,l);void 0===m&&
l instanceof p.Promise.CancellationError?h(l):g(m)}catch(n){h(n)}}:h});f.child.parent_=b;na(b,f);return f.child};p.Promise.prototype.unblockAndFulfill_=function(b){p.asserts.assert(this.state_==p.Promise.State_.BLOCKED);this.state_=p.Promise.State_.PENDING;T(this,p.Promise.State_.FULFILLED,b)};p.Promise.prototype.unblockAndReject_=function(b){p.asserts.assert(this.state_==p.Promise.State_.BLOCKED);this.state_=p.Promise.State_.PENDING;T(this,p.Promise.State_.REJECTED,b)};
var T=function(b,c,d){b.state_==p.Promise.State_.PENDING&&(b===d&&(c=p.Promise.State_.REJECTED,d=new TypeError("Promise cannot resolve to itself")),b.state_=p.Promise.State_.BLOCKED,p.Promise.maybeThen_(d,b.unblockAndFulfill_,b.unblockAndReject_,b)||(b.result_=d,b.state_=c,b.parent_=null,ma(b),c!=p.Promise.State_.REJECTED||d instanceof p.Promise.CancellationError||p.Promise.addUnhandledRejection_(b,d)))};
p.Promise.maybeThen_=function(b,c,d,e){if(b instanceof p.Promise)return null!=c&&p.asserts.assertFunction(c,"opt_onFulfilled should be a function."),null!=d&&p.asserts.assertFunction(d,"opt_onRejected should be a function. Did you pass opt_context as the second argument instead of the third?"),p.Promise.LONG_STACK_TRACES&&S(b,Error("then")),na(b,p.Promise.getCallbackEntry_(c||p.nullFunction,d||null,e)),!0;if(p.Thenable.isImplementedBy(b))return b.then(c,d,e),!0;if(p.isObject(b))try{var f=b.then;if(p.isFunction(f))return p.Promise.tryThen_(b,
f,c,d,e),!0}catch(g){return d.call(e,g),!0}return!1};p.Promise.tryThen_=function(b,c,d,e,f){var g=!1,h=function(m){g||(g=!0,d.call(f,m))},l=function(m){g||(g=!0,e.call(f,m))};try{c.call(b,h,l)}catch(m){l(m)}};var ma=function(b){b.executing_||(b.executing_=!0,p.async.run(b.executeCallbacks_,b))},ka=function(b){var c=null;b.callbackEntries_&&(c=b.callbackEntries_,b.callbackEntries_=c.next,c.next=null);b.callbackEntries_||(b.callbackEntriesTail_=null);null!=c&&p.asserts.assert(null!=c.onFulfilled);return c};
p.Promise.prototype.executeCallbacks_=function(){for(var b;b=ka(this);)p.Promise.LONG_STACK_TRACES&&this.currentStep_++,la(this,b,this.state_,this.result_);this.executing_=!1};
var la=function(b,c,d,e){if(d==p.Promise.State_.REJECTED&&c.onRejected&&!c.always)if(0<p.Promise.UNHANDLED_REJECTION_DELAY)for(;b&&b.unhandledRejectionId_;b=b.parent_)p.global.clearTimeout(b.unhandledRejectionId_),b.unhandledRejectionId_=0;else if(0==p.Promise.UNHANDLED_REJECTION_DELAY)for(;b&&b.hadUnhandledRejection_;b=b.parent_)b.hadUnhandledRejection_=!1;if(c.child)c.child.parent_=null,p.Promise.invokeCallback_(c,d,e);else try{c.always?c.onFulfilled.call(c.context):p.Promise.invokeCallback_(c,
d,e)}catch(f){p.Promise.handleRejection_.call(null,f)}p.Promise.returnEntry_(c)};p.Promise.invokeCallback_=function(b,c,d){c==p.Promise.State_.FULFILLED?b.onFulfilled.call(b.context,d):b.onRejected&&b.onRejected.call(b.context,d)};
var S=function(b,c){if(p.Promise.LONG_STACK_TRACES&&"string"===typeof c.stack){var d=c.stack.split("\n",4)[3];c=c.message;c+=Array(11-c.length).join(" ");b.stack_.push(c+d)}},oa=function(b,c){if(p.Promise.LONG_STACK_TRACES&&c&&"string"===typeof c.stack&&b.stack_.length){for(var d=["Promise trace:"],e=b;e;e=e.parent_){for(var f=b.currentStep_;0<=f;f--)d.push(e.stack_[f]);d.push("Value: ["+(e.state_==p.Promise.State_.REJECTED?"REJECTED":"FULFILLED")+"] <"+String(e.result_)+">")}c.stack+="\n\n"+d.join("\n")}};
p.Promise.addUnhandledRejection_=function(b,c){0<p.Promise.UNHANDLED_REJECTION_DELAY?b.unhandledRejectionId_=p.global.setTimeout(function(){oa(b,c);p.Promise.handleRejection_.call(null,c)},p.Promise.UNHANDLED_REJECTION_DELAY):0==p.Promise.UNHANDLED_REJECTION_DELAY&&(b.hadUnhandledRejection_=!0,p.async.run(function(){b.hadUnhandledRejection_&&(oa(b,c),p.Promise.handleRejection_.call(null,c))}))};p.Promise.handleRejection_=p.async.throwException;
p.Promise.setUnhandledRejectionHandler=function(b){p.Promise.handleRejection_=b};p.Promise.CancellationError=function(b){p.debug.Error.call(this,b)};p.inherits(p.Promise.CancellationError,p.debug.Error);p.Promise.CancellationError.prototype.name="cancel";p.Promise.Resolver_=function(b,c,d){this.promise=b;this.resolve=c;this.reject=d};p.Timer=function(b,c){p.events.EventTarget.call(this);this.interval_=b||1;this.timerObject_=c||p.Timer.defaultTimerObject;this.boundTick_=p.bind(this.tick_,this);this.last_=p.now()};p.inherits(p.Timer,p.events.EventTarget);p.Timer.MAX_TIMEOUT_=2147483647;p.Timer.INVALID_TIMEOUT_ID_=-1;p.Timer.prototype.enabled=!1;p.Timer.defaultTimerObject=p.global;p.Timer.intervalScale=.8;a=p.Timer.prototype;a.timer_=null;
a.setInterval=function(b){this.interval_=b;this.timer_&&this.enabled?(this.stop(),this.start()):this.timer_&&this.stop()};a.tick_=function(){if(this.enabled){var b=p.now()-this.last_;0<b&&b<this.interval_*p.Timer.intervalScale?this.timer_=this.timerObject_.setTimeout(this.boundTick_,this.interval_-b):(this.timer_&&(this.timerObject_.clearTimeout(this.timer_),this.timer_=null),this.dispatchEvent(p.Timer.TICK),this.enabled&&(this.stop(),this.start()))}};
a.start=function(){this.enabled=!0;this.timer_||(this.timer_=this.timerObject_.setTimeout(this.boundTick_,this.interval_),this.last_=p.now())};a.stop=function(){this.enabled=!1;this.timer_&&(this.timerObject_.clearTimeout(this.timer_),this.timer_=null)};a.disposeInternal=function(){p.Timer.superClass_.disposeInternal.call(this);this.stop();delete this.timerObject_};p.Timer.TICK="tick";
p.Timer.callOnce=function(b,c,d){if(p.isFunction(b))d&&(b=p.bind(b,d));else if(b&&"function"==typeof b.handleEvent)b=p.bind(b.handleEvent,b);else throw Error("Invalid listener argument");return Number(c)>p.Timer.MAX_TIMEOUT_?p.Timer.INVALID_TIMEOUT_ID_:p.Timer.defaultTimerObject.setTimeout(b,c||0)};p.Timer.clear=function(b){p.Timer.defaultTimerObject.clearTimeout(b)};
p.Timer.promise=function(b,c){var d=null;return ia(new p.Promise(function(e,f){d=p.Timer.callOnce(function(){e(c)},b);d==p.Timer.INVALID_TIMEOUT_ID_&&f(Error("Failed to schedule timer."))}),function(e){p.Timer.clear(d);throw e;})};p.net.XhrIo=function(b){p.events.EventTarget.call(this);this.headers=new p.structs.Map;this.xmlHttpFactory_=b||null;this.active_=!1;this.xhrOptions_=this.xhr_=null;this.lastError_=this.lastMethod_=this.lastUri_="";this.inAbort_=this.inOpen_=this.inSend_=this.errorDispatched_=!1;this.timeoutInterval_=0;this.timeoutId_=null;this.responseType_=p.net.XhrIo.ResponseType.DEFAULT;this.useXhr2Timeout_=this.progressEventsEnabled_=this.withCredentials_=!1};p.inherits(p.net.XhrIo,p.events.EventTarget);
p.net.XhrIo.ResponseType={DEFAULT:"",TEXT:"text",DOCUMENT:"document",BLOB:"blob",ARRAY_BUFFER:"arraybuffer"};p.net.XhrIo.prototype.logger_=p.log.getLogger("goog.net.XhrIo");p.net.XhrIo.CONTENT_TYPE_HEADER="Content-Type";p.net.XhrIo.CONTENT_TRANSFER_ENCODING="Content-Transfer-Encoding";p.net.XhrIo.HTTP_SCHEME_PATTERN=/^https?$/i;p.net.XhrIo.METHODS_WITH_FORM_DATA=["POST","PUT"];p.net.XhrIo.FORM_CONTENT_TYPE="application/x-www-form-urlencoded;charset=utf-8";p.net.XhrIo.XHR2_TIMEOUT_="timeout";
p.net.XhrIo.XHR2_ON_TIMEOUT_="ontimeout";p.net.XhrIo.sendInstances_=[];p.net.XhrIo.send=function(b,c,d,e,f,g,h){var l=new p.net.XhrIo;p.net.XhrIo.sendInstances_.push(l);c&&l.listen(p.net.EventType.COMPLETE,c);l.listenOnce(p.net.EventType.READY,l.cleanupSend_);g&&(l.timeoutInterval_=Math.max(0,g));h&&(l.withCredentials_=h);l.send(b,d,e,f);return l};p.net.XhrIo.cleanup=function(){for(var b=p.net.XhrIo.sendInstances_;b.length;)b.pop().dispose()};
p.net.XhrIo.protectEntryPoints=function(b){p.net.XhrIo.prototype.onReadyStateChangeEntryPoint_=b.protectEntryPoint(p.net.XhrIo.prototype.onReadyStateChangeEntryPoint_)};p.net.XhrIo.prototype.cleanupSend_=function(){this.dispose();p.array.remove(p.net.XhrIo.sendInstances_,this)};
p.net.XhrIo.prototype.send=function(b,c,d,e){if(this.xhr_)throw Error("[goog.net.XhrIo] Object is active with another request="+this.lastUri_+"; newUri="+b);c=c?c.toUpperCase():"GET";this.lastUri_=b;this.lastError_="";this.lastMethod_=c;this.errorDispatched_=!1;this.active_=!0;this.xhr_=this.xmlHttpFactory_?this.xmlHttpFactory_.createInstance():p.net.XmlHttp();this.xhrOptions_=this.xmlHttpFactory_?this.xmlHttpFactory_.getOptions():p.net.XmlHttp.getOptions();this.xhr_.onreadystatechange=p.bind(this.onReadyStateChange_,
this);this.progressEventsEnabled_&&"onprogress"in this.xhr_&&(this.xhr_.onprogress=p.bind(function(g){this.onProgressHandler_(g,!0)},this),this.xhr_.upload&&(this.xhr_.upload.onprogress=p.bind(this.onProgressHandler_,this)));try{p.log.fine(this.logger_,U(this,"Opening Xhr")),this.inOpen_=!0,this.xhr_.open(c,String(b),!0),this.inOpen_=!1}catch(g){p.log.fine(this.logger_,U(this,"Error opening Xhr: "+g.message));pa(this,g);return}b=d||"";var f=this.headers.clone();e&&p.structs.forEach(e,function(g,h){f.set(h,
g)});e=p.array.find(f.getKeys(),p.net.XhrIo.isContentTypeHeader_);d=p.global.FormData&&b instanceof p.global.FormData;!p.array.contains(p.net.XhrIo.METHODS_WITH_FORM_DATA,c)||e||d||f.set(p.net.XhrIo.CONTENT_TYPE_HEADER,p.net.XhrIo.FORM_CONTENT_TYPE);f.forEach(function(g,h){this.xhr_.setRequestHeader(h,g)},this);this.responseType_&&(this.xhr_.responseType=this.responseType_);"withCredentials"in this.xhr_&&this.xhr_.withCredentials!==this.withCredentials_&&(this.xhr_.withCredentials=this.withCredentials_);
try{qa(this),0<this.timeoutInterval_&&(this.useXhr2Timeout_=p.net.XhrIo.shouldUseXhr2Timeout_(this.xhr_),p.log.fine(this.logger_,U(this,"Will abort after "+this.timeoutInterval_+"ms if incomplete, xhr2 "+this.useXhr2Timeout_)),this.useXhr2Timeout_?(this.xhr_[p.net.XhrIo.XHR2_TIMEOUT_]=this.timeoutInterval_,this.xhr_[p.net.XhrIo.XHR2_ON_TIMEOUT_]=p.bind(this.timeout_,this)):this.timeoutId_=p.Timer.callOnce(this.timeout_,this.timeoutInterval_,this)),p.log.fine(this.logger_,U(this,"Sending request")),
this.inSend_=!0,this.xhr_.send(b),this.inSend_=!1}catch(g){p.log.fine(this.logger_,U(this,"Send error: "+g.message)),pa(this,g)}};p.net.XhrIo.shouldUseXhr2Timeout_=function(b){return p.userAgent.IE&&p.userAgent.isVersionOrHigher(9)&&"number"===typeof b[p.net.XhrIo.XHR2_TIMEOUT_]&&void 0!==b[p.net.XhrIo.XHR2_ON_TIMEOUT_]};p.net.XhrIo.isContentTypeHeader_=function(b){return p.string.caseInsensitiveEquals(p.net.XhrIo.CONTENT_TYPE_HEADER,b)};
p.net.XhrIo.prototype.timeout_=function(){"undefined"!=typeof p&&this.xhr_&&(this.lastError_="Timed out after "+this.timeoutInterval_+"ms, aborting",p.log.fine(this.logger_,U(this,this.lastError_)),this.dispatchEvent(p.net.EventType.TIMEOUT),this.abort(p.net.ErrorCode.TIMEOUT))};var pa=function(b,c){b.active_=!1;b.xhr_&&(b.inAbort_=!0,b.xhr_.abort(),b.inAbort_=!1);b.lastError_=c;ra(b);V(b)},ra=function(b){b.errorDispatched_||(b.errorDispatched_=!0,b.dispatchEvent(p.net.EventType.COMPLETE),b.dispatchEvent(p.net.EventType.ERROR))};
p.net.XhrIo.prototype.abort=function(){this.xhr_&&this.active_&&(p.log.fine(this.logger_,U(this,"Aborting")),this.active_=!1,this.inAbort_=!0,this.xhr_.abort(),this.inAbort_=!1,this.dispatchEvent(p.net.EventType.COMPLETE),this.dispatchEvent(p.net.EventType.ABORT),V(this))};p.net.XhrIo.prototype.disposeInternal=function(){this.xhr_&&(this.active_&&(this.active_=!1,this.inAbort_=!0,this.xhr_.abort(),this.inAbort_=!1),V(this,!0));p.net.XhrIo.superClass_.disposeInternal.call(this)};
p.net.XhrIo.prototype.onReadyStateChange_=function(){if(!this.isDisposed())if(this.inOpen_||this.inSend_||this.inAbort_)sa(this);else this.onReadyStateChangeEntryPoint_()};p.net.XhrIo.prototype.onReadyStateChangeEntryPoint_=function(){sa(this)};
var sa=function(b){if(b.active_&&"undefined"!=typeof p)if(b.xhrOptions_[p.net.XmlHttp.OptionType.LOCAL_REQUEST_ERROR]&&W(b)==p.net.XmlHttp.ReadyState.COMPLETE&&2==X(b))p.log.fine(b.logger_,U(b,"Local request error detected and ignored"));else if(b.inSend_&&W(b)==p.net.XmlHttp.ReadyState.COMPLETE)p.Timer.callOnce(b.onReadyStateChange_,0,b);else if(b.dispatchEvent(p.net.EventType.READY_STATE_CHANGE),Y(b)){p.log.fine(b.logger_,U(b,"Request complete"));b.active_=!1;try{if(b.isSuccess())b.dispatchEvent(p.net.EventType.COMPLETE),
b.dispatchEvent(p.net.EventType.SUCCESS);else{try{var c=W(b)>p.net.XmlHttp.ReadyState.LOADED?b.xhr_.statusText:""}catch(d){p.log.fine(b.logger_,"Can not get status: "+d.message),c=""}b.lastError_=c+" ["+X(b)+"]";ra(b)}}finally{V(b)}}};
p.net.XhrIo.prototype.onProgressHandler_=function(b,c){p.asserts.assert(b.type===p.net.EventType.PROGRESS,"goog.net.EventType.PROGRESS is of the same type as raw XHR progress.");this.dispatchEvent(p.net.XhrIo.buildProgressEvent_(b,p.net.EventType.PROGRESS));this.dispatchEvent(p.net.XhrIo.buildProgressEvent_(b,c?p.net.EventType.DOWNLOAD_PROGRESS:p.net.EventType.UPLOAD_PROGRESS))};p.net.XhrIo.buildProgressEvent_=function(b,c){return{type:c,lengthComputable:b.lengthComputable,loaded:b.loaded,total:b.total}};
var V=function(b,c){if(b.xhr_){qa(b);var d=b.xhr_,e=b.xhrOptions_[p.net.XmlHttp.OptionType.USE_NULL_FUNCTION]?p.nullFunction:null;b.xhr_=null;b.xhrOptions_=null;c||b.dispatchEvent(p.net.EventType.READY);try{d.onreadystatechange=e}catch(f){p.log.error(b.logger_,"Problem encountered resetting onreadystatechange: "+f.message)}}},qa=function(b){b.xhr_&&b.useXhr2Timeout_&&(b.xhr_[p.net.XhrIo.XHR2_ON_TIMEOUT_]=null);b.timeoutId_&&(p.Timer.clear(b.timeoutId_),b.timeoutId_=null)},Y=function(b){return W(b)==
p.net.XmlHttp.ReadyState.COMPLETE};p.net.XhrIo.prototype.isSuccess=function(){var b=X(this),c;if(!(c=p.net.HttpStatus.isSuccess(b))){if(b=0===b)b=p.uri.utils.getEffectiveScheme(String(this.lastUri_)),b=!p.net.XhrIo.HTTP_SCHEME_PATTERN.test(b);c=b}return c};var W=function(b){return b.xhr_?b.xhr_.readyState:p.net.XmlHttp.ReadyState.UNINITIALIZED},X=function(b){try{return W(b)>p.net.XmlHttp.ReadyState.LOADED?b.xhr_.status:-1}catch(c){return-1}};
p.net.XhrIo.prototype.getResponseHeader=function(b){if(this.xhr_&&Y(this))return b=this.xhr_.getResponseHeader(b),null===b?void 0:b};p.net.XhrIo.prototype.getAllResponseHeaders=function(){return this.xhr_&&Y(this)?this.xhr_.getAllResponseHeaders()||"":""};var U=function(b,c){return c+" ["+b.lastMethod_+" "+b.lastUri_+" "+X(b)+"]"};p.debug.entryPointRegistry.register(function(b){p.net.XhrIo.prototype.onReadyStateChangeEntryPoint_=b(p.net.XhrIo.prototype.onReadyStateChangeEntryPoint_)});p.craw.AppAuthenticator=function(b,c,d){this.appUrl_=b;this.authCompletedCallback_=c;this.authFailedCallback_=d||p.functions.NULL;this.uberTokenAttempts_=0};p.craw.AppAuthenticator.UBERAUTH_URL_="https://www.google.com/accounts/OAuthLogin?issueuberauth=1";
p.craw.AppAuthenticator.prototype.onAuthTokenReceived_=function(b){if(void 0===b)this.authFailedCallback_();else{var c=p.bind(this.onUberAuthResponse_,this),d="source="+chrome.runtime.getManifest().oauth2.client_id,e={Authorization:"Bearer "+b,"Content-Type":"application/x-www-form-urlencoded"},f=p.bind(function(){0===this.uberTokenAttempts_?(++this.uberTokenAttempts_,chrome.identity.removeCachedAuthToken({token:b},p.bind(this.authenticate,this))):this.authFailedCallback_()},this);p.net.XhrIo.send(p.craw.AppAuthenticator.UBERAUTH_URL_,
function(){if(this.isSuccess()){try{var g=this.xhr_?this.xhr_.responseText:""}catch(h){p.log.fine(this.logger_,"Can not get responseText: "+h.message),g=""}c(g)}else f()},"POST",d,e)}};p.craw.AppAuthenticator.prototype.onUberAuthResponse_=function(b){var c=p.Uri.parse("https://accounts.google.com/MergeSession");M(c,"source","appsv2");M(c,"uberauth",b);M(c,"continue",this.appUrl_);this.authCompletedCallback_(c.toString())};
p.craw.AppAuthenticator.prototype.authenticate=function(){chrome.identity.getAuthToken({interactive:!0},p.bind(this.onAuthTokenReceived_,this))};p.craw.WindowConfig=function(b,c){this.url_=b;this.useAuth_=c};p.craw.WindowConfig.prototype.getUrl=function(){return this.url_};p.craw.WindowConfig.prototype.getUseAuth=function(){return this.useAuth_};p.craw.AppWindow=function(b){this.config_=b;this.authenticator_=new p.craw.AppAuthenticator(b.getUrl(),p.bind(this.navigateToUrl_,this),p.bind(this.showOfflineWarning,this));this.webview_=p.dom.getDocument().querySelector("webview");this.hasLaunched_=!1;this.loadingOverlay_=p.dom.getElement("loading_overlay");this.offlineOverlay_=p.dom.getElement("offline_overlay");this.customStatus_=null;this.delegate_=p.craw.AppWindowDelegate.createDefaultImpl(this);this.webview_.addEventListener("contentload",
p.bind(this.onContentLoad_,this),!1);this.webview_.addEventListener("newwindow",p.bind(this.onNewWindow_,this),!1);this.delegate_.onWindowReady();this.pollOnlineStatus_()};p.craw.AppWindow.REQUEST_FILTER_URL_PATTERN_="https://*.google.com/*";p.craw.AppWindow.REQUEST_FILTER_TYPE_="main_frame";p.craw.AppWindow.QUERY_NOCACHE_PARAMETER_="nocache";p.craw.AppWindow.NETWORK_TEST_URLS_=["https://www.google.com/images/cleardot.gif","https://www.google.com/images/dot2.gif","https://www.google.com/images/x2.gif"];
p.craw.AppWindow.prototype.navigateToUrl_=function(b){this.webview_.src=b;this.hasLaunched_=!0};p.craw.AppWindow.prototype.onContentLoad_=function(){};p.craw.AppWindow.prototype.onNewWindow_=function(){};var ta=function(b){b.hasLaunched_=!1;b.config_.getUseAuth()?b.authenticator_.authenticate():b.navigateToUrl_(b.config_.getUrl())};a=p.craw.AppWindow.prototype;a.hideVisibleOverlays_=function(){this.loadingOverlay_.style.display="none";this.offlineOverlay_.style.display="none"};
a.fadeInOfflineOverlay_=function(){this.offlineOverlay_.style.opacity="1"};a.showOfflineWarning=function(){p.dom.getElement("app_unavailable").innerText=this.delegate_.getAppUnavailableMessage();p.dom.getElement("connect_to_network").innerText=this.customStatus_||chrome.i18n.getMessage("craw_connect_to_network");this.offlineOverlay_.style.display="-webkit-flex";this.offlineOverlay_.style.pointerEvents="all";p.Timer.callOnce(p.bind(this.fadeInOfflineOverlay_,this),0)};
a.setOnlineStatus_=function(b){p.Timer.callOnce(p.bind(this.pollOnlineStatus_,this),1E3);b?this.hasLaunched_?this.delegate_.finishedLaunch()&&(this.offlineOverlay_.style.opacity="0",this.offlineOverlay_.style.pointerEvents="none",this.loadingOverlay_.style.opacity="0",this.loadingOverlay_.style.pointerEvents="none",p.Timer.callOnce(p.bind(this.hideVisibleOverlays_,this),250)):ta(this):this.showOfflineWarning()};
a.pollOnlineStatus_=function(){if(this.customStatus_=this.delegate_.pollOnlineStatus())this.setOnlineStatus_(!1);else{var b=p.bind(this.setOnlineStatus_,this),c=new p.Uri(p.craw.AppWindow.NETWORK_TEST_URLS_[p.math.randomInt()]);M(c,p.craw.AppWindow.QUERY_NOCACHE_PARAMETER_,Date.now().toString());p.net.XhrIo.send(c.toString(),function(){b(this.isSuccess())})}};window.onload=function(){ta(new p.craw.AppWindow(p.dom.getWindow().crawConfig_))};
