/** vim: et:ts=4:sw=4:sts=4 * @license RequireJS 2.1.18 Copyright (c) 2010-2015, The Dojo Foundation All Rights Reserved. * Available via the MIT or new BSD license. * see: http://github.com/jrburke/requirejs for details */ /*! * jQuery JavaScript Library v1.11.3 * http://jquery.com/ * * Includes Sizzle.js * http://sizzlejs.com/ * * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors * Released under the MIT license * http://jquery.org/license * * Date: 2015-04-28T16:19Z */ /*! * Sizzle CSS Selector Engine v2.2.0-pre * http://sizzlejs.com/ * * Copyright 2008, 2014 jQuery Foundation, Inc. and other contributors * Released under the MIT license * http://jquery.org/license * * Date: 2014-12-16 */ /*! * jQuery UI Core 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/category/ui-core/ */ /*! * jQuery UI Widget 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/jQuery.widget/ */ /*! * jQuery UI Position 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/position/ */ /*! * jQuery UI Menu 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/menu/ */ /*! * jQuery UI Autocomplete 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/autocomplete/ */ /*! * jQuery UI Button 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/button/ */ /*! * jQuery UI Mouse 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/mouse/ */ /*! * jQuery UI Draggable 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/draggable/ */ /*! * jQuery UI Resizable 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/resizable/ */ /*! * jQuery UI Dialog 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/dialog/ */ /*! * jQuery UI Tabs 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/tabs/ */ /*! * jQuery Cookie Plugin v1.4.1 * https://github.com/carhartl/jquery-cookie * * Copyright 2013 Klaus Hartl * Released under the MIT license */ /* * pg-desktop.js Project Gutenberg Website * * Copyright 2010-2014 Marcello Perathoner * Licensed under GPL version 3.0 or later. */ function open_share_popup(url, target, w, h) { var x = (window.screen.width - w) / 2, y = (window.screen.height - h) / 2; window.open(url, target, "width=" + w + ",height=" + h + ",left=" + x + ",top=" + y + ",status=1,resizable=0"); } function init_help_button() { $("#help-button").click(function() { $("#helpbox").slideToggle("fast"); }), $("#helpbox").click(function() { $(this).slideUp("fast"); }); } function dropbox_push(url, filename) { $.getScript("https://www.dropbox.com/static/api/2/dropins.js").done(function() { Dropbox.appKey = dropbox_app_key; var options = { files: [ { url: url, filename: filename } ], success: function() { alert("done"); }, error: function(errorMessage) { alert(errorMessage); } }; Dropbox.save(options); }); } function fb_post_to_feed(url, title, description, icon) { function callback() {} var obj = { method: "feed", redirect_uri: "https://www.gutenberg.org/fb_redirect.html", link: url, picture: icon, name: title, caption: url, description: description, ref: "bibrec" }; FB.ui(obj, callback); } function get_logo_token() { var logo = $("#logo .icon"), token = logo.attr("id"); $.cookie("bonus", token, { path: "/", domain: "gutenberg.org" }); } function init_search_dropdown() { function extractLast(term) { return term.split(/\s+/).pop(); } var search = $("#search-input"); search.attr("placeholder", search.attr("title")), search.autocomplete({ minLength: 4, delay: 500, source: function(request, response) { $.ajax({ url: json_search, data: { query: request.term }, dataType: "json", cache: !1, xhrFields: { withCredentials: !0 } }).done(function(data) { response(data[1]); }); }, search: function() { var term = extractLast(this.value); return term.length < 4 ? !1 : void 0; }, focus: function() { return !1; }, position: { my: "left top", at: "left bottom", of: "#search-input-cell" } }), search.bind("keydown", function(event) { event.keyCode === $.ui.keyCode.TAB && $(this).data("autocomplete").menu.active && event.preventDefault(); }), search.focus(function() { $("#search form").addClass("focused"); }), search.blur(function() { $("#search form").removeClass("focused"); }); } function printpage() { $("#tabs").tabs("destroy"), $(".noprint").hide(), $(".noscreen").show(), window.print(); } function screen_mode() { $(".noprint").show(), $(".noscreen").hide(), $("#tabs").tabs(), window.location.hash && $("#tabs").tabs("select", window.location.hash); } function doc_ready(jquery) { jquery(document).ready(function() { if (get_logo_token(), screen_mode(), init_help_button(), init_search_dropdown(), "" !== dialog_message) { var dlg = jquery("#dialog"); dlg && (dlg.append("

" + dialog_message + "

"), dlg.dialog({ title: dialog_title, resizable: !1, modal: !0, buttons: { Ok: function() { jquery(this).dialog("close"); } } })); } }); } var requirejs, require, define; !function(global) { function isFunction(it) { return "[object Function]" === ostring.call(it); } function isArray(it) { return "[object Array]" === ostring.call(it); } function each(ary, func) { if (ary) { var i; for (i = 0; i < ary.length && (!ary[i] || !func(ary[i], i, ary)); i += 1) ; } } function eachReverse(ary, func) { if (ary) { var i; for (i = ary.length - 1; i > -1 && (!ary[i] || !func(ary[i], i, ary)); i -= 1) ; } } function hasProp(obj, prop) { return hasOwn.call(obj, prop); } function getOwn(obj, prop) { return hasProp(obj, prop) && obj[prop]; } function eachProp(obj, func) { var prop; for (prop in obj) if (hasProp(obj, prop) && func(obj[prop], prop)) break; } function mixin(target, source, force, deepStringMixin) { return source && eachProp(source, function(value, prop) { (force || !hasProp(target, prop)) && (!deepStringMixin || "object" != typeof value || !value || isArray(value) || isFunction(value) || value instanceof RegExp ? target[prop] = value : (target[prop] || (target[prop] = {}), mixin(target[prop], value, force, deepStringMixin))); }), target; } function bind(obj, fn) { return function() { return fn.apply(obj, arguments); }; } function scripts() { return document.getElementsByTagName("script"); } function defaultOnError(err) { throw err; } function getGlobal(value) { if (!value) return value; var g = global; return each(value.split("."), function(part) { g = g[part]; }), g; } function makeError(id, msg, err, requireModules) { var e = new Error(msg + "\nhttp://requirejs.org/docs/errors.html#" + id); return e.requireType = id, e.requireModules = requireModules, err && (e.originalError = err), e; } function newContext(contextName) { function trimDots(ary) { var i, part; for (i = 0; i < ary.length; i++) if (part = ary[i], "." === part) ary.splice(i, 1), i -= 1; else if (".." === part) { if (0 === i || 1 === i && ".." === ary[2] || ".." === ary[i - 1]) continue; i > 0 && (ary.splice(i - 1, 2), i -= 2); } } function normalize(name, baseName, applyMap) { var pkgMain, mapValue, nameParts, i, j, nameSegment, lastIndex, foundMap, foundI, foundStarMap, starI, normalizedBaseParts, baseParts = baseName && baseName.split("/"), map = config.map, starMap = map && map["*"]; if (name && (name = name.split("/"), lastIndex = name.length - 1, config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex]) && (name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, "")), "." === name[0].charAt(0) && baseParts && (normalizedBaseParts = baseParts.slice(0, baseParts.length - 1), name = normalizedBaseParts.concat(name)), trimDots(name), name = name.join("/")), applyMap && map && (baseParts || starMap)) { nameParts = name.split("/"); outerLoop: for (i = nameParts.length; i > 0; i -= 1) { if (nameSegment = nameParts.slice(0, i).join("/"), baseParts) for (j = baseParts.length; j > 0; j -= 1) if (mapValue = getOwn(map, baseParts.slice(0, j).join("/")), mapValue && (mapValue = getOwn(mapValue, nameSegment))) { foundMap = mapValue, foundI = i; break outerLoop; } !foundStarMap && starMap && getOwn(starMap, nameSegment) && (foundStarMap = getOwn(starMap, nameSegment), starI = i); } !foundMap && foundStarMap && (foundMap = foundStarMap, foundI = starI), foundMap && (nameParts.splice(0, foundI, foundMap), name = nameParts.join("/")); } return pkgMain = getOwn(config.pkgs, name), pkgMain ? pkgMain : name; } function removeScript(name) { isBrowser && each(scripts(), function(scriptNode) { return scriptNode.getAttribute("data-requiremodule") === name && scriptNode.getAttribute("data-requirecontext") === context.contextName ? (scriptNode.parentNode.removeChild(scriptNode), !0) : void 0; }); } function hasPathFallback(id) { var pathConfig = getOwn(config.paths, id); return pathConfig && isArray(pathConfig) && pathConfig.length > 1 ? (pathConfig.shift(), context.require.undef(id), context.makeRequire(null, { skipMap: !0 })([ id ]), !0) : void 0; } function splitPrefix(name) { var prefix, index = name ? name.indexOf("!") : -1; return index > -1 && (prefix = name.substring(0, index), name = name.substring(index + 1, name.length)), [ prefix, name ]; } function makeModuleMap(name, parentModuleMap, isNormalized, applyMap) { var url, pluginModule, suffix, nameParts, prefix = null, parentName = parentModuleMap ? parentModuleMap.name : null, originalName = name, isDefine = !0, normalizedName = ""; return name || (isDefine = !1, name = "_@r" + (requireCounter += 1)), nameParts = splitPrefix(name), prefix = nameParts[0], name = nameParts[1], prefix && (prefix = normalize(prefix, parentName, applyMap), pluginModule = getOwn(defined, prefix)), name && (prefix ? normalizedName = pluginModule && pluginModule.normalize ? pluginModule.normalize(name, function(name) { return normalize(name, parentName, applyMap); }) : -1 === name.indexOf("!") ? normalize(name, parentName, applyMap) : name : (normalizedName = normalize(name, parentName, applyMap), nameParts = splitPrefix(normalizedName), prefix = nameParts[0], normalizedName = nameParts[1], isNormalized = !0, url = context.nameToUrl(normalizedName))), suffix = !prefix || pluginModule || isNormalized ? "" : "_unnormalized" + (unnormalizedCounter += 1), { prefix: prefix, name: normalizedName, parentMap: parentModuleMap, unnormalized: !!suffix, url: url, originalName: originalName, isDefine: isDefine, id: (prefix ? prefix + "!" + normalizedName : normalizedName) + suffix }; } function getModule(depMap) { var id = depMap.id, mod = getOwn(registry, id); return mod || (mod = registry[id] = new context.Module(depMap)), mod; } function on(depMap, name, fn) { var id = depMap.id, mod = getOwn(registry, id); !hasProp(defined, id) || mod && !mod.defineEmitComplete ? (mod = getModule(depMap), mod.error && "error" === name ? fn(mod.error) : mod.on(name, fn)) : "defined" === name && fn(defined[id]); } function onError(err, errback) { var ids = err.requireModules, notified = !1; errback ? errback(err) : (each(ids, function(id) { var mod = getOwn(registry, id); mod && (mod.error = err, mod.events.error && (notified = !0, mod.emit("error", err))); }), notified || req.onError(err)); } function takeGlobalQueue() { globalDefQueue.length && (apsp.apply(defQueue, [ defQueue.length, 0 ].concat(globalDefQueue)), globalDefQueue = []); } function cleanRegistry(id) { delete registry[id], delete enabledRegistry[id]; } function breakCycle(mod, traced, processed) { var id = mod.map.id; mod.error ? mod.emit("error", mod.error) : (traced[id] = !0, each(mod.depMaps, function(depMap, i) { var depId = depMap.id, dep = getOwn(registry, depId); !dep || mod.depMatched[i] || processed[depId] || (getOwn(traced, depId) ? (mod.defineDep(i, defined[depId]), mod.check()) : breakCycle(dep, traced, processed)); }), processed[id] = !0); } function checkLoaded() { var err, usingPathFallback, waitInterval = 1e3 * config.waitSeconds, expired = waitInterval && context.startTime + waitInterval < new Date().getTime(), noLoads = [], reqCalls = [], stillLoading = !1, needCycleCheck = !0; if (!inCheckLoaded) { if (inCheckLoaded = !0, eachProp(enabledRegistry, function(mod) { var map = mod.map, modId = map.id; if (mod.enabled && (map.isDefine || reqCalls.push(mod), !mod.error)) if (!mod.inited && expired) hasPathFallback(modId) ? (usingPathFallback = !0, stillLoading = !0) : (noLoads.push(modId), removeScript(modId)); else if (!mod.inited && mod.fetched && map.isDefine && (stillLoading = !0, !map.prefix)) return needCycleCheck = !1; }), expired && noLoads.length) return err = makeError("timeout", "Load timeout for modules: " + noLoads, null, noLoads), err.contextName = context.contextName, onError(err); needCycleCheck && each(reqCalls, function(mod) { breakCycle(mod, {}, {}); }), expired && !usingPathFallback || !stillLoading || !isBrowser && !isWebWorker || checkLoadedTimeoutId || (checkLoadedTimeoutId = setTimeout(function() { checkLoadedTimeoutId = 0, checkLoaded(); }, 50)), inCheckLoaded = !1; } } function callGetModule(args) { hasProp(defined, args[0]) || getModule(makeModuleMap(args[0], null, !0)).init(args[1], args[2]); } function removeListener(node, func, name, ieName) { node.detachEvent && !isOpera ? ieName && node.detachEvent(ieName, func) : node.removeEventListener(name, func, !1); } function getScriptData(evt) { var node = evt.currentTarget || evt.srcElement; return removeListener(node, context.onScriptLoad, "load", "onreadystatechange"), removeListener(node, context.onScriptError, "error"), { node: node, id: node && node.getAttribute("data-requiremodule") }; } function intakeDefines() { var args; for (takeGlobalQueue(); defQueue.length; ) { if (args = defQueue.shift(), null === args[0]) return onError(makeError("mismatch", "Mismatched anonymous define() module: " + args[args.length - 1])); callGetModule(args); } } var inCheckLoaded, Module, context, handlers, checkLoadedTimeoutId, config = { waitSeconds: 7, baseUrl: "./", paths: {}, bundles: {}, pkgs: {}, shim: {}, config: {} }, registry = {}, enabledRegistry = {}, undefEvents = {}, defQueue = [], defined = {}, urlFetched = {}, bundlesMap = {}, requireCounter = 1, unnormalizedCounter = 1; return handlers = { require: function(mod) { return mod.require ? mod.require : mod.require = context.makeRequire(mod.map); }, exports: function(mod) { return mod.usingExports = !0, mod.map.isDefine ? mod.exports ? defined[mod.map.id] = mod.exports : mod.exports = defined[mod.map.id] = {} : void 0; }, module: function(mod) { return mod.module ? mod.module : mod.module = { id: mod.map.id, uri: mod.map.url, config: function() { return getOwn(config.config, mod.map.id) || {}; }, exports: mod.exports || (mod.exports = {}) }; } }, Module = function(map) { this.events = getOwn(undefEvents, map.id) || {}, this.map = map, this.shim = getOwn(config.shim, map.id), this.depExports = [], this.depMaps = [], this.depMatched = [], this.pluginMaps = {}, this.depCount = 0; }, Module.prototype = { init: function(depMaps, factory, errback, options) { options = options || {}, this.inited || (this.factory = factory, errback ? this.on("error", errback) : this.events.error && (errback = bind(this, function(err) { this.emit("error", err); })), this.depMaps = depMaps && depMaps.slice(0), this.errback = errback, this.inited = !0, this.ignore = options.ignore, options.enabled || this.enabled ? this.enable() : this.check()); }, defineDep: function(i, depExports) { this.depMatched[i] || (this.depMatched[i] = !0, this.depCount -= 1, this.depExports[i] = depExports); }, fetch: function() { if (!this.fetched) { this.fetched = !0, context.startTime = new Date().getTime(); var map = this.map; return this.shim ? void context.makeRequire(this.map, { enableBuildCallback: !0 })(this.shim.deps || [], bind(this, function() { return map.prefix ? this.callPlugin() : this.load(); })) : map.prefix ? this.callPlugin() : this.load(); } }, load: function() { var url = this.map.url; urlFetched[url] || (urlFetched[url] = !0, context.load(this.map.id, url)); }, check: function() { if (this.enabled && !this.enabling) { var err, cjsModule, id = this.map.id, depExports = this.depExports, exports = this.exports, factory = this.factory; if (this.inited) { if (this.error) this.emit("error", this.error); else if (!this.defining) { if (this.defining = !0, this.depCount < 1 && !this.defined) { if (isFunction(factory)) { if (this.events.error && this.map.isDefine || req.onError !== defaultOnError) try { exports = context.execCb(id, factory, depExports, exports); } catch (e) { err = e; } else exports = context.execCb(id, factory, depExports, exports); if (this.map.isDefine && void 0 === exports && (cjsModule = this.module, cjsModule ? exports = cjsModule.exports : this.usingExports && (exports = this.exports)), err) return err.requireMap = this.map, err.requireModules = this.map.isDefine ? [ this.map.id ] : null, err.requireType = this.map.isDefine ? "define" : "require", onError(this.error = err); } else exports = factory; this.exports = exports, this.map.isDefine && !this.ignore && (defined[id] = exports, req.onResourceLoad && req.onResourceLoad(context, this.map, this.depMaps)), cleanRegistry(id), this.defined = !0; } this.defining = !1, this.defined && !this.defineEmitted && (this.defineEmitted = !0, this.emit("defined", this.exports), this.defineEmitComplete = !0); } } else this.fetch(); } }, callPlugin: function() { var map = this.map, id = map.id, pluginMap = makeModuleMap(map.prefix); this.depMaps.push(pluginMap), on(pluginMap, "defined", bind(this, function(plugin) { var load, normalizedMap, normalizedMod, bundleId = getOwn(bundlesMap, this.map.id), name = this.map.name, parentName = this.map.parentMap ? this.map.parentMap.name : null, localRequire = context.makeRequire(map.parentMap, { enableBuildCallback: !0 }); return this.map.unnormalized ? (plugin.normalize && (name = plugin.normalize(name, function(name) { return normalize(name, parentName, !0); }) || ""), normalizedMap = makeModuleMap(map.prefix + "!" + name, this.map.parentMap), on(normalizedMap, "defined", bind(this, function(value) { this.init([], function() { return value; }, null, { enabled: !0, ignore: !0 }); })), normalizedMod = getOwn(registry, normalizedMap.id), void (normalizedMod && (this.depMaps.push(normalizedMap), this.events.error && normalizedMod.on("error", bind(this, function(err) { this.emit("error", err); })), normalizedMod.enable()))) : bundleId ? (this.map.url = context.nameToUrl(bundleId), void this.load()) : (load = bind(this, function(value) { this.init([], function() { return value; }, null, { enabled: !0 }); }), load.error = bind(this, function(err) { this.inited = !0, this.error = err, err.requireModules = [ id ], eachProp(registry, function(mod) { 0 === mod.map.id.indexOf(id + "_unnormalized") && cleanRegistry(mod.map.id); }), onError(err); }), load.fromText = bind(this, function(text, textAlt) { var moduleName = map.name, moduleMap = makeModuleMap(moduleName), hasInteractive = useInteractive; textAlt && (text = textAlt), hasInteractive && (useInteractive = !1), getModule(moduleMap), hasProp(config.config, id) && (config.config[moduleName] = config.config[id]); try { req.exec(text); } catch (e) { return onError(makeError("fromtexteval", "fromText eval for " + id + " failed: " + e, e, [ id ])); } hasInteractive && (useInteractive = !0), this.depMaps.push(moduleMap), context.completeLoad(moduleName), localRequire([ moduleName ], load); }), void plugin.load(map.name, localRequire, load, config)); })), context.enable(pluginMap, this), this.pluginMaps[pluginMap.id] = pluginMap; }, enable: function() { enabledRegistry[this.map.id] = this, this.enabled = !0, this.enabling = !0, each(this.depMaps, bind(this, function(depMap, i) { var id, mod, handler; if ("string" == typeof depMap) { if (depMap = makeModuleMap(depMap, this.map.isDefine ? this.map : this.map.parentMap, !1, !this.skipMap), this.depMaps[i] = depMap, handler = getOwn(handlers, depMap.id)) return void (this.depExports[i] = handler(this)); this.depCount += 1, on(depMap, "defined", bind(this, function(depExports) { this.undefed || (this.defineDep(i, depExports), this.check()); })), this.errback ? on(depMap, "error", bind(this, this.errback)) : this.events.error && on(depMap, "error", bind(this, function(err) { this.emit("error", err); })); } id = depMap.id, mod = registry[id], hasProp(handlers, id) || !mod || mod.enabled || context.enable(depMap, this); })), eachProp(this.pluginMaps, bind(this, function(pluginMap) { var mod = getOwn(registry, pluginMap.id); mod && !mod.enabled && context.enable(pluginMap, this); })), this.enabling = !1, this.check(); }, on: function(name, cb) { var cbs = this.events[name]; cbs || (cbs = this.events[name] = []), cbs.push(cb); }, emit: function(name, evt) { each(this.events[name], function(cb) { cb(evt); }), "error" === name && delete this.events[name]; } }, context = { config: config, contextName: contextName, registry: registry, defined: defined, urlFetched: urlFetched, defQueue: defQueue, Module: Module, makeModuleMap: makeModuleMap, nextTick: req.nextTick, onError: onError, configure: function(cfg) { cfg.baseUrl && "/" !== cfg.baseUrl.charAt(cfg.baseUrl.length - 1) && (cfg.baseUrl += "/"); var shim = config.shim, objs = { paths: !0, bundles: !0, config: !0, map: !0 }; eachProp(cfg, function(value, prop) { objs[prop] ? (config[prop] || (config[prop] = {}), mixin(config[prop], value, !0, !0)) : config[prop] = value; }), cfg.bundles && eachProp(cfg.bundles, function(value, prop) { each(value, function(v) { v !== prop && (bundlesMap[v] = prop); }); }), cfg.shim && (eachProp(cfg.shim, function(value, id) { isArray(value) && (value = { deps: value }), !value.exports && !value.init || value.exportsFn || (value.exportsFn = context.makeShimExports(value)), shim[id] = value; }), config.shim = shim), cfg.packages && each(cfg.packages, function(pkgObj) { var location, name; pkgObj = "string" == typeof pkgObj ? { name: pkgObj } : pkgObj, name = pkgObj.name, location = pkgObj.location, location && (config.paths[name] = pkgObj.location), config.pkgs[name] = pkgObj.name + "/" + (pkgObj.main || "main").replace(currDirRegExp, "").replace(jsSuffixRegExp, ""); }), eachProp(registry, function(mod, id) { mod.inited || mod.map.unnormalized || (mod.map = makeModuleMap(id, null, !0)); }), (cfg.deps || cfg.callback) && context.require(cfg.deps || [], cfg.callback); }, makeShimExports: function(value) { function fn() { var ret; return value.init && (ret = value.init.apply(global, arguments)), ret || value.exports && getGlobal(value.exports); } return fn; }, makeRequire: function(relMap, options) { function localRequire(deps, callback, errback) { var id, map, requireMod; return options.enableBuildCallback && callback && isFunction(callback) && (callback.__requireJsBuild = !0), "string" == typeof deps ? isFunction(callback) ? onError(makeError("requireargs", "Invalid require call"), errback) : relMap && hasProp(handlers, deps) ? handlers[deps](registry[relMap.id]) : req.get ? req.get(context, deps, relMap, localRequire) : (map = makeModuleMap(deps, relMap, !1, !0), id = map.id, hasProp(defined, id) ? defined[id] : onError(makeError("notloaded", 'Module name "' + id + '" has not been loaded yet for context: ' + contextName + (relMap ? "" : ". Use require([])")))) : (intakeDefines(), context.nextTick(function() { intakeDefines(), requireMod = getModule(makeModuleMap(null, relMap)), requireMod.skipMap = options.skipMap, requireMod.init(deps, callback, errback, { enabled: !0 }), checkLoaded(); }), localRequire); } return options = options || {}, mixin(localRequire, { isBrowser: isBrowser, toUrl: function(moduleNamePlusExt) { var ext, index = moduleNamePlusExt.lastIndexOf("."), segment = moduleNamePlusExt.split("/")[0], isRelative = "." === segment || ".." === segment; return -1 !== index && (!isRelative || index > 1) && (ext = moduleNamePlusExt.substring(index, moduleNamePlusExt.length), moduleNamePlusExt = moduleNamePlusExt.substring(0, index)), context.nameToUrl(normalize(moduleNamePlusExt, relMap && relMap.id, !0), ext, !0); }, defined: function(id) { return hasProp(defined, makeModuleMap(id, relMap, !1, !0).id); }, specified: function(id) { return id = makeModuleMap(id, relMap, !1, !0).id, hasProp(defined, id) || hasProp(registry, id); } }), relMap || (localRequire.undef = function(id) { takeGlobalQueue(); var map = makeModuleMap(id, relMap, !0), mod = getOwn(registry, id); mod.undefed = !0, removeScript(id), delete defined[id], delete urlFetched[map.url], delete undefEvents[id], eachReverse(defQueue, function(args, i) { args[0] === id && defQueue.splice(i, 1); }), mod && (mod.events.defined && (undefEvents[id] = mod.events), cleanRegistry(id)); }), localRequire; }, enable: function(depMap) { var mod = getOwn(registry, depMap.id); mod && getModule(depMap).enable(); }, completeLoad: function(moduleName) { var found, args, mod, shim = getOwn(config.shim, moduleName) || {}, shExports = shim.exports; for (takeGlobalQueue(); defQueue.length; ) { if (args = defQueue.shift(), null === args[0]) { if (args[0] = moduleName, found) break; found = !0; } else args[0] === moduleName && (found = !0); callGetModule(args); } if (mod = getOwn(registry, moduleName), !found && !hasProp(defined, moduleName) && mod && !mod.inited) { if (!(!config.enforceDefine || shExports && getGlobal(shExports))) return hasPathFallback(moduleName) ? void 0 : onError(makeError("nodefine", "No define call for " + moduleName, null, [ moduleName ])); callGetModule([ moduleName, shim.deps || [], shim.exportsFn ]); } checkLoaded(); }, nameToUrl: function(moduleName, ext, skipExt) { var paths, syms, i, parentModule, url, parentPath, bundleId, pkgMain = getOwn(config.pkgs, moduleName); if (pkgMain && (moduleName = pkgMain), bundleId = getOwn(bundlesMap, moduleName)) return context.nameToUrl(bundleId, ext, skipExt); if (req.jsExtRegExp.test(moduleName)) url = moduleName + (ext || ""); else { for (paths = config.paths, syms = moduleName.split("/"), i = syms.length; i > 0; i -= 1) if (parentModule = syms.slice(0, i).join("/"), parentPath = getOwn(paths, parentModule)) { isArray(parentPath) && (parentPath = parentPath[0]), syms.splice(0, i, parentPath); break; } url = syms.join("/"), url += ext || (/^data\:|\?/.test(url) || skipExt ? "" : ".js"), url = ("/" === url.charAt(0) || url.match(/^[\w\+\.\-]+:/) ? "" : config.baseUrl) + url; } return config.urlArgs ? url + ((-1 === url.indexOf("?") ? "?" : "&") + config.urlArgs) : url; }, load: function(id, url) { req.load(context, id, url); }, execCb: function(name, callback, args, exports) { return callback.apply(exports, args); }, onScriptLoad: function(evt) { if ("load" === evt.type || readyRegExp.test((evt.currentTarget || evt.srcElement).readyState)) { interactiveScript = null; var data = getScriptData(evt); context.completeLoad(data.id); } }, onScriptError: function(evt) { var data = getScriptData(evt); return hasPathFallback(data.id) ? void 0 : onError(makeError("scripterror", "Script error for: " + data.id, evt, [ data.id ])); } }, context.require = context.makeRequire(), context; } function getInteractiveScript() { return interactiveScript && "interactive" === interactiveScript.readyState ? interactiveScript : (eachReverse(scripts(), function(script) { return "interactive" === script.readyState ? interactiveScript = script : void 0; }), interactiveScript); } var req, s, head, baseElement, dataMain, src, interactiveScript, currentlyAddingScript, mainScript, subPath, version = "2.1.18", commentRegExp = /(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/gm, cjsRequireRegExp = /[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g, jsSuffixRegExp = /\.js$/, currDirRegExp = /^\.\//, op = Object.prototype, ostring = op.toString, hasOwn = op.hasOwnProperty, ap = Array.prototype, apsp = ap.splice, isBrowser = !("undefined" == typeof window || "undefined" == typeof navigator || !window.document), isWebWorker = !isBrowser && "undefined" != typeof importScripts, readyRegExp = isBrowser && "PLAYSTATION 3" === navigator.platform ? /^complete$/ : /^(complete|loaded)$/, defContextName = "_", isOpera = "undefined" != typeof opera && "[object Opera]" === opera.toString(), contexts = {}, cfg = {}, globalDefQueue = [], useInteractive = !1; if ("undefined" == typeof define) { if ("undefined" != typeof requirejs) { if (isFunction(requirejs)) return; cfg = requirejs, requirejs = void 0; } "undefined" == typeof require || isFunction(require) || (cfg = require, require = void 0), req = requirejs = function(deps, callback, errback, optional) { var context, config, contextName = defContextName; return isArray(deps) || "string" == typeof deps || (config = deps, isArray(callback) ? (deps = callback, callback = errback, errback = optional) : deps = []), config && config.context && (contextName = config.context), context = getOwn(contexts, contextName), context || (context = contexts[contextName] = req.s.newContext(contextName)), config && context.configure(config), context.require(deps, callback, errback); }, req.config = function(config) { return req(config); }, req.nextTick = "undefined" != typeof setTimeout ? function(fn) { setTimeout(fn, 4); } : function(fn) { fn(); }, require || (require = req), req.version = version, req.jsExtRegExp = /^\/|:|\?|\.js$/, req.isBrowser = isBrowser, s = req.s = { contexts: contexts, newContext: newContext }, req({}), each([ "toUrl", "undef", "defined", "specified" ], function(prop) { req[prop] = function() { var ctx = contexts[defContextName]; return ctx.require[prop].apply(ctx, arguments); }; }), isBrowser && (head = s.head = document.getElementsByTagName("head")[0], baseElement = document.getElementsByTagName("base")[0], baseElement && (head = s.head = baseElement.parentNode)), req.onError = defaultOnError, req.createNode = function(config) { var node = config.xhtml ? document.createElementNS("http://www.w3.org/1999/xhtml", "html:script") : document.createElement("script"); return node.type = config.scriptType || "text/javascript", node.charset = "utf-8", node.async = !0, node; }, req.load = function(context, moduleName, url) { var node, config = context && context.config || {}; if (isBrowser) return node = req.createNode(config, moduleName, url), node.setAttribute("data-requirecontext", context.contextName), node.setAttribute("data-requiremodule", moduleName), !node.attachEvent || node.attachEvent.toString && node.attachEvent.toString().indexOf("[native code") < 0 || isOpera ? (node.addEventListener("load", context.onScriptLoad, !1), node.addEventListener("error", context.onScriptError, !1)) : (useInteractive = !0, node.attachEvent("onreadystatechange", context.onScriptLoad)), node.src = url, currentlyAddingScript = node, baseElement ? head.insertBefore(node, baseElement) : head.appendChild(node), currentlyAddingScript = null, node; if (isWebWorker) try { importScripts(url), context.completeLoad(moduleName); } catch (e) { context.onError(makeError("importscripts", "importScripts failed for " + moduleName + " at " + url, e, [ moduleName ])); } }, isBrowser && !cfg.skipDataMain && eachReverse(scripts(), function(script) { return head || (head = script.parentNode), dataMain = script.getAttribute("data-main"), dataMain ? (mainScript = dataMain, cfg.baseUrl || (src = mainScript.split("/"), mainScript = src.pop(), subPath = src.length ? src.join("/") + "/" : "./", cfg.baseUrl = subPath), mainScript = mainScript.replace(jsSuffixRegExp, ""), req.jsExtRegExp.test(mainScript) && (mainScript = dataMain), cfg.deps = cfg.deps ? cfg.deps.concat(mainScript) : [ mainScript ], !0) : void 0; }), define = function(name, deps, callback) { var node, context; "string" != typeof name && (callback = deps, deps = name, name = null), isArray(deps) || (callback = deps, deps = null), !deps && isFunction(callback) && (deps = [], callback.length && (callback.toString().replace(commentRegExp, "").replace(cjsRequireRegExp, function(match, dep) { deps.push(dep); }), deps = (1 === callback.length ? [ "require" ] : [ "require", "exports", "module" ]).concat(deps))), useInteractive && (node = currentlyAddingScript || getInteractiveScript(), node && (name || (name = node.getAttribute("data-requiremodule")), context = contexts[node.getAttribute("data-requirecontext")])), (context ? context.defQueue : globalDefQueue).push([ name, deps, callback ]); }, define.amd = { jQuery: !0 }, req.exec = function(text) { return eval(text); }, req(cfg); } }(this), define("requirejs", function() {}), function(global, factory) { "object" == typeof module && "object" == typeof module.exports ? module.exports = global.document ? factory(global, !0) : function(w) { if (!w.document) throw new Error("jQuery requires a window with a document"); return factory(w); } : factory(global); }("undefined" != typeof window ? window : this, function(window, noGlobal) { function isArraylike(obj) { var length = "length" in obj && obj.length, type = jQuery.type(obj); return "function" === type || jQuery.isWindow(obj) ? !1 : 1 === obj.nodeType && length ? !0 : "array" === type || 0 === length || "number" == typeof length && length > 0 && length - 1 in obj; } function winnow(elements, qualifier, not) { if (jQuery.isFunction(qualifier)) return jQuery.grep(elements, function(elem, i) { return !!qualifier.call(elem, i, elem) !== not; }); if (qualifier.nodeType) return jQuery.grep(elements, function(elem) { return elem === qualifier !== not; }); if ("string" == typeof qualifier) { if (risSimple.test(qualifier)) return jQuery.filter(qualifier, elements, not); qualifier = jQuery.filter(qualifier, elements); } return jQuery.grep(elements, function(elem) { return jQuery.inArray(elem, qualifier) >= 0 !== not; }); } function sibling(cur, dir) { do cur = cur[dir]; while (cur && 1 !== cur.nodeType); return cur; } function createOptions(options) { var object = optionsCache[options] = {}; return jQuery.each(options.match(rnotwhite) || [], function(_, flag) { object[flag] = !0; }), object; } function detach() { document.addEventListener ? (document.removeEventListener("DOMContentLoaded", completed, !1), window.removeEventListener("load", completed, !1)) : (document.detachEvent("onreadystatechange", completed), window.detachEvent("onload", completed)); } function completed() { (document.addEventListener || "load" === event.type || "complete" === document.readyState) && (detach(), jQuery.ready()); } function dataAttr(elem, key, data) { if (void 0 === data && 1 === elem.nodeType) { var name = "data-" + key.replace(rmultiDash, "-$1").toLowerCase(); if (data = elem.getAttribute(name), "string" == typeof data) { try { data = "true" === data ? !0 : "false" === data ? !1 : "null" === data ? null : +data + "" === data ? +data : rbrace.test(data) ? jQuery.parseJSON(data) : data; } catch (e) {} jQuery.data(elem, key, data); } else data = void 0; } return data; } function isEmptyDataObject(obj) { var name; for (name in obj) if (("data" !== name || !jQuery.isEmptyObject(obj[name])) && "toJSON" !== name) return !1; return !0; } function internalData(elem, name, data, pvt) { if (jQuery.acceptData(elem)) { var ret, thisCache, internalKey = jQuery.expando, isNode = elem.nodeType, cache = isNode ? jQuery.cache : elem, id = isNode ? elem[internalKey] : elem[internalKey] && internalKey; if (id && cache[id] && (pvt || cache[id].data) || void 0 !== data || "string" != typeof name) return id || (id = isNode ? elem[internalKey] = deletedIds.pop() || jQuery.guid++ : internalKey), cache[id] || (cache[id] = isNode ? {} : { toJSON: jQuery.noop }), ("object" == typeof name || "function" == typeof name) && (pvt ? cache[id] = jQuery.extend(cache[id], name) : cache[id].data = jQuery.extend(cache[id].data, name)), thisCache = cache[id], pvt || (thisCache.data || (thisCache.data = {}), thisCache = thisCache.data), void 0 !== data && (thisCache[jQuery.camelCase(name)] = data), "string" == typeof name ? (ret = thisCache[name], null == ret && (ret = thisCache[jQuery.camelCase(name)])) : ret = thisCache, ret; } } function internalRemoveData(elem, name, pvt) { if (jQuery.acceptData(elem)) { var thisCache, i, isNode = elem.nodeType, cache = isNode ? jQuery.cache : elem, id = isNode ? elem[jQuery.expando] : jQuery.expando; if (cache[id]) { if (name && (thisCache = pvt ? cache[id] : cache[id].data)) { jQuery.isArray(name) ? name = name.concat(jQuery.map(name, jQuery.camelCase)) : name in thisCache ? name = [ name ] : (name = jQuery.camelCase(name), name = name in thisCache ? [ name ] : name.split(" ")), i = name.length; for (;i--; ) delete thisCache[name[i]]; if (pvt ? !isEmptyDataObject(thisCache) : !jQuery.isEmptyObject(thisCache)) return; } (pvt || (delete cache[id].data, isEmptyDataObject(cache[id]))) && (isNode ? jQuery.cleanData([ elem ], !0) : support.deleteExpando || cache != cache.window ? delete cache[id] : cache[id] = null); } } } function returnTrue() { return !0; } function returnFalse() { return !1; } function safeActiveElement() { try { return document.activeElement; } catch (err) {} } function createSafeFragment(document) { var list = nodeNames.split("|"), safeFrag = document.createDocumentFragment(); if (safeFrag.createElement) for (;list.length; ) safeFrag.createElement(list.pop()); return safeFrag; } function getAll(context, tag) { var elems, elem, i = 0, found = typeof context.getElementsByTagName !== strundefined ? context.getElementsByTagName(tag || "*") : typeof context.querySelectorAll !== strundefined ? context.querySelectorAll(tag || "*") : void 0; if (!found) for (found = [], elems = context.childNodes || context; null != (elem = elems[i]); i++) !tag || jQuery.nodeName(elem, tag) ? found.push(elem) : jQuery.merge(found, getAll(elem, tag)); return void 0 === tag || tag && jQuery.nodeName(context, tag) ? jQuery.merge([ context ], found) : found; } function fixDefaultChecked(elem) { rcheckableType.test(elem.type) && (elem.defaultChecked = elem.checked); } function manipulationTarget(elem, content) { return jQuery.nodeName(elem, "table") && jQuery.nodeName(11 !== content.nodeType ? content : content.firstChild, "tr") ? elem.getElementsByTagName("tbody")[0] || elem.appendChild(elem.ownerDocument.createElement("tbody")) : elem; } function disableScript(elem) { return elem.type = (null !== jQuery.find.attr(elem, "type")) + "/" + elem.type, elem; } function restoreScript(elem) { var match = rscriptTypeMasked.exec(elem.type); return match ? elem.type = match[1] : elem.removeAttribute("type"), elem; } function setGlobalEval(elems, refElements) { for (var elem, i = 0; null != (elem = elems[i]); i++) jQuery._data(elem, "globalEval", !refElements || jQuery._data(refElements[i], "globalEval")); } function cloneCopyEvent(src, dest) { if (1 === dest.nodeType && jQuery.hasData(src)) { var type, i, l, oldData = jQuery._data(src), curData = jQuery._data(dest, oldData), events = oldData.events; if (events) { delete curData.handle, curData.events = {}; for (type in events) for (i = 0, l = events[type].length; l > i; i++) jQuery.event.add(dest, type, events[type][i]); } curData.data && (curData.data = jQuery.extend({}, curData.data)); } } function fixCloneNodeIssues(src, dest) { var nodeName, e, data; if (1 === dest.nodeType) { if (nodeName = dest.nodeName.toLowerCase(), !support.noCloneEvent && dest[jQuery.expando]) { data = jQuery._data(dest); for (e in data.events) jQuery.removeEvent(dest, e, data.handle); dest.removeAttribute(jQuery.expando); } "script" === nodeName && dest.text !== src.text ? (disableScript(dest).text = src.text, restoreScript(dest)) : "object" === nodeName ? (dest.parentNode && (dest.outerHTML = src.outerHTML), support.html5Clone && src.innerHTML && !jQuery.trim(dest.innerHTML) && (dest.innerHTML = src.innerHTML)) : "input" === nodeName && rcheckableType.test(src.type) ? (dest.defaultChecked = dest.checked = src.checked, dest.value !== src.value && (dest.value = src.value)) : "option" === nodeName ? dest.defaultSelected = dest.selected = src.defaultSelected : ("input" === nodeName || "textarea" === nodeName) && (dest.defaultValue = src.defaultValue); } } function actualDisplay(name, doc) { var style, elem = jQuery(doc.createElement(name)).appendTo(doc.body), display = window.getDefaultComputedStyle && (style = window.getDefaultComputedStyle(elem[0])) ? style.display : jQuery.css(elem[0], "display"); return elem.detach(), display; } function defaultDisplay(nodeName) { var doc = document, display = elemdisplay[nodeName]; return display || (display = actualDisplay(nodeName, doc), "none" !== display && display || (iframe = (iframe || jQuery("