/*
Copyright The Closure Library Authors.
SPDX-License-Identifier: Apache-2.0
*/
var isChrome87, $jscomp = $jscomp || {};
$jscomp.scope = {};
$jscomp.arrayIteratorImpl = function(array) {
var index = 0;
return function() {
return index < array.length ? {done:!1, value:array[index++],} : {done:!0};
};
};
$jscomp.arrayIterator = function(array) {
return {next:$jscomp.arrayIteratorImpl(array)};
};
$jscomp.ASSUME_ES5 = !1;
$jscomp.ASSUME_NO_NATIVE_MAP = !1;
$jscomp.ASSUME_NO_NATIVE_SET = !1;
$jscomp.SIMPLE_FROUND_POLYFILL = !1;
$jscomp.ISOLATE_POLYFILLS = !1;
$jscomp.FORCE_POLYFILL_PROMISE = !1;
$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION = !1;
$jscomp.defineProperty = $jscomp.ASSUME_ES5 || "function" == typeof Object.defineProperties ? Object.defineProperty : function(target, property, descriptor) {
if (target == Array.prototype || target == Object.prototype) {
return target;
}
target[property] = descriptor.value;
return target;
};
$jscomp.getGlobal = function(passedInThis) {
for (var possibleGlobals = ["object" == typeof globalThis && globalThis, passedInThis, "object" == typeof window && window, "object" == typeof self && self, "object" == typeof global && global,], i = 0; i < possibleGlobals.length; ++i) {
var maybeGlobal = possibleGlobals[i];
if (maybeGlobal && maybeGlobal.Math == Math) {
return maybeGlobal;
}
}
return function() {
throw Error("Cannot find global object");
}();
};
$jscomp.global = $jscomp.getGlobal(this);
$jscomp.IS_SYMBOL_NATIVE = "function" === typeof Symbol && "symbol" === typeof Symbol("x");
$jscomp.TRUST_ES6_POLYFILLS = !$jscomp.ISOLATE_POLYFILLS || $jscomp.IS_SYMBOL_NATIVE;
$jscomp.polyfills = {};
$jscomp.propertyToPolyfillSymbol = {};
$jscomp.POLYFILL_PREFIX = "$jscp$";
var $jscomp$lookupPolyfilledValue = function(target, property, isOptionalAccess) {
if (!isOptionalAccess || null != target) {
var obfuscatedName = $jscomp.propertyToPolyfillSymbol[property];
if (null == obfuscatedName) {
return target[property];
}
var polyfill = target[obfuscatedName];
return void 0 !== polyfill ? polyfill : target[property];
}
};
$jscomp.polyfill = function(target, polyfill, fromLang, toLang) {
polyfill && ($jscomp.ISOLATE_POLYFILLS ? $jscomp.polyfillIsolated(target, polyfill, fromLang, toLang) : $jscomp.polyfillUnisolated(target, polyfill, fromLang, toLang));
};
$jscomp.polyfillUnisolated = function(target, polyfill, fromLang, toLang) {
for (var obj = $jscomp.global, split = target.split("."), i = 0; i < split.length - 1; i++) {
var key = split[i];
if (!(key in obj)) {
return;
}
obj = obj[key];
}
var property = split[split.length - 1], orig = obj[property], impl = polyfill(orig);
impl != orig && null != impl && $jscomp.defineProperty(obj, property, {configurable:!0, writable:!0, value:impl});
};
$jscomp.polyfillIsolated = function(target, polyfill, fromLang, toLang) {
var split = target.split("."), isSimpleName = 1 === split.length, root = split[0];
var ownerObject = !isSimpleName && root in $jscomp.polyfills ? $jscomp.polyfills : $jscomp.global;
for (var i = 0; i < split.length - 1; i++) {
var key = split[i];
if (!(key in ownerObject)) {
return;
}
ownerObject = ownerObject[key];
}
var property = split[split.length - 1], nativeImpl = $jscomp.IS_SYMBOL_NATIVE && "es6" === fromLang ? ownerObject[property] : null, impl = polyfill(nativeImpl);
if (null != impl) {
if (isSimpleName) {
$jscomp.defineProperty($jscomp.polyfills, property, {configurable:!0, writable:!0, value:impl});
} else if (impl !== nativeImpl) {
if (void 0 === $jscomp.propertyToPolyfillSymbol[property]) {
var BIN_ID = 1E9 * Math.random() >>> 0;
$jscomp.propertyToPolyfillSymbol[property] = $jscomp.IS_SYMBOL_NATIVE ? $jscomp.global.Symbol(property) : $jscomp.POLYFILL_PREFIX + BIN_ID + "$" + property;
}
$jscomp.defineProperty(ownerObject, $jscomp.propertyToPolyfillSymbol[property], {configurable:!0, writable:!0, value:impl});
}
}
};
$jscomp.initSymbol = function() {
};
$jscomp.polyfill("Symbol", function(orig) {
if (orig) {
return orig;
}
var SymbolClass = function(id, opt_description) {
this.$jscomp$symbol$id_ = id;
$jscomp.defineProperty(this, "description", {configurable:!0, writable:!0, value:opt_description});
};
SymbolClass.prototype.toString = function() {
return this.$jscomp$symbol$id_;
};
var SYMBOL_PREFIX = "jscomp_symbol_" + (1E9 * Math.random() >>> 0) + "_", counter = 0, symbolPolyfill = function(opt_description) {
if (this instanceof symbolPolyfill) {
throw new TypeError("Symbol is not a constructor");
}
return new SymbolClass(SYMBOL_PREFIX + (opt_description || "") + "_" + counter++, opt_description);
};
return symbolPolyfill;
}, "es6", "es3");
$jscomp.polyfill("Symbol.iterator", function(orig) {
if (orig) {
return orig;
}
for (var symbolIterator = Symbol("Symbol.iterator"), arrayLikes = "Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "), i = 0; i < arrayLikes.length; i++) {
var ArrayLikeCtor = $jscomp.global[arrayLikes[i]];
"function" === typeof ArrayLikeCtor && "function" != typeof ArrayLikeCtor.prototype[symbolIterator] && $jscomp.defineProperty(ArrayLikeCtor.prototype, symbolIterator, {configurable:!0, writable:!0, value:function() {
return $jscomp.iteratorPrototype($jscomp.arrayIteratorImpl(this));
}});
}
return symbolIterator;
}, "es6", "es3");
$jscomp.iteratorPrototype = function(next) {
var iterator = {next:next};
iterator[Symbol.iterator] = function() {
return this;
};
return iterator;
};
$jscomp.createTemplateTagFirstArg = function(arrayStrings) {
return arrayStrings.raw = arrayStrings;
};
$jscomp.createTemplateTagFirstArgWithRaw = function(arrayStrings, rawArrayStrings) {
arrayStrings.raw = rawArrayStrings;
return arrayStrings;
};
$jscomp.makeIterator = function(iterable) {
var iteratorFunction = "undefined" != typeof Symbol && Symbol.iterator && iterable[Symbol.iterator];
if (iteratorFunction) {
return iteratorFunction.call(iterable);
}
if ("number" == typeof iterable.length) {
return $jscomp.arrayIterator(iterable);
}
throw Error(String(iterable) + " is not an iterable or ArrayLike");
};
$jscomp.arrayFromIterator = function(iterator) {
for (var i, arr = []; !(i = iterator.next()).done;) {
arr.push(i.value);
}
return arr;
};
$jscomp.arrayFromIterable = function(iterable) {
return iterable instanceof Array ? iterable : $jscomp.arrayFromIterator($jscomp.makeIterator(iterable));
};
$jscomp.owns = function(obj, prop) {
return Object.prototype.hasOwnProperty.call(obj, prop);
};
$jscomp.assign = $jscomp.TRUST_ES6_POLYFILLS && "function" == typeof Object.assign ? Object.assign : function(target, var_args) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i];
if (source) {
for (var key in source) {
$jscomp.owns(source, key) && (target[key] = source[key]);
}
}
}
return target;
};
$jscomp.polyfill("Object.assign", function(orig) {
return orig || $jscomp.assign;
}, "es6", "es3");
$jscomp.objectCreate = $jscomp.ASSUME_ES5 || "function" == typeof Object.create ? Object.create : function(prototype) {
var ctor = function() {
};
ctor.prototype = prototype;
return new ctor();
};
$jscomp.getConstructImplementation = function() {
function reflectConstructWorks() {
function Base() {
}
new Base();
Reflect.construct(Base, [], function Derived() {
});
return new Base() instanceof Base;
}
if ($jscomp.TRUST_ES6_POLYFILLS && "undefined" != typeof Reflect && Reflect.construct) {
if (reflectConstructWorks()) {
return Reflect.construct;
}
var brokenConstruct = Reflect.construct;
return function(target, argList, opt_newTarget) {
var out = brokenConstruct(target, argList);
opt_newTarget && Reflect.setPrototypeOf(out, opt_newTarget.prototype);
return out;
};
}
return function construct(target, argList, opt_newTarget) {
void 0 === opt_newTarget && (opt_newTarget = target);
var obj = $jscomp.objectCreate(opt_newTarget.prototype || Object.prototype);
return Function.prototype.apply.call(target, obj, argList) || obj;
};
};
$jscomp.construct = {valueOf:$jscomp.getConstructImplementation}.valueOf();
$jscomp.underscoreProtoCanBeSet = function() {
var x = {a:!0}, y = {};
try {
return y.__proto__ = x, y.a;
} catch (e) {
}
return !1;
};
$jscomp.setPrototypeOf = $jscomp.TRUST_ES6_POLYFILLS && "function" == typeof Object.setPrototypeOf ? Object.setPrototypeOf : $jscomp.underscoreProtoCanBeSet() ? function(target, proto) {
target.__proto__ = proto;
if (target.__proto__ !== proto) {
throw new TypeError(target + " is not extensible");
}
return target;
} : null;
$jscomp.inherits = function(childCtor, parentCtor) {
childCtor.prototype = $jscomp.objectCreate(parentCtor.prototype);
childCtor.prototype.constructor = childCtor;
if ($jscomp.setPrototypeOf) {
var setPrototypeOf = $jscomp.setPrototypeOf;
setPrototypeOf(childCtor, parentCtor);
} else {
for (var p in parentCtor) {
if ("prototype" != p) {
if (Object.defineProperties) {
var descriptor = Object.getOwnPropertyDescriptor(parentCtor, p);
descriptor && Object.defineProperty(childCtor, p, descriptor);
} else {
childCtor[p] = parentCtor[p];
}
}
}
}
childCtor.superClass_ = parentCtor.prototype;
};
$jscomp.generator = {};
$jscomp.generator.ensureIteratorResultIsObject_ = function(result) {
if (!(result instanceof Object)) {
throw new TypeError("Iterator result " + result + " is not an object");
}
};
$jscomp.generator.Context = function() {
this.isRunning_ = !1;
this.yieldAllIterator_ = null;
this.yieldResult = void 0;
this.nextAddress = 1;
this.finallyAddress_ = this.catchAddress_ = 0;
this.finallyContexts_ = this.abruptCompletion_ = null;
};
$jscomp.generator.Context.prototype.start_ = function() {
if (this.isRunning_) {
throw new TypeError("Generator is already running");
}
this.isRunning_ = !0;
};
$jscomp.generator.Context.prototype.stop_ = function() {
this.isRunning_ = !1;
};
$jscomp.generator.Context.prototype.jumpToErrorHandler_ = function() {
this.nextAddress = this.catchAddress_ || this.finallyAddress_;
};
$jscomp.generator.Context.prototype.next_ = function(value) {
this.yieldResult = value;
};
$jscomp.generator.Context.prototype.throw_ = function(e) {
this.abruptCompletion_ = {exception:e, isException:!0};
this.jumpToErrorHandler_();
};
$jscomp.generator.Context.prototype.return = function(value) {
this.abruptCompletion_ = {return:value};
this.nextAddress = this.finallyAddress_;
};
$jscomp.generator.Context.prototype.jumpThroughFinallyBlocks = function(nextAddress) {
this.abruptCompletion_ = {jumpTo:nextAddress};
this.nextAddress = this.finallyAddress_;
};
$jscomp.generator.Context.prototype.yield = function(value, resumeAddress) {
this.nextAddress = resumeAddress;
return {value:value};
};
$jscomp.generator.Context.prototype.yieldAll = function(iterable, resumeAddress) {
var iterator = $jscomp.makeIterator(iterable), result = iterator.next();
$jscomp.generator.ensureIteratorResultIsObject_(result);
if (result.done) {
this.yieldResult = result.value, this.nextAddress = resumeAddress;
} else {
return this.yieldAllIterator_ = iterator, this.yield(result.value, resumeAddress);
}
};
$jscomp.generator.Context.prototype.jumpTo = function(nextAddress) {
this.nextAddress = nextAddress;
};
$jscomp.generator.Context.prototype.jumpToEnd = function() {
this.nextAddress = 0;
};
$jscomp.generator.Context.prototype.setCatchFinallyBlocks = function(catchAddress, finallyAddress) {
this.catchAddress_ = catchAddress;
void 0 != finallyAddress && (this.finallyAddress_ = finallyAddress);
};
$jscomp.generator.Context.prototype.setFinallyBlock = function(finallyAddress) {
this.catchAddress_ = 0;
this.finallyAddress_ = finallyAddress || 0;
};
$jscomp.generator.Context.prototype.leaveTryBlock = function(nextAddress, catchAddress) {
this.nextAddress = nextAddress;
this.catchAddress_ = catchAddress || 0;
};
$jscomp.generator.Context.prototype.enterCatchBlock = function(nextCatchBlockAddress) {
this.catchAddress_ = nextCatchBlockAddress || 0;
var exception = this.abruptCompletion_.exception;
this.abruptCompletion_ = null;
return exception;
};
$jscomp.generator.Context.prototype.enterFinallyBlock = function(nextCatchAddress, nextFinallyAddress, finallyDepth) {
finallyDepth ? this.finallyContexts_[finallyDepth] = this.abruptCompletion_ : this.finallyContexts_ = [this.abruptCompletion_];
this.catchAddress_ = nextCatchAddress || 0;
this.finallyAddress_ = nextFinallyAddress || 0;
};
$jscomp.generator.Context.prototype.leaveFinallyBlock = function(nextAddress, finallyDepth) {
var preservedContext = this.finallyContexts_.splice(finallyDepth || 0)[0], abruptCompletion = this.abruptCompletion_ = this.abruptCompletion_ || preservedContext;
if (abruptCompletion) {
if (abruptCompletion.isException) {
return this.jumpToErrorHandler_();
}
void 0 != abruptCompletion.jumpTo && this.finallyAddress_ < abruptCompletion.jumpTo ? (this.nextAddress = abruptCompletion.jumpTo, this.abruptCompletion_ = null) : this.nextAddress = this.finallyAddress_;
} else {
this.nextAddress = nextAddress;
}
};
$jscomp.generator.Context.prototype.forIn = function(object) {
return new $jscomp.generator.Context.PropertyIterator(object);
};
$jscomp.generator.Context.PropertyIterator = function(object) {
this.object_ = object;
this.properties_ = [];
for (var property in object) {
this.properties_.push(property);
}
this.properties_.reverse();
};
$jscomp.generator.Context.PropertyIterator.prototype.getNext = function() {
for (; 0 < this.properties_.length;) {
var property = this.properties_.pop();
if (property in this.object_) {
return property;
}
}
return null;
};
$jscomp.generator.Engine_ = function(program) {
this.context_ = new $jscomp.generator.Context();
this.program_ = program;
};
$jscomp.generator.Engine_.prototype.next_ = function(value) {
this.context_.start_();
if (this.context_.yieldAllIterator_) {
return this.yieldAllStep_(this.context_.yieldAllIterator_.next, value, this.context_.next_);
}
this.context_.next_(value);
return this.nextStep_();
};
$jscomp.generator.Engine_.prototype.return_ = function(value) {
this.context_.start_();
var yieldAllIterator = this.context_.yieldAllIterator_;
if (yieldAllIterator) {
return this.yieldAllStep_("return" in yieldAllIterator ? yieldAllIterator["return"] : function(v) {
return {value:v, done:!0};
}, value, this.context_.return);
}
this.context_.return(value);
return this.nextStep_();
};
$jscomp.generator.Engine_.prototype.throw_ = function(exception) {
this.context_.start_();
if (this.context_.yieldAllIterator_) {
return this.yieldAllStep_(this.context_.yieldAllIterator_["throw"], exception, this.context_.next_);
}
this.context_.throw_(exception);
return this.nextStep_();
};
$jscomp.generator.Engine_.prototype.yieldAllStep_ = function(action, value, nextAction) {
try {
var result = action.call(this.context_.yieldAllIterator_, value);
$jscomp.generator.ensureIteratorResultIsObject_(result);
if (!result.done) {
return this.context_.stop_(), result;
}
var resultValue = result.value;
} catch (e) {
return this.context_.yieldAllIterator_ = null, this.context_.throw_(e), this.nextStep_();
}
this.context_.yieldAllIterator_ = null;
nextAction.call(this.context_, resultValue);
return this.nextStep_();
};
$jscomp.generator.Engine_.prototype.nextStep_ = function() {
for (; this.context_.nextAddress;) {
try {
var yieldValue = this.program_(this.context_);
if (yieldValue) {
return this.context_.stop_(), {value:yieldValue.value, done:!1};
}
} catch (e) {
this.context_.yieldResult = void 0, this.context_.throw_(e);
}
}
this.context_.stop_();
if (this.context_.abruptCompletion_) {
var abruptCompletion = this.context_.abruptCompletion_;
this.context_.abruptCompletion_ = null;
if (abruptCompletion.isException) {
throw abruptCompletion.exception;
}
return {value:abruptCompletion.return, done:!0};
}
return {value:void 0, done:!0};
};
$jscomp.generator.Generator_ = function(engine) {
this.next = function(opt_value) {
return engine.next_(opt_value);
};
this.throw = function(exception) {
return engine.throw_(exception);
};
this.return = function(value) {
return engine.return_(value);
};
this[Symbol.iterator] = function() {
return this;
};
};
$jscomp.generator.createGenerator = function(generator, program) {
var result = new $jscomp.generator.Generator_(new $jscomp.generator.Engine_(program));
$jscomp.setPrototypeOf && generator.prototype && $jscomp.setPrototypeOf(result, generator.prototype);
return result;
};
$jscomp.asyncExecutePromiseGenerator = function(generator) {
function passValueToGenerator(value) {
return generator.next(value);
}
function passErrorToGenerator(error) {
return generator.throw(error);
}
return new Promise(function(resolve, reject) {
function handleGeneratorRecord(genRec) {
genRec.done ? resolve(genRec.value) : Promise.resolve(genRec.value).then(passValueToGenerator, passErrorToGenerator).then(handleGeneratorRecord, reject);
}
handleGeneratorRecord(generator.next());
});
};
$jscomp.asyncExecutePromiseGeneratorFunction = function(generatorFunction) {
return $jscomp.asyncExecutePromiseGenerator(generatorFunction());
};
$jscomp.asyncExecutePromiseGeneratorProgram = function(program) {
return $jscomp.asyncExecutePromiseGenerator(new $jscomp.generator.Generator_(new $jscomp.generator.Engine_(program)));
};
$jscomp.getRestArguments = function() {
for (var startIndex = Number(this), restArgs = [], i = startIndex; i < arguments.length; i++) {
restArgs[i - startIndex] = arguments[i];
}
return restArgs;
};
$jscomp.polyfill("Reflect", function(orig) {
return orig ? orig : {};
}, "es6", "es3");
$jscomp.polyfill("Reflect.construct", function(orig) {
return $jscomp.construct;
}, "es6", "es3");
$jscomp.polyfill("Reflect.setPrototypeOf", function(orig) {
if (orig) {
return orig;
}
if ($jscomp.setPrototypeOf) {
var setPrototypeOf = $jscomp.setPrototypeOf;
return function(target, proto) {
try {
return setPrototypeOf(target, proto), !0;
} catch (e) {
return !1;
}
};
}
return null;
}, "es6", "es5");
$jscomp.polyfill("Promise", function(NativePromise) {
function platformSupportsPromiseRejectionEvents() {
return "undefined" !== typeof $jscomp.global.PromiseRejectionEvent;
}
function globalPromiseIsNative() {
return $jscomp.global.Promise && -1 !== $jscomp.global.Promise.toString().indexOf("[native code]");
}
function shouldForcePolyfillPromise() {
return ($jscomp.FORCE_POLYFILL_PROMISE || $jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION && !platformSupportsPromiseRejectionEvents()) && globalPromiseIsNative();
}
function AsyncExecutor() {
this.batch_ = null;
}
function isObject(value) {
switch(typeof value) {
case "object":
return null != value;
case "function":
return !0;
default:
return !1;
}
}
function resolvingPromise(opt_value) {
return opt_value instanceof PolyfillPromise ? opt_value : new PolyfillPromise(function(resolve, reject) {
resolve(opt_value);
});
}
if (NativePromise && !shouldForcePolyfillPromise()) {
return NativePromise;
}
AsyncExecutor.prototype.asyncExecute = function(f) {
if (null == this.batch_) {
this.batch_ = [];
var self = this;
this.asyncExecuteFunction(function() {
self.executeBatch_();
});
}
this.batch_.push(f);
};
var nativeSetTimeout = $jscomp.global.setTimeout;
AsyncExecutor.prototype.asyncExecuteFunction = function(f) {
nativeSetTimeout(f, 0);
};
AsyncExecutor.prototype.executeBatch_ = function() {
for (; this.batch_ && this.batch_.length;) {
var executingBatch = this.batch_;
this.batch_ = [];
for (var i = 0; i < executingBatch.length; ++i) {
var f = executingBatch[i];
executingBatch[i] = null;
try {
f();
} catch (error) {
this.asyncThrow_(error);
}
}
}
this.batch_ = null;
};
AsyncExecutor.prototype.asyncThrow_ = function(exception) {
this.asyncExecuteFunction(function() {
throw exception;
});
};
var PromiseState = {PENDING:0, FULFILLED:1, REJECTED:2}, PolyfillPromise = function(executor) {
this.state_ = PromiseState.PENDING;
this.result_ = void 0;
this.onSettledCallbacks_ = [];
this.isRejectionHandled_ = !1;
var resolveAndReject = this.createResolveAndReject_();
try {
executor(resolveAndReject.resolve, resolveAndReject.reject);
} catch (e) {
resolveAndReject.reject(e);
}
};
PolyfillPromise.prototype.createResolveAndReject_ = function() {
function firstCallWins(method) {
return function(x) {
alreadyCalled || (alreadyCalled = !0, method.call(thisPromise, x));
};
}
var thisPromise = this, alreadyCalled = !1;
return {resolve:firstCallWins(this.resolveTo_), reject:firstCallWins(this.reject_)};
};
PolyfillPromise.prototype.resolveTo_ = function(value) {
value === this ? this.reject_(new TypeError("A Promise cannot resolve to itself")) : value instanceof PolyfillPromise ? this.settleSameAsPromise_(value) : isObject(value) ? this.resolveToNonPromiseObj_(value) : this.fulfill_(value);
};
PolyfillPromise.prototype.resolveToNonPromiseObj_ = function(obj) {
var thenMethod = void 0;
try {
thenMethod = obj.then;
} catch (error) {
this.reject_(error);
return;
}
"function" == typeof thenMethod ? this.settleSameAsThenable_(thenMethod, obj) : this.fulfill_(obj);
};
PolyfillPromise.prototype.reject_ = function(reason) {
this.settle_(PromiseState.REJECTED, reason);
};
PolyfillPromise.prototype.fulfill_ = function(value) {
this.settle_(PromiseState.FULFILLED, value);
};
PolyfillPromise.prototype.settle_ = function(settledState, valueOrReason) {
if (this.state_ != PromiseState.PENDING) {
throw Error("Cannot settle(" + settledState + ", " + valueOrReason + "): Promise already settled in state" + this.state_);
}
this.state_ = settledState;
this.result_ = valueOrReason;
this.state_ === PromiseState.REJECTED && this.scheduleUnhandledRejectionCheck_();
this.executeOnSettledCallbacks_();
};
PolyfillPromise.prototype.scheduleUnhandledRejectionCheck_ = function() {
var self = this;
nativeSetTimeout(function() {
if (self.notifyUnhandledRejection_()) {
var nativeConsole = $jscomp.global.console;
"undefined" !== typeof nativeConsole && nativeConsole.error(self.result_);
}
}, 1);
};
PolyfillPromise.prototype.notifyUnhandledRejection_ = function() {
if (this.isRejectionHandled_) {
return !1;
}
var NativeCustomEvent = $jscomp.global.CustomEvent, NativeEvent = $jscomp.global.Event, nativeDispatchEvent = $jscomp.global.dispatchEvent;
if ("undefined" === typeof nativeDispatchEvent) {
return !0;
}
if ("function" === typeof NativeCustomEvent) {
var event = new NativeCustomEvent("unhandledrejection", {cancelable:!0});
} else {
"function" === typeof NativeEvent ? event = new NativeEvent("unhandledrejection", {cancelable:!0}) : (event = $jscomp.global.document.createEvent("CustomEvent"), event.initCustomEvent("unhandledrejection", !1, !0, event));
}
event.promise = this;
event.reason = this.result_;
return nativeDispatchEvent(event);
};
PolyfillPromise.prototype.executeOnSettledCallbacks_ = function() {
if (null != this.onSettledCallbacks_) {
for (var i = 0; i < this.onSettledCallbacks_.length; ++i) {
asyncExecutor.asyncExecute(this.onSettledCallbacks_[i]);
}
this.onSettledCallbacks_ = null;
}
};
var asyncExecutor = new AsyncExecutor();
PolyfillPromise.prototype.settleSameAsPromise_ = function(promise) {
var methods = this.createResolveAndReject_();
promise.callWhenSettled_(methods.resolve, methods.reject);
};
PolyfillPromise.prototype.settleSameAsThenable_ = function(thenMethod, thenable) {
var methods = this.createResolveAndReject_();
try {
thenMethod.call(thenable, methods.resolve, methods.reject);
} catch (error) {
methods.reject(error);
}
};
PolyfillPromise.prototype.then = function(onFulfilled, onRejected) {
function createCallback(paramF, defaultF) {
return "function" == typeof paramF ? function(x) {
try {
resolveChild(paramF(x));
} catch (error) {
rejectChild(error);
}
} : defaultF;
}
var resolveChild, rejectChild, childPromise = new PolyfillPromise(function(resolve, reject) {
resolveChild = resolve;
rejectChild = reject;
});
this.callWhenSettled_(createCallback(onFulfilled, resolveChild), createCallback(onRejected, rejectChild));
return childPromise;
};
PolyfillPromise.prototype.catch = function(onRejected) {
return this.then(void 0, onRejected);
};
PolyfillPromise.prototype.callWhenSettled_ = function(onFulfilled, onRejected) {
function callback() {
switch(thisPromise.state_) {
case PromiseState.FULFILLED:
onFulfilled(thisPromise.result_);
break;
case PromiseState.REJECTED:
onRejected(thisPromise.result_);
break;
default:
throw Error("Unexpected state: " + thisPromise.state_);
}
}
var thisPromise = this;
null == this.onSettledCallbacks_ ? asyncExecutor.asyncExecute(callback) : this.onSettledCallbacks_.push(callback);
this.isRejectionHandled_ = !0;
};
PolyfillPromise.resolve = resolvingPromise;
PolyfillPromise.reject = function(opt_reason) {
return new PolyfillPromise(function(resolve, reject) {
reject(opt_reason);
});
};
PolyfillPromise.race = function(thenablesOrValues) {
return new PolyfillPromise(function(resolve, reject) {
for (var iterator = $jscomp.makeIterator(thenablesOrValues), iterRec = iterator.next(); !iterRec.done; iterRec = iterator.next()) {
resolvingPromise(iterRec.value).callWhenSettled_(resolve, reject);
}
});
};
PolyfillPromise.all = function(thenablesOrValues) {
var iterator = $jscomp.makeIterator(thenablesOrValues), iterRec = iterator.next();
return iterRec.done ? resolvingPromise([]) : new PolyfillPromise(function(resolveAll, rejectAll) {
function onFulfilled(i) {
return function(ithResult) {
resultsArray[i] = ithResult;
unresolvedCount--;
0 == unresolvedCount && resolveAll(resultsArray);
};
}
var resultsArray = [], unresolvedCount = 0;
do {
resultsArray.push(void 0), unresolvedCount++, resolvingPromise(iterRec.value).callWhenSettled_(onFulfilled(resultsArray.length - 1), rejectAll), iterRec = iterator.next();
} while (!iterRec.done);
});
};
return PolyfillPromise;
}, "es6", "es3");
$jscomp.checkEs6ConformanceViaProxy = function() {
try {
var proxied = {}, proxy = Object.create(new $jscomp.global.Proxy(proxied, {get:function(target, key, receiver) {
return target == proxied && "q" == key && receiver == proxy;
}}));
return !0 === proxy.q;
} catch (err) {
return !1;
}
};
$jscomp.USE_PROXY_FOR_ES6_CONFORMANCE_CHECKS = !1;
$jscomp.ES6_CONFORMANCE = $jscomp.USE_PROXY_FOR_ES6_CONFORMANCE_CHECKS && $jscomp.checkEs6ConformanceViaProxy();
$jscomp.polyfill("WeakMap", function(NativeWeakMap) {
function isConformant() {
if (!NativeWeakMap || !Object.seal) {
return !1;
}
try {
var x = Object.seal({}), y = Object.seal({}), map = new NativeWeakMap([[x, 2], [y, 3]]);
if (2 != map.get(x) || 3 != map.get(y)) {
return !1;
}
map.delete(x);
map.set(y, 4);
return !map.has(x) && 4 == map.get(y);
} catch (err) {
return !1;
}
}
function WeakMapMembership() {
}
function isValidKey(key) {
var type = typeof key;
return "object" === type && null !== key || "function" === type;
}
function insert(target) {
if (!$jscomp.owns(target, prop)) {
var obj = new WeakMapMembership();
$jscomp.defineProperty(target, prop, {value:obj});
}
}
function patch(name) {
if (!$jscomp.ISOLATE_POLYFILLS) {
var prev = Object[name];
prev && (Object[name] = function(target) {
if (target instanceof WeakMapMembership) {
return target;
}
Object.isExtensible(target) && insert(target);
return prev(target);
});
}
}
if ($jscomp.USE_PROXY_FOR_ES6_CONFORMANCE_CHECKS) {
if (NativeWeakMap && $jscomp.ES6_CONFORMANCE) {
return NativeWeakMap;
}
} else {
if (isConformant()) {
return NativeWeakMap;
}
}
var prop = "$jscomp_hidden_" + Math.random();
patch("freeze");
patch("preventExtensions");
patch("seal");
var index = 0, PolyfillWeakMap = function(opt_iterable) {
this.id_ = (index += Math.random() + 1).toString();
if (opt_iterable) {
for (var iter = $jscomp.makeIterator(opt_iterable), entry; !(entry = iter.next()).done;) {
var item = entry.value;
this.set(item[0], item[1]);
}
}
};
PolyfillWeakMap.prototype.set = function(key, value) {
if (!isValidKey(key)) {
throw Error("Invalid WeakMap key");
}
insert(key);
if (!$jscomp.owns(key, prop)) {
throw Error("WeakMap key fail: " + key);
}
key[prop][this.id_] = value;
return this;
};
PolyfillWeakMap.prototype.get = function(key) {
return isValidKey(key) && $jscomp.owns(key, prop) ? key[prop][this.id_] : void 0;
};
PolyfillWeakMap.prototype.has = function(key) {
return isValidKey(key) && $jscomp.owns(key, prop) && $jscomp.owns(key[prop], this.id_);
};
PolyfillWeakMap.prototype.delete = function(key) {
return isValidKey(key) && $jscomp.owns(key, prop) && $jscomp.owns(key[prop], this.id_) ? delete key[prop][this.id_] : !1;
};
return PolyfillWeakMap;
}, "es6", "es3");
$jscomp.MapEntry = function() {
};
$jscomp.polyfill("Map", function(NativeMap) {
function isConformant() {
if ($jscomp.ASSUME_NO_NATIVE_MAP || !NativeMap || "function" != typeof NativeMap || !NativeMap.prototype.entries || "function" != typeof Object.seal) {
return !1;
}
try {
var key = Object.seal({x:4}), map = new NativeMap($jscomp.makeIterator([[key, "s"]]));
if ("s" != map.get(key) || 1 != map.size || map.get({x:4}) || map.set({x:4}, "t") != map || 2 != map.size) {
return !1;
}
var iter = map.entries(), item = iter.next();
if (item.done || item.value[0] != key || "s" != item.value[1]) {
return !1;
}
item = iter.next();
return item.done || 4 != item.value[0].x || "t" != item.value[1] || !iter.next().done ? !1 : !0;
} catch (err) {
return !1;
}
}
if ($jscomp.USE_PROXY_FOR_ES6_CONFORMANCE_CHECKS) {
if (NativeMap && $jscomp.ES6_CONFORMANCE) {
return NativeMap;
}
} else {
if (isConformant()) {
return NativeMap;
}
}
var idMap = new WeakMap(), PolyfillMap = function(opt_iterable) {
this.data_ = {};
this.head_ = createHead();
this.size = 0;
if (opt_iterable) {
for (var iter = $jscomp.makeIterator(opt_iterable), entry; !(entry = iter.next()).done;) {
var item = entry.value;
this.set(item[0], item[1]);
}
}
};
PolyfillMap.prototype.set = function(key, value) {
key = 0 === key ? 0 : key;
var r = maybeGetEntry(this, key);
r.list || (r.list = this.data_[r.id] = []);
r.entry ? r.entry.value = value : (r.entry = {next:this.head_, previous:this.head_.previous, head:this.head_, key:key, value:value,}, r.list.push(r.entry), this.head_.previous.next = r.entry, this.head_.previous = r.entry, this.size++);
return this;
};
PolyfillMap.prototype.delete = function(key) {
var r = maybeGetEntry(this, key);
return r.entry && r.list ? (r.list.splice(r.index, 1), r.list.length || delete this.data_[r.id], r.entry.previous.next = r.entry.next, r.entry.next.previous = r.entry.previous, r.entry.head = null, this.size--, !0) : !1;
};
PolyfillMap.prototype.clear = function() {
this.data_ = {};
this.head_ = this.head_.previous = createHead();
this.size = 0;
};
PolyfillMap.prototype.has = function(key) {
return !!maybeGetEntry(this, key).entry;
};
PolyfillMap.prototype.get = function(key) {
var entry = maybeGetEntry(this, key).entry;
return entry && entry.value;
};
PolyfillMap.prototype.entries = function() {
return makeIterator(this, function(entry) {
return [entry.key, entry.value];
});
};
PolyfillMap.prototype.keys = function() {
return makeIterator(this, function(entry) {
return entry.key;
});
};
PolyfillMap.prototype.values = function() {
return makeIterator(this, function(entry) {
return entry.value;
});
};
PolyfillMap.prototype.forEach = function(callback, opt_thisArg) {
for (var iter = this.entries(), item; !(item = iter.next()).done;) {
var entry = item.value;
callback.call(opt_thisArg, entry[1], entry[0], this);
}
};
PolyfillMap.prototype[Symbol.iterator] = PolyfillMap.prototype.entries;
var maybeGetEntry = function(map, key) {
var id = getId(key), list = map.data_[id];
if (list && $jscomp.owns(map.data_, id)) {
for (var index = 0; index < list.length; index++) {
var entry = list[index];
if (key !== key && entry.key !== entry.key || key === entry.key) {
return {id:id, list:list, index:index, entry:entry};
}
}
}
return {id:id, list:list, index:-1, entry:void 0};
}, makeIterator = function(map, func) {
var entry = map.head_;
return $jscomp.iteratorPrototype(function() {
if (entry) {
for (; entry.head != map.head_;) {
entry = entry.previous;
}
for (; entry.next != entry.head;) {
return entry = entry.next, {done:!1, value:func(entry)};
}
entry = null;
}
return {done:!0, value:void 0};
});
}, createHead = function() {
var head = {};
return head.previous = head.next = head.head = head;
}, mapIndex = 0, getId = function(obj) {
var type = obj && typeof obj;
if ("object" == type || "function" == type) {
if (!idMap.has(obj)) {
var id = "" + ++mapIndex;
idMap.set(obj, id);
return id;
}
return idMap.get(obj);
}
return "p_" + obj;
};
return PolyfillMap;
}, "es6", "es3");
$jscomp.findInternal = function(array, callback, thisArg) {
array instanceof String && (array = String(array));
for (var len = array.length, i = 0; i < len; i++) {
var value = array[i];
if (callback.call(thisArg, value, i, array)) {
return {i:i, v:value};
}
}
return {i:-1, v:void 0};
};
$jscomp.polyfill("Array.prototype.find", function(orig) {
return orig ? orig : function(callback, opt_thisArg) {
return $jscomp.findInternal(this, callback, opt_thisArg).v;
};
}, "es6", "es3");
$jscomp.checkStringArgs = function(thisArg, arg, func) {
if (null == thisArg) {
throw new TypeError("The 'this' value for String.prototype." + func + " must not be null or undefined");
}
if (arg instanceof RegExp) {
throw new TypeError("First argument to String.prototype." + func + " must not be a regular expression");
}
return thisArg + "";
};
$jscomp.polyfill("String.prototype.repeat", function(orig) {
return orig ? orig : function(copies) {
var string = $jscomp.checkStringArgs(this, null, "repeat");
if (0 > copies || 1342177279 < copies) {
throw new RangeError("Invalid count value");
}
copies |= 0;
for (var result = ""; copies;) {
if (copies & 1 && (result += string), copies >>>= 1) {
string += string;
}
}
return result;
};
}, "es6", "es3");
$jscomp.iteratorFromArray = function(array, transform) {
array instanceof String && (array += "");
var i = 0, done = !1, iter = {next:function() {
if (!done && i < array.length) {
var index = i++;
return {value:transform(index, array[index]), done:!1};
}
done = !0;
return {done:!0, value:void 0};
}};
iter[Symbol.iterator] = function() {
return iter;
};
return iter;
};
$jscomp.polyfill("Array.prototype.keys", function(orig) {
return orig ? orig : function() {
return $jscomp.iteratorFromArray(this, function(i) {
return i;
});
};
}, "es6", "es3");
$jscomp.polyfill("Array.from", function(orig) {
return orig ? orig : function(arrayLike, opt_mapFn, opt_thisArg) {
opt_mapFn = null != opt_mapFn ? opt_mapFn : function(x) {
return x;
};
var result = [], iteratorFunction = "undefined" != typeof Symbol && Symbol.iterator && arrayLike[Symbol.iterator];
if ("function" == typeof iteratorFunction) {
arrayLike = iteratorFunction.call(arrayLike);
for (var next, k = 0; !(next = arrayLike.next()).done;) {
result.push(opt_mapFn.call(opt_thisArg, next.value, k++));
}
} else {
for (var len = arrayLike.length, i = 0; i < len; i++) {
result.push(opt_mapFn.call(opt_thisArg, arrayLike[i], i));
}
}
return result;
};
}, "es6", "es3");
$jscomp.polyfill("Array.prototype.values", function(orig) {
return orig ? orig : function() {
return $jscomp.iteratorFromArray(this, function(k, v) {
return v;
});
};
}, "es8", "es3");
$jscomp.polyfill("Object.setPrototypeOf", function(orig) {
return orig || $jscomp.setPrototypeOf;
}, "es6", "es5");
$jscomp.polyfill("String.prototype.endsWith", function(orig) {
return orig ? orig : function(searchString, opt_position) {
var string = $jscomp.checkStringArgs(this, searchString, "endsWith");
searchString += "";
void 0 === opt_position && (opt_position = string.length);
for (var i = Math.max(0, Math.min(opt_position | 0, string.length)), j = searchString.length; 0 < j && 0 < i;) {
if (string[--i] != searchString[--j]) {
return !1;
}
}
return 0 >= j;
};
}, "es6", "es3");
$jscomp.polyfill("String.prototype.startsWith", function(orig) {
return orig ? orig : function(searchString, opt_position) {
var string = $jscomp.checkStringArgs(this, searchString, "startsWith");
searchString += "";
for (var strLen = string.length, searchLen = searchString.length, i = Math.max(0, Math.min(opt_position | 0, string.length)), j = 0; j < searchLen && i < strLen;) {
if (string[i++] != searchString[j++]) {
return !1;
}
}
return j >= searchLen;
};
}, "es6", "es3");
$jscomp.polyfill("Number.isFinite", function(orig) {
return orig ? orig : function(x) {
return "number" !== typeof x ? !1 : !isNaN(x) && Infinity !== x && -Infinity !== x;
};
}, "es6", "es3");
$jscomp.polyfill("Object.entries", function(orig) {
return orig ? orig : function(obj) {
var result = [], key;
for (key in obj) {
$jscomp.owns(obj, key) && result.push([key, obj[key]]);
}
return result;
};
}, "es8", "es3");
$jscomp.polyfill("Object.is", function(orig) {
return orig ? orig : function(left, right) {
return left === right ? 0 !== left || 1 / left === 1 / right : left !== left && right !== right;
};
}, "es6", "es3");
$jscomp.polyfill("Array.prototype.includes", function(orig) {
return orig ? orig : function(searchElement, opt_fromIndex) {
var array = this;
array instanceof String && (array = String(array));
var len = array.length, i = opt_fromIndex || 0;
for (0 > i && (i = Math.max(i + len, 0)); i < len; i++) {
var element = array[i];
if (element === searchElement || Object.is(element, searchElement)) {
return !0;
}
}
return !1;
};
}, "es7", "es3");
$jscomp.polyfill("String.prototype.includes", function(orig) {
return orig ? orig : function(searchString, opt_position) {
return -1 !== $jscomp.checkStringArgs(this, searchString, "includes").indexOf(searchString, opt_position || 0);
};
}, "es6", "es3");
$jscomp.polyfill("String.prototype.trimLeft", function(orig) {
function polyfill() {
return this.replace(/^[\s\xa0]+/, "");
}
return orig || polyfill;
}, "es_2019", "es3");
$jscomp.polyfill("Array.prototype.entries", function(orig) {
return orig ? orig : function() {
return $jscomp.iteratorFromArray(this, function(i, v) {
return [i, v];
});
};
}, "es6", "es3");
$jscomp.polyfill("Set", function(NativeSet) {
function isConformant() {
if ($jscomp.ASSUME_NO_NATIVE_SET || !NativeSet || "function" != typeof NativeSet || !NativeSet.prototype.entries || "function" != typeof Object.seal) {
return !1;
}
try {
var value = Object.seal({x:4}), set = new NativeSet($jscomp.makeIterator([value]));
if (!set.has(value) || 1 != set.size || set.add(value) != set || 1 != set.size || set.add({x:4}) != set || 2 != set.size) {
return !1;
}
var iter = set.entries(), item = iter.next();
if (item.done || item.value[0] != value || item.value[1] != value) {
return !1;
}
item = iter.next();
return item.done || item.value[0] == value || 4 != item.value[0].x || item.value[1] != item.value[0] ? !1 : iter.next().done;
} catch (err) {
return !1;
}
}
if ($jscomp.USE_PROXY_FOR_ES6_CONFORMANCE_CHECKS) {
if (NativeSet && $jscomp.ES6_CONFORMANCE) {
return NativeSet;
}
} else {
if (isConformant()) {
return NativeSet;
}
}
var PolyfillSet = function(opt_iterable) {
this.map_ = new Map();
if (opt_iterable) {
for (var iter = $jscomp.makeIterator(opt_iterable), entry; !(entry = iter.next()).done;) {
this.add(entry.value);
}
}
this.size = this.map_.size;
};
PolyfillSet.prototype.add = function(value) {
value = 0 === value ? 0 : value;
this.map_.set(value, value);
this.size = this.map_.size;
return this;
};
PolyfillSet.prototype.delete = function(value) {
var result = this.map_.delete(value);
this.size = this.map_.size;
return result;
};
PolyfillSet.prototype.clear = function() {
this.map_.clear();
this.size = 0;
};
PolyfillSet.prototype.has = function(value) {
return this.map_.has(value);
};
PolyfillSet.prototype.entries = function() {
return this.map_.entries();
};
PolyfillSet.prototype.values = function() {
return this.map_.values();
};
PolyfillSet.prototype.keys = PolyfillSet.prototype.values;
PolyfillSet.prototype[Symbol.iterator] = PolyfillSet.prototype.values;
PolyfillSet.prototype.forEach = function(callback, opt_thisArg) {
var set = this;
this.map_.forEach(function(value) {
return callback.call(opt_thisArg, value, value, set);
});
};
return PolyfillSet;
}, "es6", "es3");
$jscomp.polyfill("Object.values", function(orig) {
return orig ? orig : function(obj) {
var result = [], key;
for (key in obj) {
$jscomp.owns(obj, key) && result.push(obj[key]);
}
return result;
};
}, "es8", "es3");
$jscomp.stringPadding = function(padString, padLength) {
var padding = void 0 !== padString ? String(padString) : " ";
return 0 < padLength && padding ? padding.repeat(Math.ceil(padLength / padding.length)).substring(0, padLength) : "";
};
$jscomp.polyfill("String.prototype.padStart", function(orig) {
return orig ? orig : function(targetLength, opt_padString) {
var string = $jscomp.checkStringArgs(this, null, "padStart");
return $jscomp.stringPadding(opt_padString, targetLength - string.length) + string;
};
}, "es8", "es3");
var goog = goog || {};
goog.global = this || self;
goog.exportPath_ = function(name, object, overwriteImplicit, objectToExportTo) {
var parts = name.split("."), cur = objectToExportTo || goog.global;
parts[0] in cur || "undefined" == typeof cur.execScript || cur.execScript("var " + parts[0]);
for (var part; parts.length && (part = parts.shift());) {
if (parts.length || void 0 === object) {
cur = cur[part] && cur[part] !== Object.prototype[part] ? cur[part] : cur[part] = {};
} else {
if (!overwriteImplicit && goog.isObject(object) && goog.isObject(cur[part])) {
for (var prop in object) {
object.hasOwnProperty(prop) && (cur[part][prop] = object[prop]);
}
} else {
cur[part] = object;
}
}
}
};
goog.define = function(name, defaultValue) {
var defines, uncompiledDefines;
return defaultValue;
};
goog.FEATURESET_YEAR = 2012;
goog.DEBUG = !0;
goog.LOCALE = "en";
goog.TRUSTED_SITE = !0;
goog.DISALLOW_TEST_ONLY_CODE = !goog.DEBUG;
goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING = !1;
goog.readFlagInternalDoNotUseOrElse = function(googFlagId, defaultValue) {
var obj = goog.getObjectByName(goog.FLAGS_OBJECT_), val = obj && obj[googFlagId];
return null != val ? val : defaultValue;
};
goog.FLAGS_OBJECT_ = "CLOSURE_FLAGS";
goog.FLAGS_STAGING_DEFAULT = !0;
goog.provide = function(name) {
if (goog.isInModuleLoader_()) {
throw Error("goog.provide cannot be used within a module.");
}
goog.constructNamespace_(name);
};
goog.constructNamespace_ = function(name, object, overwriteImplicit) {
var namespace;
goog.exportPath_(name, object, overwriteImplicit);
};
goog.NONCE_PATTERN_ = /^[\w+/_-]+[=]{0,2}$/;
goog.getScriptNonce_ = function(opt_window) {
var doc = (opt_window || goog.global).document, script = doc.querySelector && doc.querySelector("script[nonce]");
if (script) {
var nonce = script.nonce || script.getAttribute("nonce");
if (nonce && goog.NONCE_PATTERN_.test(nonce)) {
return nonce;
}
}
return "";
};
goog.VALID_MODULE_RE_ = /^[a-zA-Z_$][a-zA-Z0-9._$]*$/;
goog.module = function(name) {
if ("string" !== typeof name || !name || -1 == name.search(goog.VALID_MODULE_RE_)) {
throw Error("Invalid module identifier");
}
if (!goog.isInGoogModuleLoader_()) {
throw Error("Module " + name + " has been loaded incorrectly. Note, modules cannot be loaded as normal scripts. They require some kind of pre-processing step. You're likely trying to load a module via a script tag or as a part of a concatenated bundle without rewriting the module. For more info see: https://github.com/google/closure-library/wiki/goog.module:-an-ES6-module-like-alternative-to-goog.provide.");
}
if (goog.moduleLoaderState_.moduleName) {
throw Error("goog.module may only be called once per module.");
}
goog.moduleLoaderState_.moduleName = name;
};
goog.module.get = function(name) {
return goog.module.getInternal_(name);
};
goog.module.getInternal_ = function(name) {
var ns;
return null;
};
goog.requireDynamic = function(name) {
return null;
};
goog.importHandler_ = null;
goog.uncompiledChunkIdHandler_ = null;
goog.setImportHandlerInternalDoNotCallOrElse = function(fn) {
goog.importHandler_ = fn;
};
goog.setUncompiledChunkIdHandlerInternalDoNotCallOrElse = function(fn) {
goog.uncompiledChunkIdHandler_ = fn;
};
goog.ModuleType = {ES6:"es6", GOOG:"goog"};
goog.moduleLoaderState_ = null;
goog.isInModuleLoader_ = function() {
return goog.isInGoogModuleLoader_() || goog.isInEs6ModuleLoader_();
};
goog.isInGoogModuleLoader_ = function() {
return !!goog.moduleLoaderState_ && goog.moduleLoaderState_.type == goog.ModuleType.GOOG;
};
goog.isInEs6ModuleLoader_ = function() {
if (goog.moduleLoaderState_ && goog.moduleLoaderState_.type == goog.ModuleType.ES6) {
return !0;
}
var jscomp = goog.global.$jscomp;
return jscomp ? "function" != typeof jscomp.getCurrentModulePath ? !1 : !!jscomp.getCurrentModulePath() : !1;
};
goog.module.declareLegacyNamespace = function() {
goog.moduleLoaderState_.declareLegacyNamespace = !0;
};
goog.declareModuleId = function(namespace) {
if (goog.moduleLoaderState_) {
goog.moduleLoaderState_.moduleName = namespace;
} else {
var jscomp = goog.global.$jscomp;
if (!jscomp || "function" != typeof jscomp.getCurrentModulePath) {
throw Error('Module with namespace "' + namespace + '" has been loaded incorrectly.');
}
var exports = jscomp.require(jscomp.getCurrentModulePath());
goog.loadedModules_[namespace] = {exports:exports, type:goog.ModuleType.ES6, moduleId:namespace};
}
};
goog.setTestOnly = function(opt_message) {
if (goog.DISALLOW_TEST_ONLY_CODE) {
throw opt_message = opt_message || "", Error("Importing test-only code into non-debug environment" + (opt_message ? ": " + opt_message : "."));
}
};
goog.forwardDeclare = function(name) {
};
goog.getObjectByName = function(name, opt_obj) {
for (var parts = name.split("."), cur = opt_obj || goog.global, i = 0; i < parts.length; i++) {
if (cur = cur[parts[i]], null == cur) {
return null;
}
}
return cur;
};
goog.addDependency = function(relPath, provides, requires, opt_loadFlags) {
};
goog.ENABLE_DEBUG_LOADER = !1;
goog.logToConsole_ = function(msg) {
goog.global.console && goog.global.console.error(msg);
};
goog.require = function(namespace) {
var moduleLoaderState;
};
goog.requireType = function(namespace) {
return {};
};
goog.basePath = "";
goog.abstractMethod = function() {
throw Error("unimplemented abstract method");
};
goog.addSingletonGetter = function(ctor) {
ctor.instance_ = void 0;
ctor.getInstance = function() {
if (ctor.instance_) {
return ctor.instance_;
}
goog.DEBUG && (goog.instantiatedSingletons_[goog.instantiatedSingletons_.length] = ctor);
return ctor.instance_ = new ctor();
};
};
goog.instantiatedSingletons_ = [];
goog.LOAD_MODULE_USING_EVAL = !0;
goog.SEAL_MODULE_EXPORTS = goog.DEBUG;
goog.loadedModules_ = {};
goog.DEPENDENCIES_ENABLED = !1;
goog.TRANSPILE = "detect";
goog.ASSUME_ES_MODULES_TRANSPILED = !1;
goog.TRUSTED_TYPES_POLICY_NAME = "goog";
goog.hasBadLetScoping = null;
goog.loadModule = function(moduleDef) {
var previousState = goog.moduleLoaderState_;
try {
goog.moduleLoaderState_ = {moduleName:"", declareLegacyNamespace:!1, type:goog.ModuleType.GOOG};
var origExports = {}, exports = origExports;
if ("function" === typeof moduleDef) {
exports = moduleDef.call(void 0, exports);
} else if ("string" === typeof moduleDef) {
exports = goog.loadModuleFromSource_.call(void 0, exports, moduleDef);
} else {
throw Error("Invalid module definition");
}
var moduleName = goog.moduleLoaderState_.moduleName;
if ("string" === typeof moduleName && moduleName) {
goog.moduleLoaderState_.declareLegacyNamespace ? goog.constructNamespace_(moduleName, exports, origExports !== exports) : goog.SEAL_MODULE_EXPORTS && Object.seal && "object" == typeof exports && null != exports && Object.seal(exports), goog.loadedModules_[moduleName] = {exports:exports, type:goog.ModuleType.GOOG, moduleId:goog.moduleLoaderState_.moduleName};
} else {
throw Error('Invalid module name "' + moduleName + '"');
}
} finally {
goog.moduleLoaderState_ = previousState;
}
};
goog.loadModuleFromSource_ = function(exports, JSCompiler_OptimizeArgumentsArray_p0) {
eval(goog.CLOSURE_EVAL_PREFILTER_.createScript(JSCompiler_OptimizeArgumentsArray_p0));
return exports;
};
goog.normalizePath_ = function(path) {
for (var components = path.split("/"), i = 0; i < components.length;) {
"." == components[i] ? components.splice(i, 1) : i && ".." == components[i] && components[i - 1] && ".." != components[i - 1] ? components.splice(--i, 2) : i++;
}
return components.join("/");
};
goog.loadFileSync_ = function(src) {
if (goog.global.CLOSURE_LOAD_FILE_SYNC) {
return goog.global.CLOSURE_LOAD_FILE_SYNC(src);
}
try {
var xhr = new goog.global.XMLHttpRequest();
xhr.open("get", src, !1);
xhr.send();
return 0 == xhr.status || 200 == xhr.status ? xhr.responseText : null;
} catch (err) {
return null;
}
};
goog.typeOf = function(value) {
var s = typeof value;
return "object" != s ? s : value ? Array.isArray(value) ? "array" : s : "null";
};
goog.isArrayLike = function(val) {
var type = goog.typeOf(val);
return "array" == type || "object" == type && "number" == typeof val.length;
};
goog.isDateLike = function(val) {
return goog.isObject(val) && "function" == typeof val.getFullYear;
};
goog.isObject = function(val) {
var type = typeof val;
return "object" == type && null != val || "function" == type;
};
goog.getUid = function(obj) {
return Object.prototype.hasOwnProperty.call(obj, goog.UID_PROPERTY_) && obj[goog.UID_PROPERTY_] || (obj[goog.UID_PROPERTY_] = ++goog.uidCounter_);
};
goog.hasUid = function(obj) {
return !!obj[goog.UID_PROPERTY_];
};
goog.removeUid = function(obj) {
null !== obj && "removeAttribute" in obj && obj.removeAttribute(goog.UID_PROPERTY_);
try {
delete obj[goog.UID_PROPERTY_];
} catch (ex) {
}
};
goog.UID_PROPERTY_ = "closure_uid_" + (1E9 * Math.random() >>> 0);
goog.uidCounter_ = 0;
goog.cloneObject = function(obj) {
var type = goog.typeOf(obj);
if ("object" == type || "array" == type) {
if ("function" === typeof obj.clone) {
return obj.clone();
}
if ("undefined" !== typeof Map && obj instanceof Map) {
return new Map(obj);
}
if ("undefined" !== typeof Set && obj instanceof Set) {
return new Set(obj);
}
var clone = "array" == type ? [] : {}, key;
for (key in obj) {
clone[key] = goog.cloneObject(obj[key]);
}
return clone;
}
return obj;
};
goog.bindNative_ = function(fn, selfObj, var_args) {
return fn.call.apply(fn.bind, arguments);
};
goog.bindJs_ = function(fn, selfObj, var_args) {
if (!fn) {
throw Error();
}
if (2 < arguments.length) {
var boundArgs = Array.prototype.slice.call(arguments, 2);
return function() {
var newArgs = Array.prototype.slice.call(arguments);
Array.prototype.unshift.apply(newArgs, boundArgs);
return fn.apply(selfObj, newArgs);
};
}
return function() {
return fn.apply(selfObj, arguments);
};
};
goog.bind = function(fn, selfObj, var_args) {
Function.prototype.bind && -1 != Function.prototype.bind.toString().indexOf("native code") ? goog.bind = goog.bindNative_ : goog.bind = goog.bindJs_;
return goog.bind.apply(null, arguments);
};
goog.partial = function(fn, var_args) {
var args = Array.prototype.slice.call(arguments, 1);
return function() {
var newArgs = args.slice();
newArgs.push.apply(newArgs, arguments);
return fn.apply(this, newArgs);
};
};
goog.now = function() {
return Date.now();
};
goog.globalEval = function(script) {
(0,eval)(script);
};
goog.getCssName = function(className, opt_modifier) {
if ("." == String(className).charAt(0)) {
throw Error('className passed in goog.getCssName must not start with ".". You passed: ' + className);
}
var getMapping = function(cssName) {
return goog.cssNameMapping_[cssName] || cssName;
}, renameByParts = function(cssName) {
for (var parts = cssName.split("-"), mapped = [], i = 0; i < parts.length; i++) {
mapped.push(getMapping(parts[i]));
}
return mapped.join("-");
};
var rename = goog.cssNameMapping_ ? "BY_WHOLE" == goog.cssNameMappingStyle_ ? getMapping : renameByParts : function(a) {
return a;
};
var result = opt_modifier ? className + "-" + rename(opt_modifier) : rename(className);
return goog.global.CLOSURE_CSS_NAME_MAP_FN ? goog.global.CLOSURE_CSS_NAME_MAP_FN(result) : result;
};
goog.setCssNameMapping = function(mapping, opt_style) {
goog.cssNameMapping_ = mapping;
goog.cssNameMappingStyle_ = opt_style;
};
goog.GetMsgOptions = function() {
};
goog.getMsg = function(str, opt_values, opt_options) {
opt_options && opt_options.html && (str = str.replace(/").replace(/'/g, "'").replace(/"/g, '"').replace(/&/g, "&"));
opt_values && (str = str.replace(/\{\$([^}]+)}/g, function(match, key) {
return null != opt_values && key in opt_values ? opt_values[key] : match;
}));
return str;
};
goog.getMsgWithFallback = function(a, b) {
return a;
};
goog.exportSymbol = function(publicPath, object, objectToExportTo) {
goog.exportPath_(publicPath, object, !0, objectToExportTo);
};
goog.exportProperty = function(object, publicName, symbol) {
object[publicName] = symbol;
};
goog.inherits = function(childCtor, parentCtor) {
function tempCtor() {
}
tempCtor.prototype = parentCtor.prototype;
childCtor.superClass_ = parentCtor.prototype;
childCtor.prototype = new tempCtor();
childCtor.prototype.constructor = childCtor;
childCtor.base = function(me, methodName, var_args) {
for (var args = Array(arguments.length - 2), i = 2; i < arguments.length; i++) {
args[i - 2] = arguments[i];
}
return parentCtor.prototype[methodName].apply(me, args);
};
};
goog.scope = function(fn) {
if (goog.isInModuleLoader_()) {
throw Error("goog.scope is not supported within a module.");
}
fn.call(goog.global);
};
goog.defineClass = function(superClass, def) {
var constructor = def.constructor, statics = def.statics;
constructor && constructor != Object.prototype.constructor || (constructor = function() {
throw Error("cannot instantiate an interface (no constructor defined).");
});
var cls = goog.defineClass.createSealingConstructor_(constructor, superClass);
superClass && goog.inherits(cls, superClass);
delete def.constructor;
delete def.statics;
goog.defineClass.applyProperties_(cls.prototype, def);
null != statics && (statics instanceof Function ? statics(cls) : goog.defineClass.applyProperties_(cls, statics));
return cls;
};
goog.defineClass.SEAL_CLASS_INSTANCES = goog.DEBUG;
goog.defineClass.createSealingConstructor_ = function(ctr, superClass) {
return goog.defineClass.SEAL_CLASS_INSTANCES ? function() {
var instance = ctr.apply(this, arguments) || this;
instance[goog.UID_PROPERTY_] = instance[goog.UID_PROPERTY_];
return instance;
} : ctr;
};
goog.defineClass.OBJECT_PROTOTYPE_FIELDS_ = "constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");
goog.defineClass.applyProperties_ = function(target, source) {
for (var key in source) {
Object.prototype.hasOwnProperty.call(source, key) && (target[key] = source[key]);
}
for (var i = 0; i < goog.defineClass.OBJECT_PROTOTYPE_FIELDS_.length; i++) {
key = goog.defineClass.OBJECT_PROTOTYPE_FIELDS_[i], Object.prototype.hasOwnProperty.call(source, key) && (target[key] = source[key]);
}
};
goog.identity_ = function(s) {
return s;
};
goog.createTrustedTypesPolicy = function(name) {
var policy = null, policyFactory = goog.global.trustedTypes;
if (!policyFactory || !policyFactory.createPolicy) {
return policy;
}
try {
policy = policyFactory.createPolicy(name, {createHTML:goog.identity_, createScript:goog.identity_, createScriptURL:goog.identity_});
} catch (e) {
goog.logToConsole_(e.message);
}
return policy;
};
function module$contents$goog$dispose_dispose(obj) {
obj && "function" == typeof obj.dispose && obj.dispose();
}
goog.dispose = module$contents$goog$dispose_dispose;
function module$contents$goog$disposeAll_disposeAll(var_args) {
for (var i = 0, len = arguments.length; i < len; ++i) {
var disposable = arguments[i];
goog.isArrayLike(disposable) ? module$contents$goog$disposeAll_disposeAll.apply(null, disposable) : module$contents$goog$dispose_dispose(disposable);
}
}
goog.disposeAll = module$contents$goog$disposeAll_disposeAll;
goog.disposable = {};
goog.disposable.IDisposable = function() {
};
goog.Disposable = function() {
goog.Disposable.MONITORING_MODE != goog.Disposable.MonitoringMode.OFF && (goog.Disposable.INCLUDE_STACK_ON_CREATION && (this.creationStack = Error().stack), goog.Disposable.instances_[goog.getUid(this)] = this);
this.disposed_ = this.disposed_;
this.onDisposeCallbacks_ = this.onDisposeCallbacks_;
};
goog.Disposable.MonitoringMode = {OFF:0, PERMANENT:1, INTERACTIVE:2};
goog.Disposable.MONITORING_MODE = 0;
goog.Disposable.INCLUDE_STACK_ON_CREATION = !0;
goog.Disposable.instances_ = {};
goog.Disposable.getUndisposedObjects = function() {
var ret = [], id;
for (id in goog.Disposable.instances_) {
goog.Disposable.instances_.hasOwnProperty(id) && ret.push(goog.Disposable.instances_[Number(id)]);
}
return ret;
};
goog.Disposable.clearUndisposedObjects = function() {
goog.Disposable.instances_ = {};
};
goog.Disposable.prototype.disposed_ = !1;
goog.Disposable.prototype.isDisposed = function() {
return this.disposed_;
};
goog.Disposable.prototype.getDisposed = goog.Disposable.prototype.isDisposed;
goog.Disposable.prototype.dispose = function() {
if (!this.disposed_ && (this.disposed_ = !0, this.disposeInternal(), goog.Disposable.MONITORING_MODE != goog.Disposable.MonitoringMode.OFF)) {
var uid = goog.getUid(this);
if (goog.Disposable.MONITORING_MODE == goog.Disposable.MonitoringMode.PERMANENT && !goog.Disposable.instances_.hasOwnProperty(uid)) {
throw Error(this + " did not call the goog.Disposable base constructor or was disposed of after a clearUndisposedObjects call");
}
if (goog.Disposable.MONITORING_MODE != goog.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 goog.Disposable.instances_[uid];
}
};
goog.Disposable.prototype.registerDisposable = function(disposable) {
this.addOnDisposeCallback(goog.partial(module$contents$goog$dispose_dispose, disposable));
};
goog.Disposable.prototype.addOnDisposeCallback = function(callback, opt_scope) {
this.disposed_ ? void 0 !== opt_scope ? callback.call(opt_scope) : callback() : (this.onDisposeCallbacks_ || (this.onDisposeCallbacks_ = []), this.onDisposeCallbacks_.push(void 0 !== opt_scope ? goog.bind(callback, opt_scope) : callback));
};
goog.Disposable.prototype.disposeInternal = function() {
if (this.onDisposeCallbacks_) {
for (; this.onDisposeCallbacks_.length;) {
this.onDisposeCallbacks_.shift()();
}
}
};
goog.Disposable.isDisposed = function(obj) {
return obj && "function" == typeof obj.isDisposed ? obj.isDisposed() : !1;
};
goog.events = {};
goog.events.EventId = function(eventId) {
this.id = eventId;
};
goog.events.EventId.prototype.toString = function() {
return this.id;
};
goog.events.Event = function(type, opt_target) {
this.type = type instanceof goog.events.EventId ? String(type) : type;
this.currentTarget = this.target = opt_target;
this.defaultPrevented = this.propagationStopped_ = !1;
};
goog.events.Event.prototype.hasPropagationStopped = function() {
return this.propagationStopped_;
};
goog.events.Event.prototype.stopPropagation = function() {
this.propagationStopped_ = !0;
};
goog.events.Event.prototype.preventDefault = function() {
this.defaultPrevented = !0;
};
goog.events.Event.stopPropagation = function(e) {
e.stopPropagation();
};
goog.events.Event.preventDefault = function(e) {
e.preventDefault();
};
goog.debug = {};
function module$contents$goog$debug$Error_DebugError(msg, cause) {
if (Error.captureStackTrace) {
Error.captureStackTrace(this, module$contents$goog$debug$Error_DebugError);
} else {
var stack = Error().stack;
stack && (this.stack = stack);
}
msg && (this.message = String(msg));
void 0 !== cause && (this.cause = cause);
this.reportErrorToServer = !0;
}
goog.inherits(module$contents$goog$debug$Error_DebugError, Error);
module$contents$goog$debug$Error_DebugError.prototype.name = "CustomError";
goog.debug.Error = module$contents$goog$debug$Error_DebugError;
goog.dom = {};
goog.dom.NodeType = {ELEMENT:1, ATTRIBUTE:2, TEXT:3, CDATA_SECTION:4, ENTITY_REFERENCE:5, ENTITY:6, PROCESSING_INSTRUCTION:7, COMMENT:8, DOCUMENT:9, DOCUMENT_TYPE:10, DOCUMENT_FRAGMENT:11, NOTATION:12};
goog.asserts = {};
goog.asserts.ENABLE_ASSERTS = goog.DEBUG;
function module$contents$goog$asserts_AssertionError(messagePattern, messageArgs) {
module$contents$goog$debug$Error_DebugError.call(this, module$contents$goog$asserts_subs(messagePattern, messageArgs));
this.messagePattern = messagePattern;
}
goog.inherits(module$contents$goog$asserts_AssertionError, module$contents$goog$debug$Error_DebugError);
goog.asserts.AssertionError = module$contents$goog$asserts_AssertionError;
module$contents$goog$asserts_AssertionError.prototype.name = "AssertionError";
goog.asserts.DEFAULT_ERROR_HANDLER = function(e) {
throw e;
};
var module$contents$goog$asserts_errorHandler_ = goog.asserts.DEFAULT_ERROR_HANDLER;
function module$contents$goog$asserts_subs(pattern, subs) {
for (var splitParts = pattern.split("%s"), returnString = "", subLast = splitParts.length - 1, i = 0; i < subLast; i++) {
returnString += splitParts[i] + (i < subs.length ? subs[i] : "%s");
}
return returnString + splitParts[subLast];
}
function module$contents$goog$asserts_doAssertFailure(defaultMessage, defaultArgs, givenMessage, givenArgs) {
var message = "Assertion failed";
if (givenMessage) {
message += ": " + givenMessage;
var args = givenArgs;
} else {
defaultMessage && (message += ": " + defaultMessage, args = defaultArgs);
}
var e = new module$contents$goog$asserts_AssertionError("" + message, args || []);
module$contents$goog$asserts_errorHandler_(e);
}
goog.asserts.setErrorHandler = function(errorHandler) {
goog.asserts.ENABLE_ASSERTS && (module$contents$goog$asserts_errorHandler_ = errorHandler);
};
goog.asserts.assert = function(condition, opt_message, var_args) {
goog.asserts.ENABLE_ASSERTS && !condition && module$contents$goog$asserts_doAssertFailure("", null, opt_message, Array.prototype.slice.call(arguments, 2));
return condition;
};
goog.asserts.assertExists = function(value, opt_message, var_args) {
goog.asserts.ENABLE_ASSERTS && null == value && module$contents$goog$asserts_doAssertFailure("Expected to exist: %s.", [value], opt_message, Array.prototype.slice.call(arguments, 2));
return value;
};
goog.asserts.fail = function(opt_message, var_args) {
goog.asserts.ENABLE_ASSERTS && module$contents$goog$asserts_errorHandler_(new module$contents$goog$asserts_AssertionError("Failure" + (opt_message ? ": " + opt_message : ""), Array.prototype.slice.call(arguments, 1)));
};
goog.asserts.assertNumber = function(value, opt_message, var_args) {
goog.asserts.ENABLE_ASSERTS && "number" !== typeof value && module$contents$goog$asserts_doAssertFailure("Expected number but got %s: %s.", [goog.typeOf(value), value], opt_message, Array.prototype.slice.call(arguments, 2));
return value;
};
goog.asserts.assertString = function(value, opt_message, var_args) {
goog.asserts.ENABLE_ASSERTS && "string" !== typeof value && module$contents$goog$asserts_doAssertFailure("Expected string but got %s: %s.", [goog.typeOf(value), value], opt_message, Array.prototype.slice.call(arguments, 2));
return value;
};
goog.asserts.assertFunction = function(value, opt_message, var_args) {
goog.asserts.ENABLE_ASSERTS && "function" !== typeof value && module$contents$goog$asserts_doAssertFailure("Expected function but got %s: %s.", [goog.typeOf(value), value], opt_message, Array.prototype.slice.call(arguments, 2));
return value;
};
goog.asserts.assertObject = function(value, opt_message, var_args) {
goog.asserts.ENABLE_ASSERTS && !goog.isObject(value) && module$contents$goog$asserts_doAssertFailure("Expected object but got %s: %s.", [goog.typeOf(value), value], opt_message, Array.prototype.slice.call(arguments, 2));
return value;
};
goog.asserts.assertArray = function(value, opt_message, var_args) {
goog.asserts.ENABLE_ASSERTS && !Array.isArray(value) && module$contents$goog$asserts_doAssertFailure("Expected array but got %s: %s.", [goog.typeOf(value), value], opt_message, Array.prototype.slice.call(arguments, 2));
return value;
};
goog.asserts.assertBoolean = function(value, opt_message, var_args) {
goog.asserts.ENABLE_ASSERTS && "boolean" !== typeof value && module$contents$goog$asserts_doAssertFailure("Expected boolean but got %s: %s.", [goog.typeOf(value), value], opt_message, Array.prototype.slice.call(arguments, 2));
return value;
};
goog.asserts.assertElement = function(value, opt_message, var_args) {
!goog.asserts.ENABLE_ASSERTS || goog.isObject(value) && value.nodeType == goog.dom.NodeType.ELEMENT || module$contents$goog$asserts_doAssertFailure("Expected Element but got %s: %s.", [goog.typeOf(value), value], opt_message, Array.prototype.slice.call(arguments, 2));
return value;
};
goog.asserts.assertInstanceof = function(value, type, opt_message, var_args) {
!goog.asserts.ENABLE_ASSERTS || value instanceof type || module$contents$goog$asserts_doAssertFailure("Expected instanceof %s but got %s.", [module$contents$goog$asserts_getType(type), module$contents$goog$asserts_getType(value)], opt_message, Array.prototype.slice.call(arguments, 3));
return value;
};
goog.asserts.assertFinite = function(value, opt_message, var_args) {
!goog.asserts.ENABLE_ASSERTS || "number" == typeof value && isFinite(value) || module$contents$goog$asserts_doAssertFailure("Expected %s to be a finite number but it is not.", [value], opt_message, Array.prototype.slice.call(arguments, 2));
return value;
};
function module$contents$goog$asserts_getType(value) {
return value instanceof Function ? value.displayName || value.name || "unknown type name" : value instanceof Object ? value.constructor.displayName || value.constructor.name || Object.prototype.toString.call(value) : null === value ? "null" : typeof value;
}
;goog.debug.entryPointRegistry = {};
goog.debug.entryPointRegistry.EntryPointMonitor = function() {
};
goog.debug.EntryPointMonitor = goog.debug.entryPointRegistry.EntryPointMonitor;
goog.debug.entryPointRegistry.refList_ = [];
goog.debug.entryPointRegistry.monitors_ = [];
goog.debug.entryPointRegistry.monitorsMayExist_ = !1;
goog.debug.entryPointRegistry.register = function(callback) {
goog.debug.entryPointRegistry.refList_[goog.debug.entryPointRegistry.refList_.length] = callback;
if (goog.debug.entryPointRegistry.monitorsMayExist_) {
for (var monitors = goog.debug.entryPointRegistry.monitors_, i = 0; i < monitors.length; i++) {
callback(goog.bind(monitors[i].wrap, monitors[i]));
}
}
};
goog.debug.entryPointRegistry.monitorAll = function(monitor) {
goog.debug.entryPointRegistry.monitorsMayExist_ = !0;
for (var transformer = goog.bind(monitor.wrap, monitor), i = 0; i < goog.debug.entryPointRegistry.refList_.length; i++) {
goog.debug.entryPointRegistry.refList_[i](transformer);
}
goog.debug.entryPointRegistry.monitors_.push(monitor);
};
goog.debug.entryPointRegistry.unmonitorAllIfPossible = function(monitor) {
var monitors = goog.debug.entryPointRegistry.monitors_;
goog.asserts.assert(monitor == monitors[monitors.length - 1], "Only the most recent monitor can be unwrapped.");
for (var transformer = goog.bind(monitor.unwrap, monitor), i = 0; i < goog.debug.entryPointRegistry.refList_.length; i++) {
goog.debug.entryPointRegistry.refList_[i](transformer);
}
monitors.length--;
};
goog.array = {};
goog.NATIVE_ARRAY_PROTOTYPES = goog.TRUSTED_SITE;
var module$contents$goog$array_ASSUME_NATIVE_FUNCTIONS = 2012 < goog.FEATURESET_YEAR;
goog.array.ASSUME_NATIVE_FUNCTIONS = module$contents$goog$array_ASSUME_NATIVE_FUNCTIONS;
function module$contents$goog$array_peek(array) {
return array[array.length - 1];
}
goog.array.peek = module$contents$goog$array_peek;
goog.array.last = module$contents$goog$array_peek;
var module$contents$goog$array_indexOf = goog.NATIVE_ARRAY_PROTOTYPES && (module$contents$goog$array_ASSUME_NATIVE_FUNCTIONS || Array.prototype.indexOf) ? function(arr, obj, opt_fromIndex) {
goog.asserts.assert(null != arr.length);
return Array.prototype.indexOf.call(arr, obj, opt_fromIndex);
} : function(arr, obj, opt_fromIndex) {
var fromIndex = null == opt_fromIndex ? 0 : 0 > opt_fromIndex ? Math.max(0, arr.length + opt_fromIndex) : opt_fromIndex;
if ("string" === typeof arr) {
return "string" !== typeof obj || 1 != obj.length ? -1 : arr.indexOf(obj, fromIndex);
}
for (var i = fromIndex; i < arr.length; i++) {
if (i in arr && arr[i] === obj) {
return i;
}
}
return -1;
};
goog.array.indexOf = module$contents$goog$array_indexOf;
var module$contents$goog$array_lastIndexOf = goog.NATIVE_ARRAY_PROTOTYPES && (module$contents$goog$array_ASSUME_NATIVE_FUNCTIONS || Array.prototype.lastIndexOf) ? function(arr, obj, opt_fromIndex) {
goog.asserts.assert(null != arr.length);
return Array.prototype.lastIndexOf.call(arr, obj, null == opt_fromIndex ? arr.length - 1 : opt_fromIndex);
} : function(arr, obj, opt_fromIndex) {
var fromIndex = null == opt_fromIndex ? arr.length - 1 : opt_fromIndex;
0 > fromIndex && (fromIndex = Math.max(0, arr.length + fromIndex));
if ("string" === typeof arr) {
return "string" !== typeof obj || 1 != obj.length ? -1 : arr.lastIndexOf(obj, fromIndex);
}
for (var i = fromIndex; 0 <= i; i--) {
if (i in arr && arr[i] === obj) {
return i;
}
}
return -1;
};
goog.array.lastIndexOf = module$contents$goog$array_lastIndexOf;
var module$contents$goog$array_forEach = goog.NATIVE_ARRAY_PROTOTYPES && (module$contents$goog$array_ASSUME_NATIVE_FUNCTIONS || Array.prototype.forEach) ? function(arr, f, opt_obj) {
goog.asserts.assert(null != arr.length);
Array.prototype.forEach.call(arr, f, opt_obj);
} : function(arr, f, opt_obj) {
for (var l = arr.length, arr2 = "string" === typeof arr ? arr.split("") : arr, i = 0; i < l; i++) {
i in arr2 && f.call(opt_obj, arr2[i], i, arr);
}
};
goog.array.forEach = module$contents$goog$array_forEach;
function module$contents$goog$array_forEachRight(arr, f, opt_obj) {
for (var l = arr.length, arr2 = "string" === typeof arr ? arr.split("") : arr, i = l - 1; 0 <= i; --i) {
i in arr2 && f.call(opt_obj, arr2[i], i, arr);
}
}
goog.array.forEachRight = module$contents$goog$array_forEachRight;
var module$contents$goog$array_filter = goog.NATIVE_ARRAY_PROTOTYPES && (module$contents$goog$array_ASSUME_NATIVE_FUNCTIONS || Array.prototype.filter) ? function(arr, f, opt_obj) {
goog.asserts.assert(null != arr.length);
return Array.prototype.filter.call(arr, f, opt_obj);
} : function(arr, f, opt_obj) {
for (var l = arr.length, res = [], resLength = 0, arr2 = "string" === typeof arr ? arr.split("") : arr, i = 0; i < l; i++) {
if (i in arr2) {
var val = arr2[i];
f.call(opt_obj, val, i, arr) && (res[resLength++] = val);
}
}
return res;
};
goog.array.filter = module$contents$goog$array_filter;
var module$contents$goog$array_map = goog.NATIVE_ARRAY_PROTOTYPES && (module$contents$goog$array_ASSUME_NATIVE_FUNCTIONS || Array.prototype.map) ? function(arr, f, opt_obj) {
goog.asserts.assert(null != arr.length);
return Array.prototype.map.call(arr, f, opt_obj);
} : function(arr, f, opt_obj) {
for (var l = arr.length, res = Array(l), arr2 = "string" === typeof arr ? arr.split("") : arr, i = 0; i < l; i++) {
i in arr2 && (res[i] = f.call(opt_obj, arr2[i], i, arr));
}
return res;
};
goog.array.map = module$contents$goog$array_map;
goog.array.reduce = goog.NATIVE_ARRAY_PROTOTYPES && (module$contents$goog$array_ASSUME_NATIVE_FUNCTIONS || Array.prototype.reduce) ? function(arr, f, val, opt_obj) {
goog.asserts.assert(null != arr.length);
opt_obj && (f = goog.bind(f, opt_obj));
return Array.prototype.reduce.call(arr, f, val);
} : function(arr, f, val$jscomp$0, opt_obj) {
var rval = val$jscomp$0;
module$contents$goog$array_forEach(arr, function(val, index) {
rval = f.call(opt_obj, rval, val, index, arr);
});
return rval;
};
goog.array.reduceRight = goog.NATIVE_ARRAY_PROTOTYPES && (module$contents$goog$array_ASSUME_NATIVE_FUNCTIONS || Array.prototype.reduceRight) ? function(arr, f, val, opt_obj) {
goog.asserts.assert(null != arr.length);
goog.asserts.assert(null != f);
opt_obj && (f = goog.bind(f, opt_obj));
return Array.prototype.reduceRight.call(arr, f, val);
} : function(arr, f, val$jscomp$0, opt_obj) {
var rval = val$jscomp$0;
module$contents$goog$array_forEachRight(arr, function(val, index) {
rval = f.call(opt_obj, rval, val, index, arr);
});
return rval;
};
var module$contents$goog$array_some = goog.NATIVE_ARRAY_PROTOTYPES && (module$contents$goog$array_ASSUME_NATIVE_FUNCTIONS || Array.prototype.some) ? function(arr, f, opt_obj) {
goog.asserts.assert(null != arr.length);
return Array.prototype.some.call(arr, f, opt_obj);
} : function(arr, f, opt_obj) {
for (var l = arr.length, arr2 = "string" === typeof arr ? arr.split("") : arr, i = 0; i < l; i++) {
if (i in arr2 && f.call(opt_obj, arr2[i], i, arr)) {
return !0;
}
}
return !1;
};
goog.array.some = module$contents$goog$array_some;
var module$contents$goog$array_every = goog.NATIVE_ARRAY_PROTOTYPES && (module$contents$goog$array_ASSUME_NATIVE_FUNCTIONS || Array.prototype.every) ? function(arr, f, opt_obj) {
goog.asserts.assert(null != arr.length);
return Array.prototype.every.call(arr, f, opt_obj);
} : function(arr, f, opt_obj) {
for (var l = arr.length, arr2 = "string" === typeof arr ? arr.split("") : arr, i = 0; i < l; i++) {
if (i in arr2 && !f.call(opt_obj, arr2[i], i, arr)) {
return !1;
}
}
return !0;
};
goog.array.every = module$contents$goog$array_every;
function module$contents$goog$array_count(arr$jscomp$0, f, opt_obj) {
var count = 0;
module$contents$goog$array_forEach(arr$jscomp$0, function(element, index, arr) {
f.call(opt_obj, element, index, arr) && ++count;
}, opt_obj);
return count;
}
goog.array.count = module$contents$goog$array_count;
function module$contents$goog$array_find(arr, f, opt_obj) {
var i = module$contents$goog$array_findIndex(arr, f, opt_obj);
return 0 > i ? null : "string" === typeof arr ? arr.charAt(i) : arr[i];
}
goog.array.find = module$contents$goog$array_find;
function module$contents$goog$array_findIndex(arr, f, opt_obj) {
for (var l = arr.length, arr2 = "string" === typeof arr ? arr.split("") : arr, i = 0; i < l; i++) {
if (i in arr2 && f.call(opt_obj, arr2[i], i, arr)) {
return i;
}
}
return -1;
}
goog.array.findIndex = module$contents$goog$array_findIndex;
goog.array.findRight = function module$contents$goog$array_findRight(arr, f, opt_obj) {
var i = module$contents$goog$array_findIndexRight(arr, f, opt_obj);
return 0 > i ? null : "string" === typeof arr ? arr.charAt(i) : arr[i];
};
function module$contents$goog$array_findIndexRight(arr, f, opt_obj) {
for (var l = arr.length, arr2 = "string" === typeof arr ? arr.split("") : arr, i = l - 1; 0 <= i; i--) {
if (i in arr2 && f.call(opt_obj, arr2[i], i, arr)) {
return i;
}
}
return -1;
}
goog.array.findIndexRight = module$contents$goog$array_findIndexRight;
function module$contents$goog$array_contains(arr, obj) {
return 0 <= module$contents$goog$array_indexOf(arr, obj);
}
goog.array.contains = module$contents$goog$array_contains;
function module$contents$goog$array_isEmpty(arr) {
return 0 == arr.length;
}
goog.array.isEmpty = module$contents$goog$array_isEmpty;
function module$contents$goog$array_clear(arr) {
if (!Array.isArray(arr)) {
for (var i = arr.length - 1; 0 <= i; i--) {
delete arr[i];
}
}
arr.length = 0;
}
goog.array.clear = module$contents$goog$array_clear;
goog.array.insert = function module$contents$goog$array_insert(arr, obj) {
module$contents$goog$array_contains(arr, obj) || arr.push(obj);
};
function module$contents$goog$array_insertAt(arr, obj, opt_i) {
module$contents$goog$array_splice(arr, opt_i, 0, obj);
}
goog.array.insertAt = module$contents$goog$array_insertAt;
goog.array.insertArrayAt = function module$contents$goog$array_insertArrayAt(arr, elementsToAdd, opt_i) {
goog.partial(module$contents$goog$array_splice, arr, opt_i, 0).apply(null, elementsToAdd);
};
goog.array.insertBefore = function module$contents$goog$array_insertBefore(arr, obj, opt_obj2) {
var i;
2 == arguments.length || 0 > (i = module$contents$goog$array_indexOf(arr, opt_obj2)) ? arr.push(obj) : module$contents$goog$array_insertAt(arr, obj, i);
};
function module$contents$goog$array_remove(arr, obj) {
var i = module$contents$goog$array_indexOf(arr, obj), rv;
(rv = 0 <= i) && module$contents$goog$array_removeAt(arr, i);
return rv;
}
goog.array.remove = module$contents$goog$array_remove;
function module$contents$goog$array_removeLast(arr, obj) {
var i = module$contents$goog$array_lastIndexOf(arr, obj);
return 0 <= i ? (module$contents$goog$array_removeAt(arr, i), !0) : !1;
}
goog.array.removeLast = module$contents$goog$array_removeLast;
function module$contents$goog$array_removeAt(arr, i) {
goog.asserts.assert(null != arr.length);
return 1 == Array.prototype.splice.call(arr, i, 1).length;
}
goog.array.removeAt = module$contents$goog$array_removeAt;
goog.array.removeIf = function module$contents$goog$array_removeIf(arr, f, opt_obj) {
var i = module$contents$goog$array_findIndex(arr, f, opt_obj);
return 0 <= i ? (module$contents$goog$array_removeAt(arr, i), !0) : !1;
};
goog.array.removeAllIf = function module$contents$goog$array_removeAllIf(arr, f, opt_obj) {
var removedCount = 0;
module$contents$goog$array_forEachRight(arr, function(val, index) {
f.call(opt_obj, val, index, arr) && module$contents$goog$array_removeAt(arr, index) && removedCount++;
});
return removedCount;
};
function module$contents$goog$array_concat(var_args) {
return Array.prototype.concat.apply([], arguments);
}
goog.array.concat = module$contents$goog$array_concat;
goog.array.join = function module$contents$goog$array_join(var_args) {
return Array.prototype.concat.apply([], arguments);
};
function module$contents$goog$array_toArray(object) {
var length = object.length;
if (0 < length) {
for (var rv = Array(length), i = 0; i < length; i++) {
rv[i] = object[i];
}
return rv;
}
return [];
}
goog.array.toArray = module$contents$goog$array_toArray;
goog.array.clone = module$contents$goog$array_toArray;
function module$contents$goog$array_extend(arr1, var_args) {
for (var i = 1; i < arguments.length; i++) {
var arr2 = arguments[i];
if (goog.isArrayLike(arr2)) {
var len1 = arr1.length || 0, len2 = arr2.length || 0;
arr1.length = len1 + len2;
for (var j = 0; j < len2; j++) {
arr1[len1 + j] = arr2[j];
}
} else {
arr1.push(arr2);
}
}
}
goog.array.extend = module$contents$goog$array_extend;
function module$contents$goog$array_splice(arr, index, howMany, var_args) {
goog.asserts.assert(null != arr.length);
return Array.prototype.splice.apply(arr, module$contents$goog$array_slice(arguments, 1));
}
goog.array.splice = module$contents$goog$array_splice;
function module$contents$goog$array_slice(arr, start, opt_end) {
goog.asserts.assert(null != arr.length);
return 2 >= arguments.length ? Array.prototype.slice.call(arr, start) : Array.prototype.slice.call(arr, start, opt_end);
}
goog.array.slice = module$contents$goog$array_slice;
function module$contents$goog$array_removeDuplicates(arr, opt_rv, opt_hashFn) {
for (var returnArray = opt_rv || arr, defaultHashFn = function(item) {
return goog.isObject(item) ? "o" + goog.getUid(item) : (typeof item).charAt(0) + item;
}, hashFn = opt_hashFn || defaultHashFn, cursorInsert = 0, cursorRead = 0, seen = {}; cursorRead < arr.length;) {
var current = arr[cursorRead++], key = hashFn(current);
Object.prototype.hasOwnProperty.call(seen, key) || (seen[key] = !0, returnArray[cursorInsert++] = current);
}
returnArray.length = cursorInsert;
}
goog.array.removeDuplicates = module$contents$goog$array_removeDuplicates;
function module$contents$goog$array_binarySearch(arr, target, opt_compareFn) {
return module$contents$goog$array_binarySearch_(arr, opt_compareFn || module$contents$goog$array_defaultCompare, !1, target);
}
goog.array.binarySearch = module$contents$goog$array_binarySearch;
goog.array.binarySelect = function module$contents$goog$array_binarySelect(arr, evaluator, opt_obj) {
return module$contents$goog$array_binarySearch_(arr, evaluator, !0, void 0, opt_obj);
};
function module$contents$goog$array_binarySearch_(arr, compareFn, isEvaluator, opt_target, opt_selfObj) {
for (var left = 0, right = arr.length, found; left < right;) {
var middle = left + (right - left >>> 1), compareResult = void 0;
compareResult = isEvaluator ? compareFn.call(opt_selfObj, arr[middle], middle, arr) : compareFn(opt_target, arr[middle]);
0 < compareResult ? left = middle + 1 : (right = middle, found = !compareResult);
}
return found ? left : -left - 1;
}
function module$contents$goog$array_sort(arr, opt_compareFn) {
arr.sort(opt_compareFn || module$contents$goog$array_defaultCompare);
}
goog.array.sort = module$contents$goog$array_sort;
goog.array.stableSort = function module$contents$goog$array_stableSort(arr, opt_compareFn) {
for (var compArr = Array(arr.length), i = 0; i < arr.length; i++) {
compArr[i] = {index:i, value:arr[i]};
}
var valueCompareFn = opt_compareFn || module$contents$goog$array_defaultCompare;
module$contents$goog$array_sort(compArr, function stableCompareFn(obj1, obj2) {
return valueCompareFn(obj1.value, obj2.value) || obj1.index - obj2.index;
});
for (var i$35 = 0; i$35 < arr.length; i$35++) {
arr[i$35] = compArr[i$35].value;
}
};
function module$contents$goog$array_sortByKey(arr, keyFn, opt_compareFn) {
var keyCompareFn = opt_compareFn || module$contents$goog$array_defaultCompare;
module$contents$goog$array_sort(arr, function(a, b) {
return keyCompareFn(keyFn(a), keyFn(b));
});
}
goog.array.sortByKey = module$contents$goog$array_sortByKey;
goog.array.sortObjectsByKey = function module$contents$goog$array_sortObjectsByKey(arr, key, opt_compareFn) {
module$contents$goog$array_sortByKey(arr, function(obj) {
return obj[key];
}, opt_compareFn);
};
function module$contents$goog$array_isSorted(arr, opt_compareFn, opt_strict) {
for (var compare = opt_compareFn || module$contents$goog$array_defaultCompare, i = 1; i < arr.length; i++) {
var compareResult = compare(arr[i - 1], arr[i]);
if (0 < compareResult || 0 == compareResult && opt_strict) {
return !1;
}
}
return !0;
}
goog.array.isSorted = module$contents$goog$array_isSorted;
function module$contents$goog$array_equals(arr1, arr2, opt_equalsFn) {
if (!goog.isArrayLike(arr1) || !goog.isArrayLike(arr2) || arr1.length != arr2.length) {
return !1;
}
for (var l = arr1.length, equalsFn = opt_equalsFn || module$contents$goog$array_defaultCompareEquality, i = 0; i < l; i++) {
if (!equalsFn(arr1[i], arr2[i])) {
return !1;
}
}
return !0;
}
goog.array.equals = module$contents$goog$array_equals;
goog.array.compare3 = function module$contents$goog$array_compare3(arr1, arr2, opt_compareFn) {
for (var compare = opt_compareFn || module$contents$goog$array_defaultCompare, l = Math.min(arr1.length, arr2.length), i = 0; i < l; i++) {
var result = compare(arr1[i], arr2[i]);
if (0 != result) {
return result;
}
}
return module$contents$goog$array_defaultCompare(arr1.length, arr2.length);
};
function module$contents$goog$array_defaultCompare(a, b) {
return a > b ? 1 : a < b ? -1 : 0;
}
goog.array.defaultCompare = module$contents$goog$array_defaultCompare;
goog.array.inverseDefaultCompare = function module$contents$goog$array_inverseDefaultCompare(a, b) {
return -module$contents$goog$array_defaultCompare(a, b);
};
function module$contents$goog$array_defaultCompareEquality(a, b) {
return a === b;
}
goog.array.defaultCompareEquality = module$contents$goog$array_defaultCompareEquality;
goog.array.binaryInsert = function module$contents$goog$array_binaryInsert(array, value, opt_compareFn) {
var index = module$contents$goog$array_binarySearch(array, value, opt_compareFn);
return 0 > index ? (module$contents$goog$array_insertAt(array, value, -(index + 1)), !0) : !1;
};
goog.array.binaryRemove = function module$contents$goog$array_binaryRemove(array, value, opt_compareFn) {
var index = module$contents$goog$array_binarySearch(array, value, opt_compareFn);
return 0 <= index ? module$contents$goog$array_removeAt(array, index) : !1;
};
goog.array.bucket = function module$contents$goog$array_bucket(array, sorter, opt_obj) {
for (var buckets = {}, i = 0; i < array.length; i++) {
var value = array[i], key = sorter.call(opt_obj, value, i, array);
void 0 !== key && (buckets[key] || (buckets[key] = [])).push(value);
}
return buckets;
};
goog.array.bucketToMap = function module$contents$goog$array_bucketToMap(array, sorter) {
for (var buckets = new Map(), i = 0; i < array.length; i++) {
var value = array[i], key = sorter(value, i, array);
if (void 0 !== key) {
var bucket = buckets.get(key);
bucket || (bucket = [], buckets.set(key, bucket));
bucket.push(value);
}
}
return buckets;
};
goog.array.toObject = function module$contents$goog$array_toObject(arr, keyFunc, opt_obj) {
var ret = {};
module$contents$goog$array_forEach(arr, function(element, index) {
ret[keyFunc.call(opt_obj, element, index, arr)] = element;
});
return ret;
};
goog.array.toMap = function module$contents$goog$array_toMap(arr, keyFunc) {
for (var map = new Map(), i = 0; i < arr.length; i++) {
var element = arr[i];
map.set(keyFunc(element, i, arr), element);
}
return map;
};
function module$contents$goog$array_range(startOrEnd, opt_end, opt_step) {
var array = [], start = 0, end = startOrEnd, step = opt_step || 1;
void 0 !== opt_end && (start = startOrEnd, end = opt_end);
if (0 > step * (end - start)) {
return [];
}
if (0 < step) {
for (var i = start; i < end; i += step) {
array.push(i);
}
} else {
for (var i$36 = start; i$36 > end; i$36 += step) {
array.push(i$36);
}
}
return array;
}
goog.array.range = module$contents$goog$array_range;
function module$contents$goog$array_repeat(value, n) {
for (var array = [], i = 0; i < n; i++) {
array[i] = value;
}
return array;
}
goog.array.repeat = module$contents$goog$array_repeat;
function module$contents$goog$array_flatten(var_args) {
for (var result = [], i = 0; i < arguments.length; i++) {
var element = arguments[i];
if (Array.isArray(element)) {
for (var c = 0; c < element.length; c += 8192) {
for (var chunk = module$contents$goog$array_slice(element, c, c + 8192), recurseResult = module$contents$goog$array_flatten.apply(null, chunk), r = 0; r < recurseResult.length; r++) {
result.push(recurseResult[r]);
}
}
} else {
result.push(element);
}
}
return result;
}
goog.array.flatten = module$contents$goog$array_flatten;
goog.array.rotate = function module$contents$goog$array_rotate(array, n) {
goog.asserts.assert(null != array.length);
array.length && (n %= array.length, 0 < n ? Array.prototype.unshift.apply(array, array.splice(-n, n)) : 0 > n && Array.prototype.push.apply(array, array.splice(0, -n)));
return array;
};
goog.array.moveItem = function module$contents$goog$array_moveItem(arr, fromIndex, toIndex) {
goog.asserts.assert(0 <= fromIndex && fromIndex < arr.length);
goog.asserts.assert(0 <= toIndex && toIndex < arr.length);
var removedItems = Array.prototype.splice.call(arr, fromIndex, 1);
Array.prototype.splice.call(arr, toIndex, 0, removedItems[0]);
};
goog.array.zip = function module$contents$goog$array_zip(var_args) {
if (!arguments.length) {
return [];
}
for (var result = [], minLen = arguments[0].length, i = 1; i < arguments.length; i++) {
arguments[i].length < minLen && (minLen = arguments[i].length);
}
for (var i$37 = 0; i$37 < minLen; i$37++) {
for (var value = [], j = 0; j < arguments.length; j++) {
value.push(arguments[j][i$37]);
}
result.push(value);
}
return result;
};
goog.array.shuffle = function module$contents$goog$array_shuffle(arr, opt_randFn) {
for (var randFn = opt_randFn || Math.random, i = arr.length - 1; 0 < i; i--) {
var j = Math.floor(randFn() * (i + 1)), tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
};
goog.array.copyByIndex = function module$contents$goog$array_copyByIndex(arr, index_arr) {
var result = [];
module$contents$goog$array_forEach(index_arr, function(index) {
result.push(arr[index]);
});
return result;
};
goog.array.concatMap = function module$contents$goog$array_concatMap(arr, f, opt_obj) {
return module$contents$goog$array_concat.apply([], module$contents$goog$array_map(arr, f, opt_obj));
};
goog.debug.errorcontext = {};
goog.debug.errorcontext.addErrorContext = function(err, contextKey, contextValue) {
err[goog.debug.errorcontext.CONTEXT_KEY_] || (err[goog.debug.errorcontext.CONTEXT_KEY_] = {});
err[goog.debug.errorcontext.CONTEXT_KEY_][contextKey] = contextValue;
};
goog.debug.errorcontext.getErrorContext = function(err) {
return err[goog.debug.errorcontext.CONTEXT_KEY_] || {};
};
goog.debug.errorcontext.CONTEXT_KEY_ = "__closure__error__context__984382";
goog.debug.LOGGING_ENABLED = goog.DEBUG;
goog.debug.FORCE_SLOPPY_STACKS = !1;
goog.debug.CHECK_FOR_THROWN_EVENT = !1;
goog.debug.catchErrors = function(logFunc, opt_cancel, opt_target) {
var target = opt_target || goog.global, oldErrorHandler = target.onerror, retVal = !!opt_cancel;
target.onerror = function(message, url, line, opt_col, opt_error) {
oldErrorHandler && oldErrorHandler(message, url, line, opt_col, opt_error);
logFunc({message:message, fileName:url, line:line, lineNumber:line, col:opt_col, error:opt_error});
return retVal;
};
};
goog.debug.expose = function(obj, opt_showFn) {
if ("undefined" == typeof obj) {
return "undefined";
}
if (null == obj) {
return "NULL";
}
var str = [], x;
for (x in obj) {
if (opt_showFn || "function" !== typeof obj[x]) {
var s = x + " = ";
try {
s += obj[x];
} catch (e) {
s += "*** " + e + " ***";
}
str.push(s);
}
}
return str.join("\n");
};
goog.debug.deepExpose = function(obj$jscomp$0, opt_showFn) {
var str$jscomp$0 = [], uidsToCleanup = [], ancestorUids = {}, helper = function(obj, space) {
var nestspace = space + " ", indentMultiline = function(str) {
return str.replace(/\n/g, "\n" + space);
};
try {
if (void 0 === obj) {
str$jscomp$0.push("undefined");
} else if (null === obj) {
str$jscomp$0.push("NULL");
} else if ("string" === typeof obj) {
str$jscomp$0.push('"' + indentMultiline(obj) + '"');
} else if ("function" === typeof obj) {
str$jscomp$0.push(indentMultiline(String(obj)));
} else if (goog.isObject(obj)) {
goog.hasUid(obj) || uidsToCleanup.push(obj);
var uid = goog.getUid(obj);
if (ancestorUids[uid]) {
str$jscomp$0.push("*** reference loop detected (id=" + uid + ") ***");
} else {
ancestorUids[uid] = !0;
str$jscomp$0.push("{");
for (var x in obj) {
if (opt_showFn || "function" !== typeof obj[x]) {
str$jscomp$0.push("\n"), str$jscomp$0.push(nestspace), str$jscomp$0.push(x + " = "), helper(obj[x], nestspace);
}
}
str$jscomp$0.push("\n" + space + "}");
delete ancestorUids[uid];
}
} else {
str$jscomp$0.push(obj);
}
} catch (e) {
str$jscomp$0.push("*** " + e + " ***");
}
};
helper(obj$jscomp$0, "");
for (var i = 0; i < uidsToCleanup.length; i++) {
goog.removeUid(uidsToCleanup[i]);
}
return str$jscomp$0.join("");
};
goog.debug.exposeArray = function(arr) {
for (var str = [], i = 0; i < arr.length; i++) {
Array.isArray(arr[i]) ? str.push(goog.debug.exposeArray(arr[i])) : str.push(arr[i]);
}
return "[ " + str.join(", ") + " ]";
};
goog.debug.normalizeErrorObject = function(err) {
var href = goog.getObjectByName("window.location.href");
null == err && (err = 'Unknown Error of type "null/undefined"');
if ("string" === typeof err) {
return {message:err, name:"Unknown error", lineNumber:"Not available", fileName:href, stack:"Not available"};
}
var threwError = !1;
try {
var lineNumber = err.lineNumber || err.line || "Not available";
} catch (e) {
lineNumber = "Not available", threwError = !0;
}
try {
var fileName = err.fileName || err.filename || err.sourceURL || goog.global.$googDebugFname || href;
} catch (e$38) {
fileName = "Not available", threwError = !0;
}
var stack = goog.debug.serializeErrorStack_(err);
if (!(!threwError && err.lineNumber && err.fileName && err.stack && err.message && err.name)) {
var message = err.message;
if (null == message) {
if (err.constructor && err.constructor instanceof Function) {
var ctorName = err.constructor.name ? err.constructor.name : goog.debug.getFunctionName(err.constructor);
message = 'Unknown Error of type "' + ctorName + '"';
if (goog.debug.CHECK_FOR_THROWN_EVENT && "Event" == ctorName) {
try {
message = message + ' with Event.type "' + (err.type || "") + '"';
} catch (e$39) {
}
}
} else {
message = "Unknown Error of unknown type";
}
"function" === typeof err.toString && Object.prototype.toString !== err.toString && (message += ": " + err.toString());
}
return {message:message, name:err.name || "UnknownError", lineNumber:lineNumber, fileName:fileName, stack:stack || "Not available"};
}
err.stack = stack;
return {message:err.message, name:err.name, lineNumber:err.lineNumber, fileName:err.fileName, stack:err.stack};
};
goog.debug.serializeErrorStack_ = function(e, seen) {
seen || (seen = {});
seen[goog.debug.serializeErrorAsKey_(e)] = !0;
var stack = e.stack || "", cause = e.cause;
cause && !seen[goog.debug.serializeErrorAsKey_(cause)] && (stack += "\nCaused by: ", cause.stack && 0 == cause.stack.indexOf(cause.toString()) || (stack += "string" === typeof cause ? cause : cause.message + "\n"), stack += goog.debug.serializeErrorStack_(cause, seen));
return stack;
};
goog.debug.serializeErrorAsKey_ = function(e) {
var keyPrefix = "";
"function" === typeof e.toString && (keyPrefix = "" + e);
return keyPrefix + e.stack;
};
goog.debug.enhanceError = function(err, opt_message) {
if (err instanceof Error) {
var error = err;
} else {
error = Error(err), Error.captureStackTrace && Error.captureStackTrace(error, goog.debug.enhanceError);
}
error.stack || (error.stack = goog.debug.getStacktrace(goog.debug.enhanceError));
if (opt_message) {
for (var x = 0; error["message" + x];) {
++x;
}
error["message" + x] = String(opt_message);
}
return error;
};
goog.debug.enhanceErrorWithContext = function(err, opt_context) {
var error = goog.debug.enhanceError(err);
if (opt_context) {
for (var key in opt_context) {
goog.debug.errorcontext.addErrorContext(error, key, opt_context[key]);
}
}
return error;
};
goog.debug.getStacktraceSimple = function(opt_depth) {
if (!goog.debug.FORCE_SLOPPY_STACKS) {
var stack = goog.debug.getNativeStackTrace_(goog.debug.getStacktraceSimple);
if (stack) {
return stack;
}
}
for (var sb = [], fn = arguments.callee.caller, depth = 0; fn && (!opt_depth || depth < opt_depth);) {
sb.push(goog.debug.getFunctionName(fn));
sb.push("()\n");
try {
fn = fn.caller;
} catch (e) {
sb.push("[exception trying to get caller]\n");
break;
}
depth++;
if (depth >= goog.debug.MAX_STACK_DEPTH) {
sb.push("[...long stack...]");
break;
}
}
opt_depth && depth >= opt_depth ? sb.push("[...reached max depth limit...]") : sb.push("[end]");
return sb.join("");
};
goog.debug.MAX_STACK_DEPTH = 50;
goog.debug.getNativeStackTrace_ = function(fn) {
var tempErr = Error();
if (Error.captureStackTrace) {
return Error.captureStackTrace(tempErr, fn), String(tempErr.stack);
}
try {
throw tempErr;
} catch (e) {
tempErr = e;
}
var stack = tempErr.stack;
return stack ? String(stack) : null;
};
goog.debug.getStacktrace = function(fn) {
var stack;
goog.debug.FORCE_SLOPPY_STACKS || (stack = goog.debug.getNativeStackTrace_(fn || goog.debug.getStacktrace));
stack || (stack = goog.debug.getStacktraceHelper_(fn || arguments.callee.caller, []));
return stack;
};
goog.debug.getStacktraceHelper_ = function(fn, visited) {
var sb = [];
if (module$contents$goog$array_contains(visited, fn)) {
sb.push("[...circular reference...]");
} else if (fn && visited.length < goog.debug.MAX_STACK_DEPTH) {
sb.push(goog.debug.getFunctionName(fn) + "(");
for (var args = fn.arguments, i = 0; args && i < args.length; i++) {
0 < i && sb.push(", ");
var arg = args[i];
switch(typeof arg) {
case "object":
var argDesc = arg ? "object" : "null";
break;
case "string":
argDesc = arg;
break;
case "number":
argDesc = String(arg);
break;
case "boolean":
argDesc = arg ? "true" : "false";
break;
case "function":
argDesc = (argDesc = goog.debug.getFunctionName(arg)) ? argDesc : "[fn]";
break;
default:
argDesc = typeof arg;
}
40 < argDesc.length && (argDesc = argDesc.slice(0, 40) + "...");
sb.push(argDesc);
}
visited.push(fn);
sb.push(")\n");
try {
sb.push(goog.debug.getStacktraceHelper_(fn.caller, visited));
} catch (e) {
sb.push("[exception trying to get caller]\n");
}
} else {
fn ? sb.push("[...long stack...]") : sb.push("[end]");
}
return sb.join("");
};
goog.debug.getFunctionName = function(fn) {
if (goog.debug.fnNameCache_[fn]) {
return goog.debug.fnNameCache_[fn];
}
var functionSource = String(fn);
if (!goog.debug.fnNameCache_[functionSource]) {
var matches = /function\s+([^\(]+)/m.exec(functionSource);
goog.debug.fnNameCache_[functionSource] = matches ? matches[1] : "[Anonymous]";
}
return goog.debug.fnNameCache_[functionSource];
};
goog.debug.makeWhitespaceVisible = function(string) {
return string.replace(/ /g, "[_]").replace(/\f/g, "[f]").replace(/\n/g, "[n]\n").replace(/\r/g, "[r]").replace(/\t/g, "[t]");
};
goog.debug.runtimeType = function(value) {
return value instanceof Function ? value.displayName || value.name || "unknown type name" : value instanceof Object ? value.constructor.displayName || value.constructor.name || Object.prototype.toString.call(value) : null === value ? "null" : typeof value;
};
goog.debug.fnNameCache_ = {};
goog.debug.freezeInternal_ = goog.DEBUG && Object.freeze || function(arg) {
return arg;
};
goog.debug.freeze = function(arg) {
return function() {
return goog.debug.freezeInternal_(arg);
}();
};
goog.events.BrowserFeature = {TOUCH_ENABLED:"ontouchstart" in goog.global || !!(goog.global.document && document.documentElement && "ontouchstart" in document.documentElement) || !(!goog.global.navigator || !goog.global.navigator.maxTouchPoints && !goog.global.navigator.msMaxTouchPoints), POINTER_EVENTS:"PointerEvent" in goog.global, MSPOINTER_EVENTS:!1, PASSIVE_EVENTS:function(fn) {
return {valueOf:fn}.valueOf();
}(function() {
if (!goog.global.addEventListener || !Object.defineProperty) {
return !1;
}
var passive = !1, options = Object.defineProperty({}, "passive", {get:function() {
passive = !0;
}});
try {
var nullFunction = function() {
};
goog.global.addEventListener("test", nullFunction, options);
goog.global.removeEventListener("test", nullFunction, options);
} catch (e) {
}
return passive;
})};
goog.flags = {};
var module$contents$goog$flags_STAGING = goog.readFlagInternalDoNotUseOrElse(1, goog.FLAGS_STAGING_DEFAULT);
goog.flags.USE_USER_AGENT_CLIENT_HINTS = goog.readFlagInternalDoNotUseOrElse(610401301, !1);
goog.flags.ASYNC_THROW_ON_UNICODE_TO_BYTE = goog.readFlagInternalDoNotUseOrElse(899588437, !1);
goog.flags.APPS_JSPB_UNSORTED_MAPS_FLAG = goog.readFlagInternalDoNotUseOrElse(513561853, module$contents$goog$flags_STAGING);
goog.flags.APPS_JSPB_REMOVE_INTERNAL_WRAPPERS = goog.readFlagInternalDoNotUseOrElse(516931134, module$contents$goog$flags_STAGING);
goog.flags.TESTONLY_FALSE_FLAG = goog.readFlagInternalDoNotUseOrElse(2147483644, !1);
goog.flags.TESTONLY_DEBUG_FLAG = goog.readFlagInternalDoNotUseOrElse(2147483645, goog.DEBUG);
goog.flags.TESTONLY_STAGING_FLAG = goog.readFlagInternalDoNotUseOrElse(2147483646, module$contents$goog$flags_STAGING);
goog.flags.TESTONLY_TRUE_FLAG = goog.readFlagInternalDoNotUseOrElse(2147483647, !0);
goog.labs = {};
goog.labs.userAgent = {};
var module$contents$goog$labs$userAgent_forceClientHintsInTests = !1;
goog.labs.userAgent.setUseClientHintsForTesting = function(use) {
module$contents$goog$labs$userAgent_forceClientHintsInTests = use;
};
goog.labs.userAgent.useClientHints = function() {
return goog.flags.USE_USER_AGENT_CLIENT_HINTS || module$contents$goog$labs$userAgent_forceClientHintsInTests;
};
goog.string = {};
goog.string.internal = {};
goog.string.internal.startsWith = function(str, prefix) {
return 0 == str.lastIndexOf(prefix, 0);
};
goog.string.internal.endsWith = function(str, suffix) {
var l = str.length - suffix.length;
return 0 <= l && str.indexOf(suffix, l) == l;
};
goog.string.internal.caseInsensitiveStartsWith = function(str, prefix) {
return 0 == goog.string.internal.caseInsensitiveCompare(prefix, str.slice(0, prefix.length));
};
goog.string.internal.caseInsensitiveEndsWith = function(str, suffix) {
return 0 == goog.string.internal.caseInsensitiveCompare(suffix, str.slice(str.length - suffix.length));
};
goog.string.internal.caseInsensitiveEquals = function(str1, str2) {
return str1.toLowerCase() == str2.toLowerCase();
};
goog.string.internal.isEmptyOrWhitespace = function(str) {
return /^[\s\xa0]*$/.test(str);
};
goog.string.internal.trim = goog.TRUSTED_SITE && String.prototype.trim ? function(str) {
return str.trim();
} : function(str) {
return /^[\s\xa0]*([\s\S]*?)[\s\xa0]*$/.exec(str)[1];
};
goog.string.internal.caseInsensitiveCompare = function(str1, str2) {
var test1 = String(str1).toLowerCase(), test2 = String(str2).toLowerCase();
return test1 < test2 ? -1 : test1 == test2 ? 0 : 1;
};
goog.string.internal.newLineToBr = function(str, opt_xml) {
return str.replace(/(\r\n|\r|\n)/g, opt_xml ? "
" : "
");
};
goog.string.internal.htmlEscape = function(str, opt_isLikelyToContainHtmlChars) {
if (opt_isLikelyToContainHtmlChars) {
str = str.replace(goog.string.internal.AMP_RE_, "&").replace(goog.string.internal.LT_RE_, "<").replace(goog.string.internal.GT_RE_, ">").replace(goog.string.internal.QUOT_RE_, """).replace(goog.string.internal.SINGLE_QUOTE_RE_, "'").replace(goog.string.internal.NULL_RE_, "");
} else {
if (!goog.string.internal.ALL_RE_.test(str)) {
return str;
}
-1 != str.indexOf("&") && (str = str.replace(goog.string.internal.AMP_RE_, "&"));
-1 != str.indexOf("<") && (str = str.replace(goog.string.internal.LT_RE_, "<"));
-1 != str.indexOf(">") && (str = str.replace(goog.string.internal.GT_RE_, ">"));
-1 != str.indexOf('"') && (str = str.replace(goog.string.internal.QUOT_RE_, """));
-1 != str.indexOf("'") && (str = str.replace(goog.string.internal.SINGLE_QUOTE_RE_, "'"));
-1 != str.indexOf("\x00") && (str = str.replace(goog.string.internal.NULL_RE_, ""));
}
return str;
};
goog.string.internal.AMP_RE_ = /&/g;
goog.string.internal.LT_RE_ = //g;
goog.string.internal.QUOT_RE_ = /"/g;
goog.string.internal.SINGLE_QUOTE_RE_ = /'/g;
goog.string.internal.NULL_RE_ = /\x00/g;
goog.string.internal.ALL_RE_ = /[\x00&<>"']/;
goog.string.internal.whitespaceEscape = function(str, opt_xml) {
return goog.string.internal.newLineToBr(str.replace(/ /g, " "), opt_xml);
};
goog.string.internal.contains = function(str, subString) {
return -1 != str.indexOf(subString);
};
goog.string.internal.caseInsensitiveContains = function(str, subString) {
return goog.string.internal.contains(str.toLowerCase(), subString.toLowerCase());
};
goog.string.internal.compareVersions = function(version1, version2) {
for (var order = 0, v1Subs = goog.string.internal.trim(String(version1)).split("."), v2Subs = goog.string.internal.trim(String(version2)).split("."), subCount = Math.max(v1Subs.length, v2Subs.length), subIdx = 0; 0 == order && subIdx < subCount; subIdx++) {
var v1Sub = v1Subs[subIdx] || "", v2Sub = v2Subs[subIdx] || "";
do {
var v1Comp = /(\d*)(\D*)(.*)/.exec(v1Sub) || ["", "", "", ""], v2Comp = /(\d*)(\D*)(.*)/.exec(v2Sub) || ["", "", "", ""];
if (0 == v1Comp[0].length && 0 == v2Comp[0].length) {
break;
}
order = goog.string.internal.compareElements_(0 == v1Comp[1].length ? 0 : parseInt(v1Comp[1], 10), 0 == v2Comp[1].length ? 0 : parseInt(v2Comp[1], 10)) || goog.string.internal.compareElements_(0 == v1Comp[2].length, 0 == v2Comp[2].length) || goog.string.internal.compareElements_(v1Comp[2], v2Comp[2]);
v1Sub = v1Comp[3];
v2Sub = v2Comp[3];
} while (0 == order);
}
return order;
};
goog.string.internal.compareElements_ = function(left, right) {
return left < right ? -1 : left > right ? 1 : 0;
};
goog.labs.userAgent.util = {};
function module$contents$goog$labs$userAgent$util_getNativeUserAgentString() {
var navigator = module$contents$goog$labs$userAgent$util_getNavigator();
if (navigator) {
var userAgent = navigator.userAgent;
if (userAgent) {
return userAgent;
}
}
return "";
}
function module$contents$goog$labs$userAgent$util_getNativeUserAgentData() {
var navigator = module$contents$goog$labs$userAgent$util_getNavigator();
return navigator ? navigator.userAgentData || null : null;
}
function module$contents$goog$labs$userAgent$util_getNavigator() {
return goog.global.navigator;
}
var module$contents$goog$labs$userAgent$util_userAgentInternal = null, module$contents$goog$labs$userAgent$util_userAgentDataInternal = module$contents$goog$labs$userAgent$util_getNativeUserAgentData();
function module$contents$goog$labs$userAgent$util_getUserAgent() {
return null == module$contents$goog$labs$userAgent$util_userAgentInternal ? module$contents$goog$labs$userAgent$util_getNativeUserAgentString() : module$contents$goog$labs$userAgent$util_userAgentInternal;
}
function module$contents$goog$labs$userAgent$util_getUserAgentData() {
return module$contents$goog$labs$userAgent$util_userAgentDataInternal;
}
function module$contents$goog$labs$userAgent$util_matchUserAgentDataBrand(str) {
if (!(0,goog.labs.userAgent.useClientHints)()) {
return !1;
}
var data = module$contents$goog$labs$userAgent$util_getUserAgentData();
return data ? data.brands.some(function($jscomp$destructuring$var0) {
var brand = $jscomp$destructuring$var0.brand;
return brand && (0,goog.string.internal.contains)(brand, str);
}) : !1;
}
function module$contents$goog$labs$userAgent$util_matchUserAgent(str) {
return (0,goog.string.internal.contains)(module$contents$goog$labs$userAgent$util_getUserAgent(), str);
}
function module$contents$goog$labs$userAgent$util_matchUserAgentIgnoreCase(str) {
return (0,goog.string.internal.caseInsensitiveContains)(module$contents$goog$labs$userAgent$util_getUserAgent(), str);
}
function module$contents$goog$labs$userAgent$util_extractVersionTuples(userAgent) {
for (var versionRegExp = RegExp("([A-Z][\\w ]+)/([^\\s]+)\\s*(?:\\((.*?)\\))?", "g"), data = [], match; match = versionRegExp.exec(userAgent);) {
data.push([match[1], match[2], match[3] || void 0]);
}
return data;
}
goog.labs.userAgent.util.ASSUME_CLIENT_HINTS_SUPPORT = !1;
goog.labs.userAgent.util.extractVersionTuples = module$contents$goog$labs$userAgent$util_extractVersionTuples;
goog.labs.userAgent.util.getNativeUserAgentString = module$contents$goog$labs$userAgent$util_getNativeUserAgentString;
goog.labs.userAgent.util.getUserAgent = module$contents$goog$labs$userAgent$util_getUserAgent;
goog.labs.userAgent.util.getUserAgentData = module$contents$goog$labs$userAgent$util_getUserAgentData;
goog.labs.userAgent.util.matchUserAgent = module$contents$goog$labs$userAgent$util_matchUserAgent;
goog.labs.userAgent.util.matchUserAgentDataBrand = module$contents$goog$labs$userAgent$util_matchUserAgentDataBrand;
goog.labs.userAgent.util.matchUserAgentIgnoreCase = module$contents$goog$labs$userAgent$util_matchUserAgentIgnoreCase;
goog.labs.userAgent.util.resetUserAgentData = function module$contents$goog$labs$userAgent$util_resetUserAgentData() {
module$contents$goog$labs$userAgent$util_userAgentDataInternal = module$contents$goog$labs$userAgent$util_getNativeUserAgentData();
};
goog.labs.userAgent.util.setUserAgent = function module$contents$goog$labs$userAgent$util_setUserAgent(userAgent) {
module$contents$goog$labs$userAgent$util_userAgentInternal = "string" === typeof userAgent ? userAgent : module$contents$goog$labs$userAgent$util_getNativeUserAgentString();
};
goog.labs.userAgent.util.setUserAgentData = function module$contents$goog$labs$userAgent$util_setUserAgentData(userAgentData) {
module$contents$goog$labs$userAgent$util_userAgentDataInternal = userAgentData;
};
var module$exports$goog$labs$userAgent$highEntropy$highEntropyValue = {AsyncValue:function() {
}};
module$exports$goog$labs$userAgent$highEntropy$highEntropyValue.AsyncValue.prototype.getIfLoaded = function() {
};
module$exports$goog$labs$userAgent$highEntropy$highEntropyValue.AsyncValue.prototype.load = function() {
};
module$exports$goog$labs$userAgent$highEntropy$highEntropyValue.HighEntropyValue = function(key) {
this.key_ = key;
this.promise_ = this.value_ = void 0;
this.pending_ = !1;
};
module$exports$goog$labs$userAgent$highEntropy$highEntropyValue.HighEntropyValue.prototype.getIfLoaded = function() {
if (module$contents$goog$labs$userAgent$util_getUserAgentData()) {
return this.value_;
}
};
module$exports$goog$labs$userAgent$highEntropy$highEntropyValue.HighEntropyValue.prototype.load = function() {
var $jscomp$async$this = this, userAgentData;
return $jscomp.asyncExecutePromiseGeneratorProgram(function($jscomp$generator$context) {
if (1 == $jscomp$generator$context.nextAddress) {
userAgentData = module$contents$goog$labs$userAgent$util_getUserAgentData();
if (!userAgentData) {
return $jscomp$generator$context.return(void 0);
}
$jscomp$async$this.promise_ || ($jscomp$async$this.pending_ = !0, $jscomp$async$this.promise_ = function() {
var dataValues;
return $jscomp.asyncExecutePromiseGeneratorProgram(function($jscomp$generator$context$1) {
if (1 == $jscomp$generator$context$1.nextAddress) {
return $jscomp$generator$context$1.setFinallyBlock(2), $jscomp$generator$context$1.yield(userAgentData.getHighEntropyValues([$jscomp$async$this.key_]), 4);
}
if (2 != $jscomp$generator$context$1.nextAddress) {
return dataValues = $jscomp$generator$context$1.yieldResult, $jscomp$async$this.value_ = dataValues[$jscomp$async$this.key_], $jscomp$generator$context$1.return($jscomp$async$this.value_);
}
$jscomp$generator$context$1.enterFinallyBlock();
$jscomp$async$this.pending_ = !1;
return $jscomp$generator$context$1.leaveFinallyBlock(0);
});
}());
return $jscomp$generator$context.yield($jscomp$async$this.promise_, 2);
}
return $jscomp$generator$context.return($jscomp$generator$context.yieldResult);
});
};
module$exports$goog$labs$userAgent$highEntropy$highEntropyValue.HighEntropyValue.prototype.resetForTesting = function() {
if (this.pending_) {
throw Error("Unsafe call to resetForTesting");
}
this.value_ = this.promise_ = void 0;
this.pending_ = !1;
};
module$exports$goog$labs$userAgent$highEntropy$highEntropyValue.Version = function(versionString) {
this.versionString_ = versionString;
};
module$exports$goog$labs$userAgent$highEntropy$highEntropyValue.Version.prototype.toVersionStringForLogging = function() {
return this.versionString_;
};
module$exports$goog$labs$userAgent$highEntropy$highEntropyValue.Version.prototype.isAtLeast = function(version) {
return 0 <= (0,goog.string.internal.compareVersions)(this.versionString_, version);
};
var module$exports$goog$labs$userAgent$highEntropy$highEntropyData = {};
module$exports$goog$labs$userAgent$highEntropy$highEntropyData.fullVersionList = new module$exports$goog$labs$userAgent$highEntropy$highEntropyValue.HighEntropyValue("fullVersionList");
module$exports$goog$labs$userAgent$highEntropy$highEntropyData.platformVersion = new module$exports$goog$labs$userAgent$highEntropy$highEntropyValue.HighEntropyValue("platformVersion");
goog.labs.userAgent.browser = {};
var module$contents$goog$labs$userAgent$browser_Brand = {ANDROID_BROWSER:"Android Browser", CHROMIUM:"Chromium", EDGE:"Microsoft Edge", FIREFOX:"Firefox", IE:"Internet Explorer", OPERA:"Opera", SAFARI:"Safari", SILK:"Silk",};
goog.labs.userAgent.browser.Brand = module$contents$goog$labs$userAgent$browser_Brand;
function module$contents$goog$labs$userAgent$browser_useUserAgentDataBrand(ignoreClientHintsFlag) {
if (!(void 0 !== ignoreClientHintsFlag && ignoreClientHintsFlag || (0,goog.labs.userAgent.useClientHints)())) {
return !1;
}
var userAgentData = module$contents$goog$labs$userAgent$util_getUserAgentData();
return !!userAgentData && 0 < userAgentData.brands.length;
}
function module$contents$goog$labs$userAgent$browser_hasFullVersionList() {
return module$contents$goog$labs$userAgent$browser_isAtLeast(module$contents$goog$labs$userAgent$browser_Brand.CHROMIUM, 98);
}
function module$contents$goog$labs$userAgent$browser_matchOpera() {
return module$contents$goog$labs$userAgent$browser_useUserAgentDataBrand() ? !1 : module$contents$goog$labs$userAgent$util_matchUserAgent("Opera");
}
function module$contents$goog$labs$userAgent$browser_matchIE() {
return module$contents$goog$labs$userAgent$browser_useUserAgentDataBrand() ? !1 : module$contents$goog$labs$userAgent$util_matchUserAgent("Trident") || module$contents$goog$labs$userAgent$util_matchUserAgent("MSIE");
}
function module$contents$goog$labs$userAgent$browser_matchEdgeHtml() {
return module$contents$goog$labs$userAgent$browser_useUserAgentDataBrand() ? !1 : module$contents$goog$labs$userAgent$util_matchUserAgent("Edge");
}
function module$contents$goog$labs$userAgent$browser_matchEdgeChromium() {
return module$contents$goog$labs$userAgent$browser_useUserAgentDataBrand() ? module$contents$goog$labs$userAgent$util_matchUserAgentDataBrand(module$contents$goog$labs$userAgent$browser_Brand.EDGE) : module$contents$goog$labs$userAgent$util_matchUserAgent("Edg/");
}
function module$contents$goog$labs$userAgent$browser_matchOperaChromium() {
return module$contents$goog$labs$userAgent$browser_useUserAgentDataBrand() ? module$contents$goog$labs$userAgent$util_matchUserAgentDataBrand(module$contents$goog$labs$userAgent$browser_Brand.OPERA) : module$contents$goog$labs$userAgent$util_matchUserAgent("OPR");
}
function module$contents$goog$labs$userAgent$browser_matchFirefox() {
return module$contents$goog$labs$userAgent$util_matchUserAgent("Firefox") || module$contents$goog$labs$userAgent$util_matchUserAgent("FxiOS");
}
function module$contents$goog$labs$userAgent$browser_matchSafari() {
return module$contents$goog$labs$userAgent$util_matchUserAgent("Safari") && !(module$contents$goog$labs$userAgent$browser_matchChrome() || module$contents$goog$labs$userAgent$browser_matchCoast() || module$contents$goog$labs$userAgent$browser_matchOpera() || module$contents$goog$labs$userAgent$browser_matchEdgeHtml() || module$contents$goog$labs$userAgent$browser_matchEdgeChromium() || module$contents$goog$labs$userAgent$browser_matchOperaChromium() || module$contents$goog$labs$userAgent$browser_matchFirefox() ||
module$contents$goog$labs$userAgent$browser_isSilk() || module$contents$goog$labs$userAgent$util_matchUserAgent("Android"));
}
function module$contents$goog$labs$userAgent$browser_matchCoast() {
return module$contents$goog$labs$userAgent$browser_useUserAgentDataBrand() ? !1 : module$contents$goog$labs$userAgent$util_matchUserAgent("Coast");
}
function module$contents$goog$labs$userAgent$browser_matchChrome() {
return module$contents$goog$labs$userAgent$browser_useUserAgentDataBrand() ? module$contents$goog$labs$userAgent$util_matchUserAgentDataBrand(module$contents$goog$labs$userAgent$browser_Brand.CHROMIUM) : (module$contents$goog$labs$userAgent$util_matchUserAgent("Chrome") || module$contents$goog$labs$userAgent$util_matchUserAgent("CriOS")) && !module$contents$goog$labs$userAgent$browser_matchEdgeHtml() || module$contents$goog$labs$userAgent$browser_isSilk();
}
function module$contents$goog$labs$userAgent$browser_matchAndroidBrowser() {
return module$contents$goog$labs$userAgent$util_matchUserAgent("Android") && !(module$contents$goog$labs$userAgent$browser_matchChrome() || module$contents$goog$labs$userAgent$browser_matchFirefox() || module$contents$goog$labs$userAgent$browser_matchOpera() || module$contents$goog$labs$userAgent$browser_isSilk());
}
var module$contents$goog$labs$userAgent$browser_isOpera = module$contents$goog$labs$userAgent$browser_matchOpera;
goog.labs.userAgent.browser.isOpera = module$contents$goog$labs$userAgent$browser_matchOpera;
var module$contents$goog$labs$userAgent$browser_isIE = module$contents$goog$labs$userAgent$browser_matchIE;
goog.labs.userAgent.browser.isIE = module$contents$goog$labs$userAgent$browser_matchIE;
var module$contents$goog$labs$userAgent$browser_isEdge = module$contents$goog$labs$userAgent$browser_matchEdgeHtml;
goog.labs.userAgent.browser.isEdge = module$contents$goog$labs$userAgent$browser_matchEdgeHtml;
var module$contents$goog$labs$userAgent$browser_isEdgeChromium = module$contents$goog$labs$userAgent$browser_matchEdgeChromium;
goog.labs.userAgent.browser.isEdgeChromium = module$contents$goog$labs$userAgent$browser_matchEdgeChromium;
var module$contents$goog$labs$userAgent$browser_isOperaChromium = module$contents$goog$labs$userAgent$browser_matchOperaChromium;
goog.labs.userAgent.browser.isOperaChromium = module$contents$goog$labs$userAgent$browser_matchOperaChromium;
var module$contents$goog$labs$userAgent$browser_isFirefox = module$contents$goog$labs$userAgent$browser_matchFirefox;
goog.labs.userAgent.browser.isFirefox = module$contents$goog$labs$userAgent$browser_matchFirefox;
var module$contents$goog$labs$userAgent$browser_isSafari = module$contents$goog$labs$userAgent$browser_matchSafari;
goog.labs.userAgent.browser.isSafari = module$contents$goog$labs$userAgent$browser_matchSafari;
var module$contents$goog$labs$userAgent$browser_isCoast = module$contents$goog$labs$userAgent$browser_matchCoast;
goog.labs.userAgent.browser.isCoast = module$contents$goog$labs$userAgent$browser_matchCoast;
goog.labs.userAgent.browser.isIosWebview = function module$contents$goog$labs$userAgent$browser_matchIosWebview() {
return (module$contents$goog$labs$userAgent$util_matchUserAgent("iPad") || module$contents$goog$labs$userAgent$util_matchUserAgent("iPhone")) && !module$contents$goog$labs$userAgent$browser_matchSafari() && !module$contents$goog$labs$userAgent$browser_matchChrome() && !module$contents$goog$labs$userAgent$browser_matchCoast() && !module$contents$goog$labs$userAgent$browser_matchFirefox() && module$contents$goog$labs$userAgent$util_matchUserAgent("AppleWebKit");
};
var module$contents$goog$labs$userAgent$browser_isChrome = module$contents$goog$labs$userAgent$browser_matchChrome;
goog.labs.userAgent.browser.isChrome = module$contents$goog$labs$userAgent$browser_matchChrome;
var module$contents$goog$labs$userAgent$browser_isAndroidBrowser = module$contents$goog$labs$userAgent$browser_matchAndroidBrowser;
goog.labs.userAgent.browser.isAndroidBrowser = module$contents$goog$labs$userAgent$browser_matchAndroidBrowser;
function module$contents$goog$labs$userAgent$browser_isSilk() {
return module$contents$goog$labs$userAgent$util_matchUserAgent("Silk");
}
goog.labs.userAgent.browser.isSilk = module$contents$goog$labs$userAgent$browser_isSilk;
function module$contents$goog$labs$userAgent$browser_createVersionMap(versionTuples) {
var versionMap = {};
versionTuples.forEach(function(tuple) {
versionMap[tuple[0]] = tuple[1];
});
return function(keys) {
return versionMap[keys.find(function(key) {
return key in versionMap;
})] || "";
};
}
function module$contents$goog$labs$userAgent$browser_getVersion() {
var userAgentString = module$contents$goog$labs$userAgent$util_getUserAgent();
if (module$contents$goog$labs$userAgent$browser_matchIE()) {
return module$contents$goog$labs$userAgent$browser_getIEVersion(userAgentString);
}
var versionTuples = module$contents$goog$labs$userAgent$util_extractVersionTuples(userAgentString), lookUpValueWithKeys = module$contents$goog$labs$userAgent$browser_createVersionMap(versionTuples);
if (module$contents$goog$labs$userAgent$browser_matchOpera()) {
return lookUpValueWithKeys(["Version", "Opera"]);
}
if (module$contents$goog$labs$userAgent$browser_matchEdgeHtml()) {
return lookUpValueWithKeys(["Edge"]);
}
if (module$contents$goog$labs$userAgent$browser_matchEdgeChromium()) {
return lookUpValueWithKeys(["Edg"]);
}
if (module$contents$goog$labs$userAgent$browser_isSilk()) {
return lookUpValueWithKeys(["Silk"]);
}
if (module$contents$goog$labs$userAgent$browser_matchChrome()) {
return lookUpValueWithKeys(["Chrome", "CriOS", "HeadlessChrome"]);
}
var tuple = versionTuples[2];
return tuple && tuple[1] || "";
}
goog.labs.userAgent.browser.getVersion = module$contents$goog$labs$userAgent$browser_getVersion;
goog.labs.userAgent.browser.isVersionOrHigher = function module$contents$goog$labs$userAgent$browser_isVersionOrHigher(version) {
return 0 <= (0,goog.string.internal.compareVersions)(module$contents$goog$labs$userAgent$browser_getVersion(), version);
};
function module$contents$goog$labs$userAgent$browser_getIEVersion(userAgent) {
var rv = /rv: *([\d\.]*)/.exec(userAgent);
if (rv && rv[1]) {
return rv[1];
}
var version = "", msie = /MSIE +([\d\.]+)/.exec(userAgent);
if (msie && msie[1]) {
var tridentVersion = /Trident\/(\d.\d)/.exec(userAgent);
if ("7.0" == msie[1]) {
if (tridentVersion && tridentVersion[1]) {
switch(tridentVersion[1]) {
case "4.0":
version = "8.0";
break;
case "5.0":
version = "9.0";
break;
case "6.0":
version = "10.0";
break;
case "7.0":
version = "11.0";
}
} else {
version = "7.0";
}
} else {
version = msie[1];
}
}
return version;
}
function module$contents$goog$labs$userAgent$browser_getFullVersionFromUserAgentString(browser) {
var userAgentString = module$contents$goog$labs$userAgent$util_getUserAgent();
if (browser === module$contents$goog$labs$userAgent$browser_Brand.IE) {
return module$contents$goog$labs$userAgent$browser_matchIE() ? module$contents$goog$labs$userAgent$browser_getIEVersion(userAgentString) : "";
}
var versionTuples = module$contents$goog$labs$userAgent$util_extractVersionTuples(userAgentString), lookUpValueWithKeys = module$contents$goog$labs$userAgent$browser_createVersionMap(versionTuples);
switch(browser) {
case module$contents$goog$labs$userAgent$browser_Brand.OPERA:
if (module$contents$goog$labs$userAgent$browser_matchOpera()) {
return lookUpValueWithKeys(["Version", "Opera"]);
}
if (module$contents$goog$labs$userAgent$browser_matchOperaChromium()) {
return lookUpValueWithKeys(["OPR"]);
}
break;
case module$contents$goog$labs$userAgent$browser_Brand.EDGE:
if (module$contents$goog$labs$userAgent$browser_matchEdgeHtml()) {
return lookUpValueWithKeys(["Edge"]);
}
if (module$contents$goog$labs$userAgent$browser_matchEdgeChromium()) {
return lookUpValueWithKeys(["Edg"]);
}
break;
case module$contents$goog$labs$userAgent$browser_Brand.CHROMIUM:
if (module$contents$goog$labs$userAgent$browser_matchChrome()) {
return lookUpValueWithKeys(["Chrome", "CriOS", "HeadlessChrome"]);
}
}
if (browser === module$contents$goog$labs$userAgent$browser_Brand.FIREFOX && module$contents$goog$labs$userAgent$browser_matchFirefox() || browser === module$contents$goog$labs$userAgent$browser_Brand.SAFARI && module$contents$goog$labs$userAgent$browser_matchSafari() || browser === module$contents$goog$labs$userAgent$browser_Brand.ANDROID_BROWSER && module$contents$goog$labs$userAgent$browser_matchAndroidBrowser() || browser === module$contents$goog$labs$userAgent$browser_Brand.SILK && module$contents$goog$labs$userAgent$browser_isSilk()) {
var tuple = versionTuples[2];
return tuple && tuple[1] || "";
}
return "";
}
function module$contents$goog$labs$userAgent$browser_versionOf_(browser) {
if (module$contents$goog$labs$userAgent$browser_useUserAgentDataBrand() && browser !== module$contents$goog$labs$userAgent$browser_Brand.SILK) {
var matchingBrand = module$contents$goog$labs$userAgent$util_getUserAgentData().brands.find(function($jscomp$destructuring$var2) {
return $jscomp$destructuring$var2.brand === browser;
});
if (!matchingBrand || !matchingBrand.version) {
return NaN;
}
var versionParts = matchingBrand.version.split(".");
} else {
var fullVersion = module$contents$goog$labs$userAgent$browser_getFullVersionFromUserAgentString(browser);
if ("" === fullVersion) {
return NaN;
}
versionParts = fullVersion.split(".");
}
return 0 === versionParts.length ? NaN : Number(versionParts[0]);
}
function module$contents$goog$labs$userAgent$browser_isAtLeast(brand, majorVersion) {
(0,goog.asserts.assert)(Math.floor(majorVersion) === majorVersion, "Major version must be an integer");
return module$contents$goog$labs$userAgent$browser_versionOf_(brand) >= majorVersion;
}
goog.labs.userAgent.browser.isAtLeast = module$contents$goog$labs$userAgent$browser_isAtLeast;
goog.labs.userAgent.browser.isAtMost = function module$contents$goog$labs$userAgent$browser_isAtMost(brand, majorVersion) {
(0,goog.asserts.assert)(Math.floor(majorVersion) === majorVersion, "Major version must be an integer");
return module$contents$goog$labs$userAgent$browser_versionOf_(brand) <= majorVersion;
};
var module$contents$goog$labs$userAgent$browser_HighEntropyBrandVersion = function(brand, useUach, fallbackVersion) {
this.brand_ = brand;
this.version_ = new module$exports$goog$labs$userAgent$highEntropy$highEntropyValue.Version(fallbackVersion);
this.useUach_ = useUach;
};
module$contents$goog$labs$userAgent$browser_HighEntropyBrandVersion.prototype.getIfLoaded = function() {
var $jscomp$this = this;
if (this.useUach_) {
var loadedVersionList = module$exports$goog$labs$userAgent$highEntropy$highEntropyData.fullVersionList.getIfLoaded();
if (void 0 !== loadedVersionList) {
var matchingBrand = loadedVersionList.find(function($jscomp$destructuring$var4) {
return $jscomp$this.brand_ === $jscomp$destructuring$var4.brand;
});
(0,goog.asserts.assertExists)(matchingBrand);
return new module$exports$goog$labs$userAgent$highEntropy$highEntropyValue.Version(matchingBrand.version);
}
}
if (module$contents$goog$labs$userAgent$browser_preUachHasLoaded) {
return this.version_;
}
};
module$contents$goog$labs$userAgent$browser_HighEntropyBrandVersion.prototype.load = function() {
var $jscomp$async$this = this, loadedVersionList, matchingBrand;
return $jscomp.asyncExecutePromiseGeneratorProgram(function($jscomp$generator$context) {
if (1 == $jscomp$generator$context.nextAddress) {
return $jscomp$async$this.useUach_ ? $jscomp$generator$context.yield(module$exports$goog$labs$userAgent$highEntropy$highEntropyData.fullVersionList.load(), 5) : $jscomp$generator$context.yield(0, 3);
}
if (3 != $jscomp$generator$context.nextAddress && (loadedVersionList = $jscomp$generator$context.yieldResult, void 0 !== loadedVersionList)) {
return matchingBrand = loadedVersionList.find(function($jscomp$destructuring$var6) {
return $jscomp$async$this.brand_ === $jscomp$destructuring$var6.brand;
}), (0,goog.asserts.assertExists)(matchingBrand), $jscomp$generator$context.return(new module$exports$goog$labs$userAgent$highEntropy$highEntropyValue.Version(matchingBrand.version));
}
module$contents$goog$labs$userAgent$browser_preUachHasLoaded = !0;
return $jscomp$generator$context.return($jscomp$async$this.version_);
});
};
var module$contents$goog$labs$userAgent$browser_preUachHasLoaded = !1;
goog.labs.userAgent.browser.loadFullVersions = function module$contents$goog$labs$userAgent$browser_loadFullVersions() {
return $jscomp.asyncExecutePromiseGeneratorProgram(function($jscomp$generator$context) {
if (1 == $jscomp$generator$context.nextAddress) {
return module$contents$goog$labs$userAgent$browser_useUserAgentDataBrand(!0) ? $jscomp$generator$context.yield(module$exports$goog$labs$userAgent$highEntropy$highEntropyData.fullVersionList.load(), 2) : $jscomp$generator$context.jumpTo(2);
}
module$contents$goog$labs$userAgent$browser_preUachHasLoaded = !0;
$jscomp$generator$context.jumpToEnd();
});
};
goog.labs.userAgent.browser.resetForTesting = function() {
module$contents$goog$labs$userAgent$browser_preUachHasLoaded = !1;
module$exports$goog$labs$userAgent$highEntropy$highEntropyData.fullVersionList.resetForTesting();
};
function module$contents$goog$labs$userAgent$browser_fullVersionOf(browser) {
var fallbackVersionString = "";
module$contents$goog$labs$userAgent$browser_hasFullVersionList() || (fallbackVersionString = module$contents$goog$labs$userAgent$browser_getFullVersionFromUserAgentString(browser));
var useUach = browser !== module$contents$goog$labs$userAgent$browser_Brand.SILK && module$contents$goog$labs$userAgent$browser_useUserAgentDataBrand(!0);
if (useUach) {
if (!module$contents$goog$labs$userAgent$util_getUserAgentData().brands.find(function($jscomp$destructuring$var8) {
return $jscomp$destructuring$var8.brand === browser;
})) {
return;
}
} else if ("" === fallbackVersionString) {
return;
}
return new module$contents$goog$labs$userAgent$browser_HighEntropyBrandVersion(browser, useUach, fallbackVersionString);
}
goog.labs.userAgent.browser.fullVersionOf = module$contents$goog$labs$userAgent$browser_fullVersionOf;
goog.labs.userAgent.browser.getVersionStringForLogging = function module$contents$goog$labs$userAgent$browser_getVersionStringForLogging(browser) {
if (module$contents$goog$labs$userAgent$browser_useUserAgentDataBrand(!0)) {
var fullVersionObj = module$contents$goog$labs$userAgent$browser_fullVersionOf(browser);
if (fullVersionObj) {
var fullVersion = fullVersionObj.getIfLoaded();
if (fullVersion) {
return fullVersion.toVersionStringForLogging();
}
var matchingBrand = module$contents$goog$labs$userAgent$util_getUserAgentData().brands.find(function($jscomp$destructuring$var10) {
return $jscomp$destructuring$var10.brand === browser;
});
(0,goog.asserts.assertExists)(matchingBrand);
return matchingBrand.version;
}
return "";
}
return module$contents$goog$labs$userAgent$browser_getFullVersionFromUserAgentString(browser);
};
goog.labs.userAgent.engine = {};
function module$contents$goog$labs$userAgent$engine_isPresto() {
return module$contents$goog$labs$userAgent$util_matchUserAgent("Presto");
}
function module$contents$goog$labs$userAgent$engine_isTrident() {
return module$contents$goog$labs$userAgent$util_matchUserAgent("Trident") || module$contents$goog$labs$userAgent$util_matchUserAgent("MSIE");
}
function module$contents$goog$labs$userAgent$engine_isEdge() {
return module$contents$goog$labs$userAgent$util_matchUserAgent("Edge");
}
function module$contents$goog$labs$userAgent$engine_isWebKit() {
return module$contents$goog$labs$userAgent$util_matchUserAgentIgnoreCase("WebKit") && !module$contents$goog$labs$userAgent$engine_isEdge();
}
function module$contents$goog$labs$userAgent$engine_isGecko() {
return module$contents$goog$labs$userAgent$util_matchUserAgent("Gecko") && !module$contents$goog$labs$userAgent$engine_isWebKit() && !module$contents$goog$labs$userAgent$engine_isTrident() && !module$contents$goog$labs$userAgent$engine_isEdge();
}
function module$contents$goog$labs$userAgent$engine_getVersion() {
var userAgentString = module$contents$goog$labs$userAgent$util_getUserAgent();
if (userAgentString) {
var tuples = module$contents$goog$labs$userAgent$util_extractVersionTuples(userAgentString), engineTuple = module$contents$goog$labs$userAgent$engine_getEngineTuple(tuples);
if (engineTuple) {
return "Gecko" == engineTuple[0] ? module$contents$goog$labs$userAgent$engine_getVersionForKey(tuples, "Firefox") : engineTuple[1];
}
var browserTuple = tuples[0], info;
if (browserTuple && (info = browserTuple[2])) {
var match = /Trident\/([^\s;]+)/.exec(info);
if (match) {
return match[1];
}
}
}
return "";
}
function module$contents$goog$labs$userAgent$engine_getEngineTuple(tuples) {
if (!module$contents$goog$labs$userAgent$engine_isEdge()) {
return tuples[1];
}
for (var i = 0; i < tuples.length; i++) {
var tuple = tuples[i];
if ("Edge" == tuple[0]) {
return tuple;
}
}
}
function module$contents$goog$labs$userAgent$engine_getVersionForKey(tuples, key) {
var pair = module$contents$goog$array_find(tuples, function(pair) {
return key == pair[0];
});
return pair && pair[1] || "";
}
goog.labs.userAgent.engine.getVersion = module$contents$goog$labs$userAgent$engine_getVersion;
goog.labs.userAgent.engine.isEdge = module$contents$goog$labs$userAgent$engine_isEdge;
goog.labs.userAgent.engine.isGecko = module$contents$goog$labs$userAgent$engine_isGecko;
goog.labs.userAgent.engine.isPresto = module$contents$goog$labs$userAgent$engine_isPresto;
goog.labs.userAgent.engine.isTrident = module$contents$goog$labs$userAgent$engine_isTrident;
goog.labs.userAgent.engine.isVersionOrHigher = function module$contents$goog$labs$userAgent$engine_isVersionOrHigher(version) {
return 0 <= goog.string.internal.compareVersions(module$contents$goog$labs$userAgent$engine_getVersion(), version);
};
goog.labs.userAgent.engine.isWebKit = module$contents$goog$labs$userAgent$engine_isWebKit;
goog.labs.userAgent.platform = {};
function module$contents$goog$labs$userAgent$platform_useUserAgentDataPlatform(ignoreClientHintsFlag) {
if (!(void 0 !== ignoreClientHintsFlag && ignoreClientHintsFlag || (0,goog.labs.userAgent.useClientHints)())) {
return !1;
}
var userAgentData = module$contents$goog$labs$userAgent$util_getUserAgentData();
return !!userAgentData && !!userAgentData.platform;
}
function module$contents$goog$labs$userAgent$platform_isAndroid() {
return module$contents$goog$labs$userAgent$platform_useUserAgentDataPlatform() ? "Android" === module$contents$goog$labs$userAgent$util_getUserAgentData().platform : module$contents$goog$labs$userAgent$util_matchUserAgent("Android");
}
function module$contents$goog$labs$userAgent$platform_isIpod() {
return module$contents$goog$labs$userAgent$util_matchUserAgent("iPod");
}
function module$contents$goog$labs$userAgent$platform_isIphone() {
return module$contents$goog$labs$userAgent$util_matchUserAgent("iPhone") && !module$contents$goog$labs$userAgent$util_matchUserAgent("iPod") && !module$contents$goog$labs$userAgent$util_matchUserAgent("iPad");
}
function module$contents$goog$labs$userAgent$platform_isIpad() {
return module$contents$goog$labs$userAgent$util_matchUserAgent("iPad");
}
function module$contents$goog$labs$userAgent$platform_isIos() {
return module$contents$goog$labs$userAgent$platform_isIphone() || module$contents$goog$labs$userAgent$platform_isIpad() || module$contents$goog$labs$userAgent$platform_isIpod();
}
function module$contents$goog$labs$userAgent$platform_isMacintosh() {
return module$contents$goog$labs$userAgent$platform_useUserAgentDataPlatform() ? "macOS" === module$contents$goog$labs$userAgent$util_getUserAgentData().platform : module$contents$goog$labs$userAgent$util_matchUserAgent("Macintosh");
}
function module$contents$goog$labs$userAgent$platform_isLinux() {
return module$contents$goog$labs$userAgent$platform_useUserAgentDataPlatform() ? "Linux" === module$contents$goog$labs$userAgent$util_getUserAgentData().platform : module$contents$goog$labs$userAgent$util_matchUserAgent("Linux");
}
function module$contents$goog$labs$userAgent$platform_isWindows() {
return module$contents$goog$labs$userAgent$platform_useUserAgentDataPlatform() ? "Windows" === module$contents$goog$labs$userAgent$util_getUserAgentData().platform : module$contents$goog$labs$userAgent$util_matchUserAgent("Windows");
}
function module$contents$goog$labs$userAgent$platform_isChromeOS() {
return module$contents$goog$labs$userAgent$platform_useUserAgentDataPlatform() ? "Chrome OS" === module$contents$goog$labs$userAgent$util_getUserAgentData().platform : module$contents$goog$labs$userAgent$util_matchUserAgent("CrOS");
}
function module$contents$goog$labs$userAgent$platform_isKaiOS() {
return module$contents$goog$labs$userAgent$util_matchUserAgentIgnoreCase("KaiOS");
}
function module$contents$goog$labs$userAgent$platform_getVersion() {
var userAgentString = module$contents$goog$labs$userAgent$util_getUserAgent(), version = "";
if (module$contents$goog$labs$userAgent$platform_isWindows()) {
var re = /Windows (?:NT|Phone) ([0-9.]+)/;
var match = re.exec(userAgentString);
version = match ? match[1] : "0.0";
} else if (module$contents$goog$labs$userAgent$platform_isIos()) {
re = /(?:iPhone|iPod|iPad|CPU)\s+OS\s+(\S+)/;
var match$40 = re.exec(userAgentString);
version = match$40 && match$40[1].replace(/_/g, ".");
} else if (module$contents$goog$labs$userAgent$platform_isMacintosh()) {
re = /Mac OS X ([0-9_.]+)/;
var match$41 = re.exec(userAgentString);
version = match$41 ? match$41[1].replace(/_/g, ".") : "10";
} else if (module$contents$goog$labs$userAgent$platform_isKaiOS()) {
re = /(?:KaiOS)\/(\S+)/i;
var match$42 = re.exec(userAgentString);
version = match$42 && match$42[1];
} else if (module$contents$goog$labs$userAgent$platform_isAndroid()) {
re = /Android\s+([^\);]+)(\)|;)/;
var match$43 = re.exec(userAgentString);
version = match$43 && match$43[1];
} else if (module$contents$goog$labs$userAgent$platform_isChromeOS()) {
re = /(?:CrOS\s+(?:i686|x86_64)\s+([0-9.]+))/;
var match$44 = re.exec(userAgentString);
version = match$44 && match$44[1];
}
return version || "";
}
var module$contents$goog$labs$userAgent$platform_PlatformVersion = function() {
this.preUachHasLoaded_ = !1;
};
module$contents$goog$labs$userAgent$platform_PlatformVersion.prototype.getIfLoaded = function() {
if (module$contents$goog$labs$userAgent$platform_useUserAgentDataPlatform(!0)) {
var loadedPlatformVersion = module$exports$goog$labs$userAgent$highEntropy$highEntropyData.platformVersion.getIfLoaded();
return void 0 === loadedPlatformVersion ? void 0 : new module$exports$goog$labs$userAgent$highEntropy$highEntropyValue.Version(loadedPlatformVersion);
}
if (this.preUachHasLoaded_) {
return new module$exports$goog$labs$userAgent$highEntropy$highEntropyValue.Version(module$contents$goog$labs$userAgent$platform_getVersion());
}
};
module$contents$goog$labs$userAgent$platform_PlatformVersion.prototype.load = function() {
var $jscomp$async$this = this, JSCompiler_temp_const;
return $jscomp.asyncExecutePromiseGeneratorProgram(function($jscomp$generator$context) {
if (1 == $jscomp$generator$context.nextAddress) {
if (!module$contents$goog$labs$userAgent$platform_useUserAgentDataPlatform(!0)) {
$jscomp$async$this.preUachHasLoaded_ = !0;
return $jscomp$generator$context.return(new module$exports$goog$labs$userAgent$highEntropy$highEntropyValue.Version(module$contents$goog$labs$userAgent$platform_getVersion()));
return $jscomp$generator$context.jumpTo(0);
}
JSCompiler_temp_const = module$exports$goog$labs$userAgent$highEntropy$highEntropyValue.Version;
return $jscomp$generator$context.yield(module$exports$goog$labs$userAgent$highEntropy$highEntropyData.platformVersion.load(), 3);
}
return $jscomp$generator$context.return(new JSCompiler_temp_const($jscomp$generator$context.yieldResult));
});
};
module$contents$goog$labs$userAgent$platform_PlatformVersion.prototype.resetForTesting = function() {
module$exports$goog$labs$userAgent$highEntropy$highEntropyData.platformVersion.resetForTesting();
this.preUachHasLoaded_ = !1;
};
var module$contents$goog$labs$userAgent$platform_version = new module$contents$goog$labs$userAgent$platform_PlatformVersion();
goog.labs.userAgent.platform.getVersion = module$contents$goog$labs$userAgent$platform_getVersion;
goog.labs.userAgent.platform.isAndroid = module$contents$goog$labs$userAgent$platform_isAndroid;
goog.labs.userAgent.platform.isChromeOS = module$contents$goog$labs$userAgent$platform_isChromeOS;
goog.labs.userAgent.platform.isChromecast = function module$contents$goog$labs$userAgent$platform_isChromecast() {
return module$contents$goog$labs$userAgent$util_matchUserAgent("CrKey");
};
goog.labs.userAgent.platform.isIos = module$contents$goog$labs$userAgent$platform_isIos;
goog.labs.userAgent.platform.isIpad = module$contents$goog$labs$userAgent$platform_isIpad;
goog.labs.userAgent.platform.isIphone = module$contents$goog$labs$userAgent$platform_isIphone;
goog.labs.userAgent.platform.isIpod = module$contents$goog$labs$userAgent$platform_isIpod;
goog.labs.userAgent.platform.isKaiOS = module$contents$goog$labs$userAgent$platform_isKaiOS;
goog.labs.userAgent.platform.isLinux = module$contents$goog$labs$userAgent$platform_isLinux;
goog.labs.userAgent.platform.isMacintosh = module$contents$goog$labs$userAgent$platform_isMacintosh;
goog.labs.userAgent.platform.isVersionOrHigher = function module$contents$goog$labs$userAgent$platform_isVersionOrHigher(version) {
return 0 <= goog.string.internal.compareVersions(module$contents$goog$labs$userAgent$platform_getVersion(), version);
};
goog.labs.userAgent.platform.isWindows = module$contents$goog$labs$userAgent$platform_isWindows;
goog.labs.userAgent.platform.version = module$contents$goog$labs$userAgent$platform_version;
goog.reflect = {};
goog.reflect.object = function(type, object) {
return object;
};
goog.reflect.objectProperty = function(prop, object) {
return prop;
};
goog.reflect.sinkValue = function(x) {
goog.reflect.sinkValue[" "](x);
return x;
};
goog.reflect.sinkValue[" "] = function() {
};
goog.reflect.canAccessProperty = function(obj, prop) {
try {
return goog.reflect.sinkValue(obj[prop]), !0;
} catch (e) {
}
return !1;
};
goog.reflect.cache = function(cacheObj, key, valueFn, opt_keyFn) {
var storedKey = opt_keyFn ? opt_keyFn(key) : key;
return Object.prototype.hasOwnProperty.call(cacheObj, storedKey) ? cacheObj[storedKey] : cacheObj[storedKey] = valueFn(key);
};
goog.userAgent = {};
goog.userAgent.ASSUME_IE = !1;
goog.userAgent.ASSUME_EDGE = !1;
goog.userAgent.ASSUME_GECKO = !1;
goog.userAgent.ASSUME_WEBKIT = !1;
goog.userAgent.ASSUME_MOBILE_WEBKIT = !1;
goog.userAgent.ASSUME_OPERA = !1;
goog.userAgent.ASSUME_ANY_VERSION = !1;
goog.userAgent.BROWSER_KNOWN_ = goog.userAgent.ASSUME_IE || goog.userAgent.ASSUME_EDGE || goog.userAgent.ASSUME_GECKO || goog.userAgent.ASSUME_MOBILE_WEBKIT || goog.userAgent.ASSUME_WEBKIT || goog.userAgent.ASSUME_OPERA;
goog.userAgent.getUserAgentString = function() {
return module$contents$goog$labs$userAgent$util_getUserAgent();
};
goog.userAgent.getNavigatorTyped = function() {
return goog.global.navigator || null;
};
goog.userAgent.getNavigator = function() {
return goog.userAgent.getNavigatorTyped();
};
goog.userAgent.OPERA = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_OPERA : module$contents$goog$labs$userAgent$browser_matchOpera();
goog.userAgent.IE = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_IE : module$contents$goog$labs$userAgent$browser_matchIE();
goog.userAgent.EDGE = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_EDGE : module$contents$goog$labs$userAgent$engine_isEdge();
goog.userAgent.EDGE_OR_IE = goog.userAgent.EDGE || goog.userAgent.IE;
goog.userAgent.GECKO = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_GECKO : module$contents$goog$labs$userAgent$engine_isGecko();
goog.userAgent.WEBKIT = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_WEBKIT || goog.userAgent.ASSUME_MOBILE_WEBKIT : module$contents$goog$labs$userAgent$engine_isWebKit();
goog.userAgent.isMobile_ = function() {
return goog.userAgent.WEBKIT && module$contents$goog$labs$userAgent$util_matchUserAgent("Mobile");
};
goog.userAgent.MOBILE = goog.userAgent.ASSUME_MOBILE_WEBKIT || goog.userAgent.isMobile_();
goog.userAgent.SAFARI = goog.userAgent.WEBKIT;
goog.userAgent.determinePlatform_ = function() {
var navigator = goog.userAgent.getNavigatorTyped();
return navigator && navigator.platform || "";
};
goog.userAgent.PLATFORM = goog.userAgent.determinePlatform_();
goog.userAgent.ASSUME_MAC = !1;
goog.userAgent.ASSUME_WINDOWS = !1;
goog.userAgent.ASSUME_LINUX = !1;
goog.userAgent.ASSUME_X11 = !1;
goog.userAgent.ASSUME_ANDROID = !1;
goog.userAgent.ASSUME_IPHONE = !1;
goog.userAgent.ASSUME_IPAD = !1;
goog.userAgent.ASSUME_IPOD = !1;
goog.userAgent.ASSUME_KAIOS = !1;
goog.userAgent.PLATFORM_KNOWN_ = goog.userAgent.ASSUME_MAC || goog.userAgent.ASSUME_WINDOWS || goog.userAgent.ASSUME_LINUX || goog.userAgent.ASSUME_X11 || goog.userAgent.ASSUME_ANDROID || goog.userAgent.ASSUME_IPHONE || goog.userAgent.ASSUME_IPAD || goog.userAgent.ASSUME_IPOD;
goog.userAgent.MAC = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_MAC : module$contents$goog$labs$userAgent$platform_isMacintosh();
goog.userAgent.WINDOWS = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_WINDOWS : module$contents$goog$labs$userAgent$platform_isWindows();
goog.userAgent.isLegacyLinux_ = function() {
return module$contents$goog$labs$userAgent$platform_isLinux() || module$contents$goog$labs$userAgent$platform_isChromeOS();
};
goog.userAgent.LINUX = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_LINUX : goog.userAgent.isLegacyLinux_();
goog.userAgent.isX11_ = function() {
var navigator = goog.userAgent.getNavigatorTyped();
return !!navigator && goog.string.internal.contains(navigator.appVersion || "", "X11");
};
goog.userAgent.X11 = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_X11 : goog.userAgent.isX11_();
goog.userAgent.ANDROID = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_ANDROID : module$contents$goog$labs$userAgent$platform_isAndroid();
goog.userAgent.IPHONE = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_IPHONE : module$contents$goog$labs$userAgent$platform_isIphone();
goog.userAgent.IPAD = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_IPAD : module$contents$goog$labs$userAgent$platform_isIpad();
goog.userAgent.IPOD = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_IPOD : module$contents$goog$labs$userAgent$platform_isIpod();
goog.userAgent.IOS = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_IPHONE || goog.userAgent.ASSUME_IPAD || goog.userAgent.ASSUME_IPOD : module$contents$goog$labs$userAgent$platform_isIos();
goog.userAgent.KAIOS = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_KAIOS : module$contents$goog$labs$userAgent$platform_isKaiOS();
goog.userAgent.determineVersion_ = function() {
var version = "", arr = goog.userAgent.getVersionRegexResult_();
arr && (version = arr ? arr[1] : "");
if (goog.userAgent.IE) {
var docMode = goog.userAgent.getDocumentMode_();
if (null != docMode && docMode > parseFloat(version)) {
return String(docMode);
}
}
return version;
};
goog.userAgent.getVersionRegexResult_ = function() {
var userAgent = goog.userAgent.getUserAgentString();
if (goog.userAgent.GECKO) {
return /rv:([^\);]+)(\)|;)/.exec(userAgent);
}
if (goog.userAgent.EDGE) {
return /Edge\/([\d\.]+)/.exec(userAgent);
}
if (goog.userAgent.IE) {
return /\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(userAgent);
}
if (goog.userAgent.WEBKIT) {
return /WebKit\/(\S+)/.exec(userAgent);
}
if (goog.userAgent.OPERA) {
return /(?:Version)[ \/]?(\S+)/.exec(userAgent);
}
};
goog.userAgent.getDocumentMode_ = function() {
var doc = goog.global.document;
return doc ? doc.documentMode : void 0;
};
goog.userAgent.VERSION = goog.userAgent.determineVersion_();
goog.userAgent.compare = function(v1, v2) {
return goog.string.internal.compareVersions(v1, v2);
};
goog.userAgent.isVersionOrHigherCache_ = {};
goog.userAgent.isVersionOrHigher = function(version) {
return goog.userAgent.ASSUME_ANY_VERSION || goog.reflect.cache(goog.userAgent.isVersionOrHigherCache_, version, function() {
return 0 <= goog.string.internal.compareVersions(goog.userAgent.VERSION, version);
});
};
goog.userAgent.isDocumentModeOrHigher = function(documentMode) {
return Number(goog.userAgent.DOCUMENT_MODE) >= documentMode;
};
goog.userAgent.isDocumentMode = goog.userAgent.isDocumentModeOrHigher;
goog.userAgent.DOCUMENT_MODE = function() {
if (goog.global.document && goog.userAgent.IE) {
var documentMode = goog.userAgent.getDocumentMode_();
return documentMode ? documentMode : parseInt(goog.userAgent.VERSION, 10) || void 0;
}
}();
goog.events.eventTypeHelpers = {};
goog.events.eventTypeHelpers.getVendorPrefixedName = function(eventName) {
return goog.userAgent.WEBKIT ? "webkit" + eventName : eventName.toLowerCase();
};
goog.events.eventTypeHelpers.getPointerFallbackEventName = function(pointerEventName, msPointerEventName, fallbackEventName) {
return goog.events.BrowserFeature.POINTER_EVENTS ? pointerEventName : goog.events.BrowserFeature.MSPOINTER_EVENTS ? msPointerEventName : fallbackEventName;
};
goog.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", PROGRESS:"progress", 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:goog.events.eventTypeHelpers.getVendorPrefixedName("AnimationStart"), ANIMATIONEND:goog.events.eventTypeHelpers.getVendorPrefixedName("AnimationEnd"), ANIMATIONITERATION:goog.events.eventTypeHelpers.getVendorPrefixedName("AnimationIteration"),
TRANSITIONEND:goog.events.eventTypeHelpers.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:goog.userAgent.IE ? "textinput" : "textInput",
COMPOSITIONSTART:"compositionstart", COMPOSITIONUPDATE:"compositionupdate", COMPOSITIONEND:"compositionend", BEFOREINPUT:"beforeinput", FULLSCREENCHANGE:"fullscreenchange", WEBKITBEGINFULLSCREEN:"webkitbeginfullscreen", WEBKITENDFULLSCREEN:"webkitendfullscreen", 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", CANCEL:"cancel", FINISH:"finish", REMOVE:"remove"};
goog.events.BrowserEvent = function(opt_e, opt_currentTarget) {
goog.events.Event.call(this, opt_e ? opt_e.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.platformModifierKey = !1;
this.pointerId = 0;
this.pointerType = "";
this.event_ = null;
opt_e && this.init(opt_e, opt_currentTarget);
};
goog.inherits(goog.events.BrowserEvent, goog.events.Event);
goog.events.BrowserEvent.USE_LAYER_XY_AS_OFFSET_XY = !1;
goog.events.BrowserEvent.MouseButton = {LEFT:0, MIDDLE:1, RIGHT:2, BACK:3, FORWARD:4,};
goog.events.BrowserEvent.PointerType = {MOUSE:"mouse", PEN:"pen", TOUCH:"touch"};
goog.events.BrowserEvent.IEButtonMap = goog.debug.freeze([1, 4, 2]);
goog.events.BrowserEvent.IE_BUTTON_MAP = goog.events.BrowserEvent.IEButtonMap;
goog.events.BrowserEvent.IE_POINTER_TYPE_MAP = goog.debug.freeze({2:goog.events.BrowserEvent.PointerType.TOUCH, 3:goog.events.BrowserEvent.PointerType.PEN, 4:goog.events.BrowserEvent.PointerType.MOUSE});
goog.events.BrowserEvent.prototype.init = function(e, opt_currentTarget) {
var type = this.type = e.type, relevantTouch = e.changedTouches && e.changedTouches.length ? e.changedTouches[0] : null;
this.target = e.target || e.srcElement;
this.currentTarget = opt_currentTarget;
var relatedTarget = e.relatedTarget;
relatedTarget ? goog.userAgent.GECKO && (goog.reflect.canAccessProperty(relatedTarget, "nodeName") || (relatedTarget = null)) : type == goog.events.EventType.MOUSEOVER ? relatedTarget = e.fromElement : type == goog.events.EventType.MOUSEOUT && (relatedTarget = e.toElement);
this.relatedTarget = relatedTarget;
relevantTouch ? (this.clientX = void 0 !== relevantTouch.clientX ? relevantTouch.clientX : relevantTouch.pageX, this.clientY = void 0 !== relevantTouch.clientY ? relevantTouch.clientY : relevantTouch.pageY, this.screenX = relevantTouch.screenX || 0, this.screenY = relevantTouch.screenY || 0) : (goog.events.BrowserEvent.USE_LAYER_XY_AS_OFFSET_XY ? (this.offsetX = void 0 !== e.layerX ? e.layerX : e.offsetX, this.offsetY = void 0 !== e.layerY ? e.layerY : e.offsetY) : (this.offsetX = goog.userAgent.WEBKIT ||
void 0 !== e.offsetX ? e.offsetX : e.layerX, this.offsetY = goog.userAgent.WEBKIT || void 0 !== e.offsetY ? e.offsetY : e.layerY), 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);
this.button = e.button;
this.keyCode = e.keyCode || 0;
this.key = e.key || "";
this.charCode = e.charCode || ("keypress" == type ? e.keyCode : 0);
this.ctrlKey = e.ctrlKey;
this.altKey = e.altKey;
this.shiftKey = e.shiftKey;
this.metaKey = e.metaKey;
this.platformModifierKey = goog.userAgent.MAC ? e.metaKey : e.ctrlKey;
this.pointerId = e.pointerId || 0;
this.pointerType = goog.events.BrowserEvent.getPointerType_(e);
this.state = e.state;
this.event_ = e;
e.defaultPrevented && goog.events.BrowserEvent.superClass_.preventDefault.call(this);
};
goog.events.BrowserEvent.prototype.isButton = function(button) {
return this.event_.button == button;
};
goog.events.BrowserEvent.prototype.isMouseActionButton = function() {
return this.isButton(goog.events.BrowserEvent.MouseButton.LEFT) && !(goog.userAgent.MAC && this.ctrlKey);
};
goog.events.BrowserEvent.prototype.stopPropagation = function() {
goog.events.BrowserEvent.superClass_.stopPropagation.call(this);
this.event_.stopPropagation ? this.event_.stopPropagation() : this.event_.cancelBubble = !0;
};
goog.events.BrowserEvent.prototype.preventDefault = function() {
goog.events.BrowserEvent.superClass_.preventDefault.call(this);
var be = this.event_;
be.preventDefault ? be.preventDefault() : be.returnValue = !1;
};
goog.events.BrowserEvent.prototype.getBrowserEvent = function() {
return this.event_;
};
goog.events.BrowserEvent.getPointerType_ = function(e) {
return "string" === typeof e.pointerType ? e.pointerType : goog.events.BrowserEvent.IE_POINTER_TYPE_MAP[e.pointerType] || "";
};
goog.events.Listenable = function() {
};
goog.events.Listenable.IMPLEMENTED_BY_PROP = "closure_listenable_" + (1E6 * Math.random() | 0);
goog.events.Listenable.addImplementation = function(cls) {
cls.prototype[goog.events.Listenable.IMPLEMENTED_BY_PROP] = !0;
};
goog.events.Listenable.isImplementedBy = function(obj) {
return !(!obj || !obj[goog.events.Listenable.IMPLEMENTED_BY_PROP]);
};
goog.events.Listenable.prototype.listen = function(type, listener, opt_useCapture, opt_listenerScope) {
};
goog.events.Listenable.prototype.listenOnce = function(type, listener, opt_useCapture, opt_listenerScope) {
};
goog.events.Listenable.prototype.unlisten = function(type, listener, opt_useCapture, opt_listenerScope) {
};
goog.events.Listenable.prototype.unlistenByKey = function(key) {
};
goog.events.Listenable.prototype.dispatchEvent = function(e) {
};
goog.events.Listenable.prototype.removeAllListeners = function(opt_type) {
};
goog.events.Listenable.prototype.getParentEventTarget = function() {
};
goog.events.Listenable.prototype.fireListeners = function(type, capture, eventObject) {
};
goog.events.Listenable.prototype.getListeners = function(type, capture) {
};
goog.events.Listenable.prototype.getListener = function(type, listener, capture, opt_listenerScope) {
};
goog.events.Listenable.prototype.hasListener = function(opt_type, opt_capture) {
};
goog.events.ListenableKey = function() {
};
goog.events.ListenableKey.counter_ = 0;
goog.events.ListenableKey.reserveKey = function() {
return ++goog.events.ListenableKey.counter_;
};
goog.events.Listener = function(listener, proxy, src, type, capture, opt_handler) {
goog.events.Listener.ENABLE_MONITORING && (this.creationStack = Error().stack);
this.listener = listener;
this.proxy = proxy;
this.src = src;
this.type = type;
this.capture = !!capture;
this.handler = opt_handler;
this.key = goog.events.ListenableKey.reserveKey();
this.removed = this.callOnce = !1;
};
goog.events.Listener.ENABLE_MONITORING = !1;
goog.events.Listener.prototype.markAsRemoved = function() {
this.removed = !0;
this.handler = this.src = this.proxy = this.listener = null;
};
goog.object = {};
function module$contents$goog$object_forEach(obj, f, opt_obj) {
for (var key in obj) {
f.call(opt_obj, obj[key], key, obj);
}
}
function module$contents$goog$object_filter(obj, f, opt_obj) {
var res = {}, key;
for (key in obj) {
f.call(opt_obj, obj[key], key, obj) && (res[key] = obj[key]);
}
return res;
}
function module$contents$goog$object_map(obj, f, opt_obj) {
var res = {}, key;
for (key in obj) {
res[key] = f.call(opt_obj, obj[key], key, obj);
}
return res;
}
function module$contents$goog$object_some(obj, f, opt_obj) {
for (var key in obj) {
if (f.call(opt_obj, obj[key], key, obj)) {
return !0;
}
}
return !1;
}
function module$contents$goog$object_getCount(obj) {
var rv = 0, key;
for (key in obj) {
rv++;
}
return rv;
}
function module$contents$goog$object_contains(obj, val) {
return module$contents$goog$object_containsValue(obj, val);
}
function module$contents$goog$object_getValues(obj) {
var res = [], i = 0, key;
for (key in obj) {
res[i++] = obj[key];
}
return res;
}
function module$contents$goog$object_getKeys(obj) {
var res = [], i = 0, key;
for (key in obj) {
res[i++] = key;
}
return res;
}
function module$contents$goog$object_containsKey(obj, key) {
return null !== obj && key in obj;
}
function module$contents$goog$object_containsValue(obj, val) {
for (var key in obj) {
if (obj[key] == val) {
return !0;
}
}
return !1;
}
function module$contents$goog$object_findKey(obj, f, thisObj) {
for (var key in obj) {
if (f.call(thisObj, obj[key], key, obj)) {
return key;
}
}
}
function module$contents$goog$object_isEmpty(obj) {
for (var key in obj) {
return !1;
}
return !0;
}
function module$contents$goog$object_clear(obj) {
for (var i in obj) {
delete obj[i];
}
}
function module$contents$goog$object_remove(obj, key) {
var rv;
(rv = key in obj) && delete obj[key];
return rv;
}
function module$contents$goog$object_set(obj, key, value) {
obj[key] = value;
}
function module$contents$goog$object_clone(obj) {
var res = {}, key;
for (key in obj) {
res[key] = obj[key];
}
return res;
}
function module$contents$goog$object_unsafeClone(obj) {
if (!obj || "object" !== typeof obj) {
return obj;
}
if ("function" === typeof obj.clone) {
return obj.clone();
}
if ("undefined" !== typeof Map && obj instanceof Map) {
return new Map(obj);
}
if ("undefined" !== typeof Set && obj instanceof Set) {
return new Set(obj);
}
if (obj instanceof Date) {
return new Date(obj.getTime());
}
var clone = Array.isArray(obj) ? [] : "function" !== typeof ArrayBuffer || "function" !== typeof ArrayBuffer.isView || !ArrayBuffer.isView(obj) || obj instanceof DataView ? {} : new obj.constructor(obj.length), key;
for (key in obj) {
clone[key] = module$contents$goog$object_unsafeClone(obj[key]);
}
return clone;
}
var module$contents$goog$object_PROTOTYPE_FIELDS = "constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");
function module$contents$goog$object_extend(target, var_args) {
for (var key, source, i = 1; i < arguments.length; i++) {
source = arguments[i];
for (key in source) {
target[key] = source[key];
}
for (var j = 0; j < module$contents$goog$object_PROTOTYPE_FIELDS.length; j++) {
key = module$contents$goog$object_PROTOTYPE_FIELDS[j], Object.prototype.hasOwnProperty.call(source, key) && (target[key] = source[key]);
}
}
}
function module$contents$goog$object_create(var_args) {
var argLength = arguments.length;
if (1 == argLength && Array.isArray(arguments[0])) {
return module$contents$goog$object_create.apply(null, arguments[0]);
}
if (argLength % 2) {
throw Error("Uneven number of arguments");
}
for (var rv = {}, i = 0; i < argLength; i += 2) {
rv[arguments[i]] = arguments[i + 1];
}
return rv;
}
function module$contents$goog$object_createSet(var_args) {
var argLength = arguments.length;
if (1 == argLength && Array.isArray(arguments[0])) {
return module$contents$goog$object_createSet.apply(null, arguments[0]);
}
for (var rv = {}, i = 0; i < argLength; i++) {
rv[arguments[i]] = !0;
}
return rv;
}
goog.object.add = function module$contents$goog$object_add(obj, key, val) {
if (null !== obj && key in obj) {
throw Error('The object already contains the key "' + key + '"');
}
module$contents$goog$object_set(obj, key, val);
};
goog.object.clear = module$contents$goog$object_clear;
goog.object.clone = module$contents$goog$object_clone;
goog.object.contains = module$contents$goog$object_contains;
goog.object.containsKey = module$contents$goog$object_containsKey;
goog.object.containsValue = module$contents$goog$object_containsValue;
goog.object.create = module$contents$goog$object_create;
goog.object.createImmutableView = function module$contents$goog$object_createImmutableView(obj) {
var result = obj;
Object.isFrozen && !Object.isFrozen(obj) && (result = Object.create(obj), Object.freeze(result));
return result;
};
goog.object.createSet = module$contents$goog$object_createSet;
goog.object.equals = function module$contents$goog$object_equals(a, b) {
for (var k in a) {
if (!(k in b) || a[k] !== b[k]) {
return !1;
}
}
for (var k$45 in b) {
if (!(k$45 in a)) {
return !1;
}
}
return !0;
};
goog.object.every = function module$contents$goog$object_every(obj, f, opt_obj) {
for (var key in obj) {
if (!f.call(opt_obj, obj[key], key, obj)) {
return !1;
}
}
return !0;
};
goog.object.extend = module$contents$goog$object_extend;
goog.object.filter = module$contents$goog$object_filter;
goog.object.findKey = module$contents$goog$object_findKey;
goog.object.findValue = function module$contents$goog$object_findValue(obj, f, thisObj) {
var key = module$contents$goog$object_findKey(obj, f, thisObj);
return key && obj[key];
};
goog.object.forEach = module$contents$goog$object_forEach;
goog.object.get = function module$contents$goog$object_get(obj, key, val) {
return null !== obj && key in obj ? obj[key] : val;
};
goog.object.getAllPropertyNames = function module$contents$goog$object_getAllPropertyNames(obj, includeObjectPrototype, includeFunctionPrototype) {
if (!obj) {
return [];
}
if (!Object.getOwnPropertyNames || !Object.getPrototypeOf) {
return module$contents$goog$object_getKeys(obj);
}
for (var visitedSet = {}, proto = obj; proto && (proto !== Object.prototype || includeObjectPrototype) && (proto !== Function.prototype || includeFunctionPrototype);) {
for (var names = Object.getOwnPropertyNames(proto), i = 0; i < names.length; i++) {
visitedSet[names[i]] = !0;
}
proto = Object.getPrototypeOf(proto);
}
return module$contents$goog$object_getKeys(visitedSet);
};
goog.object.getAnyKey = function module$contents$goog$object_getAnyKey(obj) {
for (var key in obj) {
return key;
}
};
goog.object.getAnyValue = function module$contents$goog$object_getAnyValue(obj) {
for (var key in obj) {
return obj[key];
}
};
goog.object.getCount = module$contents$goog$object_getCount;
goog.object.getKeys = module$contents$goog$object_getKeys;
goog.object.getSuperClass = function module$contents$goog$object_getSuperClass(constructor) {
var proto = Object.getPrototypeOf(constructor.prototype);
return proto && proto.constructor;
};
goog.object.getValueByKeys = function module$contents$goog$object_getValueByKeys(obj, var_args) {
for (var isArrayLike = goog.isArrayLike(var_args), keys = isArrayLike ? var_args : arguments, i = isArrayLike ? 0 : 1; i < keys.length; i++) {
if (null == obj) {
return;
}
obj = obj[keys[i]];
}
return obj;
};
goog.object.getValues = module$contents$goog$object_getValues;
goog.object.isEmpty = module$contents$goog$object_isEmpty;
goog.object.isImmutableView = function module$contents$goog$object_isImmutableView(obj) {
return !!Object.isFrozen && Object.isFrozen(obj);
};
goog.object.map = module$contents$goog$object_map;
goog.object.remove = module$contents$goog$object_remove;
goog.object.set = module$contents$goog$object_set;
goog.object.setIfUndefined = function module$contents$goog$object_setIfUndefined(obj, key, value) {
return key in obj ? obj[key] : obj[key] = value;
};
goog.object.setWithReturnValueIfNotSet = function module$contents$goog$object_setWithReturnValueIfNotSet(obj, key, f) {
if (key in obj) {
return obj[key];
}
var val = f();
return obj[key] = val;
};
goog.object.some = module$contents$goog$object_some;
goog.object.transpose = function module$contents$goog$object_transpose(obj) {
var transposed = {}, key;
for (key in obj) {
transposed[obj[key]] = key;
}
return transposed;
};
goog.object.unsafeClone = module$contents$goog$object_unsafeClone;
goog.events.ListenerMap = function(src) {
this.src = src;
this.listeners = {};
this.typeCount_ = 0;
};
goog.events.ListenerMap.prototype.getTypeCount = function() {
return this.typeCount_;
};
goog.events.ListenerMap.prototype.getListenerCount = function() {
var count = 0, type;
for (type in this.listeners) {
count += this.listeners[type].length;
}
return count;
};
goog.events.ListenerMap.prototype.add = function(type, listener, callOnce, opt_useCapture, opt_listenerScope) {
var typeStr = type.toString(), listenerArray = this.listeners[typeStr];
listenerArray || (listenerArray = this.listeners[typeStr] = [], this.typeCount_++);
var index = goog.events.ListenerMap.findListenerIndex_(listenerArray, listener, opt_useCapture, opt_listenerScope);
if (-1 < index) {
var listenerObj = listenerArray[index];
callOnce || (listenerObj.callOnce = !1);
} else {
listenerObj = new goog.events.Listener(listener, null, this.src, typeStr, !!opt_useCapture, opt_listenerScope), listenerObj.callOnce = callOnce, listenerArray.push(listenerObj);
}
return listenerObj;
};
goog.events.ListenerMap.prototype.remove = function(type, listener, opt_useCapture, opt_listenerScope) {
var typeStr = type.toString();
if (!(typeStr in this.listeners)) {
return !1;
}
var listenerArray = this.listeners[typeStr], index = goog.events.ListenerMap.findListenerIndex_(listenerArray, listener, opt_useCapture, opt_listenerScope);
return -1 < index ? (listenerArray[index].markAsRemoved(), module$contents$goog$array_removeAt(listenerArray, index), 0 == listenerArray.length && (delete this.listeners[typeStr], this.typeCount_--), !0) : !1;
};
goog.events.ListenerMap.prototype.removeByKey = function(listener) {
var type = listener.type;
if (!(type in this.listeners)) {
return !1;
}
var removed = module$contents$goog$array_remove(this.listeners[type], listener);
removed && (listener.markAsRemoved(), 0 == this.listeners[type].length && (delete this.listeners[type], this.typeCount_--));
return removed;
};
goog.events.ListenerMap.prototype.removeAll = function(opt_type) {
var typeStr = opt_type && opt_type.toString(), count = 0, type;
for (type in this.listeners) {
if (!typeStr || type == typeStr) {
for (var listenerArray = this.listeners[type], i = 0; i < listenerArray.length; i++) {
++count, listenerArray[i].markAsRemoved();
}
delete this.listeners[type];
this.typeCount_--;
}
}
return count;
};
goog.events.ListenerMap.prototype.getListeners = function(type, capture) {
var listenerArray = this.listeners[type.toString()], rv = [];
if (listenerArray) {
for (var i = 0; i < listenerArray.length; ++i) {
var listenerObj = listenerArray[i];
listenerObj.capture == capture && rv.push(listenerObj);
}
}
return rv;
};
goog.events.ListenerMap.prototype.getListener = function(type, listener, capture, opt_listenerScope) {
var listenerArray = this.listeners[type.toString()], i = -1;
listenerArray && (i = goog.events.ListenerMap.findListenerIndex_(listenerArray, listener, capture, opt_listenerScope));
return -1 < i ? listenerArray[i] : null;
};
goog.events.ListenerMap.prototype.hasListener = function(opt_type, opt_capture) {
var hasType = void 0 !== opt_type, typeStr = hasType ? opt_type.toString() : "", hasCapture = void 0 !== opt_capture;
return module$contents$goog$object_some(this.listeners, function(listenerArray, type) {
for (var i = 0; i < listenerArray.length; ++i) {
if (!(hasType && listenerArray[i].type != typeStr || hasCapture && listenerArray[i].capture != opt_capture)) {
return !0;
}
}
return !1;
});
};
goog.events.ListenerMap.findListenerIndex_ = function(listenerArray, listener, opt_useCapture, opt_listenerScope) {
for (var i = 0; i < listenerArray.length; ++i) {
var listenerObj = listenerArray[i];
if (!listenerObj.removed && listenerObj.listener == listener && listenerObj.capture == !!opt_useCapture && listenerObj.handler == opt_listenerScope) {
return i;
}
}
return -1;
};
goog.events.Key = {};
goog.events.ListenableType = {};
goog.events.LISTENER_MAP_PROP_ = "closure_lm_" + (1E6 * Math.random() | 0);
goog.events.onString_ = "on";
goog.events.onStringMap_ = {};
goog.events.CaptureSimulationMode = {OFF_AND_FAIL:0, OFF_AND_SILENT:1, ON:2};
goog.events.CAPTURE_SIMULATION_MODE = 2;
goog.events.listenerCountEstimate_ = 0;
goog.events.listen = function(src, type, listener, opt_options, opt_handler) {
if (opt_options && opt_options.once) {
return goog.events.listenOnce(src, type, listener, opt_options, opt_handler);
}
if (Array.isArray(type)) {
for (var i = 0; i < type.length; i++) {
goog.events.listen(src, type[i], listener, opt_options, opt_handler);
}
return null;
}
listener = goog.events.wrapListener(listener);
return goog.events.Listenable.isImplementedBy(src) ? src.listen(type, listener, goog.isObject(opt_options) ? !!opt_options.capture : !!opt_options, opt_handler) : goog.events.listen_(src, type, listener, !1, opt_options, opt_handler);
};
goog.events.listen_ = function(src, type, listener, callOnce, opt_options, opt_handler) {
if (!type) {
throw Error("Invalid event type");
}
var capture = goog.isObject(opt_options) ? !!opt_options.capture : !!opt_options, listenerMap = goog.events.getListenerMap_(src);
listenerMap || (src[goog.events.LISTENER_MAP_PROP_] = listenerMap = new goog.events.ListenerMap(src));
var listenerObj = listenerMap.add(type, listener, callOnce, capture, opt_handler);
if (listenerObj.proxy) {
return listenerObj;
}
var proxy = goog.events.getProxy();
listenerObj.proxy = proxy;
proxy.src = src;
proxy.listener = listenerObj;
if (src.addEventListener) {
goog.events.BrowserFeature.PASSIVE_EVENTS || (opt_options = capture), void 0 === opt_options && (opt_options = !1), src.addEventListener(type.toString(), proxy, opt_options);
} else if (src.attachEvent) {
src.attachEvent(goog.events.getOnString_(type.toString()), proxy);
} else if (src.addListener && src.removeListener) {
goog.asserts.assert("change" === type, "MediaQueryList only has a change event"), src.addListener(proxy);
} else {
throw Error("addEventListener and attachEvent are unavailable.");
}
goog.events.listenerCountEstimate_++;
return listenerObj;
};
goog.events.getProxy = function() {
var proxyCallbackFunction = goog.events.handleBrowserEvent_, f = function(eventObject) {
return proxyCallbackFunction.call(f.src, f.listener, eventObject);
};
return f;
};
goog.events.listenOnce = function(src, type, listener, opt_options, opt_handler) {
if (Array.isArray(type)) {
for (var i = 0; i < type.length; i++) {
goog.events.listenOnce(src, type[i], listener, opt_options, opt_handler);
}
return null;
}
listener = goog.events.wrapListener(listener);
return goog.events.Listenable.isImplementedBy(src) ? src.listenOnce(type, listener, goog.isObject(opt_options) ? !!opt_options.capture : !!opt_options, opt_handler) : goog.events.listen_(src, type, listener, !0, opt_options, opt_handler);
};
goog.events.listenWithWrapper = function(src, wrapper, listener, opt_capt, opt_handler) {
wrapper.listen(src, listener, opt_capt, opt_handler);
};
goog.events.unlisten = function(src, type, listener, opt_options, opt_handler) {
if (Array.isArray(type)) {
for (var i = 0; i < type.length; i++) {
goog.events.unlisten(src, type[i], listener, opt_options, opt_handler);
}
return null;
}
var capture = goog.isObject(opt_options) ? !!opt_options.capture : !!opt_options;
listener = goog.events.wrapListener(listener);
if (goog.events.Listenable.isImplementedBy(src)) {
return src.unlisten(type, listener, capture, opt_handler);
}
if (!src) {
return !1;
}
var listenerMap = goog.events.getListenerMap_(src);
if (listenerMap) {
var listenerObj = listenerMap.getListener(type, listener, capture, opt_handler);
if (listenerObj) {
return goog.events.unlistenByKey(listenerObj);
}
}
return !1;
};
goog.events.unlistenByKey = function(key) {
if ("number" === typeof key || !key || key.removed) {
return !1;
}
var src = key.src;
if (goog.events.Listenable.isImplementedBy(src)) {
return src.unlistenByKey(key);
}
var type = key.type, proxy = key.proxy;
src.removeEventListener ? src.removeEventListener(type, proxy, key.capture) : src.detachEvent ? src.detachEvent(goog.events.getOnString_(type), proxy) : src.addListener && src.removeListener && src.removeListener(proxy);
goog.events.listenerCountEstimate_--;
var listenerMap = goog.events.getListenerMap_(src);
listenerMap ? (listenerMap.removeByKey(key), 0 == listenerMap.getTypeCount() && (listenerMap.src = null, src[goog.events.LISTENER_MAP_PROP_] = null)) : key.markAsRemoved();
return !0;
};
goog.events.unlistenWithWrapper = function(src, wrapper, listener, opt_capt, opt_handler) {
wrapper.unlisten(src, listener, opt_capt, opt_handler);
};
goog.events.removeAll = function(obj, opt_type) {
if (!obj) {
return 0;
}
if (goog.events.Listenable.isImplementedBy(obj)) {
return obj.removeAllListeners(opt_type);
}
var listenerMap = goog.events.getListenerMap_(obj);
if (!listenerMap) {
return 0;
}
var count = 0, typeStr = opt_type && opt_type.toString(), type;
for (type in listenerMap.listeners) {
if (!typeStr || type == typeStr) {
for (var listeners = listenerMap.listeners[type].concat(), i = 0; i < listeners.length; ++i) {
goog.events.unlistenByKey(listeners[i]) && ++count;
}
}
}
return count;
};
goog.events.getListeners = function(obj, type, capture) {
if (goog.events.Listenable.isImplementedBy(obj)) {
return obj.getListeners(type, capture);
}
if (!obj) {
return [];
}
var listenerMap = goog.events.getListenerMap_(obj);
return listenerMap ? listenerMap.getListeners(type, capture) : [];
};
goog.events.getListener = function(src, type, listener, opt_capt, opt_handler) {
listener = goog.events.wrapListener(listener);
var capture = !!opt_capt;
if (goog.events.Listenable.isImplementedBy(src)) {
return src.getListener(type, listener, capture, opt_handler);
}
if (!src) {
return null;
}
var listenerMap = goog.events.getListenerMap_(src);
return listenerMap ? listenerMap.getListener(type, listener, capture, opt_handler) : null;
};
goog.events.hasListener = function(obj, opt_type, opt_capture) {
if (goog.events.Listenable.isImplementedBy(obj)) {
return obj.hasListener(opt_type, opt_capture);
}
var listenerMap = goog.events.getListenerMap_(obj);
return !!listenerMap && listenerMap.hasListener(opt_type, opt_capture);
};
goog.events.expose = function(e) {
var str = [], key;
for (key in e) {
e[key] && e[key].id ? str.push(key + " = " + e[key] + " (" + e[key].id + ")") : str.push(key + " = " + e[key]);
}
return str.join("\n");
};
goog.events.getOnString_ = function(type) {
return type in goog.events.onStringMap_ ? goog.events.onStringMap_[type] : goog.events.onStringMap_[type] = goog.events.onString_ + type;
};
goog.events.fireListeners = function(obj, type, capture, eventObject) {
return goog.events.Listenable.isImplementedBy(obj) ? obj.fireListeners(type, capture, eventObject) : goog.events.fireListeners_(obj, type, capture, eventObject);
};
goog.events.fireListeners_ = function(obj, type, capture, eventObject) {
var retval = !0, listenerMap = goog.events.getListenerMap_(obj);
if (listenerMap) {
var listenerArray = listenerMap.listeners[type.toString()];
if (listenerArray) {
listenerArray = listenerArray.concat();
for (var i = 0; i < listenerArray.length; i++) {
var listener = listenerArray[i];
if (listener && listener.capture == capture && !listener.removed) {
var result = goog.events.fireListener(listener, eventObject);
retval = retval && !1 !== result;
}
}
}
}
return retval;
};
goog.events.fireListener = function(listener, eventObject) {
var listenerFn = listener.listener, listenerHandler = listener.handler || listener.src;
listener.callOnce && goog.events.unlistenByKey(listener);
return listenerFn.call(listenerHandler, eventObject);
};
goog.events.getTotalListenerCount = function() {
return goog.events.listenerCountEstimate_;
};
goog.events.dispatchEvent = function(src, e) {
goog.asserts.assert(goog.events.Listenable.isImplementedBy(src), "Can not use goog.events.dispatchEvent with non-goog.events.Listenable instance.");
return src.dispatchEvent(e);
};
goog.events.protectBrowserEventEntryPoint = function(errorHandler) {
goog.events.handleBrowserEvent_ = errorHandler.protectEntryPoint(goog.events.handleBrowserEvent_);
};
goog.events.handleBrowserEvent_ = function(listener, opt_evt) {
return listener.removed ? !0 : goog.events.fireListener(listener, new goog.events.BrowserEvent(opt_evt, this));
};
goog.events.markIeEvent_ = function(e) {
var useReturnValue = !1;
if (0 == e.keyCode) {
try {
e.keyCode = -1;
return;
} catch (ex) {
useReturnValue = !0;
}
}
if (useReturnValue || void 0 == e.returnValue) {
e.returnValue = !0;
}
};
goog.events.isMarkedIeEvent_ = function(e) {
return 0 > e.keyCode || void 0 != e.returnValue;
};
goog.events.uniqueIdCounter_ = 0;
goog.events.getUniqueId = function(identifier) {
return identifier + "_" + goog.events.uniqueIdCounter_++;
};
goog.events.getListenerMap_ = function(src) {
var listenerMap = src[goog.events.LISTENER_MAP_PROP_];
return listenerMap instanceof goog.events.ListenerMap ? listenerMap : null;
};
goog.events.LISTENER_WRAPPER_PROP_ = "__closure_events_fn_" + (1E9 * Math.random() >>> 0);
goog.events.wrapListener = function(listener) {
goog.asserts.assert(listener, "Listener can not be null.");
if ("function" === typeof listener) {
return listener;
}
goog.asserts.assert(listener.handleEvent, "An object listener must have handleEvent method.");
listener[goog.events.LISTENER_WRAPPER_PROP_] || (listener[goog.events.LISTENER_WRAPPER_PROP_] = function(e) {
return listener.handleEvent(e);
});
return listener[goog.events.LISTENER_WRAPPER_PROP_];
};
goog.debug.entryPointRegistry.register(function(transformer) {
goog.events.handleBrowserEvent_ = transformer(goog.events.handleBrowserEvent_);
});
goog.events.EventTarget = function() {
goog.Disposable.call(this);
this.eventTargetListeners_ = new goog.events.ListenerMap(this);
this.actualEventTarget_ = this;
this.parentEventTarget_ = null;
};
goog.inherits(goog.events.EventTarget, goog.Disposable);
goog.events.Listenable.addImplementation(goog.events.EventTarget);
goog.events.EventTarget.MAX_ANCESTORS_ = 1E3;
goog.events.EventTarget.prototype.getParentEventTarget = function() {
return this.parentEventTarget_;
};
goog.events.EventTarget.prototype.setParentEventTarget = function(parent) {
this.parentEventTarget_ = parent;
};
goog.events.EventTarget.prototype.addEventListener = function(type, handler, opt_capture, opt_handlerScope) {
goog.events.listen(this, type, handler, opt_capture, opt_handlerScope);
};
goog.events.EventTarget.prototype.removeEventListener = function(type, handler, opt_capture, opt_handlerScope) {
goog.events.unlisten(this, type, handler, opt_capture, opt_handlerScope);
};
goog.events.EventTarget.prototype.dispatchEvent = function(e) {
this.assertInitialized_();
var ancestor = this.getParentEventTarget();
if (ancestor) {
var ancestorsTree = [];
for (var ancestorCount = 1; ancestor; ancestor = ancestor.getParentEventTarget()) {
ancestorsTree.push(ancestor), goog.asserts.assert(++ancestorCount < goog.events.EventTarget.MAX_ANCESTORS_, "infinite loop");
}
}
return goog.events.EventTarget.dispatchEventInternal_(this.actualEventTarget_, e, ancestorsTree);
};
goog.events.EventTarget.prototype.disposeInternal = function() {
goog.events.EventTarget.superClass_.disposeInternal.call(this);
this.removeAllListeners();
this.parentEventTarget_ = null;
};
goog.events.EventTarget.prototype.listen = function(type, listener, opt_useCapture, opt_listenerScope) {
this.assertInitialized_();
return this.eventTargetListeners_.add(String(type), listener, !1, opt_useCapture, opt_listenerScope);
};
goog.events.EventTarget.prototype.listenOnce = function(type, listener, opt_useCapture, opt_listenerScope) {
return this.eventTargetListeners_.add(String(type), listener, !0, opt_useCapture, opt_listenerScope);
};
goog.events.EventTarget.prototype.unlisten = function(type, listener, opt_useCapture, opt_listenerScope) {
return this.eventTargetListeners_.remove(String(type), listener, opt_useCapture, opt_listenerScope);
};
goog.events.EventTarget.prototype.unlistenByKey = function(key) {
return this.eventTargetListeners_.removeByKey(key);
};
goog.events.EventTarget.prototype.removeAllListeners = function(opt_type) {
return this.eventTargetListeners_ ? this.eventTargetListeners_.removeAll(opt_type) : 0;
};
goog.events.EventTarget.prototype.fireListeners = function(type, capture, eventObject) {
var listenerArray = this.eventTargetListeners_.listeners[String(type)];
if (!listenerArray) {
return !0;
}
listenerArray = listenerArray.concat();
for (var rv = !0, i = 0; i < listenerArray.length; ++i) {
var listener = listenerArray[i];
if (listener && !listener.removed && listener.capture == capture) {
var listenerFn = listener.listener, listenerHandler = listener.handler || listener.src;
listener.callOnce && this.unlistenByKey(listener);
rv = !1 !== listenerFn.call(listenerHandler, eventObject) && rv;
}
}
return rv && !eventObject.defaultPrevented;
};
goog.events.EventTarget.prototype.getListeners = function(type, capture) {
return this.eventTargetListeners_.getListeners(String(type), capture);
};
goog.events.EventTarget.prototype.getListener = function(type, listener, capture, opt_listenerScope) {
return this.eventTargetListeners_.getListener(String(type), listener, capture, opt_listenerScope);
};
goog.events.EventTarget.prototype.hasListener = function(opt_type, opt_capture) {
return this.eventTargetListeners_.hasListener(void 0 !== opt_type ? String(opt_type) : void 0, opt_capture);
};
goog.events.EventTarget.prototype.setTargetForTesting = function(target) {
this.actualEventTarget_ = target;
};
goog.events.EventTarget.prototype.assertInitialized_ = function() {
goog.asserts.assert(this.eventTargetListeners_, "Event target is not initialized. Did you call the superclass (goog.events.EventTarget) constructor?");
};
goog.events.EventTarget.dispatchEventInternal_ = function(target, e, opt_ancestorsTree) {
var type = e.type || e;
if ("string" === typeof e) {
e = new goog.events.Event(e, target);
} else if (e instanceof goog.events.Event) {
e.target = e.target || target;
} else {
var oldEvent = e;
e = new goog.events.Event(type, target);
module$contents$goog$object_extend(e, oldEvent);
}
var rv = !0;
if (opt_ancestorsTree) {
for (var i = opt_ancestorsTree.length - 1; !e.hasPropagationStopped() && 0 <= i; i--) {
var currentTarget = e.currentTarget = opt_ancestorsTree[i];
rv = currentTarget.fireListeners(type, !0, e) && rv;
}
}
e.hasPropagationStopped() || (currentTarget = e.currentTarget = target, rv = currentTarget.fireListeners(type, !0, e) && rv, e.hasPropagationStopped() || (rv = currentTarget.fireListeners(type, !1, e) && rv));
if (opt_ancestorsTree) {
for (i = 0; !e.hasPropagationStopped() && i < opt_ancestorsTree.length; i++) {
currentTarget = e.currentTarget = opt_ancestorsTree[i], rv = currentTarget.fireListeners(type, !1, e) && rv;
}
}
return rv;
};
goog.structs = {};
goog.structs.Collection = function() {
};
goog.collections = {};
goog.collections.iters = {};
function module$contents$goog$collections$iters_getIterator(iterable) {
return iterable[goog.global.Symbol.iterator]();
}
goog.collections.iters.getIterator = module$contents$goog$collections$iters_getIterator;
function module$contents$goog$collections$iters_forEach(iterator, f) {
for (var result; !(result = iterator.next()).done;) {
f(result.value);
}
}
goog.collections.iters.forEach = module$contents$goog$collections$iters_forEach;
var module$contents$goog$collections$iters_MapIterator = function(childIter, mapFn) {
this.childIterator_ = module$contents$goog$collections$iters_getIterator(childIter);
this.mapFn_ = mapFn;
};
module$contents$goog$collections$iters_MapIterator.prototype[Symbol.iterator] = function() {
return this;
};
module$contents$goog$collections$iters_MapIterator.prototype.next = function() {
var childResult = this.childIterator_.next();
return {value:childResult.done ? void 0 : this.mapFn_.call(void 0, childResult.value), done:childResult.done,};
};
goog.collections.iters.map = function(iterable, f) {
return new module$contents$goog$collections$iters_MapIterator(iterable, f);
};
var module$contents$goog$collections$iters_FilterIterator = function(childIter, filterFn) {
this.childIter_ = module$contents$goog$collections$iters_getIterator(childIter);
this.filterFn_ = filterFn;
};
module$contents$goog$collections$iters_FilterIterator.prototype[Symbol.iterator] = function() {
return this;
};
module$contents$goog$collections$iters_FilterIterator.prototype.next = function() {
for (;;) {
var childResult = this.childIter_.next();
if (childResult.done) {
return {done:!0, value:void 0};
}
if (this.filterFn_.call(void 0, childResult.value)) {
return childResult;
}
}
};
goog.collections.iters.filter = function(iterable, f) {
return new module$contents$goog$collections$iters_FilterIterator(iterable, f);
};
var module$contents$goog$collections$iters_ConcatIterator = function(iterators) {
this.iterators_ = iterators;
this.iterIndex_ = 0;
};
module$contents$goog$collections$iters_ConcatIterator.prototype[Symbol.iterator] = function() {
return this;
};
module$contents$goog$collections$iters_ConcatIterator.prototype.next = function() {
for (; this.iterIndex_ < this.iterators_.length;) {
var result = this.iterators_[this.iterIndex_].next();
if (!result.done) {
return result;
}
this.iterIndex_++;
}
return {done:!0};
};
goog.collections.iters.concat = function() {
return new module$contents$goog$collections$iters_ConcatIterator($jscomp.getRestArguments.apply(0, arguments).map(module$contents$goog$collections$iters_getIterator));
};
goog.collections.iters.toArray = function(iterator) {
var arr = [];
module$contents$goog$collections$iters_forEach(iterator, function(e) {
return arr.push(e);
});
return arr;
};
goog.functions = {};
goog.functions.constant = function(retValue) {
return function() {
return retValue;
};
};
goog.functions.FALSE = function() {
return !1;
};
goog.functions.TRUE = function() {
return !0;
};
goog.functions.NULL = function() {
return null;
};
goog.functions.UNDEFINED = function() {
};
goog.functions.EMPTY = goog.functions.UNDEFINED;
goog.functions.identity = function(opt_returnValue, var_args) {
return opt_returnValue;
};
goog.functions.error = function(message) {
return function() {
throw Error(message);
};
};
goog.functions.fail = function(err) {
return function() {
throw err;
};
};
goog.functions.lock = function(f, opt_numArgs) {
opt_numArgs = opt_numArgs || 0;
return function() {
return f.apply(this, Array.prototype.slice.call(arguments, 0, opt_numArgs));
};
};
goog.functions.nth = function(n) {
return function() {
return arguments[n];
};
};
goog.functions.partialRight = function(fn, var_args) {
var rightArgs = Array.prototype.slice.call(arguments, 1);
return function() {
var self = this;
self === goog.global && (self = void 0);
var newArgs = Array.prototype.slice.call(arguments);
newArgs.push.apply(newArgs, rightArgs);
return fn.apply(self, newArgs);
};
};
goog.functions.withReturnValue = function(f, retValue) {
return goog.functions.sequence(f, goog.functions.constant(retValue));
};
goog.functions.equalTo = function(value, opt_useLooseComparison) {
return function(other) {
return opt_useLooseComparison ? value == other : value === other;
};
};
goog.functions.compose = function(fn, var_args) {
var functions = arguments, length = functions.length;
return function() {
var result;
length && (result = functions[length - 1].apply(this, arguments));
for (var i = length - 2; 0 <= i; i--) {
result = functions[i].call(this, result);
}
return result;
};
};
goog.functions.sequence = function(var_args) {
var functions = arguments, length = functions.length;
return function() {
for (var result, i = 0; i < length; i++) {
result = functions[i].apply(this, arguments);
}
return result;
};
};
goog.functions.and = function(var_args) {
var functions = arguments, length = functions.length;
return function() {
for (var i = 0; i < length; i++) {
if (!functions[i].apply(this, arguments)) {
return !1;
}
}
return !0;
};
};
goog.functions.or = function(var_args) {
var functions = arguments, length = functions.length;
return function() {
for (var i = 0; i < length; i++) {
if (functions[i].apply(this, arguments)) {
return !0;
}
}
return !1;
};
};
goog.functions.not = function(f) {
return function() {
return !f.apply(this, arguments);
};
};
goog.functions.create = function(constructor, var_args) {
var temp = function() {
};
temp.prototype = constructor.prototype;
var obj = new temp();
constructor.apply(obj, Array.prototype.slice.call(arguments, 1));
return obj;
};
goog.functions.CACHE_RETURN_VALUE = !0;
goog.functions.cacheReturnValue = function(fn) {
var called = !1, value;
return function() {
if (!goog.functions.CACHE_RETURN_VALUE) {
return fn();
}
called || (value = fn(), called = !0);
return value;
};
};
goog.functions.once = function(f) {
var inner = f;
return function() {
if (inner) {
var tmp = inner;
inner = null;
tmp();
}
};
};
goog.functions.debounce = function(f, interval, opt_scope) {
var timeout = 0;
return function(var_args) {
goog.global.clearTimeout(timeout);
var args = arguments;
timeout = goog.global.setTimeout(function() {
f.apply(opt_scope, args);
}, interval);
};
};
goog.functions.throttle = function(f, interval, opt_scope) {
var timeout = 0, shouldFire = !1, storedArgs = [], handleTimeout = function() {
timeout = 0;
shouldFire && (shouldFire = !1, fire());
}, fire = function() {
timeout = goog.global.setTimeout(handleTimeout, interval);
var args = storedArgs;
storedArgs = [];
f.apply(opt_scope, args);
};
return function(var_args) {
storedArgs = arguments;
timeout ? shouldFire = !0 : fire();
};
};
goog.functions.rateLimit = function(f, interval, opt_scope) {
var timeout = 0, handleTimeout = function() {
timeout = 0;
};
return function(var_args) {
timeout || (timeout = goog.global.setTimeout(handleTimeout, interval), f.apply(opt_scope, arguments));
};
};
goog.functions.isFunction = function(val) {
return "function" === typeof val;
};
goog.math = {};
goog.math.randomInt = function(a) {
return Math.floor(Math.random() * a);
};
goog.math.uniformRandom = function(a, b) {
return a + Math.random() * (b - a);
};
goog.math.clamp = function(value, min, max) {
return Math.min(Math.max(value, min), max);
};
goog.math.modulo = function(a, b) {
var r = a % b;
return 0 > r * b ? r + b : r;
};
goog.math.lerp = function(a, b, x) {
return a + x * (b - a);
};
goog.math.nearlyEquals = function(a, b, opt_tolerance) {
return Math.abs(a - b) <= (opt_tolerance || 1E-6);
};
goog.math.standardAngle = function(angle) {
return goog.math.modulo(angle, 360);
};
goog.math.standardAngleInRadians = function(angle) {
return goog.math.modulo(angle, 2 * Math.PI);
};
goog.math.toRadians = function(angleDegrees) {
return angleDegrees * Math.PI / 180;
};
goog.math.toDegrees = function(angleRadians) {
return 180 * angleRadians / Math.PI;
};
goog.math.angleDx = function(degrees, radius) {
return radius * Math.cos(goog.math.toRadians(degrees));
};
goog.math.angleDy = function(degrees, radius) {
return radius * Math.sin(goog.math.toRadians(degrees));
};
goog.math.angle = function(x1, y1, x2, y2) {
return goog.math.standardAngle(goog.math.toDegrees(Math.atan2(y2 - y1, x2 - x1)));
};
goog.math.angleDifference = function(startAngle, endAngle) {
var d = goog.math.standardAngle(endAngle) - goog.math.standardAngle(startAngle);
180 < d ? d -= 360 : -180 >= d && (d = 360 + d);
return d;
};
goog.math.sign = function(x) {
return 0 < x ? 1 : 0 > x ? -1 : x;
};
goog.math.longestCommonSubsequence = function(array1, array2, opt_compareFn, opt_collectorFn) {
for (var compare = opt_compareFn || function(a, b) {
return a == b;
}, collect = opt_collectorFn || function(i1, i2) {
return array1[i1];
}, length1 = array1.length, length2 = array2.length, arr = [], i = 0; i < length1 + 1; i++) {
arr[i] = [], arr[i][0] = 0;
}
for (var j = 0; j < length2 + 1; j++) {
arr[0][j] = 0;
}
for (i = 1; i <= length1; i++) {
for (j = 1; j <= length2; j++) {
compare(array1[i - 1], array2[j - 1]) ? arr[i][j] = arr[i - 1][j - 1] + 1 : arr[i][j] = Math.max(arr[i - 1][j], arr[i][j - 1]);
}
}
var result = [];
i = length1;
for (j = length2; 0 < i && 0 < j;) {
compare(array1[i - 1], array2[j - 1]) ? (result.unshift(collect(i - 1, j - 1)), i--, j--) : arr[i - 1][j] > arr[i][j - 1] ? i-- : j--;
}
return result;
};
goog.math.sum = function(var_args) {
return Array.prototype.reduce.call(arguments, function(sum, value) {
return sum + value;
}, 0);
};
goog.math.average = function(var_args) {
return goog.math.sum.apply(null, arguments) / arguments.length;
};
goog.math.sampleVariance = function(var_args) {
var sampleSize = arguments.length;
if (2 > sampleSize) {
return 0;
}
var mean = goog.math.average.apply(null, arguments);
return goog.math.sum.apply(null, Array.prototype.map.call(arguments, function(val) {
return Math.pow(val - mean, 2);
})) / (sampleSize - 1);
};
goog.math.standardDeviation = function(var_args) {
return Math.sqrt(goog.math.sampleVariance.apply(null, arguments));
};
goog.math.isInt = function(num) {
return isFinite(num) && 0 == num % 1;
};
goog.math.isFiniteNumber = function(num) {
return isFinite(num);
};
goog.math.isNegativeZero = function(num) {
return 0 == num && 0 > 1 / num;
};
goog.math.log10Floor = function(num) {
if (0 < num) {
var x = Math.round(Math.log(num) * Math.LOG10E);
return x - (parseFloat("1e" + x) > num ? 1 : 0);
}
return 0 == num ? -Infinity : NaN;
};
goog.math.safeFloor = function(num, opt_epsilon) {
goog.asserts.assert(void 0 === opt_epsilon || 0 < opt_epsilon);
return Math.floor(num + (opt_epsilon || 2E-15));
};
goog.math.safeCeil = function(num, opt_epsilon) {
goog.asserts.assert(void 0 === opt_epsilon || 0 < opt_epsilon);
return Math.ceil(num - (opt_epsilon || 2E-15));
};
goog.iter = {};
goog.iter.Iterable = {};
goog.iter.Iterator = function() {
};
goog.iter.Iterator.prototype.next = function() {
return goog.iter.ES6_ITERATOR_DONE;
};
goog.iter.ES6_ITERATOR_DONE = goog.debug.freeze({done:!0, value:void 0});
goog.iter.createEs6IteratorYield = function(value) {
return {value:value, done:!1};
};
goog.iter.Iterator.prototype.__iterator__ = function(opt_keys) {
return this;
};
goog.iter.toIterator = function(iterable) {
if (iterable instanceof goog.iter.Iterator) {
return iterable;
}
if ("function" == typeof iterable.__iterator__) {
return iterable.__iterator__(!1);
}
if (goog.isArrayLike(iterable)) {
var i = 0, newIter = new goog.iter.Iterator();
newIter.next = function() {
for (;;) {
if (i >= iterable.length) {
return goog.iter.ES6_ITERATOR_DONE;
}
if (i in iterable) {
return goog.iter.createEs6IteratorYield(iterable[i++]);
}
i++;
}
};
return newIter;
}
throw Error("Not implemented");
};
goog.iter.forEach = function(iterable, f, opt_obj) {
if (goog.isArrayLike(iterable)) {
module$contents$goog$array_forEach(iterable, f, opt_obj);
} else {
for (var iterator = goog.iter.toIterator(iterable);;) {
var $jscomp$destructuring$var12 = iterator.next();
if ($jscomp$destructuring$var12.done) {
break;
}
f.call(opt_obj, $jscomp$destructuring$var12.value, void 0, iterator);
}
}
};
goog.iter.filter = function(iterable, f, opt_obj) {
var iterator = goog.iter.toIterator(iterable), newIter = new goog.iter.Iterator();
newIter.next = function() {
for (;;) {
var $jscomp$destructuring$var13 = iterator.next(), value = $jscomp$destructuring$var13.value;
if ($jscomp$destructuring$var13.done) {
return goog.iter.ES6_ITERATOR_DONE;
}
if (f.call(opt_obj, value, void 0, iterator)) {
return goog.iter.createEs6IteratorYield(value);
}
}
};
return newIter;
};
goog.iter.filterFalse = function(iterable, f, opt_obj) {
return goog.iter.filter(iterable, goog.functions.not(f), opt_obj);
};
goog.iter.range = function(startOrStop, opt_stop, opt_step) {
var start = 0, stop = startOrStop, step = opt_step || 1;
1 < arguments.length && (start = startOrStop, stop = +opt_stop);
if (0 == step) {
throw Error("Range step argument must not be zero");
}
var newIter = new goog.iter.Iterator();
newIter.next = function() {
if (0 < step && start >= stop || 0 > step && start <= stop) {
return goog.iter.ES6_ITERATOR_DONE;
}
var rv = start;
start += step;
return goog.iter.createEs6IteratorYield(rv);
};
return newIter;
};
goog.iter.join = function(iterable, deliminator) {
return goog.iter.toArray(iterable).join(deliminator);
};
goog.iter.map = function(iterable, f, opt_obj) {
var iterator = goog.iter.toIterator(iterable), newIter = new goog.iter.Iterator();
newIter.next = function() {
var $jscomp$destructuring$var14 = iterator.next();
if ($jscomp$destructuring$var14.done) {
return goog.iter.ES6_ITERATOR_DONE;
}
var mappedVal = f.call(opt_obj, $jscomp$destructuring$var14.value, void 0, iterator);
return goog.iter.createEs6IteratorYield(mappedVal);
};
return newIter;
};
goog.iter.reduce = function(iterable, f, val$jscomp$0, opt_obj) {
var rval = val$jscomp$0;
goog.iter.forEach(iterable, function(val) {
rval = f.call(opt_obj, rval, val);
});
return rval;
};
goog.iter.some = function(iterable, f, opt_obj) {
for (var iterator = goog.iter.toIterator(iterable);;) {
var $jscomp$destructuring$var15 = iterator.next();
if ($jscomp$destructuring$var15.done) {
return !1;
}
if (f.call(opt_obj, $jscomp$destructuring$var15.value, void 0, iterator)) {
return !0;
}
}
};
goog.iter.every = function(iterable, f, opt_obj) {
for (var iterator = goog.iter.toIterator(iterable);;) {
var $jscomp$destructuring$var16 = iterator.next();
if ($jscomp$destructuring$var16.done) {
return !0;
}
if (!f.call(opt_obj, $jscomp$destructuring$var16.value, void 0, iterator)) {
return !1;
}
}
};
goog.iter.chain = function(var_args) {
return goog.iter.chainFromIterable(arguments);
};
goog.iter.chainFromIterable = function(iterable) {
var iteratorOfIterators = goog.iter.toIterator(iterable), iter = new goog.iter.Iterator(), current = null;
iter.next = function() {
for (;;) {
if (null == current) {
var it = iteratorOfIterators.next();
if (it.done) {
return goog.iter.ES6_ITERATOR_DONE;
}
current = goog.iter.toIterator(it.value);
}
var it$46 = current.next();
if (it$46.done) {
current = null;
} else {
return goog.iter.createEs6IteratorYield(it$46.value);
}
}
};
return iter;
};
goog.iter.dropWhile = function(iterable, f, opt_obj) {
var iterator = goog.iter.toIterator(iterable), newIter = new goog.iter.Iterator(), dropping = !0;
newIter.next = function() {
for (;;) {
var $jscomp$destructuring$var17 = iterator.next(), value = $jscomp$destructuring$var17.value;
if ($jscomp$destructuring$var17.done) {
return goog.iter.ES6_ITERATOR_DONE;
}
if (!dropping || !f.call(opt_obj, value, void 0, iterator)) {
return dropping = !1, goog.iter.createEs6IteratorYield(value);
}
}
};
return newIter;
};
goog.iter.takeWhile = function(iterable, f, opt_obj) {
var iterator = goog.iter.toIterator(iterable), iter = new goog.iter.Iterator();
iter.next = function() {
var $jscomp$destructuring$var18 = iterator.next(), value = $jscomp$destructuring$var18.value;
return $jscomp$destructuring$var18.done ? goog.iter.ES6_ITERATOR_DONE : f.call(opt_obj, value, void 0, iterator) ? goog.iter.createEs6IteratorYield(value) : goog.iter.ES6_ITERATOR_DONE;
};
return iter;
};
goog.iter.toArray = function(iterable) {
if (goog.isArrayLike(iterable)) {
return module$contents$goog$array_toArray(iterable);
}
iterable = goog.iter.toIterator(iterable);
var array = [];
goog.iter.forEach(iterable, function(val) {
array.push(val);
});
return array;
};
goog.iter.equals = function(iterable1, iterable2, opt_equalsFn) {
var pairs = goog.iter.zipLongest({}, iterable1, iterable2), equalsFn = opt_equalsFn || module$contents$goog$array_defaultCompareEquality;
return goog.iter.every(pairs, function(pair) {
return equalsFn(pair[0], pair[1]);
});
};
goog.iter.nextOrValue = function(iterable, defaultValue) {
var $jscomp$destructuring$var19 = goog.iter.toIterator(iterable).next();
return $jscomp$destructuring$var19.done ? defaultValue : $jscomp$destructuring$var19.value;
};
goog.iter.product = function(var_args) {
if (Array.prototype.some.call(arguments, function(arr) {
return !arr.length;
}) || !arguments.length) {
return new goog.iter.Iterator();
}
var iter = new goog.iter.Iterator(), arrays = arguments, indices = module$contents$goog$array_repeat(0, arrays.length);
iter.next = function() {
if (indices) {
for (var retVal = module$contents$goog$array_map(indices, function(valueIndex, arrayIndex) {
return arrays[arrayIndex][valueIndex];
}), i = indices.length - 1; 0 <= i; i--) {
goog.asserts.assert(indices);
if (indices[i] < arrays[i].length - 1) {
indices[i]++;
break;
}
if (0 == i) {
indices = null;
break;
}
indices[i] = 0;
}
return goog.iter.createEs6IteratorYield(retVal);
}
return goog.iter.ES6_ITERATOR_DONE;
};
return iter;
};
goog.iter.cycle = function(iterable) {
var baseIterator = goog.iter.toIterator(iterable), cache = [], cacheIndex = 0, iter = new goog.iter.Iterator(), useCache = !1;
iter.next = function() {
var returnElement = null;
if (!useCache) {
var it = baseIterator.next();
if (it.done) {
if (module$contents$goog$array_isEmpty(cache)) {
return goog.iter.ES6_ITERATOR_DONE;
}
useCache = !0;
} else {
return cache.push(it.value), it;
}
}
returnElement = cache[cacheIndex];
cacheIndex = (cacheIndex + 1) % cache.length;
return goog.iter.createEs6IteratorYield(returnElement);
};
return iter;
};
goog.iter.count = function(opt_start, opt_step) {
var counter = opt_start || 0, step = void 0 !== opt_step ? opt_step : 1, iter = new goog.iter.Iterator();
iter.next = function() {
var returnValue = counter;
counter += step;
return goog.iter.createEs6IteratorYield(returnValue);
};
return iter;
};
goog.iter.repeat = function(value) {
var iter = new goog.iter.Iterator();
iter.next = function() {
return goog.iter.createEs6IteratorYield(value);
};
return iter;
};
goog.iter.accumulate = function(iterable) {
var iterator = goog.iter.toIterator(iterable), total = 0, iter = new goog.iter.Iterator();
iter.next = function() {
var $jscomp$destructuring$var20 = iterator.next();
if ($jscomp$destructuring$var20.done) {
return goog.iter.ES6_ITERATOR_DONE;
}
total += $jscomp$destructuring$var20.value;
return goog.iter.createEs6IteratorYield(total);
};
return iter;
};
goog.iter.zip = function(var_args) {
var args = arguments, iter = new goog.iter.Iterator();
if (0 < args.length) {
var iterators = module$contents$goog$array_map(args, goog.iter.toIterator), allDone = !1;
iter.next = function() {
if (allDone) {
return goog.iter.ES6_ITERATOR_DONE;
}
for (var arr = [], i = 0, iterator = void 0; iterator = iterators[i++];) {
var it = iterator.next();
if (it.done) {
return allDone = !0, goog.iter.ES6_ITERATOR_DONE;
}
arr.push(it.value);
}
return goog.iter.createEs6IteratorYield(arr);
};
}
return iter;
};
goog.iter.zipLongest = function(fillValue, var_args) {
var args = Array.prototype.slice.call(arguments, 1), iter = new goog.iter.Iterator();
if (0 < args.length) {
var iterators = module$contents$goog$array_map(args, goog.iter.toIterator), allDone = !1;
iter.next = function() {
if (allDone) {
return goog.iter.ES6_ITERATOR_DONE;
}
for (var iteratorsHaveValues = !1, arr = [], i = 0, iterator = void 0; iterator = iterators[i++];) {
var it = iterator.next();
it.done ? arr.push(fillValue) : (arr.push(it.value), iteratorsHaveValues = !0);
}
return iteratorsHaveValues ? goog.iter.createEs6IteratorYield(arr) : (allDone = !0, goog.iter.ES6_ITERATOR_DONE);
};
}
return iter;
};
goog.iter.compress = function(iterable, selectors) {
var valueIterator = goog.iter.toIterator(iterable), selectorIterator = goog.iter.toIterator(selectors), iter = new goog.iter.Iterator(), allDone = !1;
iter.next = function() {
if (allDone) {
return goog.iter.ES6_ITERATOR_DONE;
}
for (;;) {
var valIt = valueIterator.next();
if (valIt.done) {
return allDone = !0, goog.iter.ES6_ITERATOR_DONE;
}
var selectorIt = selectorIterator.next();
if (selectorIt.done) {
return allDone = !0, goog.iter.ES6_ITERATOR_DONE;
}
var val = valIt.value;
if (selectorIt.value) {
return goog.iter.createEs6IteratorYield(val);
}
}
};
return iter;
};
goog.iter.GroupByIterator_ = function(iterable, opt_keyFunc) {
this.iterator = goog.iter.toIterator(iterable);
this.keyFunc = opt_keyFunc || goog.functions.identity;
};
goog.inherits(goog.iter.GroupByIterator_, goog.iter.Iterator);
goog.iter.GroupByIterator_.prototype.next = function() {
for (; this.currentKey == this.targetKey;) {
var it = this.iterator.next();
if (it.done) {
return goog.iter.ES6_ITERATOR_DONE;
}
this.currentValue = it.value;
this.currentKey = this.keyFunc(this.currentValue);
}
this.targetKey = this.currentKey;
return goog.iter.createEs6IteratorYield([this.currentKey, this.groupItems_(this.targetKey)]);
};
goog.iter.GroupByIterator_.prototype.groupItems_ = function(targetKey) {
for (var arr = []; this.currentKey == targetKey;) {
arr.push(this.currentValue);
var it = this.iterator.next();
if (it.done) {
break;
}
this.currentValue = it.value;
this.currentKey = this.keyFunc(this.currentValue);
}
return arr;
};
goog.iter.groupBy = function(iterable, opt_keyFunc) {
return new goog.iter.GroupByIterator_(iterable, opt_keyFunc);
};
goog.iter.starMap = function(iterable, f, opt_obj) {
var iterator = goog.iter.toIterator(iterable), iter = new goog.iter.Iterator();
iter.next = function() {
var it = iterator.next();
if (it.done) {
return goog.iter.ES6_ITERATOR_DONE;
}
var args = goog.iter.toArray(it.value), value = f.apply(opt_obj, [].concat(args, void 0, iterator));
return goog.iter.createEs6IteratorYield(value);
};
return iter;
};
goog.iter.tee = function(iterable, opt_num) {
function addNextIteratorValueToBuffers() {
var $jscomp$destructuring$var21 = iterator.next(), value = $jscomp$destructuring$var21.value;
if ($jscomp$destructuring$var21.done) {
return !1;
}
for (var i = 0, buffer = void 0; buffer = buffers[i++];) {
buffer.push(value);
}
return !0;
}
var iterator = goog.iter.toIterator(iterable), buffers = module$contents$goog$array_map(module$contents$goog$array_range("number" === typeof opt_num ? opt_num : 2), function() {
return [];
});
return module$contents$goog$array_map(buffers, function createIterator(buffer) {
var iter = new goog.iter.Iterator();
iter.next = function() {
if (module$contents$goog$array_isEmpty(buffer) && !addNextIteratorValueToBuffers()) {
return goog.iter.ES6_ITERATOR_DONE;
}
goog.asserts.assert(!module$contents$goog$array_isEmpty(buffer));
return goog.iter.createEs6IteratorYield(buffer.shift());
};
return iter;
});
};
goog.iter.enumerate = function(iterable, opt_start) {
return goog.iter.zip(goog.iter.count(opt_start), iterable);
};
goog.iter.limit = function(iterable, limitSize) {
goog.asserts.assert(goog.math.isInt(limitSize) && 0 <= limitSize);
var iterator = goog.iter.toIterator(iterable), iter = new goog.iter.Iterator(), remaining = limitSize;
iter.next = function() {
return 0 < remaining-- ? iterator.next() : goog.iter.ES6_ITERATOR_DONE;
};
return iter;
};
goog.iter.consume = function(iterable, count) {
goog.asserts.assert(goog.math.isInt(count) && 0 <= count);
for (var iterator = goog.iter.toIterator(iterable); 0 < count--;) {
goog.iter.nextOrValue(iterator, null);
}
return iterator;
};
goog.iter.slice = function(iterable, start, opt_end) {
goog.asserts.assert(goog.math.isInt(start) && 0 <= start);
var iterator = goog.iter.consume(iterable, start);
"number" === typeof opt_end && (goog.asserts.assert(goog.math.isInt(opt_end) && opt_end >= start), iterator = goog.iter.limit(iterator, opt_end - start));
return iterator;
};
goog.iter.hasDuplicates_ = function(arr) {
var deduped = [];
module$contents$goog$array_removeDuplicates(arr, deduped);
return arr.length != deduped.length;
};
goog.iter.permutations = function(iterable, opt_length) {
var elements = goog.iter.toArray(iterable), product = goog.iter.product.apply(void 0, module$contents$goog$array_repeat(elements, "number" === typeof opt_length ? opt_length : elements.length));
return goog.iter.filter(product, function(arr) {
return !goog.iter.hasDuplicates_(arr);
});
};
goog.iter.combinations = function(iterable, length) {
function getIndexFromElements(index) {
return elements[index];
}
var elements = goog.iter.toArray(iterable), indexes = goog.iter.range(elements.length), indexIterator = goog.iter.permutations(indexes, length), sortedIndexIterator = goog.iter.filter(indexIterator, function(arr) {
return module$contents$goog$array_isSorted(arr);
}), iter = new goog.iter.Iterator();
iter.next = function() {
var $jscomp$destructuring$var22 = sortedIndexIterator.next();
return $jscomp$destructuring$var22.done ? goog.iter.ES6_ITERATOR_DONE : goog.iter.createEs6IteratorYield(module$contents$goog$array_map($jscomp$destructuring$var22.value, getIndexFromElements));
};
return iter;
};
goog.iter.combinationsWithReplacement = function(iterable, length) {
function getIndexFromElements(index) {
return elements[index];
}
var elements = goog.iter.toArray(iterable), indexes = module$contents$goog$array_range(elements.length), indexIterator = goog.iter.product.apply(void 0, module$contents$goog$array_repeat(indexes, length)), sortedIndexIterator = goog.iter.filter(indexIterator, function(arr) {
return module$contents$goog$array_isSorted(arr);
}), iter = new goog.iter.Iterator();
iter.next = function() {
var $jscomp$destructuring$var23 = sortedIndexIterator.next();
return $jscomp$destructuring$var23.done ? goog.iter.ES6_ITERATOR_DONE : goog.iter.createEs6IteratorYield(module$contents$goog$array_map($jscomp$destructuring$var23.value, getIndexFromElements));
};
return iter;
};
goog.iter.es6 = {};
var module$contents$goog$iter$es6_ShimIterable = function() {
};
module$contents$goog$iter$es6_ShimIterable.prototype.__iterator__ = function() {
};
module$contents$goog$iter$es6_ShimIterable.prototype.toGoog = function() {
};
module$contents$goog$iter$es6_ShimIterable.prototype.toEs6 = function() {
};
module$contents$goog$iter$es6_ShimIterable.of = function(iter) {
if (iter instanceof module$contents$goog$iter$es6_ShimIterableImpl || iter instanceof module$contents$goog$iter$es6_ShimGoogIterator || iter instanceof module$contents$goog$iter$es6_ShimEs6Iterator) {
return iter;
}
if ("function" == typeof iter.next) {
return new module$contents$goog$iter$es6_ShimIterableImpl(function() {
return iter;
});
}
if ("function" == typeof iter[Symbol.iterator]) {
return new module$contents$goog$iter$es6_ShimIterableImpl(function() {
return iter[Symbol.iterator]();
});
}
if ("function" == typeof iter.__iterator__) {
return new module$contents$goog$iter$es6_ShimIterableImpl(function() {
return iter.__iterator__();
});
}
throw Error("Not an iterator or iterable.");
};
var module$contents$goog$iter$es6_ShimIterableImpl = function(func) {
this.func_ = func;
};
module$contents$goog$iter$es6_ShimIterableImpl.prototype.__iterator__ = function() {
return new module$contents$goog$iter$es6_ShimGoogIterator(this.func_());
};
module$contents$goog$iter$es6_ShimIterableImpl.prototype.toGoog = function() {
return new module$contents$goog$iter$es6_ShimGoogIterator(this.func_());
};
module$contents$goog$iter$es6_ShimIterableImpl.prototype[Symbol.iterator] = function() {
return new module$contents$goog$iter$es6_ShimEs6Iterator(this.func_());
};
module$contents$goog$iter$es6_ShimIterableImpl.prototype.toEs6 = function() {
return new module$contents$goog$iter$es6_ShimEs6Iterator(this.func_());
};
var module$contents$goog$iter$es6_ShimGoogIterator = function(iter) {
goog.iter.Iterator.call(this);
this.iter_ = iter;
};
$jscomp.inherits(module$contents$goog$iter$es6_ShimGoogIterator, goog.iter.Iterator);
module$contents$goog$iter$es6_ShimGoogIterator.prototype.next = function() {
return this.iter_.next();
};
module$contents$goog$iter$es6_ShimGoogIterator.prototype.toGoog = function() {
return this;
};
module$contents$goog$iter$es6_ShimGoogIterator.prototype[Symbol.iterator] = function() {
return new module$contents$goog$iter$es6_ShimEs6Iterator(this.iter_);
};
module$contents$goog$iter$es6_ShimGoogIterator.prototype.toEs6 = function() {
return new module$contents$goog$iter$es6_ShimEs6Iterator(this.iter_);
};
var module$contents$goog$iter$es6_ShimEs6Iterator = function(iter) {
module$contents$goog$iter$es6_ShimIterableImpl.call(this, function() {
return iter;
});
this.iter_ = iter;
};
$jscomp.inherits(module$contents$goog$iter$es6_ShimEs6Iterator, module$contents$goog$iter$es6_ShimIterableImpl);
module$contents$goog$iter$es6_ShimEs6Iterator.prototype.next = function() {
return this.iter_.next();
};
goog.iter.es6.ShimIterable = module$contents$goog$iter$es6_ShimIterable;
goog.iter.es6.ShimEs6Iterator = module$contents$goog$iter$es6_ShimEs6Iterator;
goog.iter.es6.ShimGoogIterator = module$contents$goog$iter$es6_ShimGoogIterator;
goog.structs.Map = function(opt_map, var_args) {
this.map_ = {};
this.keys_ = [];
this.version_ = this.size = 0;
var argLength = arguments.length;
if (1 < argLength) {
if (argLength % 2) {
throw Error("Uneven number of arguments");
}
for (var i = 0; i < argLength; i += 2) {
this.set(arguments[i], arguments[i + 1]);
}
} else {
opt_map && this.addAll(opt_map);
}
};
goog.structs.Map.prototype.getCount = function() {
return this.size;
};
goog.structs.Map.prototype.getValues = function() {
this.cleanupKeysArray_();
for (var rv = [], i = 0; i < this.keys_.length; i++) {
rv.push(this.map_[this.keys_[i]]);
}
return rv;
};
goog.structs.Map.prototype.getKeys = function() {
this.cleanupKeysArray_();
return this.keys_.concat();
};
goog.structs.Map.prototype.containsKey = function(key) {
return this.has(key);
};
goog.structs.Map.prototype.has = function(key) {
return goog.structs.Map.hasKey_(this.map_, key);
};
goog.structs.Map.prototype.containsValue = function(val) {
for (var i = 0; i < this.keys_.length; i++) {
var key = this.keys_[i];
if (goog.structs.Map.hasKey_(this.map_, key) && this.map_[key] == val) {
return !0;
}
}
return !1;
};
goog.structs.Map.prototype.equals = function(otherMap, opt_equalityFn) {
if (this === otherMap) {
return !0;
}
if (this.size != otherMap.getCount()) {
return !1;
}
var equalityFn = opt_equalityFn || goog.structs.Map.defaultEquals;
this.cleanupKeysArray_();
for (var key, i = 0; key = this.keys_[i]; i++) {
if (!equalityFn(this.get(key), otherMap.get(key))) {
return !1;
}
}
return !0;
};
goog.structs.Map.defaultEquals = function(a, b) {
return a === b;
};
goog.structs.Map.prototype.isEmpty = function() {
return 0 == this.size;
};
goog.structs.Map.prototype.clear = function() {
this.map_ = {};
this.keys_.length = 0;
this.setSizeInternal_(0);
this.version_ = 0;
};
goog.structs.Map.prototype.remove = function(key) {
return this.delete(key);
};
goog.structs.Map.prototype.delete = function(key) {
return goog.structs.Map.hasKey_(this.map_, key) ? (delete this.map_[key], this.setSizeInternal_(this.size - 1), this.version_++, this.keys_.length > 2 * this.size && this.cleanupKeysArray_(), !0) : !1;
};
goog.structs.Map.prototype.cleanupKeysArray_ = function() {
if (this.size != this.keys_.length) {
for (var srcIndex = 0, destIndex = 0; srcIndex < this.keys_.length;) {
var key = this.keys_[srcIndex];
goog.structs.Map.hasKey_(this.map_, key) && (this.keys_[destIndex++] = key);
srcIndex++;
}
this.keys_.length = destIndex;
}
if (this.size != this.keys_.length) {
var seen = {};
for (destIndex = srcIndex = 0; srcIndex < this.keys_.length;) {
key = this.keys_[srcIndex], goog.structs.Map.hasKey_(seen, key) || (this.keys_[destIndex++] = key, seen[key] = 1), srcIndex++;
}
this.keys_.length = destIndex;
}
};
goog.structs.Map.prototype.get = function(key, opt_val) {
return goog.structs.Map.hasKey_(this.map_, key) ? this.map_[key] : opt_val;
};
goog.structs.Map.prototype.set = function(key, value) {
goog.structs.Map.hasKey_(this.map_, key) || (this.setSizeInternal_(this.size + 1), this.keys_.push(key), this.version_++);
this.map_[key] = value;
};
goog.structs.Map.prototype.addAll = function(map) {
if (map instanceof goog.structs.Map) {
for (var keys = map.getKeys(), i = 0; i < keys.length; i++) {
this.set(keys[i], map.get(keys[i]));
}
} else {
for (var key in map) {
this.set(key, map[key]);
}
}
};
goog.structs.Map.prototype.forEach = function(f, opt_obj) {
for (var keys = this.getKeys(), i = 0; i < keys.length; i++) {
var key = keys[i], value = this.get(key);
f.call(opt_obj, value, key, this);
}
};
goog.structs.Map.prototype.clone = function() {
return new goog.structs.Map(this);
};
goog.structs.Map.prototype.transpose = function() {
for (var transposed = new goog.structs.Map(), i = 0; i < this.keys_.length; i++) {
var key = this.keys_[i];
transposed.set(this.map_[key], key);
}
return transposed;
};
goog.structs.Map.prototype.toObject = function() {
this.cleanupKeysArray_();
for (var obj = {}, i = 0; i < this.keys_.length; i++) {
var key = this.keys_[i];
obj[key] = this.map_[key];
}
return obj;
};
goog.structs.Map.prototype.getKeyIterator = function() {
return this.__iterator__(!0);
};
goog.structs.Map.prototype.keys = function() {
return module$contents$goog$iter$es6_ShimIterable.of(this.getKeyIterator()).toEs6();
};
goog.structs.Map.prototype.getValueIterator = function() {
return this.__iterator__(!1);
};
goog.structs.Map.prototype.values = function() {
return module$contents$goog$iter$es6_ShimIterable.of(this.getValueIterator()).toEs6();
};
goog.structs.Map.prototype.entries = function() {
var self = this;
return goog.collections.iters.map(this.keys(), function(key) {
return [key, self.get(key)];
});
};
goog.structs.Map.prototype.__iterator__ = function(opt_keys) {
this.cleanupKeysArray_();
var i = 0, version = this.version_, selfObj = this, newIter = new goog.iter.Iterator();
newIter.next = function() {
if (version != selfObj.version_) {
throw Error("The map has changed since the iterator was created");
}
if (i >= selfObj.keys_.length) {
return goog.iter.ES6_ITERATOR_DONE;
}
var key = selfObj.keys_[i++];
return goog.iter.createEs6IteratorYield(opt_keys ? key : selfObj.map_[key]);
};
return newIter;
};
goog.structs.Map.prototype.setSizeInternal_ = function(newSize) {
this.size = newSize;
};
goog.structs.Map.hasKey_ = function(obj, key) {
return Object.prototype.hasOwnProperty.call(obj, key);
};
goog.structs.getCount = function(col) {
return col.getCount && "function" == typeof col.getCount ? col.getCount() : goog.isArrayLike(col) || "string" === typeof col ? col.length : module$contents$goog$object_getCount(col);
};
goog.structs.getValues = function(col) {
if (col.getValues && "function" == typeof col.getValues) {
return col.getValues();
}
if ("undefined" !== typeof Map && col instanceof Map || "undefined" !== typeof Set && col instanceof Set) {
return Array.from(col.values());
}
if ("string" === typeof col) {
return col.split("");
}
if (goog.isArrayLike(col)) {
for (var rv = [], l = col.length, i = 0; i < l; i++) {
rv.push(col[i]);
}
return rv;
}
return module$contents$goog$object_getValues(col);
};
goog.structs.getKeys = function(col) {
if (col.getKeys && "function" == typeof col.getKeys) {
return col.getKeys();
}
if (!col.getValues || "function" != typeof col.getValues) {
if ("undefined" !== typeof Map && col instanceof Map) {
return Array.from(col.keys());
}
if (!("undefined" !== typeof Set && col instanceof Set)) {
if (goog.isArrayLike(col) || "string" === typeof col) {
for (var rv = [], l = col.length, i = 0; i < l; i++) {
rv.push(i);
}
return rv;
}
return module$contents$goog$object_getKeys(col);
}
}
};
goog.structs.contains = function(col, val) {
return col.contains && "function" == typeof col.contains ? col.contains(val) : col.containsValue && "function" == typeof col.containsValue ? col.containsValue(val) : goog.isArrayLike(col) || "string" === typeof col ? module$contents$goog$array_contains(col, val) : module$contents$goog$object_containsValue(col, val);
};
goog.structs.isEmpty = function(col) {
return col.isEmpty && "function" == typeof col.isEmpty ? col.isEmpty() : goog.isArrayLike(col) || "string" === typeof col ? 0 === col.length : module$contents$goog$object_isEmpty(col);
};
goog.structs.clear = function(col) {
col.clear && "function" == typeof col.clear ? col.clear() : goog.isArrayLike(col) ? module$contents$goog$array_clear(col) : module$contents$goog$object_clear(col);
};
goog.structs.forEach = function(col, f, opt_obj) {
if (col.forEach && "function" == typeof col.forEach) {
col.forEach(f, opt_obj);
} else if (goog.isArrayLike(col) || "string" === typeof col) {
Array.prototype.forEach.call(col, f, opt_obj);
} else {
for (var keys = goog.structs.getKeys(col), values = goog.structs.getValues(col), l = values.length, i = 0; i < l; i++) {
f.call(opt_obj, values[i], keys && keys[i], col);
}
}
};
goog.structs.filter = function(col, f, opt_obj) {
if ("function" == typeof col.filter) {
return col.filter(f, opt_obj);
}
if (goog.isArrayLike(col) || "string" === typeof col) {
return Array.prototype.filter.call(col, f, opt_obj);
}
var keys = goog.structs.getKeys(col), values = goog.structs.getValues(col), l = values.length;
if (keys) {
var rv = {};
for (var i = 0; i < l; i++) {
f.call(opt_obj, values[i], keys[i], col) && (rv[keys[i]] = values[i]);
}
} else {
for (rv = [], i = 0; i < l; i++) {
f.call(opt_obj, values[i], void 0, col) && rv.push(values[i]);
}
}
return rv;
};
goog.structs.map = function(col, f, opt_obj) {
if ("function" == typeof col.map) {
return col.map(f, opt_obj);
}
if (goog.isArrayLike(col) || "string" === typeof col) {
return Array.prototype.map.call(col, f, opt_obj);
}
var keys = goog.structs.getKeys(col), values = goog.structs.getValues(col), l = values.length;
if (keys) {
var rv = {};
for (var i = 0; i < l; i++) {
rv[keys[i]] = f.call(opt_obj, values[i], keys[i], col);
}
} else {
for (rv = [], i = 0; i < l; i++) {
rv[i] = f.call(opt_obj, values[i], void 0, col);
}
}
return rv;
};
goog.structs.some = function(col, f, opt_obj) {
if ("function" == typeof col.some) {
return col.some(f, opt_obj);
}
if (goog.isArrayLike(col) || "string" === typeof col) {
return Array.prototype.some.call(col, f, opt_obj);
}
for (var keys = goog.structs.getKeys(col), values = goog.structs.getValues(col), l = values.length, i = 0; i < l; i++) {
if (f.call(opt_obj, values[i], keys && keys[i], col)) {
return !0;
}
}
return !1;
};
goog.structs.every = function(col, f, opt_obj) {
if ("function" == typeof col.every) {
return col.every(f, opt_obj);
}
if (goog.isArrayLike(col) || "string" === typeof col) {
return Array.prototype.every.call(col, f, opt_obj);
}
for (var keys = goog.structs.getKeys(col), values = goog.structs.getValues(col), l = values.length, i = 0; i < l; i++) {
if (!f.call(opt_obj, values[i], keys && keys[i], col)) {
return !1;
}
}
return !0;
};
goog.structs.Set = function(opt_values) {
this.map_ = new goog.structs.Map();
this.size = 0;
opt_values && this.addAll(opt_values);
};
goog.structs.Set.getUid_ = goog.getUid;
goog.structs.Set.getKey_ = function(val) {
var type = typeof val;
return "object" == type && val || "function" == type ? "o" + goog.getUid(val) : type.slice(0, 1) + val;
};
goog.structs.Set.prototype.getCount = function() {
return this.map_.size;
};
goog.structs.Set.prototype.add = function(element) {
this.map_.set(goog.structs.Set.getKey_(element), element);
this.setSizeInternal_(this.map_.size);
};
goog.structs.Set.prototype.addAll = function(col) {
for (var values = goog.structs.getValues(col), l = values.length, i = 0; i < l; i++) {
this.add(values[i]);
}
this.setSizeInternal_(this.map_.size);
};
goog.structs.Set.prototype.removeAll = function(col) {
for (var values = goog.structs.getValues(col), l = values.length, i = 0; i < l; i++) {
this.remove(values[i]);
}
this.setSizeInternal_(this.map_.size);
};
goog.structs.Set.prototype.delete = function(element) {
var rv = this.map_.remove(goog.structs.Set.getKey_(element));
this.setSizeInternal_(this.map_.size);
return rv;
};
goog.structs.Set.prototype.remove = function(element) {
return this.delete(element);
};
goog.structs.Set.prototype.clear = function() {
this.map_.clear();
this.setSizeInternal_(0);
};
goog.structs.Set.prototype.isEmpty = function() {
return 0 === this.map_.size;
};
goog.structs.Set.prototype.has = function(element) {
return this.map_.containsKey(goog.structs.Set.getKey_(element));
};
goog.structs.Set.prototype.contains = function(element) {
return this.map_.containsKey(goog.structs.Set.getKey_(element));
};
goog.structs.Set.prototype.containsAll = function(col) {
return goog.structs.every(col, this.contains, this);
};
goog.structs.Set.prototype.intersection = function(col) {
for (var result = new goog.structs.Set(), values = goog.structs.getValues(col), i = 0; i < values.length; i++) {
var value = values[i];
this.contains(value) && result.add(value);
}
return result;
};
goog.structs.Set.prototype.difference = function(col) {
var result = this.clone();
result.removeAll(col);
return result;
};
goog.structs.Set.prototype.getValues = function() {
return this.map_.getValues();
};
goog.structs.Set.prototype.values = function() {
return this.map_.values();
};
goog.structs.Set.prototype.clone = function() {
return new goog.structs.Set(this);
};
goog.structs.Set.prototype.equals = function(col) {
return this.getCount() == goog.structs.getCount(col) && this.isSubsetOf(col);
};
goog.structs.Set.prototype.isSubsetOf = function(col) {
var colCount = goog.structs.getCount(col);
if (this.getCount() > colCount) {
return !1;
}
!(col instanceof goog.structs.Set) && 5 < colCount && (col = new goog.structs.Set(col));
return goog.structs.every(this, function(value) {
return goog.structs.contains(col, value);
});
};
goog.structs.Set.prototype.__iterator__ = function(opt_keys) {
return this.map_.__iterator__(!1);
};
goog.structs.Set.prototype[Symbol.iterator] = function() {
return this.values();
};
goog.structs.Set.prototype.setSizeInternal_ = function(newSize) {
this.size = newSize;
};
var ee = {AbstractOverlay:function(url, mapId, token, opt_init, opt_profiler) {
goog.events.EventTarget.call(this);
this.mapId = mapId;
this.token = token;
this.tilesLoading = [];
this.tilesFailed = new goog.structs.Set();
this.tileCounter = 0;
this.url = url;
}};
goog.inherits(ee.AbstractOverlay, goog.events.EventTarget);
goog.exportSymbol("ee.AbstractOverlay", ee.AbstractOverlay);
ee.AbstractOverlay.EventType = {TILE_LOADED:"tileevent"};
ee.AbstractOverlay.prototype.getTileId = function(coord, zoom) {
var maxCoord = 1 << zoom, x = coord.x % maxCoord;
0 > x && (x += maxCoord);
return [this.mapId, zoom, x, coord.y].join("/");
};
ee.AbstractOverlay.prototype.getLoadingTilesCount = function() {
return this.tilesLoading.length;
};
ee.AbstractOverlay.prototype.getFailedTilesCount = function() {
return this.tilesFailed.getCount();
};
ee.TileEvent = function(count) {
goog.events.Event.call(this, ee.AbstractOverlay.EventType.TILE_LOADED);
this.count = count;
};
goog.inherits(ee.TileEvent, goog.events.Event);
var module$exports$tslib = {}, module$contents$tslib_extendStatics = Object.setPrototypeOf || function(d, b) {
for (var p in b) {
Object.prototype.hasOwnProperty.call(b, p) && (d[p] = b[p]);
}
};
module$exports$tslib.__extends = function(d, b) {
function __() {
this.constructor = d;
}
module$contents$tslib_extendStatics(d, b);
d.prototype = null === b ? Object.create(b) : (__.prototype = b.prototype, new __());
};
module$exports$tslib.__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) {
Object.prototype.hasOwnProperty.call(s, p) && (t[p] = s[p]);
}
}
return t;
};
module$exports$tslib.__rest = function(s, e) {
var t = {}, p;
for (p in s) {
Object.prototype.hasOwnProperty.call(s, p) && 0 > e.indexOf(p) && (t[p] = s[p]);
}
if (null != s && "function" === typeof Object.getOwnPropertySymbols) {
var i = 0;
for (p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
0 > e.indexOf(p[i]) && Object.prototype.propertyIsEnumerable.call(s, p[i]) && (t[p[i]] = s[p[i]]);
}
}
return t;
};
module$exports$tslib.__decorate = function(decorators, target, key, desc) {
var c = arguments.length, r = 3 > c ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if ("object" === typeof Reflect && Reflect && "function" === typeof Reflect.decorate) {
r = Reflect.decorate(decorators, target, key, desc);
} else {
for (var i = decorators.length - 1; 0 <= i; i--) {
if (d = decorators[i]) {
r = (3 > c ? d(r) : 3 < c ? d(target, key, r) : d(target, key)) || r;
}
}
}
return 3 < c && r && Object.defineProperty(target, key, r), r;
};
module$exports$tslib.__param = function(paramIndex, decorator) {
return function(target, key) {
decorator(target, key, paramIndex);
};
};
module$exports$tslib.__metadata = function(metadataKey, metadataValue) {
if ("object" === typeof Reflect && Reflect && "function" === typeof Reflect.metadata) {
return Reflect.metadata(metadataKey, metadataValue);
}
};
module$exports$tslib.__awaiter = function(thisArg, _arguments, P, generator) {
function adopt(value) {
return value instanceof P ? value : new P(function(resolve) {
resolve(value);
});
}
return new (P || (P = Promise))(function(resolve, reject) {
function fulfilled(value) {
try {
step(generator.next(value));
} catch (e) {
reject(e);
}
}
function rejected(value) {
try {
step(generator["throw"](value));
} catch (e) {
reject(e);
}
}
function step(result) {
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
}
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
module$exports$tslib.__generator = function(thisArg, body) {
function verb(n) {
return function(v) {
return step([n, v]);
};
}
function step(op) {
if (f) {
throw new TypeError("Generator is already executing.");
}
for (; _;) {
try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) {
return t;
}
if (y = 0, t) {
op = [op[0] & 2, t.value];
}
switch(op[0]) {
case 0:
case 1:
t = op;
break;
case 4:
return _.label++, {value:op[1], done:!1};
case 5:
_.label++;
y = op[1];
op = [0];
continue;
case 7:
op = _.ops.pop();
_.trys.pop();
continue;
default:
if (!(t = _.trys, t = 0 < t.length && t[t.length - 1]) && (6 === op[0] || 2 === op[0])) {
_ = 0;
continue;
}
if (3 === op[0] && (!t || op[1] > t[0] && op[1] < t[3])) {
_.label = op[1];
} else {
if (6 === op[0] && _.label < t[1]) {
_.label = t[1], t = op;
} else {
if (t && _.label < t[2]) {
_.label = t[2], _.ops.push(op);
} else {
t[2] && _.ops.pop();
_.trys.pop();
continue;
}
}
}
}
op = body.call(thisArg, _);
} catch (e) {
op = [6, e], y = 0;
} finally {
f = t = 0;
}
}
if (op[0] & 5) {
throw op[1];
}
return {value:op[0] ? op[1] : void 0, done:!0};
}
var _ = {label:0, sent:function() {
if (t[0] & 1) {
throw t[1];
}
return t[1];
}, trys:[], ops:[]}, f, y, t, g;
return g = {next:verb(0), "throw":verb(1), "return":verb(2)}, "function" === typeof Symbol && (g[Symbol.iterator] = function() {
return g;
}), g;
};
module$exports$tslib.__exportStar = function(m, o) {
for (var p in m) {
o.hasOwnProperty(p) || (o[p] = m[p]);
}
};
module$exports$tslib.__values = function(o) {
var m = "function" === typeof Symbol && o[Symbol.iterator], i = 0;
return m ? m.call(o) : {next:function() {
o && i >= o.length && (o = void 0);
return {value:o && o[i++], done:!o};
}};
};
module$exports$tslib.__read = function(o, n) {
var m = "function" === typeof Symbol && o[Symbol.iterator];
if (!m) {
return o;
}
var i = m.call(o), r, ar = [];
try {
for (; (void 0 === n || 0 < n--) && !(r = i.next()).done;) {
ar.push(r.value);
}
} catch (error) {
var e = {error:error};
} finally {
try {
r && !r.done && (m = i["return"]) && m.call(i);
} finally {
if (e) {
throw e.error;
}
}
}
return ar;
};
module$exports$tslib.__spread = function() {
for (var ar = [], i = 0; i < arguments.length; i++) {
ar = ar.concat(module$exports$tslib.__read(arguments[i]));
}
return ar;
};
module$exports$tslib.__spreadArrays = function() {
for (var s = 0, i = 0, il = arguments.length; i < il; i++) {
s += arguments[i].length;
}
var r = Array(s), k = 0;
for (i = 0; i < il; i++) {
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {
r[k] = a[j];
}
}
return r;
};
module$exports$tslib.__spreadArray = function(to, from, pack) {
if (!(Array.isArray(from) || from instanceof NodeList)) {
throw new TypeError("Expected an Array or NodeList: " + String(from));
}
if (pack || 2 === arguments.length) {
for (var i = 0, l = from.length, ar; i < l; i++) {
!ar && i in from || (ar || (ar = Array.prototype.slice.call(from, 0, i)), ar[i] = from[i]);
}
}
return to.concat(ar || Array.prototype.slice.call(from));
};
module$exports$tslib.__await = function(v) {
return this instanceof module$exports$tslib.__await ? (this.v = v, this) : new module$exports$tslib.__await(v);
};
module$exports$tslib.__asyncGenerator = function(thisArg, _arguments, generator) {
function verb(n) {
g[n] && (i[n] = function(v) {
return new Promise(function(a, b) {
1 < q.push([n, v, a, b]) || resume(n, v);
});
});
}
function resume(n, v) {
try {
step(g[n](v));
} catch (e) {
settle(q[0][3], e);
}
}
function step(r) {
r.value instanceof module$exports$tslib.__await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);
}
function fulfill(value) {
resume("next", value);
}
function reject(value) {
resume("throw", value);
}
function settle(f, v) {
(f(v), q.shift(), q.length) && resume(q[0][0], q[0][1]);
}
if (!Symbol.asyncIterator) {
throw new TypeError("Symbol.asyncIterator is not defined.");
}
var g = generator.apply(thisArg, _arguments || []), i, q = [];
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() {
return this;
}, i;
};
module$exports$tslib.__asyncDelegator = function(o) {
function verb(n, f) {
i[n] = o[n] ? function(v) {
return (p = !p) ? {value:new module$exports$tslib.__await(o[n](v)), done:"return" === n} : f ? f(v) : v;
} : f;
}
var i, p;
return i = {}, verb("next"), verb("throw", function(e) {
throw e;
}), verb("return"), i[Symbol.iterator] = function() {
return i;
}, i;
};
module$exports$tslib.__asyncValues = function(o) {
function verb(n) {
i[n] = o[n] && function(v) {
return new Promise(function(resolve, reject) {
v = o[n](v);
settle(resolve, reject, v.done, v.value);
});
};
}
function settle(resolve, reject, d, v$jscomp$0) {
Promise.resolve(v$jscomp$0).then(function(v) {
resolve({value:v, done:d});
}, reject);
}
if (!Symbol.asyncIterator) {
throw new TypeError("Symbol.asyncIterator is not defined.");
}
var m = o[Symbol.asyncIterator], i;
return m ? m.call(o) : (o = "function" === typeof __values ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() {
return this;
}, i);
};
module$exports$tslib.__makeTemplateObject = function(cooked, raw) {
Object.defineProperty ? Object.defineProperty(cooked, "raw", {value:raw}) : cooked.raw = raw;
return cooked;
};
module$exports$tslib.__classPrivateFieldGet = function(receiver, state, kind, f) {
if ("a" === kind && !f) {
throw new TypeError("Private accessor was defined without a getter");
}
if ("function" === typeof state ? receiver !== state || !f : !state.has(receiver)) {
throw new TypeError("Cannot read private member from an object whose class did not declare it");
}
return "m" === kind ? f : "a" === kind ? f.call(receiver) : f ? f.value : state.get(receiver);
};
module$exports$tslib.__classPrivateFieldSet = function(receiver, state, value, kind, f) {
if ("m" === kind) {
throw new TypeError("Private method is not writable");
}
if ("a" === kind && !f) {
throw new TypeError("Private accessor was defined without a setter");
}
if ("function" === typeof state ? receiver !== state || !f : !state.has(receiver)) {
throw new TypeError("Cannot write private member to an object whose class did not declare it");
}
return "a" === kind ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;
};
module$exports$tslib.__classPrivateFieldIn = function(state, receiver) {
if (null === receiver || "object" !== typeof receiver && "function" !== typeof receiver) {
throw new TypeError("Cannot use 'in' operator on non-object");
}
return "function" === typeof state ? receiver === state : state.has(receiver);
};
var module$exports$eeapiclient$domain_object = {}, module$contents$eeapiclient$domain_object_module = module$contents$eeapiclient$domain_object_module || {id:"javascript/typescript/contrib/apiclient/core/domain_object.closure.js"};
module$exports$eeapiclient$domain_object.ObjectMapMetadata = function module$contents$eeapiclient$domain_object_ObjectMapMetadata() {
};
var module$contents$eeapiclient$domain_object_Primitive;
module$exports$eeapiclient$domain_object.ClassMetadata = function module$contents$eeapiclient$domain_object_ClassMetadata() {
};
var module$contents$eeapiclient$domain_object_NullClass = function() {
};
module$exports$eeapiclient$domain_object.NULL_VALUE = new module$contents$eeapiclient$domain_object_NullClass();
module$exports$eeapiclient$domain_object.ISerializable = function module$contents$eeapiclient$domain_object_ISerializable() {
};
function module$contents$eeapiclient$domain_object_buildClassMetadataFromPartial(partialClassMetadata) {
return Object.assign({}, {arrays:{}, descriptions:{}, keys:[], objectMaps:{}, objects:{}, enums:{}, emptyArrayIsUnset:!1}, partialClassMetadata);
}
module$exports$eeapiclient$domain_object.buildClassMetadataFromPartial = module$contents$eeapiclient$domain_object_buildClassMetadataFromPartial;
module$exports$eeapiclient$domain_object.Serializable = function() {
this.Serializable$values = {};
};
module$exports$eeapiclient$domain_object.Serializable.prototype.getClassMetadata = function() {
return module$contents$eeapiclient$domain_object_buildClassMetadataFromPartial(this.getPartialClassMetadata());
};
module$exports$eeapiclient$domain_object.Serializable.prototype.Serializable$get = function(key) {
return this.Serializable$values.hasOwnProperty(key) ? this.Serializable$values[key] : null;
};
module$exports$eeapiclient$domain_object.Serializable.prototype.Serializable$set = function(key, value) {
this.Serializable$values[key] = value;
};
module$exports$eeapiclient$domain_object.Serializable.prototype.Serializable$has = function(key) {
return null != this.Serializable$values[key];
};
module$exports$eeapiclient$domain_object.SerializableCtor = function module$contents$eeapiclient$domain_object_SerializableCtor() {
};
module$exports$eeapiclient$domain_object.clone = function module$contents$eeapiclient$domain_object_clone(serializable) {
return module$contents$eeapiclient$domain_object_deserialize(serializable.getConstructor(), module$contents$eeapiclient$domain_object_serialize(serializable));
};
module$exports$eeapiclient$domain_object.isEmpty = function module$contents$eeapiclient$domain_object_isEmpty(serializable) {
return !Object.keys(module$contents$eeapiclient$domain_object_serialize(serializable)).length;
};
function module$contents$eeapiclient$domain_object_serialize(serializable) {
return module$contents$eeapiclient$domain_object_deepCopy(serializable, module$contents$eeapiclient$domain_object_serializeGetter, module$contents$eeapiclient$domain_object_serializeSetter, module$contents$eeapiclient$domain_object_serializeInstanciator);
}
module$exports$eeapiclient$domain_object.serialize = module$contents$eeapiclient$domain_object_serialize;
function module$contents$eeapiclient$domain_object_serializeGetter(key, obj) {
return obj.Serializable$get(key);
}
function module$contents$eeapiclient$domain_object_serializeSetter(key, obj, value) {
obj[key] = value;
}
function module$contents$eeapiclient$domain_object_serializeInstanciator(ctor) {
return {};
}
function module$contents$eeapiclient$domain_object_deserialize(type, raw) {
var result = new type();
return null == raw ? result : module$contents$eeapiclient$domain_object_deepCopy(raw, module$contents$eeapiclient$domain_object_deserializeGetter, module$contents$eeapiclient$domain_object_deserializeSetter, module$contents$eeapiclient$domain_object_deserializeInstanciator, type);
}
module$exports$eeapiclient$domain_object.deserialize = module$contents$eeapiclient$domain_object_deserialize;
function module$contents$eeapiclient$domain_object_deserializeGetter(key, obj) {
return obj[key];
}
function module$contents$eeapiclient$domain_object_deserializeSetter(key, obj, value) {
obj.Serializable$set(key, value);
}
function module$contents$eeapiclient$domain_object_deserializeInstanciator(ctor) {
if (null == ctor) {
throw Error("Cannot deserialize, target constructor was null.");
}
return new ctor();
}
module$exports$eeapiclient$domain_object.strictDeserialize = function module$contents$eeapiclient$domain_object_strictDeserialize(type, raw) {
return module$contents$eeapiclient$domain_object_deserialize(type, raw);
};
var module$contents$eeapiclient$domain_object_CopyValueGetter, module$contents$eeapiclient$domain_object_CopyValueSetter, module$contents$eeapiclient$domain_object_CopyConstructor, module$contents$eeapiclient$domain_object_CopyInstanciator;
function module$contents$eeapiclient$domain_object_deepCopy(source, valueGetter, valueSetter, copyInstanciator, targetConstructor) {
for (var target = copyInstanciator(targetConstructor), metadata = module$contents$eeapiclient$domain_object_deepCopyMetadata(source, target), arrays = metadata.arrays || {}, objects = metadata.objects || {}, objectMaps = metadata.objectMaps || {}, $jscomp$loop$72 = {}, $jscomp$iter$12 = $jscomp.makeIterator(metadata.keys || []), $jscomp$key$key = $jscomp$iter$12.next(); !$jscomp$key$key.done; $jscomp$loop$72 = {$jscomp$loop$prop$mapMetadata$73:$jscomp$loop$72.$jscomp$loop$prop$mapMetadata$73},
$jscomp$key$key = $jscomp$iter$12.next()) {
var key = $jscomp$key$key.value, value = valueGetter(key, source);
if (null != value) {
var copy = void 0;
if (arrays.hasOwnProperty(key)) {
if (metadata.emptyArrayIsUnset && 0 === value.length) {
continue;
}
copy = module$contents$eeapiclient$domain_object_deepCopyValue(value, valueGetter, valueSetter, copyInstanciator, !0, !0, arrays[key]);
} else if (objects.hasOwnProperty(key)) {
copy = module$contents$eeapiclient$domain_object_deepCopyValue(value, valueGetter, valueSetter, copyInstanciator, !1, !0, objects[key]);
} else if (objectMaps.hasOwnProperty(key)) {
$jscomp$loop$72.$jscomp$loop$prop$mapMetadata$73 = objectMaps[key], copy = $jscomp$loop$72.$jscomp$loop$prop$mapMetadata$73.isPropertyArray ? value.map(function($jscomp$loop$72) {
return function(v) {
return module$contents$eeapiclient$domain_object_deepCopyObjectMap(v, $jscomp$loop$72.$jscomp$loop$prop$mapMetadata$73, valueGetter, valueSetter, copyInstanciator);
};
}($jscomp$loop$72)) : module$contents$eeapiclient$domain_object_deepCopyObjectMap(value, $jscomp$loop$72.$jscomp$loop$prop$mapMetadata$73, valueGetter, valueSetter, copyInstanciator);
} else if (Array.isArray(value)) {
if (metadata.emptyArrayIsUnset && 0 === value.length) {
continue;
}
copy = module$contents$eeapiclient$domain_object_deepCopyValue(value, valueGetter, valueSetter, copyInstanciator, !0, !1);
} else {
copy = value instanceof module$contents$eeapiclient$domain_object_NullClass ? null : value;
}
valueSetter(key, target, copy);
}
}
return target;
}
function module$contents$eeapiclient$domain_object_deepCopyObjectMap(value, mapMetadata, valueGetter, valueSetter, copyInstanciator) {
for (var objMap = {}, $jscomp$iter$13 = $jscomp.makeIterator(Object.keys(value)), $jscomp$key$mapKey = $jscomp$iter$13.next(); !$jscomp$key$mapKey.done; $jscomp$key$mapKey = $jscomp$iter$13.next()) {
var mapKey = $jscomp$key$mapKey.value, mapValue = value[mapKey];
null != mapValue && (objMap[mapKey] = module$contents$eeapiclient$domain_object_deepCopyValue(mapValue, valueGetter, valueSetter, copyInstanciator, mapMetadata.isValueArray, mapMetadata.isSerializable, mapMetadata.ctor));
}
return objMap;
}
function module$contents$eeapiclient$domain_object_deepCopyValue(value, valueGetter, valueSetter, copyInstanciator, isArray, isRef, ctor) {
if (isRef && null == ctor) {
throw Error("Cannot deserialize a reference object without a constructor.");
}
return null == value ? value : isArray && isRef ? value.map(function(v) {
return module$contents$eeapiclient$domain_object_deepCopy(v, valueGetter, valueSetter, copyInstanciator, ctor);
}) : isArray && !isRef ? value.map(function(v) {
return v;
}) : !isArray && isRef ? module$contents$eeapiclient$domain_object_deepCopy(value, valueGetter, valueSetter, copyInstanciator, ctor) : value instanceof module$contents$eeapiclient$domain_object_NullClass ? null : "object" === typeof value ? JSON.parse(JSON.stringify(value)) : value;
}
function module$contents$eeapiclient$domain_object_deepCopyMetadata(source, target) {
if (target instanceof module$exports$eeapiclient$domain_object.Serializable) {
var metadata = target.getClassMetadata();
} else if (source instanceof module$exports$eeapiclient$domain_object.Serializable) {
metadata = source.getClassMetadata();
} else {
throw Error("Cannot find ClassMetadata.");
}
return metadata;
}
function module$contents$eeapiclient$domain_object_deepEquals(serializable1, serializable2) {
var metadata1 = serializable1.getClassMetadata(), keys1 = metadata1.keys || [], arrays1 = metadata1.arrays || {}, objects1 = metadata1.objects || {}, objectMaps1 = metadata1.objectMaps || {}, metadata2 = serializable2.getClassMetadata(), arrays2 = metadata2.arrays || {}, objects2 = metadata2.objects || {}, objectMaps2 = metadata2.objectMaps || {};
if (!(module$contents$eeapiclient$domain_object_sameKeys(keys1, metadata2.keys || []) && module$contents$eeapiclient$domain_object_sameKeys(arrays1, arrays2) && module$contents$eeapiclient$domain_object_sameKeys(objects1, objects2) && module$contents$eeapiclient$domain_object_sameKeys(objectMaps1, objectMaps2))) {
return !1;
}
for (var $jscomp$loop$74 = {}, $jscomp$iter$14 = $jscomp.makeIterator(keys1), $jscomp$key$key = $jscomp$iter$14.next(); !$jscomp$key$key.done; $jscomp$loop$74 = {$jscomp$loop$prop$value2$75:$jscomp$loop$74.$jscomp$loop$prop$value2$75, $jscomp$loop$prop$mapMetadata$76:$jscomp$loop$74.$jscomp$loop$prop$mapMetadata$76}, $jscomp$key$key = $jscomp$iter$14.next()) {
var key = $jscomp$key$key.value, has1 = module$contents$eeapiclient$domain_object_hasAndIsNotEmptyArray(serializable1, key, metadata1), has2 = module$contents$eeapiclient$domain_object_hasAndIsNotEmptyArray(serializable2, key, metadata2);
if (has1 !== has2) {
return !1;
}
if (has1) {
var value1 = serializable1.Serializable$get(key);
$jscomp$loop$74.$jscomp$loop$prop$value2$75 = serializable2.Serializable$get(key);
if (arrays1.hasOwnProperty(key)) {
if (!module$contents$eeapiclient$domain_object_deepEqualsValue(value1, $jscomp$loop$74.$jscomp$loop$prop$value2$75, !0, !0)) {
return !1;
}
} else if (objects1.hasOwnProperty(key)) {
if (!module$contents$eeapiclient$domain_object_deepEqualsValue(value1, $jscomp$loop$74.$jscomp$loop$prop$value2$75, !1, !0)) {
return !1;
}
} else if (objectMaps1.hasOwnProperty(key)) {
if ($jscomp$loop$74.$jscomp$loop$prop$mapMetadata$76 = objectMaps1[key], $jscomp$loop$74.$jscomp$loop$prop$mapMetadata$76.isPropertyArray) {
if (!module$contents$eeapiclient$domain_object_sameKeys(value1, $jscomp$loop$74.$jscomp$loop$prop$value2$75) || value1.some(function($jscomp$loop$74) {
return function(v1, i) {
return !module$contents$eeapiclient$domain_object_deepEqualsObjectMap(v1, $jscomp$loop$74.$jscomp$loop$prop$value2$75[i], $jscomp$loop$74.$jscomp$loop$prop$mapMetadata$76);
};
}($jscomp$loop$74))) {
return !1;
}
} else if (!module$contents$eeapiclient$domain_object_deepEqualsObjectMap(value1, $jscomp$loop$74.$jscomp$loop$prop$value2$75, $jscomp$loop$74.$jscomp$loop$prop$mapMetadata$76)) {
return !1;
}
} else if (Array.isArray(value1)) {
if (!module$contents$eeapiclient$domain_object_deepEqualsValue(value1, $jscomp$loop$74.$jscomp$loop$prop$value2$75, !0, !1)) {
return !1;
}
} else if (!module$contents$eeapiclient$domain_object_deepEqualsValue(value1, $jscomp$loop$74.$jscomp$loop$prop$value2$75, !1, !1)) {
return !1;
}
}
}
return !0;
}
module$exports$eeapiclient$domain_object.deepEquals = module$contents$eeapiclient$domain_object_deepEquals;
function module$contents$eeapiclient$domain_object_hasAndIsNotEmptyArray(serializable, key, metadata) {
if (!serializable.Serializable$has(key)) {
return !1;
}
if (!metadata.emptyArrayIsUnset) {
return !0;
}
var value = serializable.Serializable$get(key);
return Array.isArray(value) ? 0 !== value.length : !0;
}
function module$contents$eeapiclient$domain_object_deepEqualsObjectMap(value1, value2, mapMetadata) {
if (!module$contents$eeapiclient$domain_object_sameKeys(value1, value2)) {
return !1;
}
for (var $jscomp$iter$15 = $jscomp.makeIterator(Object.keys(value1)), $jscomp$key$mapKey = $jscomp$iter$15.next(); !$jscomp$key$mapKey.done; $jscomp$key$mapKey = $jscomp$iter$15.next()) {
var mapKey = $jscomp$key$mapKey.value;
if (!module$contents$eeapiclient$domain_object_deepEqualsValue(value1[mapKey], value2[mapKey], mapMetadata.isValueArray, mapMetadata.isSerializable)) {
return !1;
}
}
return !0;
}
function module$contents$eeapiclient$domain_object_deepEqualsValue(value1, value2, isArray, isSerializable) {
if (null == value1 && null == value2) {
return !0;
}
if (isArray && isSerializable) {
if (!module$contents$eeapiclient$domain_object_sameKeys(value1, value2) || value1.some(function(v1, i) {
return !module$contents$eeapiclient$domain_object_deepEquals(v1, value2[i]);
})) {
return !1;
}
} else if (isArray && !isSerializable) {
if (!module$contents$eeapiclient$domain_object_sameKeys(value1, value2) || value1.some(function(v, i) {
return v !== value2[i];
})) {
return !1;
}
} else {
if (isSerializable) {
return module$contents$eeapiclient$domain_object_deepEquals(value1, value2);
}
if ("object" === typeof value1) {
if (JSON.stringify(value1) !== JSON.stringify(value2)) {
return !1;
}
} else if (value1 !== value2) {
return !1;
}
}
return !0;
}
function module$contents$eeapiclient$domain_object_sameKeys(a, b) {
if (typeof a !== typeof b || Array.isArray(a) !== Array.isArray(b)) {
throw Error("Types are not comparable.");
}
var aKeys = Object.keys(a), bKeys = Object.keys(b);
if (aKeys.length !== bKeys.length) {
return !1;
}
Array.isArray(a) || (aKeys.sort(), bKeys.sort());
for (var i = 0; i < aKeys.length; i++) {
if (aKeys[i] !== bKeys[i]) {
return !1;
}
}
return !0;
}
module$exports$eeapiclient$domain_object.serializableEqualityTester = function module$contents$eeapiclient$domain_object_serializableEqualityTester(left, right) {
if (left instanceof module$exports$eeapiclient$domain_object.Serializable && right instanceof module$exports$eeapiclient$domain_object.Serializable) {
return module$contents$eeapiclient$domain_object_deepEquals(left, right);
}
};
goog.dom.HtmlElement = function() {
};
goog.dom.TagName = function() {
};
goog.dom.TagName.cast = function(name, type) {
return name;
};
goog.dom.TagName.prototype.toString = function() {
};
goog.dom.TagName.A = "A";
goog.dom.TagName.ABBR = "ABBR";
goog.dom.TagName.ACRONYM = "ACRONYM";
goog.dom.TagName.ADDRESS = "ADDRESS";
goog.dom.TagName.APPLET = "APPLET";
goog.dom.TagName.AREA = "AREA";
goog.dom.TagName.ARTICLE = "ARTICLE";
goog.dom.TagName.ASIDE = "ASIDE";
goog.dom.TagName.AUDIO = "AUDIO";
goog.dom.TagName.B = "B";
goog.dom.TagName.BASE = "BASE";
goog.dom.TagName.BASEFONT = "BASEFONT";
goog.dom.TagName.BDI = "BDI";
goog.dom.TagName.BDO = "BDO";
goog.dom.TagName.BIG = "BIG";
goog.dom.TagName.BLOCKQUOTE = "BLOCKQUOTE";
goog.dom.TagName.BODY = "BODY";
goog.dom.TagName.BR = "BR";
goog.dom.TagName.BUTTON = "BUTTON";
goog.dom.TagName.CANVAS = "CANVAS";
goog.dom.TagName.CAPTION = "CAPTION";
goog.dom.TagName.CENTER = "CENTER";
goog.dom.TagName.CITE = "CITE";
goog.dom.TagName.CODE = "CODE";
goog.dom.TagName.COL = "COL";
goog.dom.TagName.COLGROUP = "COLGROUP";
goog.dom.TagName.COMMAND = "COMMAND";
goog.dom.TagName.DATA = "DATA";
goog.dom.TagName.DATALIST = "DATALIST";
goog.dom.TagName.DD = "DD";
goog.dom.TagName.DEL = "DEL";
goog.dom.TagName.DETAILS = "DETAILS";
goog.dom.TagName.DFN = "DFN";
goog.dom.TagName.DIALOG = "DIALOG";
goog.dom.TagName.DIR = "DIR";
goog.dom.TagName.DIV = "DIV";
goog.dom.TagName.DL = "DL";
goog.dom.TagName.DT = "DT";
goog.dom.TagName.EM = "EM";
goog.dom.TagName.EMBED = "EMBED";
goog.dom.TagName.FIELDSET = "FIELDSET";
goog.dom.TagName.FIGCAPTION = "FIGCAPTION";
goog.dom.TagName.FIGURE = "FIGURE";
goog.dom.TagName.FONT = "FONT";
goog.dom.TagName.FOOTER = "FOOTER";
goog.dom.TagName.FORM = "FORM";
goog.dom.TagName.FRAME = "FRAME";
goog.dom.TagName.FRAMESET = "FRAMESET";
goog.dom.TagName.H1 = "H1";
goog.dom.TagName.H2 = "H2";
goog.dom.TagName.H3 = "H3";
goog.dom.TagName.H4 = "H4";
goog.dom.TagName.H5 = "H5";
goog.dom.TagName.H6 = "H6";
goog.dom.TagName.HEAD = "HEAD";
goog.dom.TagName.HEADER = "HEADER";
goog.dom.TagName.HGROUP = "HGROUP";
goog.dom.TagName.HR = "HR";
goog.dom.TagName.HTML = "HTML";
goog.dom.TagName.I = "I";
goog.dom.TagName.IFRAME = "IFRAME";
goog.dom.TagName.IMG = "IMG";
goog.dom.TagName.INPUT = "INPUT";
goog.dom.TagName.INS = "INS";
goog.dom.TagName.ISINDEX = "ISINDEX";
goog.dom.TagName.KBD = "KBD";
goog.dom.TagName.KEYGEN = "KEYGEN";
goog.dom.TagName.LABEL = "LABEL";
goog.dom.TagName.LEGEND = "LEGEND";
goog.dom.TagName.LI = "LI";
goog.dom.TagName.LINK = "LINK";
goog.dom.TagName.MAIN = "MAIN";
goog.dom.TagName.MAP = "MAP";
goog.dom.TagName.MARK = "MARK";
goog.dom.TagName.MATH = "MATH";
goog.dom.TagName.MENU = "MENU";
goog.dom.TagName.MENUITEM = "MENUITEM";
goog.dom.TagName.META = "META";
goog.dom.TagName.METER = "METER";
goog.dom.TagName.NAV = "NAV";
goog.dom.TagName.NOFRAMES = "NOFRAMES";
goog.dom.TagName.NOSCRIPT = "NOSCRIPT";
goog.dom.TagName.OBJECT = "OBJECT";
goog.dom.TagName.OL = "OL";
goog.dom.TagName.OPTGROUP = "OPTGROUP";
goog.dom.TagName.OPTION = "OPTION";
goog.dom.TagName.OUTPUT = "OUTPUT";
goog.dom.TagName.P = "P";
goog.dom.TagName.PARAM = "PARAM";
goog.dom.TagName.PICTURE = "PICTURE";
goog.dom.TagName.PRE = "PRE";
goog.dom.TagName.PROGRESS = "PROGRESS";
goog.dom.TagName.Q = "Q";
goog.dom.TagName.RP = "RP";
goog.dom.TagName.RT = "RT";
goog.dom.TagName.RTC = "RTC";
goog.dom.TagName.RUBY = "RUBY";
goog.dom.TagName.S = "S";
goog.dom.TagName.SAMP = "SAMP";
goog.dom.TagName.SCRIPT = "SCRIPT";
goog.dom.TagName.SECTION = "SECTION";
goog.dom.TagName.SELECT = "SELECT";
goog.dom.TagName.SMALL = "SMALL";
goog.dom.TagName.SOURCE = "SOURCE";
goog.dom.TagName.SPAN = "SPAN";
goog.dom.TagName.STRIKE = "STRIKE";
goog.dom.TagName.STRONG = "STRONG";
goog.dom.TagName.STYLE = "STYLE";
goog.dom.TagName.SUB = "SUB";
goog.dom.TagName.SUMMARY = "SUMMARY";
goog.dom.TagName.SUP = "SUP";
goog.dom.TagName.SVG = "SVG";
goog.dom.TagName.TABLE = "TABLE";
goog.dom.TagName.TBODY = "TBODY";
goog.dom.TagName.TD = "TD";
goog.dom.TagName.TEMPLATE = "TEMPLATE";
goog.dom.TagName.TEXTAREA = "TEXTAREA";
goog.dom.TagName.TFOOT = "TFOOT";
goog.dom.TagName.TH = "TH";
goog.dom.TagName.THEAD = "THEAD";
goog.dom.TagName.TIME = "TIME";
goog.dom.TagName.TITLE = "TITLE";
goog.dom.TagName.TR = "TR";
goog.dom.TagName.TRACK = "TRACK";
goog.dom.TagName.TT = "TT";
goog.dom.TagName.U = "U";
goog.dom.TagName.UL = "UL";
goog.dom.TagName.VAR = "VAR";
goog.dom.TagName.VIDEO = "VIDEO";
goog.dom.TagName.WBR = "WBR";
goog.dom.element = {};
var module$contents$goog$dom$element_isElement = function(value) {
return goog.isObject(value) && value.nodeType === goog.dom.NodeType.ELEMENT;
}, module$contents$goog$dom$element_isHtmlElement = function(value) {
return goog.isObject(value) && module$contents$goog$dom$element_isElement(value) && (!value.namespaceURI || "http://www.w3.org/1999/xhtml" === value.namespaceURI);
}, module$contents$goog$dom$element_isHtmlElementOfType = function(value, tagName) {
return goog.isObject(value) && module$contents$goog$dom$element_isHtmlElement(value) && value.tagName.toUpperCase() === tagName.toString();
};
goog.dom.element.isElement = module$contents$goog$dom$element_isElement;
goog.dom.element.isHtmlElement = module$contents$goog$dom$element_isHtmlElement;
goog.dom.element.isHtmlElementOfType = module$contents$goog$dom$element_isHtmlElementOfType;
goog.dom.element.isHtmlAnchorElement = function(value) {
return module$contents$goog$dom$element_isHtmlElementOfType(value, goog.dom.TagName.A);
};
goog.dom.element.isHtmlButtonElement = function(value) {
return module$contents$goog$dom$element_isHtmlElementOfType(value, goog.dom.TagName.BUTTON);
};
goog.dom.element.isHtmlLinkElement = function(value) {
return module$contents$goog$dom$element_isHtmlElementOfType(value, goog.dom.TagName.LINK);
};
goog.dom.element.isHtmlImageElement = function(value) {
return module$contents$goog$dom$element_isHtmlElementOfType(value, goog.dom.TagName.IMG);
};
goog.dom.element.isHtmlAudioElement = function(value) {
return module$contents$goog$dom$element_isHtmlElementOfType(value, goog.dom.TagName.AUDIO);
};
goog.dom.element.isHtmlVideoElement = function(value) {
return module$contents$goog$dom$element_isHtmlElementOfType(value, goog.dom.TagName.VIDEO);
};
goog.dom.element.isHtmlInputElement = function(value) {
return module$contents$goog$dom$element_isHtmlElementOfType(value, goog.dom.TagName.INPUT);
};
goog.dom.element.isHtmlTextAreaElement = function(value) {
return module$contents$goog$dom$element_isHtmlElementOfType(value, goog.dom.TagName.TEXTAREA);
};
goog.dom.element.isHtmlCanvasElement = function(value) {
return module$contents$goog$dom$element_isHtmlElementOfType(value, goog.dom.TagName.CANVAS);
};
goog.dom.element.isHtmlEmbedElement = function(value) {
return module$contents$goog$dom$element_isHtmlElementOfType(value, goog.dom.TagName.EMBED);
};
goog.dom.element.isHtmlFormElement = function(value) {
return module$contents$goog$dom$element_isHtmlElementOfType(value, goog.dom.TagName.FORM);
};
goog.dom.element.isHtmlFrameElement = function(value) {
return module$contents$goog$dom$element_isHtmlElementOfType(value, goog.dom.TagName.FRAME);
};
goog.dom.element.isHtmlIFrameElement = function(value) {
return module$contents$goog$dom$element_isHtmlElementOfType(value, goog.dom.TagName.IFRAME);
};
goog.dom.element.isHtmlObjectElement = function(value) {
return module$contents$goog$dom$element_isHtmlElementOfType(value, goog.dom.TagName.OBJECT);
};
goog.dom.element.isHtmlScriptElement = function(value) {
return module$contents$goog$dom$element_isHtmlElementOfType(value, goog.dom.TagName.SCRIPT);
};
goog.asserts.dom = {};
var module$contents$goog$asserts$dom_assertIsHtmlElement = function(value) {
goog.asserts.ENABLE_ASSERTS && !module$contents$goog$dom$element_isHtmlElement(value) && goog.asserts.fail("Argument is not an HTML Element; got: " + module$contents$goog$asserts$dom_debugStringForType(value));
return value;
}, module$contents$goog$asserts$dom_assertIsHtmlElementOfType = function(value, tagName) {
goog.asserts.ENABLE_ASSERTS && !module$contents$goog$dom$element_isHtmlElementOfType(value, tagName) && goog.asserts.fail("Argument is not an HTML Element with tag name " + (tagName.toString() + "; got: " + module$contents$goog$asserts$dom_debugStringForType(value)));
return value;
}, module$contents$goog$asserts$dom_assertIsHtmlAnchorElement = function(value) {
return module$contents$goog$asserts$dom_assertIsHtmlElementOfType(value, goog.dom.TagName.A);
}, module$contents$goog$asserts$dom_assertIsHtmlButtonElement = function(value) {
return module$contents$goog$asserts$dom_assertIsHtmlElementOfType(value, goog.dom.TagName.BUTTON);
}, module$contents$goog$asserts$dom_assertIsHtmlLinkElement = function(value) {
return module$contents$goog$asserts$dom_assertIsHtmlElementOfType(value, goog.dom.TagName.LINK);
}, module$contents$goog$asserts$dom_assertIsHtmlAudioElement = function(value) {
return module$contents$goog$asserts$dom_assertIsHtmlElementOfType(value, goog.dom.TagName.AUDIO);
}, module$contents$goog$asserts$dom_assertIsHtmlVideoElement = function(value) {
return module$contents$goog$asserts$dom_assertIsHtmlElementOfType(value, goog.dom.TagName.VIDEO);
}, module$contents$goog$asserts$dom_assertIsHtmlInputElement = function(value) {
return module$contents$goog$asserts$dom_assertIsHtmlElementOfType(value, goog.dom.TagName.INPUT);
}, module$contents$goog$asserts$dom_assertIsHtmlEmbedElement = function(value) {
return module$contents$goog$asserts$dom_assertIsHtmlElementOfType(value, goog.dom.TagName.EMBED);
}, module$contents$goog$asserts$dom_assertIsHtmlFormElement = function(value) {
return module$contents$goog$asserts$dom_assertIsHtmlElementOfType(value, goog.dom.TagName.FORM);
}, module$contents$goog$asserts$dom_assertIsHtmlFrameElement = function(value) {
return module$contents$goog$asserts$dom_assertIsHtmlElementOfType(value, goog.dom.TagName.FRAME);
}, module$contents$goog$asserts$dom_assertIsHtmlIFrameElement = function(value) {
return module$contents$goog$asserts$dom_assertIsHtmlElementOfType(value, goog.dom.TagName.IFRAME);
}, module$contents$goog$asserts$dom_assertIsHtmlObjectElement = function(value) {
return module$contents$goog$asserts$dom_assertIsHtmlElementOfType(value, goog.dom.TagName.OBJECT);
}, module$contents$goog$asserts$dom_assertIsHtmlScriptElement = function(value) {
return module$contents$goog$asserts$dom_assertIsHtmlElementOfType(value, goog.dom.TagName.SCRIPT);
}, module$contents$goog$asserts$dom_debugStringForType = function(value) {
if (goog.isObject(value)) {
try {
return value.constructor.displayName || value.constructor.name || Object.prototype.toString.call(value);
} catch (e) {
return "