Skip to content

Instantly share code, notes, and snippets.

@benjaminadk
Created February 23, 2021 11:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save benjaminadk/205e5fae50cfe54ea9ad2af73f3c8268 to your computer and use it in GitHub Desktop.
Save benjaminadk/205e5fae50cfe54ea9ad2af73f3c8268 to your computer and use it in GitHub Desktop.
<script data-pagespeed-no-defer>
;(function () {
var $jscomp = {
scope: {},
checkStringArgs: function (a, b, c) {
if (null == a) {
throw new TypeError(
"The 'this' value for String.prototype." +
c +
' must not be null or undefined'
)
}
if (b instanceof RegExp) {
throw new TypeError(
'First argument to String.prototype.' +
c +
' must not be a regular expression'
)
}
return a + ''
},
}
$jscomp.defineProperty =
'function' == typeof Object.defineProperties
? Object.defineProperty
: function (a, b, c) {
if (c.get || c.set) {
throw new TypeError('ES3 does not support getters and setters.')
}
a != Array.prototype && a != Object.prototype && (a[b] = c.value)
}
$jscomp.getGlobal = function (a) {
return 'undefined' != typeof window && window === a
? a
: 'undefined' != typeof global && null != global
? global
: a
}
$jscomp.global = $jscomp.getGlobal(this)
$jscomp.polyfill = function (a, b, c, d) {
if (b) {
c = $jscomp.global
a = a.split('.')
for (d = 0; d < a.length - 1; d++) {
var e = a[d]
e in c || (c[e] = {})
c = c[e]
}
a = a[a.length - 1]
d = c[a]
b = b(d)
b != d &&
null != b &&
$jscomp.defineProperty(c, a, {
configurable: !0,
writable: !0,
value: b,
})
}
}
$jscomp.polyfill(
'String.prototype.repeat',
function (a) {
return a
? a
: function (a) {
var b = $jscomp.checkStringArgs(this, null, 'repeat')
if (0 > a || 1342177279 < a) {
throw new RangeError('Invalid count value')
}
a |= 0
for (var d = ''; a; ) {
if ((a & 1 && (d += b), (a >>>= 1))) {
b += b
}
}
return d
}
},
'es6-impl',
'es3'
)
var COMPILED = !0,
goog = goog || {}
goog.global = this
goog.isDef = function (a) {
return void 0 !== a
}
goog.exportPath_ = function (a, b, c) {
a = a.split('.')
c = c || goog.global
a[0] in c || !c.execScript || c.execScript('var ' + a[0])
for (var d; a.length && (d = a.shift()); ) {
!a.length && goog.isDef(b)
? (c[d] = b)
: (c = c[d] ? c[d] : (c[d] = {}))
}
}
goog.define = function (a, b) {
var c = b
COMPILED ||
(goog.global.CLOSURE_UNCOMPILED_DEFINES &&
Object.prototype.hasOwnProperty.call(
goog.global.CLOSURE_UNCOMPILED_DEFINES,
a
)
? (c = goog.global.CLOSURE_UNCOMPILED_DEFINES[a])
: goog.global.CLOSURE_DEFINES &&
Object.prototype.hasOwnProperty.call(
goog.global.CLOSURE_DEFINES,
a
) &&
(c = goog.global.CLOSURE_DEFINES[a]))
goog.exportPath_(a, c)
}
goog.DEBUG = !0
goog.LOCALE = 'en'
goog.TRUSTED_SITE = !0
goog.STRICT_MODE_COMPATIBLE = !1
goog.DISALLOW_TEST_ONLY_CODE = COMPILED && !goog.DEBUG
goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING = !1
goog.provide = function (a) {
if (goog.isInModuleLoader_()) {
throw Error('goog.provide can not be used within a goog.module.')
}
if (!COMPILED && goog.isProvided_(a)) {
throw Error('Namespace "' + a + '" already declared.')
}
goog.constructNamespace_(a)
}
goog.constructNamespace_ = function (a, b) {
if (!COMPILED) {
delete goog.implicitNamespaces_[a]
for (
var c = a;
(c = c.substring(0, c.lastIndexOf('.'))) && !goog.getObjectByName(c);
) {
goog.implicitNamespaces_[c] = !0
}
}
goog.exportPath_(a, b)
}
goog.VALID_MODULE_RE_ = /^[a-zA-Z_$][a-zA-Z0-9._$]*$/
goog.module = function (a) {
if (!goog.isString(a) || !a || -1 == a.search(goog.VALID_MODULE_RE_)) {
throw Error('Invalid module identifier')
}
if (!goog.isInModuleLoader_()) {
throw Error(
'Module ' +
a +
" has been loaded incorrectly. Note, modules cannot be loaded as normal scripts. They require some kind of pre-processing step. You're likely trying to load a module via a script tag or as a part of a concatenated bundle without rewriting the module. For more info see: https://github.com/google/closure-library/wiki/goog.module:-an-ES6-module-like-alternative-to-goog.provide."
)
}
if (goog.moduleLoaderState_.moduleName) {
throw Error('goog.module may only be called once per module.')
}
goog.moduleLoaderState_.moduleName = a
if (!COMPILED) {
if (goog.isProvided_(a)) {
throw Error('Namespace "' + a + '" already declared.')
}
delete goog.implicitNamespaces_[a]
}
}
goog.module.get = function (a) {
return goog.module.getInternal_(a)
}
goog.module.getInternal_ = function (a) {
if (!COMPILED) {
return goog.isProvided_(a)
? a in goog.loadedModules_
? goog.loadedModules_[a]
: goog.getObjectByName(a)
: null
}
}
goog.moduleLoaderState_ = null
goog.isInModuleLoader_ = function () {
return null != goog.moduleLoaderState_
}
goog.module.declareLegacyNamespace = function () {
if (!COMPILED && !goog.isInModuleLoader_()) {
throw Error(
'goog.module.declareLegacyNamespace must be called from within a goog.module'
)
}
if (!COMPILED && !goog.moduleLoaderState_.moduleName) {
throw Error(
'goog.module must be called prior to goog.module.declareLegacyNamespace.'
)
}
goog.moduleLoaderState_.declareLegacyNamespace = !0
}
goog.setTestOnly = function (a) {
if (goog.DISALLOW_TEST_ONLY_CODE) {
throw (
((a = a || ''),
Error(
'Importing test-only code into non-debug environment' +
(a ? ': ' + a : '.')
))
)
}
}
goog.forwardDeclare = function (a) {}
COMPILED ||
((goog.isProvided_ = function (a) {
return (
a in goog.loadedModules_ ||
(!goog.implicitNamespaces_[a] &&
goog.isDefAndNotNull(goog.getObjectByName(a)))
)
}),
(goog.implicitNamespaces_ = { 'goog.module': !0 }))
goog.getObjectByName = function (a, b) {
for (var c = a.split('.'), d = b || goog.global, e; (e = c.shift()); ) {
if (goog.isDefAndNotNull(d[e])) {
d = d[e]
} else {
return null
}
}
return d
}
goog.globalize = function (a, b) {
var c = b || goog.global,
d
for (d in a) {
c[d] = a[d]
}
}
goog.addDependency = function (a, b, c, d) {
if (goog.DEPENDENCIES_ENABLED) {
var e
a = a.replace(/\\/g, '/')
var f = goog.dependencies_
;(d && 'boolean' !== typeof d) || (d = d ? { module: 'goog' } : {})
for (var g = 0; (e = b[g]); g++) {
;(f.nameToPath[e] = a), (f.loadFlags[a] = d)
}
for (d = 0; (b = c[d]); d++) {
a in f.requires || (f.requires[a] = {}), (f.requires[a][b] = !0)
}
}
}
goog.ENABLE_DEBUG_LOADER = !0
goog.logToConsole_ = function (a) {
goog.global.console && goog.global.console.error(a)
}
goog.require = function (a) {
if (!COMPILED) {
goog.ENABLE_DEBUG_LOADER &&
goog.IS_OLD_IE_ &&
goog.maybeProcessDeferredDep_(a)
if (goog.isProvided_(a)) {
if (goog.isInModuleLoader_()) {
return goog.module.getInternal_(a)
}
} else {
if (goog.ENABLE_DEBUG_LOADER) {
var b = goog.getPathFromDeps_(a)
if (b) {
goog.writeScripts_(b)
} else {
throw (
((a = 'goog.require could not find: ' + a),
goog.logToConsole_(a),
Error(a))
)
}
}
}
return null
}
}
goog.basePath = ''
goog.nullFunction = function () {}
goog.abstractMethod = function () {
throw Error('unimplemented abstract method')
}
goog.addSingletonGetter = function (a) {
a.getInstance = function () {
if (a.instance_) {
return a.instance_
}
goog.DEBUG &&
(goog.instantiatedSingletons_[
goog.instantiatedSingletons_.length
] = a)
return (a.instance_ = new a())
}
}
goog.instantiatedSingletons_ = []
goog.LOAD_MODULE_USING_EVAL = !0
goog.SEAL_MODULE_EXPORTS = goog.DEBUG
goog.loadedModules_ = {}
goog.DEPENDENCIES_ENABLED = !COMPILED && goog.ENABLE_DEBUG_LOADER
goog.TRANSPILE = 'detect'
goog.TRANSPILER = 'transpile.js'
goog.DEPENDENCIES_ENABLED &&
((goog.dependencies_ = {
loadFlags: {},
nameToPath: {},
requires: {},
visited: {},
written: {},
deferred: {},
}),
(goog.inHtmlDocument_ = function () {
var a = goog.global.document
return null != a && 'write' in a
}),
(goog.findBasePath_ = function () {
if (goog.isDef(goog.global.CLOSURE_BASE_PATH)) {
goog.basePath = goog.global.CLOSURE_BASE_PATH
} else {
if (goog.inHtmlDocument_()) {
for (
var a = goog.global.document.getElementsByTagName('SCRIPT'),
b = a.length - 1;
0 <= b;
--b
) {
var c = a[b].src,
d = c.lastIndexOf('?'),
d = -1 == d ? c.length : d
if ('base.js' == c.substr(d - 7, 7)) {
goog.basePath = c.substr(0, d - 7)
break
}
}
}
}
}),
(goog.importScript_ = function (a, b) {
;(goog.global.CLOSURE_IMPORT_SCRIPT || goog.writeScriptTag_)(a, b) &&
(goog.dependencies_.written[a] = !0)
}),
(goog.IS_OLD_IE_ = !(
goog.global.atob ||
!goog.global.document ||
!goog.global.document.all
)),
(goog.importProcessedScript_ = function (a, b, c) {
goog.importScript_(
'',
'goog.retrieveAndExec_("' + a + '", ' + b + ', ' + c + ');'
)
}),
(goog.queuedModules_ = []),
(goog.wrapModule_ = function (a, b) {
return goog.LOAD_MODULE_USING_EVAL && goog.isDef(goog.global.JSON)
? 'goog.loadModule(' +
goog.global.JSON.stringify(b + '\n//# sourceURL=' + a + '\n') +
');'
: 'goog.loadModule(function(exports) {"use strict";' +
b +
'\n;return exports});\n//# sourceURL=' +
a +
'\n'
}),
(goog.loadQueuedModules_ = function () {
var a = goog.queuedModules_.length
if (0 < a) {
var b = goog.queuedModules_
goog.queuedModules_ = []
for (var c = 0; c < a; c++) {
goog.maybeProcessDeferredPath_(b[c])
}
}
}),
(goog.maybeProcessDeferredDep_ = function (a) {
goog.isDeferredModule_(a) &&
goog.allDepsAreAvailable_(a) &&
((a = goog.getPathFromDeps_(a)),
goog.maybeProcessDeferredPath_(goog.basePath + a))
}),
(goog.isDeferredModule_ = function (a) {
var b =
((a = goog.getPathFromDeps_(a)) &&
goog.dependencies_.loadFlags[a]) ||
{},
c = b.lang || 'es3'
return a && ('goog' == b.module || goog.needsTranspile_(c))
? goog.basePath + a in goog.dependencies_.deferred
: !1
}),
(goog.allDepsAreAvailable_ = function (a) {
if (
(a = goog.getPathFromDeps_(a)) &&
a in goog.dependencies_.requires
) {
for (var b in goog.dependencies_.requires[a]) {
if (!goog.isProvided_(b) && !goog.isDeferredModule_(b)) {
return !1
}
}
}
return !0
}),
(goog.maybeProcessDeferredPath_ = function (a) {
if (a in goog.dependencies_.deferred) {
var b = goog.dependencies_.deferred[a]
delete goog.dependencies_.deferred[a]
goog.globalEval(b)
}
}),
(goog.loadModuleFromUrl = function (a) {
goog.retrieveAndExec_(a, !0, !1)
}),
(goog.writeScriptSrcNode_ = function (a) {
goog.global.document.write(
'<script type="text/javascript" src="' + a + '">\x3c/script>'
)
}),
(goog.appendScriptSrcNode_ = function (a) {
var b = goog.global.document,
c = b.createElement('script')
c.type = 'text/javascript'
c.src = a
c.defer = !1
c.async = !1
b.head.appendChild(c)
}),
(goog.writeScriptTag_ = function (a, b) {
if (goog.inHtmlDocument_()) {
var c = goog.global.document
if (
!goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING &&
'complete' == c.readyState
) {
if (/\bdeps.js$/.test(a)) {
return !1
}
throw Error('Cannot write "' + a + '" after document load')
}
if (void 0 === b) {
if (goog.IS_OLD_IE_) {
var d =
" onreadystatechange='goog.onScriptLoad_(this, " +
++goog.lastNonModuleScriptIndex_ +
")' "
c.write(
'<script type="text/javascript" src="' +
a +
'"' +
d +
'>\x3c/script>'
)
} else {
goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING
? goog.appendScriptSrcNode_(a)
: goog.writeScriptSrcNode_(a)
}
} else {
c.write('<script type="text/javascript">' + b + '\x3c/script>')
}
return !0
}
return !1
}),
(goog.needsTranspile_ = function (a) {
if ('always' == goog.TRANSPILE) {
return !0
}
if ('never' == goog.TRANSPILE) {
return !1
}
goog.requiresTranspilation_ ||
(goog.requiresTranspilation_ = goog.createRequiresTranspilation_())
if (a in goog.requiresTranspilation_) {
return goog.requiresTranspilation_[a]
}
throw Error('Unknown language mode: ' + a)
}),
(goog.createRequiresTranspilation_ = function () {
function a(a, b) {
d ? (c[a] = !0) : b() ? (c[a] = !1) : (d = c[a] = !0)
}
function b(a) {
try {
return !!eval(a)
} catch (f) {
return !1
}
}
var c = { es3: !1 },
d = !1
a('es5', function () {
return b('[1,].length==1')
})
a('es6', function () {
return b(
'(()=>{"use strict";class X{constructor(){if(new.target!=String)throw 1;this.x=42}}let q=Reflect.construct(X,[],String);if(q.x!=42||!(q instanceof String))throw 1;for(const a of[2,3]){if(a==2)continue;function f(z={a}){let a=0;return z.a}{function f(){return 0;}}return f()==3}})()'
)
})
a('es6-impl', function () {
return !0
})
a('es7', function () {
return b('2 ** 2 == 4')
})
a('es8', function () {
return b('async () => 1, true')
})
return c
}),
(goog.requiresTranspilation_ = null),
(goog.lastNonModuleScriptIndex_ = 0),
(goog.onScriptLoad_ = function (a, b) {
'complete' == a.readyState &&
goog.lastNonModuleScriptIndex_ == b &&
goog.loadQueuedModules_()
return !0
}),
(goog.writeScripts_ = function (a) {
function b(a) {
if (!(a in e.written || a in e.visited)) {
e.visited[a] = !0
if (a in e.requires) {
for (var f in e.requires[a]) {
if (!goog.isProvided_(f)) {
if (f in e.nameToPath) {
b(e.nameToPath[f])
} else {
throw Error('Undefined nameToPath for ' + f)
}
}
}
}
a in d || ((d[a] = !0), c.push(a))
}
}
var c = [],
d = {},
e = goog.dependencies_
b(a)
for (a = 0; a < c.length; a++) {
var f = c[a]
goog.dependencies_.written[f] = !0
}
var g = goog.moduleLoaderState_
goog.moduleLoaderState_ = null
for (a = 0; a < c.length; a++) {
if ((f = c[a])) {
var h = e.loadFlags[f] || {},
k = goog.needsTranspile_(h.lang || 'es3')
'goog' == h.module || k
? goog.importProcessedScript_(
goog.basePath + f,
'goog' == h.module,
k
)
: goog.importScript_(goog.basePath + f)
} else {
throw (
((goog.moduleLoaderState_ = g), Error('Undefined script input'))
)
}
}
goog.moduleLoaderState_ = g
}),
(goog.getPathFromDeps_ = function (a) {
return a in goog.dependencies_.nameToPath
? goog.dependencies_.nameToPath[a]
: null
}),
goog.findBasePath_(),
goog.global.CLOSURE_NO_DEPS ||
goog.importScript_(goog.basePath + 'deps.js'))
goog.loadModule = function (a) {
var b = goog.moduleLoaderState_
try {
goog.moduleLoaderState_ = {
moduleName: void 0,
declareLegacyNamespace: !1,
}
var c
if (goog.isFunction(a)) {
c = a.call(void 0, {})
} else {
if (goog.isString(a)) {
c = goog.loadModuleFromSource_.call(void 0, a)
} else {
throw Error('Invalid module definition')
}
}
var d = goog.moduleLoaderState_.moduleName
if (!goog.isString(d) || !d) {
throw Error('Invalid module name "' + d + '"')
}
goog.moduleLoaderState_.declareLegacyNamespace
? goog.constructNamespace_(d, c)
: goog.SEAL_MODULE_EXPORTS &&
Object.seal &&
goog.isObject(c) &&
Object.seal(c)
goog.loadedModules_[d] = c
} finally {
goog.moduleLoaderState_ = b
}
}
goog.loadModuleFromSource_ = function (a) {
eval(a)
return {}
}
goog.normalizePath_ = function (a) {
a = a.split('/')
for (var b = 0; b < a.length; ) {
'.' == a[b]
? a.splice(b, 1)
: b && '..' == a[b] && a[b - 1] && '..' != a[b - 1]
? a.splice(--b, 2)
: b++
}
return a.join('/')
}
goog.loadFileSync_ = function (a) {
if (goog.global.CLOSURE_LOAD_FILE_SYNC) {
return goog.global.CLOSURE_LOAD_FILE_SYNC(a)
}
try {
var b = new goog.global.XMLHttpRequest()
b.open('get', a, !1)
b.send()
return 0 == b.status || 200 == b.status ? b.responseText : null
} catch (c) {
return null
}
}
goog.retrieveAndExec_ = function (a, b, c) {
if (!COMPILED) {
var d = a
a = goog.normalizePath_(a)
var e = goog.global.CLOSURE_IMPORT_SCRIPT || goog.writeScriptTag_,
f = goog.loadFileSync_(a)
if (null == f) {
throw Error('Load of "' + a + '" failed')
}
c && (f = goog.transpile_.call(goog.global, f, a))
f = b ? goog.wrapModule_(a, f) : f + ('\n//# sourceURL=' + a)
goog.IS_OLD_IE_
? ((goog.dependencies_.deferred[d] = f), goog.queuedModules_.push(d))
: e(a, f)
}
}
goog.transpile_ = function (a, b) {
var c = goog.global.$jscomp
c || (goog.global.$jscomp = c = {})
var d = c.transpile
if (!d) {
var e = goog.basePath + goog.TRANSPILER,
f = goog.loadFileSync_(e)
if (f) {
eval(f + '\n//# sourceURL=' + e)
if (
goog.global.$gwtExport &&
goog.global.$gwtExport.$jscomp &&
!goog.global.$gwtExport.$jscomp.transpile
) {
throw Error(
'The transpiler did not properly export the "transpile" method. $gwtExport: ' +
JSON.stringify(goog.global.$gwtExport)
)
}
goog.global.$jscomp.transpile =
goog.global.$gwtExport.$jscomp.transpile
c = goog.global.$jscomp
d = c.transpile
}
}
d ||
(d = c.transpile = function (a, b) {
goog.logToConsole_(
b + ' requires transpilation but no transpiler was found.'
)
return a
})
return d(a, b)
}
goog.typeOf = function (a) {
var b = typeof a
if ('object' == b) {
if (a) {
if (a instanceof Array) {
return 'array'
}
if (a instanceof Object) {
return b
}
var c = Object.prototype.toString.call(a)
if ('[object Window]' == c) {
return 'object'
}
if (
'[object Array]' == c ||
('number' == typeof a.length &&
'undefined' != typeof a.splice &&
'undefined' != typeof a.propertyIsEnumerable &&
!a.propertyIsEnumerable('splice'))
) {
return 'array'
}
if (
'[object Function]' == c ||
('undefined' != typeof a.call &&
'undefined' != typeof a.propertyIsEnumerable &&
!a.propertyIsEnumerable('call'))
) {
return 'function'
}
} else {
return 'null'
}
} else {
if ('function' == b && 'undefined' == typeof a.call) {
return 'object'
}
}
return b
}
goog.isNull = function (a) {
return null === a
}
goog.isDefAndNotNull = function (a) {
return null != a
}
goog.isArray = function (a) {
return 'array' == goog.typeOf(a)
}
goog.isArrayLike = function (a) {
var b = goog.typeOf(a)
return 'array' == b || ('object' == b && 'number' == typeof a.length)
}
goog.isDateLike = function (a) {
return goog.isObject(a) && 'function' == typeof a.getFullYear
}
goog.isString = function (a) {
return 'string' == typeof a
}
goog.isBoolean = function (a) {
return 'boolean' == typeof a
}
goog.isNumber = function (a) {
return 'number' == typeof a
}
goog.isFunction = function (a) {
return 'function' == goog.typeOf(a)
}
goog.isObject = function (a) {
var b = typeof a
return ('object' == b && null != a) || 'function' == b
}
goog.getUid = function (a) {
return (
a[goog.UID_PROPERTY_] || (a[goog.UID_PROPERTY_] = ++goog.uidCounter_)
)
}
goog.hasUid = function (a) {
return !!a[goog.UID_PROPERTY_]
}
goog.removeUid = function (a) {
null !== a &&
'removeAttribute' in a &&
a.removeAttribute(goog.UID_PROPERTY_)
try {
delete a[goog.UID_PROPERTY_]
} catch (b) {}
}
goog.UID_PROPERTY_ = 'closure_uid_' + ((1e9 * Math.random()) >>> 0)
goog.uidCounter_ = 0
goog.getHashCode = goog.getUid
goog.removeHashCode = goog.removeUid
goog.cloneObject = function (a) {
var b = goog.typeOf(a)
if ('object' == b || 'array' == b) {
if (a.clone) {
return a.clone()
}
var b = 'array' == b ? [] : {},
c
for (c in a) {
b[c] = goog.cloneObject(a[c])
}
return b
}
return a
}
goog.bindNative_ = function (a, b, c) {
return a.call.apply(a.bind, arguments)
}
goog.bindJs_ = function (a, b, c) {
if (!a) {
throw Error()
}
if (2 < arguments.length) {
var d = Array.prototype.slice.call(arguments, 2)
return function () {
var c = Array.prototype.slice.call(arguments)
Array.prototype.unshift.apply(c, d)
return a.apply(b, c)
}
}
return function () {
return a.apply(b, arguments)
}
}
goog.bind = function (a, b, c) {
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 (a, b) {
var c = Array.prototype.slice.call(arguments, 1)
return function () {
var b = c.slice()
b.push.apply(b, arguments)
return a.apply(this, b)
}
}
goog.mixin = function (a, b) {
for (var c in b) {
a[c] = b[c]
}
}
goog.now =
(goog.TRUSTED_SITE && Date.now) ||
function () {
return +new Date()
}
goog.globalEval = function (a) {
if (goog.global.execScript) {
goog.global.execScript(a, 'JavaScript')
} else {
if (goog.global.eval) {
if (null == goog.evalWorksForGlobals_) {
if (
(goog.global.eval('var _evalTest_ = 1;'),
'undefined' != typeof goog.global._evalTest_)
) {
try {
delete goog.global._evalTest_
} catch (d) {}
goog.evalWorksForGlobals_ = !0
} else {
goog.evalWorksForGlobals_ = !1
}
}
if (goog.evalWorksForGlobals_) {
goog.global.eval(a)
} else {
var b = goog.global.document,
c = b.createElement('SCRIPT')
c.type = 'text/javascript'
c.defer = !1
c.appendChild(b.createTextNode(a))
b.body.appendChild(c)
b.body.removeChild(c)
}
} else {
throw Error('goog.globalEval not available')
}
}
}
goog.evalWorksForGlobals_ = null
goog.getCssName = function (a, b) {
if ('.' == String(a).charAt(0)) {
throw Error(
'className passed in goog.getCssName must not start with ".". You passed: ' +
a
)
}
var c = function (a) {
return goog.cssNameMapping_[a] || a
},
d = function (a) {
a = a.split('-')
for (var b = [], d = 0; d < a.length; d++) {
b.push(c(a[d]))
}
return b.join('-')
},
d = goog.cssNameMapping_
? 'BY_WHOLE' == goog.cssNameMappingStyle_
? c
: d
: function (a) {
return a
},
d = b ? a + '-' + d(b) : d(a)
return goog.global.CLOSURE_CSS_NAME_MAP_FN
? goog.global.CLOSURE_CSS_NAME_MAP_FN(d)
: d
}
goog.setCssNameMapping = function (a, b) {
goog.cssNameMapping_ = a
goog.cssNameMappingStyle_ = b
}
!COMPILED &&
goog.global.CLOSURE_CSS_NAME_MAPPING &&
(goog.cssNameMapping_ = goog.global.CLOSURE_CSS_NAME_MAPPING)
goog.getMsg = function (a, b) {
b &&
(a = a.replace(/\{\$([^}]+)}/g, function (a, d) {
return null != b && d in b ? b[d] : a
}))
return a
}
goog.getMsgWithFallback = function (a, b) {
return a
}
goog.exportSymbol = function (a, b, c) {
goog.exportPath_(a, b, c)
}
goog.exportProperty = function (a, b, c) {
a[b] = c
}
goog.inherits = function (a, b) {
function c() {}
c.prototype = b.prototype
a.superClass_ = b.prototype
a.prototype = new c()
a.prototype.constructor = a
a.base = function (a, c, f) {
for (
var d = Array(arguments.length - 2), e = 2;
e < arguments.length;
e++
) {
d[e - 2] = arguments[e]
}
return b.prototype[c].apply(a, d)
}
}
goog.base = function (a, b, c) {
var d = arguments.callee.caller
if (goog.STRICT_MODE_COMPATIBLE || (goog.DEBUG && !d)) {
throw Error(
'arguments.caller not defined. goog.base() cannot be used with strict mode code. See http://www.ecma-international.org/ecma-262/5.1/#sec-C'
)
}
if (d.superClass_) {
for (
var e = Array(arguments.length - 1), f = 1;
f < arguments.length;
f++
) {
e[f - 1] = arguments[f]
}
return d.superClass_.constructor.apply(a, e)
}
e = Array(arguments.length - 2)
for (f = 2; f < arguments.length; f++) {
e[f - 2] = arguments[f]
}
for (
var f = !1, g = a.constructor;
g;
g = g.superClass_ && g.superClass_.constructor
) {
if (g.prototype[b] === d) {
f = !0
} else {
if (f) {
return g.prototype[b].apply(a, e)
}
}
}
if (a[b] === d) {
return a.constructor.prototype[b].apply(a, e)
}
throw Error(
'goog.base called from a method of one name to a method of a different name'
)
}
goog.scope = function (a) {
if (goog.isInModuleLoader_()) {
throw Error('goog.scope is not supported within a goog.module.')
}
a.call(goog.global)
}
COMPILED || (goog.global.COMPILED = COMPILED)
goog.defineClass = function (a, b) {
var c = b.constructor,
d = b.statics
;(c && c != Object.prototype.constructor) ||
(c = function () {
throw Error(
'cannot instantiate an interface (no constructor defined).'
)
})
c = goog.defineClass.createSealingConstructor_(c, a)
a && goog.inherits(c, a)
delete b.constructor
delete b.statics
goog.defineClass.applyProperties_(c.prototype, b)
null != d &&
(d instanceof Function ? d(c) : goog.defineClass.applyProperties_(c, d))
return c
}
goog.defineClass.SEAL_CLASS_INSTANCES = goog.DEBUG
goog.defineClass.createSealingConstructor_ = function (a, b) {
if (!goog.defineClass.SEAL_CLASS_INSTANCES) {
return a
}
var c = !goog.defineClass.isUnsealable_(b),
d = function () {
var b = a.apply(this, arguments) || this
b[goog.UID_PROPERTY_] = b[goog.UID_PROPERTY_]
this.constructor === d &&
c &&
Object.seal instanceof Function &&
Object.seal(b)
return b
}
return d
}
goog.defineClass.isUnsealable_ = function (a) {
return (
a && a.prototype && a.prototype[goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_]
)
}
goog.defineClass.OBJECT_PROTOTYPE_FIELDS_ = 'constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf'.split(
' '
)
goog.defineClass.applyProperties_ = function (a, b) {
for (var c in b) {
Object.prototype.hasOwnProperty.call(b, c) && (a[c] = b[c])
}
for (
var d = 0;
d < goog.defineClass.OBJECT_PROTOTYPE_FIELDS_.length;
d++
) {
;(c = goog.defineClass.OBJECT_PROTOTYPE_FIELDS_[d]),
Object.prototype.hasOwnProperty.call(b, c) && (a[c] = b[c])
}
}
goog.tagUnsealableClass = function (a) {
!COMPILED &&
goog.defineClass.SEAL_CLASS_INSTANCES &&
(a.prototype[goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_] = !0)
}
goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_ = 'goog_defineClass_legacy_unsealable'
goog.debug = {}
goog.debug.Error = function (a) {
if (Error.captureStackTrace) {
Error.captureStackTrace(this, goog.debug.Error)
} else {
var b = Error().stack
b && (this.stack = b)
}
a && (this.message = String(a))
this.reportErrorToServer = !0
}
goog.inherits(goog.debug.Error, Error)
goog.debug.Error.prototype.name = 'CustomError'
goog.dom = {}
goog.dom.NodeType = {
ELEMENT: 1,
ATTRIBUTE: 2,
TEXT: 3,
CDATA_SECTION: 4,
ENTITY_REFERENCE: 5,
ENTITY: 6,
PROCESSING_INSTRUCTION: 7,
COMMENT: 8,
DOCUMENT: 9,
DOCUMENT_TYPE: 10,
DOCUMENT_FRAGMENT: 11,
NOTATION: 12,
}
goog.string = {}
goog.string.DETECT_DOUBLE_ESCAPING = !1
goog.string.FORCE_NON_DOM_HTML_UNESCAPING = !1
goog.string.Unicode = { NBSP: '\u00a0' }
goog.string.startsWith = function (a, b) {
return 0 == a.lastIndexOf(b, 0)
}
goog.string.endsWith = function (a, b) {
var c = a.length - b.length
return 0 <= c && a.indexOf(b, c) == c
}
goog.string.caseInsensitiveStartsWith = function (a, b) {
return 0 == goog.string.caseInsensitiveCompare(b, a.substr(0, b.length))
}
goog.string.caseInsensitiveEndsWith = function (a, b) {
return (
0 ==
goog.string.caseInsensitiveCompare(
b,
a.substr(a.length - b.length, b.length)
)
)
}
goog.string.caseInsensitiveEquals = function (a, b) {
return a.toLowerCase() == b.toLowerCase()
}
goog.string.subs = function (a, b) {
for (
var c = a.split('%s'),
d = '',
e = Array.prototype.slice.call(arguments, 1);
e.length && 1 < c.length;
) {
d += c.shift() + e.shift()
}
return d + c.join('%s')
}
goog.string.collapseWhitespace = function (a) {
return a.replace(/[\s\xa0]+/g, ' ').replace(/^\s+|\s+$/g, '')
}
goog.string.isEmptyOrWhitespace = function (a) {
return /^[\s\xa0]*$/.test(a)
}
goog.string.isEmptyString = function (a) {
return 0 == a.length
}
goog.string.isEmpty = goog.string.isEmptyOrWhitespace
goog.string.isEmptyOrWhitespaceSafe = function (a) {
return goog.string.isEmptyOrWhitespace(goog.string.makeSafe(a))
}
goog.string.isEmptySafe = goog.string.isEmptyOrWhitespaceSafe
goog.string.isBreakingWhitespace = function (a) {
return !/[^\t\n\r ]/.test(a)
}
goog.string.isAlpha = function (a) {
return !/[^a-zA-Z]/.test(a)
}
goog.string.isNumeric = function (a) {
return !/[^0-9]/.test(a)
}
goog.string.isAlphaNumeric = function (a) {
return !/[^a-zA-Z0-9]/.test(a)
}
goog.string.isSpace = function (a) {
return ' ' == a
}
goog.string.isUnicodeChar = function (a) {
return (
(1 == a.length && ' ' <= a && '~' >= a) ||
('\u0080' <= a && '\ufffd' >= a)
)
}
goog.string.stripNewlines = function (a) {
return a.replace(/(\r\n|\r|\n)+/g, ' ')
}
goog.string.canonicalizeNewlines = function (a) {
return a.replace(/(\r\n|\r|\n)/g, '\n')
}
goog.string.normalizeWhitespace = function (a) {
return a.replace(/\xa0|\s/g, ' ')
}
goog.string.normalizeSpaces = function (a) {
return a.replace(/\xa0|[ \t]+/g, ' ')
}
goog.string.collapseBreakingSpaces = function (a) {
return a
.replace(/[\t\r\n ]+/g, ' ')
.replace(/^[\t\r\n ]+|[\t\r\n ]+$/g, '')
}
goog.string.trim =
goog.TRUSTED_SITE && String.prototype.trim
? function (a) {
return a.trim()
}
: function (a) {
return a.replace(/^[\s\xa0]+|[\s\xa0]+$/g, '')
}
goog.string.trimLeft = function (a) {
return a.replace(/^[\s\xa0]+/, '')
}
goog.string.trimRight = function (a) {
return a.replace(/[\s\xa0]+$/, '')
}
goog.string.caseInsensitiveCompare = function (a, b) {
var c = String(a).toLowerCase(),
d = String(b).toLowerCase()
return c < d ? -1 : c == d ? 0 : 1
}
goog.string.numberAwareCompare_ = function (a, b, c) {
if (a == b) {
return 0
}
if (!a) {
return -1
}
if (!b) {
return 1
}
for (
var d = a.toLowerCase().match(c),
e = b.toLowerCase().match(c),
f = Math.min(d.length, e.length),
g = 0;
g < f;
g++
) {
c = d[g]
var h = e[g]
if (c != h) {
return (
(a = parseInt(c, 10)),
!isNaN(a) && ((b = parseInt(h, 10)), !isNaN(b) && a - b)
? a - b
: c < h
? -1
: 1
)
}
}
return d.length != e.length ? d.length - e.length : a < b ? -1 : 1
}
goog.string.intAwareCompare = function (a, b) {
return goog.string.numberAwareCompare_(a, b, /\d+|\D+/g)
}
goog.string.floatAwareCompare = function (a, b) {
return goog.string.numberAwareCompare_(a, b, /\d+|\.\d+|\D+/g)
}
goog.string.numerateCompare = goog.string.floatAwareCompare
goog.string.urlEncode = function (a) {
return encodeURIComponent(String(a))
}
goog.string.urlDecode = function (a) {
return decodeURIComponent(a.replace(/\+/g, ' '))
}
goog.string.newLineToBr = function (a, b) {
return a.replace(/(\r\n|\r|\n)/g, b ? '<br />' : '<br>')
}
goog.string.htmlEscape = function (a, b) {
if (b) {
;(a = a
.replace(goog.string.AMP_RE_, '&amp;')
.replace(goog.string.LT_RE_, '&lt;')
.replace(goog.string.GT_RE_, '&gt;')
.replace(goog.string.QUOT_RE_, '&quot;')
.replace(goog.string.SINGLE_QUOTE_RE_, '&#39;')
.replace(goog.string.NULL_RE_, '&#0;')),
goog.string.DETECT_DOUBLE_ESCAPING &&
(a = a.replace(goog.string.E_RE_, '&#101;'))
} else {
if (!goog.string.ALL_RE_.test(a)) {
return a
}
;-1 != a.indexOf('&') && (a = a.replace(goog.string.AMP_RE_, '&amp;'))
;-1 != a.indexOf('<') && (a = a.replace(goog.string.LT_RE_, '&lt;'))
;-1 != a.indexOf('>') && (a = a.replace(goog.string.GT_RE_, '&gt;'))
;-1 != a.indexOf('"') && (a = a.replace(goog.string.QUOT_RE_, '&quot;'))
;-1 != a.indexOf("'") &&
(a = a.replace(goog.string.SINGLE_QUOTE_RE_, '&#39;'))
;-1 != a.indexOf('\x00') &&
(a = a.replace(goog.string.NULL_RE_, '&#0;'))
goog.string.DETECT_DOUBLE_ESCAPING &&
-1 != a.indexOf('e') &&
(a = a.replace(goog.string.E_RE_, '&#101;'))
}
return a
}
goog.string.AMP_RE_ = /&/g
goog.string.LT_RE_ = /</g
goog.string.GT_RE_ = />/g
goog.string.QUOT_RE_ = /"/g
goog.string.SINGLE_QUOTE_RE_ = /'/g
goog.string.NULL_RE_ = /\x00/g
goog.string.E_RE_ = /e/g
goog.string.ALL_RE_ = goog.string.DETECT_DOUBLE_ESCAPING
? /[\x00&<>"'e]/
: /[\x00&<>"']/
goog.string.unescapeEntities = function (a) {
return goog.string.contains(a, '&')
? !goog.string.FORCE_NON_DOM_HTML_UNESCAPING &&
'document' in goog.global
? goog.string.unescapeEntitiesUsingDom_(a)
: goog.string.unescapePureXmlEntities_(a)
: a
}
goog.string.unescapeEntitiesWithDocument = function (a, b) {
return goog.string.contains(a, '&')
? goog.string.unescapeEntitiesUsingDom_(a, b)
: a
}
goog.string.unescapeEntitiesUsingDom_ = function (a, b) {
var c = { '&amp;': '&', '&lt;': '<', '&gt;': '>', '&quot;': '"' },
d
d = b ? b.createElement('div') : goog.global.document.createElement('div')
return a.replace(goog.string.HTML_ENTITY_PATTERN_, function (a, b) {
var e = c[a]
if (e) {
return e
}
if ('#' == b.charAt(0)) {
var f = Number('0' + b.substr(1))
isNaN(f) || (e = String.fromCharCode(f))
}
e ||
((d.innerHTML = a + ' '), (e = d.firstChild.nodeValue.slice(0, -1)))
return (c[a] = e)
})
}
goog.string.unescapePureXmlEntities_ = function (a) {
return a.replace(/&([^;]+);/g, function (a, c) {
switch (c) {
case 'amp':
return '&'
case 'lt':
return '<'
case 'gt':
return '>'
case 'quot':
return '"'
default:
if ('#' == c.charAt(0)) {
var b = Number('0' + c.substr(1))
if (!isNaN(b)) {
return String.fromCharCode(b)
}
}
return a
}
})
}
goog.string.HTML_ENTITY_PATTERN_ = /&([^;\s<&]+);?/g
goog.string.whitespaceEscape = function (a, b) {
return goog.string.newLineToBr(a.replace(/ /g, ' &#160;'), b)
}
goog.string.preserveSpaces = function (a) {
return a.replace(/(^|[\n ]) /g, '$1' + goog.string.Unicode.NBSP)
}
goog.string.stripQuotes = function (a, b) {
for (var c = b.length, d = 0; d < c; d++) {
var e = 1 == c ? b : b.charAt(d)
if (a.charAt(0) == e && a.charAt(a.length - 1) == e) {
return a.substring(1, a.length - 1)
}
}
return a
}
goog.string.truncate = function (a, b, c) {
c && (a = goog.string.unescapeEntities(a))
a.length > b && (a = a.substring(0, b - 3) + '...')
c && (a = goog.string.htmlEscape(a))
return a
}
goog.string.truncateMiddle = function (a, b, c, d) {
c && (a = goog.string.unescapeEntities(a))
if (d && a.length > b) {
d > b && (d = b)
var e = a.length - d
a = a.substring(0, b - d) + '...' + a.substring(e)
} else {
a.length > b &&
((d = Math.floor(b / 2)),
(e = a.length - d),
(a = a.substring(0, d + (b % 2)) + '...' + a.substring(e)))
}
c && (a = goog.string.htmlEscape(a))
return a
}
goog.string.specialEscapeChars_ = {
'\x00': '\\0',
'\b': '\\b',
'\f': '\\f',
'\n': '\\n',
'\r': '\\r',
'\t': '\\t',
'\x0B': '\\x0B',
'"': '\\"',
'\\': '\\\\',
'<': '<',
}
goog.string.jsEscapeCache_ = { "'": "\\'" }
goog.string.quote = function (a) {
a = String(a)
for (var b = ['"'], c = 0; c < a.length; c++) {
var d = a.charAt(c),
e = d.charCodeAt(0)
b[c + 1] =
goog.string.specialEscapeChars_[d] ||
(31 < e && 127 > e ? d : goog.string.escapeChar(d))
}
b.push('"')
return b.join('')
}
goog.string.escapeString = function (a) {
for (var b = [], c = 0; c < a.length; c++) {
b[c] = goog.string.escapeChar(a.charAt(c))
}
return b.join('')
}
goog.string.escapeChar = function (a) {
if (a in goog.string.jsEscapeCache_) {
return goog.string.jsEscapeCache_[a]
}
if (a in goog.string.specialEscapeChars_) {
return (goog.string.jsEscapeCache_[a] =
goog.string.specialEscapeChars_[a])
}
var b,
c = a.charCodeAt(0)
if (31 < c && 127 > c) {
b = a
} else {
if (256 > c) {
if (((b = '\\x'), 16 > c || 256 < c)) {
b += '0'
}
} else {
;(b = '\\u'), 4096 > c && (b += '0')
}
b += c.toString(16).toUpperCase()
}
return (goog.string.jsEscapeCache_[a] = b)
}
goog.string.contains = function (a, b) {
return -1 != a.indexOf(b)
}
goog.string.caseInsensitiveContains = function (a, b) {
return goog.string.contains(a.toLowerCase(), b.toLowerCase())
}
goog.string.countOf = function (a, b) {
return a && b ? a.split(b).length - 1 : 0
}
goog.string.removeAt = function (a, b, c) {
var d = a
0 <= b &&
b < a.length &&
0 < c &&
(d = a.substr(0, b) + a.substr(b + c, a.length - b - c))
return d
}
goog.string.remove = function (a, b) {
return a.replace(b, '')
}
goog.string.removeAll = function (a, b) {
var c = new RegExp(goog.string.regExpEscape(b), 'g')
return a.replace(c, '')
}
goog.string.replaceAll = function (a, b, c) {
b = new RegExp(goog.string.regExpEscape(b), 'g')
return a.replace(b, c.replace(/\$/g, '$$$$'))
}
goog.string.regExpEscape = function (a) {
return String(a)
.replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g, '\\$1')
.replace(/\x08/g, '\\x08')
}
goog.string.repeat = String.prototype.repeat
? function (a, b) {
return a.repeat(b)
}
: function (a, b) {
return Array(b + 1).join(a)
}
goog.string.padNumber = function (a, b, c) {
a = goog.isDef(c) ? a.toFixed(c) : String(a)
c = a.indexOf('.')
;-1 == c && (c = a.length)
return goog.string.repeat('0', Math.max(0, b - c)) + a
}
goog.string.makeSafe = function (a) {
return null == a ? '' : String(a)
}
goog.string.buildString = function (a) {
return Array.prototype.join.call(arguments, '')
}
goog.string.getRandomString = function () {
return (
Math.floor(2147483648 * Math.random()).toString(36) +
Math.abs(Math.floor(2147483648 * Math.random()) ^ goog.now()).toString(
36
)
)
}
goog.string.compareVersions = function (a, b) {
for (
var c = 0,
d = goog.string.trim(String(a)).split('.'),
e = goog.string.trim(String(b)).split('.'),
f = Math.max(d.length, e.length),
g = 0;
0 == c && g < f;
g++
) {
var h = d[g] || '',
k = e[g] || ''
do {
h = /(\d*)(\D*)(.*)/.exec(h) || ['', '', '', '']
k = /(\d*)(\D*)(.*)/.exec(k) || ['', '', '', '']
if (0 == h[0].length && 0 == k[0].length) {
break
}
var c = 0 == h[1].length ? 0 : parseInt(h[1], 10),
l = 0 == k[1].length ? 0 : parseInt(k[1], 10),
c =
goog.string.compareElements_(c, l) ||
goog.string.compareElements_(
0 == h[2].length,
0 == k[2].length
) ||
goog.string.compareElements_(h[2], k[2]),
h = h[3],
k = k[3]
} while (0 == c)
}
return c
}
goog.string.compareElements_ = function (a, b) {
return a < b ? -1 : a > b ? 1 : 0
}
goog.string.hashCode = function (a) {
for (var b = 0, c = 0; c < a.length; ++c) {
b = (31 * b + a.charCodeAt(c)) >>> 0
}
return b
}
goog.string.uniqueStringCounter_ = (2147483648 * Math.random()) | 0
goog.string.createUniqueString = function () {
return 'goog_' + goog.string.uniqueStringCounter_++
}
goog.string.toNumber = function (a) {
var b = Number(a)
return 0 == b && goog.string.isEmptyOrWhitespace(a) ? NaN : b
}
goog.string.isLowerCamelCase = function (a) {
return /^[a-z]+([A-Z][a-z]*)*$/.test(a)
}
goog.string.isUpperCamelCase = function (a) {
return /^([A-Z][a-z]*)+$/.test(a)
}
goog.string.toCamelCase = function (a) {
return String(a).replace(/\-([a-z])/g, function (a, c) {
return c.toUpperCase()
})
}
goog.string.toSelectorCase = function (a) {
return String(a)
.replace(/([A-Z])/g, '-$1')
.toLowerCase()
}
goog.string.toTitleCase = function (a, b) {
var c = goog.isString(b) ? goog.string.regExpEscape(b) : '\\s'
return a.replace(
new RegExp('(^' + (c ? '|[' + c + ']+' : '') + ')([a-z])', 'g'),
function (a, b, c) {
return b + c.toUpperCase()
}
)
}
goog.string.capitalize = function (a) {
return (
String(a.charAt(0)).toUpperCase() + String(a.substr(1)).toLowerCase()
)
}
goog.string.parseInt = function (a) {
isFinite(a) && (a = String(a))
return goog.isString(a)
? /^\s*-?0x/i.test(a)
? parseInt(a, 16)
: parseInt(a, 10)
: NaN
}
goog.string.splitLimit = function (a, b, c) {
a = a.split(b)
for (var d = []; 0 < c && a.length; ) {
d.push(a.shift()), c--
}
a.length && d.push(a.join(b))
return d
}
goog.string.lastComponent = function (a, b) {
if (b) {
'string' == typeof b && (b = [b])
} else {
return a
}
for (var c = -1, d = 0; d < b.length; d++) {
if ('' != b[d]) {
var e = a.lastIndexOf(b[d])
e > c && (c = e)
}
}
return -1 == c ? a : a.slice(c + 1)
}
goog.string.editDistance = function (a, b) {
var c = [],
d = []
if (a == b) {
return 0
}
if (!a.length || !b.length) {
return Math.max(a.length, b.length)
}
for (var e = 0; e < b.length + 1; e++) {
c[e] = e
}
for (e = 0; e < a.length; e++) {
d[0] = e + 1
for (var f = 0; f < b.length; f++) {
d[f + 1] = Math.min(
d[f] + 1,
c[f + 1] + 1,
c[f] + Number(a[e] != b[f])
)
}
for (f = 0; f < c.length; f++) {
c[f] = d[f]
}
}
return d[b.length]
}
goog.asserts = {}
goog.asserts.ENABLE_ASSERTS = goog.DEBUG
goog.asserts.AssertionError = function (a, b) {
b.unshift(a)
goog.debug.Error.call(this, goog.string.subs.apply(null, b))
b.shift()
this.messagePattern = a
}
goog.inherits(goog.asserts.AssertionError, goog.debug.Error)
goog.asserts.AssertionError.prototype.name = 'AssertionError'
goog.asserts.DEFAULT_ERROR_HANDLER = function (a) {
throw a
}
goog.asserts.errorHandler_ = goog.asserts.DEFAULT_ERROR_HANDLER
goog.asserts.doAssertFailure_ = function (a, b, c, d) {
var e = 'Assertion failed'
if (c) {
var e = e + (': ' + c),
f = d
} else {
a && ((e += ': ' + a), (f = b))
}
a = new goog.asserts.AssertionError('' + e, f || [])
goog.asserts.errorHandler_(a)
}
goog.asserts.setErrorHandler = function (a) {
goog.asserts.ENABLE_ASSERTS && (goog.asserts.errorHandler_ = a)
}
goog.asserts.assert = function (a, b, c) {
goog.asserts.ENABLE_ASSERTS &&
!a &&
goog.asserts.doAssertFailure_(
'',
null,
b,
Array.prototype.slice.call(arguments, 2)
)
return a
}
goog.asserts.fail = function (a, b) {
goog.asserts.ENABLE_ASSERTS &&
goog.asserts.errorHandler_(
new goog.asserts.AssertionError(
'Failure' + (a ? ': ' + a : ''),
Array.prototype.slice.call(arguments, 1)
)
)
}
goog.asserts.assertNumber = function (a, b, c) {
goog.asserts.ENABLE_ASSERTS &&
!goog.isNumber(a) &&
goog.asserts.doAssertFailure_(
'Expected number but got %s: %s.',
[goog.typeOf(a), a],
b,
Array.prototype.slice.call(arguments, 2)
)
return a
}
goog.asserts.assertString = function (a, b, c) {
goog.asserts.ENABLE_ASSERTS &&
!goog.isString(a) &&
goog.asserts.doAssertFailure_(
'Expected string but got %s: %s.',
[goog.typeOf(a), a],
b,
Array.prototype.slice.call(arguments, 2)
)
return a
}
goog.asserts.assertFunction = function (a, b, c) {
goog.asserts.ENABLE_ASSERTS &&
!goog.isFunction(a) &&
goog.asserts.doAssertFailure_(
'Expected function but got %s: %s.',
[goog.typeOf(a), a],
b,
Array.prototype.slice.call(arguments, 2)
)
return a
}
goog.asserts.assertObject = function (a, b, c) {
goog.asserts.ENABLE_ASSERTS &&
!goog.isObject(a) &&
goog.asserts.doAssertFailure_(
'Expected object but got %s: %s.',
[goog.typeOf(a), a],
b,
Array.prototype.slice.call(arguments, 2)
)
return a
}
goog.asserts.assertArray = function (a, b, c) {
goog.asserts.ENABLE_ASSERTS &&
!goog.isArray(a) &&
goog.asserts.doAssertFailure_(
'Expected array but got %s: %s.',
[goog.typeOf(a), a],
b,
Array.prototype.slice.call(arguments, 2)
)
return a
}
goog.asserts.assertBoolean = function (a, b, c) {
goog.asserts.ENABLE_ASSERTS &&
!goog.isBoolean(a) &&
goog.asserts.doAssertFailure_(
'Expected boolean but got %s: %s.',
[goog.typeOf(a), a],
b,
Array.prototype.slice.call(arguments, 2)
)
return a
}
goog.asserts.assertElement = function (a, b, c) {
!goog.asserts.ENABLE_ASSERTS ||
(goog.isObject(a) && a.nodeType == goog.dom.NodeType.ELEMENT) ||
goog.asserts.doAssertFailure_(
'Expected Element but got %s: %s.',
[goog.typeOf(a), a],
b,
Array.prototype.slice.call(arguments, 2)
)
return a
}
goog.asserts.assertInstanceof = function (a, b, c, d) {
!goog.asserts.ENABLE_ASSERTS ||
a instanceof b ||
goog.asserts.doAssertFailure_(
'Expected instanceof %s but got %s.',
[goog.asserts.getType_(b), goog.asserts.getType_(a)],
c,
Array.prototype.slice.call(arguments, 3)
)
return a
}
goog.asserts.assertObjectPrototypeIsIntact = function () {
for (var a in Object.prototype) {
goog.asserts.fail(a + ' should not be enumerable in Object.prototype.')
}
}
goog.asserts.getType_ = function (a) {
return a instanceof Function
? a.displayName || a.name || 'unknown type name'
: a instanceof Object
? a.constructor.displayName ||
a.constructor.name ||
Object.prototype.toString.call(a)
: null === a
? 'null'
: typeof a
}
goog.array = {}
goog.NATIVE_ARRAY_PROTOTYPES = goog.TRUSTED_SITE
goog.array.ASSUME_NATIVE_FUNCTIONS = !1
goog.array.peek = function (a) {
return a[a.length - 1]
}
goog.array.last = goog.array.peek
goog.array.indexOf =
goog.NATIVE_ARRAY_PROTOTYPES &&
(goog.array.ASSUME_NATIVE_FUNCTIONS || Array.prototype.indexOf)
? function (a, b, c) {
goog.asserts.assert(null != a.length)
return Array.prototype.indexOf.call(a, b, c)
}
: function (a, b, c) {
c = null == c ? 0 : 0 > c ? Math.max(0, a.length + c) : c
if (goog.isString(a)) {
return goog.isString(b) && 1 == b.length ? a.indexOf(b, c) : -1
}
for (; c < a.length; c++) {
if (c in a && a[c] === b) {
return c
}
}
return -1
}
goog.array.lastIndexOf =
goog.NATIVE_ARRAY_PROTOTYPES &&
(goog.array.ASSUME_NATIVE_FUNCTIONS || Array.prototype.lastIndexOf)
? function (a, b, c) {
goog.asserts.assert(null != a.length)
return Array.prototype.lastIndexOf.call(
a,
b,
null == c ? a.length - 1 : c
)
}
: function (a, b, c) {
c = null == c ? a.length - 1 : c
0 > c && (c = Math.max(0, a.length + c))
if (goog.isString(a)) {
return goog.isString(b) && 1 == b.length
? a.lastIndexOf(b, c)
: -1
}
for (; 0 <= c; c--) {
if (c in a && a[c] === b) {
return c
}
}
return -1
}
goog.array.forEach =
goog.NATIVE_ARRAY_PROTOTYPES &&
(goog.array.ASSUME_NATIVE_FUNCTIONS || Array.prototype.forEach)
? function (a, b, c) {
goog.asserts.assert(null != a.length)
Array.prototype.forEach.call(a, b, c)
}
: function (a, b, c) {
for (
var d = a.length, e = goog.isString(a) ? a.split('') : a, f = 0;
f < d;
f++
) {
f in e && b.call(c, e[f], f, a)
}
}
goog.array.forEachRight = function (a, b, c) {
for (
var d = a.length, e = goog.isString(a) ? a.split('') : a, d = d - 1;
0 <= d;
--d
) {
d in e && b.call(c, e[d], d, a)
}
}
goog.array.filter =
goog.NATIVE_ARRAY_PROTOTYPES &&
(goog.array.ASSUME_NATIVE_FUNCTIONS || Array.prototype.filter)
? function (a, b, c) {
goog.asserts.assert(null != a.length)
return Array.prototype.filter.call(a, b, c)
}
: function (a, b, c) {
for (
var d = a.length,
e = [],
f = 0,
g = goog.isString(a) ? a.split('') : a,
h = 0;
h < d;
h++
) {
if (h in g) {
var k = g[h]
b.call(c, k, h, a) && (e[f++] = k)
}
}
return e
}
goog.array.map =
goog.NATIVE_ARRAY_PROTOTYPES &&
(goog.array.ASSUME_NATIVE_FUNCTIONS || Array.prototype.map)
? function (a, b, c) {
goog.asserts.assert(null != a.length)
return Array.prototype.map.call(a, b, c)
}
: function (a, b, c) {
for (
var d = a.length,
e = Array(d),
f = goog.isString(a) ? a.split('') : a,
g = 0;
g < d;
g++
) {
g in f && (e[g] = b.call(c, f[g], g, a))
}
return e
}
goog.array.reduce =
goog.NATIVE_ARRAY_PROTOTYPES &&
(goog.array.ASSUME_NATIVE_FUNCTIONS || Array.prototype.reduce)
? function (a, b, c, d) {
goog.asserts.assert(null != a.length)
d && (b = goog.bind(b, d))
return Array.prototype.reduce.call(a, b, c)
}
: function (a, b, c, d) {
var e = c
goog.array.forEach(a, function (c, g) {
e = b.call(d, e, c, g, a)
})
return e
}
goog.array.reduceRight =
goog.NATIVE_ARRAY_PROTOTYPES &&
(goog.array.ASSUME_NATIVE_FUNCTIONS || Array.prototype.reduceRight)
? function (a, b, c, d) {
goog.asserts.assert(null != a.length)
goog.asserts.assert(null != b)
d && (b = goog.bind(b, d))
return Array.prototype.reduceRight.call(a, b, c)
}
: function (a, b, c, d) {
var e = c
goog.array.forEachRight(a, function (c, g) {
e = b.call(d, e, c, g, a)
})
return e
}
goog.array.some =
goog.NATIVE_ARRAY_PROTOTYPES &&
(goog.array.ASSUME_NATIVE_FUNCTIONS || Array.prototype.some)
? function (a, b, c) {
goog.asserts.assert(null != a.length)
return Array.prototype.some.call(a, b, c)
}
: function (a, b, c) {
for (
var d = a.length, e = goog.isString(a) ? a.split('') : a, f = 0;
f < d;
f++
) {
if (f in e && b.call(c, e[f], f, a)) {
return !0
}
}
return !1
}
goog.array.every =
goog.NATIVE_ARRAY_PROTOTYPES &&
(goog.array.ASSUME_NATIVE_FUNCTIONS || Array.prototype.every)
? function (a, b, c) {
goog.asserts.assert(null != a.length)
return Array.prototype.every.call(a, b, c)
}
: function (a, b, c) {
for (
var d = a.length, e = goog.isString(a) ? a.split('') : a, f = 0;
f < d;
f++
) {
if (f in e && !b.call(c, e[f], f, a)) {
return !1
}
}
return !0
}
goog.array.count = function (a, b, c) {
var d = 0
goog.array.forEach(
a,
function (a, f, g) {
b.call(c, a, f, g) && ++d
},
c
)
return d
}
goog.array.find = function (a, b, c) {
b = goog.array.findIndex(a, b, c)
return 0 > b ? null : goog.isString(a) ? a.charAt(b) : a[b]
}
goog.array.findIndex = function (a, b, c) {
for (
var d = a.length, e = goog.isString(a) ? a.split('') : a, f = 0;
f < d;
f++
) {
if (f in e && b.call(c, e[f], f, a)) {
return f
}
}
return -1
}
goog.array.findRight = function (a, b, c) {
b = goog.array.findIndexRight(a, b, c)
return 0 > b ? null : goog.isString(a) ? a.charAt(b) : a[b]
}
goog.array.findIndexRight = function (a, b, c) {
for (
var d = a.length, e = goog.isString(a) ? a.split('') : a, d = d - 1;
0 <= d;
d--
) {
if (d in e && b.call(c, e[d], d, a)) {
return d
}
}
return -1
}
goog.array.contains = function (a, b) {
return 0 <= goog.array.indexOf(a, b)
}
goog.array.isEmpty = function (a) {
return 0 == a.length
}
goog.array.clear = function (a) {
if (!goog.isArray(a)) {
for (var b = a.length - 1; 0 <= b; b--) {
delete a[b]
}
}
a.length = 0
}
goog.array.insert = function (a, b) {
goog.array.contains(a, b) || a.push(b)
}
goog.array.insertAt = function (a, b, c) {
goog.array.splice(a, c, 0, b)
}
goog.array.insertArrayAt = function (a, b, c) {
goog.partial(goog.array.splice, a, c, 0).apply(null, b)
}
goog.array.insertBefore = function (a, b, c) {
var d
2 == arguments.length || 0 > (d = goog.array.indexOf(a, c))
? a.push(b)
: goog.array.insertAt(a, b, d)
}
goog.array.remove = function (a, b) {
var c = goog.array.indexOf(a, b),
d
;(d = 0 <= c) && goog.array.removeAt(a, c)
return d
}
goog.array.removeLast = function (a, b) {
var c = goog.array.lastIndexOf(a, b)
return 0 <= c ? (goog.array.removeAt(a, c), !0) : !1
}
goog.array.removeAt = function (a, b) {
goog.asserts.assert(null != a.length)
return 1 == Array.prototype.splice.call(a, b, 1).length
}
goog.array.removeIf = function (a, b, c) {
b = goog.array.findIndex(a, b, c)
return 0 <= b ? (goog.array.removeAt(a, b), !0) : !1
}
goog.array.removeAllIf = function (a, b, c) {
var d = 0
goog.array.forEachRight(a, function (e, f) {
b.call(c, e, f, a) && goog.array.removeAt(a, f) && d++
})
return d
}
goog.array.concat = function (a) {
return Array.prototype.concat.apply(Array.prototype, arguments)
}
goog.array.join = function (a) {
return Array.prototype.concat.apply(Array.prototype, arguments)
}
goog.array.toArray = function (a) {
var b = a.length
if (0 < b) {
for (var c = Array(b), d = 0; d < b; d++) {
c[d] = a[d]
}
return c
}
return []
}
goog.array.clone = goog.array.toArray
goog.array.extend = function (a, b) {
for (var c = 1; c < arguments.length; c++) {
var d = arguments[c]
if (goog.isArrayLike(d)) {
var e = a.length || 0,
f = d.length || 0
a.length = e + f
for (var g = 0; g < f; g++) {
a[e + g] = d[g]
}
} else {
a.push(d)
}
}
}
goog.array.splice = function (a, b, c, d) {
goog.asserts.assert(null != a.length)
return Array.prototype.splice.apply(a, goog.array.slice(arguments, 1))
}
goog.array.slice = function (a, b, c) {
goog.asserts.assert(null != a.length)
return 2 >= arguments.length
? Array.prototype.slice.call(a, b)
: Array.prototype.slice.call(a, b, c)
}
goog.array.removeDuplicates = function (a, b, c) {
b = b || a
var d = function (a) {
return goog.isObject(a)
? 'o' + goog.getUid(a)
: (typeof a).charAt(0) + a
}
c = c || d
for (var d = {}, e = 0, f = 0; f < a.length; ) {
var g = a[f++],
h = c(g)
Object.prototype.hasOwnProperty.call(d, h) ||
((d[h] = !0), (b[e++] = g))
}
b.length = e
}
goog.array.binarySearch = function (a, b, c) {
return goog.array.binarySearch_(a, c || goog.array.defaultCompare, !1, b)
}
goog.array.binarySelect = function (a, b, c) {
return goog.array.binarySearch_(a, b, !0, void 0, c)
}
goog.array.binarySearch_ = function (a, b, c, d, e) {
for (var f = 0, g = a.length, h; f < g; ) {
var k = (f + g) >> 1,
l
l = c ? b.call(e, a[k], k, a) : b(d, a[k])
0 < l ? (f = k + 1) : ((g = k), (h = !l))
}
return h ? f : ~f
}
goog.array.sort = function (a, b) {
a.sort(b || goog.array.defaultCompare)
}
goog.array.stableSort = function (a, b) {
for (var c = Array(a.length), d = 0; d < a.length; d++) {
c[d] = { index: d, value: a[d] }
}
var e = b || goog.array.defaultCompare
goog.array.sort(c, function (a, b) {
return e(a.value, b.value) || a.index - b.index
})
for (d = 0; d < a.length; d++) {
a[d] = c[d].value
}
}
goog.array.sortByKey = function (a, b, c) {
var d = c || goog.array.defaultCompare
goog.array.sort(a, function (a, c) {
return d(b(a), b(c))
})
}
goog.array.sortObjectsByKey = function (a, b, c) {
goog.array.sortByKey(
a,
function (a) {
return a[b]
},
c
)
}
goog.array.isSorted = function (a, b, c) {
b = b || goog.array.defaultCompare
for (var d = 1; d < a.length; d++) {
var e = b(a[d - 1], a[d])
if (0 < e || (0 == e && c)) {
return !1
}
}
return !0
}
goog.array.equals = function (a, b, c) {
if (
!goog.isArrayLike(a) ||
!goog.isArrayLike(b) ||
a.length != b.length
) {
return !1
}
var d = a.length
c = c || goog.array.defaultCompareEquality
for (var e = 0; e < d; e++) {
if (!c(a[e], b[e])) {
return !1
}
}
return !0
}
goog.array.compare3 = function (a, b, c) {
c = c || goog.array.defaultCompare
for (var d = Math.min(a.length, b.length), e = 0; e < d; e++) {
var f = c(a[e], b[e])
if (0 != f) {
return f
}
}
return goog.array.defaultCompare(a.length, b.length)
}
goog.array.defaultCompare = function (a, b) {
return a > b ? 1 : a < b ? -1 : 0
}
goog.array.inverseDefaultCompare = function (a, b) {
return -goog.array.defaultCompare(a, b)
}
goog.array.defaultCompareEquality = function (a, b) {
return a === b
}
goog.array.binaryInsert = function (a, b, c) {
c = goog.array.binarySearch(a, b, c)
return 0 > c ? (goog.array.insertAt(a, b, -(c + 1)), !0) : !1
}
goog.array.binaryRemove = function (a, b, c) {
b = goog.array.binarySearch(a, b, c)
return 0 <= b ? goog.array.removeAt(a, b) : !1
}
goog.array.bucket = function (a, b, c) {
for (var d = {}, e = 0; e < a.length; e++) {
var f = a[e],
g = b.call(c, f, e, a)
goog.isDef(g) && (d[g] || (d[g] = [])).push(f)
}
return d
}
goog.array.toObject = function (a, b, c) {
var d = {}
goog.array.forEach(a, function (e, f) {
d[b.call(c, e, f, a)] = e
})
return d
}
goog.array.range = function (a, b, c) {
var d = [],
e = 0,
f = a
c = c || 1
void 0 !== b && ((e = a), (f = b))
if (0 > c * (f - e)) {
return []
}
if (0 < c) {
for (a = e; a < f; a += c) {
d.push(a)
}
} else {
for (a = e; a > f; a += c) {
d.push(a)
}
}
return d
}
goog.array.repeat = function (a, b) {
for (var c = [], d = 0; d < b; d++) {
c[d] = a
}
return c
}
goog.array.flatten = function (a) {
for (var b = [], c = 0; c < arguments.length; c++) {
var d = arguments[c]
if (goog.isArray(d)) {
for (var e = 0; e < d.length; e += 8192) {
for (
var f = goog.array.slice(d, e, e + 8192),
f = goog.array.flatten.apply(null, f),
g = 0;
g < f.length;
g++
) {
b.push(f[g])
}
}
} else {
b.push(d)
}
}
return b
}
goog.array.rotate = function (a, b) {
goog.asserts.assert(null != a.length)
a.length &&
((b %= a.length),
0 < b
? Array.prototype.unshift.apply(a, a.splice(-b, b))
: 0 > b && Array.prototype.push.apply(a, a.splice(0, -b)))
return a
}
goog.array.moveItem = function (a, b, c) {
goog.asserts.assert(0 <= b && b < a.length)
goog.asserts.assert(0 <= c && c < a.length)
b = Array.prototype.splice.call(a, b, 1)
Array.prototype.splice.call(a, c, 0, b[0])
}
goog.array.zip = function (a) {
if (!arguments.length) {
return []
}
for (
var b = [], c = arguments[0].length, d = 1;
d < arguments.length;
d++
) {
arguments[d].length < c && (c = arguments[d].length)
}
for (d = 0; d < c; d++) {
for (var e = [], f = 0; f < arguments.length; f++) {
e.push(arguments[f][d])
}
b.push(e)
}
return b
}
goog.array.shuffle = function (a, b) {
for (var c = b || Math.random, d = a.length - 1; 0 < d; d--) {
var e = Math.floor(c() * (d + 1)),
f = a[d]
a[d] = a[e]
a[e] = f
}
}
goog.array.copyByIndex = function (a, b) {
var c = []
goog.array.forEach(b, function (b) {
c.push(a[b])
})
return c
}
goog.array.concatMap = function (a, b, c) {
return goog.array.concat.apply([], goog.array.map(a, b, c))
}
goog.labs = {}
goog.labs.userAgent = {}
goog.labs.userAgent.util = {}
goog.labs.userAgent.util.getNativeUserAgentString_ = function () {
var a = goog.labs.userAgent.util.getNavigator_()
return a && (a = a.userAgent) ? a : ''
}
goog.labs.userAgent.util.getNavigator_ = function () {
return goog.global.navigator
}
goog.labs.userAgent.util.userAgent_ = goog.labs.userAgent.util.getNativeUserAgentString_()
goog.labs.userAgent.util.setUserAgent = function (a) {
goog.labs.userAgent.util.userAgent_ =
a || goog.labs.userAgent.util.getNativeUserAgentString_()
}
goog.labs.userAgent.util.getUserAgent = function () {
return goog.labs.userAgent.util.userAgent_
}
goog.labs.userAgent.util.matchUserAgent = function (a) {
var b = goog.labs.userAgent.util.getUserAgent()
return goog.string.contains(b, a)
}
goog.labs.userAgent.util.matchUserAgentIgnoreCase = function (a) {
var b = goog.labs.userAgent.util.getUserAgent()
return goog.string.caseInsensitiveContains(b, a)
}
goog.labs.userAgent.util.extractVersionTuples = function (a) {
for (
var b = RegExp('(\\w[\\w ]+)/([^\\s]+)\\s*(?:\\((.*?)\\))?', 'g'),
c = [],
d;
(d = b.exec(a));
) {
c.push([d[1], d[2], d[3] || void 0])
}
return c
}
goog.object = {}
goog.object.is = function (a, b) {
return a === b ? 0 !== a || 1 / a === 1 / b : a !== a && b !== b
}
goog.object.forEach = function (a, b, c) {
for (var d in a) {
b.call(c, a[d], d, a)
}
}
goog.object.filter = function (a, b, c) {
var d = {},
e
for (e in a) {
b.call(c, a[e], e, a) && (d[e] = a[e])
}
return d
}
goog.object.map = function (a, b, c) {
var d = {},
e
for (e in a) {
d[e] = b.call(c, a[e], e, a)
}
return d
}
goog.object.some = function (a, b, c) {
for (var d in a) {
if (b.call(c, a[d], d, a)) {
return !0
}
}
return !1
}
goog.object.every = function (a, b, c) {
for (var d in a) {
if (!b.call(c, a[d], d, a)) {
return !1
}
}
return !0
}
goog.object.getCount = function (a) {
var b = 0,
c
for (c in a) {
b++
}
return b
}
goog.object.getAnyKey = function (a) {
for (var b in a) {
return b
}
}
goog.object.getAnyValue = function (a) {
for (var b in a) {
return a[b]
}
}
goog.object.contains = function (a, b) {
return goog.object.containsValue(a, b)
}
goog.object.getValues = function (a) {
var b = [],
c = 0,
d
for (d in a) {
b[c++] = a[d]
}
return b
}
goog.object.getKeys = function (a) {
var b = [],
c = 0,
d
for (d in a) {
b[c++] = d
}
return b
}
goog.object.getValueByKeys = function (a, b) {
for (
var c = goog.isArrayLike(b), d = c ? b : arguments, c = c ? 0 : 1;
c < d.length && ((a = a[d[c]]), goog.isDef(a));
c++
) {}
return a
}
goog.object.containsKey = function (a, b) {
return null !== a && b in a
}
goog.object.containsValue = function (a, b) {
for (var c in a) {
if (a[c] == b) {
return !0
}
}
return !1
}
goog.object.findKey = function (a, b, c) {
for (var d in a) {
if (b.call(c, a[d], d, a)) {
return d
}
}
}
goog.object.findValue = function (a, b, c) {
return (b = goog.object.findKey(a, b, c)) && a[b]
}
goog.object.isEmpty = function (a) {
for (var b in a) {
return !1
}
return !0
}
goog.object.clear = function (a) {
for (var b in a) {
delete a[b]
}
}
goog.object.remove = function (a, b) {
var c
;(c = b in a) && delete a[b]
return c
}
goog.object.add = function (a, b, c) {
if (null !== a && b in a) {
throw Error('The object already contains the key "' + b + '"')
}
goog.object.set(a, b, c)
}
goog.object.get = function (a, b, c) {
return null !== a && b in a ? a[b] : c
}
goog.object.set = function (a, b, c) {
a[b] = c
}
goog.object.setIfUndefined = function (a, b, c) {
return b in a ? a[b] : (a[b] = c)
}
goog.object.setWithReturnValueIfNotSet = function (a, b, c) {
if (b in a) {
return a[b]
}
c = c()
return (a[b] = c)
}
goog.object.equals = function (a, b) {
for (var c in a) {
if (!(c in b) || a[c] !== b[c]) {
return !1
}
}
for (c in b) {
if (!(c in a)) {
return !1
}
}
return !0
}
goog.object.clone = function (a) {
var b = {},
c
for (c in a) {
b[c] = a[c]
}
return b
}
goog.object.unsafeClone = function (a) {
var b = goog.typeOf(a)
if ('object' == b || 'array' == b) {
if (goog.isFunction(a.clone)) {
return a.clone()
}
var b = 'array' == b ? [] : {},
c
for (c in a) {
b[c] = goog.object.unsafeClone(a[c])
}
return b
}
return a
}
goog.object.transpose = function (a) {
var b = {},
c
for (c in a) {
b[a[c]] = c
}
return b
}
goog.object.PROTOTYPE_FIELDS_ = 'constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf'.split(
' '
)
goog.object.extend = function (a, b) {
for (var c, d, e = 1; e < arguments.length; e++) {
d = arguments[e]
for (c in d) {
a[c] = d[c]
}
for (var f = 0; f < goog.object.PROTOTYPE_FIELDS_.length; f++) {
;(c = goog.object.PROTOTYPE_FIELDS_[f]),
Object.prototype.hasOwnProperty.call(d, c) && (a[c] = d[c])
}
}
}
goog.object.create = function (a) {
var b = arguments.length
if (1 == b && goog.isArray(arguments[0])) {
return goog.object.create.apply(null, arguments[0])
}
if (b % 2) {
throw Error('Uneven number of arguments')
}
for (var c = {}, d = 0; d < b; d += 2) {
c[arguments[d]] = arguments[d + 1]
}
return c
}
goog.object.createSet = function (a) {
var b = arguments.length
if (1 == b && goog.isArray(arguments[0])) {
return goog.object.createSet.apply(null, arguments[0])
}
for (var c = {}, d = 0; d < b; d++) {
c[arguments[d]] = !0
}
return c
}
goog.object.createImmutableView = function (a) {
var b = a
Object.isFrozen &&
!Object.isFrozen(a) &&
((b = Object.create(a)), Object.freeze(b))
return b
}
goog.object.isImmutableView = function (a) {
return !!Object.isFrozen && Object.isFrozen(a)
}
goog.labs.userAgent.browser = {}
goog.labs.userAgent.browser.matchOpera_ = function () {
return goog.labs.userAgent.util.matchUserAgent('Opera')
}
goog.labs.userAgent.browser.matchIE_ = function () {
return (
goog.labs.userAgent.util.matchUserAgent('Trident') ||
goog.labs.userAgent.util.matchUserAgent('MSIE')
)
}
goog.labs.userAgent.browser.matchEdge_ = function () {
return goog.labs.userAgent.util.matchUserAgent('Edge')
}
goog.labs.userAgent.browser.matchFirefox_ = function () {
return goog.labs.userAgent.util.matchUserAgent('Firefox')
}
goog.labs.userAgent.browser.matchSafari_ = function () {
return (
goog.labs.userAgent.util.matchUserAgent('Safari') &&
!(
goog.labs.userAgent.browser.matchChrome_() ||
goog.labs.userAgent.browser.matchCoast_() ||
goog.labs.userAgent.browser.matchOpera_() ||
goog.labs.userAgent.browser.matchEdge_() ||
goog.labs.userAgent.browser.isSilk() ||
goog.labs.userAgent.util.matchUserAgent('Android')
)
)
}
goog.labs.userAgent.browser.matchCoast_ = function () {
return goog.labs.userAgent.util.matchUserAgent('Coast')
}
goog.labs.userAgent.browser.matchIosWebview_ = function () {
return (
(goog.labs.userAgent.util.matchUserAgent('iPad') ||
goog.labs.userAgent.util.matchUserAgent('iPhone')) &&
!goog.labs.userAgent.browser.matchSafari_() &&
!goog.labs.userAgent.browser.matchChrome_() &&
!goog.labs.userAgent.browser.matchCoast_() &&
goog.labs.userAgent.util.matchUserAgent('AppleWebKit')
)
}
goog.labs.userAgent.browser.matchChrome_ = function () {
return (
(goog.labs.userAgent.util.matchUserAgent('Chrome') ||
goog.labs.userAgent.util.matchUserAgent('CriOS')) &&
!goog.labs.userAgent.browser.matchEdge_()
)
}
goog.labs.userAgent.browser.matchAndroidBrowser_ = function () {
return (
goog.labs.userAgent.util.matchUserAgent('Android') &&
!(
goog.labs.userAgent.browser.isChrome() ||
goog.labs.userAgent.browser.isFirefox() ||
goog.labs.userAgent.browser.isOpera() ||
goog.labs.userAgent.browser.isSilk()
)
)
}
goog.labs.userAgent.browser.isOpera =
goog.labs.userAgent.browser.matchOpera_
goog.labs.userAgent.browser.isIE = goog.labs.userAgent.browser.matchIE_
goog.labs.userAgent.browser.isEdge = goog.labs.userAgent.browser.matchEdge_
goog.labs.userAgent.browser.isFirefox =
goog.labs.userAgent.browser.matchFirefox_
goog.labs.userAgent.browser.isSafari =
goog.labs.userAgent.browser.matchSafari_
goog.labs.userAgent.browser.isCoast =
goog.labs.userAgent.browser.matchCoast_
goog.labs.userAgent.browser.isIosWebview =
goog.labs.userAgent.browser.matchIosWebview_
goog.labs.userAgent.browser.isChrome =
goog.labs.userAgent.browser.matchChrome_
goog.labs.userAgent.browser.isAndroidBrowser =
goog.labs.userAgent.browser.matchAndroidBrowser_
goog.labs.userAgent.browser.isSilk = function () {
return goog.labs.userAgent.util.matchUserAgent('Silk')
}
goog.labs.userAgent.browser.getVersion = function () {
function a(a) {
a = goog.array.find(a, d)
return c[a] || ''
}
var b = goog.labs.userAgent.util.getUserAgent()
if (goog.labs.userAgent.browser.isIE()) {
return goog.labs.userAgent.browser.getIEVersion_(b)
}
var b = goog.labs.userAgent.util.extractVersionTuples(b),
c = {}
goog.array.forEach(b, function (a) {
c[a[0]] = a[1]
})
var d = goog.partial(goog.object.containsKey, c)
return goog.labs.userAgent.browser.isOpera()
? a(['Version', 'Opera'])
: goog.labs.userAgent.browser.isEdge()
? a(['Edge'])
: goog.labs.userAgent.browser.isChrome()
? a(['Chrome', 'CriOS'])
: ((b = b[2]) && b[1]) || ''
}
goog.labs.userAgent.browser.isVersionOrHigher = function (a) {
return (
0 <=
goog.string.compareVersions(goog.labs.userAgent.browser.getVersion(), a)
)
}
goog.labs.userAgent.browser.getIEVersion_ = function (a) {
var b = /rv: *([\d\.]*)/.exec(a)
if (b && b[1]) {
return b[1]
}
var b = '',
c = /MSIE +([\d\.]+)/.exec(a)
if (c && c[1]) {
if (((a = /Trident\/(\d.\d)/.exec(a)), '7.0' == c[1])) {
if (a && a[1]) {
switch (a[1]) {
case '4.0':
b = '8.0'
break
case '5.0':
b = '9.0'
break
case '6.0':
b = '10.0'
break
case '7.0':
b = '11.0'
}
} else {
b = '7.0'
}
} else {
b = c[1]
}
}
return b
}
goog.labs.userAgent.engine = {}
goog.labs.userAgent.engine.isPresto = function () {
return goog.labs.userAgent.util.matchUserAgent('Presto')
}
goog.labs.userAgent.engine.isTrident = function () {
return (
goog.labs.userAgent.util.matchUserAgent('Trident') ||
goog.labs.userAgent.util.matchUserAgent('MSIE')
)
}
goog.labs.userAgent.engine.isEdge = function () {
return goog.labs.userAgent.util.matchUserAgent('Edge')
}
goog.labs.userAgent.engine.isWebKit = function () {
return (
goog.labs.userAgent.util.matchUserAgentIgnoreCase('WebKit') &&
!goog.labs.userAgent.engine.isEdge()
)
}
goog.labs.userAgent.engine.isGecko = function () {
return (
goog.labs.userAgent.util.matchUserAgent('Gecko') &&
!goog.labs.userAgent.engine.isWebKit() &&
!goog.labs.userAgent.engine.isTrident() &&
!goog.labs.userAgent.engine.isEdge()
)
}
goog.labs.userAgent.engine.getVersion = function () {
var a = goog.labs.userAgent.util.getUserAgent()
if (a) {
var a = goog.labs.userAgent.util.extractVersionTuples(a),
b = goog.labs.userAgent.engine.getEngineTuple_(a)
if (b) {
return 'Gecko' == b[0]
? goog.labs.userAgent.engine.getVersionForKey_(a, 'Firefox')
: b[1]
}
var a = a[0],
c
if (a && (c = a[2]) && (c = /Trident\/([^\s;]+)/.exec(c))) {
return c[1]
}
}
return ''
}
goog.labs.userAgent.engine.getEngineTuple_ = function (a) {
if (!goog.labs.userAgent.engine.isEdge()) {
return a[1]
}
for (var b = 0; b < a.length; b++) {
var c = a[b]
if ('Edge' == c[0]) {
return c
}
}
}
goog.labs.userAgent.engine.isVersionOrHigher = function (a) {
return (
0 <=
goog.string.compareVersions(goog.labs.userAgent.engine.getVersion(), a)
)
}
goog.labs.userAgent.engine.getVersionForKey_ = function (a, b) {
var c = goog.array.find(a, function (a) {
return b == a[0]
})
return (c && c[1]) || ''
}
goog.labs.userAgent.platform = {}
goog.labs.userAgent.platform.isAndroid = function () {
return goog.labs.userAgent.util.matchUserAgent('Android')
}
goog.labs.userAgent.platform.isIpod = function () {
return goog.labs.userAgent.util.matchUserAgent('iPod')
}
goog.labs.userAgent.platform.isIphone = function () {
return (
goog.labs.userAgent.util.matchUserAgent('iPhone') &&
!goog.labs.userAgent.util.matchUserAgent('iPod') &&
!goog.labs.userAgent.util.matchUserAgent('iPad')
)
}
goog.labs.userAgent.platform.isIpad = function () {
return goog.labs.userAgent.util.matchUserAgent('iPad')
}
goog.labs.userAgent.platform.isIos = function () {
return (
goog.labs.userAgent.platform.isIphone() ||
goog.labs.userAgent.platform.isIpad() ||
goog.labs.userAgent.platform.isIpod()
)
}
goog.labs.userAgent.platform.isMacintosh = function () {
return goog.labs.userAgent.util.matchUserAgent('Macintosh')
}
goog.labs.userAgent.platform.isLinux = function () {
return goog.labs.userAgent.util.matchUserAgent('Linux')
}
goog.labs.userAgent.platform.isWindows = function () {
return goog.labs.userAgent.util.matchUserAgent('Windows')
}
goog.labs.userAgent.platform.isChromeOS = function () {
return goog.labs.userAgent.util.matchUserAgent('CrOS')
}
goog.labs.userAgent.platform.getVersion = function () {
var a = goog.labs.userAgent.util.getUserAgent(),
b = ''
goog.labs.userAgent.platform.isWindows()
? ((b = /Windows (?:NT|Phone) ([0-9.]+)/),
(b = (a = b.exec(a)) ? a[1] : '0.0'))
: goog.labs.userAgent.platform.isIos()
? ((b = /(?:iPhone|iPod|iPad|CPU)\s+OS\s+(\S+)/),
(b = (a = b.exec(a)) && a[1].replace(/_/g, '.')))
: goog.labs.userAgent.platform.isMacintosh()
? ((b = /Mac OS X ([0-9_.]+)/),
(b = (a = b.exec(a)) ? a[1].replace(/_/g, '.') : '10'))
: goog.labs.userAgent.platform.isAndroid()
? ((b = /Android\s+([^\);]+)(\)|;)/), (b = (a = b.exec(a)) && a[1]))
: goog.labs.userAgent.platform.isChromeOS() &&
((b = /(?:CrOS\s+(?:i686|x86_64)\s+([0-9.]+))/),
(b = (a = b.exec(a)) && a[1]))
return b || ''
}
goog.labs.userAgent.platform.isVersionOrHigher = function (a) {
return (
0 <=
goog.string.compareVersions(
goog.labs.userAgent.platform.getVersion(),
a
)
)
}
goog.reflect = {}
goog.reflect.object = function (a, b) {
return b
}
goog.reflect.objectProperty = function (a, b) {
return a
}
goog.reflect.sinkValue = function (a) {
goog.reflect.sinkValue[' '](a)
return a
}
goog.reflect.sinkValue[' '] = goog.nullFunction
goog.reflect.canAccessProperty = function (a, b) {
try {
return goog.reflect.sinkValue(a[b]), !0
} catch (c) {}
return !1
}
goog.reflect.cache = function (a, b, c, d) {
d = d ? d(b) : b
return Object.prototype.hasOwnProperty.call(a, d) ? a[d] : (a[d] = c(b))
}
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 goog.labs.userAgent.util.getUserAgent()
}
goog.userAgent.getNavigator = function () {
return goog.global.navigator || null
}
goog.userAgent.OPERA = goog.userAgent.BROWSER_KNOWN_
? goog.userAgent.ASSUME_OPERA
: goog.labs.userAgent.browser.isOpera()
goog.userAgent.IE = goog.userAgent.BROWSER_KNOWN_
? goog.userAgent.ASSUME_IE
: goog.labs.userAgent.browser.isIE()
goog.userAgent.EDGE = goog.userAgent.BROWSER_KNOWN_
? goog.userAgent.ASSUME_EDGE
: 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
: goog.labs.userAgent.engine.isGecko()
goog.userAgent.WEBKIT = goog.userAgent.BROWSER_KNOWN_
? goog.userAgent.ASSUME_WEBKIT || goog.userAgent.ASSUME_MOBILE_WEBKIT
: goog.labs.userAgent.engine.isWebKit()
goog.userAgent.isMobile_ = function () {
return (
goog.userAgent.WEBKIT &&
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 a = goog.userAgent.getNavigator()
return (a && a.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.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
: goog.labs.userAgent.platform.isMacintosh()
goog.userAgent.WINDOWS = goog.userAgent.PLATFORM_KNOWN_
? goog.userAgent.ASSUME_WINDOWS
: goog.labs.userAgent.platform.isWindows()
goog.userAgent.isLegacyLinux_ = function () {
return (
goog.labs.userAgent.platform.isLinux() ||
goog.labs.userAgent.platform.isChromeOS()
)
}
goog.userAgent.LINUX = goog.userAgent.PLATFORM_KNOWN_
? goog.userAgent.ASSUME_LINUX
: goog.userAgent.isLegacyLinux_()
goog.userAgent.isX11_ = function () {
var a = goog.userAgent.getNavigator()
return !!a && goog.string.contains(a.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
: goog.labs.userAgent.platform.isAndroid()
goog.userAgent.IPHONE = goog.userAgent.PLATFORM_KNOWN_
? goog.userAgent.ASSUME_IPHONE
: goog.labs.userAgent.platform.isIphone()
goog.userAgent.IPAD = goog.userAgent.PLATFORM_KNOWN_
? goog.userAgent.ASSUME_IPAD
: goog.labs.userAgent.platform.isIpad()
goog.userAgent.IPOD = goog.userAgent.PLATFORM_KNOWN_
? goog.userAgent.ASSUME_IPOD
: goog.labs.userAgent.platform.isIpod()
goog.userAgent.IOS = goog.userAgent.PLATFORM_KNOWN_
? goog.userAgent.ASSUME_IPHONE ||
goog.userAgent.ASSUME_IPAD ||
goog.userAgent.ASSUME_IPOD
: goog.labs.userAgent.platform.isIos()
goog.userAgent.determineVersion_ = function () {
var a = '',
b = goog.userAgent.getVersionRegexResult_()
b && (a = b ? b[1] : '')
return goog.userAgent.IE &&
((b = goog.userAgent.getDocumentMode_()),
null != b && b > parseFloat(a))
? String(b)
: a
}
goog.userAgent.getVersionRegexResult_ = function () {
var a = goog.userAgent.getUserAgentString()
if (goog.userAgent.GECKO) {
return /rv\:([^\);]+)(\)|;)/.exec(a)
}
if (goog.userAgent.EDGE) {
return /Edge\/([\d\.]+)/.exec(a)
}
if (goog.userAgent.IE) {
return /\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(a)
}
if (goog.userAgent.WEBKIT) {
return /WebKit\/(\S+)/.exec(a)
}
if (goog.userAgent.OPERA) {
return /(?:Version)[ \/]?(\S+)/.exec(a)
}
}
goog.userAgent.getDocumentMode_ = function () {
var a = goog.global.document
return a ? a.documentMode : void 0
}
goog.userAgent.VERSION = goog.userAgent.determineVersion_()
goog.userAgent.compare = function (a, b) {
return goog.string.compareVersions(a, b)
}
goog.userAgent.isVersionOrHigherCache_ = {}
goog.userAgent.isVersionOrHigher = function (a) {
return (
goog.userAgent.ASSUME_ANY_VERSION ||
goog.reflect.cache(
goog.userAgent.isVersionOrHigherCache_,
a,
function () {
return 0 <= goog.string.compareVersions(goog.userAgent.VERSION, a)
}
)
)
}
goog.userAgent.isVersion = goog.userAgent.isVersionOrHigher
goog.userAgent.isDocumentModeOrHigher = function (a) {
return Number(goog.userAgent.DOCUMENT_MODE) >= a
}
goog.userAgent.isDocumentMode = goog.userAgent.isDocumentModeOrHigher
goog.userAgent.DOCUMENT_MODE = (function () {
var a = goog.global.document,
b = goog.userAgent.getDocumentMode_()
if (a && goog.userAgent.IE) {
return (
b ||
('CSS1Compat' == a.compatMode
? parseInt(goog.userAgent.VERSION, 10)
: 5)
)
}
})()
goog.dom.BrowserFeature = {
CAN_ADD_NAME_OR_TYPE_ATTRIBUTES:
!goog.userAgent.IE || goog.userAgent.isDocumentModeOrHigher(9),
CAN_USE_CHILDREN_ATTRIBUTE:
(!goog.userAgent.GECKO && !goog.userAgent.IE) ||
(goog.userAgent.IE && goog.userAgent.isDocumentModeOrHigher(9)) ||
(goog.userAgent.GECKO && goog.userAgent.isVersionOrHigher('1.9.1')),
CAN_USE_INNER_TEXT:
goog.userAgent.IE && !goog.userAgent.isVersionOrHigher('9'),
CAN_USE_PARENT_ELEMENT_PROPERTY:
goog.userAgent.IE || goog.userAgent.OPERA || goog.userAgent.WEBKIT,
INNER_HTML_NEEDS_SCOPED_ELEMENT: goog.userAgent.IE,
LEGACY_IE_RANGES:
goog.userAgent.IE && !goog.userAgent.isDocumentModeOrHigher(9),
}
goog.dom.TagName = function (a) {
this.tagName_ = a
}
goog.dom.TagName.prototype.toString = function () {
return this.tagName_
}
goog.dom.TagName.A = new goog.dom.TagName('A')
goog.dom.TagName.ABBR = new goog.dom.TagName('ABBR')
goog.dom.TagName.ACRONYM = new goog.dom.TagName('ACRONYM')
goog.dom.TagName.ADDRESS = new goog.dom.TagName('ADDRESS')
goog.dom.TagName.APPLET = new goog.dom.TagName('APPLET')
goog.dom.TagName.AREA = new goog.dom.TagName('AREA')
goog.dom.TagName.ARTICLE = new goog.dom.TagName('ARTICLE')
goog.dom.TagName.ASIDE = new goog.dom.TagName('ASIDE')
goog.dom.TagName.AUDIO = new goog.dom.TagName('AUDIO')
goog.dom.TagName.B = new goog.dom.TagName('B')
goog.dom.TagName.BASE = new goog.dom.TagName('BASE')
goog.dom.TagName.BASEFONT = new goog.dom.TagName('BASEFONT')
goog.dom.TagName.BDI = new goog.dom.TagName('BDI')
goog.dom.TagName.BDO = new goog.dom.TagName('BDO')
goog.dom.TagName.BIG = new goog.dom.TagName('BIG')
goog.dom.TagName.BLOCKQUOTE = new goog.dom.TagName('BLOCKQUOTE')
goog.dom.TagName.BODY = new goog.dom.TagName('BODY')
goog.dom.TagName.BR = new goog.dom.TagName('BR')
goog.dom.TagName.BUTTON = new goog.dom.TagName('BUTTON')
goog.dom.TagName.CANVAS = new goog.dom.TagName('CANVAS')
goog.dom.TagName.CAPTION = new goog.dom.TagName('CAPTION')
goog.dom.TagName.CENTER = new goog.dom.TagName('CENTER')
goog.dom.TagName.CITE = new goog.dom.TagName('CITE')
goog.dom.TagName.CODE = new goog.dom.TagName('CODE')
goog.dom.TagName.COL = new goog.dom.TagName('COL')
goog.dom.TagName.COLGROUP = new goog.dom.TagName('COLGROUP')
goog.dom.TagName.COMMAND = new goog.dom.TagName('COMMAND')
goog.dom.TagName.DATA = new goog.dom.TagName('DATA')
goog.dom.TagName.DATALIST = new goog.dom.TagName('DATALIST')
goog.dom.TagName.DD = new goog.dom.TagName('DD')
goog.dom.TagName.DEL = new goog.dom.TagName('DEL')
goog.dom.TagName.DETAILS = new goog.dom.TagName('DETAILS')
goog.dom.TagName.DFN = new goog.dom.TagName('DFN')
goog.dom.TagName.DIALOG = new goog.dom.TagName('DIALOG')
goog.dom.TagName.DIR = new goog.dom.TagName('DIR')
goog.dom.TagName.DIV = new goog.dom.TagName('DIV')
goog.dom.TagName.DL = new goog.dom.TagName('DL')
goog.dom.TagName.DT = new goog.dom.TagName('DT')
goog.dom.TagName.EM = new goog.dom.TagName('EM')
goog.dom.TagName.EMBED = new goog.dom.TagName('EMBED')
goog.dom.TagName.FIELDSET = new goog.dom.TagName('FIELDSET')
goog.dom.TagName.FIGCAPTION = new goog.dom.TagName('FIGCAPTION')
goog.dom.TagName.FIGURE = new goog.dom.TagName('FIGURE')
goog.dom.TagName.FONT = new goog.dom.TagName('FONT')
goog.dom.TagName.FOOTER = new goog.dom.TagName('FOOTER')
goog.dom.TagName.FORM = new goog.dom.TagName('FORM')
goog.dom.TagName.FRAME = new goog.dom.TagName('FRAME')
goog.dom.TagName.FRAMESET = new goog.dom.TagName('FRAMESET')
goog.dom.TagName.H1 = new goog.dom.TagName('H1')
goog.dom.TagName.H2 = new goog.dom.TagName('H2')
goog.dom.TagName.H3 = new goog.dom.TagName('H3')
goog.dom.TagName.H4 = new goog.dom.TagName('H4')
goog.dom.TagName.H5 = new goog.dom.TagName('H5')
goog.dom.TagName.H6 = new goog.dom.TagName('H6')
goog.dom.TagName.HEAD = new goog.dom.TagName('HEAD')
goog.dom.TagName.HEADER = new goog.dom.TagName('HEADER')
goog.dom.TagName.HGROUP = new goog.dom.TagName('HGROUP')
goog.dom.TagName.HR = new goog.dom.TagName('HR')
goog.dom.TagName.HTML = new goog.dom.TagName('HTML')
goog.dom.TagName.I = new goog.dom.TagName('I')
goog.dom.TagName.IFRAME = new goog.dom.TagName('IFRAME')
goog.dom.TagName.IMG = new goog.dom.TagName('IMG')
goog.dom.TagName.INPUT = new goog.dom.TagName('INPUT')
goog.dom.TagName.INS = new goog.dom.TagName('INS')
goog.dom.TagName.ISINDEX = new goog.dom.TagName('ISINDEX')
goog.dom.TagName.KBD = new goog.dom.TagName('KBD')
goog.dom.TagName.KEYGEN = new goog.dom.TagName('KEYGEN')
goog.dom.TagName.LABEL = new goog.dom.TagName('LABEL')
goog.dom.TagName.LEGEND = new goog.dom.TagName('LEGEND')
goog.dom.TagName.LI = new goog.dom.TagName('LI')
goog.dom.TagName.LINK = new goog.dom.TagName('LINK')
goog.dom.TagName.MAP = new goog.dom.TagName('MAP')
goog.dom.TagName.MARK = new goog.dom.TagName('MARK')
goog.dom.TagName.MATH = new goog.dom.TagName('MATH')
goog.dom.TagName.MENU = new goog.dom.TagName('MENU')
goog.dom.TagName.META = new goog.dom.TagName('META')
goog.dom.TagName.METER = new goog.dom.TagName('METER')
goog.dom.TagName.NAV = new goog.dom.TagName('NAV')
goog.dom.TagName.NOFRAMES = new goog.dom.TagName('NOFRAMES')
goog.dom.TagName.NOSCRIPT = new goog.dom.TagName('NOSCRIPT')
goog.dom.TagName.OBJECT = new goog.dom.TagName('OBJECT')
goog.dom.TagName.OL = new goog.dom.TagName('OL')
goog.dom.TagName.OPTGROUP = new goog.dom.TagName('OPTGROUP')
goog.dom.TagName.OPTION = new goog.dom.TagName('OPTION')
goog.dom.TagName.OUTPUT = new goog.dom.TagName('OUTPUT')
goog.dom.TagName.P = new goog.dom.TagName('P')
goog.dom.TagName.PARAM = new goog.dom.TagName('PARAM')
goog.dom.TagName.PRE = new goog.dom.TagName('PRE')
goog.dom.TagName.PROGRESS = new goog.dom.TagName('PROGRESS')
goog.dom.TagName.Q = new goog.dom.TagName('Q')
goog.dom.TagName.RP = new goog.dom.TagName('RP')
goog.dom.TagName.RT = new goog.dom.TagName('RT')
goog.dom.TagName.RUBY = new goog.dom.TagName('RUBY')
goog.dom.TagName.S = new goog.dom.TagName('S')
goog.dom.TagName.SAMP = new goog.dom.TagName('SAMP')
goog.dom.TagName.SCRIPT = new goog.dom.TagName('SCRIPT')
goog.dom.TagName.SECTION = new goog.dom.TagName('SECTION')
goog.dom.TagName.SELECT = new goog.dom.TagName('SELECT')
goog.dom.TagName.SMALL = new goog.dom.TagName('SMALL')
goog.dom.TagName.SOURCE = new goog.dom.TagName('SOURCE')
goog.dom.TagName.SPAN = new goog.dom.TagName('SPAN')
goog.dom.TagName.STRIKE = new goog.dom.TagName('STRIKE')
goog.dom.TagName.STRONG = new goog.dom.TagName('STRONG')
goog.dom.TagName.STYLE = new goog.dom.TagName('STYLE')
goog.dom.TagName.SUB = new goog.dom.TagName('SUB')
goog.dom.TagName.SUMMARY = new goog.dom.TagName('SUMMARY')
goog.dom.TagName.SUP = new goog.dom.TagName('SUP')
goog.dom.TagName.SVG = new goog.dom.TagName('SVG')
goog.dom.TagName.TABLE = new goog.dom.TagName('TABLE')
goog.dom.TagName.TBODY = new goog.dom.TagName('TBODY')
goog.dom.TagName.TD = new goog.dom.TagName('TD')
goog.dom.TagName.TEMPLATE = new goog.dom.TagName('TEMPLATE')
goog.dom.TagName.TEXTAREA = new goog.dom.TagName('TEXTAREA')
goog.dom.TagName.TFOOT = new goog.dom.TagName('TFOOT')
goog.dom.TagName.TH = new goog.dom.TagName('TH')
goog.dom.TagName.THEAD = new goog.dom.TagName('THEAD')
goog.dom.TagName.TIME = new goog.dom.TagName('TIME')
goog.dom.TagName.TITLE = new goog.dom.TagName('TITLE')
goog.dom.TagName.TR = new goog.dom.TagName('TR')
goog.dom.TagName.TRACK = new goog.dom.TagName('TRACK')
goog.dom.TagName.TT = new goog.dom.TagName('TT')
goog.dom.TagName.U = new goog.dom.TagName('U')
goog.dom.TagName.UL = new goog.dom.TagName('UL')
goog.dom.TagName.VAR = new goog.dom.TagName('VAR')
goog.dom.TagName.VIDEO = new goog.dom.TagName('VIDEO')
goog.dom.TagName.WBR = new goog.dom.TagName('WBR')
goog.dom.tags = {}
goog.dom.tags.VOID_TAGS_ = {
area: !0,
base: !0,
br: !0,
col: !0,
command: !0,
embed: !0,
hr: !0,
img: !0,
input: !0,
keygen: !0,
link: !0,
meta: !0,
param: !0,
source: !0,
track: !0,
wbr: !0,
}
goog.dom.tags.isVoidTag = function (a) {
return !0 === goog.dom.tags.VOID_TAGS_[a]
}
goog.string.TypedString = function () {}
goog.string.Const = function () {
this.stringConstValueWithSecurityContract__googStringSecurityPrivate_ = ''
this.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_ =
goog.string.Const.TYPE_MARKER_
}
goog.string.Const.prototype.implementsGoogStringTypedString = !0
goog.string.Const.prototype.getTypedStringValue = function () {
return this
.stringConstValueWithSecurityContract__googStringSecurityPrivate_
}
goog.string.Const.prototype.toString = function () {
return (
'Const{' +
this.stringConstValueWithSecurityContract__googStringSecurityPrivate_ +
'}'
)
}
goog.string.Const.unwrap = function (a) {
if (
a instanceof goog.string.Const &&
a.constructor === goog.string.Const &&
a.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_ ===
goog.string.Const.TYPE_MARKER_
) {
return a.stringConstValueWithSecurityContract__googStringSecurityPrivate_
}
goog.asserts.fail("expected object of type Const, got '" + a + "'")
return 'type_error:Const'
}
goog.string.Const.from = function (a) {
return goog.string.Const.create__googStringSecurityPrivate_(a)
}
goog.string.Const.TYPE_MARKER_ = {}
goog.string.Const.create__googStringSecurityPrivate_ = function (a) {
var b = new goog.string.Const()
b.stringConstValueWithSecurityContract__googStringSecurityPrivate_ = a
return b
}
goog.string.Const.EMPTY = goog.string.Const.from('')
goog.html = {}
goog.html.SafeStyle = function () {
this.privateDoNotAccessOrElseSafeStyleWrappedValue_ = ''
this.SAFE_STYLE_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ =
goog.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_
}
goog.html.SafeStyle.prototype.implementsGoogStringTypedString = !0
goog.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = {}
goog.html.SafeStyle.fromConstant = function (a) {
a = goog.string.Const.unwrap(a)
if (0 === a.length) {
return goog.html.SafeStyle.EMPTY
}
goog.html.SafeStyle.checkStyle_(a)
goog.asserts.assert(
goog.string.endsWith(a, ';'),
"Last character of style string is not ';': " + a
)
goog.asserts.assert(
goog.string.contains(a, ':'),
'Style string must contain at least one \':\', to specify a "name: value" pair: ' +
a
)
return goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(
a
)
}
goog.html.SafeStyle.checkStyle_ = function (a) {
goog.asserts.assert(
!/[<>]/.test(a),
'Forbidden characters in style string: ' + a
)
}
goog.html.SafeStyle.prototype.getTypedStringValue = function () {
return this.privateDoNotAccessOrElseSafeStyleWrappedValue_
}
goog.DEBUG &&
(goog.html.SafeStyle.prototype.toString = function () {
return (
'SafeStyle{' +
this.privateDoNotAccessOrElseSafeStyleWrappedValue_ +
'}'
)
})
goog.html.SafeStyle.unwrap = function (a) {
if (
a instanceof goog.html.SafeStyle &&
a.constructor === goog.html.SafeStyle &&
a.SAFE_STYLE_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ ===
goog.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_
) {
return a.privateDoNotAccessOrElseSafeStyleWrappedValue_
}
goog.asserts.fail(
"expected object of type SafeStyle, got '" +
a +
"' of type " +
goog.typeOf(a)
)
return 'type_error:SafeStyle'
}
goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse = function (
a
) {
return new goog.html.SafeStyle().initSecurityPrivateDoNotAccessOrElse_(a)
}
goog.html.SafeStyle.prototype.initSecurityPrivateDoNotAccessOrElse_ = function (
a
) {
this.privateDoNotAccessOrElseSafeStyleWrappedValue_ = a
return this
}
goog.html.SafeStyle.EMPTY = goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(
''
)
goog.html.SafeStyle.INNOCUOUS_STRING = 'zClosurez'
goog.html.SafeStyle.create = function (a) {
var b = '',
c
for (c in a) {
if (!/^[-_a-zA-Z0-9]+$/.test(c)) {
throw Error('Name allows only [-_a-zA-Z0-9], got: ' + c)
}
var d = a[c]
null != d &&
(d instanceof goog.string.Const
? ((d = goog.string.Const.unwrap(d)),
goog.asserts.assert(
!/[{;}]/.test(d),
'Value does not allow [{;}].'
))
: goog.html.SafeStyle.VALUE_RE_.test(d)
? goog.html.SafeStyle.hasBalancedQuotes_(d) ||
(goog.asserts.fail(
'String value requires balanced quotes, got: ' + d
),
(d = goog.html.SafeStyle.INNOCUOUS_STRING))
: (goog.asserts.fail(
'String value allows only [-,."\'%_!# a-zA-Z0-9], rgb() and rgba(), got: ' +
d
),
(d = goog.html.SafeStyle.INNOCUOUS_STRING)),
(b += c + ':' + d + ';'))
}
if (!b) {
return goog.html.SafeStyle.EMPTY
}
goog.html.SafeStyle.checkStyle_(b)
return goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(
b
)
}
goog.html.SafeStyle.hasBalancedQuotes_ = function (a) {
for (var b = !0, c = !0, d = 0; d < a.length; d++) {
var e = a.charAt(d)
"'" == e && c ? (b = !b) : '"' == e && b && (c = !c)
}
return b && c
}
goog.html.SafeStyle.VALUE_RE_ = /^([-,."'%_!# a-zA-Z0-9]+|(?:rgb|hsl)a?\([0-9.%, ]+\))$/
goog.html.SafeStyle.concat = function (a) {
var b = '',
c = function (a) {
goog.isArray(a)
? goog.array.forEach(a, c)
: (b += goog.html.SafeStyle.unwrap(a))
}
goog.array.forEach(arguments, c)
return b
? goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(b)
: goog.html.SafeStyle.EMPTY
}
goog.html.SafeStyleSheet = function () {
this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_ = ''
this.SAFE_STYLE_SHEET_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ =
goog.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_
}
goog.html.SafeStyleSheet.prototype.implementsGoogStringTypedString = !0
goog.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = {}
goog.html.SafeStyleSheet.concat = function (a) {
var b = '',
c = function (a) {
goog.isArray(a)
? goog.array.forEach(a, c)
: (b += goog.html.SafeStyleSheet.unwrap(a))
}
goog.array.forEach(arguments, c)
return goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(
b
)
}
goog.html.SafeStyleSheet.fromConstant = function (a) {
a = goog.string.Const.unwrap(a)
if (0 === a.length) {
return goog.html.SafeStyleSheet.EMPTY
}
goog.asserts.assert(
!goog.string.contains(a, '<'),
"Forbidden '<' character in style sheet string: " + a
)
return goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(
a
)
}
goog.html.SafeStyleSheet.prototype.getTypedStringValue = function () {
return this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_
}
goog.DEBUG &&
(goog.html.SafeStyleSheet.prototype.toString = function () {
return (
'SafeStyleSheet{' +
this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_ +
'}'
)
})
goog.html.SafeStyleSheet.unwrap = function (a) {
if (
a instanceof goog.html.SafeStyleSheet &&
a.constructor === goog.html.SafeStyleSheet &&
a.SAFE_STYLE_SHEET_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ ===
goog.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_
) {
return a.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_
}
goog.asserts.fail(
"expected object of type SafeStyleSheet, got '" +
a +
"' of type " +
goog.typeOf(a)
)
return 'type_error:SafeStyleSheet'
}
goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse = function (
a
) {
return new goog.html.SafeStyleSheet().initSecurityPrivateDoNotAccessOrElse_(
a
)
}
goog.html.SafeStyleSheet.prototype.initSecurityPrivateDoNotAccessOrElse_ = function (
a
) {
this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_ = a
return this
}
goog.html.SafeStyleSheet.EMPTY = goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(
''
)
goog.fs = {}
goog.fs.url = {}
goog.fs.url.createObjectUrl = function (a) {
return goog.fs.url.getUrlObject_().createObjectURL(a)
}
goog.fs.url.revokeObjectUrl = function (a) {
goog.fs.url.getUrlObject_().revokeObjectURL(a)
}
goog.fs.url.getUrlObject_ = function () {
var a = goog.fs.url.findUrlObject_()
if (null != a) {
return a
}
throw Error("This browser doesn't seem to support blob URLs")
}
goog.fs.url.findUrlObject_ = function () {
return goog.isDef(goog.global.URL) &&
goog.isDef(goog.global.URL.createObjectURL)
? goog.global.URL
: goog.isDef(goog.global.webkitURL) &&
goog.isDef(goog.global.webkitURL.createObjectURL)
? goog.global.webkitURL
: goog.isDef(goog.global.createObjectURL)
? goog.global
: null
}
goog.fs.url.browserSupportsObjectUrls = function () {
return null != goog.fs.url.findUrlObject_()
}
goog.i18n = {}
goog.i18n.bidi = {}
goog.i18n.bidi.FORCE_RTL = !1
goog.i18n.bidi.IS_RTL =
goog.i18n.bidi.FORCE_RTL ||
(('ar' == goog.LOCALE.substring(0, 2).toLowerCase() ||
'fa' == goog.LOCALE.substring(0, 2).toLowerCase() ||
'he' == goog.LOCALE.substring(0, 2).toLowerCase() ||
'iw' == goog.LOCALE.substring(0, 2).toLowerCase() ||
'ps' == goog.LOCALE.substring(0, 2).toLowerCase() ||
'sd' == goog.LOCALE.substring(0, 2).toLowerCase() ||
'ug' == goog.LOCALE.substring(0, 2).toLowerCase() ||
'ur' == goog.LOCALE.substring(0, 2).toLowerCase() ||
'yi' == goog.LOCALE.substring(0, 2).toLowerCase()) &&
(2 == goog.LOCALE.length ||
'-' == goog.LOCALE.substring(2, 3) ||
'_' == goog.LOCALE.substring(2, 3))) ||
(3 <= goog.LOCALE.length &&
'ckb' == goog.LOCALE.substring(0, 3).toLowerCase() &&
(3 == goog.LOCALE.length ||
'-' == goog.LOCALE.substring(3, 4) ||
'_' == goog.LOCALE.substring(3, 4)))
goog.i18n.bidi.Format = {
LRE: '\u202a',
RLE: '\u202b',
PDF: '\u202c',
LRM: '\u200e',
RLM: '\u200f',
}
goog.i18n.bidi.Dir = { LTR: 1, RTL: -1, NEUTRAL: 0 }
goog.i18n.bidi.RIGHT = 'right'
goog.i18n.bidi.LEFT = 'left'
goog.i18n.bidi.I18N_RIGHT = goog.i18n.bidi.IS_RTL
? goog.i18n.bidi.LEFT
: goog.i18n.bidi.RIGHT
goog.i18n.bidi.I18N_LEFT = goog.i18n.bidi.IS_RTL
? goog.i18n.bidi.RIGHT
: goog.i18n.bidi.LEFT
goog.i18n.bidi.toDir = function (a, b) {
return 'number' == typeof a
? 0 < a
? goog.i18n.bidi.Dir.LTR
: 0 > a
? goog.i18n.bidi.Dir.RTL
: b
? null
: goog.i18n.bidi.Dir.NEUTRAL
: null == a
? null
: a
? goog.i18n.bidi.Dir.RTL
: goog.i18n.bidi.Dir.LTR
}
goog.i18n.bidi.ltrChars_ =
'A-Za-z\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02b8\u0300-\u0590\u0800-\u1fff\u200e\u2c00-\ufb1c\ufe00-\ufe6f\ufefd-\uffff'
goog.i18n.bidi.rtlChars_ =
'\u0591-\u06ef\u06fa-\u07ff\u200f\ufb1d-\ufdff\ufe70-\ufefc'
goog.i18n.bidi.htmlSkipReg_ = /<[^>]*>|&[^;]+;/g
goog.i18n.bidi.stripHtmlIfNeeded_ = function (a, b) {
return b ? a.replace(goog.i18n.bidi.htmlSkipReg_, '') : a
}
goog.i18n.bidi.rtlCharReg_ = new RegExp(
'[' + goog.i18n.bidi.rtlChars_ + ']'
)
goog.i18n.bidi.ltrCharReg_ = new RegExp(
'[' + goog.i18n.bidi.ltrChars_ + ']'
)
goog.i18n.bidi.hasAnyRtl = function (a, b) {
return goog.i18n.bidi.rtlCharReg_.test(
goog.i18n.bidi.stripHtmlIfNeeded_(a, b)
)
}
goog.i18n.bidi.hasRtlChar = goog.i18n.bidi.hasAnyRtl
goog.i18n.bidi.hasAnyLtr = function (a, b) {
return goog.i18n.bidi.ltrCharReg_.test(
goog.i18n.bidi.stripHtmlIfNeeded_(a, b)
)
}
goog.i18n.bidi.ltrRe_ = new RegExp('^[' + goog.i18n.bidi.ltrChars_ + ']')
goog.i18n.bidi.rtlRe_ = new RegExp('^[' + goog.i18n.bidi.rtlChars_ + ']')
goog.i18n.bidi.isRtlChar = function (a) {
return goog.i18n.bidi.rtlRe_.test(a)
}
goog.i18n.bidi.isLtrChar = function (a) {
return goog.i18n.bidi.ltrRe_.test(a)
}
goog.i18n.bidi.isNeutralChar = function (a) {
return !goog.i18n.bidi.isLtrChar(a) && !goog.i18n.bidi.isRtlChar(a)
}
goog.i18n.bidi.ltrDirCheckRe_ = new RegExp(
'^[^' + goog.i18n.bidi.rtlChars_ + ']*[' + goog.i18n.bidi.ltrChars_ + ']'
)
goog.i18n.bidi.rtlDirCheckRe_ = new RegExp(
'^[^' + goog.i18n.bidi.ltrChars_ + ']*[' + goog.i18n.bidi.rtlChars_ + ']'
)
goog.i18n.bidi.startsWithRtl = function (a, b) {
return goog.i18n.bidi.rtlDirCheckRe_.test(
goog.i18n.bidi.stripHtmlIfNeeded_(a, b)
)
}
goog.i18n.bidi.isRtlText = goog.i18n.bidi.startsWithRtl
goog.i18n.bidi.startsWithLtr = function (a, b) {
return goog.i18n.bidi.ltrDirCheckRe_.test(
goog.i18n.bidi.stripHtmlIfNeeded_(a, b)
)
}
goog.i18n.bidi.isLtrText = goog.i18n.bidi.startsWithLtr
goog.i18n.bidi.isRequiredLtrRe_ = /^http:\/\/.*/
goog.i18n.bidi.isNeutralText = function (a, b) {
a = goog.i18n.bidi.stripHtmlIfNeeded_(a, b)
return (
goog.i18n.bidi.isRequiredLtrRe_.test(a) ||
(!goog.i18n.bidi.hasAnyLtr(a) && !goog.i18n.bidi.hasAnyRtl(a))
)
}
goog.i18n.bidi.ltrExitDirCheckRe_ = new RegExp(
'[' + goog.i18n.bidi.ltrChars_ + '][^' + goog.i18n.bidi.rtlChars_ + ']*$'
)
goog.i18n.bidi.rtlExitDirCheckRe_ = new RegExp(
'[' + goog.i18n.bidi.rtlChars_ + '][^' + goog.i18n.bidi.ltrChars_ + ']*$'
)
goog.i18n.bidi.endsWithLtr = function (a, b) {
return goog.i18n.bidi.ltrExitDirCheckRe_.test(
goog.i18n.bidi.stripHtmlIfNeeded_(a, b)
)
}
goog.i18n.bidi.isLtrExitText = goog.i18n.bidi.endsWithLtr
goog.i18n.bidi.endsWithRtl = function (a, b) {
return goog.i18n.bidi.rtlExitDirCheckRe_.test(
goog.i18n.bidi.stripHtmlIfNeeded_(a, b)
)
}
goog.i18n.bidi.isRtlExitText = goog.i18n.bidi.endsWithRtl
goog.i18n.bidi.rtlLocalesRe_ = /^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Arab|Hebr|Thaa|Nkoo|Tfng))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i
goog.i18n.bidi.isRtlLanguage = function (a) {
return goog.i18n.bidi.rtlLocalesRe_.test(a)
}
goog.i18n.bidi.bracketGuardTextRe_ = /(\(.*?\)+)|(\[.*?\]+)|(\{.*?\}+)|(<.*?>+)/g
goog.i18n.bidi.guardBracketInText = function (a, b) {
var c = (void 0 === b ? goog.i18n.bidi.hasAnyRtl(a) : b)
? goog.i18n.bidi.Format.RLM
: goog.i18n.bidi.Format.LRM
return a.replace(goog.i18n.bidi.bracketGuardTextRe_, c + '$&' + c)
}
goog.i18n.bidi.enforceRtlInHtml = function (a) {
return '<' == a.charAt(0)
? a.replace(/<\w+/, '$& dir=rtl')
: '\n<span dir=rtl>' + a + '</span>'
}
goog.i18n.bidi.enforceRtlInText = function (a) {
return goog.i18n.bidi.Format.RLE + a + goog.i18n.bidi.Format.PDF
}
goog.i18n.bidi.enforceLtrInHtml = function (a) {
return '<' == a.charAt(0)
? a.replace(/<\w+/, '$& dir=ltr')
: '\n<span dir=ltr>' + a + '</span>'
}
goog.i18n.bidi.enforceLtrInText = function (a) {
return goog.i18n.bidi.Format.LRE + a + goog.i18n.bidi.Format.PDF
}
goog.i18n.bidi.dimensionsRe_ = /:\s*([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)/g
goog.i18n.bidi.leftRe_ = /left/gi
goog.i18n.bidi.rightRe_ = /right/gi
goog.i18n.bidi.tempRe_ = /%%%%/g
goog.i18n.bidi.mirrorCSS = function (a) {
return a
.replace(goog.i18n.bidi.dimensionsRe_, ':$1 $4 $3 $2')
.replace(goog.i18n.bidi.leftRe_, '%%%%')
.replace(goog.i18n.bidi.rightRe_, goog.i18n.bidi.LEFT)
.replace(goog.i18n.bidi.tempRe_, goog.i18n.bidi.RIGHT)
}
goog.i18n.bidi.doubleQuoteSubstituteRe_ = /([\u0591-\u05f2])"/g
goog.i18n.bidi.singleQuoteSubstituteRe_ = /([\u0591-\u05f2])'/g
goog.i18n.bidi.normalizeHebrewQuote = function (a) {
return a
.replace(goog.i18n.bidi.doubleQuoteSubstituteRe_, '$1\u05f4')
.replace(goog.i18n.bidi.singleQuoteSubstituteRe_, '$1\u05f3')
}
goog.i18n.bidi.wordSeparatorRe_ = /\s+/
goog.i18n.bidi.hasNumeralsRe_ = /[\d\u06f0-\u06f9]/
goog.i18n.bidi.rtlDetectionThreshold_ = 0.4
goog.i18n.bidi.estimateDirection = function (a, b) {
for (
var c = 0,
d = 0,
e = !1,
f = goog.i18n.bidi
.stripHtmlIfNeeded_(a, b)
.split(goog.i18n.bidi.wordSeparatorRe_),
g = 0;
g < f.length;
g++
) {
var h = f[g]
goog.i18n.bidi.startsWithRtl(h)
? (c++, d++)
: goog.i18n.bidi.isRequiredLtrRe_.test(h)
? (e = !0)
: goog.i18n.bidi.hasAnyLtr(h)
? d++
: goog.i18n.bidi.hasNumeralsRe_.test(h) && (e = !0)
}
return 0 == d
? e
? goog.i18n.bidi.Dir.LTR
: goog.i18n.bidi.Dir.NEUTRAL
: c / d > goog.i18n.bidi.rtlDetectionThreshold_
? goog.i18n.bidi.Dir.RTL
: goog.i18n.bidi.Dir.LTR
}
goog.i18n.bidi.detectRtlDirectionality = function (a, b) {
return goog.i18n.bidi.estimateDirection(a, b) == goog.i18n.bidi.Dir.RTL
}
goog.i18n.bidi.setElementDirAndAlign = function (a, b) {
a &&
(b = goog.i18n.bidi.toDir(b)) &&
((a.style.textAlign =
b == goog.i18n.bidi.Dir.RTL
? goog.i18n.bidi.RIGHT
: goog.i18n.bidi.LEFT),
(a.dir = b == goog.i18n.bidi.Dir.RTL ? 'rtl' : 'ltr'))
}
goog.i18n.bidi.setElementDirByTextDirectionality = function (a, b) {
switch (goog.i18n.bidi.estimateDirection(b)) {
case goog.i18n.bidi.Dir.LTR:
a.dir = 'ltr'
break
case goog.i18n.bidi.Dir.RTL:
a.dir = 'rtl'
break
default:
a.removeAttribute('dir')
}
}
goog.i18n.bidi.DirectionalString = function () {}
goog.html.SafeUrl = function () {
this.privateDoNotAccessOrElseSafeHtmlWrappedValue_ = ''
this.SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ =
goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_
}
goog.html.SafeUrl.INNOCUOUS_STRING = 'about:invalid#zClosurez'
goog.html.SafeUrl.prototype.implementsGoogStringTypedString = !0
goog.html.SafeUrl.prototype.getTypedStringValue = function () {
return this.privateDoNotAccessOrElseSafeHtmlWrappedValue_
}
goog.html.SafeUrl.prototype.implementsGoogI18nBidiDirectionalString = !0
goog.html.SafeUrl.prototype.getDirection = function () {
return goog.i18n.bidi.Dir.LTR
}
goog.DEBUG &&
(goog.html.SafeUrl.prototype.toString = function () {
return (
'SafeUrl{' + this.privateDoNotAccessOrElseSafeHtmlWrappedValue_ + '}'
)
})
goog.html.SafeUrl.unwrap = function (a) {
if (
a instanceof goog.html.SafeUrl &&
a.constructor === goog.html.SafeUrl &&
a.SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ ===
goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_
) {
return a.privateDoNotAccessOrElseSafeHtmlWrappedValue_
}
goog.asserts.fail(
"expected object of type SafeUrl, got '" +
a +
"' of type " +
goog.typeOf(a)
)
return 'type_error:SafeUrl'
}
goog.html.SafeUrl.fromConstant = function (a) {
return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(
goog.string.Const.unwrap(a)
)
}
goog.html.SAFE_MIME_TYPE_PATTERN_ = /^(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm))$/i
goog.html.SafeUrl.fromBlob = function (a) {
a = goog.html.SAFE_MIME_TYPE_PATTERN_.test(a.type)
? goog.fs.url.createObjectUrl(a)
: goog.html.SafeUrl.INNOCUOUS_STRING
return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a)
}
goog.html.DATA_URL_PATTERN_ = /^data:([^;,]*);base64,[a-z0-9+\/]+=*$/i
goog.html.SafeUrl.fromDataUrl = function (a) {
var b = a.match(goog.html.DATA_URL_PATTERN_),
b = b && goog.html.SAFE_MIME_TYPE_PATTERN_.test(b[1])
return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(
b ? a : goog.html.SafeUrl.INNOCUOUS_STRING
)
}
goog.html.SafeUrl.fromTelUrl = function (a) {
goog.string.caseInsensitiveStartsWith(a, 'tel:') ||
(a = goog.html.SafeUrl.INNOCUOUS_STRING)
return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a)
}
goog.html.SAFE_URL_PATTERN_ = /^(?:(?:https?|mailto|ftp):|[^&:/?#]*(?:[/?#]|$))/i
goog.html.SafeUrl.sanitize = function (a) {
if (a instanceof goog.html.SafeUrl) {
return a
}
a = a.implementsGoogStringTypedString
? a.getTypedStringValue()
: String(a)
goog.html.SAFE_URL_PATTERN_.test(a) ||
(a = goog.html.SafeUrl.INNOCUOUS_STRING)
return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a)
}
goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = {}
goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse = function (
a
) {
var b = new goog.html.SafeUrl()
b.privateDoNotAccessOrElseSafeHtmlWrappedValue_ = a
return b
}
goog.html.SafeUrl.ABOUT_BLANK = goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(
'about:blank'
)
goog.html.TrustedResourceUrl = function () {
this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_ = ''
this.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ =
goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_
}
goog.html.TrustedResourceUrl.prototype.implementsGoogStringTypedString = !0
goog.html.TrustedResourceUrl.prototype.getTypedStringValue = function () {
return this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_
}
goog.html.TrustedResourceUrl.prototype.implementsGoogI18nBidiDirectionalString = !0
goog.html.TrustedResourceUrl.prototype.getDirection = function () {
return goog.i18n.bidi.Dir.LTR
}
goog.DEBUG &&
(goog.html.TrustedResourceUrl.prototype.toString = function () {
return (
'TrustedResourceUrl{' +
this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_ +
'}'
)
})
goog.html.TrustedResourceUrl.unwrap = function (a) {
if (
a instanceof goog.html.TrustedResourceUrl &&
a.constructor === goog.html.TrustedResourceUrl &&
a.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ ===
goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_
) {
return a.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_
}
goog.asserts.fail(
"expected object of type TrustedResourceUrl, got '" +
a +
"' of type " +
goog.typeOf(a)
)
return 'type_error:TrustedResourceUrl'
}
goog.html.TrustedResourceUrl.format = function (a, b) {
var c = goog.string.Const.unwrap(a)
if (!goog.html.TrustedResourceUrl.BASE_URL_.test(c)) {
throw Error('Invalid TrustedResourceUrl format: ' + c)
}
var d = c.replace(
goog.html.TrustedResourceUrl.FORMAT_MARKER_,
function (a, d) {
if (!Object.prototype.hasOwnProperty.call(b, d)) {
throw Error(
'Found marker, "' +
d +
'", in format string, "' +
c +
'", but no valid label mapping found in args: ' +
JSON.stringify(b)
)
}
var e = b[d]
return e instanceof goog.string.Const
? goog.string.Const.unwrap(e)
: encodeURIComponent(String(e))
}
)
return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(
d
)
}
goog.html.TrustedResourceUrl.FORMAT_MARKER_ = /%{(\w+)}/g
goog.html.TrustedResourceUrl.SCHEME_AND_ORIGIN_ =
'(?:(?:https:)?//[0-9a-z.:[\\]-]+)?'
goog.html.TrustedResourceUrl.BASE_ABSOLUTE_PATH_ =
'(?:/[0-9a-z_~-]+(?:[/#?]|$))'
goog.html.TrustedResourceUrl.BASE_URL_ = new RegExp(
'^' +
goog.html.TrustedResourceUrl.SCHEME_AND_ORIGIN_ +
goog.html.TrustedResourceUrl.BASE_ABSOLUTE_PATH_,
'i'
)
goog.html.TrustedResourceUrl.fromConstant = function (a) {
return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(
goog.string.Const.unwrap(a)
)
}
goog.html.TrustedResourceUrl.fromConstants = function (a) {
for (var b = '', c = 0; c < a.length; c++) {
b += goog.string.Const.unwrap(a[c])
}
return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(
b
)
}
goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = {}
goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse = function (
a
) {
var b = new goog.html.TrustedResourceUrl()
b.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_ = a
return b
}
goog.html.SafeHtml = function () {
this.privateDoNotAccessOrElseSafeHtmlWrappedValue_ = ''
this.SAFE_HTML_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ =
goog.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_
this.dir_ = null
}
goog.html.SafeHtml.prototype.implementsGoogI18nBidiDirectionalString = !0
goog.html.SafeHtml.prototype.getDirection = function () {
return this.dir_
}
goog.html.SafeHtml.prototype.implementsGoogStringTypedString = !0
goog.html.SafeHtml.prototype.getTypedStringValue = function () {
return this.privateDoNotAccessOrElseSafeHtmlWrappedValue_
}
goog.DEBUG &&
(goog.html.SafeHtml.prototype.toString = function () {
return (
'SafeHtml{' + this.privateDoNotAccessOrElseSafeHtmlWrappedValue_ + '}'
)
})
goog.html.SafeHtml.unwrap = function (a) {
if (
a instanceof goog.html.SafeHtml &&
a.constructor === goog.html.SafeHtml &&
a.SAFE_HTML_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ ===
goog.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_
) {
return a.privateDoNotAccessOrElseSafeHtmlWrappedValue_
}
goog.asserts.fail(
"expected object of type SafeHtml, got '" +
a +
"' of type " +
goog.typeOf(a)
)
return 'type_error:SafeHtml'
}
goog.html.SafeHtml.htmlEscape = function (a) {
if (a instanceof goog.html.SafeHtml) {
return a
}
var b = null
a.implementsGoogI18nBidiDirectionalString && (b = a.getDirection())
a = a.implementsGoogStringTypedString
? a.getTypedStringValue()
: String(a)
return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(
goog.string.htmlEscape(a),
b
)
}
goog.html.SafeHtml.htmlEscapePreservingNewlines = function (a) {
if (a instanceof goog.html.SafeHtml) {
return a
}
a = goog.html.SafeHtml.htmlEscape(a)
return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(
goog.string.newLineToBr(goog.html.SafeHtml.unwrap(a)),
a.getDirection()
)
}
goog.html.SafeHtml.htmlEscapePreservingNewlinesAndSpaces = function (a) {
if (a instanceof goog.html.SafeHtml) {
return a
}
a = goog.html.SafeHtml.htmlEscape(a)
return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(
goog.string.whitespaceEscape(goog.html.SafeHtml.unwrap(a)),
a.getDirection()
)
}
goog.html.SafeHtml.from = goog.html.SafeHtml.htmlEscape
goog.html.SafeHtml.VALID_NAMES_IN_TAG_ = /^[a-zA-Z0-9-]+$/
goog.html.SafeHtml.URL_ATTRIBUTES_ = {
action: !0,
cite: !0,
data: !0,
formaction: !0,
href: !0,
manifest: !0,
poster: !0,
src: !0,
}
goog.html.SafeHtml.NOT_ALLOWED_TAG_NAMES_ = {
APPLET: !0,
BASE: !0,
EMBED: !0,
IFRAME: !0,
LINK: !0,
MATH: !0,
META: !0,
OBJECT: !0,
SCRIPT: !0,
STYLE: !0,
SVG: !0,
TEMPLATE: !0,
}
goog.html.SafeHtml.create = function (a, b, c) {
goog.html.SafeHtml.verifyTagName(String(a))
return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse(
String(a),
b,
c
)
}
goog.html.SafeHtml.verifyTagName = function (a) {
if (!goog.html.SafeHtml.VALID_NAMES_IN_TAG_.test(a)) {
throw Error('Invalid tag name <' + a + '>.')
}
if (a.toUpperCase() in goog.html.SafeHtml.NOT_ALLOWED_TAG_NAMES_) {
throw Error('Tag name <' + a + '> is not allowed for SafeHtml.')
}
}
goog.html.SafeHtml.createIframe = function (a, b, c, d) {
a && goog.html.TrustedResourceUrl.unwrap(a)
var e = {}
e.src = a || null
e.srcdoc = b && goog.html.SafeHtml.unwrap(b)
a = goog.html.SafeHtml.combineAttributes(e, { sandbox: '' }, c)
return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse(
'iframe',
a,
d
)
}
goog.html.SafeHtml.createSandboxIframe = function (a, b, c, d) {
if (!goog.html.SafeHtml.canUseSandboxIframe()) {
throw Error('The browser does not support sandboxed iframes.')
}
var e = {}
e.src = a ? goog.html.SafeUrl.unwrap(goog.html.SafeUrl.sanitize(a)) : null
e.srcdoc = b || null
e.sandbox = ''
a = goog.html.SafeHtml.combineAttributes(e, {}, c)
return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse(
'iframe',
a,
d
)
}
goog.html.SafeHtml.canUseSandboxIframe = function () {
return (
goog.global.HTMLIFrameElement &&
'sandbox' in goog.global.HTMLIFrameElement.prototype
)
}
goog.html.SafeHtml.createScriptSrc = function (a, b) {
goog.html.TrustedResourceUrl.unwrap(a)
var c = goog.html.SafeHtml.combineAttributes({ src: a }, {}, b)
return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse(
'script',
c
)
}
goog.html.SafeHtml.createStyle = function (a, b) {
var c = goog.html.SafeHtml.combineAttributes({ type: 'text/css' }, {}, b),
d = ''
a = goog.array.concat(a)
for (var e = 0; e < a.length; e++) {
d += goog.html.SafeStyleSheet.unwrap(a[e])
}
d = goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(
d,
goog.i18n.bidi.Dir.NEUTRAL
)
return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse(
'style',
c,
d
)
}
goog.html.SafeHtml.createMetaRefresh = function (a, b) {
var c = goog.html.SafeUrl.unwrap(goog.html.SafeUrl.sanitize(a))
;(goog.labs.userAgent.browser.isIE() ||
goog.labs.userAgent.browser.isEdge()) &&
goog.string.contains(c, ';') &&
(c = "'" + c.replace(/'/g, '%27') + "'")
return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse(
'meta',
{ 'http-equiv': 'refresh', content: (b || 0) + '; url=' + c }
)
}
goog.html.SafeHtml.getAttrNameAndValue_ = function (a, b, c) {
if (c instanceof goog.string.Const) {
c = goog.string.Const.unwrap(c)
} else {
if ('style' == b.toLowerCase()) {
c = goog.html.SafeHtml.getStyleValue_(c)
} else {
if (/^on/i.test(b)) {
throw Error(
'Attribute "' +
b +
'" requires goog.string.Const value, "' +
c +
'" given.'
)
}
if (b.toLowerCase() in goog.html.SafeHtml.URL_ATTRIBUTES_) {
if (c instanceof goog.html.TrustedResourceUrl) {
c = goog.html.TrustedResourceUrl.unwrap(c)
} else {
if (c instanceof goog.html.SafeUrl) {
c = goog.html.SafeUrl.unwrap(c)
} else {
if (goog.isString(c)) {
c = goog.html.SafeUrl.sanitize(c).getTypedStringValue()
} else {
throw Error(
'Attribute "' +
b +
'" on tag "' +
a +
'" requires goog.html.SafeUrl, goog.string.Const, or string, value "' +
c +
'" given.'
)
}
}
}
}
}
}
c.implementsGoogStringTypedString && (c = c.getTypedStringValue())
goog.asserts.assert(
goog.isString(c) || goog.isNumber(c),
'String or number value expected, got ' + typeof c + ' with value: ' + c
)
return b + '="' + goog.string.htmlEscape(String(c)) + '"'
}
goog.html.SafeHtml.getStyleValue_ = function (a) {
if (!goog.isObject(a)) {
throw Error(
'The "style" attribute requires goog.html.SafeStyle or map of style properties, ' +
typeof a +
' given: ' +
a
)
}
a instanceof goog.html.SafeStyle || (a = goog.html.SafeStyle.create(a))
return goog.html.SafeStyle.unwrap(a)
}
goog.html.SafeHtml.createWithDir = function (a, b, c, d) {
b = goog.html.SafeHtml.create(b, c, d)
b.dir_ = a
return b
}
goog.html.SafeHtml.concat = function (a) {
var b = goog.i18n.bidi.Dir.NEUTRAL,
c = '',
d = function (a) {
goog.isArray(a)
? goog.array.forEach(a, d)
: ((a = goog.html.SafeHtml.htmlEscape(a)),
(c += goog.html.SafeHtml.unwrap(a)),
(a = a.getDirection()),
b == goog.i18n.bidi.Dir.NEUTRAL
? (b = a)
: a != goog.i18n.bidi.Dir.NEUTRAL && b != a && (b = null))
}
goog.array.forEach(arguments, d)
return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(
c,
b
)
}
goog.html.SafeHtml.concatWithDir = function (a, b) {
var c = goog.html.SafeHtml.concat(goog.array.slice(arguments, 1))
c.dir_ = a
return c
}
goog.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = {}
goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse = function (
a,
b
) {
return new goog.html.SafeHtml().initSecurityPrivateDoNotAccessOrElse_(
a,
b
)
}
goog.html.SafeHtml.prototype.initSecurityPrivateDoNotAccessOrElse_ = function (
a,
b
) {
this.privateDoNotAccessOrElseSafeHtmlWrappedValue_ = a
this.dir_ = b
return this
}
goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse = function (
a,
b,
c
) {
var d = null,
e
e = '<' + a + goog.html.SafeHtml.stringifyAttributes(a, b)
goog.isDefAndNotNull(c) ? goog.isArray(c) || (c = [c]) : (c = [])
goog.dom.tags.isVoidTag(a.toLowerCase())
? (goog.asserts.assert(
!c.length,
'Void tag <' + a + '> does not allow content.'
),
(e += '>'))
: ((d = goog.html.SafeHtml.concat(c)),
(e += '>' + goog.html.SafeHtml.unwrap(d) + '</' + a + '>'),
(d = d.getDirection()))
;(a = b && b.dir) &&
(d = /^(ltr|rtl|auto)$/i.test(a) ? goog.i18n.bidi.Dir.NEUTRAL : null)
return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(
e,
d
)
}
goog.html.SafeHtml.stringifyAttributes = function (a, b) {
var c = ''
if (b) {
for (var d in b) {
if (!goog.html.SafeHtml.VALID_NAMES_IN_TAG_.test(d)) {
throw Error('Invalid attribute name "' + d + '".')
}
var e = b[d]
goog.isDefAndNotNull(e) &&
(c += ' ' + goog.html.SafeHtml.getAttrNameAndValue_(a, d, e))
}
}
return c
}
goog.html.SafeHtml.combineAttributes = function (a, b, c) {
var d = {},
e
for (e in a) {
goog.asserts.assert(e.toLowerCase() == e, 'Must be lower case'),
(d[e] = a[e])
}
for (e in b) {
goog.asserts.assert(e.toLowerCase() == e, 'Must be lower case'),
(d[e] = b[e])
}
for (e in c) {
var f = e.toLowerCase()
if (f in a) {
throw Error(
'Cannot override "' +
f +
'" attribute, got "' +
e +
'" with value "' +
c[e] +
'"'
)
}
f in b && delete d[f]
d[e] = c[e]
}
return d
}
goog.html.SafeHtml.DOCTYPE_HTML = goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(
'<!DOCTYPE html>',
goog.i18n.bidi.Dir.NEUTRAL
)
goog.html.SafeHtml.EMPTY = goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(
'',
goog.i18n.bidi.Dir.NEUTRAL
)
goog.html.SafeHtml.BR = goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(
'<br>',
goog.i18n.bidi.Dir.NEUTRAL
)
goog.dom.safe = {}
goog.dom.safe.InsertAdjacentHtmlPosition = {
AFTERBEGIN: 'afterbegin',
AFTEREND: 'afterend',
BEFOREBEGIN: 'beforebegin',
BEFOREEND: 'beforeend',
}
goog.dom.safe.insertAdjacentHtml = function (a, b, c) {
a.insertAdjacentHTML(b, goog.html.SafeHtml.unwrap(c))
}
goog.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_ = {
MATH: !0,
SCRIPT: !0,
STYLE: !0,
SVG: !0,
TEMPLATE: !0,
}
goog.dom.safe.setInnerHtml = function (a, b) {
if (goog.asserts.ENABLE_ASSERTS) {
var c = a.tagName.toUpperCase()
if (goog.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_[c]) {
throw Error(
'goog.dom.safe.setInnerHtml cannot be used to set content of ' +
a.tagName +
'.'
)
}
}
a.innerHTML = goog.html.SafeHtml.unwrap(b)
}
goog.dom.safe.setOuterHtml = function (a, b) {
a.outerHTML = goog.html.SafeHtml.unwrap(b)
}
goog.dom.safe.setStyle = function (a, b) {
a.style.cssText = goog.html.SafeStyle.unwrap(b)
}
goog.dom.safe.documentWrite = function (a, b) {
a.write(goog.html.SafeHtml.unwrap(b))
}
goog.dom.safe.setAnchorHref = function (a, b) {
goog.dom.safe.assertIsHTMLAnchorElement_(a)
var c
c = b instanceof goog.html.SafeUrl ? b : goog.html.SafeUrl.sanitize(b)
a.href = goog.html.SafeUrl.unwrap(c)
}
goog.dom.safe.setImageSrc = function (a, b) {
goog.dom.safe.assertIsHTMLImageElement_(a)
var c
c = b instanceof goog.html.SafeUrl ? b : goog.html.SafeUrl.sanitize(b)
a.src = goog.html.SafeUrl.unwrap(c)
}
goog.dom.safe.setEmbedSrc = function (a, b) {
goog.dom.safe.assertIsHTMLEmbedElement_(a)
a.src = goog.html.TrustedResourceUrl.unwrap(b)
}
goog.dom.safe.setFrameSrc = function (a, b) {
goog.dom.safe.assertIsHTMLFrameElement_(a)
a.src = goog.html.TrustedResourceUrl.unwrap(b)
}
goog.dom.safe.setIframeSrc = function (a, b) {
goog.dom.safe.assertIsHTMLIFrameElement_(a)
a.src = goog.html.TrustedResourceUrl.unwrap(b)
}
goog.dom.safe.setLinkHrefAndRel = function (a, b, c) {
goog.dom.safe.assertIsHTMLLinkElement_(a)
a.rel = c
goog.string.caseInsensitiveContains(c, 'stylesheet')
? (goog.asserts.assert(
b instanceof goog.html.TrustedResourceUrl,
'URL must be TrustedResourceUrl because "rel" contains "stylesheet"'
),
(a.href = goog.html.TrustedResourceUrl.unwrap(b)))
: (a.href =
b instanceof goog.html.TrustedResourceUrl
? goog.html.TrustedResourceUrl.unwrap(b)
: b instanceof goog.html.SafeUrl
? goog.html.SafeUrl.unwrap(b)
: goog.html.SafeUrl.sanitize(b).getTypedStringValue())
}
goog.dom.safe.setObjectData = function (a, b) {
goog.dom.safe.assertIsHTMLObjectElement_(a)
a.data = goog.html.TrustedResourceUrl.unwrap(b)
}
goog.dom.safe.setScriptSrc = function (a, b) {
goog.dom.safe.assertIsHTMLScriptElement_(a)
a.src = goog.html.TrustedResourceUrl.unwrap(b)
}
goog.dom.safe.setLocationHref = function (a, b) {
goog.dom.safe.assertIsLocation_(a)
var c
c = b instanceof goog.html.SafeUrl ? b : goog.html.SafeUrl.sanitize(b)
a.href = goog.html.SafeUrl.unwrap(c)
}
goog.dom.safe.openInWindow = function (a, b, c, d, e) {
a = a instanceof goog.html.SafeUrl ? a : goog.html.SafeUrl.sanitize(a)
return (b || window).open(
goog.html.SafeUrl.unwrap(a),
c ? goog.string.Const.unwrap(c) : '',
d,
e
)
}
goog.dom.safe.assertIsLocation_ = function (a) {
goog.asserts.ENABLE_ASSERTS &&
'undefined' != typeof Location &&
'undefined' != typeof Element &&
goog.asserts.assert(
a && (a instanceof Location || !(a instanceof Element)),
'Argument is not a Location (or a non-Element mock); got: %s',
goog.dom.safe.debugStringForType_(a)
)
return a
}
goog.dom.safe.assertIsHTMLAnchorElement_ = function (a) {
goog.asserts.ENABLE_ASSERTS &&
'undefined' != typeof HTMLAnchorElement &&
'undefined' != typeof Location &&
'undefined' != typeof Element &&
goog.asserts.assert(
a &&
(a instanceof HTMLAnchorElement ||
!(a instanceof Location || a instanceof Element)),
'Argument is not a HTMLAnchorElement (or a non-Element mock); got: %s',
goog.dom.safe.debugStringForType_(a)
)
return a
}
goog.dom.safe.assertIsHTMLLinkElement_ = function (a) {
goog.asserts.ENABLE_ASSERTS &&
'undefined' != typeof HTMLLinkElement &&
'undefined' != typeof Location &&
'undefined' != typeof Element &&
goog.asserts.assert(
a &&
(a instanceof HTMLLinkElement ||
!(a instanceof Location || a instanceof Element)),
'Argument is not a HTMLLinkElement (or a non-Element mock); got: %s',
goog.dom.safe.debugStringForType_(a)
)
return a
}
goog.dom.safe.assertIsHTMLImageElement_ = function (a) {
goog.asserts.ENABLE_ASSERTS &&
'undefined' != typeof HTMLImageElement &&
'undefined' != typeof Element &&
goog.asserts.assert(
a && (a instanceof HTMLImageElement || !(a instanceof Element)),
'Argument is not a HTMLImageElement (or a non-Element mock); got: %s',
goog.dom.safe.debugStringForType_(a)
)
return a
}
goog.dom.safe.assertIsHTMLEmbedElement_ = function (a) {
goog.asserts.ENABLE_ASSERTS &&
'undefined' != typeof HTMLEmbedElement &&
'undefined' != typeof Element &&
goog.asserts.assert(
a && (a instanceof HTMLEmbedElement || !(a instanceof Element)),
'Argument is not a HTMLEmbedElement (or a non-Element mock); got: %s',
goog.dom.safe.debugStringForType_(a)
)
return a
}
goog.dom.safe.assertIsHTMLFrameElement_ = function (a) {
goog.asserts.ENABLE_ASSERTS &&
'undefined' != typeof HTMLFrameElement &&
'undefined' != typeof Element &&
goog.asserts.assert(
a && (a instanceof HTMLFrameElement || !(a instanceof Element)),
'Argument is not a HTMLFrameElement (or a non-Element mock); got: %s',
goog.dom.safe.debugStringForType_(a)
)
return a
}
goog.dom.safe.assertIsHTMLIFrameElement_ = function (a) {
goog.asserts.ENABLE_ASSERTS &&
'undefined' != typeof HTMLIFrameElement &&
'undefined' != typeof Element &&
goog.asserts.assert(
a && (a instanceof HTMLIFrameElement || !(a instanceof Element)),
'Argument is not a HTMLIFrameElement (or a non-Element mock); got: %s',
goog.dom.safe.debugStringForType_(a)
)
return a
}
goog.dom.safe.assertIsHTMLObjectElement_ = function (a) {
goog.asserts.ENABLE_ASSERTS &&
'undefined' != typeof HTMLObjectElement &&
'undefined' != typeof Element &&
goog.asserts.assert(
a && (a instanceof HTMLObjectElement || !(a instanceof Element)),
'Argument is not a HTMLObjectElement (or a non-Element mock); got: %s',
goog.dom.safe.debugStringForType_(a)
)
return a
}
goog.dom.safe.assertIsHTMLScriptElement_ = function (a) {
goog.asserts.ENABLE_ASSERTS &&
'undefined' != typeof HTMLScriptElement &&
'undefined' != typeof Element &&
goog.asserts.assert(
a && (a instanceof HTMLScriptElement || !(a instanceof Element)),
'Argument is not a HTMLScriptElement (or a non-Element mock); got: %s',
goog.dom.safe.debugStringForType_(a)
)
return a
}
goog.dom.safe.debugStringForType_ = function (a) {
return goog.isObject(a)
? a.constructor.displayName ||
a.constructor.name ||
Object.prototype.toString.call(a)
: void 0 === a
? 'undefined'
: null === a
? 'null'
: typeof a
}
goog.html.SafeScript = function () {
this.privateDoNotAccessOrElseSafeScriptWrappedValue_ = ''
this.SAFE_SCRIPT_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ =
goog.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_
}
goog.html.SafeScript.prototype.implementsGoogStringTypedString = !0
goog.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = {}
goog.html.SafeScript.fromConstant = function (a) {
a = goog.string.Const.unwrap(a)
return 0 === a.length
? goog.html.SafeScript.EMPTY
: goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(
a
)
}
goog.html.SafeScript.prototype.getTypedStringValue = function () {
return this.privateDoNotAccessOrElseSafeScriptWrappedValue_
}
goog.DEBUG &&
(goog.html.SafeScript.prototype.toString = function () {
return (
'SafeScript{' +
this.privateDoNotAccessOrElseSafeScriptWrappedValue_ +
'}'
)
})
goog.html.SafeScript.unwrap = function (a) {
if (
a instanceof goog.html.SafeScript &&
a.constructor === goog.html.SafeScript &&
a.SAFE_SCRIPT_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ ===
goog.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_
) {
return a.privateDoNotAccessOrElseSafeScriptWrappedValue_
}
goog.asserts.fail(
"expected object of type SafeScript, got '" +
a +
"' of type " +
goog.typeOf(a)
)
return 'type_error:SafeScript'
}
goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse = function (
a
) {
return new goog.html.SafeScript().initSecurityPrivateDoNotAccessOrElse_(a)
}
goog.html.SafeScript.prototype.initSecurityPrivateDoNotAccessOrElse_ = function (
a
) {
this.privateDoNotAccessOrElseSafeScriptWrappedValue_ = a
return this
}
goog.html.SafeScript.EMPTY = goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(
''
)
goog.html.uncheckedconversions = {}
goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract = function (
a,
b,
c
) {
goog.asserts.assertString(
goog.string.Const.unwrap(a),
'must provide justification'
)
goog.asserts.assert(
!goog.string.isEmptyOrWhitespace(goog.string.Const.unwrap(a)),
'must provide non-empty justification'
)
return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(
b,
c || null
)
}
goog.html.uncheckedconversions.safeScriptFromStringKnownToSatisfyTypeContract = function (
a,
b
) {
goog.asserts.assertString(
goog.string.Const.unwrap(a),
'must provide justification'
)
goog.asserts.assert(
!goog.string.isEmpty(goog.string.Const.unwrap(a)),
'must provide non-empty justification'
)
return goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(
b
)
}
goog.html.uncheckedconversions.safeStyleFromStringKnownToSatisfyTypeContract = function (
a,
b
) {
goog.asserts.assertString(
goog.string.Const.unwrap(a),
'must provide justification'
)
goog.asserts.assert(
!goog.string.isEmptyOrWhitespace(goog.string.Const.unwrap(a)),
'must provide non-empty justification'
)
return goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(
b
)
}
goog.html.uncheckedconversions.safeStyleSheetFromStringKnownToSatisfyTypeContract = function (
a,
b
) {
goog.asserts.assertString(
goog.string.Const.unwrap(a),
'must provide justification'
)
goog.asserts.assert(
!goog.string.isEmptyOrWhitespace(goog.string.Const.unwrap(a)),
'must provide non-empty justification'
)
return goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(
b
)
}
goog.html.uncheckedconversions.safeUrlFromStringKnownToSatisfyTypeContract = function (
a,
b
) {
goog.asserts.assertString(
goog.string.Const.unwrap(a),
'must provide justification'
)
goog.asserts.assert(
!goog.string.isEmptyOrWhitespace(goog.string.Const.unwrap(a)),
'must provide non-empty justification'
)
return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(b)
}
goog.html.uncheckedconversions.trustedResourceUrlFromStringKnownToSatisfyTypeContract = function (
a,
b
) {
goog.asserts.assertString(
goog.string.Const.unwrap(a),
'must provide justification'
)
goog.asserts.assert(
!goog.string.isEmptyOrWhitespace(goog.string.Const.unwrap(a)),
'must provide non-empty justification'
)
return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(
b
)
}
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 (a, b, c) {
return Math.min(Math.max(a, b), c)
}
goog.math.modulo = function (a, b) {
var c = a % b
return 0 > c * b ? c + b : c
}
goog.math.lerp = function (a, b, c) {
return a + c * (b - a)
}
goog.math.nearlyEquals = function (a, b, c) {
return Math.abs(a - b) <= (c || 1e-6)
}
goog.math.standardAngle = function (a) {
return goog.math.modulo(a, 360)
}
goog.math.standardAngleInRadians = function (a) {
return goog.math.modulo(a, 2 * Math.PI)
}
goog.math.toRadians = function (a) {
return (a * Math.PI) / 180
}
goog.math.toDegrees = function (a) {
return (180 * a) / Math.PI
}
goog.math.angleDx = function (a, b) {
return b * Math.cos(goog.math.toRadians(a))
}
goog.math.angleDy = function (a, b) {
return b * Math.sin(goog.math.toRadians(a))
}
goog.math.angle = function (a, b, c, d) {
return goog.math.standardAngle(
goog.math.toDegrees(Math.atan2(d - b, c - a))
)
}
goog.math.angleDifference = function (a, b) {
var c = goog.math.standardAngle(b) - goog.math.standardAngle(a)
180 < c ? (c -= 360) : -180 >= c && (c = 360 + c)
return c
}
goog.math.sign = function (a) {
return 0 < a ? 1 : 0 > a ? -1 : a
}
goog.math.longestCommonSubsequence = function (a, b, c, d) {
c =
c ||
function (a, b) {
return a == b
}
d =
d ||
function (b, c) {
return a[b]
}
for (var e = a.length, f = b.length, g = [], h = 0; h < e + 1; h++) {
;(g[h] = []), (g[h][0] = 0)
}
for (var k = 0; k < f + 1; k++) {
g[0][k] = 0
}
for (h = 1; h <= e; h++) {
for (k = 1; k <= f; k++) {
c(a[h - 1], b[k - 1])
? (g[h][k] = g[h - 1][k - 1] + 1)
: (g[h][k] = Math.max(g[h - 1][k], g[h][k - 1]))
}
}
for (var l = [], h = e, k = f; 0 < h && 0 < k; ) {
c(a[h - 1], b[k - 1])
? (l.unshift(d(h - 1, k - 1)), h--, k--)
: g[h - 1][k] > g[h][k - 1]
? h--
: k--
}
return l
}
goog.math.sum = function (a) {
return goog.array.reduce(
arguments,
function (a, c) {
return a + c
},
0
)
}
goog.math.average = function (a) {
return goog.math.sum.apply(null, arguments) / arguments.length
}
goog.math.sampleVariance = function (a) {
var b = arguments.length
if (2 > b) {
return 0
}
var c = goog.math.average.apply(null, arguments)
return (
goog.math.sum.apply(
null,
goog.array.map(arguments, function (a) {
return Math.pow(a - c, 2)
})
) /
(b - 1)
)
}
goog.math.standardDeviation = function (a) {
return Math.sqrt(goog.math.sampleVariance.apply(null, arguments))
}
goog.math.isInt = function (a) {
return isFinite(a) && 0 == a % 1
}
goog.math.isFiniteNumber = function (a) {
return isFinite(a) && !isNaN(a)
}
goog.math.isNegativeZero = function (a) {
return 0 == a && 0 > 1 / a
}
goog.math.log10Floor = function (a) {
if (0 < a) {
var b = Math.round(Math.log(a) * Math.LOG10E)
return b - (parseFloat('1e' + b) > a ? 1 : 0)
}
return 0 == a ? -Infinity : NaN
}
goog.math.safeFloor = function (a, b) {
goog.asserts.assert(!goog.isDef(b) || 0 < b)
return Math.floor(a + (b || 2e-15))
}
goog.math.safeCeil = function (a, b) {
goog.asserts.assert(!goog.isDef(b) || 0 < b)
return Math.ceil(a - (b || 2e-15))
}
goog.math.Coordinate = function (a, b) {
this.x = goog.isDef(a) ? a : 0
this.y = goog.isDef(b) ? b : 0
}
goog.math.Coordinate.prototype.clone = function () {
return new goog.math.Coordinate(this.x, this.y)
}
goog.DEBUG &&
(goog.math.Coordinate.prototype.toString = function () {
return '(' + this.x + ', ' + this.y + ')'
})
goog.math.Coordinate.prototype.equals = function (a) {
return (
a instanceof goog.math.Coordinate &&
goog.math.Coordinate.equals(this, a)
)
}
goog.math.Coordinate.equals = function (a, b) {
return a == b ? !0 : a && b ? a.x == b.x && a.y == b.y : !1
}
goog.math.Coordinate.distance = function (a, b) {
var c = a.x - b.x,
d = a.y - b.y
return Math.sqrt(c * c + d * d)
}
goog.math.Coordinate.magnitude = function (a) {
return Math.sqrt(a.x * a.x + a.y * a.y)
}
goog.math.Coordinate.azimuth = function (a) {
return goog.math.angle(0, 0, a.x, a.y)
}
goog.math.Coordinate.squaredDistance = function (a, b) {
var c = a.x - b.x,
d = a.y - b.y
return c * c + d * d
}
goog.math.Coordinate.difference = function (a, b) {
return new goog.math.Coordinate(a.x - b.x, a.y - b.y)
}
goog.math.Coordinate.sum = function (a, b) {
return new goog.math.Coordinate(a.x + b.x, a.y + b.y)
}
goog.math.Coordinate.prototype.ceil = function () {
this.x = Math.ceil(this.x)
this.y = Math.ceil(this.y)
return this
}
goog.math.Coordinate.prototype.floor = function () {
this.x = Math.floor(this.x)
this.y = Math.floor(this.y)
return this
}
goog.math.Coordinate.prototype.round = function () {
this.x = Math.round(this.x)
this.y = Math.round(this.y)
return this
}
goog.math.Coordinate.prototype.translate = function (a, b) {
a instanceof goog.math.Coordinate
? ((this.x += a.x), (this.y += a.y))
: ((this.x += Number(a)), goog.isNumber(b) && (this.y += b))
return this
}
goog.math.Coordinate.prototype.scale = function (a, b) {
var c = goog.isNumber(b) ? b : a
this.x *= a
this.y *= c
return this
}
goog.math.Coordinate.prototype.rotateRadians = function (a, b) {
var c = b || new goog.math.Coordinate(0, 0),
d = this.x,
e = this.y,
f = Math.cos(a),
g = Math.sin(a)
this.x = (d - c.x) * f - (e - c.y) * g + c.x
this.y = (d - c.x) * g + (e - c.y) * f + c.y
}
goog.math.Coordinate.prototype.rotateDegrees = function (a, b) {
this.rotateRadians(goog.math.toRadians(a), b)
}
goog.math.Size = function (a, b) {
this.width = a
this.height = b
}
goog.math.Size.equals = function (a, b) {
return a == b
? !0
: a && b
? a.width == b.width && a.height == b.height
: !1
}
goog.math.Size.prototype.clone = function () {
return new goog.math.Size(this.width, this.height)
}
goog.DEBUG &&
(goog.math.Size.prototype.toString = function () {
return '(' + this.width + ' x ' + this.height + ')'
})
goog.math.Size.prototype.getLongest = function () {
return Math.max(this.width, this.height)
}
goog.math.Size.prototype.getShortest = function () {
return Math.min(this.width, this.height)
}
goog.math.Size.prototype.area = function () {
return this.width * this.height
}
goog.math.Size.prototype.perimeter = function () {
return 2 * (this.width + this.height)
}
goog.math.Size.prototype.aspectRatio = function () {
return this.width / this.height
}
goog.math.Size.prototype.isEmpty = function () {
return !this.area()
}
goog.math.Size.prototype.ceil = function () {
this.width = Math.ceil(this.width)
this.height = Math.ceil(this.height)
return this
}
goog.math.Size.prototype.fitsInside = function (a) {
return this.width <= a.width && this.height <= a.height
}
goog.math.Size.prototype.floor = function () {
this.width = Math.floor(this.width)
this.height = Math.floor(this.height)
return this
}
goog.math.Size.prototype.round = function () {
this.width = Math.round(this.width)
this.height = Math.round(this.height)
return this
}
goog.math.Size.prototype.scale = function (a, b) {
var c = goog.isNumber(b) ? b : a
this.width *= a
this.height *= c
return this
}
goog.math.Size.prototype.scaleToCover = function (a) {
a =
this.aspectRatio() <= a.aspectRatio()
? a.width / this.width
: a.height / this.height
return this.scale(a)
}
goog.math.Size.prototype.scaleToFit = function (a) {
a =
this.aspectRatio() > a.aspectRatio()
? a.width / this.width
: a.height / this.height
return this.scale(a)
}
goog.dom.ASSUME_QUIRKS_MODE = !1
goog.dom.ASSUME_STANDARDS_MODE = !1
goog.dom.COMPAT_MODE_KNOWN_ =
goog.dom.ASSUME_QUIRKS_MODE || goog.dom.ASSUME_STANDARDS_MODE
goog.dom.getDomHelper = function (a) {
return a
? new goog.dom.DomHelper(goog.dom.getOwnerDocument(a))
: goog.dom.defaultDomHelper_ ||
(goog.dom.defaultDomHelper_ = new goog.dom.DomHelper())
}
goog.dom.getDocument = function () {
return document
}
goog.dom.getElement = function (a) {
return goog.dom.getElementHelper_(document, a)
}
goog.dom.getElementHelper_ = function (a, b) {
return goog.isString(b) ? a.getElementById(b) : b
}
goog.dom.getRequiredElement = function (a) {
return goog.dom.getRequiredElementHelper_(document, a)
}
goog.dom.getRequiredElementHelper_ = function (a, b) {
goog.asserts.assertString(b)
var c = goog.dom.getElementHelper_(a, b)
return (c = goog.asserts.assertElement(
c,
'No element found with id: ' + b
))
}
goog.dom.$ = goog.dom.getElement
goog.dom.getElementsByTagName = function (a, b) {
return (b || document).getElementsByTagName(String(a))
}
goog.dom.getElementsByTagNameAndClass = function (a, b, c) {
return goog.dom.getElementsByTagNameAndClass_(document, a, b, c)
}
goog.dom.getElementsByClass = function (a, b) {
var c = b || document
return goog.dom.canUseQuerySelector_(c)
? c.querySelectorAll('.' + a)
: goog.dom.getElementsByTagNameAndClass_(document, '*', a, b)
}
goog.dom.getElementByClass = function (a, b) {
var c = b || document
return (
(c.getElementsByClassName
? c.getElementsByClassName(a)[0]
: goog.dom.canUseQuerySelector_(c)
? c.querySelector('.' + a)
: goog.dom.getElementsByTagNameAndClass_(document, '*', a, b)[0]) ||
null
)
}
goog.dom.getRequiredElementByClass = function (a, b) {
var c = goog.dom.getElementByClass(a, b)
return goog.asserts.assert(c, 'No element found with className: ' + a)
}
goog.dom.canUseQuerySelector_ = function (a) {
return !(!a.querySelectorAll || !a.querySelector)
}
goog.dom.getElementsByTagNameAndClass_ = function (a, b, c, d) {
a = d || a
b = b && '*' != b ? String(b).toUpperCase() : ''
if (goog.dom.canUseQuerySelector_(a) && (b || c)) {
return a.querySelectorAll(b + (c ? '.' + c : ''))
}
if (c && a.getElementsByClassName) {
a = a.getElementsByClassName(c)
if (b) {
d = {}
for (var e = 0, f = 0, g; (g = a[f]); f++) {
b == g.nodeName && (d[e++] = g)
}
d.length = e
return d
}
return a
}
a = a.getElementsByTagName(b || '*')
if (c) {
d = {}
for (f = e = 0; (g = a[f]); f++) {
;(b = g.className),
'function' == typeof b.split &&
goog.array.contains(b.split(/\s+/), c) &&
(d[e++] = g)
}
d.length = e
return d
}
return a
}
goog.dom.$$ = goog.dom.getElementsByTagNameAndClass
goog.dom.setProperties = function (a, b) {
goog.object.forEach(b, function (b, d) {
'style' == d
? (a.style.cssText = b)
: 'class' == d
? (a.className = b)
: 'for' == d
? (a.htmlFor = b)
: goog.dom.DIRECT_ATTRIBUTE_MAP_.hasOwnProperty(d)
? a.setAttribute(goog.dom.DIRECT_ATTRIBUTE_MAP_[d], b)
: goog.string.startsWith(d, 'aria-') ||
goog.string.startsWith(d, 'data-')
? a.setAttribute(d, b)
: (a[d] = b)
})
}
goog.dom.DIRECT_ATTRIBUTE_MAP_ = {
cellpadding: 'cellPadding',
cellspacing: 'cellSpacing',
colspan: 'colSpan',
frameborder: 'frameBorder',
height: 'height',
maxlength: 'maxLength',
nonce: 'nonce',
role: 'role',
rowspan: 'rowSpan',
type: 'type',
usemap: 'useMap',
valign: 'vAlign',
width: 'width',
}
goog.dom.getViewportSize = function (a) {
return goog.dom.getViewportSize_(a || window)
}
goog.dom.getViewportSize_ = function (a) {
a = a.document
a = goog.dom.isCss1CompatMode_(a) ? a.documentElement : a.body
return new goog.math.Size(a.clientWidth, a.clientHeight)
}
goog.dom.getDocumentHeight = function () {
return goog.dom.getDocumentHeight_(window)
}
goog.dom.getDocumentHeightForWindow = function (a) {
return goog.dom.getDocumentHeight_(a)
}
goog.dom.getDocumentHeight_ = function (a) {
var b = a.document,
c = 0
if (b) {
var c = b.body,
d = b.documentElement
if (!d || !c) {
return 0
}
a = goog.dom.getViewportSize_(a).height
if (goog.dom.isCss1CompatMode_(b) && d.scrollHeight) {
c = d.scrollHeight != a ? d.scrollHeight : d.offsetHeight
} else {
var b = d.scrollHeight,
e = d.offsetHeight
d.clientHeight != e && ((b = c.scrollHeight), (e = c.offsetHeight))
c = b > a ? (b > e ? b : e) : b < e ? b : e
}
}
return c
}
goog.dom.getPageScroll = function (a) {
return goog.dom
.getDomHelper((a || goog.global || window).document)
.getDocumentScroll()
}
goog.dom.getDocumentScroll = function () {
return goog.dom.getDocumentScroll_(document)
}
goog.dom.getDocumentScroll_ = function (a) {
var b = goog.dom.getDocumentScrollElement_(a)
a = goog.dom.getWindow_(a)
return goog.userAgent.IE &&
goog.userAgent.isVersionOrHigher('10') &&
a.pageYOffset != b.scrollTop
? new goog.math.Coordinate(b.scrollLeft, b.scrollTop)
: new goog.math.Coordinate(
a.pageXOffset || b.scrollLeft,
a.pageYOffset || b.scrollTop
)
}
goog.dom.getDocumentScrollElement = function () {
return goog.dom.getDocumentScrollElement_(document)
}
goog.dom.getDocumentScrollElement_ = function (a) {
return a.scrollingElement
? a.scrollingElement
: !goog.userAgent.WEBKIT && goog.dom.isCss1CompatMode_(a)
? a.documentElement
: a.body || a.documentElement
}
goog.dom.getWindow = function (a) {
return a ? goog.dom.getWindow_(a) : window
}
goog.dom.getWindow_ = function (a) {
return a.parentWindow || a.defaultView
}
goog.dom.createDom = function (a, b, c) {
return goog.dom.createDom_(document, arguments)
}
goog.dom.createDom_ = function (a, b) {
var c = String(b[0]),
d = b[1]
if (
!goog.dom.BrowserFeature.CAN_ADD_NAME_OR_TYPE_ATTRIBUTES &&
d &&
(d.name || d.type)
) {
c = ['<', c]
d.name && c.push(' name="', goog.string.htmlEscape(d.name), '"')
if (d.type) {
c.push(' type="', goog.string.htmlEscape(d.type), '"')
var e = {}
goog.object.extend(e, d)
delete e.type
d = e
}
c.push('>')
c = c.join('')
}
c = a.createElement(c)
d &&
(goog.isString(d)
? (c.className = d)
: goog.isArray(d)
? (c.className = d.join(' '))
: goog.dom.setProperties(c, d))
2 < b.length && goog.dom.append_(a, c, b, 2)
return c
}
goog.dom.append_ = function (a, b, c, d) {
function e(c) {
c && b.appendChild(goog.isString(c) ? a.createTextNode(c) : c)
}
for (; d < c.length; d++) {
var f = c[d]
goog.isArrayLike(f) && !goog.dom.isNodeLike(f)
? goog.array.forEach(
goog.dom.isNodeList(f) ? goog.array.toArray(f) : f,
e
)
: e(f)
}
}
goog.dom.$dom = goog.dom.createDom
goog.dom.createElement = function (a) {
return goog.dom.createElement_(document, a)
}
goog.dom.createElement_ = function (a, b) {
return a.createElement(String(b))
}
goog.dom.createTextNode = function (a) {
return document.createTextNode(String(a))
}
goog.dom.createTable = function (a, b, c) {
return goog.dom.createTable_(document, a, b, !!c)
}
goog.dom.createTable_ = function (a, b, c, d) {
for (
var e = goog.dom.createElement_(a, 'TABLE'),
f = e.appendChild(goog.dom.createElement_(a, 'TBODY')),
g = 0;
g < b;
g++
) {
for (var h = goog.dom.createElement_(a, 'TR'), k = 0; k < c; k++) {
var l = goog.dom.createElement_(a, 'TD')
d && goog.dom.setTextContent(l, goog.string.Unicode.NBSP)
h.appendChild(l)
}
f.appendChild(h)
}
return e
}
goog.dom.constHtmlToNode = function (a) {
var b = goog.array.map(arguments, goog.string.Const.unwrap),
b = goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract(
goog.string.Const.from(
'Constant HTML string, that gets turned into a Node later, so it will be automatically balanced.'
),
b.join('')
)
return goog.dom.safeHtmlToNode(b)
}
goog.dom.safeHtmlToNode = function (a) {
return goog.dom.safeHtmlToNode_(document, a)
}
goog.dom.safeHtmlToNode_ = function (a, b) {
var c = goog.dom.createElement_(a, 'DIV')
goog.dom.BrowserFeature.INNER_HTML_NEEDS_SCOPED_ELEMENT
? (goog.dom.safe.setInnerHtml(
c,
goog.html.SafeHtml.concat(goog.html.SafeHtml.BR, b)
),
c.removeChild(c.firstChild))
: goog.dom.safe.setInnerHtml(c, b)
return goog.dom.childrenToNode_(a, c)
}
goog.dom.childrenToNode_ = function (a, b) {
if (1 == b.childNodes.length) {
return b.removeChild(b.firstChild)
}
for (var c = a.createDocumentFragment(); b.firstChild; ) {
c.appendChild(b.firstChild)
}
return c
}
goog.dom.isCss1CompatMode = function () {
return goog.dom.isCss1CompatMode_(document)
}
goog.dom.isCss1CompatMode_ = function (a) {
return goog.dom.COMPAT_MODE_KNOWN_
? goog.dom.ASSUME_STANDARDS_MODE
: 'CSS1Compat' == a.compatMode
}
goog.dom.canHaveChildren = function (a) {
if (a.nodeType != goog.dom.NodeType.ELEMENT) {
return !1
}
switch (a.tagName) {
case 'APPLET':
case 'AREA':
case 'BASE':
case 'BR':
case 'COL':
case 'COMMAND':
case 'EMBED':
case 'FRAME':
case 'HR':
case 'IMG':
case 'INPUT':
case 'IFRAME':
case 'ISINDEX':
case 'KEYGEN':
case 'LINK':
case 'NOFRAMES':
case 'NOSCRIPT':
case 'META':
case 'OBJECT':
case 'PARAM':
case 'SCRIPT':
case 'SOURCE':
case 'STYLE':
case 'TRACK':
case 'WBR':
return !1
}
return !0
}
goog.dom.appendChild = function (a, b) {
a.appendChild(b)
}
goog.dom.append = function (a, b) {
goog.dom.append_(goog.dom.getOwnerDocument(a), a, arguments, 1)
}
goog.dom.removeChildren = function (a) {
for (var b; (b = a.firstChild); ) {
a.removeChild(b)
}
}
goog.dom.insertSiblingBefore = function (a, b) {
b.parentNode && b.parentNode.insertBefore(a, b)
}
goog.dom.insertSiblingAfter = function (a, b) {
b.parentNode && b.parentNode.insertBefore(a, b.nextSibling)
}
goog.dom.insertChildAt = function (a, b, c) {
a.insertBefore(b, a.childNodes[c] || null)
}
goog.dom.removeNode = function (a) {
return a && a.parentNode ? a.parentNode.removeChild(a) : null
}
goog.dom.replaceNode = function (a, b) {
var c = b.parentNode
c && c.replaceChild(a, b)
}
goog.dom.flattenElement = function (a) {
var b,
c = a.parentNode
if (c && c.nodeType != goog.dom.NodeType.DOCUMENT_FRAGMENT) {
if (a.removeNode) {
return a.removeNode(!1)
}
for (; (b = a.firstChild); ) {
c.insertBefore(b, a)
}
return goog.dom.removeNode(a)
}
}
goog.dom.getChildren = function (a) {
return goog.dom.BrowserFeature.CAN_USE_CHILDREN_ATTRIBUTE &&
void 0 != a.children
? a.children
: goog.array.filter(a.childNodes, function (a) {
return a.nodeType == goog.dom.NodeType.ELEMENT
})
}
goog.dom.getFirstElementChild = function (a) {
return goog.isDef(a.firstElementChild)
? a.firstElementChild
: goog.dom.getNextElementNode_(a.firstChild, !0)
}
goog.dom.getLastElementChild = function (a) {
return goog.isDef(a.lastElementChild)
? a.lastElementChild
: goog.dom.getNextElementNode_(a.lastChild, !1)
}
goog.dom.getNextElementSibling = function (a) {
return goog.isDef(a.nextElementSibling)
? a.nextElementSibling
: goog.dom.getNextElementNode_(a.nextSibling, !0)
}
goog.dom.getPreviousElementSibling = function (a) {
return goog.isDef(a.previousElementSibling)
? a.previousElementSibling
: goog.dom.getNextElementNode_(a.previousSibling, !1)
}
goog.dom.getNextElementNode_ = function (a, b) {
for (; a && a.nodeType != goog.dom.NodeType.ELEMENT; ) {
a = b ? a.nextSibling : a.previousSibling
}
return a
}
goog.dom.getNextNode = function (a) {
if (!a) {
return null
}
if (a.firstChild) {
return a.firstChild
}
for (; a && !a.nextSibling; ) {
a = a.parentNode
}
return a ? a.nextSibling : null
}
goog.dom.getPreviousNode = function (a) {
if (!a) {
return null
}
if (!a.previousSibling) {
return a.parentNode
}
for (a = a.previousSibling; a && a.lastChild; ) {
a = a.lastChild
}
return a
}
goog.dom.isNodeLike = function (a) {
return goog.isObject(a) && 0 < a.nodeType
}
goog.dom.isElement = function (a) {
return goog.isObject(a) && a.nodeType == goog.dom.NodeType.ELEMENT
}
goog.dom.isWindow = function (a) {
return goog.isObject(a) && a.window == a
}
goog.dom.getParentElement = function (a) {
var b
if (
goog.dom.BrowserFeature.CAN_USE_PARENT_ELEMENT_PROPERTY &&
!(
goog.userAgent.IE &&
goog.userAgent.isVersionOrHigher('9') &&
!goog.userAgent.isVersionOrHigher('10') &&
goog.global.SVGElement &&
a instanceof goog.global.SVGElement
) &&
(b = a.parentElement)
) {
return b
}
b = a.parentNode
return goog.dom.isElement(b) ? b : null
}
goog.dom.contains = function (a, b) {
if (!a || !b) {
return !1
}
if (a.contains && b.nodeType == goog.dom.NodeType.ELEMENT) {
return a == b || a.contains(b)
}
if ('undefined' != typeof a.compareDocumentPosition) {
return a == b || !!(a.compareDocumentPosition(b) & 16)
}
for (; b && a != b; ) {
b = b.parentNode
}
return b == a
}
goog.dom.compareNodeOrder = function (a, b) {
if (a == b) {
return 0
}
if (a.compareDocumentPosition) {
return a.compareDocumentPosition(b) & 2 ? 1 : -1
}
if (goog.userAgent.IE && !goog.userAgent.isDocumentModeOrHigher(9)) {
if (a.nodeType == goog.dom.NodeType.DOCUMENT) {
return -1
}
if (b.nodeType == goog.dom.NodeType.DOCUMENT) {
return 1
}
}
if (
'sourceIndex' in a ||
(a.parentNode && 'sourceIndex' in a.parentNode)
) {
var c = a.nodeType == goog.dom.NodeType.ELEMENT,
d = b.nodeType == goog.dom.NodeType.ELEMENT
if (c && d) {
return a.sourceIndex - b.sourceIndex
}
var e = a.parentNode,
f = b.parentNode
return e == f
? goog.dom.compareSiblingOrder_(a, b)
: !c && goog.dom.contains(e, b)
? -1 * goog.dom.compareParentsDescendantNodeIe_(a, b)
: !d && goog.dom.contains(f, a)
? goog.dom.compareParentsDescendantNodeIe_(b, a)
: (c ? a.sourceIndex : e.sourceIndex) -
(d ? b.sourceIndex : f.sourceIndex)
}
d = goog.dom.getOwnerDocument(a)
c = d.createRange()
c.selectNode(a)
c.collapse(!0)
d = d.createRange()
d.selectNode(b)
d.collapse(!0)
return c.compareBoundaryPoints(goog.global.Range.START_TO_END, d)
}
goog.dom.compareParentsDescendantNodeIe_ = function (a, b) {
var c = a.parentNode
if (c == b) {
return -1
}
for (var d = b; d.parentNode != c; ) {
d = d.parentNode
}
return goog.dom.compareSiblingOrder_(d, a)
}
goog.dom.compareSiblingOrder_ = function (a, b) {
for (var c = b; (c = c.previousSibling); ) {
if (c == a) {
return -1
}
}
return 1
}
goog.dom.findCommonAncestor = function (a) {
var b,
c = arguments.length
if (!c) {
return null
}
if (1 == c) {
return arguments[0]
}
var d = [],
e = Infinity
for (b = 0; b < c; b++) {
for (var f = [], g = arguments[b]; g; ) {
f.unshift(g), (g = g.parentNode)
}
d.push(f)
e = Math.min(e, f.length)
}
f = null
for (b = 0; b < e; b++) {
for (var g = d[0][b], h = 1; h < c; h++) {
if (g != d[h][b]) {
return f
}
}
f = g
}
return f
}
goog.dom.getOwnerDocument = function (a) {
goog.asserts.assert(a, 'Node cannot be null or undefined.')
return a.nodeType == goog.dom.NodeType.DOCUMENT
? a
: a.ownerDocument || a.document
}
goog.dom.getFrameContentDocument = function (a) {
return a.contentDocument || a.contentWindow.document
}
goog.dom.getFrameContentWindow = function (a) {
try {
return (
a.contentWindow ||
(a.contentDocument ? goog.dom.getWindow(a.contentDocument) : null)
)
} catch (b) {}
return null
}
goog.dom.setTextContent = function (a, b) {
goog.asserts.assert(
null != a,
'goog.dom.setTextContent expects a non-null value for node'
)
if ('textContent' in a) {
a.textContent = b
} else {
if (a.nodeType == goog.dom.NodeType.TEXT) {
a.data = b
} else {
if (a.firstChild && a.firstChild.nodeType == goog.dom.NodeType.TEXT) {
for (; a.lastChild != a.firstChild; ) {
a.removeChild(a.lastChild)
}
a.firstChild.data = b
} else {
goog.dom.removeChildren(a)
var c = goog.dom.getOwnerDocument(a)
a.appendChild(c.createTextNode(String(b)))
}
}
}
}
goog.dom.getOuterHtml = function (a) {
goog.asserts.assert(
null !== a,
'goog.dom.getOuterHtml expects a non-null value for element'
)
if ('outerHTML' in a) {
return a.outerHTML
}
var b = goog.dom.getOwnerDocument(a),
b = goog.dom.createElement_(b, 'DIV')
b.appendChild(a.cloneNode(!0))
return b.innerHTML
}
goog.dom.findNode = function (a, b) {
var c = []
return goog.dom.findNodes_(a, b, c, !0) ? c[0] : void 0
}
goog.dom.findNodes = function (a, b) {
var c = []
goog.dom.findNodes_(a, b, c, !1)
return c
}
goog.dom.findNodes_ = function (a, b, c, d) {
if (null != a) {
for (a = a.firstChild; a; ) {
if ((b(a) && (c.push(a), d)) || goog.dom.findNodes_(a, b, c, d)) {
return !0
}
a = a.nextSibling
}
}
return !1
}
goog.dom.TAGS_TO_IGNORE_ = {
SCRIPT: 1,
STYLE: 1,
HEAD: 1,
IFRAME: 1,
OBJECT: 1,
}
goog.dom.PREDEFINED_TAG_VALUES_ = { IMG: ' ', BR: '\n' }
goog.dom.isFocusableTabIndex = function (a) {
return (
goog.dom.hasSpecifiedTabIndex_(a) && goog.dom.isTabIndexFocusable_(a)
)
}
goog.dom.setFocusableTabIndex = function (a, b) {
b ? (a.tabIndex = 0) : ((a.tabIndex = -1), a.removeAttribute('tabIndex'))
}
goog.dom.isFocusable = function (a) {
var b
return (b = goog.dom.nativelySupportsFocus_(a)
? !a.disabled &&
(!goog.dom.hasSpecifiedTabIndex_(a) ||
goog.dom.isTabIndexFocusable_(a))
: goog.dom.isFocusableTabIndex(a)) && goog.userAgent.IE
? goog.dom.hasNonZeroBoundingRect_(a)
: b
}
goog.dom.hasSpecifiedTabIndex_ = function (a) {
return goog.userAgent.IE && !goog.userAgent.isVersionOrHigher('9')
? ((a = a.getAttributeNode('tabindex')),
goog.isDefAndNotNull(a) && a.specified)
: a.hasAttribute('tabindex')
}
goog.dom.isTabIndexFocusable_ = function (a) {
a = a.tabIndex
return goog.isNumber(a) && 0 <= a && 32768 > a
}
goog.dom.nativelySupportsFocus_ = function (a) {
return (
'A' == a.tagName ||
'INPUT' == a.tagName ||
'TEXTAREA' == a.tagName ||
'SELECT' == a.tagName ||
'BUTTON' == a.tagName
)
}
goog.dom.hasNonZeroBoundingRect_ = function (a) {
a =
!goog.isFunction(a.getBoundingClientRect) ||
(goog.userAgent.IE && null == a.parentElement)
? { height: a.offsetHeight, width: a.offsetWidth }
: a.getBoundingClientRect()
return goog.isDefAndNotNull(a) && 0 < a.height && 0 < a.width
}
goog.dom.getTextContent = function (a) {
if (
goog.dom.BrowserFeature.CAN_USE_INNER_TEXT &&
null !== a &&
'innerText' in a
) {
a = goog.string.canonicalizeNewlines(a.innerText)
} else {
var b = []
goog.dom.getTextContent_(a, b, !0)
a = b.join('')
}
a = a.replace(/ \xAD /g, ' ').replace(/\xAD/g, '')
a = a.replace(/\u200B/g, '')
goog.dom.BrowserFeature.CAN_USE_INNER_TEXT || (a = a.replace(/ +/g, ' '))
' ' != a && (a = a.replace(/^\s*/, ''))
return a
}
goog.dom.getRawTextContent = function (a) {
var b = []
goog.dom.getTextContent_(a, b, !1)
return b.join('')
}
goog.dom.getTextContent_ = function (a, b, c) {
if (!(a.nodeName in goog.dom.TAGS_TO_IGNORE_)) {
if (a.nodeType == goog.dom.NodeType.TEXT) {
c
? b.push(String(a.nodeValue).replace(/(\r\n|\r|\n)/g, ''))
: b.push(a.nodeValue)
} else {
if (a.nodeName in goog.dom.PREDEFINED_TAG_VALUES_) {
b.push(goog.dom.PREDEFINED_TAG_VALUES_[a.nodeName])
} else {
for (a = a.firstChild; a; ) {
goog.dom.getTextContent_(a, b, c), (a = a.nextSibling)
}
}
}
}
}
goog.dom.getNodeTextLength = function (a) {
return goog.dom.getTextContent(a).length
}
goog.dom.getNodeTextOffset = function (a, b) {
for (
var c = b || goog.dom.getOwnerDocument(a).body, d = [];
a && a != c;
) {
for (var e = a; (e = e.previousSibling); ) {
d.unshift(goog.dom.getTextContent(e))
}
a = a.parentNode
}
return goog.string.trimLeft(d.join('')).replace(/ +/g, ' ').length
}
goog.dom.getNodeAtOffset = function (a, b, c) {
a = [a]
for (var d = 0, e = null; 0 < a.length && d < b; ) {
if (((e = a.pop()), !(e.nodeName in goog.dom.TAGS_TO_IGNORE_))) {
if (e.nodeType == goog.dom.NodeType.TEXT) {
var f = e.nodeValue
.replace(/(\r\n|\r|\n)/g, '')
.replace(/ +/g, ' '),
d = d + f.length
} else {
if (e.nodeName in goog.dom.PREDEFINED_TAG_VALUES_) {
d += goog.dom.PREDEFINED_TAG_VALUES_[e.nodeName].length
} else {
for (f = e.childNodes.length - 1; 0 <= f; f--) {
a.push(e.childNodes[f])
}
}
}
}
}
goog.isObject(c) &&
((c.remainder = e ? e.nodeValue.length + b - d - 1 : 0), (c.node = e))
return e
}
goog.dom.isNodeList = function (a) {
if (a && 'number' == typeof a.length) {
if (goog.isObject(a)) {
return 'function' == typeof a.item || 'string' == typeof a.item
}
if (goog.isFunction(a)) {
return 'function' == typeof a.item
}
}
return !1
}
goog.dom.getAncestorByTagNameAndClass = function (a, b, c, d) {
if (!b && !c) {
return null
}
var e = b ? String(b).toUpperCase() : null
return goog.dom.getAncestor(
a,
function (a) {
return (
(!e || a.nodeName == e) &&
(!c ||
(goog.isString(a.className) &&
goog.array.contains(a.className.split(/\s+/), c)))
)
},
!0,
d
)
}
goog.dom.getAncestorByClass = function (a, b, c) {
return goog.dom.getAncestorByTagNameAndClass(a, null, b, c)
}
goog.dom.getAncestor = function (a, b, c, d) {
c || (a = a.parentNode)
for (c = 0; a && (null == d || c <= d); ) {
goog.asserts.assert('parentNode' != a.name)
if (b(a)) {
return a
}
a = a.parentNode
c++
}
return null
}
goog.dom.getActiveElement = function (a) {
try {
return a && a.activeElement
} catch (b) {}
return null
}
goog.dom.getPixelRatio = function () {
var a = goog.dom.getWindow()
return goog.isDef(a.devicePixelRatio)
? a.devicePixelRatio
: a.matchMedia
? goog.dom.matchesPixelRatio_(3) ||
goog.dom.matchesPixelRatio_(2) ||
goog.dom.matchesPixelRatio_(1.5) ||
goog.dom.matchesPixelRatio_(1) ||
0.75
: 1
}
goog.dom.matchesPixelRatio_ = function (a) {
return goog.dom
.getWindow()
.matchMedia(
'(min-resolution: ' +
a +
'dppx),(min--moz-device-pixel-ratio: ' +
a +
'),(min-resolution: ' +
96 * a +
'dpi)'
).matches
? a
: 0
}
goog.dom.getCanvasContext2D = function (a) {
return a.getContext('2d')
}
goog.dom.DomHelper = function (a) {
this.document_ = a || goog.global.document || document
}
goog.dom.DomHelper.prototype.getDomHelper = goog.dom.getDomHelper
goog.dom.DomHelper.prototype.setDocument = function (a) {
this.document_ = a
}
goog.dom.DomHelper.prototype.getDocument = function () {
return this.document_
}
goog.dom.DomHelper.prototype.getElement = function (a) {
return goog.dom.getElementHelper_(this.document_, a)
}
goog.dom.DomHelper.prototype.getRequiredElement = function (a) {
return goog.dom.getRequiredElementHelper_(this.document_, a)
}
goog.dom.DomHelper.prototype.$ = goog.dom.DomHelper.prototype.getElement
goog.dom.DomHelper.prototype.getElementsByTagName = function (a, b) {
return (b || this.document_).getElementsByTagName(String(a))
}
goog.dom.DomHelper.prototype.getElementsByTagNameAndClass = function (
a,
b,
c
) {
return goog.dom.getElementsByTagNameAndClass_(this.document_, a, b, c)
}
goog.dom.DomHelper.prototype.getElementsByClass = function (a, b) {
return goog.dom.getElementsByClass(a, b || this.document_)
}
goog.dom.DomHelper.prototype.getElementByClass = function (a, b) {
return goog.dom.getElementByClass(a, b || this.document_)
}
goog.dom.DomHelper.prototype.getRequiredElementByClass = function (a, b) {
return goog.dom.getRequiredElementByClass(a, b || this.document_)
}
goog.dom.DomHelper.prototype.$$ =
goog.dom.DomHelper.prototype.getElementsByTagNameAndClass
goog.dom.DomHelper.prototype.setProperties = goog.dom.setProperties
goog.dom.DomHelper.prototype.getViewportSize = function (a) {
return goog.dom.getViewportSize(a || this.getWindow())
}
goog.dom.DomHelper.prototype.getDocumentHeight = function () {
return goog.dom.getDocumentHeight_(this.getWindow())
}
goog.dom.DomHelper.prototype.createDom = function (a, b, c) {
return goog.dom.createDom_(this.document_, arguments)
}
goog.dom.DomHelper.prototype.$dom = goog.dom.DomHelper.prototype.createDom
goog.dom.DomHelper.prototype.createElement = function (a) {
return goog.dom.createElement_(this.document_, a)
}
goog.dom.DomHelper.prototype.createTextNode = function (a) {
return this.document_.createTextNode(String(a))
}
goog.dom.DomHelper.prototype.createTable = function (a, b, c) {
return goog.dom.createTable_(this.document_, a, b, !!c)
}
goog.dom.DomHelper.prototype.safeHtmlToNode = function (a) {
return goog.dom.safeHtmlToNode_(this.document_, a)
}
goog.dom.DomHelper.prototype.isCss1CompatMode = function () {
return goog.dom.isCss1CompatMode_(this.document_)
}
goog.dom.DomHelper.prototype.getWindow = function () {
return goog.dom.getWindow_(this.document_)
}
goog.dom.DomHelper.prototype.getDocumentScrollElement = function () {
return goog.dom.getDocumentScrollElement_(this.document_)
}
goog.dom.DomHelper.prototype.getDocumentScroll = function () {
return goog.dom.getDocumentScroll_(this.document_)
}
goog.dom.DomHelper.prototype.getActiveElement = function (a) {
return goog.dom.getActiveElement(a || this.document_)
}
goog.dom.DomHelper.prototype.appendChild = goog.dom.appendChild
goog.dom.DomHelper.prototype.append = goog.dom.append
goog.dom.DomHelper.prototype.canHaveChildren = goog.dom.canHaveChildren
goog.dom.DomHelper.prototype.removeChildren = goog.dom.removeChildren
goog.dom.DomHelper.prototype.insertSiblingBefore =
goog.dom.insertSiblingBefore
goog.dom.DomHelper.prototype.insertSiblingAfter =
goog.dom.insertSiblingAfter
goog.dom.DomHelper.prototype.insertChildAt = goog.dom.insertChildAt
goog.dom.DomHelper.prototype.removeNode = goog.dom.removeNode
goog.dom.DomHelper.prototype.replaceNode = goog.dom.replaceNode
goog.dom.DomHelper.prototype.flattenElement = goog.dom.flattenElement
goog.dom.DomHelper.prototype.getChildren = goog.dom.getChildren
goog.dom.DomHelper.prototype.getFirstElementChild =
goog.dom.getFirstElementChild
goog.dom.DomHelper.prototype.getLastElementChild =
goog.dom.getLastElementChild
goog.dom.DomHelper.prototype.getNextElementSibling =
goog.dom.getNextElementSibling
goog.dom.DomHelper.prototype.getPreviousElementSibling =
goog.dom.getPreviousElementSibling
goog.dom.DomHelper.prototype.getNextNode = goog.dom.getNextNode
goog.dom.DomHelper.prototype.getPreviousNode = goog.dom.getPreviousNode
goog.dom.DomHelper.prototype.isNodeLike = goog.dom.isNodeLike
goog.dom.DomHelper.prototype.isElement = goog.dom.isElement
goog.dom.DomHelper.prototype.isWindow = goog.dom.isWindow
goog.dom.DomHelper.prototype.getParentElement = goog.dom.getParentElement
goog.dom.DomHelper.prototype.contains = goog.dom.contains
goog.dom.DomHelper.prototype.compareNodeOrder = goog.dom.compareNodeOrder
goog.dom.DomHelper.prototype.findCommonAncestor =
goog.dom.findCommonAncestor
goog.dom.DomHelper.prototype.getOwnerDocument = goog.dom.getOwnerDocument
goog.dom.DomHelper.prototype.getFrameContentDocument =
goog.dom.getFrameContentDocument
goog.dom.DomHelper.prototype.getFrameContentWindow =
goog.dom.getFrameContentWindow
goog.dom.DomHelper.prototype.setTextContent = goog.dom.setTextContent
goog.dom.DomHelper.prototype.getOuterHtml = goog.dom.getOuterHtml
goog.dom.DomHelper.prototype.findNode = goog.dom.findNode
goog.dom.DomHelper.prototype.findNodes = goog.dom.findNodes
goog.dom.DomHelper.prototype.isFocusableTabIndex =
goog.dom.isFocusableTabIndex
goog.dom.DomHelper.prototype.setFocusableTabIndex =
goog.dom.setFocusableTabIndex
goog.dom.DomHelper.prototype.isFocusable = goog.dom.isFocusable
goog.dom.DomHelper.prototype.getTextContent = goog.dom.getTextContent
goog.dom.DomHelper.prototype.getNodeTextLength = goog.dom.getNodeTextLength
goog.dom.DomHelper.prototype.getNodeTextOffset = goog.dom.getNodeTextOffset
goog.dom.DomHelper.prototype.getNodeAtOffset = goog.dom.getNodeAtOffset
goog.dom.DomHelper.prototype.isNodeList = goog.dom.isNodeList
goog.dom.DomHelper.prototype.getAncestorByTagNameAndClass =
goog.dom.getAncestorByTagNameAndClass
goog.dom.DomHelper.prototype.getAncestorByClass =
goog.dom.getAncestorByClass
goog.dom.DomHelper.prototype.getAncestor = goog.dom.getAncestor
goog.dom.DomHelper.prototype.getCanvasContext2D =
goog.dom.getCanvasContext2D
var pagespeedutils = {
MAX_POST_SIZE: 131072,
sendBeacon: function (a, b, c) {
var d
if (window.XMLHttpRequest) {
d = new XMLHttpRequest()
} else {
if (window.ActiveXObject) {
try {
d = new ActiveXObject('Msxml2.XMLHTTP')
} catch (f) {
try {
d = new ActiveXObject('Microsoft.XMLHTTP')
} catch (g) {}
}
}
}
if (!d) {
return !1
}
var e = -1 == a.indexOf('?') ? '?' : '&'
a = a + e + 'url=' + encodeURIComponent(b)
d.open('POST', a)
d.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
d.send(c)
return !0
},
addHandler: function (a, b, c) {
if (a.addEventListener) {
a.addEventListener(b, c, !1)
} else {
if (a.attachEvent) {
a.attachEvent('on' + b, c)
} else {
var d = a['on' + b]
a['on' + b] = function () {
c.call(this)
d && d.call(this)
}
}
}
},
getPosition: function (a) {
for (var b = a.offsetTop, c = a.offsetLeft; a.offsetParent; ) {
;(a = a.offsetParent), (b += a.offsetTop), (c += a.offsetLeft)
}
return { top: b, left: c }
},
getWindowSize: function () {
return {
height:
window.innerHeight ||
document.documentElement.clientHeight ||
document.body.clientHeight,
width:
window.innerWidth ||
document.documentElement.clientWidth ||
document.body.clientWidth,
}
},
inViewport: function (a, b) {
var c = pagespeedutils.getPosition(a)
return pagespeedutils.positionInViewport(c, b)
},
positionInViewport: function (a, b) {
return a.top < b.height && a.left < b.width
},
getRequestAnimationFrame: function () {
return (
window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.oRequestAnimationFrame ||
window.msRequestAnimationFrame ||
null
)
},
}
pagespeedutils.now =
Date.now ||
function () {
return +new Date()
}
var pagespeed = { CriticalImages: {} }
pagespeed.CriticalImages.Beacon_ = function (a, b, c, d, e) {
this.beaconUrl_ = a
this.htmlUrl_ = b
this.optionsHash_ = c
this.nonce_ = e
this.windowSize_ = pagespeedutils.getWindowSize()
this.checkRenderedImageSizes_ = d
this.imgLocations_ = {}
this.criticalImages_ = []
this.criticalImagesKeys_ = {}
}
pagespeed.CriticalImages.Beacon_.prototype.elLocation_ = function (a) {
a = a.getBoundingClientRect()
var b = document.body
return {
top:
a.top +
('pageYOffset' in window
? window.pageYOffset
: (document.documentElement || b.parentNode || b).scrollTop),
left:
a.left +
('pageXOffset' in window
? window.pageXOffset
: (document.documentElement || b.parentNode || b).scrollLeft),
}
}
pagespeed.CriticalImages.Beacon_.prototype.isCritical_ = function (a) {
if (0 >= a.offsetWidth && 0 >= a.offsetHeight) {
return !1
}
a = this.elLocation_(a)
var b = a.top.toString() + ',' + a.left
if (this.imgLocations_.hasOwnProperty(b)) {
return !1
}
this.imgLocations_[b] = !0
return (
a.top <= this.windowSize_.height && a.left <= this.windowSize_.width
)
}
pagespeed.CriticalImages.Beacon_.prototype.insertIfImageIsCritical_ = function (
a
) {
var b = a.getAttribute('data-pagespeed-url-hash')
!b ||
b in this.criticalImagesKeys_ ||
!this.isCritical_(a) ||
(this.criticalImages_.push(b), (this.criticalImagesKeys_[b] = !0))
}
pagespeed.CriticalImages.Beacon_.prototype.checkImageForCriticality = function (
a
) {
a.getBoundingClientRect && this.insertIfImageIsCritical_(a)
}
pagespeed.CriticalImages.checkImageForCriticality = function (a) {
pagespeed.CriticalImages.beaconObj_.checkImageForCriticality(a)
}
goog.exportSymbol(
'pagespeed.CriticalImages.checkImageForCriticality',
pagespeed.CriticalImages.checkImageForCriticality
)
pagespeed.CriticalImages.checkCriticalImages = function () {
pagespeed.CriticalImages.beaconObj_.checkCriticalImages_()
}
goog.exportSymbol(
'pagespeed.CriticalImages.checkCriticalImages',
pagespeed.CriticalImages.checkCriticalImages
)
pagespeed.CriticalImages.Beacon_.prototype.checkCriticalImages_ = function () {
this.imgLocations_ = {}
for (var a = ['IMG', 'INPUT'], b = [], c = 0; c < a.length; ++c) {
b = b.concat(goog.array.toArray(document.getElementsByTagName(a[c])))
}
if (0 != b.length && b[0].getBoundingClientRect) {
for (c = 0; (a = b[c]); ++c) {
this.insertIfImageIsCritical_(a)
}
b = 'oh=' + this.optionsHash_
this.nonce_ && (b += '&n=' + this.nonce_)
if ((a = 0 != this.criticalImages_.length)) {
for (
b += '&ci=' + encodeURIComponent(this.criticalImages_[0]), c = 1;
c < this.criticalImages_.length;
++c
) {
var d = ',' + encodeURIComponent(this.criticalImages_[c])
b.length + d.length <= pagespeedutils.MAX_POST_SIZE && (b += d)
}
}
this.checkRenderedImageSizes_ &&
((d =
'&rd=' +
encodeURIComponent(JSON.stringify(this.getImageRenderedMap()))),
b.length + d.length <= pagespeedutils.MAX_POST_SIZE && (b += d),
(a = !0))
pagespeed.CriticalImages.beaconData_ = b
a && pagespeedutils.sendBeacon(this.beaconUrl_, this.htmlUrl_, b)
}
}
pagespeed.CriticalImages.Beacon_.prototype.getImageRenderedMap = function () {
var a = {},
b = goog.dom.getElementsByTagName('IMG')
if (0 == b.length) {
return {}
}
var c = b[0]
if (!('naturalWidth' in c && 'naturalHeight' in c)) {
return {}
}
for (var d = 0; (c = b[d]); ++d) {
var e = c.getAttribute('data-pagespeed-url-hash')
e &&
((!(e in a) &&
0 < c.width &&
0 < c.height &&
0 < c.naturalWidth &&
0 < c.naturalHeight) ||
(e in a && c.width >= a[e].rw && c.height >= a[e].rh)) &&
(a[e] = {
rw: c.width,
rh: c.height,
ow: c.naturalWidth,
oh: c.naturalHeight,
})
}
return a
}
pagespeed.CriticalImages.beaconData_ = ''
pagespeed.CriticalImages.getBeaconData = function () {
return pagespeed.CriticalImages.beaconData_
}
goog.exportSymbol(
'pagespeed.CriticalImages.getBeaconData',
pagespeed.CriticalImages.getBeaconData
)
pagespeed.CriticalImages.Run = function (a, b, c, d, e, f) {
var g = new pagespeed.CriticalImages.Beacon_(a, b, c, e, f)
pagespeed.CriticalImages.beaconObj_ = g
d &&
pagespeedutils.addHandler(window, 'load', function () {
window.setTimeout(function () {
g.checkCriticalImages_()
}, 0)
})
}
goog.exportSymbol(
'pagespeed.CriticalImages.Run',
pagespeed.CriticalImages.Run
)
})()
pagespeed.CriticalImages.Run(
'/ngx_pagespeed_beacon',
'http://ladesignconcepts.com/',
'9nHg8PY_8X',
true,
false,
'CgxJf5Np6NQ'
)
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment