{"version":3,"file":"bundle.js","mappings":"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","sources":["webpack://nanohub3/./assets/js/modules/Accordions.js","webpack://nanohub3/./node_modules/assert/build/assert.js","webpack://nanohub3/./node_modules/assert/build/internal/assert/assertion_error.js","webpack://nanohub3/./node_modules/assert/build/internal/errors.js","webpack://nanohub3/./node_modules/assert/build/internal/util/comparisons.js","webpack://nanohub3/./node_modules/call-bind/callBound.js","webpack://nanohub3/./node_modules/call-bind/index.js","webpack://nanohub3/./node_modules/console-browserify/index.js","webpack://nanohub3/./node_modules/define-properties/index.js","webpack://nanohub3/./node_modules/desandro-matches-selector/matches-selector.js","webpack://nanohub3/./node_modules/es6-object-assign/index.js","webpack://nanohub3/./node_modules/ev-emitter/ev-emitter.js","webpack://nanohub3/./node_modules/fizzy-ui-utils/utils.js","webpack://nanohub3/./node_modules/for-each/index.js","webpack://nanohub3/./node_modules/foundation-sites/dist/js/plugins/foundation.core.js","webpack://nanohub3/./node_modules/foundation-sites/dist/js/plugins/foundation.dropdownMenu.min.js","webpack://nanohub3/./node_modules/foundation-sites/dist/js/plugins/foundation.equalizer.js","webpack://nanohub3/./node_modules/foundation-sites/dist/js/plugins/foundation.reveal.js","webpack://nanohub3/./node_modules/foundation-sites/dist/js/plugins/foundation.tabs.js","webpack://nanohub3/./node_modules/foundation-sites/dist/js/plugins/foundation.util.box.js","webpack://nanohub3/./node_modules/foundation-sites/dist/js/plugins/foundation.util.box.min.js","webpack://nanohub3/./node_modules/foundation-sites/dist/js/plugins/foundation.util.imageLoader.js","webpack://nanohub3/./node_modules/foundation-sites/dist/js/plugins/foundation.util.keyboard.js","webpack://nanohub3/./node_modules/foundation-sites/dist/js/plugins/foundation.util.keyboard.min.js","webpack://nanohub3/./node_modules/foundation-sites/dist/js/plugins/foundation.util.mediaQuery.js","webpack://nanohub3/./node_modules/foundation-sites/dist/js/plugins/foundation.util.motion.js","webpack://nanohub3/./node_modules/foundation-sites/dist/js/plugins/foundation.util.nest.js","webpack://nanohub3/./node_modules/foundation-sites/dist/js/plugins/foundation.util.nest.min.js","webpack://nanohub3/./node_modules/foundation-sites/dist/js/plugins/foundation.util.touch.js","webpack://nanohub3/./node_modules/foundation-sites/dist/js/plugins/foundation.util.triggers.js","webpack://nanohub3/./node_modules/function-bind/implementation.js","webpack://nanohub3/./node_modules/function-bind/index.js","webpack://nanohub3/./node_modules/get-intrinsic/index.js","webpack://nanohub3/./node_modules/get-size/get-size.js","webpack://nanohub3/./node_modules/has-property-descriptors/index.js","webpack://nanohub3/./node_modules/has-symbols/index.js","webpack://nanohub3/./node_modules/has-symbols/shams.js","webpack://nanohub3/./node_modules/has-tostringtag/shams.js","webpack://nanohub3/./node_modules/has/src/index.js","webpack://nanohub3/./node_modules/inherits/inherits_browser.js","webpack://nanohub3/./node_modules/is-arguments/index.js","webpack://nanohub3/./node_modules/is-callable/index.js","webpack://nanohub3/./node_modules/is-generator-function/index.js","webpack://nanohub3/./node_modules/is-nan/implementation.js","webpack://nanohub3/./node_modules/is-nan/index.js","webpack://nanohub3/./node_modules/is-nan/polyfill.js","webpack://nanohub3/./node_modules/is-nan/shim.js","webpack://nanohub3/./node_modules/is-typed-array/index.js","webpack://nanohub3/./node_modules/jquery-bridget/jquery-bridget.js","webpack://nanohub3/./node_modules/jquery/dist/jquery.js","webpack://nanohub3/./node_modules/masonry-layout/masonry.js","webpack://nanohub3/./node_modules/object-is/implementation.js","webpack://nanohub3/./node_modules/object-is/index.js","webpack://nanohub3/./node_modules/object-is/polyfill.js","webpack://nanohub3/./node_modules/object-is/shim.js","webpack://nanohub3/./node_modules/object-keys/implementation.js","webpack://nanohub3/./node_modules/object-keys/index.js","webpack://nanohub3/./node_modules/object-keys/isArguments.js","webpack://nanohub3/./node_modules/outlayer/item.js","webpack://nanohub3/./node_modules/outlayer/outlayer.js","webpack://nanohub3/./node_modules/process/browser.js","webpack://nanohub3/./node_modules/util/support/isBufferBrowser.js","webpack://nanohub3/./node_modules/util/support/types.js","webpack://nanohub3/./node_modules/util/util.js","webpack://nanohub3/./node_modules/which-typed-array/index.js","webpack://nanohub3/./node_modules/available-typed-arrays/index.js","webpack://nanohub3/./node_modules/es-abstract/helpers/getOwnPropertyDescriptor.js","webpack://nanohub3/./node_modules/@glidejs/glide/dist/glide.esm.js","webpack://nanohub3/webpack/bootstrap","webpack://nanohub3/webpack/runtime/define property getters","webpack://nanohub3/webpack/runtime/global","webpack://nanohub3/webpack/runtime/hasOwnProperty shorthand","webpack://nanohub3/webpack/runtime/make namespace object","webpack://nanohub3/./assets/js/app.js"],"sourcesContent":["class Accordions {\r\n init() {\r\n // Accordions\r\n const accordions = document.querySelector('.accordions');\r\n if (accordions) {\r\n var accordionLinks = document.querySelectorAll(\".acc-link\");\r\n // var accordionControls = document.querySelector(\".acc-controls\");\r\n // // accordion controls - open all / close all\r\n // accordionControls.onclick = function (e) {\r\n // e.preventDefault();\r\n // this.classList.toggle(\"open\");\r\n // if(this.classList.contains('open')){\r\n // //this.innerHTML(\"Open all\");\r\n // accordionControls.innerHTML = \"Close all\";\r\n // this.setAttribute('aria-expanded', 'true');\r\n // this.classList.remove(\"close\");\r\n // this.classList.add(\"open\");\r\n // for (var i = 0; i < accordionLinks.length; i++) {\r\n // accordionLinks[i].classList.remove(\"close\");\r\n // accordionLinks[i].classList.add(\"open\");\r\n // accordionLinks[i].setAttribute('aria-expanded', 'true');\r\n // } \r\n // }else{\r\n // //this.innerHTML(\"Close all\");\r\n // accordionControls.innerHTML = \"Open all\";\r\n // this.setAttribute('aria-expanded', 'false'); \r\n // this.classList.remove(\"open\");\r\n // this.classList.add(\"close\");\r\n // for (var i = 0; i < accordionLinks.length; i++) {\r\n // accordionLinks[i].classList.remove(\"open\");\r\n // accordionLinks[i].classList.add(\"close\");\r\n // accordionLinks[i].setAttribute('aria-expanded', 'false');\r\n // }\r\n // }\r\n // }\r\n for (var i = 0; i < accordionLinks.length; i++) {\r\n var accordionLink = accordionLinks[i];\r\n accordionLink.onclick = function (e) {\r\n e.preventDefault();\r\n this.classList.toggle(\"open\");\r\n if(this.classList.contains('open')){\r\n this.setAttribute('aria-expanded', 'true');\r\n }else{\r\n this.setAttribute('aria-expanded', 'false');\r\n } \r\n };\r\n }\r\n }\r\n }\r\n \r\n }\r\n \r\n export default Accordions;","// Currently in sync with Node.js lib/assert.js\n// https://github.com/nodejs/node/commit/2a51ae424a513ec9a6aa3466baa0cc1d55dd4f3b\n// Originally from narwhal.js (http://narwhaljs.org)\n// Copyright (c) 2009 Thomas Robinson <280north.com>\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the 'Software'), to\n// deal in the Software without restriction, including without limitation the\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n// sell copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\n// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nvar _require = require('./internal/errors'),\n _require$codes = _require.codes,\n ERR_AMBIGUOUS_ARGUMENT = _require$codes.ERR_AMBIGUOUS_ARGUMENT,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_INVALID_ARG_VALUE = _require$codes.ERR_INVALID_ARG_VALUE,\n ERR_INVALID_RETURN_VALUE = _require$codes.ERR_INVALID_RETURN_VALUE,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS;\n\nvar AssertionError = require('./internal/assert/assertion_error');\n\nvar _require2 = require('util/'),\n inspect = _require2.inspect;\n\nvar _require$types = require('util/').types,\n isPromise = _require$types.isPromise,\n isRegExp = _require$types.isRegExp;\n\nvar objectAssign = Object.assign ? Object.assign : require('es6-object-assign').assign;\nvar objectIs = Object.is ? Object.is : require('object-is');\nvar errorCache = new Map();\nvar isDeepEqual;\nvar isDeepStrictEqual;\nvar parseExpressionAt;\nvar findNodeAround;\nvar decoder;\n\nfunction lazyLoadComparison() {\n var comparison = require('./internal/util/comparisons');\n\n isDeepEqual = comparison.isDeepEqual;\n isDeepStrictEqual = comparison.isDeepStrictEqual;\n} // Escape control characters but not \\n and \\t to keep the line breaks and\n// indentation intact.\n// eslint-disable-next-line no-control-regex\n\n\nvar escapeSequencesRegExp = /[\\x00-\\x08\\x0b\\x0c\\x0e-\\x1f]/g;\nvar meta = [\"\\\\u0000\", \"\\\\u0001\", \"\\\\u0002\", \"\\\\u0003\", \"\\\\u0004\", \"\\\\u0005\", \"\\\\u0006\", \"\\\\u0007\", '\\\\b', '', '', \"\\\\u000b\", '\\\\f', '', \"\\\\u000e\", \"\\\\u000f\", \"\\\\u0010\", \"\\\\u0011\", \"\\\\u0012\", \"\\\\u0013\", \"\\\\u0014\", \"\\\\u0015\", \"\\\\u0016\", \"\\\\u0017\", \"\\\\u0018\", \"\\\\u0019\", \"\\\\u001a\", \"\\\\u001b\", \"\\\\u001c\", \"\\\\u001d\", \"\\\\u001e\", \"\\\\u001f\"];\n\nvar escapeFn = function escapeFn(str) {\n return meta[str.charCodeAt(0)];\n};\n\nvar warned = false; // The assert module provides functions that throw\n// AssertionError's when particular conditions are not met. The\n// assert module must conform to the following interface.\n\nvar assert = module.exports = ok;\nvar NO_EXCEPTION_SENTINEL = {}; // All of the following functions must throw an AssertionError\n// when a corresponding condition is not met, with a message that\n// may be undefined if not provided. All assertion methods provide\n// both the actual and expected values to the assertion error for\n// display purposes.\n\nfunction innerFail(obj) {\n if (obj.message instanceof Error) throw obj.message;\n throw new AssertionError(obj);\n}\n\nfunction fail(actual, expected, message, operator, stackStartFn) {\n var argsLen = arguments.length;\n var internalMessage;\n\n if (argsLen === 0) {\n internalMessage = 'Failed';\n } else if (argsLen === 1) {\n message = actual;\n actual = undefined;\n } else {\n if (warned === false) {\n warned = true;\n var warn = process.emitWarning ? process.emitWarning : console.warn.bind(console);\n warn('assert.fail() with more than one argument is deprecated. ' + 'Please use assert.strictEqual() instead or only pass a message.', 'DeprecationWarning', 'DEP0094');\n }\n\n if (argsLen === 2) operator = '!=';\n }\n\n if (message instanceof Error) throw message;\n var errArgs = {\n actual: actual,\n expected: expected,\n operator: operator === undefined ? 'fail' : operator,\n stackStartFn: stackStartFn || fail\n };\n\n if (message !== undefined) {\n errArgs.message = message;\n }\n\n var err = new AssertionError(errArgs);\n\n if (internalMessage) {\n err.message = internalMessage;\n err.generatedMessage = true;\n }\n\n throw err;\n}\n\nassert.fail = fail; // The AssertionError is defined in internal/error.\n\nassert.AssertionError = AssertionError;\n\nfunction innerOk(fn, argLen, value, message) {\n if (!value) {\n var generatedMessage = false;\n\n if (argLen === 0) {\n generatedMessage = true;\n message = 'No value argument passed to `assert.ok()`';\n } else if (message instanceof Error) {\n throw message;\n }\n\n var err = new AssertionError({\n actual: value,\n expected: true,\n message: message,\n operator: '==',\n stackStartFn: fn\n });\n err.generatedMessage = generatedMessage;\n throw err;\n }\n} // Pure assertion tests whether a value is truthy, as determined\n// by !!value.\n\n\nfunction ok() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n innerOk.apply(void 0, [ok, args.length].concat(args));\n}\n\nassert.ok = ok; // The equality assertion tests shallow, coercive equality with ==.\n\n/* eslint-disable no-restricted-properties */\n\nassert.equal = function equal(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n } // eslint-disable-next-line eqeqeq\n\n\n if (actual != expected) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: '==',\n stackStartFn: equal\n });\n }\n}; // The non-equality assertion tests for whether two objects are not\n// equal with !=.\n\n\nassert.notEqual = function notEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n } // eslint-disable-next-line eqeqeq\n\n\n if (actual == expected) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: '!=',\n stackStartFn: notEqual\n });\n }\n}; // The equivalence assertion tests a deep equality relation.\n\n\nassert.deepEqual = function deepEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n\n if (!isDeepEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'deepEqual',\n stackStartFn: deepEqual\n });\n }\n}; // The non-equivalence assertion tests for any deep inequality.\n\n\nassert.notDeepEqual = function notDeepEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n\n if (isDeepEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notDeepEqual',\n stackStartFn: notDeepEqual\n });\n }\n};\n/* eslint-enable */\n\n\nassert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n\n if (!isDeepStrictEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'deepStrictEqual',\n stackStartFn: deepStrictEqual\n });\n }\n};\n\nassert.notDeepStrictEqual = notDeepStrictEqual;\n\nfunction notDeepStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n\n if (isDeepStrictEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notDeepStrictEqual',\n stackStartFn: notDeepStrictEqual\n });\n }\n}\n\nassert.strictEqual = function strictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (!objectIs(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'strictEqual',\n stackStartFn: strictEqual\n });\n }\n};\n\nassert.notStrictEqual = function notStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (objectIs(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notStrictEqual',\n stackStartFn: notStrictEqual\n });\n }\n};\n\nvar Comparison = function Comparison(obj, keys, actual) {\n var _this = this;\n\n _classCallCheck(this, Comparison);\n\n keys.forEach(function (key) {\n if (key in obj) {\n if (actual !== undefined && typeof actual[key] === 'string' && isRegExp(obj[key]) && obj[key].test(actual[key])) {\n _this[key] = actual[key];\n } else {\n _this[key] = obj[key];\n }\n }\n });\n};\n\nfunction compareExceptionKey(actual, expected, key, message, keys, fn) {\n if (!(key in actual) || !isDeepStrictEqual(actual[key], expected[key])) {\n if (!message) {\n // Create placeholder objects to create a nice output.\n var a = new Comparison(actual, keys);\n var b = new Comparison(expected, keys, actual);\n var err = new AssertionError({\n actual: a,\n expected: b,\n operator: 'deepStrictEqual',\n stackStartFn: fn\n });\n err.actual = actual;\n err.expected = expected;\n err.operator = fn.name;\n throw err;\n }\n\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: fn.name,\n stackStartFn: fn\n });\n }\n}\n\nfunction expectedException(actual, expected, msg, fn) {\n if (typeof expected !== 'function') {\n if (isRegExp(expected)) return expected.test(actual); // assert.doesNotThrow does not accept objects.\n\n if (arguments.length === 2) {\n throw new ERR_INVALID_ARG_TYPE('expected', ['Function', 'RegExp'], expected);\n } // Handle primitives properly.\n\n\n if (_typeof(actual) !== 'object' || actual === null) {\n var err = new AssertionError({\n actual: actual,\n expected: expected,\n message: msg,\n operator: 'deepStrictEqual',\n stackStartFn: fn\n });\n err.operator = fn.name;\n throw err;\n }\n\n var keys = Object.keys(expected); // Special handle errors to make sure the name and the message are compared\n // as well.\n\n if (expected instanceof Error) {\n keys.push('name', 'message');\n } else if (keys.length === 0) {\n throw new ERR_INVALID_ARG_VALUE('error', expected, 'may not be an empty object');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n keys.forEach(function (key) {\n if (typeof actual[key] === 'string' && isRegExp(expected[key]) && expected[key].test(actual[key])) {\n return;\n }\n\n compareExceptionKey(actual, expected, key, msg, keys, fn);\n });\n return true;\n } // Guard instanceof against arrow functions as they don't have a prototype.\n\n\n if (expected.prototype !== undefined && actual instanceof expected) {\n return true;\n }\n\n if (Error.isPrototypeOf(expected)) {\n return false;\n }\n\n return expected.call({}, actual) === true;\n}\n\nfunction getActual(fn) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', 'Function', fn);\n }\n\n try {\n fn();\n } catch (e) {\n return e;\n }\n\n return NO_EXCEPTION_SENTINEL;\n}\n\nfunction checkIsPromise(obj) {\n // Accept native ES6 promises and promises that are implemented in a similar\n // way. Do not accept thenables that use a function as `obj` and that have no\n // `catch` handler.\n // TODO: thenables are checked up until they have the correct methods,\n // but according to documentation, the `then` method should receive\n // the `fulfill` and `reject` arguments as well or it may be never resolved.\n return isPromise(obj) || obj !== null && _typeof(obj) === 'object' && typeof obj.then === 'function' && typeof obj.catch === 'function';\n}\n\nfunction waitForActual(promiseFn) {\n return Promise.resolve().then(function () {\n var resultPromise;\n\n if (typeof promiseFn === 'function') {\n // Return a rejected promise if `promiseFn` throws synchronously.\n resultPromise = promiseFn(); // Fail in case no promise is returned.\n\n if (!checkIsPromise(resultPromise)) {\n throw new ERR_INVALID_RETURN_VALUE('instance of Promise', 'promiseFn', resultPromise);\n }\n } else if (checkIsPromise(promiseFn)) {\n resultPromise = promiseFn;\n } else {\n throw new ERR_INVALID_ARG_TYPE('promiseFn', ['Function', 'Promise'], promiseFn);\n }\n\n return Promise.resolve().then(function () {\n return resultPromise;\n }).then(function () {\n return NO_EXCEPTION_SENTINEL;\n }).catch(function (e) {\n return e;\n });\n });\n}\n\nfunction expectsError(stackStartFn, actual, error, message) {\n if (typeof error === 'string') {\n if (arguments.length === 4) {\n throw new ERR_INVALID_ARG_TYPE('error', ['Object', 'Error', 'Function', 'RegExp'], error);\n }\n\n if (_typeof(actual) === 'object' && actual !== null) {\n if (actual.message === error) {\n throw new ERR_AMBIGUOUS_ARGUMENT('error/message', \"The error message \\\"\".concat(actual.message, \"\\\" is identical to the message.\"));\n }\n } else if (actual === error) {\n throw new ERR_AMBIGUOUS_ARGUMENT('error/message', \"The error \\\"\".concat(actual, \"\\\" is identical to the message.\"));\n }\n\n message = error;\n error = undefined;\n } else if (error != null && _typeof(error) !== 'object' && typeof error !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('error', ['Object', 'Error', 'Function', 'RegExp'], error);\n }\n\n if (actual === NO_EXCEPTION_SENTINEL) {\n var details = '';\n\n if (error && error.name) {\n details += \" (\".concat(error.name, \")\");\n }\n\n details += message ? \": \".concat(message) : '.';\n var fnType = stackStartFn.name === 'rejects' ? 'rejection' : 'exception';\n innerFail({\n actual: undefined,\n expected: error,\n operator: stackStartFn.name,\n message: \"Missing expected \".concat(fnType).concat(details),\n stackStartFn: stackStartFn\n });\n }\n\n if (error && !expectedException(actual, error, message, stackStartFn)) {\n throw actual;\n }\n}\n\nfunction expectsNoError(stackStartFn, actual, error, message) {\n if (actual === NO_EXCEPTION_SENTINEL) return;\n\n if (typeof error === 'string') {\n message = error;\n error = undefined;\n }\n\n if (!error || expectedException(actual, error)) {\n var details = message ? \": \".concat(message) : '.';\n var fnType = stackStartFn.name === 'doesNotReject' ? 'rejection' : 'exception';\n innerFail({\n actual: actual,\n expected: error,\n operator: stackStartFn.name,\n message: \"Got unwanted \".concat(fnType).concat(details, \"\\n\") + \"Actual message: \\\"\".concat(actual && actual.message, \"\\\"\"),\n stackStartFn: stackStartFn\n });\n }\n\n throw actual;\n}\n\nassert.throws = function throws(promiseFn) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n expectsError.apply(void 0, [throws, getActual(promiseFn)].concat(args));\n};\n\nassert.rejects = function rejects(promiseFn) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n\n return waitForActual(promiseFn).then(function (result) {\n return expectsError.apply(void 0, [rejects, result].concat(args));\n });\n};\n\nassert.doesNotThrow = function doesNotThrow(fn) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n\n expectsNoError.apply(void 0, [doesNotThrow, getActual(fn)].concat(args));\n};\n\nassert.doesNotReject = function doesNotReject(fn) {\n for (var _len5 = arguments.length, args = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {\n args[_key5 - 1] = arguments[_key5];\n }\n\n return waitForActual(fn).then(function (result) {\n return expectsNoError.apply(void 0, [doesNotReject, result].concat(args));\n });\n};\n\nassert.ifError = function ifError(err) {\n if (err !== null && err !== undefined) {\n var message = 'ifError got unwanted exception: ';\n\n if (_typeof(err) === 'object' && typeof err.message === 'string') {\n if (err.message.length === 0 && err.constructor) {\n message += err.constructor.name;\n } else {\n message += err.message;\n }\n } else {\n message += inspect(err);\n }\n\n var newErr = new AssertionError({\n actual: err,\n expected: null,\n operator: 'ifError',\n message: message,\n stackStartFn: ifError\n }); // Make sure we actually have a stack trace!\n\n var origStack = err.stack;\n\n if (typeof origStack === 'string') {\n // This will remove any duplicated frames from the error frames taken\n // from within `ifError` and add the original error frames to the newly\n // created ones.\n var tmp2 = origStack.split('\\n');\n tmp2.shift(); // Filter all frames existing in err.stack.\n\n var tmp1 = newErr.stack.split('\\n');\n\n for (var i = 0; i < tmp2.length; i++) {\n // Find the first occurrence of the frame.\n var pos = tmp1.indexOf(tmp2[i]);\n\n if (pos !== -1) {\n // Only keep new frames.\n tmp1 = tmp1.slice(0, pos);\n break;\n }\n }\n\n newErr.stack = \"\".concat(tmp1.join('\\n'), \"\\n\").concat(tmp2.join('\\n'));\n }\n\n throw newErr;\n }\n}; // Expose a strict only variant of assert\n\n\nfunction strict() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n innerOk.apply(void 0, [strict, args.length].concat(args));\n}\n\nassert.strict = objectAssign(strict, assert, {\n equal: assert.strictEqual,\n deepEqual: assert.deepStrictEqual,\n notEqual: assert.notStrictEqual,\n notDeepEqual: assert.notDeepStrictEqual\n});\nassert.strict.strict = assert.strict;","// Currently in sync with Node.js lib/internal/assert/assertion_error.js\n// https://github.com/nodejs/node/commit/0817840f775032169ddd70c85ac059f18ffcc81c\n'use strict';\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nfunction isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nvar _require = require('util/'),\n inspect = _require.inspect;\n\nvar _require2 = require('../errors'),\n ERR_INVALID_ARG_TYPE = _require2.codes.ERR_INVALID_ARG_TYPE; // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/repeat\n\n\nfunction repeat(str, count) {\n count = Math.floor(count);\n if (str.length == 0 || count == 0) return '';\n var maxCount = str.length * count;\n count = Math.floor(Math.log(count) / Math.log(2));\n\n while (count) {\n str += str;\n count--;\n }\n\n str += str.substring(0, maxCount - str.length);\n return str;\n}\n\nvar blue = '';\nvar green = '';\nvar red = '';\nvar white = '';\nvar kReadableOperator = {\n deepStrictEqual: 'Expected values to be strictly deep-equal:',\n strictEqual: 'Expected values to be strictly equal:',\n strictEqualObject: 'Expected \"actual\" to be reference-equal to \"expected\":',\n deepEqual: 'Expected values to be loosely deep-equal:',\n equal: 'Expected values to be loosely equal:',\n notDeepStrictEqual: 'Expected \"actual\" not to be strictly deep-equal to:',\n notStrictEqual: 'Expected \"actual\" to be strictly unequal to:',\n notStrictEqualObject: 'Expected \"actual\" not to be reference-equal to \"expected\":',\n notDeepEqual: 'Expected \"actual\" not to be loosely deep-equal to:',\n notEqual: 'Expected \"actual\" to be loosely unequal to:',\n notIdentical: 'Values identical but not reference-equal:'\n}; // Comparing short primitives should just show === / !== instead of using the\n// diff.\n\nvar kMaxShortLength = 10;\n\nfunction copyError(source) {\n var keys = Object.keys(source);\n var target = Object.create(Object.getPrototypeOf(source));\n keys.forEach(function (key) {\n target[key] = source[key];\n });\n Object.defineProperty(target, 'message', {\n value: source.message\n });\n return target;\n}\n\nfunction inspectValue(val) {\n // The util.inspect default values could be changed. This makes sure the\n // error messages contain the necessary information nevertheless.\n return inspect(val, {\n compact: false,\n customInspect: false,\n depth: 1000,\n maxArrayLength: Infinity,\n // Assert compares only enumerable properties (with a few exceptions).\n showHidden: false,\n // Having a long line as error is better than wrapping the line for\n // comparison for now.\n // TODO(BridgeAR): `breakLength` should be limited as soon as soon as we\n // have meta information about the inspected properties (i.e., know where\n // in what line the property starts and ends).\n breakLength: Infinity,\n // Assert does not detect proxies currently.\n showProxy: false,\n sorted: true,\n // Inspect getters as we also check them when comparing entries.\n getters: true\n });\n}\n\nfunction createErrDiff(actual, expected, operator) {\n var other = '';\n var res = '';\n var lastPos = 0;\n var end = '';\n var skipped = false;\n var actualInspected = inspectValue(actual);\n var actualLines = actualInspected.split('\\n');\n var expectedLines = inspectValue(expected).split('\\n');\n var i = 0;\n var indicator = ''; // In case both values are objects explicitly mark them as not reference equal\n // for the `strictEqual` operator.\n\n if (operator === 'strictEqual' && _typeof(actual) === 'object' && _typeof(expected) === 'object' && actual !== null && expected !== null) {\n operator = 'strictEqualObject';\n } // If \"actual\" and \"expected\" fit on a single line and they are not strictly\n // equal, check further special handling.\n\n\n if (actualLines.length === 1 && expectedLines.length === 1 && actualLines[0] !== expectedLines[0]) {\n var inputLength = actualLines[0].length + expectedLines[0].length; // If the character length of \"actual\" and \"expected\" together is less than\n // kMaxShortLength and if neither is an object and at least one of them is\n // not `zero`, use the strict equal comparison to visualize the output.\n\n if (inputLength <= kMaxShortLength) {\n if ((_typeof(actual) !== 'object' || actual === null) && (_typeof(expected) !== 'object' || expected === null) && (actual !== 0 || expected !== 0)) {\n // -0 === +0\n return \"\".concat(kReadableOperator[operator], \"\\n\\n\") + \"\".concat(actualLines[0], \" !== \").concat(expectedLines[0], \"\\n\");\n }\n } else if (operator !== 'strictEqualObject') {\n // If the stderr is a tty and the input length is lower than the current\n // columns per line, add a mismatch indicator below the output. If it is\n // not a tty, use a default value of 80 characters.\n var maxLength = process.stderr && process.stderr.isTTY ? process.stderr.columns : 80;\n\n if (inputLength < maxLength) {\n while (actualLines[0][i] === expectedLines[0][i]) {\n i++;\n } // Ignore the first characters.\n\n\n if (i > 2) {\n // Add position indicator for the first mismatch in case it is a\n // single line and the input length is less than the column length.\n indicator = \"\\n \".concat(repeat(' ', i), \"^\");\n i = 0;\n }\n }\n }\n } // Remove all ending lines that match (this optimizes the output for\n // readability by reducing the number of total changed lines).\n\n\n var a = actualLines[actualLines.length - 1];\n var b = expectedLines[expectedLines.length - 1];\n\n while (a === b) {\n if (i++ < 2) {\n end = \"\\n \".concat(a).concat(end);\n } else {\n other = a;\n }\n\n actualLines.pop();\n expectedLines.pop();\n if (actualLines.length === 0 || expectedLines.length === 0) break;\n a = actualLines[actualLines.length - 1];\n b = expectedLines[expectedLines.length - 1];\n }\n\n var maxLines = Math.max(actualLines.length, expectedLines.length); // Strict equal with identical objects that are not identical by reference.\n // E.g., assert.deepStrictEqual({ a: Symbol() }, { a: Symbol() })\n\n if (maxLines === 0) {\n // We have to get the result again. The lines were all removed before.\n var _actualLines = actualInspected.split('\\n'); // Only remove lines in case it makes sense to collapse those.\n // TODO: Accept env to always show the full error.\n\n\n if (_actualLines.length > 30) {\n _actualLines[26] = \"\".concat(blue, \"...\").concat(white);\n\n while (_actualLines.length > 27) {\n _actualLines.pop();\n }\n }\n\n return \"\".concat(kReadableOperator.notIdentical, \"\\n\\n\").concat(_actualLines.join('\\n'), \"\\n\");\n }\n\n if (i > 3) {\n end = \"\\n\".concat(blue, \"...\").concat(white).concat(end);\n skipped = true;\n }\n\n if (other !== '') {\n end = \"\\n \".concat(other).concat(end);\n other = '';\n }\n\n var printedLines = 0;\n var msg = kReadableOperator[operator] + \"\\n\".concat(green, \"+ actual\").concat(white, \" \").concat(red, \"- expected\").concat(white);\n var skippedMsg = \" \".concat(blue, \"...\").concat(white, \" Lines skipped\");\n\n for (i = 0; i < maxLines; i++) {\n // Only extra expected lines exist\n var cur = i - lastPos;\n\n if (actualLines.length < i + 1) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(expectedLines[i - 2]);\n printedLines++;\n }\n\n res += \"\\n \".concat(expectedLines[i - 1]);\n printedLines++;\n } // Mark the current line as the last diverging one.\n\n\n lastPos = i; // Add the expected line to the cache.\n\n other += \"\\n\".concat(red, \"-\").concat(white, \" \").concat(expectedLines[i]);\n printedLines++; // Only extra actual lines exist\n } else if (expectedLines.length < i + 1) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(actualLines[i - 2]);\n printedLines++;\n }\n\n res += \"\\n \".concat(actualLines[i - 1]);\n printedLines++;\n } // Mark the current line as the last diverging one.\n\n\n lastPos = i; // Add the actual line to the result.\n\n res += \"\\n\".concat(green, \"+\").concat(white, \" \").concat(actualLines[i]);\n printedLines++; // Lines diverge\n } else {\n var expectedLine = expectedLines[i];\n var actualLine = actualLines[i]; // If the lines diverge, specifically check for lines that only diverge by\n // a trailing comma. In that case it is actually identical and we should\n // mark it as such.\n\n var divergingLines = actualLine !== expectedLine && (!endsWith(actualLine, ',') || actualLine.slice(0, -1) !== expectedLine); // If the expected line has a trailing comma but is otherwise identical,\n // add a comma at the end of the actual line. Otherwise the output could\n // look weird as in:\n //\n // [\n // 1 // No comma at the end!\n // + 2\n // ]\n //\n\n if (divergingLines && endsWith(expectedLine, ',') && expectedLine.slice(0, -1) === actualLine) {\n divergingLines = false;\n actualLine += ',';\n }\n\n if (divergingLines) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(actualLines[i - 2]);\n printedLines++;\n }\n\n res += \"\\n \".concat(actualLines[i - 1]);\n printedLines++;\n } // Mark the current line as the last diverging one.\n\n\n lastPos = i; // Add the actual line to the result and cache the expected diverging\n // line so consecutive diverging lines show up as +++--- and not +-+-+-.\n\n res += \"\\n\".concat(green, \"+\").concat(white, \" \").concat(actualLine);\n other += \"\\n\".concat(red, \"-\").concat(white, \" \").concat(expectedLine);\n printedLines += 2; // Lines are identical\n } else {\n // Add all cached information to the result before adding other things\n // and reset the cache.\n res += other;\n other = ''; // If the last diverging line is exactly one line above or if it is the\n // very first line, add the line to the result.\n\n if (cur === 1 || i === 0) {\n res += \"\\n \".concat(actualLine);\n printedLines++;\n }\n }\n } // Inspected object to big (Show ~20 rows max)\n\n\n if (printedLines > 20 && i < maxLines - 2) {\n return \"\".concat(msg).concat(skippedMsg, \"\\n\").concat(res, \"\\n\").concat(blue, \"...\").concat(white).concat(other, \"\\n\") + \"\".concat(blue, \"...\").concat(white);\n }\n }\n\n return \"\".concat(msg).concat(skipped ? skippedMsg : '', \"\\n\").concat(res).concat(other).concat(end).concat(indicator);\n}\n\nvar AssertionError = /*#__PURE__*/function (_Error) {\n _inherits(AssertionError, _Error);\n\n function AssertionError(options) {\n var _this;\n\n _classCallCheck(this, AssertionError);\n\n if (_typeof(options) !== 'object' || options === null) {\n throw new ERR_INVALID_ARG_TYPE('options', 'Object', options);\n }\n\n var message = options.message,\n operator = options.operator,\n stackStartFn = options.stackStartFn;\n var actual = options.actual,\n expected = options.expected;\n var limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 0;\n\n if (message != null) {\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, String(message)));\n } else {\n if (process.stderr && process.stderr.isTTY) {\n // Reset on each call to make sure we handle dynamically set environment\n // variables correct.\n if (process.stderr && process.stderr.getColorDepth && process.stderr.getColorDepth() !== 1) {\n blue = \"\\x1B[34m\";\n green = \"\\x1B[32m\";\n white = \"\\x1B[39m\";\n red = \"\\x1B[31m\";\n } else {\n blue = '';\n green = '';\n white = '';\n red = '';\n }\n } // Prevent the error stack from being visible by duplicating the error\n // in a very close way to the original in case both sides are actually\n // instances of Error.\n\n\n if (_typeof(actual) === 'object' && actual !== null && _typeof(expected) === 'object' && expected !== null && 'stack' in actual && actual instanceof Error && 'stack' in expected && expected instanceof Error) {\n actual = copyError(actual);\n expected = copyError(expected);\n }\n\n if (operator === 'deepStrictEqual' || operator === 'strictEqual') {\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, createErrDiff(actual, expected, operator)));\n } else if (operator === 'notDeepStrictEqual' || operator === 'notStrictEqual') {\n // In case the objects are equal but the operator requires unequal, show\n // the first object and say A equals B\n var base = kReadableOperator[operator];\n var res = inspectValue(actual).split('\\n'); // In case \"actual\" is an object, it should not be reference equal.\n\n if (operator === 'notStrictEqual' && _typeof(actual) === 'object' && actual !== null) {\n base = kReadableOperator.notStrictEqualObject;\n } // Only remove lines in case it makes sense to collapse those.\n // TODO: Accept env to always show the full error.\n\n\n if (res.length > 30) {\n res[26] = \"\".concat(blue, \"...\").concat(white);\n\n while (res.length > 27) {\n res.pop();\n }\n } // Only print a single input.\n\n\n if (res.length === 1) {\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, \"\".concat(base, \" \").concat(res[0])));\n } else {\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, \"\".concat(base, \"\\n\\n\").concat(res.join('\\n'), \"\\n\")));\n }\n } else {\n var _res = inspectValue(actual);\n\n var other = '';\n var knownOperators = kReadableOperator[operator];\n\n if (operator === 'notDeepEqual' || operator === 'notEqual') {\n _res = \"\".concat(kReadableOperator[operator], \"\\n\\n\").concat(_res);\n\n if (_res.length > 1024) {\n _res = \"\".concat(_res.slice(0, 1021), \"...\");\n }\n } else {\n other = \"\".concat(inspectValue(expected));\n\n if (_res.length > 512) {\n _res = \"\".concat(_res.slice(0, 509), \"...\");\n }\n\n if (other.length > 512) {\n other = \"\".concat(other.slice(0, 509), \"...\");\n }\n\n if (operator === 'deepEqual' || operator === 'equal') {\n _res = \"\".concat(knownOperators, \"\\n\\n\").concat(_res, \"\\n\\nshould equal\\n\\n\");\n } else {\n other = \" \".concat(operator, \" \").concat(other);\n }\n }\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, \"\".concat(_res).concat(other)));\n }\n }\n\n Error.stackTraceLimit = limit;\n _this.generatedMessage = !message;\n Object.defineProperty(_assertThisInitialized(_this), 'name', {\n value: 'AssertionError [ERR_ASSERTION]',\n enumerable: false,\n writable: true,\n configurable: true\n });\n _this.code = 'ERR_ASSERTION';\n _this.actual = actual;\n _this.expected = expected;\n _this.operator = operator;\n\n if (Error.captureStackTrace) {\n // eslint-disable-next-line no-restricted-syntax\n Error.captureStackTrace(_assertThisInitialized(_this), stackStartFn);\n } // Create error message including the error code in the name.\n\n\n _this.stack; // Reset the name.\n\n _this.name = 'AssertionError';\n return _possibleConstructorReturn(_this);\n }\n\n _createClass(AssertionError, [{\n key: \"toString\",\n value: function toString() {\n return \"\".concat(this.name, \" [\").concat(this.code, \"]: \").concat(this.message);\n }\n }, {\n key: inspect.custom,\n value: function value(recurseTimes, ctx) {\n // This limits the `actual` and `expected` property default inspection to\n // the minimum depth. Otherwise those values would be too verbose compared\n // to the actual error message which contains a combined view of these two\n // input values.\n return inspect(this, _objectSpread({}, ctx, {\n customInspect: false,\n depth: 0\n }));\n }\n }]);\n\n return AssertionError;\n}(_wrapNativeSuper(Error));\n\nmodule.exports = AssertionError;","// Currently in sync with Node.js lib/internal/errors.js\n// https://github.com/nodejs/node/commit/3b044962c48fe313905877a96b5d0894a5404f6f\n\n/* eslint node-core/documented-errors: \"error\" */\n\n/* eslint node-core/alphabetize-errors: \"error\" */\n\n/* eslint node-core/prefer-util-format-errors: \"error\" */\n'use strict'; // The whole point behind this internal module is to allow Node.js to no\n// longer be forced to treat every error message change as a semver-major\n// change. The NodeError classes here all expose a `code` property whose\n// value statically and permanently identifies the error. While the error\n// message may change, the code should not.\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nvar codes = {}; // Lazy loaded\n\nvar assert;\nvar util;\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError = /*#__PURE__*/function (_Base) {\n _inherits(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n var _this;\n\n _classCallCheck(this, NodeError);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(NodeError).call(this, getMessage(arg1, arg2, arg3)));\n _this.code = code;\n return _this;\n }\n\n return NodeError;\n }(Base);\n\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_AMBIGUOUS_ARGUMENT', 'The \"%s\" argument is ambiguous. %s', TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n if (assert === undefined) assert = require('../assert');\n assert(typeof name === 'string', \"'name' must be a string\"); // determiner: 'must be' or 'must not be'\n\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } // TODO(BridgeAR): Improve the output by showing `null` and similar.\n\n\n msg += \". Received type \".concat(_typeof(actual));\n return msg;\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_VALUE', function (name, value) {\n var reason = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'is invalid';\n if (util === undefined) util = require('util/');\n var inspected = util.inspect(value);\n\n if (inspected.length > 128) {\n inspected = \"\".concat(inspected.slice(0, 128), \"...\");\n }\n\n return \"The argument '\".concat(name, \"' \").concat(reason, \". Received \").concat(inspected);\n}, TypeError, RangeError);\ncreateErrorType('ERR_INVALID_RETURN_VALUE', function (input, name, value) {\n var type;\n\n if (value && value.constructor && value.constructor.name) {\n type = \"instance of \".concat(value.constructor.name);\n } else {\n type = \"type \".concat(_typeof(value));\n }\n\n return \"Expected \".concat(input, \" to be returned from the \\\"\").concat(name, \"\\\"\") + \" function but got \".concat(type, \".\");\n}, TypeError);\ncreateErrorType('ERR_MISSING_ARGS', function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (assert === undefined) assert = require('../assert');\n assert(args.length > 0, 'At least one arg needs to be specified');\n var msg = 'The ';\n var len = args.length;\n args = args.map(function (a) {\n return \"\\\"\".concat(a, \"\\\"\");\n });\n\n switch (len) {\n case 1:\n msg += \"\".concat(args[0], \" argument\");\n break;\n\n case 2:\n msg += \"\".concat(args[0], \" and \").concat(args[1], \" arguments\");\n break;\n\n default:\n msg += args.slice(0, len - 1).join(', ');\n msg += \", and \".concat(args[len - 1], \" arguments\");\n break;\n }\n\n return \"\".concat(msg, \" must be specified\");\n}, TypeError);\nmodule.exports.codes = codes;","// Currently in sync with Node.js lib/internal/util/comparisons.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n'use strict';\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nvar regexFlagsSupported = /a/g.flags !== undefined;\n\nvar arrayFromSet = function arrayFromSet(set) {\n var array = [];\n set.forEach(function (value) {\n return array.push(value);\n });\n return array;\n};\n\nvar arrayFromMap = function arrayFromMap(map) {\n var array = [];\n map.forEach(function (value, key) {\n return array.push([key, value]);\n });\n return array;\n};\n\nvar objectIs = Object.is ? Object.is : require('object-is');\nvar objectGetOwnPropertySymbols = Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols : function () {\n return [];\n};\nvar numberIsNaN = Number.isNaN ? Number.isNaN : require('is-nan');\n\nfunction uncurryThis(f) {\n return f.call.bind(f);\n}\n\nvar hasOwnProperty = uncurryThis(Object.prototype.hasOwnProperty);\nvar propertyIsEnumerable = uncurryThis(Object.prototype.propertyIsEnumerable);\nvar objectToString = uncurryThis(Object.prototype.toString);\n\nvar _require$types = require('util/').types,\n isAnyArrayBuffer = _require$types.isAnyArrayBuffer,\n isArrayBufferView = _require$types.isArrayBufferView,\n isDate = _require$types.isDate,\n isMap = _require$types.isMap,\n isRegExp = _require$types.isRegExp,\n isSet = _require$types.isSet,\n isNativeError = _require$types.isNativeError,\n isBoxedPrimitive = _require$types.isBoxedPrimitive,\n isNumberObject = _require$types.isNumberObject,\n isStringObject = _require$types.isStringObject,\n isBooleanObject = _require$types.isBooleanObject,\n isBigIntObject = _require$types.isBigIntObject,\n isSymbolObject = _require$types.isSymbolObject,\n isFloat32Array = _require$types.isFloat32Array,\n isFloat64Array = _require$types.isFloat64Array;\n\nfunction isNonIndex(key) {\n if (key.length === 0 || key.length > 10) return true;\n\n for (var i = 0; i < key.length; i++) {\n var code = key.charCodeAt(i);\n if (code < 48 || code > 57) return true;\n } // The maximum size for an array is 2 ** 32 -1.\n\n\n return key.length === 10 && key >= Math.pow(2, 32);\n}\n\nfunction getOwnNonIndexProperties(value) {\n return Object.keys(value).filter(isNonIndex).concat(objectGetOwnPropertySymbols(value).filter(Object.prototype.propertyIsEnumerable.bind(value)));\n} // Taken from https://github.com/feross/buffer/blob/680e9e5e488f22aac27599a57dc844a6315928dd/index.js\n// original notice:\n\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n\nfunction compare(a, b) {\n if (a === b) {\n return 0;\n }\n\n var x = a.length;\n var y = b.length;\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n\n if (x < y) {\n return -1;\n }\n\n if (y < x) {\n return 1;\n }\n\n return 0;\n}\n\nvar ONLY_ENUMERABLE = undefined;\nvar kStrict = true;\nvar kLoose = false;\nvar kNoIterator = 0;\nvar kIsArray = 1;\nvar kIsSet = 2;\nvar kIsMap = 3; // Check if they have the same source and flags\n\nfunction areSimilarRegExps(a, b) {\n return regexFlagsSupported ? a.source === b.source && a.flags === b.flags : RegExp.prototype.toString.call(a) === RegExp.prototype.toString.call(b);\n}\n\nfunction areSimilarFloatArrays(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n\n for (var offset = 0; offset < a.byteLength; offset++) {\n if (a[offset] !== b[offset]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction areSimilarTypedArrays(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n\n return compare(new Uint8Array(a.buffer, a.byteOffset, a.byteLength), new Uint8Array(b.buffer, b.byteOffset, b.byteLength)) === 0;\n}\n\nfunction areEqualArrayBuffers(buf1, buf2) {\n return buf1.byteLength === buf2.byteLength && compare(new Uint8Array(buf1), new Uint8Array(buf2)) === 0;\n}\n\nfunction isEqualBoxedPrimitive(val1, val2) {\n if (isNumberObject(val1)) {\n return isNumberObject(val2) && objectIs(Number.prototype.valueOf.call(val1), Number.prototype.valueOf.call(val2));\n }\n\n if (isStringObject(val1)) {\n return isStringObject(val2) && String.prototype.valueOf.call(val1) === String.prototype.valueOf.call(val2);\n }\n\n if (isBooleanObject(val1)) {\n return isBooleanObject(val2) && Boolean.prototype.valueOf.call(val1) === Boolean.prototype.valueOf.call(val2);\n }\n\n if (isBigIntObject(val1)) {\n return isBigIntObject(val2) && BigInt.prototype.valueOf.call(val1) === BigInt.prototype.valueOf.call(val2);\n }\n\n return isSymbolObject(val2) && Symbol.prototype.valueOf.call(val1) === Symbol.prototype.valueOf.call(val2);\n} // Notes: Type tags are historical [[Class]] properties that can be set by\n// FunctionTemplate::SetClassName() in C++ or Symbol.toStringTag in JS\n// and retrieved using Object.prototype.toString.call(obj) in JS\n// See https://tc39.github.io/ecma262/#sec-object.prototype.tostring\n// for a list of tags pre-defined in the spec.\n// There are some unspecified tags in the wild too (e.g. typed array tags).\n// Since tags can be altered, they only serve fast failures\n//\n// Typed arrays and buffers are checked by comparing the content in their\n// underlying ArrayBuffer. This optimization requires that it's\n// reasonable to interpret their underlying memory in the same way,\n// which is checked by comparing their type tags.\n// (e.g. a Uint8Array and a Uint16Array with the same memory content\n// could still be different because they will be interpreted differently).\n//\n// For strict comparison, objects should have\n// a) The same built-in type tags\n// b) The same prototypes.\n\n\nfunction innerDeepEqual(val1, val2, strict, memos) {\n // All identical values are equivalent, as determined by ===.\n if (val1 === val2) {\n if (val1 !== 0) return true;\n return strict ? objectIs(val1, val2) : true;\n } // Check more closely if val1 and val2 are equal.\n\n\n if (strict) {\n if (_typeof(val1) !== 'object') {\n return typeof val1 === 'number' && numberIsNaN(val1) && numberIsNaN(val2);\n }\n\n if (_typeof(val2) !== 'object' || val1 === null || val2 === null) {\n return false;\n }\n\n if (Object.getPrototypeOf(val1) !== Object.getPrototypeOf(val2)) {\n return false;\n }\n } else {\n if (val1 === null || _typeof(val1) !== 'object') {\n if (val2 === null || _typeof(val2) !== 'object') {\n // eslint-disable-next-line eqeqeq\n return val1 == val2;\n }\n\n return false;\n }\n\n if (val2 === null || _typeof(val2) !== 'object') {\n return false;\n }\n }\n\n var val1Tag = objectToString(val1);\n var val2Tag = objectToString(val2);\n\n if (val1Tag !== val2Tag) {\n return false;\n }\n\n if (Array.isArray(val1)) {\n // Check for sparse arrays and general fast path\n if (val1.length !== val2.length) {\n return false;\n }\n\n var keys1 = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE);\n var keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kIsArray, keys1);\n } // [browserify] This triggers on certain types in IE (Map/Set) so we don't\n // wan't to early return out of the rest of the checks. However we can check\n // if the second value is one of these values and the first isn't.\n\n\n if (val1Tag === '[object Object]') {\n // return keyCheck(val1, val2, strict, memos, kNoIterator);\n if (!isMap(val1) && isMap(val2) || !isSet(val1) && isSet(val2)) {\n return false;\n }\n }\n\n if (isDate(val1)) {\n if (!isDate(val2) || Date.prototype.getTime.call(val1) !== Date.prototype.getTime.call(val2)) {\n return false;\n }\n } else if (isRegExp(val1)) {\n if (!isRegExp(val2) || !areSimilarRegExps(val1, val2)) {\n return false;\n }\n } else if (isNativeError(val1) || val1 instanceof Error) {\n // Do not compare the stack as it might differ even though the error itself\n // is otherwise identical.\n if (val1.message !== val2.message || val1.name !== val2.name) {\n return false;\n }\n } else if (isArrayBufferView(val1)) {\n if (!strict && (isFloat32Array(val1) || isFloat64Array(val1))) {\n if (!areSimilarFloatArrays(val1, val2)) {\n return false;\n }\n } else if (!areSimilarTypedArrays(val1, val2)) {\n return false;\n } // Buffer.compare returns true, so val1.length === val2.length. If they both\n // only contain numeric keys, we don't need to exam further than checking\n // the symbols.\n\n\n var _keys = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE);\n\n var _keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE);\n\n if (_keys.length !== _keys2.length) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kNoIterator, _keys);\n } else if (isSet(val1)) {\n if (!isSet(val2) || val1.size !== val2.size) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kIsSet);\n } else if (isMap(val1)) {\n if (!isMap(val2) || val1.size !== val2.size) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kIsMap);\n } else if (isAnyArrayBuffer(val1)) {\n if (!areEqualArrayBuffers(val1, val2)) {\n return false;\n }\n } else if (isBoxedPrimitive(val1) && !isEqualBoxedPrimitive(val1, val2)) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kNoIterator);\n}\n\nfunction getEnumerables(val, keys) {\n return keys.filter(function (k) {\n return propertyIsEnumerable(val, k);\n });\n}\n\nfunction keyCheck(val1, val2, strict, memos, iterationType, aKeys) {\n // For all remaining Object pairs, including Array, objects and Maps,\n // equivalence is determined by having:\n // a) The same number of owned enumerable properties\n // b) The same set of keys/indexes (although not necessarily the same order)\n // c) Equivalent values for every corresponding key/index\n // d) For Sets and Maps, equal contents\n // Note: this accounts for both named and indexed properties on Arrays.\n if (arguments.length === 5) {\n aKeys = Object.keys(val1);\n var bKeys = Object.keys(val2); // The pair must have the same number of owned properties.\n\n if (aKeys.length !== bKeys.length) {\n return false;\n }\n } // Cheap key test\n\n\n var i = 0;\n\n for (; i < aKeys.length; i++) {\n if (!hasOwnProperty(val2, aKeys[i])) {\n return false;\n }\n }\n\n if (strict && arguments.length === 5) {\n var symbolKeysA = objectGetOwnPropertySymbols(val1);\n\n if (symbolKeysA.length !== 0) {\n var count = 0;\n\n for (i = 0; i < symbolKeysA.length; i++) {\n var key = symbolKeysA[i];\n\n if (propertyIsEnumerable(val1, key)) {\n if (!propertyIsEnumerable(val2, key)) {\n return false;\n }\n\n aKeys.push(key);\n count++;\n } else if (propertyIsEnumerable(val2, key)) {\n return false;\n }\n }\n\n var symbolKeysB = objectGetOwnPropertySymbols(val2);\n\n if (symbolKeysA.length !== symbolKeysB.length && getEnumerables(val2, symbolKeysB).length !== count) {\n return false;\n }\n } else {\n var _symbolKeysB = objectGetOwnPropertySymbols(val2);\n\n if (_symbolKeysB.length !== 0 && getEnumerables(val2, _symbolKeysB).length !== 0) {\n return false;\n }\n }\n }\n\n if (aKeys.length === 0 && (iterationType === kNoIterator || iterationType === kIsArray && val1.length === 0 || val1.size === 0)) {\n return true;\n } // Use memos to handle cycles.\n\n\n if (memos === undefined) {\n memos = {\n val1: new Map(),\n val2: new Map(),\n position: 0\n };\n } else {\n // We prevent up to two map.has(x) calls by directly retrieving the value\n // and checking for undefined. The map can only contain numbers, so it is\n // safe to check for undefined only.\n var val2MemoA = memos.val1.get(val1);\n\n if (val2MemoA !== undefined) {\n var val2MemoB = memos.val2.get(val2);\n\n if (val2MemoB !== undefined) {\n return val2MemoA === val2MemoB;\n }\n }\n\n memos.position++;\n }\n\n memos.val1.set(val1, memos.position);\n memos.val2.set(val2, memos.position);\n var areEq = objEquiv(val1, val2, strict, aKeys, memos, iterationType);\n memos.val1.delete(val1);\n memos.val2.delete(val2);\n return areEq;\n}\n\nfunction setHasEqualElement(set, val1, strict, memo) {\n // Go looking.\n var setValues = arrayFromSet(set);\n\n for (var i = 0; i < setValues.length; i++) {\n var val2 = setValues[i];\n\n if (innerDeepEqual(val1, val2, strict, memo)) {\n // Remove the matching element to make sure we do not check that again.\n set.delete(val2);\n return true;\n }\n }\n\n return false;\n} // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness#Loose_equality_using\n// Sadly it is not possible to detect corresponding values properly in case the\n// type is a string, number, bigint or boolean. The reason is that those values\n// can match lots of different string values (e.g., 1n == '+00001').\n\n\nfunction findLooseMatchingPrimitives(prim) {\n switch (_typeof(prim)) {\n case 'undefined':\n return null;\n\n case 'object':\n // Only pass in null as object!\n return undefined;\n\n case 'symbol':\n return false;\n\n case 'string':\n prim = +prim;\n // Loose equal entries exist only if the string is possible to convert to\n // a regular number and not NaN.\n // Fall through\n\n case 'number':\n if (numberIsNaN(prim)) {\n return false;\n }\n\n }\n\n return true;\n}\n\nfunction setMightHaveLoosePrim(a, b, prim) {\n var altValue = findLooseMatchingPrimitives(prim);\n if (altValue != null) return altValue;\n return b.has(altValue) && !a.has(altValue);\n}\n\nfunction mapMightHaveLoosePrim(a, b, prim, item, memo) {\n var altValue = findLooseMatchingPrimitives(prim);\n\n if (altValue != null) {\n return altValue;\n }\n\n var curB = b.get(altValue);\n\n if (curB === undefined && !b.has(altValue) || !innerDeepEqual(item, curB, false, memo)) {\n return false;\n }\n\n return !a.has(altValue) && innerDeepEqual(item, curB, false, memo);\n}\n\nfunction setEquiv(a, b, strict, memo) {\n // This is a lazily initiated Set of entries which have to be compared\n // pairwise.\n var set = null;\n var aValues = arrayFromSet(a);\n\n for (var i = 0; i < aValues.length; i++) {\n var val = aValues[i]; // Note: Checking for the objects first improves the performance for object\n // heavy sets but it is a minor slow down for primitives. As they are fast\n // to check this improves the worst case scenario instead.\n\n if (_typeof(val) === 'object' && val !== null) {\n if (set === null) {\n set = new Set();\n } // If the specified value doesn't exist in the second set its an not null\n // object (or non strict only: a not matching primitive) we'll need to go\n // hunting for something thats deep-(strict-)equal to it. To make this\n // O(n log n) complexity we have to copy these values in a new set first.\n\n\n set.add(val);\n } else if (!b.has(val)) {\n if (strict) return false; // Fast path to detect missing string, symbol, undefined and null values.\n\n if (!setMightHaveLoosePrim(a, b, val)) {\n return false;\n }\n\n if (set === null) {\n set = new Set();\n }\n\n set.add(val);\n }\n }\n\n if (set !== null) {\n var bValues = arrayFromSet(b);\n\n for (var _i = 0; _i < bValues.length; _i++) {\n var _val = bValues[_i]; // We have to check if a primitive value is already\n // matching and only if it's not, go hunting for it.\n\n if (_typeof(_val) === 'object' && _val !== null) {\n if (!setHasEqualElement(set, _val, strict, memo)) return false;\n } else if (!strict && !a.has(_val) && !setHasEqualElement(set, _val, strict, memo)) {\n return false;\n }\n }\n\n return set.size === 0;\n }\n\n return true;\n}\n\nfunction mapHasEqualEntry(set, map, key1, item1, strict, memo) {\n // To be able to handle cases like:\n // Map([[{}, 'a'], [{}, 'b']]) vs Map([[{}, 'b'], [{}, 'a']])\n // ... we need to consider *all* matching keys, not just the first we find.\n var setValues = arrayFromSet(set);\n\n for (var i = 0; i < setValues.length; i++) {\n var key2 = setValues[i];\n\n if (innerDeepEqual(key1, key2, strict, memo) && innerDeepEqual(item1, map.get(key2), strict, memo)) {\n set.delete(key2);\n return true;\n }\n }\n\n return false;\n}\n\nfunction mapEquiv(a, b, strict, memo) {\n var set = null;\n var aEntries = arrayFromMap(a);\n\n for (var i = 0; i < aEntries.length; i++) {\n var _aEntries$i = _slicedToArray(aEntries[i], 2),\n key = _aEntries$i[0],\n item1 = _aEntries$i[1];\n\n if (_typeof(key) === 'object' && key !== null) {\n if (set === null) {\n set = new Set();\n }\n\n set.add(key);\n } else {\n // By directly retrieving the value we prevent another b.has(key) check in\n // almost all possible cases.\n var item2 = b.get(key);\n\n if (item2 === undefined && !b.has(key) || !innerDeepEqual(item1, item2, strict, memo)) {\n if (strict) return false; // Fast path to detect missing string, symbol, undefined and null\n // keys.\n\n if (!mapMightHaveLoosePrim(a, b, key, item1, memo)) return false;\n\n if (set === null) {\n set = new Set();\n }\n\n set.add(key);\n }\n }\n }\n\n if (set !== null) {\n var bEntries = arrayFromMap(b);\n\n for (var _i2 = 0; _i2 < bEntries.length; _i2++) {\n var _bEntries$_i = _slicedToArray(bEntries[_i2], 2),\n key = _bEntries$_i[0],\n item = _bEntries$_i[1];\n\n if (_typeof(key) === 'object' && key !== null) {\n if (!mapHasEqualEntry(set, a, key, item, strict, memo)) return false;\n } else if (!strict && (!a.has(key) || !innerDeepEqual(a.get(key), item, false, memo)) && !mapHasEqualEntry(set, a, key, item, false, memo)) {\n return false;\n }\n }\n\n return set.size === 0;\n }\n\n return true;\n}\n\nfunction objEquiv(a, b, strict, keys, memos, iterationType) {\n // Sets and maps don't have their entries accessible via normal object\n // properties.\n var i = 0;\n\n if (iterationType === kIsSet) {\n if (!setEquiv(a, b, strict, memos)) {\n return false;\n }\n } else if (iterationType === kIsMap) {\n if (!mapEquiv(a, b, strict, memos)) {\n return false;\n }\n } else if (iterationType === kIsArray) {\n for (; i < a.length; i++) {\n if (hasOwnProperty(a, i)) {\n if (!hasOwnProperty(b, i) || !innerDeepEqual(a[i], b[i], strict, memos)) {\n return false;\n }\n } else if (hasOwnProperty(b, i)) {\n return false;\n } else {\n // Array is sparse.\n var keysA = Object.keys(a);\n\n for (; i < keysA.length; i++) {\n var key = keysA[i];\n\n if (!hasOwnProperty(b, key) || !innerDeepEqual(a[key], b[key], strict, memos)) {\n return false;\n }\n }\n\n if (keysA.length !== Object.keys(b).length) {\n return false;\n }\n\n return true;\n }\n }\n } // The pair must have equivalent values for every corresponding key.\n // Possibly expensive deep test:\n\n\n for (i = 0; i < keys.length; i++) {\n var _key = keys[i];\n\n if (!innerDeepEqual(a[_key], b[_key], strict, memos)) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction isDeepEqual(val1, val2) {\n return innerDeepEqual(val1, val2, kLoose);\n}\n\nfunction isDeepStrictEqual(val1, val2) {\n return innerDeepEqual(val1, val2, kStrict);\n}\n\nmodule.exports = {\n isDeepEqual: isDeepEqual,\n isDeepStrictEqual: isDeepStrictEqual\n};","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n var intrinsic = GetIntrinsic(name, !!allowMissing);\n\n if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n return callBind(intrinsic);\n }\n\n return intrinsic;\n};","'use strict';\n\nvar bind = require('function-bind');\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n try {\n $defineProperty({}, 'a', {\n value: 1\n });\n } catch (e) {\n // IE 8 has a broken defineProperty\n $defineProperty = null;\n }\n}\n\nmodule.exports = function callBind(originalFunction) {\n var func = $reflectApply(bind, $call, arguments);\n\n if ($gOPD && $defineProperty) {\n var desc = $gOPD(func, 'length');\n\n if (desc.configurable) {\n // original length, plus the receiver, minus any additional arguments (after the receiver)\n $defineProperty(func, 'length', {\n value: 1 + $max(0, originalFunction.length - (arguments.length - 1))\n });\n }\n }\n\n return func;\n};\n\nvar applyBind = function applyBind() {\n return $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n $defineProperty(module.exports, 'apply', {\n value: applyBind\n });\n} else {\n module.exports.apply = applyBind;\n}","/*global window, global*/\nvar util = require(\"util\");\n\nvar assert = require(\"assert\");\n\nfunction now() {\n return new Date().getTime();\n}\n\nvar slice = Array.prototype.slice;\nvar console;\nvar times = {};\n\nif (typeof global !== \"undefined\" && global.console) {\n console = global.console;\n} else if (typeof window !== \"undefined\" && window.console) {\n console = window.console;\n} else {\n console = {};\n}\n\nvar functions = [[log, \"log\"], [info, \"info\"], [warn, \"warn\"], [error, \"error\"], [time, \"time\"], [timeEnd, \"timeEnd\"], [trace, \"trace\"], [dir, \"dir\"], [consoleAssert, \"assert\"]];\n\nfor (var i = 0; i < functions.length; i++) {\n var tuple = functions[i];\n var f = tuple[0];\n var name = tuple[1];\n\n if (!console[name]) {\n console[name] = f;\n }\n}\n\nmodule.exports = console;\n\nfunction log() {}\n\nfunction info() {\n console.log.apply(console, arguments);\n}\n\nfunction warn() {\n console.log.apply(console, arguments);\n}\n\nfunction error() {\n console.warn.apply(console, arguments);\n}\n\nfunction time(label) {\n times[label] = now();\n}\n\nfunction timeEnd(label) {\n var time = times[label];\n\n if (!time) {\n throw new Error(\"No such label: \" + label);\n }\n\n delete times[label];\n var duration = now() - time;\n console.log(label + \": \" + duration + \"ms\");\n}\n\nfunction trace() {\n var err = new Error();\n err.name = \"Trace\";\n err.message = util.format.apply(null, arguments);\n console.error(err.stack);\n}\n\nfunction dir(object) {\n console.log(util.inspect(object) + \"\\n\");\n}\n\nfunction consoleAssert(expression) {\n if (!expression) {\n var arr = slice.call(arguments, 1);\n assert.ok(false, util.format.apply(null, arr));\n }\n}","'use strict';\n\nvar keys = require('object-keys');\n\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar origDefineProperty = Object.defineProperty;\n\nvar isFunction = function (fn) {\n return typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar hasPropertyDescriptors = require('has-property-descriptors')();\n\nvar supportsDescriptors = origDefineProperty && hasPropertyDescriptors;\n\nvar defineProperty = function (object, name, value, predicate) {\n if (name in object && (!isFunction(predicate) || !predicate())) {\n return;\n }\n\n if (supportsDescriptors) {\n origDefineProperty(object, name, {\n configurable: true,\n enumerable: false,\n value: value,\n writable: true\n });\n } else {\n object[name] = value; // eslint-disable-line no-param-reassign\n }\n};\n\nvar defineProperties = function (object, map) {\n var predicates = arguments.length > 2 ? arguments[2] : {};\n var props = keys(map);\n\n if (hasSymbols) {\n props = concat.call(props, Object.getOwnPropertySymbols(map));\n }\n\n for (var i = 0; i < props.length; i += 1) {\n defineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n }\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\nmodule.exports = defineProperties;","/**\n * matchesSelector v2.0.2\n * matchesSelector( element, '.selector' )\n * MIT license\n */\n\n/*jshint browser: true, strict: true, undef: true, unused: true */\n(function (window, factory) {\n /*global define: false, module: false */\n 'use strict'; // universal module definition\n\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(factory);\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.matchesSelector = factory();\n }\n})(window, function factory() {\n 'use strict';\n\n var matchesMethod = function () {\n var ElemProto = window.Element.prototype; // check for the standard method name first\n\n if (ElemProto.matches) {\n return 'matches';\n } // check un-prefixed\n\n\n if (ElemProto.matchesSelector) {\n return 'matchesSelector';\n } // check vendor prefixes\n\n\n var prefixes = ['webkit', 'moz', 'ms', 'o'];\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var method = prefix + 'MatchesSelector';\n\n if (ElemProto[method]) {\n return method;\n }\n }\n }();\n\n return function matchesSelector(elem, selector) {\n return elem[matchesMethod](selector);\n };\n});","/**\n * Code refactored from Mozilla Developer Network:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n */\n'use strict';\n\nfunction assign(target, firstSource) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert first argument to object');\n }\n\n var to = Object(target);\n\n for (var i = 1; i < arguments.length; i++) {\n var nextSource = arguments[i];\n\n if (nextSource === undefined || nextSource === null) {\n continue;\n }\n\n var keysArray = Object.keys(Object(nextSource));\n\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex++) {\n var nextKey = keysArray[nextIndex];\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n if (desc !== undefined && desc.enumerable) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n\n return to;\n}\n\nfunction polyfill() {\n if (!Object.assign) {\n Object.defineProperty(Object, 'assign', {\n enumerable: false,\n configurable: true,\n writable: true,\n value: assign\n });\n }\n}\n\nmodule.exports = {\n assign: assign,\n polyfill: polyfill\n};","/**\n * EvEmitter v1.1.0\n * Lil' event emitter\n * MIT License\n */\n\n/* jshint unused: true, undef: true, strict: true */\n(function (global, factory) {\n // universal module definition\n\n /* jshint strict: false */\n\n /* globals define, module, window */\n if (typeof define == 'function' && define.amd) {\n // AMD - RequireJS\n define(factory);\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS - Browserify, Webpack\n module.exports = factory();\n } else {\n // Browser globals\n global.EvEmitter = factory();\n }\n})(typeof window != 'undefined' ? window : this, function () {\n \"use strict\";\n\n function EvEmitter() {}\n\n var proto = EvEmitter.prototype;\n\n proto.on = function (eventName, listener) {\n if (!eventName || !listener) {\n return;\n } // set events hash\n\n\n var events = this._events = this._events || {}; // set listeners array\n\n var listeners = events[eventName] = events[eventName] || []; // only add once\n\n if (listeners.indexOf(listener) == -1) {\n listeners.push(listener);\n }\n\n return this;\n };\n\n proto.once = function (eventName, listener) {\n if (!eventName || !listener) {\n return;\n } // add event\n\n\n this.on(eventName, listener); // set once flag\n // set onceEvents hash\n\n var onceEvents = this._onceEvents = this._onceEvents || {}; // set onceListeners object\n\n var onceListeners = onceEvents[eventName] = onceEvents[eventName] || {}; // set flag\n\n onceListeners[listener] = true;\n return this;\n };\n\n proto.off = function (eventName, listener) {\n var listeners = this._events && this._events[eventName];\n\n if (!listeners || !listeners.length) {\n return;\n }\n\n var index = listeners.indexOf(listener);\n\n if (index != -1) {\n listeners.splice(index, 1);\n }\n\n return this;\n };\n\n proto.emitEvent = function (eventName, args) {\n var listeners = this._events && this._events[eventName];\n\n if (!listeners || !listeners.length) {\n return;\n } // copy over to avoid interference if .off() in listener\n\n\n listeners = listeners.slice(0);\n args = args || []; // once stuff\n\n var onceListeners = this._onceEvents && this._onceEvents[eventName];\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n var isOnce = onceListeners && onceListeners[listener];\n\n if (isOnce) {\n // remove listener\n // remove before trigger to prevent recursion\n this.off(eventName, listener); // unset once flag\n\n delete onceListeners[listener];\n } // trigger listener\n\n\n listener.apply(this, args);\n }\n\n return this;\n };\n\n proto.allOff = function () {\n delete this._events;\n delete this._onceEvents;\n };\n\n return EvEmitter;\n});","/**\n * Fizzy UI utils v2.0.7\n * MIT license\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true */\n(function (window, factory) {\n // universal module definition\n\n /*jshint strict: false */\n\n /*globals define, module, require */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['desandro-matches-selector/matches-selector'], function (matchesSelector) {\n return factory(window, matchesSelector);\n });\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(window, require('desandro-matches-selector'));\n } else {\n // browser global\n window.fizzyUIUtils = factory(window, window.matchesSelector);\n }\n})(window, function factory(window, matchesSelector) {\n 'use strict';\n\n var utils = {}; // ----- extend ----- //\n // extends objects\n\n utils.extend = function (a, b) {\n for (var prop in b) {\n a[prop] = b[prop];\n }\n\n return a;\n }; // ----- modulo ----- //\n\n\n utils.modulo = function (num, div) {\n return (num % div + div) % div;\n }; // ----- makeArray ----- //\n\n\n var arraySlice = Array.prototype.slice; // turn element or nodeList into an array\n\n utils.makeArray = function (obj) {\n if (Array.isArray(obj)) {\n // use object if already an array\n return obj;\n } // return empty array if undefined or null. #6\n\n\n if (obj === null || obj === undefined) {\n return [];\n }\n\n var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\n\n if (isArrayLike) {\n // convert nodeList to array\n return arraySlice.call(obj);\n } // array of single index\n\n\n return [obj];\n }; // ----- removeFrom ----- //\n\n\n utils.removeFrom = function (ary, obj) {\n var index = ary.indexOf(obj);\n\n if (index != -1) {\n ary.splice(index, 1);\n }\n }; // ----- getParent ----- //\n\n\n utils.getParent = function (elem, selector) {\n while (elem.parentNode && elem != document.body) {\n elem = elem.parentNode;\n\n if (matchesSelector(elem, selector)) {\n return elem;\n }\n }\n }; // ----- getQueryElement ----- //\n // use element as selector string\n\n\n utils.getQueryElement = function (elem) {\n if (typeof elem == 'string') {\n return document.querySelector(elem);\n }\n\n return elem;\n }; // ----- handleEvent ----- //\n // enable .ontype to trigger from .addEventListener( elem, 'type' )\n\n\n utils.handleEvent = function (event) {\n var method = 'on' + event.type;\n\n if (this[method]) {\n this[method](event);\n }\n }; // ----- filterFindElements ----- //\n\n\n utils.filterFindElements = function (elems, selector) {\n // make array of elems\n elems = utils.makeArray(elems);\n var ffElems = [];\n elems.forEach(function (elem) {\n // check that elem is an actual element\n if (!(elem instanceof HTMLElement)) {\n return;\n } // add elem if no selector\n\n\n if (!selector) {\n ffElems.push(elem);\n return;\n } // filter & find items if we have a selector\n // filter\n\n\n if (matchesSelector(elem, selector)) {\n ffElems.push(elem);\n } // find children\n\n\n var childElems = elem.querySelectorAll(selector); // concat childElems to filterFound array\n\n for (var i = 0; i < childElems.length; i++) {\n ffElems.push(childElems[i]);\n }\n });\n return ffElems;\n }; // ----- debounceMethod ----- //\n\n\n utils.debounceMethod = function (_class, methodName, threshold) {\n threshold = threshold || 100; // original method\n\n var method = _class.prototype[methodName];\n var timeoutName = methodName + 'Timeout';\n\n _class.prototype[methodName] = function () {\n var timeout = this[timeoutName];\n clearTimeout(timeout);\n var args = arguments;\n\n var _this = this;\n\n this[timeoutName] = setTimeout(function () {\n method.apply(_this, args);\n delete _this[timeoutName];\n }, threshold);\n };\n }; // ----- docReady ----- //\n\n\n utils.docReady = function (callback) {\n var readyState = document.readyState;\n\n if (readyState == 'complete' || readyState == 'interactive') {\n // do async to allow for other scripts to run. metafizzy/flickity#441\n setTimeout(callback);\n } else {\n document.addEventListener('DOMContentLoaded', callback);\n }\n }; // ----- htmlInit ----- //\n // http://jamesroberts.name/blog/2010/02/22/string-functions-for-javascript-trim-to-camel-case-to-dashed-and-to-underscore/\n\n\n utils.toDashed = function (str) {\n return str.replace(/(.)([A-Z])/g, function (match, $1, $2) {\n return $1 + '-' + $2;\n }).toLowerCase();\n };\n\n var console = window.console;\n /**\n * allow user to initialize classes via [data-namespace] or .js-namespace class\n * htmlInit( Widget, 'widgetName' )\n * options are parsed from data-namespace-options\n */\n\n utils.htmlInit = function (WidgetClass, namespace) {\n utils.docReady(function () {\n var dashedNamespace = utils.toDashed(namespace);\n var dataAttr = 'data-' + dashedNamespace;\n var dataAttrElems = document.querySelectorAll('[' + dataAttr + ']');\n var jsDashElems = document.querySelectorAll('.js-' + dashedNamespace);\n var elems = utils.makeArray(dataAttrElems).concat(utils.makeArray(jsDashElems));\n var dataOptionsAttr = dataAttr + '-options';\n var jQuery = window.jQuery;\n elems.forEach(function (elem) {\n var attr = elem.getAttribute(dataAttr) || elem.getAttribute(dataOptionsAttr);\n var options;\n\n try {\n options = attr && JSON.parse(attr);\n } catch (error) {\n // log error, do not initialize\n if (console) {\n console.error('Error parsing ' + dataAttr + ' on ' + elem.className + ': ' + error);\n }\n\n return;\n } // initialize\n\n\n var instance = new WidgetClass(elem, options); // make available via $().data('namespace')\n\n if (jQuery) {\n jQuery.data(elem, namespace, instance);\n }\n });\n });\n }; // ----- ----- //\n\n\n return utils;\n});","'use strict';\n\nvar isCallable = require('is-callable');\n\nvar toStr = Object.prototype.toString;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar forEachArray = function forEachArray(array, iterator, receiver) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n if (receiver == null) {\n iterator(array[i], i, array);\n } else {\n iterator.call(receiver, array[i], i, array);\n }\n }\n }\n};\n\nvar forEachString = function forEachString(string, iterator, receiver) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n if (receiver == null) {\n iterator(string.charAt(i), i, string);\n } else {\n iterator.call(receiver, string.charAt(i), i, string);\n }\n }\n};\n\nvar forEachObject = function forEachObject(object, iterator, receiver) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n if (receiver == null) {\n iterator(object[k], k, object);\n } else {\n iterator.call(receiver, object[k], k, object);\n }\n }\n }\n};\n\nvar forEach = function forEach(list, iterator, thisArg) {\n if (!isCallable(iterator)) {\n throw new TypeError('iterator must be a function');\n }\n\n var receiver;\n\n if (arguments.length >= 3) {\n receiver = thisArg;\n }\n\n if (toStr.call(list) === '[object Array]') {\n forEachArray(list, iterator, receiver);\n } else if (typeof list === 'string') {\n forEachString(list, iterator, receiver);\n } else {\n forEachObject(list, iterator, receiver);\n }\n};\n\nmodule.exports = forEach;","(function webpackUniversalModuleDefinition(root, factory) {\n if (typeof exports === 'object' && typeof module === 'object') module.exports = factory(require(\"jquery\"));else if (typeof define === 'function' && define.amd) define([\"jquery\"], factory);else if (typeof exports === 'object') exports[\"foundation.core\"] = factory(require(\"jquery\"));else root[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"] = factory(root[\"jQuery\"]);\n})(window, function (__WEBPACK_EXTERNAL_MODULE_jquery__) {\n return (\n /******/\n function (modules) {\n // webpackBootstrap\n\n /******/\n // The module cache\n\n /******/\n var installedModules = {};\n /******/\n\n /******/\n // The require function\n\n /******/\n\n function __webpack_require__(moduleId) {\n /******/\n\n /******/\n // Check if module is in cache\n\n /******/\n if (installedModules[moduleId]) {\n /******/\n return installedModules[moduleId].exports;\n /******/\n }\n /******/\n // Create a new module (and put it into the cache)\n\n /******/\n\n\n var module = installedModules[moduleId] = {\n /******/\n i: moduleId,\n\n /******/\n l: false,\n\n /******/\n exports: {}\n /******/\n\n };\n /******/\n\n /******/\n // Execute the module function\n\n /******/\n\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n /******/\n\n /******/\n // Flag the module as loaded\n\n /******/\n\n module.l = true;\n /******/\n\n /******/\n // Return the exports of the module\n\n /******/\n\n return module.exports;\n /******/\n }\n /******/\n\n /******/\n\n /******/\n // expose the modules object (__webpack_modules__)\n\n /******/\n\n\n __webpack_require__.m = modules;\n /******/\n\n /******/\n // expose the module cache\n\n /******/\n\n __webpack_require__.c = installedModules;\n /******/\n\n /******/\n // define getter function for harmony exports\n\n /******/\n\n __webpack_require__.d = function (exports, name, getter) {\n /******/\n if (!__webpack_require__.o(exports, name)) {\n /******/\n Object.defineProperty(exports, name, {\n enumerable: true,\n get: getter\n });\n /******/\n }\n /******/\n\n };\n /******/\n\n /******/\n // define __esModule on exports\n\n /******/\n\n\n __webpack_require__.r = function (exports) {\n /******/\n if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n /******/\n Object.defineProperty(exports, Symbol.toStringTag, {\n value: 'Module'\n });\n /******/\n }\n /******/\n\n\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n /******/\n };\n /******/\n\n /******/\n // create a fake namespace object\n\n /******/\n // mode & 1: value is a module id, require it\n\n /******/\n // mode & 2: merge all properties of value into the ns\n\n /******/\n // mode & 4: return value when already ns object\n\n /******/\n // mode & 8|1: behave like require\n\n /******/\n\n\n __webpack_require__.t = function (value, mode) {\n /******/\n if (mode & 1) value = __webpack_require__(value);\n /******/\n\n if (mode & 8) return value;\n /******/\n\n if (mode & 4 && typeof value === 'object' && value && value.__esModule) return value;\n /******/\n\n var ns = Object.create(null);\n /******/\n\n __webpack_require__.r(ns);\n /******/\n\n\n Object.defineProperty(ns, 'default', {\n enumerable: true,\n value: value\n });\n /******/\n\n if (mode & 2 && typeof value != 'string') for (var key in value) __webpack_require__.d(ns, key, function (key) {\n return value[key];\n }.bind(null, key));\n /******/\n\n return ns;\n /******/\n };\n /******/\n\n /******/\n // getDefaultExport function for compatibility with non-harmony modules\n\n /******/\n\n\n __webpack_require__.n = function (module) {\n /******/\n var getter = module && module.__esModule ?\n /******/\n function getDefault() {\n return module['default'];\n } :\n /******/\n function getModuleExports() {\n return module;\n };\n /******/\n\n __webpack_require__.d(getter, 'a', getter);\n /******/\n\n\n return getter;\n /******/\n };\n /******/\n\n /******/\n // Object.prototype.hasOwnProperty.call\n\n /******/\n\n\n __webpack_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n /******/\n\n /******/\n // __webpack_public_path__\n\n /******/\n\n\n __webpack_require__.p = \"\";\n /******/\n\n /******/\n\n /******/\n // Load entry module and return exports\n\n /******/\n\n return __webpack_require__(__webpack_require__.s = 0);\n /******/\n }\n /************************************************************************/\n\n /******/\n ({\n /***/\n \"./js/entries/plugins/foundation.core.js\":\n /*!***********************************************!*\\\n !*** ./js/entries/plugins/foundation.core.js ***!\n \\***********************************************/\n\n /*! exports provided: Foundation, Plugin, rtl, GetYoDigits, RegExpEscape, transitionend, onLoad, ignoreMousedisappear */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! jquery */\n \"jquery\");\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! ../../foundation.core */\n \"./js/foundation.core.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Foundation\", function () {\n return _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"];\n });\n /* harmony import */\n\n\n var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\n /*! ../../foundation.core.plugin */\n \"./js/foundation.core.plugin.js\");\n /* harmony import */\n\n\n var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(\n /*! ../../foundation.core.utils */\n \"./js/foundation.core.utils.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Plugin\", function () {\n return _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_2__[\"Plugin\"];\n });\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"rtl\", function () {\n return _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"rtl\"];\n });\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"GetYoDigits\", function () {\n return _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"GetYoDigits\"];\n });\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"RegExpEscape\", function () {\n return _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"RegExpEscape\"];\n });\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"transitionend\", function () {\n return _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"transitionend\"];\n });\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"onLoad\", function () {\n return _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"onLoad\"];\n });\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"ignoreMousedisappear\", function () {\n return _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"ignoreMousedisappear\"];\n }); // --- Foundation Core API ---\n // Initialize Foundation and add some utilities to its public API for backward compatibility.\n // Please note that every utility do not have to be added to the core API.\n\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].addToJquery(jquery__WEBPACK_IMPORTED_MODULE_0___default.a); // Every plugin depends on plugin now, we can include that on the core for the\n // script inclusion path.\n\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].Plugin = _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_2__[\"Plugin\"]; // These are now separated out, but historically were a part of this module,\n // and since this is here for backwards compatibility we include them in\n // this entry.\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].rtl = _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"rtl\"];\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].GetYoDigits = _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"GetYoDigits\"];\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].transitionend = _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"transitionend\"];\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].RegExpEscape = _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"RegExpEscape\"];\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].onLoad = _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"onLoad\"];\n window.Foundation = _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"]; // --- Foundation Core exports ---\n // Export \"Plugin\" and all core utilities, since the `foundation.core` entry plays the role of\n // all core source files.\n\n /***/\n },\n\n /***/\n \"./js/foundation.core.js\":\n /*!*******************************!*\\\n !*** ./js/foundation.core.js ***!\n \\*******************************/\n\n /*! exports provided: Foundation */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Foundation\", function () {\n return Foundation;\n });\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! jquery */\n \"jquery\");\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */\n\n\n var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! ./foundation.core.utils */\n \"./js/foundation.core.utils.js\");\n /* harmony import */\n\n\n var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\n /*! ./foundation.util.mediaQuery */\n \"./js/foundation.util.mediaQuery.js\");\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n var FOUNDATION_VERSION = '6.7.4'; // Global Foundation object\n // This is attached to the window, or used as a module for AMD/Browserify\n\n var Foundation = {\n version: FOUNDATION_VERSION,\n\n /**\n * Stores initialized plugins.\n */\n _plugins: {},\n\n /**\n * Stores generated unique ids for plugin instances\n */\n _uuids: [],\n\n /**\n * Defines a Foundation plugin, adding it to the `Foundation` namespace and the list of plugins to initialize when reflowing.\n * @param {Object} plugin - The constructor of the plugin.\n */\n plugin: function plugin(_plugin, name) {\n // Object key to use when adding to global Foundation object\n // Examples: Foundation.Reveal, Foundation.OffCanvas\n var className = name || functionName(_plugin); // Object key to use when storing the plugin, also used to create the identifying data attribute for the plugin\n // Examples: data-reveal, data-off-canvas\n\n var attrName = hyphenate(className); // Add to the Foundation object and the plugins list (for reflowing)\n\n this._plugins[attrName] = this[className] = _plugin;\n },\n\n /**\n * @function\n * Populates the _uuids array with pointers to each individual plugin instance.\n * Adds the `zfPlugin` data-attribute to programmatically created plugins to allow use of $(selector).foundation(method) calls.\n * Also fires the initialization event for each plugin, consolidating repetitive code.\n * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n * @param {String} name - the name of the plugin, passed as a camelCased string.\n * @fires Plugin#init\n */\n registerPlugin: function registerPlugin(plugin, name) {\n var pluginName = name ? hyphenate(name) : functionName(plugin.constructor).toLowerCase();\n plugin.uuid = Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"GetYoDigits\"])(6, pluginName);\n\n if (!plugin.$element.attr(\"data-\".concat(pluginName))) {\n plugin.$element.attr(\"data-\".concat(pluginName), plugin.uuid);\n }\n\n if (!plugin.$element.data('zfPlugin')) {\n plugin.$element.data('zfPlugin', plugin);\n }\n /**\n * Fires when the plugin has initialized.\n * @event Plugin#init\n */\n\n\n plugin.$element.trigger(\"init.zf.\".concat(pluginName));\n\n this._uuids.push(plugin.uuid);\n\n return;\n },\n\n /**\n * @function\n * Removes the plugins uuid from the _uuids array.\n * Removes the zfPlugin data attribute, as well as the data-plugin-name attribute.\n * Also fires the destroyed event for the plugin, consolidating repetitive code.\n * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n * @fires Plugin#destroyed\n */\n unregisterPlugin: function unregisterPlugin(plugin) {\n var pluginName = hyphenate(functionName(plugin.$element.data('zfPlugin').constructor));\n\n this._uuids.splice(this._uuids.indexOf(plugin.uuid), 1);\n\n plugin.$element.removeAttr(\"data-\".concat(pluginName)).removeData('zfPlugin')\n /**\n * Fires when the plugin has been destroyed.\n * @event Plugin#destroyed\n */\n .trigger(\"destroyed.zf.\".concat(pluginName));\n\n for (var prop in plugin) {\n if (typeof plugin[prop] === 'function') {\n plugin[prop] = null; //clean up script to prep for garbage collection.\n }\n }\n\n return;\n },\n\n /**\n * @function\n * Causes one or more active plugins to re-initialize, resetting event listeners, recalculating positions, etc.\n * @param {String} plugins - optional string of an individual plugin key, attained by calling `$(element).data('pluginName')`, or string of a plugin class i.e. `'dropdown'`\n * @default If no argument is passed, reflow all currently active plugins.\n */\n reInit: function reInit(plugins) {\n var isJQ = plugins instanceof jquery__WEBPACK_IMPORTED_MODULE_0___default.a;\n\n try {\n if (isJQ) {\n plugins.each(function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('zfPlugin')._init();\n });\n } else {\n var type = _typeof(plugins),\n _this = this,\n fns = {\n 'object': function object(plgs) {\n plgs.forEach(function (p) {\n p = hyphenate(p);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-' + p + ']').foundation('_init');\n });\n },\n 'string': function string() {\n plugins = hyphenate(plugins);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-' + plugins + ']').foundation('_init');\n },\n 'undefined': function undefined() {\n this.object(Object.keys(_this._plugins));\n }\n };\n\n fns[type](plugins);\n }\n } catch (err) {\n console.error(err);\n } finally {\n return plugins;\n }\n },\n\n /**\n * Initialize plugins on any elements within `elem` (and `elem` itself) that aren't already initialized.\n * @param {Object} elem - jQuery object containing the element to check inside. Also checks the element itself, unless it's the `document` object.\n * @param {String|Array} plugins - A list of plugins to initialize. Leave this out to initialize everything.\n */\n reflow: function reflow(elem, plugins) {\n // If plugins is undefined, just grab everything\n if (typeof plugins === 'undefined') {\n plugins = Object.keys(this._plugins);\n } // If plugins is a string, convert it to an array with one item\n else if (typeof plugins === 'string') {\n plugins = [plugins];\n }\n\n var _this = this; // Iterate through each plugin\n\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default.a.each(plugins, function (i, name) {\n // Get the current plugin\n var plugin = _this._plugins[name]; // Localize the search to all elements inside elem, as well as elem itself, unless elem === document\n\n var $elem = jquery__WEBPACK_IMPORTED_MODULE_0___default()(elem).find('[data-' + name + ']').addBack('[data-' + name + ']').filter(function () {\n return typeof jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data(\"zfPlugin\") === 'undefined';\n }); // For each plugin found, initialize it\n\n $elem.each(function () {\n var $el = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),\n opts = {\n reflow: true\n };\n\n if ($el.attr('data-options')) {\n $el.attr('data-options').split(';').forEach(function (option) {\n var opt = option.split(':').map(function (el) {\n return el.trim();\n });\n if (opt[0]) opts[opt[0]] = parseValue(opt[1]);\n });\n }\n\n try {\n $el.data('zfPlugin', new plugin(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), opts));\n } catch (er) {\n console.error(er);\n } finally {\n return;\n }\n });\n });\n },\n getFnName: functionName,\n addToJquery: function addToJquery() {\n // TODO: consider not making this a jQuery function\n // TODO: need way to reflow vs. re-initialize\n\n /**\n * The Foundation jQuery method.\n * @param {String|Array} method - An action to perform on the current jQuery object.\n */\n var foundation = function foundation(method) {\n var type = _typeof(method),\n $noJS = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.no-js');\n\n if ($noJS.length) {\n $noJS.removeClass('no-js');\n }\n\n if (type === 'undefined') {\n //needs to initialize the Foundation object, or an individual plugin.\n _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_2__[\"MediaQuery\"]._init();\n\n Foundation.reflow(this);\n } else if (type === 'string') {\n //an individual method to invoke on a plugin or group of plugins\n var args = Array.prototype.slice.call(arguments, 1); //collect all the arguments, if necessary\n\n var plugClass = this.data('zfPlugin'); //determine the class of plugin\n\n if (typeof plugClass !== 'undefined' && typeof plugClass[method] !== 'undefined') {\n //make sure both the class and method exist\n if (this.length === 1) {\n //if there's only one, call it directly.\n plugClass[method].apply(plugClass, args);\n } else {\n this.each(function (i, el) {\n //otherwise loop through the jQuery collection and invoke the method on each\n plugClass[method].apply(jquery__WEBPACK_IMPORTED_MODULE_0___default()(el).data('zfPlugin'), args);\n });\n }\n } else {\n //error for no class or no method\n throw new ReferenceError(\"We're sorry, '\" + method + \"' is not an available method for \" + (plugClass ? functionName(plugClass) : 'this element') + '.');\n }\n } else {\n //error for invalid argument type\n throw new TypeError(\"We're sorry, \".concat(type, \" is not a valid parameter. You must use a string representing the method you wish to invoke.\"));\n }\n\n return this;\n };\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn.foundation = foundation;\n return jquery__WEBPACK_IMPORTED_MODULE_0___default.a;\n }\n };\n Foundation.util = {\n /**\n * Function for applying a debounce effect to a function call.\n * @function\n * @param {Function} func - Function to be called at end of timeout.\n * @param {Number} delay - Time in ms to delay the call of `func`.\n * @returns function\n */\n throttle: function throttle(func, delay) {\n var timer = null;\n return function () {\n var context = this,\n args = arguments;\n\n if (timer === null) {\n timer = setTimeout(function () {\n func.apply(context, args);\n timer = null;\n }, delay);\n }\n };\n }\n };\n window.Foundation = Foundation; // Polyfill for requestAnimationFrame\n\n (function () {\n if (!Date.now || !window.Date.now) window.Date.now = Date.now = function () {\n return new Date().getTime();\n };\n var vendors = ['webkit', 'moz'];\n\n for (var i = 0; i < vendors.length && !window.requestAnimationFrame; ++i) {\n var vp = vendors[i];\n window.requestAnimationFrame = window[vp + 'RequestAnimationFrame'];\n window.cancelAnimationFrame = window[vp + 'CancelAnimationFrame'] || window[vp + 'CancelRequestAnimationFrame'];\n }\n\n if (/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent) || !window.requestAnimationFrame || !window.cancelAnimationFrame) {\n var lastTime = 0;\n\n window.requestAnimationFrame = function (callback) {\n var now = Date.now();\n var nextTime = Math.max(lastTime + 16, now);\n return setTimeout(function () {\n callback(lastTime = nextTime);\n }, nextTime - now);\n };\n\n window.cancelAnimationFrame = clearTimeout;\n }\n /**\n * Polyfill for performance.now, required by rAF\n */\n\n\n if (!window.performance || !window.performance.now) {\n window.performance = {\n start: Date.now(),\n now: function now() {\n return Date.now() - this.start;\n }\n };\n }\n })();\n\n if (!Function.prototype.bind) {\n /* eslint-disable no-extend-native */\n Function.prototype.bind = function (oThis) {\n if (typeof this !== 'function') {\n // closest thing possible to the ECMAScript 5\n // internal IsCallable function\n throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n }\n\n var aArgs = Array.prototype.slice.call(arguments, 1),\n fToBind = this,\n fNOP = function fNOP() {},\n fBound = function fBound() {\n return fToBind.apply(this instanceof fNOP ? this : oThis, aArgs.concat(Array.prototype.slice.call(arguments)));\n };\n\n if (this.prototype) {\n // native functions don't have a prototype\n fNOP.prototype = this.prototype;\n }\n\n fBound.prototype = new fNOP();\n return fBound;\n };\n } // Polyfill to get the name of a function in IE9\n\n\n function functionName(fn) {\n if (typeof Function.prototype.name === 'undefined') {\n var funcNameRegex = /function\\s([^(]{1,})\\(/;\n var results = funcNameRegex.exec(fn.toString());\n return results && results.length > 1 ? results[1].trim() : \"\";\n } else if (typeof fn.prototype === 'undefined') {\n return fn.constructor.name;\n } else {\n return fn.prototype.constructor.name;\n }\n }\n\n function parseValue(str) {\n if ('true' === str) return true;else if ('false' === str) return false;else if (!isNaN(str * 1)) return parseFloat(str);\n return str;\n } // Convert PascalCase to kebab-case\n // Thank you: http://stackoverflow.com/a/8955580\n\n\n function hyphenate(str) {\n return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n }\n /***/\n\n },\n\n /***/\n \"./js/foundation.core.plugin.js\":\n /*!**************************************!*\\\n !*** ./js/foundation.core.plugin.js ***!\n \\**************************************/\n\n /*! exports provided: Plugin */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Plugin\", function () {\n return Plugin;\n });\n /* harmony import */\n\n\n var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! ./foundation.core.utils */\n \"./js/foundation.core.utils.js\");\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n } // Abstract class for providing lifecycle hooks. Expect plugins to define AT LEAST\n // {function} _setup (replaces previous constructor),\n // {function} _destroy (replaces previous destroy)\n\n\n var Plugin = /*#__PURE__*/function () {\n function Plugin(element, options) {\n _classCallCheck(this, Plugin);\n\n this._setup(element, options);\n\n var pluginName = getPluginName(this);\n this.uuid = Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_0__[\"GetYoDigits\"])(6, pluginName);\n\n if (!this.$element.attr(\"data-\".concat(pluginName))) {\n this.$element.attr(\"data-\".concat(pluginName), this.uuid);\n }\n\n if (!this.$element.data('zfPlugin')) {\n this.$element.data('zfPlugin', this);\n }\n /**\n * Fires when the plugin has initialized.\n * @event Plugin#init\n */\n\n\n this.$element.trigger(\"init.zf.\".concat(pluginName));\n }\n\n _createClass(Plugin, [{\n key: \"destroy\",\n value: function destroy() {\n this._destroy();\n\n var pluginName = getPluginName(this);\n this.$element.removeAttr(\"data-\".concat(pluginName)).removeData('zfPlugin')\n /**\n * Fires when the plugin has been destroyed.\n * @event Plugin#destroyed\n */\n .trigger(\"destroyed.zf.\".concat(pluginName));\n\n for (var prop in this) {\n if (this.hasOwnProperty(prop)) {\n this[prop] = null; //clean up script to prep for garbage collection.\n }\n }\n }\n }]);\n\n return Plugin;\n }(); // Convert PascalCase to kebab-case\n // Thank you: http://stackoverflow.com/a/8955580\n\n\n function hyphenate(str) {\n return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n }\n\n function getPluginName(obj) {\n return hyphenate(obj.className);\n }\n /***/\n\n },\n\n /***/\n \"./js/foundation.core.utils.js\":\n /*!*************************************!*\\\n !*** ./js/foundation.core.utils.js ***!\n \\*************************************/\n\n /*! exports provided: rtl, GetYoDigits, RegExpEscape, transitionend, onLoad, ignoreMousedisappear */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"rtl\", function () {\n return rtl;\n });\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"GetYoDigits\", function () {\n return GetYoDigits;\n });\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"RegExpEscape\", function () {\n return RegExpEscape;\n });\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"transitionend\", function () {\n return transitionend;\n });\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"onLoad\", function () {\n return onLoad;\n });\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"ignoreMousedisappear\", function () {\n return ignoreMousedisappear;\n });\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! jquery */\n \"jquery\");\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__); // Core Foundation Utilities, utilized in a number of places.\n\n /**\n * Returns a boolean for RTL support\n */\n\n\n function rtl() {\n return jquery__WEBPACK_IMPORTED_MODULE_0___default()('html').attr('dir') === 'rtl';\n }\n /**\n * returns a random base-36 uid with namespacing\n * @function\n * @param {Number} length - number of random base-36 digits desired. Increase for more random strings.\n * @param {String} namespace - name of plugin to be incorporated in uid, optional.\n * @default {String} '' - if no plugin name is provided, nothing is appended to the uid.\n * @returns {String} - unique id\n */\n\n\n function GetYoDigits() {\n var length = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 6;\n var namespace = arguments.length > 1 ? arguments[1] : undefined;\n var str = '';\n var chars = '0123456789abcdefghijklmnopqrstuvwxyz';\n var charsLength = chars.length;\n\n for (var i = 0; i < length; i++) {\n str += chars[Math.floor(Math.random() * charsLength)];\n }\n\n return namespace ? \"\".concat(str, \"-\").concat(namespace) : str;\n }\n /**\n * Escape a string so it can be used as a regexp pattern\n * @function\n * @see https://stackoverflow.com/a/9310752/4317384\n *\n * @param {String} str - string to escape.\n * @returns {String} - escaped string\n */\n\n\n function RegExpEscape(str) {\n return str.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n }\n\n function transitionend($elem) {\n var transitions = {\n 'transition': 'transitionend',\n 'WebkitTransition': 'webkitTransitionEnd',\n 'MozTransition': 'transitionend',\n 'OTransition': 'otransitionend'\n };\n var elem = document.createElement('div'),\n end;\n\n for (var transition in transitions) {\n if (typeof elem.style[transition] !== 'undefined') {\n end = transitions[transition];\n }\n }\n\n if (end) {\n return end;\n } else {\n setTimeout(function () {\n $elem.triggerHandler('transitionend', [$elem]);\n }, 1);\n return 'transitionend';\n }\n }\n /**\n * Return an event type to listen for window load.\n *\n * If `$elem` is passed, an event will be triggered on `$elem`. If window is already loaded, the event will still be triggered.\n * If `handler` is passed, attach it to the event on `$elem`.\n * Calling `onLoad` without handler allows you to get the event type that will be triggered before attaching the handler by yourself.\n * @function\n *\n * @param {Object} [] $elem - jQuery element on which the event will be triggered if passed.\n * @param {Function} [] handler - function to attach to the event.\n * @returns {String} - event type that should or will be triggered.\n */\n\n\n function onLoad($elem, handler) {\n var didLoad = document.readyState === 'complete';\n var eventType = (didLoad ? '_didLoad' : 'load') + '.zf.util.onLoad';\n\n var cb = function cb() {\n return $elem.triggerHandler(eventType);\n };\n\n if ($elem) {\n if (handler) $elem.one(eventType, handler);\n if (didLoad) setTimeout(cb);else jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).one('load', cb);\n }\n\n return eventType;\n }\n /**\n * Retuns an handler for the `mouseleave` that ignore disappeared mouses.\n *\n * If the mouse \"disappeared\" from the document (like when going on a browser UI element, See https://git.io/zf-11410),\n * the event is ignored.\n * - If the `ignoreLeaveWindow` is `true`, the event is ignored when the user actually left the window\n * (like by switching to an other window with [Alt]+[Tab]).\n * - If the `ignoreReappear` is `true`, the event will be ignored when the mouse will reappear later on the document\n * outside of the element it left.\n *\n * @function\n *\n * @param {Function} [] handler - handler for the filtered `mouseleave` event to watch.\n * @param {Object} [] options - object of options:\n * - {Boolean} [false] ignoreLeaveWindow - also ignore when the user switched windows.\n * - {Boolean} [false] ignoreReappear - also ignore when the mouse reappeared outside of the element it left.\n * @returns {Function} - filtered handler to use to listen on the `mouseleave` event.\n */\n\n\n function ignoreMousedisappear(handler) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$ignoreLeaveWindo = _ref.ignoreLeaveWindow,\n ignoreLeaveWindow = _ref$ignoreLeaveWindo === void 0 ? false : _ref$ignoreLeaveWindo,\n _ref$ignoreReappear = _ref.ignoreReappear,\n ignoreReappear = _ref$ignoreReappear === void 0 ? false : _ref$ignoreReappear;\n\n return function leaveEventHandler(eLeave) {\n for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n\n var callback = handler.bind.apply(handler, [this, eLeave].concat(rest)); // The mouse left: call the given callback if the mouse entered elsewhere\n\n if (eLeave.relatedTarget !== null) {\n return callback();\n } // Otherwise, check if the mouse actually left the window.\n // In firefox if the user switched between windows, the window sill have the focus by the time\n // the event is triggered. We have to debounce the event to test this case.\n\n\n setTimeout(function leaveEventDebouncer() {\n if (!ignoreLeaveWindow && document.hasFocus && !document.hasFocus()) {\n return callback();\n } // Otherwise, wait for the mouse to reeapear outside of the element,\n\n\n if (!ignoreReappear) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).one('mouseenter', function reenterEventHandler(eReenter) {\n if (!jquery__WEBPACK_IMPORTED_MODULE_0___default()(eLeave.currentTarget).has(eReenter.target).length) {\n // Fill where the mouse finally entered.\n eLeave.relatedTarget = eReenter.target;\n callback();\n }\n });\n }\n }, 0);\n };\n }\n /***/\n\n },\n\n /***/\n \"./js/foundation.util.mediaQuery.js\":\n /*!******************************************!*\\\n !*** ./js/foundation.util.mediaQuery.js ***!\n \\******************************************/\n\n /*! exports provided: MediaQuery */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"MediaQuery\", function () {\n return MediaQuery;\n });\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! jquery */\n \"jquery\");\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n }\n\n function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n\n function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n } // Default set of media queries\n // const defaultQueries = {\n // 'default' : 'only screen',\n // landscape : 'only screen and (orientation: landscape)',\n // portrait : 'only screen and (orientation: portrait)',\n // retina : 'only screen and (-webkit-min-device-pixel-ratio: 2),' +\n // 'only screen and (min--moz-device-pixel-ratio: 2),' +\n // 'only screen and (-o-min-device-pixel-ratio: 2/1),' +\n // 'only screen and (min-device-pixel-ratio: 2),' +\n // 'only screen and (min-resolution: 192dpi),' +\n // 'only screen and (min-resolution: 2dppx)'\n // };\n // matchMedia() polyfill - Test a CSS media type/query in JS.\n // Authors & copyright © 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. MIT license\n\n /* eslint-disable */\n\n\n window.matchMedia || (window.matchMedia = function () {\n \"use strict\"; // For browsers that support matchMedium api such as IE 9 and webkit\n\n var styleMedia = window.styleMedia || window.media; // For those that don't support matchMedium\n\n if (!styleMedia) {\n var style = document.createElement('style'),\n script = document.getElementsByTagName('script')[0],\n info = null;\n style.type = 'text/css';\n style.id = 'matchmediajs-test';\n\n if (!script) {\n document.head.appendChild(style);\n } else {\n script.parentNode.insertBefore(style, script);\n } // 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers\n\n\n info = 'getComputedStyle' in window && window.getComputedStyle(style, null) || style.currentStyle;\n styleMedia = {\n matchMedium: function matchMedium(media) {\n var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }'; // 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers\n\n if (style.styleSheet) {\n style.styleSheet.cssText = text;\n } else {\n style.textContent = text;\n } // Test if media query is true or false\n\n\n return info.width === '1px';\n }\n };\n }\n\n return function (media) {\n return {\n matches: styleMedia.matchMedium(media || 'all'),\n media: media || 'all'\n };\n };\n }());\n /* eslint-enable */\n\n var MediaQuery = {\n queries: [],\n current: '',\n\n /**\n * Initializes the media query helper, by extracting the breakpoint list from the CSS and activating the breakpoint watcher.\n * @function\n * @private\n */\n _init: function _init() {\n // make sure the initialization is only done once when calling _init() several times\n if (this.isInitialized === true) {\n return this;\n } else {\n this.isInitialized = true;\n }\n\n var self = this;\n var $meta = jquery__WEBPACK_IMPORTED_MODULE_0___default()('meta.foundation-mq');\n\n if (!$meta.length) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('').appendTo(document.head);\n }\n\n var extractedStyles = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.foundation-mq').css('font-family');\n var namedQueries;\n namedQueries = parseStyleToObject(extractedStyles);\n self.queries = []; // reset\n\n for (var key in namedQueries) {\n if (namedQueries.hasOwnProperty(key)) {\n self.queries.push({\n name: key,\n value: \"only screen and (min-width: \".concat(namedQueries[key], \")\")\n });\n }\n }\n\n this.current = this._getCurrentSize();\n\n this._watcher();\n },\n\n /**\n * Reinitializes the media query helper.\n * Useful if your CSS breakpoint configuration has just been loaded or has changed since the initialization.\n * @function\n * @private\n */\n _reInit: function _reInit() {\n this.isInitialized = false;\n\n this._init();\n },\n\n /**\n * Checks if the screen is at least as wide as a breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint to check.\n * @returns {Boolean} `true` if the breakpoint matches, `false` if it's smaller.\n */\n atLeast: function atLeast(size) {\n var query = this.get(size);\n\n if (query) {\n return window.matchMedia(query).matches;\n }\n\n return false;\n },\n\n /**\n * Checks if the screen is within the given breakpoint.\n * If smaller than the breakpoint of larger than its upper limit it returns false.\n * @function\n * @param {String} size - Name of the breakpoint to check.\n * @returns {Boolean} `true` if the breakpoint matches, `false` otherwise.\n */\n only: function only(size) {\n return size === this._getCurrentSize();\n },\n\n /**\n * Checks if the screen is within a breakpoint or smaller.\n * @function\n * @param {String} size - Name of the breakpoint to check.\n * @returns {Boolean} `true` if the breakpoint matches, `false` if it's larger.\n */\n upTo: function upTo(size) {\n var nextSize = this.next(size); // If the next breakpoint does not match, the screen is smaller than\n // the upper limit of this breakpoint.\n\n if (nextSize) {\n return !this.atLeast(nextSize);\n } // If there is no next breakpoint, the \"size\" breakpoint does not have\n // an upper limit and the screen will always be within it or smaller.\n\n\n return true;\n },\n\n /**\n * Checks if the screen matches to a breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint to check, either 'small only' or 'small'. Omitting 'only' falls back to using atLeast() method.\n * @returns {Boolean} `true` if the breakpoint matches, `false` if it does not.\n */\n is: function is(size) {\n var parts = size.trim().split(' ').filter(function (p) {\n return !!p.length;\n });\n\n var _parts = _slicedToArray(parts, 2),\n bpSize = _parts[0],\n _parts$ = _parts[1],\n bpModifier = _parts$ === void 0 ? '' : _parts$; // Only the breakpont\n\n\n if (bpModifier === 'only') {\n return this.only(bpSize);\n } // At least the breakpoint (included)\n\n\n if (!bpModifier || bpModifier === 'up') {\n return this.atLeast(bpSize);\n } // Up to the breakpoint (included)\n\n\n if (bpModifier === 'down') {\n return this.upTo(bpSize);\n }\n\n throw new Error(\"\\n Invalid breakpoint passed to MediaQuery.is().\\n Expected a breakpoint name formatted like \\\" \\\", got \\\"\".concat(size, \"\\\".\\n \"));\n },\n\n /**\n * Gets the media query of a breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint to get.\n * @returns {String|null} - The media query of the breakpoint, or `null` if the breakpoint doesn't exist.\n */\n get: function get(size) {\n for (var i in this.queries) {\n if (this.queries.hasOwnProperty(i)) {\n var query = this.queries[i];\n if (size === query.name) return query.value;\n }\n }\n\n return null;\n },\n\n /**\n * Get the breakpoint following the given breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint.\n * @returns {String|null} - The name of the following breakpoint, or `null` if the passed breakpoint was the last one.\n */\n next: function next(size) {\n var _this = this;\n\n var queryIndex = this.queries.findIndex(function (q) {\n return _this._getQueryName(q) === size;\n });\n\n if (queryIndex === -1) {\n throw new Error(\"\\n Unknown breakpoint \\\"\".concat(size, \"\\\" passed to MediaQuery.next().\\n Ensure it is present in your Sass \\\"$breakpoints\\\" setting.\\n \"));\n }\n\n var nextQuery = this.queries[queryIndex + 1];\n return nextQuery ? nextQuery.name : null;\n },\n\n /**\n * Returns the name of the breakpoint related to the given value.\n * @function\n * @private\n * @param {String|Object} value - Breakpoint name or query object.\n * @returns {String} Name of the breakpoint.\n */\n _getQueryName: function _getQueryName(value) {\n if (typeof value === 'string') return value;\n if (_typeof(value) === 'object') return value.name;\n throw new TypeError(\"\\n Invalid value passed to MediaQuery._getQueryName().\\n Expected a breakpoint name (String) or a breakpoint query (Object), got \\\"\".concat(value, \"\\\" (\").concat(_typeof(value), \")\\n \"));\n },\n\n /**\n * Gets the current breakpoint name by testing every breakpoint and returning the last one to match (the biggest one).\n * @function\n * @private\n * @returns {String} Name of the current breakpoint.\n */\n _getCurrentSize: function _getCurrentSize() {\n var matched;\n\n for (var i = 0; i < this.queries.length; i++) {\n var query = this.queries[i];\n\n if (window.matchMedia(query.value).matches) {\n matched = query;\n }\n }\n\n return matched && this._getQueryName(matched);\n },\n\n /**\n * Activates the breakpoint watcher, which fires an event on the window whenever the breakpoint changes.\n * @function\n * @private\n */\n _watcher: function _watcher() {\n var _this2 = this;\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('resize.zf.trigger', function () {\n var newSize = _this2._getCurrentSize(),\n currentSize = _this2.current;\n\n if (newSize !== currentSize) {\n // Change the current media query\n _this2.current = newSize; // Broadcast the media query change on the window\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).trigger('changed.zf.mediaquery', [newSize, currentSize]);\n }\n });\n }\n }; // Thank you: https://github.com/sindresorhus/query-string\n\n function parseStyleToObject(str) {\n var styleObject = {};\n\n if (typeof str !== 'string') {\n return styleObject;\n }\n\n str = str.trim().slice(1, -1); // browsers re-quote string style values\n\n if (!str) {\n return styleObject;\n }\n\n styleObject = str.split('&').reduce(function (ret, param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = parts[0];\n var val = parts[1];\n key = decodeURIComponent(key); // missing `=` should be `null`:\n // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\n val = typeof val === 'undefined' ? null : decodeURIComponent(val);\n\n if (!ret.hasOwnProperty(key)) {\n ret[key] = val;\n } else if (Array.isArray(ret[key])) {\n ret[key].push(val);\n } else {\n ret[key] = [ret[key], val];\n }\n\n return ret;\n }, {});\n return styleObject;\n }\n /***/\n\n },\n\n /***/\n 0:\n /*!*****************************************************!*\\\n !*** multi ./js/entries/plugins/foundation.core.js ***!\n \\*****************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports, __webpack_require__) {\n module.exports = __webpack_require__(\n /*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.core.js */\n \"./js/entries/plugins/foundation.core.js\");\n /***/\n },\n\n /***/\n \"jquery\":\n /*!********************************************************************************************!*\\\n !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n \\********************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n /***/\n }\n /******/\n\n })\n );\n});","!function (e, n) {\n \"object\" == typeof exports && \"object\" == typeof module ? module.exports = n(require(\"./foundation.core\"), require(\"./foundation.util.box\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.nest\"), require(\"./foundation.util.touch\"), require(\"jquery\")) : \"function\" == typeof define && define.amd ? define([\"./foundation.core\", \"./foundation.util.box\", \"./foundation.util.keyboard\", \"./foundation.util.nest\", \"./foundation.util.touch\", \"jquery\"], n) : \"object\" == typeof exports ? exports[\"foundation.dropdownMenu\"] = n(require(\"./foundation.core\"), require(\"./foundation.util.box\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.nest\"), require(\"./foundation.util.touch\"), require(\"jquery\")) : (e.__FOUNDATION_EXTERNAL__ = e.__FOUNDATION_EXTERNAL__ || {}, e.__FOUNDATION_EXTERNAL__[\"foundation.dropdownMenu\"] = n(e.__FOUNDATION_EXTERNAL__[\"foundation.core\"], e.__FOUNDATION_EXTERNAL__[\"foundation.util.box\"], e.__FOUNDATION_EXTERNAL__[\"foundation.util.keyboard\"], e.__FOUNDATION_EXTERNAL__[\"foundation.util.nest\"], e.__FOUNDATION_EXTERNAL__[\"foundation.util.touch\"], e.jQuery));\n}(window, function (t, o, i, r, s, u) {\n return d = {\n \"./foundation.core\": function (e, n) {\n e.exports = t;\n },\n \"./foundation.util.box\": function (e, n) {\n e.exports = o;\n },\n \"./foundation.util.keyboard\": function (e, n) {\n e.exports = i;\n },\n \"./foundation.util.nest\": function (e, n) {\n e.exports = r;\n },\n \"./foundation.util.touch\": function (e, n) {\n e.exports = s;\n },\n \"./js/entries/plugins/foundation.dropdownMenu.js\": function (e, n, t) {\n \"use strict\";\n\n t.r(n);\n var o = t(\"./foundation.core\");\n t.d(n, \"Foundation\", function () {\n return o.Foundation;\n });\n var i = t(\"./js/foundation.dropdownMenu.js\");\n t.d(n, \"DropdownMenu\", function () {\n return i.DropdownMenu;\n }), o.Foundation.plugin(i.DropdownMenu, \"DropdownMenu\");\n },\n \"./js/foundation.dropdownMenu.js\": function (e, n, t) {\n \"use strict\";\n\n t.r(n), t.d(n, \"DropdownMenu\", function () {\n return o;\n });\n var n = t(\"jquery\"),\n f = t.n(n),\n u = t(\"./foundation.core\"),\n p = t(\"./foundation.util.keyboard\"),\n r = t(\"./foundation.util.nest\"),\n s = t(\"./foundation.util.box\"),\n a = t(\"./foundation.util.touch\");\n\n function i(e) {\n return (i = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (e) {\n return typeof e;\n } : function (e) {\n return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n })(e);\n }\n\n function d(e, n) {\n for (var t = 0; t < n.length; t++) {\n var o = n[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);\n }\n }\n\n function l(e, n) {\n return (l = Object.setPrototypeOf || function (e, n) {\n return e.__proto__ = n, e;\n })(e, n);\n }\n\n function c(t) {\n var o = function () {\n if (\"undefined\" == typeof Reflect || !Reflect.construct) return !1;\n if (Reflect.construct.sham) return !1;\n if (\"function\" == typeof Proxy) return !0;\n\n try {\n return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})), !0;\n } catch (e) {\n return !1;\n }\n }();\n\n return function () {\n var e,\n n = h(t);\n return function (e, n) {\n {\n if (n && (\"object\" === i(n) || \"function\" == typeof n)) return n;\n if (void 0 !== n) throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return function (e) {\n if (void 0 !== e) return e;\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }(e);\n }(this, o ? (e = h(this).constructor, Reflect.construct(n, arguments, e)) : n.apply(this, arguments));\n };\n }\n\n function h(e) {\n return (h = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {\n return e.__proto__ || Object.getPrototypeOf(e);\n })(e);\n }\n\n var o = function () {\n !function (e, n) {\n if (\"function\" != typeof n && null !== n) throw new TypeError(\"Super expression must either be null or a function\");\n e.prototype = Object.create(n && n.prototype, {\n constructor: {\n value: e,\n writable: !0,\n configurable: !0\n }\n }), n && l(e, n);\n }(i, u[\"Plugin\"]);\n var e,\n n,\n t,\n o = c(i);\n\n function i() {\n return function (e, n) {\n if (!(e instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, i), o.apply(this, arguments);\n }\n\n return e = i, (n = [{\n key: \"_setup\",\n value: function (e, n) {\n this.$element = e, this.options = f.a.extend({}, i.defaults, this.$element.data(), n), this.className = \"DropdownMenu\", a.Touch.init(f.a), this._init(), p.Keyboard.register(\"DropdownMenu\", {\n ENTER: \"open\",\n SPACE: \"open\",\n ARROW_RIGHT: \"next\",\n ARROW_UP: \"up\",\n ARROW_DOWN: \"down\",\n ARROW_LEFT: \"previous\",\n ESCAPE: \"close\"\n });\n }\n }, {\n key: \"_init\",\n value: function () {\n r.Nest.Feather(this.$element, \"dropdown\");\n var e = this.$element.find(\"li.is-dropdown-submenu-parent\");\n this.$element.children(\".is-dropdown-submenu-parent\").children(\".is-dropdown-submenu\").addClass(\"first-sub\"), this.$menuItems = this.$element.find('li[role=\"none\"]'), this.$tabs = this.$element.children('li[role=\"none\"]'), this.$tabs.find(\"ul.is-dropdown-submenu\").addClass(this.options.verticalClass), \"auto\" === this.options.alignment ? this.$element.hasClass(this.options.rightClass) || Object(u.rtl)() || this.$element.parents(\".top-bar-right\").is(\"*\") ? (this.options.alignment = \"right\", e.addClass(\"opens-left\")) : (this.options.alignment = \"left\", e.addClass(\"opens-right\")) : \"right\" === this.options.alignment ? e.addClass(\"opens-left\") : e.addClass(\"opens-right\"), this.changed = !1, this._events();\n }\n }, {\n key: \"_isVertical\",\n value: function () {\n return \"block\" === this.$tabs.css(\"display\") || \"column\" === this.$element.css(\"flex-direction\");\n }\n }, {\n key: \"_isRtl\",\n value: function () {\n return this.$element.hasClass(\"align-right\") || Object(u.rtl)() && !this.$element.hasClass(\"align-left\");\n }\n }, {\n key: \"_events\",\n value: function () {\n var c = this,\n r = \"ontouchstart\" in window || void 0 !== window.ontouchstart,\n s = \"is-dropdown-submenu-parent\";\n (this.options.clickOpen || r) && this.$menuItems.on(\"click.zf.dropdownMenu touchstart.zf.dropdownMenu\", function (e) {\n var n = f()(e.target).parentsUntil(\"ul\", \".\".concat(s)),\n t = n.hasClass(s),\n o = \"true\" === n.attr(\"data-is-click\"),\n i = n.children(\".is-dropdown-submenu\");\n t && (o ? !c.options.closeOnClick || !c.options.clickOpen && !r || c.options.forceFollow && r || (e.stopImmediatePropagation(), e.preventDefault(), c._hide(n)) : (e.stopImmediatePropagation(), e.preventDefault(), c._show(i), n.add(n.parentsUntil(c.$element, \".\".concat(s))).attr(\"data-is-click\", !0)));\n }), c.options.closeOnClickInside && this.$menuItems.on(\"click.zf.dropdownMenu\", function () {\n f()(this).hasClass(s) || c._hide();\n }), r && this.options.disableHoverOnTouch && (this.options.disableHover = !0), this.options.disableHover || this.$menuItems.on(\"mouseenter.zf.dropdownMenu\", function () {\n var e = f()(this);\n e.hasClass(s) && (clearTimeout(e.data(\"_delay\")), e.data(\"_delay\", setTimeout(function () {\n c._show(e.children(\".is-dropdown-submenu\"));\n }, c.options.hoverDelay)));\n }).on(\"mouseleave.zf.dropdownMenu\", Object(u.ignoreMousedisappear)(function () {\n var e = f()(this);\n\n if (e.hasClass(s) && c.options.autoclose) {\n if (\"true\" === e.attr(\"data-is-click\") && c.options.clickOpen) return !1;\n clearTimeout(e.data(\"_delay\")), e.data(\"_delay\", setTimeout(function () {\n c._hide(e);\n }, c.options.closingTime));\n }\n })), this.$menuItems.on(\"keydown.zf.dropdownMenu\", function (n) {\n var t,\n o,\n i = f()(n.target).parentsUntil(\"ul\", '[role=\"none\"]'),\n e = -1 < c.$tabs.index(i),\n r = e ? c.$tabs : i.siblings(\"li\").add(i);\n r.each(function (e) {\n f()(this).is(i) && (t = r.eq(e - 1), o = r.eq(e + 1));\n });\n\n function s() {\n o.children(\"a:first\").focus(), n.preventDefault();\n }\n\n function u() {\n t.children(\"a:first\").focus(), n.preventDefault();\n }\n\n function a() {\n var e = i.children(\"ul.is-dropdown-submenu\");\n e.length && (c._show(e), i.find(\"li > a:first\").focus(), n.preventDefault());\n }\n\n function d() {\n var e = i.parent(\"ul\").parent(\"li\");\n e.children(\"a:first\").focus(), c._hide(e), n.preventDefault();\n }\n\n var l = {\n open: a,\n close: function () {\n c._hide(c.$element), c.$menuItems.eq(0).children(\"a\").focus(), n.preventDefault();\n }\n };\n e ? c._isVertical() ? c._isRtl() ? f.a.extend(l, {\n down: s,\n up: u,\n next: d,\n previous: a\n }) : f.a.extend(l, {\n down: s,\n up: u,\n next: a,\n previous: d\n }) : c._isRtl() ? f.a.extend(l, {\n next: u,\n previous: s,\n down: a,\n up: d\n }) : f.a.extend(l, {\n next: s,\n previous: u,\n down: a,\n up: d\n }) : c._isRtl() ? f.a.extend(l, {\n next: d,\n previous: a,\n down: s,\n up: u\n }) : f.a.extend(l, {\n next: a,\n previous: d,\n down: s,\n up: u\n }), p.Keyboard.handleKey(n, \"DropdownMenu\", l);\n });\n }\n }, {\n key: \"_addBodyHandler\",\n value: function () {\n var n = this,\n e = f()(document.body);\n this._removeBodyHandler(), e.on(\"click.zf.dropdownMenu tap.zf.dropdownMenu\", function (e) {\n !f()(e.target).closest(n.$element).length && (n._hide(), n._removeBodyHandler());\n });\n }\n }, {\n key: \"_removeBodyHandler\",\n value: function () {\n f()(document.body).off(\"click.zf.dropdownMenu tap.zf.dropdownMenu\");\n }\n }, {\n key: \"_show\",\n value: function (t) {\n var e = this.$tabs.index(this.$tabs.filter(function (e, n) {\n return 0 < f()(n).find(t).length;\n })),\n n = t.parent(\"li.is-dropdown-submenu-parent\").siblings(\"li.is-dropdown-submenu-parent\");\n this._hide(n, e), t.css(\"visibility\", \"hidden\").addClass(\"js-dropdown-active\").parent(\"li.is-dropdown-submenu-parent\").addClass(\"is-active\"), s.Box.ImNotTouchingYou(t, null, !0) || (n = \"left\" === this.options.alignment ? \"-right\" : \"-left\", (e = t.parent(\".is-dropdown-submenu-parent\")).removeClass(\"opens\".concat(n)).addClass(\"opens-\".concat(this.options.alignment)), s.Box.ImNotTouchingYou(t, null, !0) || e.removeClass(\"opens-\".concat(this.options.alignment)).addClass(\"opens-inner\"), this.changed = !0), t.css(\"visibility\", \"\"), this.options.closeOnClick && this._addBodyHandler(), this.$element.trigger(\"show.zf.dropdownMenu\", [t]);\n }\n }, {\n key: \"_hide\",\n value: function (e, n) {\n var t,\n o = e && e.length ? e : void 0 !== n ? this.$tabs.not(function (e) {\n return e === n;\n }) : this.$element;\n (o.hasClass(\"is-active\") || 0 < o.find(\".is-active\").length) && ((t = o.find(\"li.is-active\")).add(o).attr({\n \"data-is-click\": !1\n }).removeClass(\"is-active\"), o.find(\"ul.js-dropdown-active\").removeClass(\"js-dropdown-active\"), (this.changed || o.find(\"opens-inner\").length) && (e = \"left\" === this.options.alignment ? \"right\" : \"left\", o.find(\"li.is-dropdown-submenu-parent\").add(o).removeClass(\"opens-inner opens-\".concat(this.options.alignment)).addClass(\"opens-\".concat(e)), this.changed = !1), clearTimeout(t.data(\"_delay\")), this._removeBodyHandler(), this.$element.trigger(\"hide.zf.dropdownMenu\", [o]));\n }\n }, {\n key: \"_destroy\",\n value: function () {\n this.$menuItems.off(\".zf.dropdownMenu\").removeAttr(\"data-is-click\").removeClass(\"is-right-arrow is-left-arrow is-down-arrow opens-right opens-left opens-inner\"), f()(document.body).off(\".zf.dropdownMenu\"), r.Nest.Burn(this.$element, \"dropdown\");\n }\n }]) && d(e.prototype, n), t && d(e, t), i;\n }();\n\n o.defaults = {\n disableHover: !1,\n disableHoverOnTouch: !0,\n autoclose: !0,\n hoverDelay: 50,\n clickOpen: !1,\n closingTime: 500,\n alignment: \"auto\",\n closeOnClick: !0,\n closeOnClickInside: !0,\n verticalClass: \"vertical\",\n rightClass: \"align-right\",\n forceFollow: !0\n };\n },\n 5: function (e, n, t) {\n e.exports = t(\"./js/entries/plugins/foundation.dropdownMenu.js\");\n },\n jquery: function (e, n) {\n e.exports = u;\n }\n }, l = {}, a.m = d, a.c = l, a.d = function (e, n, t) {\n a.o(e, n) || Object.defineProperty(e, n, {\n enumerable: !0,\n get: t\n });\n }, a.r = function (e) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n }, a.t = function (n, e) {\n if (1 & e && (n = a(n)), 8 & e) return n;\n if (4 & e && \"object\" == typeof n && n && n.__esModule) return n;\n var t = Object.create(null);\n if (a.r(t), Object.defineProperty(t, \"default\", {\n enumerable: !0,\n value: n\n }), 2 & e && \"string\" != typeof n) for (var o in n) a.d(t, o, function (e) {\n return n[e];\n }.bind(null, o));\n return t;\n }, a.n = function (e) {\n var n = e && e.__esModule ? function () {\n return e.default;\n } : function () {\n return e;\n };\n return a.d(n, \"a\", n), n;\n }, a.o = function (e, n) {\n return Object.prototype.hasOwnProperty.call(e, n);\n }, a.p = \"\", a(a.s = 5);\n\n function a(e) {\n if (l[e]) return l[e].exports;\n var n = l[e] = {\n i: e,\n l: !1,\n exports: {}\n };\n return d[e].call(n.exports, n, n.exports, a), n.l = !0, n.exports;\n }\n\n var d, l;\n});","(function webpackUniversalModuleDefinition(root, factory) {\n if (typeof exports === 'object' && typeof module === 'object') module.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.imageLoader\"), require(\"./foundation.util.mediaQuery\"), require(\"jquery\"));else if (typeof define === 'function' && define.amd) define([\"./foundation.core\", \"./foundation.util.imageLoader\", \"./foundation.util.mediaQuery\", \"jquery\"], factory);else if (typeof exports === 'object') exports[\"foundation.equalizer\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.imageLoader\"), require(\"./foundation.util.mediaQuery\"), require(\"jquery\"));else root[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.equalizer\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.imageLoader\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.mediaQuery\"], root[\"jQuery\"]);\n})(window, function (__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_imageLoader__, __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\n return (\n /******/\n function (modules) {\n // webpackBootstrap\n\n /******/\n // The module cache\n\n /******/\n var installedModules = {};\n /******/\n\n /******/\n // The require function\n\n /******/\n\n function __webpack_require__(moduleId) {\n /******/\n\n /******/\n // Check if module is in cache\n\n /******/\n if (installedModules[moduleId]) {\n /******/\n return installedModules[moduleId].exports;\n /******/\n }\n /******/\n // Create a new module (and put it into the cache)\n\n /******/\n\n\n var module = installedModules[moduleId] = {\n /******/\n i: moduleId,\n\n /******/\n l: false,\n\n /******/\n exports: {}\n /******/\n\n };\n /******/\n\n /******/\n // Execute the module function\n\n /******/\n\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n /******/\n\n /******/\n // Flag the module as loaded\n\n /******/\n\n module.l = true;\n /******/\n\n /******/\n // Return the exports of the module\n\n /******/\n\n return module.exports;\n /******/\n }\n /******/\n\n /******/\n\n /******/\n // expose the modules object (__webpack_modules__)\n\n /******/\n\n\n __webpack_require__.m = modules;\n /******/\n\n /******/\n // expose the module cache\n\n /******/\n\n __webpack_require__.c = installedModules;\n /******/\n\n /******/\n // define getter function for harmony exports\n\n /******/\n\n __webpack_require__.d = function (exports, name, getter) {\n /******/\n if (!__webpack_require__.o(exports, name)) {\n /******/\n Object.defineProperty(exports, name, {\n enumerable: true,\n get: getter\n });\n /******/\n }\n /******/\n\n };\n /******/\n\n /******/\n // define __esModule on exports\n\n /******/\n\n\n __webpack_require__.r = function (exports) {\n /******/\n if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n /******/\n Object.defineProperty(exports, Symbol.toStringTag, {\n value: 'Module'\n });\n /******/\n }\n /******/\n\n\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n /******/\n };\n /******/\n\n /******/\n // create a fake namespace object\n\n /******/\n // mode & 1: value is a module id, require it\n\n /******/\n // mode & 2: merge all properties of value into the ns\n\n /******/\n // mode & 4: return value when already ns object\n\n /******/\n // mode & 8|1: behave like require\n\n /******/\n\n\n __webpack_require__.t = function (value, mode) {\n /******/\n if (mode & 1) value = __webpack_require__(value);\n /******/\n\n if (mode & 8) return value;\n /******/\n\n if (mode & 4 && typeof value === 'object' && value && value.__esModule) return value;\n /******/\n\n var ns = Object.create(null);\n /******/\n\n __webpack_require__.r(ns);\n /******/\n\n\n Object.defineProperty(ns, 'default', {\n enumerable: true,\n value: value\n });\n /******/\n\n if (mode & 2 && typeof value != 'string') for (var key in value) __webpack_require__.d(ns, key, function (key) {\n return value[key];\n }.bind(null, key));\n /******/\n\n return ns;\n /******/\n };\n /******/\n\n /******/\n // getDefaultExport function for compatibility with non-harmony modules\n\n /******/\n\n\n __webpack_require__.n = function (module) {\n /******/\n var getter = module && module.__esModule ?\n /******/\n function getDefault() {\n return module['default'];\n } :\n /******/\n function getModuleExports() {\n return module;\n };\n /******/\n\n __webpack_require__.d(getter, 'a', getter);\n /******/\n\n\n return getter;\n /******/\n };\n /******/\n\n /******/\n // Object.prototype.hasOwnProperty.call\n\n /******/\n\n\n __webpack_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n /******/\n\n /******/\n // __webpack_public_path__\n\n /******/\n\n\n __webpack_require__.p = \"\";\n /******/\n\n /******/\n\n /******/\n // Load entry module and return exports\n\n /******/\n\n return __webpack_require__(__webpack_require__.s = 6);\n /******/\n }\n /************************************************************************/\n\n /******/\n ({\n /***/\n \"./foundation.core\":\n /*!****************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n \\****************************************************************************************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n /***/\n },\n\n /***/\n \"./foundation.util.imageLoader\":\n /*!****************************************************************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.imageLoader\"],\"amd\":\"./foundation.util.imageLoader\",\"commonjs\":\"./foundation.util.imageLoader\",\"commonjs2\":\"./foundation.util.imageLoader\"} ***!\n \\****************************************************************************************************************************************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_imageLoader__;\n /***/\n },\n\n /***/\n \"./foundation.util.mediaQuery\":\n /*!************************************************************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.mediaQuery\"],\"amd\":\"./foundation.util.mediaQuery\",\"commonjs\":\"./foundation.util.mediaQuery\",\"commonjs2\":\"./foundation.util.mediaQuery\"} ***!\n \\************************************************************************************************************************************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__;\n /***/\n },\n\n /***/\n \"./js/entries/plugins/foundation.equalizer.js\":\n /*!****************************************************!*\\\n !*** ./js/entries/plugins/foundation.equalizer.js ***!\n \\****************************************************/\n\n /*! exports provided: Foundation, Equalizer */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! ./foundation.core */\n \"./foundation.core\");\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Foundation\", function () {\n return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"];\n });\n /* harmony import */\n\n\n var _foundation_equalizer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! ../../foundation.equalizer */\n \"./js/foundation.equalizer.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Equalizer\", function () {\n return _foundation_equalizer__WEBPACK_IMPORTED_MODULE_1__[\"Equalizer\"];\n });\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].plugin(_foundation_equalizer__WEBPACK_IMPORTED_MODULE_1__[\"Equalizer\"], 'Equalizer');\n /***/\n\n },\n\n /***/\n \"./js/foundation.equalizer.js\":\n /*!************************************!*\\\n !*** ./js/foundation.equalizer.js ***!\n \\************************************/\n\n /*! exports provided: Equalizer */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Equalizer\", function () {\n return Equalizer;\n });\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! jquery */\n \"jquery\");\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */\n\n\n var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! ./foundation.util.mediaQuery */\n \"./foundation.util.mediaQuery\");\n /* harmony import */\n\n\n var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__);\n /* harmony import */\n\n\n var _foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\n /*! ./foundation.util.imageLoader */\n \"./foundation.util.imageLoader\");\n /* harmony import */\n\n\n var _foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_2__);\n /* harmony import */\n\n\n var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(\n /*! ./foundation.core.utils */\n \"./foundation.core\");\n /* harmony import */\n\n\n var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__);\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n }\n\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n /**\n * Equalizer module.\n * @module foundation.equalizer\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.imageLoader if equalizer contains images\n */\n\n\n var Equalizer = /*#__PURE__*/function (_Plugin) {\n _inherits(Equalizer, _Plugin);\n\n var _super = _createSuper(Equalizer);\n\n function Equalizer() {\n _classCallCheck(this, Equalizer);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Equalizer, [{\n key: \"_setup\",\n value:\n /**\n * Creates a new instance of Equalizer.\n * @class\n * @name Equalizer\n * @fires Equalizer#init\n * @param {Object} element - jQuery object to add the trigger to.\n * @param {Object} options - Overrides to the default plugin settings.\n */\n function _setup(element, options) {\n this.$element = element;\n this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, Equalizer.defaults, this.$element.data(), options);\n this.className = 'Equalizer'; // ie9 back compat\n\n this._init();\n }\n /**\n * Initializes the Equalizer plugin and calls functions to get equalizer functioning on load.\n * @private\n */\n\n }, {\n key: \"_init\",\n value: function _init() {\n var eqId = this.$element.attr('data-equalizer') || '';\n var $watched = this.$element.find(\"[data-equalizer-watch=\\\"\".concat(eqId, \"\\\"]\"));\n\n _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__[\"MediaQuery\"]._init();\n\n this.$watched = $watched.length ? $watched : this.$element.find('[data-equalizer-watch]');\n this.$element.attr('data-resize', eqId || Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"GetYoDigits\"])(6, 'eq'));\n this.$element.attr('data-mutate', eqId || Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"GetYoDigits\"])(6, 'eq'));\n this.hasNested = this.$element.find('[data-equalizer]').length > 0;\n this.isNested = this.$element.parentsUntil(document.body, '[data-equalizer]').length > 0;\n this.isOn = false;\n this._bindHandler = {\n onResizeMeBound: this._onResizeMe.bind(this),\n onPostEqualizedBound: this._onPostEqualized.bind(this)\n };\n var imgs = this.$element.find('img');\n var tooSmall;\n\n if (this.options.equalizeOn) {\n tooSmall = this._checkMQ();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('changed.zf.mediaquery', this._checkMQ.bind(this));\n } else {\n this._events();\n }\n\n if (typeof tooSmall !== 'undefined' && tooSmall === false || typeof tooSmall === 'undefined') {\n if (imgs.length) {\n Object(_foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_2__[\"onImagesLoaded\"])(imgs, this._reflow.bind(this));\n } else {\n this._reflow();\n }\n }\n }\n /**\n * Removes event listeners if the breakpoint is too small.\n * @private\n */\n\n }, {\n key: \"_pauseEvents\",\n value: function _pauseEvents() {\n this.isOn = false;\n this.$element.off({\n '.zf.equalizer': this._bindHandler.onPostEqualizedBound,\n 'resizeme.zf.trigger': this._bindHandler.onResizeMeBound,\n 'mutateme.zf.trigger': this._bindHandler.onResizeMeBound\n });\n }\n /**\n * function to handle $elements resizeme.zf.trigger, with bound this on _bindHandler.onResizeMeBound\n * @private\n */\n\n }, {\n key: \"_onResizeMe\",\n value: function _onResizeMe() {\n this._reflow();\n }\n /**\n * function to handle $elements postequalized.zf.equalizer, with bound this on _bindHandler.onPostEqualizedBound\n * @private\n */\n\n }, {\n key: \"_onPostEqualized\",\n value: function _onPostEqualized(e) {\n if (e.target !== this.$element[0]) {\n this._reflow();\n }\n }\n /**\n * Initializes events for Equalizer.\n * @private\n */\n\n }, {\n key: \"_events\",\n value: function _events() {\n this._pauseEvents();\n\n if (this.hasNested) {\n this.$element.on('postequalized.zf.equalizer', this._bindHandler.onPostEqualizedBound);\n } else {\n this.$element.on('resizeme.zf.trigger', this._bindHandler.onResizeMeBound);\n this.$element.on('mutateme.zf.trigger', this._bindHandler.onResizeMeBound);\n }\n\n this.isOn = true;\n }\n /**\n * Checks the current breakpoint to the minimum required size.\n * @private\n */\n\n }, {\n key: \"_checkMQ\",\n value: function _checkMQ() {\n var tooSmall = !_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__[\"MediaQuery\"].is(this.options.equalizeOn);\n\n if (tooSmall) {\n if (this.isOn) {\n this._pauseEvents();\n\n this.$watched.css('height', 'auto');\n }\n } else {\n if (!this.isOn) {\n this._events();\n }\n }\n\n return tooSmall;\n }\n /**\n * A noop version for the plugin\n * @private\n */\n\n }, {\n key: \"_killswitch\",\n value: function _killswitch() {\n return;\n }\n /**\n * Calls necessary functions to update Equalizer upon DOM change\n * @private\n */\n\n }, {\n key: \"_reflow\",\n value: function _reflow() {\n if (!this.options.equalizeOnStack) {\n if (this._isStacked()) {\n this.$watched.css('height', 'auto');\n return false;\n }\n }\n\n if (this.options.equalizeByRow) {\n this.getHeightsByRow(this.applyHeightByRow.bind(this));\n } else {\n this.getHeights(this.applyHeight.bind(this));\n }\n }\n /**\n * Manually determines if the first 2 elements are *NOT* stacked.\n * @private\n */\n\n }, {\n key: \"_isStacked\",\n value: function _isStacked() {\n if (!this.$watched[0] || !this.$watched[1]) {\n return true;\n }\n\n return this.$watched[0].getBoundingClientRect().top !== this.$watched[1].getBoundingClientRect().top;\n }\n /**\n * Finds the outer heights of children contained within an Equalizer parent and returns them in an array\n * @param {Function} cb - A non-optional callback to return the heights array to.\n * @returns {Array} heights - An array of heights of children within Equalizer container\n */\n\n }, {\n key: \"getHeights\",\n value: function getHeights(cb) {\n var heights = [];\n\n for (var i = 0, len = this.$watched.length; i < len; i++) {\n this.$watched[i].style.height = 'auto';\n heights.push(this.$watched[i].offsetHeight);\n }\n\n cb(heights);\n }\n /**\n * Finds the outer heights of children contained within an Equalizer parent and returns them in an array\n * @param {Function} cb - A non-optional callback to return the heights array to.\n * @returns {Array} groups - An array of heights of children within Equalizer container grouped by row with element,height and max as last child\n */\n\n }, {\n key: \"getHeightsByRow\",\n value: function getHeightsByRow(cb) {\n var lastElTopOffset = this.$watched.length ? this.$watched.first().offset().top : 0,\n groups = [],\n group = 0; //group by Row\n\n groups[group] = [];\n\n for (var i = 0, len = this.$watched.length; i < len; i++) {\n this.$watched[i].style.height = 'auto'; //maybe could use this.$watched[i].offsetTop\n\n var elOffsetTop = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.$watched[i]).offset().top;\n\n if (elOffsetTop !== lastElTopOffset) {\n group++;\n groups[group] = [];\n lastElTopOffset = elOffsetTop;\n }\n\n groups[group].push([this.$watched[i], this.$watched[i].offsetHeight]);\n }\n\n for (var j = 0, ln = groups.length; j < ln; j++) {\n var heights = jquery__WEBPACK_IMPORTED_MODULE_0___default()(groups[j]).map(function () {\n return this[1];\n }).get();\n var max = Math.max.apply(null, heights);\n groups[j].push(max);\n }\n\n cb(groups);\n }\n /**\n * Changes the CSS height property of each child in an Equalizer parent to match the tallest\n * @param {array} heights - An array of heights of children within Equalizer container\n * @fires Equalizer#preequalized\n * @fires Equalizer#postequalized\n */\n\n }, {\n key: \"applyHeight\",\n value: function applyHeight(heights) {\n var max = Math.max.apply(null, heights);\n /**\n * Fires before the heights are applied\n * @event Equalizer#preequalized\n */\n\n this.$element.trigger('preequalized.zf.equalizer');\n this.$watched.css('height', max);\n /**\n * Fires when the heights have been applied\n * @event Equalizer#postequalized\n */\n\n this.$element.trigger('postequalized.zf.equalizer');\n }\n /**\n * Changes the CSS height property of each child in an Equalizer parent to match the tallest by row\n * @param {array} groups - An array of heights of children within Equalizer container grouped by row with element,height and max as last child\n * @fires Equalizer#preequalized\n * @fires Equalizer#preequalizedrow\n * @fires Equalizer#postequalizedrow\n * @fires Equalizer#postequalized\n */\n\n }, {\n key: \"applyHeightByRow\",\n value: function applyHeightByRow(groups) {\n /**\n * Fires before the heights are applied\n */\n this.$element.trigger('preequalized.zf.equalizer');\n\n for (var i = 0, len = groups.length; i < len; i++) {\n var groupsILength = groups[i].length,\n max = groups[i][groupsILength - 1];\n\n if (groupsILength <= 2) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(groups[i][0][0]).css({\n 'height': 'auto'\n });\n continue;\n }\n /**\n * Fires before the heights per row are applied\n * @event Equalizer#preequalizedrow\n */\n\n\n this.$element.trigger('preequalizedrow.zf.equalizer');\n\n for (var j = 0, lenJ = groupsILength - 1; j < lenJ; j++) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(groups[i][j][0]).css({\n 'height': max\n });\n }\n /**\n * Fires when the heights per row have been applied\n * @event Equalizer#postequalizedrow\n */\n\n\n this.$element.trigger('postequalizedrow.zf.equalizer');\n }\n /**\n * Fires when the heights have been applied\n */\n\n\n this.$element.trigger('postequalized.zf.equalizer');\n }\n /**\n * Destroys an instance of Equalizer.\n * @function\n */\n\n }, {\n key: \"_destroy\",\n value: function _destroy() {\n this._pauseEvents();\n\n this.$watched.css('height', 'auto');\n }\n }]);\n\n return Equalizer;\n }(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"Plugin\"]);\n /**\n * Default settings for plugin\n */\n\n\n Equalizer.defaults = {\n /**\n * Enable height equalization when stacked on smaller screens.\n * @option\n * @type {boolean}\n * @default false\n */\n equalizeOnStack: false,\n\n /**\n * Enable height equalization row by row.\n * @option\n * @type {boolean}\n * @default false\n */\n equalizeByRow: false,\n\n /**\n * String representing the minimum breakpoint size the plugin should equalize heights on.\n * @option\n * @type {string}\n * @default ''\n */\n equalizeOn: ''\n };\n /***/\n },\n\n /***/\n 6:\n /*!**********************************************************!*\\\n !*** multi ./js/entries/plugins/foundation.equalizer.js ***!\n \\**********************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports, __webpack_require__) {\n module.exports = __webpack_require__(\n /*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.equalizer.js */\n \"./js/entries/plugins/foundation.equalizer.js\");\n /***/\n },\n\n /***/\n \"jquery\":\n /*!********************************************************************************************!*\\\n !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n \\********************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n /***/\n }\n /******/\n\n })\n );\n});","(function webpackUniversalModuleDefinition(root, factory) {\n if (typeof exports === 'object' && typeof module === 'object') module.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.mediaQuery\"), require(\"./foundation.util.motion\"), require(\"./foundation.util.touch\"), require(\"jquery\"));else if (typeof define === 'function' && define.amd) define([\"./foundation.core\", \"./foundation.util.keyboard\", \"./foundation.util.mediaQuery\", \"./foundation.util.motion\", \"./foundation.util.touch\", \"jquery\"], factory);else if (typeof exports === 'object') exports[\"foundation.reveal\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.mediaQuery\"), require(\"./foundation.util.motion\"), require(\"./foundation.util.touch\"), require(\"jquery\"));else root[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.reveal\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.mediaQuery\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.motion\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.touch\"], root[\"jQuery\"]);\n})(window, function (__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__, __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__, __WEBPACK_EXTERNAL_MODULE__foundation_util_touch__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\n return (\n /******/\n function (modules) {\n // webpackBootstrap\n\n /******/\n // The module cache\n\n /******/\n var installedModules = {};\n /******/\n\n /******/\n // The require function\n\n /******/\n\n function __webpack_require__(moduleId) {\n /******/\n\n /******/\n // Check if module is in cache\n\n /******/\n if (installedModules[moduleId]) {\n /******/\n return installedModules[moduleId].exports;\n /******/\n }\n /******/\n // Create a new module (and put it into the cache)\n\n /******/\n\n\n var module = installedModules[moduleId] = {\n /******/\n i: moduleId,\n\n /******/\n l: false,\n\n /******/\n exports: {}\n /******/\n\n };\n /******/\n\n /******/\n // Execute the module function\n\n /******/\n\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n /******/\n\n /******/\n // Flag the module as loaded\n\n /******/\n\n module.l = true;\n /******/\n\n /******/\n // Return the exports of the module\n\n /******/\n\n return module.exports;\n /******/\n }\n /******/\n\n /******/\n\n /******/\n // expose the modules object (__webpack_modules__)\n\n /******/\n\n\n __webpack_require__.m = modules;\n /******/\n\n /******/\n // expose the module cache\n\n /******/\n\n __webpack_require__.c = installedModules;\n /******/\n\n /******/\n // define getter function for harmony exports\n\n /******/\n\n __webpack_require__.d = function (exports, name, getter) {\n /******/\n if (!__webpack_require__.o(exports, name)) {\n /******/\n Object.defineProperty(exports, name, {\n enumerable: true,\n get: getter\n });\n /******/\n }\n /******/\n\n };\n /******/\n\n /******/\n // define __esModule on exports\n\n /******/\n\n\n __webpack_require__.r = function (exports) {\n /******/\n if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n /******/\n Object.defineProperty(exports, Symbol.toStringTag, {\n value: 'Module'\n });\n /******/\n }\n /******/\n\n\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n /******/\n };\n /******/\n\n /******/\n // create a fake namespace object\n\n /******/\n // mode & 1: value is a module id, require it\n\n /******/\n // mode & 2: merge all properties of value into the ns\n\n /******/\n // mode & 4: return value when already ns object\n\n /******/\n // mode & 8|1: behave like require\n\n /******/\n\n\n __webpack_require__.t = function (value, mode) {\n /******/\n if (mode & 1) value = __webpack_require__(value);\n /******/\n\n if (mode & 8) return value;\n /******/\n\n if (mode & 4 && typeof value === 'object' && value && value.__esModule) return value;\n /******/\n\n var ns = Object.create(null);\n /******/\n\n __webpack_require__.r(ns);\n /******/\n\n\n Object.defineProperty(ns, 'default', {\n enumerable: true,\n value: value\n });\n /******/\n\n if (mode & 2 && typeof value != 'string') for (var key in value) __webpack_require__.d(ns, key, function (key) {\n return value[key];\n }.bind(null, key));\n /******/\n\n return ns;\n /******/\n };\n /******/\n\n /******/\n // getDefaultExport function for compatibility with non-harmony modules\n\n /******/\n\n\n __webpack_require__.n = function (module) {\n /******/\n var getter = module && module.__esModule ?\n /******/\n function getDefault() {\n return module['default'];\n } :\n /******/\n function getModuleExports() {\n return module;\n };\n /******/\n\n __webpack_require__.d(getter, 'a', getter);\n /******/\n\n\n return getter;\n /******/\n };\n /******/\n\n /******/\n // Object.prototype.hasOwnProperty.call\n\n /******/\n\n\n __webpack_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n /******/\n\n /******/\n // __webpack_public_path__\n\n /******/\n\n\n __webpack_require__.p = \"\";\n /******/\n\n /******/\n\n /******/\n // Load entry module and return exports\n\n /******/\n\n return __webpack_require__(__webpack_require__.s = 14);\n /******/\n }\n /************************************************************************/\n\n /******/\n ({\n /***/\n \"./foundation.core\":\n /*!****************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n \\****************************************************************************************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n /***/\n },\n\n /***/\n \"./foundation.util.keyboard\":\n /*!****************************************************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.keyboard\"],\"amd\":\"./foundation.util.keyboard\",\"commonjs\":\"./foundation.util.keyboard\",\"commonjs2\":\"./foundation.util.keyboard\"} ***!\n \\****************************************************************************************************************************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__;\n /***/\n },\n\n /***/\n \"./foundation.util.mediaQuery\":\n /*!************************************************************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.mediaQuery\"],\"amd\":\"./foundation.util.mediaQuery\",\"commonjs\":\"./foundation.util.mediaQuery\",\"commonjs2\":\"./foundation.util.mediaQuery\"} ***!\n \\************************************************************************************************************************************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__;\n /***/\n },\n\n /***/\n \"./foundation.util.motion\":\n /*!********************************************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.motion\"],\"amd\":\"./foundation.util.motion\",\"commonjs\":\"./foundation.util.motion\",\"commonjs2\":\"./foundation.util.motion\"} ***!\n \\********************************************************************************************************************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__;\n /***/\n },\n\n /***/\n \"./foundation.util.touch\":\n /*!****************************************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.touch\"],\"amd\":\"./foundation.util.touch\",\"commonjs\":\"./foundation.util.touch\",\"commonjs2\":\"./foundation.util.touch\"} ***!\n \\****************************************************************************************************************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_touch__;\n /***/\n },\n\n /***/\n \"./js/entries/plugins/foundation.reveal.js\":\n /*!*************************************************!*\\\n !*** ./js/entries/plugins/foundation.reveal.js ***!\n \\*************************************************/\n\n /*! exports provided: Foundation, Reveal */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! ./foundation.core */\n \"./foundation.core\");\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Foundation\", function () {\n return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"];\n });\n /* harmony import */\n\n\n var _foundation_reveal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! ../../foundation.reveal */\n \"./js/foundation.reveal.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Reveal\", function () {\n return _foundation_reveal__WEBPACK_IMPORTED_MODULE_1__[\"Reveal\"];\n });\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].plugin(_foundation_reveal__WEBPACK_IMPORTED_MODULE_1__[\"Reveal\"], 'Reveal');\n /***/\n\n },\n\n /***/\n \"./js/foundation.reveal.js\":\n /*!*********************************!*\\\n !*** ./js/foundation.reveal.js ***!\n \\*********************************/\n\n /*! exports provided: Reveal */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Reveal\", function () {\n return Reveal;\n });\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! jquery */\n \"jquery\");\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */\n\n\n var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! ./foundation.core.plugin */\n \"./foundation.core\");\n /* harmony import */\n\n\n var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__);\n /* harmony import */\n\n\n var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\n /*! ./foundation.util.keyboard */\n \"./foundation.util.keyboard\");\n /* harmony import */\n\n\n var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__);\n /* harmony import */\n\n\n var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(\n /*! ./foundation.util.mediaQuery */\n \"./foundation.util.mediaQuery\");\n /* harmony import */\n\n\n var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_3__);\n /* harmony import */\n\n\n var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(\n /*! ./foundation.util.motion */\n \"./foundation.util.motion\");\n /* harmony import */\n\n\n var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_motion__WEBPACK_IMPORTED_MODULE_4__);\n /* harmony import */\n\n\n var _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(\n /*! ./foundation.util.triggers */\n \"./js/foundation.util.triggers.js\");\n /* harmony import */\n\n\n var _foundation_util_touch__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(\n /*! ./foundation.util.touch */\n \"./foundation.util.touch\");\n /* harmony import */\n\n\n var _foundation_util_touch__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_touch__WEBPACK_IMPORTED_MODULE_6__);\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n }\n\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n /**\n * Reveal module.\n * @module foundation.reveal\n * @requires foundation.util.keyboard\n * @requires foundation.util.touch\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.motion if using animations\n */\n\n\n var Reveal = /*#__PURE__*/function (_Plugin) {\n _inherits(Reveal, _Plugin);\n\n var _super = _createSuper(Reveal);\n\n function Reveal() {\n _classCallCheck(this, Reveal);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Reveal, [{\n key: \"_setup\",\n value:\n /**\n * Creates a new instance of Reveal.\n * @class\n * @name Reveal\n * @param {jQuery} element - jQuery object to use for the modal.\n * @param {Object} options - optional parameters.\n */\n function _setup(element, options) {\n this.$element = element;\n this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, Reveal.defaults, this.$element.data(), options);\n this.className = 'Reveal'; // ie9 back compat\n\n this._init(); // Touch and Triggers init are idempotent, just need to make sure they are initialized\n\n\n _foundation_util_touch__WEBPACK_IMPORTED_MODULE_6__[\"Touch\"].init(jquery__WEBPACK_IMPORTED_MODULE_0___default.a);\n\n _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_5__[\"Triggers\"].init(jquery__WEBPACK_IMPORTED_MODULE_0___default.a);\n\n _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].register('Reveal', {\n 'ESCAPE': 'close'\n });\n }\n /**\n * Initializes the modal by adding the overlay and close buttons, (if selected).\n * @private\n */\n\n }, {\n key: \"_init\",\n value: function _init() {\n var _this2 = this;\n\n _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_3__[\"MediaQuery\"]._init();\n\n this.id = this.$element.attr('id');\n this.isActive = false;\n this.cached = {\n mq: _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_3__[\"MediaQuery\"].current\n };\n this.$anchor = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-open=\\\"\".concat(this.id, \"\\\"]\")).length ? jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-open=\\\"\".concat(this.id, \"\\\"]\")) : jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-toggle=\\\"\".concat(this.id, \"\\\"]\"));\n this.$anchor.attr({\n 'aria-controls': this.id,\n 'aria-haspopup': 'dialog',\n 'tabindex': 0\n });\n\n if (this.options.fullScreen || this.$element.hasClass('full')) {\n this.options.fullScreen = true;\n this.options.overlay = false;\n }\n\n if (this.options.overlay && !this.$overlay) {\n this.$overlay = this._makeOverlay(this.id);\n }\n\n this.$element.attr({\n 'role': 'dialog',\n 'aria-hidden': true,\n 'data-yeti-box': this.id,\n 'data-resize': this.id\n });\n\n if (this.$overlay) {\n this.$element.detach().appendTo(this.$overlay);\n } else {\n this.$element.detach().appendTo(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.options.appendTo));\n this.$element.addClass('without-overlay');\n }\n\n this._events();\n\n if (this.options.deepLink && window.location.hash === \"#\".concat(this.id)) {\n this.onLoadListener = Object(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__[\"onLoad\"])(jquery__WEBPACK_IMPORTED_MODULE_0___default()(window), function () {\n return _this2.open();\n });\n }\n }\n /**\n * Creates an overlay div to display behind the modal.\n * @private\n */\n\n }, {\n key: \"_makeOverlay\",\n value: function _makeOverlay() {\n var additionalOverlayClasses = '';\n\n if (this.options.additionalOverlayClasses) {\n additionalOverlayClasses = ' ' + this.options.additionalOverlayClasses;\n }\n\n return jquery__WEBPACK_IMPORTED_MODULE_0___default()('
').addClass('reveal-overlay' + additionalOverlayClasses).appendTo(this.options.appendTo);\n }\n /**\n * Updates position of modal\n * TODO: Figure out if we actually need to cache these values or if it doesn't matter\n * @private\n */\n\n }, {\n key: \"_updatePosition\",\n value: function _updatePosition() {\n var width = this.$element.outerWidth();\n var outerWidth = jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).width();\n var height = this.$element.outerHeight();\n var outerHeight = jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).height();\n var left,\n top = null;\n\n if (this.options.hOffset === 'auto') {\n left = parseInt((outerWidth - width) / 2, 10);\n } else {\n left = parseInt(this.options.hOffset, 10);\n }\n\n if (this.options.vOffset === 'auto') {\n if (height > outerHeight) {\n top = parseInt(Math.min(100, outerHeight / 10), 10);\n } else {\n top = parseInt((outerHeight - height) / 4, 10);\n }\n } else if (this.options.vOffset !== null) {\n top = parseInt(this.options.vOffset, 10);\n }\n\n if (top !== null) {\n this.$element.css({\n top: top + 'px'\n });\n } // only worry about left if we don't have an overlay or we have a horizontal offset,\n // otherwise we're perfectly in the middle\n\n\n if (!this.$overlay || this.options.hOffset !== 'auto') {\n this.$element.css({\n left: left + 'px'\n });\n this.$element.css({\n margin: '0px'\n });\n }\n }\n /**\n * Adds event handlers for the modal.\n * @private\n */\n\n }, {\n key: \"_events\",\n value: function _events() {\n var _this3 = this;\n\n var _this = this;\n\n this.$element.on({\n 'open.zf.trigger': this.open.bind(this),\n 'close.zf.trigger': function closeZfTrigger(event, $element) {\n if (event.target === _this.$element[0] || jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).parents('[data-closable]')[0] === $element) {\n // only close reveal when it's explicitly called\n return _this3.close.apply(_this3);\n }\n },\n 'toggle.zf.trigger': this.toggle.bind(this),\n 'resizeme.zf.trigger': function resizemeZfTrigger() {\n _this._updatePosition();\n }\n });\n\n if (this.options.closeOnClick && this.options.overlay) {\n this.$overlay.off('.zf.reveal').on('click.zf.dropdown tap.zf.dropdown', function (e) {\n if (e.target === _this.$element[0] || jquery__WEBPACK_IMPORTED_MODULE_0___default.a.contains(_this.$element[0], e.target) || !jquery__WEBPACK_IMPORTED_MODULE_0___default.a.contains(document, e.target)) {\n return;\n }\n\n _this.close();\n });\n }\n\n if (this.options.deepLink) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on(\"hashchange.zf.reveal:\".concat(this.id), this._handleState.bind(this));\n }\n }\n /**\n * Handles modal methods on back/forward button clicks or any other event that triggers hashchange.\n * @private\n */\n\n }, {\n key: \"_handleState\",\n value: function _handleState() {\n if (window.location.hash === '#' + this.id && !this.isActive) {\n this.open();\n } else {\n this.close();\n }\n }\n /**\n * Disables the scroll when Reveal is shown to prevent the background from shifting\n * @param {number} scrollTop - Scroll to visually apply, window current scroll by default\n */\n\n }, {\n key: \"_disableScroll\",\n value: function _disableScroll(scrollTop) {\n scrollTop = scrollTop || jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).scrollTop();\n\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).height() > jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).height()) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"html\").css(\"top\", -scrollTop);\n }\n }\n /**\n * Reenables the scroll when Reveal closes\n * @param {number} scrollTop - Scroll to restore, html \"top\" property by default (as set by `_disableScroll`)\n */\n\n }, {\n key: \"_enableScroll\",\n value: function _enableScroll(scrollTop) {\n scrollTop = scrollTop || parseInt(jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"html\").css(\"top\"), 10);\n\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).height() > jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).height()) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"html\").css(\"top\", \"\");\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).scrollTop(-scrollTop);\n }\n }\n /**\n * Opens the modal controlled by `this.$anchor`, and closes all others by default.\n * @function\n * @fires Reveal#closeme\n * @fires Reveal#open\n */\n\n }, {\n key: \"open\",\n value: function open() {\n var _this4 = this; // either update or replace browser history\n\n\n var hash = \"#\".concat(this.id);\n\n if (this.options.deepLink && window.location.hash !== hash) {\n if (window.history.pushState) {\n if (this.options.updateHistory) {\n window.history.pushState({}, '', hash);\n } else {\n window.history.replaceState({}, '', hash);\n }\n } else {\n window.location.hash = hash;\n }\n } // Remember anchor that opened it to set focus back later, have general anchors as fallback\n\n\n this.$activeAnchor = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document.activeElement).is(this.$anchor) ? jquery__WEBPACK_IMPORTED_MODULE_0___default()(document.activeElement) : this.$anchor;\n this.isActive = true; // Make elements invisible, but remove display: none so we can get size and positioning\n\n this.$element.css({\n 'visibility': 'hidden'\n }).show().scrollTop(0);\n\n if (this.options.overlay) {\n this.$overlay.css({\n 'visibility': 'hidden'\n }).show();\n }\n\n this._updatePosition();\n\n this.$element.hide().css({\n 'visibility': ''\n });\n\n if (this.$overlay) {\n this.$overlay.css({\n 'visibility': ''\n }).hide();\n\n if (this.$element.hasClass('fast')) {\n this.$overlay.addClass('fast');\n } else if (this.$element.hasClass('slow')) {\n this.$overlay.addClass('slow');\n }\n }\n\n if (!this.options.multipleOpened) {\n /**\n * Fires immediately before the modal opens.\n * Closes any other modals that are currently open\n * @event Reveal#closeme\n */\n this.$element.trigger('closeme.zf.reveal', this.id);\n }\n\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()('.reveal:visible').length === 0) {\n this._disableScroll();\n }\n\n var _this = this; // Motion UI method of reveal\n\n\n if (this.options.animationIn) {\n var afterAnimation = function afterAnimation() {\n _this.$element.attr({\n 'aria-hidden': false,\n 'tabindex': -1\n }).focus();\n\n _this._addGlobalClasses();\n\n _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].trapFocus(_this.$element);\n };\n\n if (this.options.overlay) {\n _foundation_util_motion__WEBPACK_IMPORTED_MODULE_4__[\"Motion\"].animateIn(this.$overlay, 'fade-in');\n }\n\n _foundation_util_motion__WEBPACK_IMPORTED_MODULE_4__[\"Motion\"].animateIn(this.$element, this.options.animationIn, function () {\n if (_this4.$element) {\n // protect against object having been removed\n _this4.focusableElements = _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].findFocusable(_this4.$element);\n afterAnimation();\n }\n });\n } // jQuery method of reveal\n else {\n if (this.options.overlay) {\n this.$overlay.show(0);\n }\n\n this.$element.show(this.options.showDelay);\n } // handle accessibility\n\n\n this.$element.attr({\n 'aria-hidden': false,\n 'tabindex': -1\n }).focus();\n\n _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].trapFocus(this.$element);\n\n this._addGlobalClasses();\n\n this._addGlobalListeners();\n /**\n * Fires when the modal has successfully opened.\n * @event Reveal#open\n */\n\n\n this.$element.trigger('open.zf.reveal');\n }\n /**\n * Adds classes and listeners on document required by open modals.\n *\n * The following classes are added and updated:\n * - `.is-reveal-open` - Prevents the scroll on document\n * - `.zf-has-scroll` - Displays a disabled scrollbar on document if required like if the\n * scroll was not disabled. This prevent a \"shift\" of the page content due\n * the scrollbar disappearing when the modal opens.\n *\n * @private\n */\n\n }, {\n key: \"_addGlobalClasses\",\n value: function _addGlobalClasses() {\n var updateScrollbarClass = function updateScrollbarClass() {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('html').toggleClass('zf-has-scroll', !!(jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).height() > jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).height()));\n };\n\n this.$element.on('resizeme.zf.trigger.revealScrollbarListener', function () {\n return updateScrollbarClass();\n });\n updateScrollbarClass();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('html').addClass('is-reveal-open');\n }\n /**\n * Removes classes and listeners on document that were required by open modals.\n * @private\n */\n\n }, {\n key: \"_removeGlobalClasses\",\n value: function _removeGlobalClasses() {\n this.$element.off('resizeme.zf.trigger.revealScrollbarListener');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('html').removeClass('is-reveal-open');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('html').removeClass('zf-has-scroll');\n }\n /**\n * Adds extra event handlers for the body and window if necessary.\n * @private\n */\n\n }, {\n key: \"_addGlobalListeners\",\n value: function _addGlobalListeners() {\n var _this = this;\n\n if (!this.$element) {\n return;\n } // If we're in the middle of cleanup, don't freak out\n\n\n this.focusableElements = _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].findFocusable(this.$element);\n\n if (!this.options.overlay && this.options.closeOnClick && !this.options.fullScreen) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').on('click.zf.dropdown tap.zf.dropdown', function (e) {\n if (e.target === _this.$element[0] || jquery__WEBPACK_IMPORTED_MODULE_0___default.a.contains(_this.$element[0], e.target) || !jquery__WEBPACK_IMPORTED_MODULE_0___default.a.contains(document, e.target)) {\n return;\n }\n\n _this.close();\n });\n }\n\n if (this.options.closeOnEsc) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('keydown.zf.reveal', function (e) {\n _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].handleKey(e, 'Reveal', {\n close: function close() {\n if (_this.options.closeOnEsc) {\n _this.close();\n }\n }\n });\n });\n }\n }\n /**\n * Closes the modal.\n * @function\n * @fires Reveal#closed\n */\n\n }, {\n key: \"close\",\n value: function close() {\n if (!this.isActive || !this.$element.is(':visible')) {\n return false;\n }\n\n var _this = this; // Motion UI method of hiding\n\n\n if (this.options.animationOut) {\n if (this.options.overlay) {\n _foundation_util_motion__WEBPACK_IMPORTED_MODULE_4__[\"Motion\"].animateOut(this.$overlay, 'fade-out');\n }\n\n _foundation_util_motion__WEBPACK_IMPORTED_MODULE_4__[\"Motion\"].animateOut(this.$element, this.options.animationOut, finishUp);\n } // jQuery method of hiding\n else {\n this.$element.hide(this.options.hideDelay);\n\n if (this.options.overlay) {\n this.$overlay.hide(0, finishUp);\n } else {\n finishUp();\n }\n } // Conditionals to remove extra event listeners added on open\n\n\n if (this.options.closeOnEsc) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off('keydown.zf.reveal');\n }\n\n if (!this.options.overlay && this.options.closeOnClick) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').off('click.zf.dropdown tap.zf.dropdown');\n }\n\n this.$element.off('keydown.zf.reveal');\n\n function finishUp() {\n // Get the current top before the modal is closed and restore the scroll after.\n // TODO: use component properties instead of HTML properties\n // See https://github.com/foundation/foundation-sites/pull/10786\n var scrollTop = parseInt(jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"html\").css(\"top\"), 10);\n\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()('.reveal:visible').length === 0) {\n _this._removeGlobalClasses(); // also remove .is-reveal-open from the html element when there is no opened reveal\n\n }\n\n _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].releaseFocus(_this.$element);\n\n _this.$element.attr('aria-hidden', true);\n\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()('.reveal:visible').length === 0) {\n _this._enableScroll(scrollTop);\n }\n /**\n * Fires when the modal is done closing.\n * @event Reveal#closed\n */\n\n\n _this.$element.trigger('closed.zf.reveal');\n }\n /**\n * Resets the modal content\n * This prevents a running video to keep going in the background\n */\n\n\n if (this.options.resetOnClose) {\n this.$element.html(this.$element.html());\n }\n\n this.isActive = false; // If deepLink and we did not switched to an other modal...\n\n if (_this.options.deepLink && window.location.hash === \"#\".concat(this.id)) {\n // Remove the history hash\n if (window.history.replaceState) {\n var urlWithoutHash = window.location.pathname + window.location.search;\n\n if (this.options.updateHistory) {\n window.history.pushState({}, '', urlWithoutHash); // remove the hash\n } else {\n window.history.replaceState('', document.title, urlWithoutHash);\n }\n } else {\n window.location.hash = '';\n }\n }\n\n this.$activeAnchor.focus();\n }\n /**\n * Toggles the open/closed state of a modal.\n * @function\n */\n\n }, {\n key: \"toggle\",\n value: function toggle() {\n if (this.isActive) {\n this.close();\n } else {\n this.open();\n }\n }\n }, {\n key: \"_destroy\",\n value:\n /**\n * Destroys an instance of a modal.\n * @function\n */\n function _destroy() {\n if (this.options.overlay) {\n this.$element.appendTo(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.options.appendTo)); // move $element outside of $overlay to prevent error unregisterPlugin()\n\n this.$overlay.hide().off().remove();\n }\n\n this.$element.hide().off();\n this.$anchor.off('.zf');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(\".zf.reveal:\".concat(this.id));\n if (this.onLoadListener) jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(this.onLoadListener);\n\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()('.reveal:visible').length === 0) {\n this._removeGlobalClasses(); // also remove .is-reveal-open from the html element when there is no opened reveal\n\n }\n }\n }]);\n\n return Reveal;\n }(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__[\"Plugin\"]);\n\n Reveal.defaults = {\n /**\n * Motion-UI class to use for animated elements. If none used, defaults to simple show/hide.\n * @option\n * @type {string}\n * @default ''\n */\n animationIn: '',\n\n /**\n * Motion-UI class to use for animated elements. If none used, defaults to simple show/hide.\n * @option\n * @type {string}\n * @default ''\n */\n animationOut: '',\n\n /**\n * Time, in ms, to delay the opening of a modal after a click if no animation used.\n * @option\n * @type {number}\n * @default 0\n */\n showDelay: 0,\n\n /**\n * Time, in ms, to delay the closing of a modal after a click if no animation used.\n * @option\n * @type {number}\n * @default 0\n */\n hideDelay: 0,\n\n /**\n * Allows a click on the body/overlay to close the modal.\n * @option\n * @type {boolean}\n * @default true\n */\n closeOnClick: true,\n\n /**\n * Allows the modal to close if the user presses the `ESCAPE` key.\n * @option\n * @type {boolean}\n * @default true\n */\n closeOnEsc: true,\n\n /**\n * If true, allows multiple modals to be displayed at once.\n * @option\n * @type {boolean}\n * @default false\n */\n multipleOpened: false,\n\n /**\n * Distance, in pixels, the modal should push down from the top of the screen.\n * @option\n * @type {number|string}\n * @default auto\n */\n vOffset: 'auto',\n\n /**\n * Distance, in pixels, the modal should push in from the side of the screen.\n * @option\n * @type {number|string}\n * @default auto\n */\n hOffset: 'auto',\n\n /**\n * Allows the modal to be fullscreen, completely blocking out the rest of the view. JS checks for this as well.\n * @option\n * @type {boolean}\n * @default false\n */\n fullScreen: false,\n\n /**\n * Allows the modal to generate an overlay div, which will cover the view when modal opens.\n * @option\n * @type {boolean}\n * @default true\n */\n overlay: true,\n\n /**\n * Allows the modal to remove and reinject markup on close. Should be true if using video elements w/o using provider's api, otherwise, videos will continue to play in the background.\n * @option\n * @type {boolean}\n * @default false\n */\n resetOnClose: false,\n\n /**\n * Link the location hash to the modal.\n * Set the location hash when the modal is opened/closed, and open/close the modal when the location changes.\n * @option\n * @type {boolean}\n * @default false\n */\n deepLink: false,\n\n /**\n * If `deepLink` is enabled, update the browser history with the open modal\n * @option\n * @default false\n */\n updateHistory: false,\n\n /**\n * Allows the modal to append to custom div.\n * @option\n * @type {string}\n * @default \"body\"\n */\n appendTo: \"body\",\n\n /**\n * Allows adding additional class names to the reveal overlay.\n * @option\n * @type {string}\n * @default ''\n */\n additionalOverlayClasses: ''\n };\n /***/\n },\n\n /***/\n \"./js/foundation.util.triggers.js\":\n /*!****************************************!*\\\n !*** ./js/foundation.util.triggers.js ***!\n \\****************************************/\n\n /*! exports provided: Triggers */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Triggers\", function () {\n return Triggers;\n });\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! jquery */\n \"jquery\");\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */\n\n\n var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! ./foundation.core.utils */\n \"./foundation.core\");\n /* harmony import */\n\n\n var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__);\n /* harmony import */\n\n\n var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\n /*! ./foundation.util.motion */\n \"./foundation.util.motion\");\n /* harmony import */\n\n\n var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__);\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n var MutationObserver = function () {\n var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n\n for (var i = 0; i < prefixes.length; i++) {\n if (\"\".concat(prefixes[i], \"MutationObserver\") in window) {\n return window[\"\".concat(prefixes[i], \"MutationObserver\")];\n }\n }\n\n return false;\n }();\n\n var triggers = function triggers(el, type) {\n el.data(type).split(' ').forEach(function (id) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(id))[type === 'close' ? 'trigger' : 'triggerHandler'](\"\".concat(type, \".zf.trigger\"), [el]);\n });\n };\n\n var Triggers = {\n Listeners: {\n Basic: {},\n Global: {}\n },\n Initializers: {}\n };\n Triggers.Listeners.Basic = {\n openListener: function openListener() {\n triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'open');\n },\n closeListener: function closeListener() {\n var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('close');\n\n if (id) {\n triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'close');\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('close.zf.trigger');\n }\n },\n toggleListener: function toggleListener() {\n var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('toggle');\n\n if (id) {\n triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'toggle');\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('toggle.zf.trigger');\n }\n },\n closeableListener: function closeableListener(e) {\n var animation = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('closable'); // Only close the first closable element. See https://git.io/zf-7833\n\n e.stopPropagation();\n\n if (animation !== '') {\n _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__[\"Motion\"].animateOut(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), animation, function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('closed.zf');\n });\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).fadeOut().trigger('closed.zf');\n }\n },\n toggleFocusListener: function toggleFocusListener() {\n var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('toggle-focus');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(id)).triggerHandler('toggle.zf.trigger', [jquery__WEBPACK_IMPORTED_MODULE_0___default()(this)]);\n }\n }; // Elements with [data-open] will reveal a plugin that supports it when clicked.\n\n Triggers.Initializers.addOpenListener = function ($elem) {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n }; // Elements with [data-close] will close a plugin that supports it when clicked.\n // If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\n\n\n Triggers.Initializers.addCloseListener = function ($elem) {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n }; // Elements with [data-toggle] will toggle a plugin that supports it when clicked.\n\n\n Triggers.Initializers.addToggleListener = function ($elem) {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n }; // Elements with [data-closable] will respond to close.zf.trigger events.\n\n\n Triggers.Initializers.addCloseableListener = function ($elem) {\n $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n }; // Elements with [data-toggle-focus] will respond to coming in and out of focus\n\n\n Triggers.Initializers.addToggleFocusListener = function ($elem) {\n $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n }; // More Global/complex listeners and triggers\n\n\n Triggers.Listeners.Global = {\n resizeListener: function resizeListener($nodes) {\n if (!MutationObserver) {\n //fallback for IE 9\n $nodes.each(function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).triggerHandler('resizeme.zf.trigger');\n });\n } //trigger all listening elements and signal a resize event\n\n\n $nodes.attr('data-events', \"resize\");\n },\n scrollListener: function scrollListener($nodes) {\n if (!MutationObserver) {\n //fallback for IE 9\n $nodes.each(function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).triggerHandler('scrollme.zf.trigger');\n });\n } //trigger all listening elements and signal a scroll event\n\n\n $nodes.attr('data-events', \"scroll\");\n },\n closeMeListener: function closeMeListener(e, pluginId) {\n var plugin = e.namespace.split('.')[0];\n var plugins = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-\".concat(plugin, \"]\")).not(\"[data-yeti-box=\\\"\".concat(pluginId, \"\\\"]\"));\n plugins.each(function () {\n var _this = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n\n _this.triggerHandler('close.zf.trigger', [_this]);\n });\n }\n }; // Global, parses whole document.\n\n Triggers.Initializers.addClosemeListener = function (pluginName) {\n var yetiBoxes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-yeti-box]'),\n plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n if (pluginName) {\n if (typeof pluginName === 'string') {\n plugNames.push(pluginName);\n } else if (_typeof(pluginName) === 'object' && typeof pluginName[0] === 'string') {\n plugNames = plugNames.concat(pluginName);\n } else {\n console.error('Plugin names must be strings');\n }\n }\n\n if (yetiBoxes.length) {\n var listeners = plugNames.map(function (name) {\n return \"closeme.zf.\".concat(name);\n }).join(' ');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n }\n };\n\n function debounceGlobalListener(debounce, trigger, listener) {\n var timer,\n args = Array.prototype.slice.call(arguments, 3);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on(trigger, function () {\n if (timer) {\n clearTimeout(timer);\n }\n\n timer = setTimeout(function () {\n listener.apply(null, args);\n }, debounce || 10); //default time to emit scroll event\n });\n }\n\n Triggers.Initializers.addResizeListener = function (debounce) {\n var $nodes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-resize]');\n\n if ($nodes.length) {\n debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n }\n };\n\n Triggers.Initializers.addScrollListener = function (debounce) {\n var $nodes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-scroll]');\n\n if ($nodes.length) {\n debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n }\n };\n\n Triggers.Initializers.addMutationEventsListener = function ($elem) {\n if (!MutationObserver) {\n return false;\n }\n\n var $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]'); //element callback\n\n var listeningElementsMutation = function listeningElementsMutation(mutationRecordsList) {\n var $target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(mutationRecordsList[0].target); //trigger the event handler for the element depending on type\n\n switch (mutationRecordsList[0].type) {\n case \"attributes\":\n if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n }\n\n if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n $target.triggerHandler('resizeme.zf.trigger', [$target]);\n }\n\n if (mutationRecordsList[0].attributeName === \"style\") {\n $target.closest(\"[data-mutate]\").attr(\"data-events\", \"mutate\");\n $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n }\n\n break;\n\n case \"childList\":\n $target.closest(\"[data-mutate]\").attr(\"data-events\", \"mutate\");\n $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n break;\n\n default:\n return false;\n //nothing\n }\n };\n\n if ($nodes.length) {\n //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n for (var i = 0; i <= $nodes.length - 1; i++) {\n var elementObserver = new MutationObserver(listeningElementsMutation);\n elementObserver.observe($nodes[i], {\n attributes: true,\n childList: true,\n characterData: false,\n subtree: true,\n attributeFilter: [\"data-events\", \"style\"]\n });\n }\n }\n };\n\n Triggers.Initializers.addSimpleListeners = function () {\n var $document = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document);\n Triggers.Initializers.addOpenListener($document);\n Triggers.Initializers.addCloseListener($document);\n Triggers.Initializers.addToggleListener($document);\n Triggers.Initializers.addCloseableListener($document);\n Triggers.Initializers.addToggleFocusListener($document);\n };\n\n Triggers.Initializers.addGlobalListeners = function () {\n var $document = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document);\n Triggers.Initializers.addMutationEventsListener($document);\n Triggers.Initializers.addResizeListener(250);\n Triggers.Initializers.addScrollListener();\n Triggers.Initializers.addClosemeListener();\n };\n\n Triggers.init = function (__, Foundation) {\n Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"onLoad\"])(jquery__WEBPACK_IMPORTED_MODULE_0___default()(window), function () {\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default.a.triggersInitialized !== true) {\n Triggers.Initializers.addSimpleListeners();\n Triggers.Initializers.addGlobalListeners();\n jquery__WEBPACK_IMPORTED_MODULE_0___default.a.triggersInitialized = true;\n }\n });\n\n if (Foundation) {\n Foundation.Triggers = Triggers; // Legacy included to be backwards compatible for now.\n\n Foundation.IHearYou = Triggers.Initializers.addGlobalListeners;\n }\n };\n /***/\n\n },\n\n /***/\n 14:\n /*!*******************************************************!*\\\n !*** multi ./js/entries/plugins/foundation.reveal.js ***!\n \\*******************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports, __webpack_require__) {\n module.exports = __webpack_require__(\n /*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.reveal.js */\n \"./js/entries/plugins/foundation.reveal.js\");\n /***/\n },\n\n /***/\n \"jquery\":\n /*!********************************************************************************************!*\\\n !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n \\********************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n /***/\n }\n /******/\n\n })\n );\n});","(function webpackUniversalModuleDefinition(root, factory) {\n if (typeof exports === 'object' && typeof module === 'object') module.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.imageLoader\"), require(\"./foundation.util.keyboard\"), require(\"jquery\"));else if (typeof define === 'function' && define.amd) define([\"./foundation.core\", \"./foundation.util.imageLoader\", \"./foundation.util.keyboard\", \"jquery\"], factory);else if (typeof exports === 'object') exports[\"foundation.tabs\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.imageLoader\"), require(\"./foundation.util.keyboard\"), require(\"jquery\"));else root[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.tabs\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.imageLoader\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"], root[\"jQuery\"]);\n})(window, function (__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_imageLoader__, __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\n return (\n /******/\n function (modules) {\n // webpackBootstrap\n\n /******/\n // The module cache\n\n /******/\n var installedModules = {};\n /******/\n\n /******/\n // The require function\n\n /******/\n\n function __webpack_require__(moduleId) {\n /******/\n\n /******/\n // Check if module is in cache\n\n /******/\n if (installedModules[moduleId]) {\n /******/\n return installedModules[moduleId].exports;\n /******/\n }\n /******/\n // Create a new module (and put it into the cache)\n\n /******/\n\n\n var module = installedModules[moduleId] = {\n /******/\n i: moduleId,\n\n /******/\n l: false,\n\n /******/\n exports: {}\n /******/\n\n };\n /******/\n\n /******/\n // Execute the module function\n\n /******/\n\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n /******/\n\n /******/\n // Flag the module as loaded\n\n /******/\n\n module.l = true;\n /******/\n\n /******/\n // Return the exports of the module\n\n /******/\n\n return module.exports;\n /******/\n }\n /******/\n\n /******/\n\n /******/\n // expose the modules object (__webpack_modules__)\n\n /******/\n\n\n __webpack_require__.m = modules;\n /******/\n\n /******/\n // expose the module cache\n\n /******/\n\n __webpack_require__.c = installedModules;\n /******/\n\n /******/\n // define getter function for harmony exports\n\n /******/\n\n __webpack_require__.d = function (exports, name, getter) {\n /******/\n if (!__webpack_require__.o(exports, name)) {\n /******/\n Object.defineProperty(exports, name, {\n enumerable: true,\n get: getter\n });\n /******/\n }\n /******/\n\n };\n /******/\n\n /******/\n // define __esModule on exports\n\n /******/\n\n\n __webpack_require__.r = function (exports) {\n /******/\n if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n /******/\n Object.defineProperty(exports, Symbol.toStringTag, {\n value: 'Module'\n });\n /******/\n }\n /******/\n\n\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n /******/\n };\n /******/\n\n /******/\n // create a fake namespace object\n\n /******/\n // mode & 1: value is a module id, require it\n\n /******/\n // mode & 2: merge all properties of value into the ns\n\n /******/\n // mode & 4: return value when already ns object\n\n /******/\n // mode & 8|1: behave like require\n\n /******/\n\n\n __webpack_require__.t = function (value, mode) {\n /******/\n if (mode & 1) value = __webpack_require__(value);\n /******/\n\n if (mode & 8) return value;\n /******/\n\n if (mode & 4 && typeof value === 'object' && value && value.__esModule) return value;\n /******/\n\n var ns = Object.create(null);\n /******/\n\n __webpack_require__.r(ns);\n /******/\n\n\n Object.defineProperty(ns, 'default', {\n enumerable: true,\n value: value\n });\n /******/\n\n if (mode & 2 && typeof value != 'string') for (var key in value) __webpack_require__.d(ns, key, function (key) {\n return value[key];\n }.bind(null, key));\n /******/\n\n return ns;\n /******/\n };\n /******/\n\n /******/\n // getDefaultExport function for compatibility with non-harmony modules\n\n /******/\n\n\n __webpack_require__.n = function (module) {\n /******/\n var getter = module && module.__esModule ?\n /******/\n function getDefault() {\n return module['default'];\n } :\n /******/\n function getModuleExports() {\n return module;\n };\n /******/\n\n __webpack_require__.d(getter, 'a', getter);\n /******/\n\n\n return getter;\n /******/\n };\n /******/\n\n /******/\n // Object.prototype.hasOwnProperty.call\n\n /******/\n\n\n __webpack_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n /******/\n\n /******/\n // __webpack_public_path__\n\n /******/\n\n\n __webpack_require__.p = \"\";\n /******/\n\n /******/\n\n /******/\n // Load entry module and return exports\n\n /******/\n\n return __webpack_require__(__webpack_require__.s = 18);\n /******/\n }\n /************************************************************************/\n\n /******/\n ({\n /***/\n \"./foundation.core\":\n /*!****************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n \\****************************************************************************************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n /***/\n },\n\n /***/\n \"./foundation.util.imageLoader\":\n /*!****************************************************************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.imageLoader\"],\"amd\":\"./foundation.util.imageLoader\",\"commonjs\":\"./foundation.util.imageLoader\",\"commonjs2\":\"./foundation.util.imageLoader\"} ***!\n \\****************************************************************************************************************************************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_imageLoader__;\n /***/\n },\n\n /***/\n \"./foundation.util.keyboard\":\n /*!****************************************************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.keyboard\"],\"amd\":\"./foundation.util.keyboard\",\"commonjs\":\"./foundation.util.keyboard\",\"commonjs2\":\"./foundation.util.keyboard\"} ***!\n \\****************************************************************************************************************************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__;\n /***/\n },\n\n /***/\n \"./js/entries/plugins/foundation.tabs.js\":\n /*!***********************************************!*\\\n !*** ./js/entries/plugins/foundation.tabs.js ***!\n \\***********************************************/\n\n /*! exports provided: Foundation, Tabs */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! ./foundation.core */\n \"./foundation.core\");\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Foundation\", function () {\n return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"];\n });\n /* harmony import */\n\n\n var _foundation_tabs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! ../../foundation.tabs */\n \"./js/foundation.tabs.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Tabs\", function () {\n return _foundation_tabs__WEBPACK_IMPORTED_MODULE_1__[\"Tabs\"];\n });\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].plugin(_foundation_tabs__WEBPACK_IMPORTED_MODULE_1__[\"Tabs\"], 'Tabs');\n /***/\n\n },\n\n /***/\n \"./js/foundation.tabs.js\":\n /*!*******************************!*\\\n !*** ./js/foundation.tabs.js ***!\n \\*******************************/\n\n /*! exports provided: Tabs */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Tabs\", function () {\n return Tabs;\n });\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! jquery */\n \"jquery\");\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */\n\n\n var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! ./foundation.core.plugin */\n \"./foundation.core\");\n /* harmony import */\n\n\n var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__);\n /* harmony import */\n\n\n var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\n /*! ./foundation.util.keyboard */\n \"./foundation.util.keyboard\");\n /* harmony import */\n\n\n var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__);\n /* harmony import */\n\n\n var _foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(\n /*! ./foundation.util.imageLoader */\n \"./foundation.util.imageLoader\");\n /* harmony import */\n\n\n var _foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_3__);\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n }\n\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n /**\n * Tabs module.\n * @module foundation.tabs\n * @requires foundation.util.keyboard\n * @requires foundation.util.imageLoader if tabs contain images\n */\n\n\n var Tabs = /*#__PURE__*/function (_Plugin) {\n _inherits(Tabs, _Plugin);\n\n var _super = _createSuper(Tabs);\n\n function Tabs() {\n _classCallCheck(this, Tabs);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Tabs, [{\n key: \"_setup\",\n value:\n /**\n * Creates a new instance of tabs.\n * @class\n * @name Tabs\n * @fires Tabs#init\n * @param {jQuery} element - jQuery object to make into tabs.\n * @param {Object} options - Overrides to the default plugin settings.\n */\n function _setup(element, options) {\n this.$element = element;\n this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, Tabs.defaults, this.$element.data(), options);\n this.className = 'Tabs'; // ie9 back compat\n\n this._init();\n\n _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].register('Tabs', {\n 'ENTER': 'open',\n 'SPACE': 'open',\n 'ARROW_RIGHT': 'next',\n 'ARROW_UP': 'previous',\n 'ARROW_DOWN': 'next',\n 'ARROW_LEFT': 'previous' // 'TAB': 'next',\n // 'SHIFT_TAB': 'previous'\n\n });\n }\n /**\n * Initializes the tabs by showing and focusing (if autoFocus=true) the preset active tab.\n * @private\n */\n\n }, {\n key: \"_init\",\n value: function _init() {\n var _this2 = this;\n\n var _this = this;\n\n this._isInitializing = true;\n this.$element.attr({\n 'role': 'tablist'\n });\n this.$tabTitles = this.$element.find(\".\".concat(this.options.linkClass));\n this.$tabContent = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-tabs-content=\\\"\".concat(this.$element[0].id, \"\\\"]\"));\n this.$tabTitles.each(function () {\n var $elem = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),\n $link = $elem.find('a'),\n isActive = $elem.hasClass(\"\".concat(_this.options.linkActiveClass)),\n hash = $link.attr('data-tabs-target') || $link[0].hash.slice(1),\n linkId = $link[0].id ? $link[0].id : \"\".concat(hash, \"-label\"),\n $tabContent = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(hash));\n $elem.attr({\n 'role': 'presentation'\n });\n $link.attr({\n 'role': 'tab',\n 'aria-controls': hash,\n 'aria-selected': isActive,\n 'id': linkId,\n 'tabindex': isActive ? '0' : '-1'\n });\n $tabContent.attr({\n 'role': 'tabpanel',\n 'aria-labelledby': linkId\n }); // Save up the initial hash to return to it later when going back in history\n\n if (isActive) {\n _this._initialAnchor = \"#\".concat(hash);\n }\n\n if (!isActive) {\n $tabContent.attr('aria-hidden', 'true');\n }\n\n if (isActive && _this.options.autoFocus) {\n _this.onLoadListener = Object(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__[\"onLoad\"])(jquery__WEBPACK_IMPORTED_MODULE_0___default()(window), function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('html, body').animate({\n scrollTop: $elem.offset().top\n }, _this.options.deepLinkSmudgeDelay, function () {\n $link.focus();\n });\n });\n }\n });\n\n if (this.options.matchHeight) {\n var $images = this.$tabContent.find('img');\n\n if ($images.length) {\n Object(_foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_3__[\"onImagesLoaded\"])($images, this._setHeight.bind(this));\n } else {\n this._setHeight();\n }\n } // Current context-bound function to open tabs on page load or history hashchange\n\n\n this._checkDeepLink = function () {\n var anchor = window.location.hash;\n\n if (!anchor.length) {\n // If we are still initializing and there is no anchor, then there is nothing to do\n if (_this2._isInitializing) return; // Otherwise, move to the initial anchor\n\n if (_this2._initialAnchor) anchor = _this2._initialAnchor;\n }\n\n var anchorNoHash = anchor.indexOf('#') >= 0 ? anchor.slice(1) : anchor;\n var $anchor = anchorNoHash && jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(anchorNoHash));\n\n var $link = anchor && _this2.$element.find(\"[href$=\\\"\".concat(anchor, \"\\\"],[data-tabs-target=\\\"\").concat(anchorNoHash, \"\\\"]\")).first(); // Whether the anchor element that has been found is part of this element\n\n\n var isOwnAnchor = !!($anchor.length && $link.length);\n\n if (isOwnAnchor) {\n // If there is an anchor for the hash, select it\n if ($anchor && $anchor.length && $link && $link.length) {\n _this2.selectTab($anchor, true);\n } // Otherwise, collapse everything\n else {\n _this2._collapse();\n } // Roll up a little to show the titles\n\n\n if (_this2.options.deepLinkSmudge) {\n var offset = _this2.$element.offset();\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('html, body').animate({\n scrollTop: offset.top - _this2.options.deepLinkSmudgeOffset\n }, _this2.options.deepLinkSmudgeDelay);\n }\n /**\n * Fires when the plugin has deeplinked at pageload\n * @event Tabs#deeplink\n */\n\n\n _this2.$element.trigger('deeplink.zf.tabs', [$link, $anchor]);\n }\n }; //use browser to open a tab, if it exists in this tabset\n\n\n if (this.options.deepLink) {\n this._checkDeepLink();\n }\n\n this._events();\n\n this._isInitializing = false;\n }\n /**\n * Adds event handlers for items within the tabs.\n * @private\n */\n\n }, {\n key: \"_events\",\n value: function _events() {\n this._addKeyHandler();\n\n this._addClickHandler();\n\n this._setHeightMqHandler = null;\n\n if (this.options.matchHeight) {\n this._setHeightMqHandler = this._setHeight.bind(this);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('changed.zf.mediaquery', this._setHeightMqHandler);\n }\n\n if (this.options.deepLink) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('hashchange', this._checkDeepLink);\n }\n }\n /**\n * Adds click handlers for items within the tabs.\n * @private\n */\n\n }, {\n key: \"_addClickHandler\",\n value: function _addClickHandler() {\n var _this = this;\n\n this.$element.off('click.zf.tabs').on('click.zf.tabs', \".\".concat(this.options.linkClass), function (e) {\n e.preventDefault();\n\n _this._handleTabChange(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this));\n });\n }\n /**\n * Adds keyboard event handlers for items within the tabs.\n * @private\n */\n\n }, {\n key: \"_addKeyHandler\",\n value: function _addKeyHandler() {\n var _this = this;\n\n this.$tabTitles.off('keydown.zf.tabs').on('keydown.zf.tabs', function (e) {\n if (e.which === 9) return;\n var $element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),\n $elements = $element.parent('ul').children('li'),\n $prevElement,\n $nextElement;\n $elements.each(function (i) {\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).is($element)) {\n if (_this.options.wrapOnKeys) {\n $prevElement = i === 0 ? $elements.last() : $elements.eq(i - 1);\n $nextElement = i === $elements.length - 1 ? $elements.first() : $elements.eq(i + 1);\n } else {\n $prevElement = $elements.eq(Math.max(0, i - 1));\n $nextElement = $elements.eq(Math.min(i + 1, $elements.length - 1));\n }\n\n return;\n }\n }); // handle keyboard event with keyboard util\n\n _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].handleKey(e, 'Tabs', {\n open: function open() {\n $element.find('[role=\"tab\"]').focus();\n\n _this._handleTabChange($element);\n },\n previous: function previous() {\n $prevElement.find('[role=\"tab\"]').focus();\n\n _this._handleTabChange($prevElement);\n },\n next: function next() {\n $nextElement.find('[role=\"tab\"]').focus();\n\n _this._handleTabChange($nextElement);\n },\n handled: function handled() {\n e.preventDefault();\n }\n });\n });\n }\n /**\n * Opens the tab `$targetContent` defined by `$target`. Collapses active tab.\n * @param {jQuery} $target - Tab to open.\n * @param {boolean} historyHandled - browser has already handled a history update\n * @fires Tabs#change\n * @function\n */\n\n }, {\n key: \"_handleTabChange\",\n value: function _handleTabChange($target, historyHandled) {\n // With `activeCollapse`, if the target is the active Tab, collapse it.\n if ($target.hasClass(\"\".concat(this.options.linkActiveClass))) {\n if (this.options.activeCollapse) {\n this._collapse();\n }\n\n return;\n }\n\n var $oldTab = this.$element.find(\".\".concat(this.options.linkClass, \".\").concat(this.options.linkActiveClass)),\n $tabLink = $target.find('[role=\"tab\"]'),\n target = $tabLink.attr('data-tabs-target'),\n anchor = target && target.length ? \"#\".concat(target) : $tabLink[0].hash,\n $targetContent = this.$tabContent.find(anchor); //close old tab\n\n this._collapseTab($oldTab); //open new tab\n\n\n this._openTab($target); //either replace or update browser history\n\n\n if (this.options.deepLink && !historyHandled) {\n if (this.options.updateHistory) {\n history.pushState({}, '', anchor);\n } else {\n history.replaceState({}, '', anchor);\n }\n }\n /**\n * Fires when the plugin has successfully changed tabs.\n * @event Tabs#change\n */\n\n\n this.$element.trigger('change.zf.tabs', [$target, $targetContent]); //fire to children a mutation event\n\n $targetContent.find(\"[data-mutate]\").trigger(\"mutateme.zf.trigger\");\n }\n /**\n * Opens the tab `$targetContent` defined by `$target`.\n * @param {jQuery} $target - Tab to open.\n * @function\n */\n\n }, {\n key: \"_openTab\",\n value: function _openTab($target) {\n var $tabLink = $target.find('[role=\"tab\"]'),\n hash = $tabLink.attr('data-tabs-target') || $tabLink[0].hash.slice(1),\n $targetContent = this.$tabContent.find(\"#\".concat(hash));\n $target.addClass(\"\".concat(this.options.linkActiveClass));\n $tabLink.attr({\n 'aria-selected': 'true',\n 'tabindex': '0'\n });\n $targetContent.addClass(\"\".concat(this.options.panelActiveClass)).removeAttr('aria-hidden');\n }\n /**\n * Collapses `$targetContent` defined by `$target`.\n * @param {jQuery} $target - Tab to collapse.\n * @function\n */\n\n }, {\n key: \"_collapseTab\",\n value: function _collapseTab($target) {\n var $targetAnchor = $target.removeClass(\"\".concat(this.options.linkActiveClass)).find('[role=\"tab\"]').attr({\n 'aria-selected': 'false',\n 'tabindex': -1\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat($targetAnchor.attr('aria-controls'))).removeClass(\"\".concat(this.options.panelActiveClass)).attr({\n 'aria-hidden': 'true'\n });\n }\n /**\n * Collapses the active Tab.\n * @fires Tabs#collapse\n * @function\n */\n\n }, {\n key: \"_collapse\",\n value: function _collapse() {\n var $activeTab = this.$element.find(\".\".concat(this.options.linkClass, \".\").concat(this.options.linkActiveClass));\n\n if ($activeTab.length) {\n this._collapseTab($activeTab);\n /**\n * Fires when the plugin has successfully collapsed tabs.\n * @event Tabs#collapse\n */\n\n\n this.$element.trigger('collapse.zf.tabs', [$activeTab]);\n }\n }\n /**\n * Public method for selecting a content pane to display.\n * @param {jQuery | String} elem - jQuery object or string of the id of the pane to display.\n * @param {boolean} historyHandled - browser has already handled a history update\n * @function\n */\n\n }, {\n key: \"selectTab\",\n value: function selectTab(elem, historyHandled) {\n var idStr, hashIdStr;\n\n if (_typeof(elem) === 'object') {\n idStr = elem[0].id;\n } else {\n idStr = elem;\n }\n\n if (idStr.indexOf('#') < 0) {\n hashIdStr = \"#\".concat(idStr);\n } else {\n hashIdStr = idStr;\n idStr = idStr.slice(1);\n }\n\n var $target = this.$tabTitles.has(\"[href$=\\\"\".concat(hashIdStr, \"\\\"],[data-tabs-target=\\\"\").concat(idStr, \"\\\"]\")).first();\n\n this._handleTabChange($target, historyHandled);\n }\n }, {\n key: \"_setHeight\",\n value:\n /**\n * Sets the height of each panel to the height of the tallest panel.\n * If enabled in options, gets called on media query change.\n * If loading content via external source, can be called directly or with _reflow.\n * If enabled with `data-match-height=\"true\"`, tabs sets to equal height\n * @function\n * @private\n */\n function _setHeight() {\n var max = 0,\n _this = this; // Lock down the `this` value for the root tabs object\n\n\n if (!this.$tabContent) {\n return;\n }\n\n this.$tabContent.find(\".\".concat(this.options.panelClass)).css('min-height', '').each(function () {\n var panel = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),\n isActive = panel.hasClass(\"\".concat(_this.options.panelActiveClass)); // get the options from the parent instead of trying to get them from the child\n\n if (!isActive) {\n panel.css({\n 'visibility': 'hidden',\n 'display': 'block'\n });\n }\n\n var temp = this.getBoundingClientRect().height;\n\n if (!isActive) {\n panel.css({\n 'visibility': '',\n 'display': ''\n });\n }\n\n max = temp > max ? temp : max;\n }).css('min-height', \"\".concat(max, \"px\"));\n }\n /**\n * Destroys an instance of tabs.\n * @fires Tabs#destroyed\n */\n\n }, {\n key: \"_destroy\",\n value: function _destroy() {\n this.$element.find(\".\".concat(this.options.linkClass)).off('.zf.tabs').hide().end().find(\".\".concat(this.options.panelClass)).hide();\n\n if (this.options.matchHeight) {\n if (this._setHeightMqHandler != null) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off('changed.zf.mediaquery', this._setHeightMqHandler);\n }\n }\n\n if (this.options.deepLink) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off('hashchange', this._checkDeepLink);\n }\n\n if (this.onLoadListener) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(this.onLoadListener);\n }\n }\n }]);\n\n return Tabs;\n }(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__[\"Plugin\"]);\n\n Tabs.defaults = {\n /**\n * Link the location hash to the active pane.\n * Set the location hash when the active pane changes, and open the corresponding pane when the location changes.\n * @option\n * @type {boolean}\n * @default false\n */\n deepLink: false,\n\n /**\n * If `deepLink` is enabled, adjust the deep link scroll to make sure the top of the tab panel is visible\n * @option\n * @type {boolean}\n * @default false\n */\n deepLinkSmudge: false,\n\n /**\n * If `deepLinkSmudge` is enabled, animation time (ms) for the deep link adjustment\n * @option\n * @type {number}\n * @default 300\n */\n deepLinkSmudgeDelay: 300,\n\n /**\n * If `deepLinkSmudge` is enabled, animation offset from the top for the deep link adjustment\n * @option\n * @type {number}\n * @default 0\n */\n deepLinkSmudgeOffset: 0,\n\n /**\n * If `deepLink` is enabled, update the browser history with the open tab\n * @option\n * @type {boolean}\n * @default false\n */\n updateHistory: false,\n\n /**\n * Allows the window to scroll to content of active pane on load.\n * Not recommended if more than one tab panel per page.\n * @option\n * @type {boolean}\n * @default false\n */\n autoFocus: false,\n\n /**\n * Allows keyboard input to 'wrap' around the tab links.\n * @option\n * @type {boolean}\n * @default true\n */\n wrapOnKeys: true,\n\n /**\n * Allows the tab content panes to match heights if set to true.\n * @option\n * @type {boolean}\n * @default false\n */\n matchHeight: false,\n\n /**\n * Allows active tabs to collapse when clicked.\n * @option\n * @type {boolean}\n * @default false\n */\n activeCollapse: false,\n\n /**\n * Class applied to `li`'s in tab link list.\n * @option\n * @type {string}\n * @default 'tabs-title'\n */\n linkClass: 'tabs-title',\n\n /**\n * Class applied to the active `li` in tab link list.\n * @option\n * @type {string}\n * @default 'is-active'\n */\n linkActiveClass: 'is-active',\n\n /**\n * Class applied to the content containers.\n * @option\n * @type {string}\n * @default 'tabs-panel'\n */\n panelClass: 'tabs-panel',\n\n /**\n * Class applied to the active content container.\n * @option\n * @type {string}\n * @default 'is-active'\n */\n panelActiveClass: 'is-active'\n };\n /***/\n },\n\n /***/\n 18:\n /*!*****************************************************!*\\\n !*** multi ./js/entries/plugins/foundation.tabs.js ***!\n \\*****************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports, __webpack_require__) {\n module.exports = __webpack_require__(\n /*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.tabs.js */\n \"./js/entries/plugins/foundation.tabs.js\");\n /***/\n },\n\n /***/\n \"jquery\":\n /*!********************************************************************************************!*\\\n !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n \\********************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n /***/\n }\n /******/\n\n })\n );\n});","(function webpackUniversalModuleDefinition(root, factory) {\n if (typeof exports === 'object' && typeof module === 'object') module.exports = factory(require(\"./foundation.core\"));else if (typeof define === 'function' && define.amd) define([\"./foundation.core\"], factory);else if (typeof exports === 'object') exports[\"foundation.util.box\"] = factory(require(\"./foundation.core\"));else root[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.box\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"]);\n})(window, function (__WEBPACK_EXTERNAL_MODULE__foundation_core__) {\n return (\n /******/\n function (modules) {\n // webpackBootstrap\n\n /******/\n // The module cache\n\n /******/\n var installedModules = {};\n /******/\n\n /******/\n // The require function\n\n /******/\n\n function __webpack_require__(moduleId) {\n /******/\n\n /******/\n // Check if module is in cache\n\n /******/\n if (installedModules[moduleId]) {\n /******/\n return installedModules[moduleId].exports;\n /******/\n }\n /******/\n // Create a new module (and put it into the cache)\n\n /******/\n\n\n var module = installedModules[moduleId] = {\n /******/\n i: moduleId,\n\n /******/\n l: false,\n\n /******/\n exports: {}\n /******/\n\n };\n /******/\n\n /******/\n // Execute the module function\n\n /******/\n\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n /******/\n\n /******/\n // Flag the module as loaded\n\n /******/\n\n module.l = true;\n /******/\n\n /******/\n // Return the exports of the module\n\n /******/\n\n return module.exports;\n /******/\n }\n /******/\n\n /******/\n\n /******/\n // expose the modules object (__webpack_modules__)\n\n /******/\n\n\n __webpack_require__.m = modules;\n /******/\n\n /******/\n // expose the module cache\n\n /******/\n\n __webpack_require__.c = installedModules;\n /******/\n\n /******/\n // define getter function for harmony exports\n\n /******/\n\n __webpack_require__.d = function (exports, name, getter) {\n /******/\n if (!__webpack_require__.o(exports, name)) {\n /******/\n Object.defineProperty(exports, name, {\n enumerable: true,\n get: getter\n });\n /******/\n }\n /******/\n\n };\n /******/\n\n /******/\n // define __esModule on exports\n\n /******/\n\n\n __webpack_require__.r = function (exports) {\n /******/\n if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n /******/\n Object.defineProperty(exports, Symbol.toStringTag, {\n value: 'Module'\n });\n /******/\n }\n /******/\n\n\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n /******/\n };\n /******/\n\n /******/\n // create a fake namespace object\n\n /******/\n // mode & 1: value is a module id, require it\n\n /******/\n // mode & 2: merge all properties of value into the ns\n\n /******/\n // mode & 4: return value when already ns object\n\n /******/\n // mode & 8|1: behave like require\n\n /******/\n\n\n __webpack_require__.t = function (value, mode) {\n /******/\n if (mode & 1) value = __webpack_require__(value);\n /******/\n\n if (mode & 8) return value;\n /******/\n\n if (mode & 4 && typeof value === 'object' && value && value.__esModule) return value;\n /******/\n\n var ns = Object.create(null);\n /******/\n\n __webpack_require__.r(ns);\n /******/\n\n\n Object.defineProperty(ns, 'default', {\n enumerable: true,\n value: value\n });\n /******/\n\n if (mode & 2 && typeof value != 'string') for (var key in value) __webpack_require__.d(ns, key, function (key) {\n return value[key];\n }.bind(null, key));\n /******/\n\n return ns;\n /******/\n };\n /******/\n\n /******/\n // getDefaultExport function for compatibility with non-harmony modules\n\n /******/\n\n\n __webpack_require__.n = function (module) {\n /******/\n var getter = module && module.__esModule ?\n /******/\n function getDefault() {\n return module['default'];\n } :\n /******/\n function getModuleExports() {\n return module;\n };\n /******/\n\n __webpack_require__.d(getter, 'a', getter);\n /******/\n\n\n return getter;\n /******/\n };\n /******/\n\n /******/\n // Object.prototype.hasOwnProperty.call\n\n /******/\n\n\n __webpack_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n /******/\n\n /******/\n // __webpack_public_path__\n\n /******/\n\n\n __webpack_require__.p = \"\";\n /******/\n\n /******/\n\n /******/\n // Load entry module and return exports\n\n /******/\n\n return __webpack_require__(__webpack_require__.s = 21);\n /******/\n }\n /************************************************************************/\n\n /******/\n ({\n /***/\n \"./foundation.core\":\n /*!****************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n \\****************************************************************************************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n /***/\n },\n\n /***/\n \"./js/entries/plugins/foundation.util.box.js\":\n /*!***************************************************!*\\\n !*** ./js/entries/plugins/foundation.util.box.js ***!\n \\***************************************************/\n\n /*! exports provided: Foundation, Box */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! ./foundation.core */\n \"./foundation.core\");\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Foundation\", function () {\n return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"];\n });\n /* harmony import */\n\n\n var _foundation_util_box__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! ../../foundation.util.box */\n \"./js/foundation.util.box.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Box\", function () {\n return _foundation_util_box__WEBPACK_IMPORTED_MODULE_1__[\"Box\"];\n });\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].Box = _foundation_util_box__WEBPACK_IMPORTED_MODULE_1__[\"Box\"];\n /***/\n },\n\n /***/\n \"./js/foundation.util.box.js\":\n /*!***********************************!*\\\n !*** ./js/foundation.util.box.js ***!\n \\***********************************/\n\n /*! exports provided: Box */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Box\", function () {\n return Box;\n });\n\n var Box = {\n ImNotTouchingYou: ImNotTouchingYou,\n OverlapArea: OverlapArea,\n GetDimensions: GetDimensions,\n GetExplicitOffsets: GetExplicitOffsets\n };\n /**\n * Compares the dimensions of an element to a container and determines collision events with container.\n * @function\n * @param {jQuery} element - jQuery object to test for collisions.\n * @param {jQuery} parent - jQuery object to use as bounding container.\n * @param {Boolean} lrOnly - set to true to check left and right values only.\n * @param {Boolean} tbOnly - set to true to check top and bottom values only.\n * @default if no parent object passed, detects collisions with `window`.\n * @returns {Boolean} - true if collision free, false if a collision in any direction.\n */\n\n function ImNotTouchingYou(element, parent, lrOnly, tbOnly, ignoreBottom) {\n return OverlapArea(element, parent, lrOnly, tbOnly, ignoreBottom) === 0;\n }\n\n function OverlapArea(element, parent, lrOnly, tbOnly, ignoreBottom) {\n var eleDims = GetDimensions(element),\n topOver,\n bottomOver,\n leftOver,\n rightOver;\n\n if (parent) {\n var parDims = GetDimensions(parent);\n bottomOver = parDims.height + parDims.offset.top - (eleDims.offset.top + eleDims.height);\n topOver = eleDims.offset.top - parDims.offset.top;\n leftOver = eleDims.offset.left - parDims.offset.left;\n rightOver = parDims.width + parDims.offset.left - (eleDims.offset.left + eleDims.width);\n } else {\n bottomOver = eleDims.windowDims.height + eleDims.windowDims.offset.top - (eleDims.offset.top + eleDims.height);\n topOver = eleDims.offset.top - eleDims.windowDims.offset.top;\n leftOver = eleDims.offset.left - eleDims.windowDims.offset.left;\n rightOver = eleDims.windowDims.width - (eleDims.offset.left + eleDims.width);\n }\n\n bottomOver = ignoreBottom ? 0 : Math.min(bottomOver, 0);\n topOver = Math.min(topOver, 0);\n leftOver = Math.min(leftOver, 0);\n rightOver = Math.min(rightOver, 0);\n\n if (lrOnly) {\n return leftOver + rightOver;\n }\n\n if (tbOnly) {\n return topOver + bottomOver;\n } // use sum of squares b/c we care about overlap area.\n\n\n return Math.sqrt(topOver * topOver + bottomOver * bottomOver + leftOver * leftOver + rightOver * rightOver);\n }\n /**\n * Uses native methods to return an object of dimension values.\n * @function\n * @param {jQuery || HTML} element - jQuery object or DOM element for which to get the dimensions. Can be any element other that document or window.\n * @returns {Object} - nested object of integer pixel values\n * TODO - if element is window, return only those values.\n */\n\n\n function GetDimensions(elem) {\n elem = elem.length ? elem[0] : elem;\n\n if (elem === window || elem === document) {\n throw new Error(\"I'm sorry, Dave. I'm afraid I can't do that.\");\n }\n\n var rect = elem.getBoundingClientRect(),\n parRect = elem.parentNode.getBoundingClientRect(),\n winRect = document.body.getBoundingClientRect(),\n winY = window.pageYOffset,\n winX = window.pageXOffset;\n return {\n width: rect.width,\n height: rect.height,\n offset: {\n top: rect.top + winY,\n left: rect.left + winX\n },\n parentDims: {\n width: parRect.width,\n height: parRect.height,\n offset: {\n top: parRect.top + winY,\n left: parRect.left + winX\n }\n },\n windowDims: {\n width: winRect.width,\n height: winRect.height,\n offset: {\n top: winY,\n left: winX\n }\n }\n };\n }\n /**\n * Returns an object of top and left integer pixel values for dynamically rendered elements,\n * such as: Tooltip, Reveal, and Dropdown. Maintained for backwards compatibility, and where\n * you don't know alignment, but generally from\n * 6.4 forward you should use GetExplicitOffsets, as GetOffsets conflates position and alignment.\n * @function\n * @param {jQuery} element - jQuery object for the element being positioned.\n * @param {jQuery} anchor - jQuery object for the element's anchor point.\n * @param {String} position - a string relating to the desired position of the element, relative to it's anchor\n * @param {Number} vOffset - integer pixel value of desired vertical separation between anchor and element.\n * @param {Number} hOffset - integer pixel value of desired horizontal separation between anchor and element.\n * @param {Boolean} isOverflow - if a collision event is detected, sets to true to default the element to full width - any desired offset.\n * TODO alter/rewrite to work with `em` values as well/instead of pixels\n */\n\n\n function GetExplicitOffsets(element, anchor, position, alignment, vOffset, hOffset, isOverflow) {\n var $eleDims = GetDimensions(element),\n $anchorDims = anchor ? GetDimensions(anchor) : null;\n var topVal, leftVal;\n\n if ($anchorDims !== null) {\n // set position related attribute\n switch (position) {\n case 'top':\n topVal = $anchorDims.offset.top - ($eleDims.height + vOffset);\n break;\n\n case 'bottom':\n topVal = $anchorDims.offset.top + $anchorDims.height + vOffset;\n break;\n\n case 'left':\n leftVal = $anchorDims.offset.left - ($eleDims.width + hOffset);\n break;\n\n case 'right':\n leftVal = $anchorDims.offset.left + $anchorDims.width + hOffset;\n break;\n } // set alignment related attribute\n\n\n switch (position) {\n case 'top':\n case 'bottom':\n switch (alignment) {\n case 'left':\n leftVal = $anchorDims.offset.left + hOffset;\n break;\n\n case 'right':\n leftVal = $anchorDims.offset.left - $eleDims.width + $anchorDims.width - hOffset;\n break;\n\n case 'center':\n leftVal = isOverflow ? hOffset : $anchorDims.offset.left + $anchorDims.width / 2 - $eleDims.width / 2 + hOffset;\n break;\n }\n\n break;\n\n case 'right':\n case 'left':\n switch (alignment) {\n case 'bottom':\n topVal = $anchorDims.offset.top - vOffset + $anchorDims.height - $eleDims.height;\n break;\n\n case 'top':\n topVal = $anchorDims.offset.top + vOffset;\n break;\n\n case 'center':\n topVal = $anchorDims.offset.top + vOffset + $anchorDims.height / 2 - $eleDims.height / 2;\n break;\n }\n\n break;\n }\n }\n\n return {\n top: topVal,\n left: leftVal\n };\n }\n /***/\n\n },\n\n /***/\n 21:\n /*!*********************************************************!*\\\n !*** multi ./js/entries/plugins/foundation.util.box.js ***!\n \\*********************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports, __webpack_require__) {\n module.exports = __webpack_require__(\n /*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.util.box.js */\n \"./js/entries/plugins/foundation.util.box.js\");\n /***/\n }\n /******/\n\n })\n );\n});","!function (t, e) {\n \"object\" == typeof exports && \"object\" == typeof module ? module.exports = e(require(\"./foundation.core\")) : \"function\" == typeof define && define.amd ? define([\"./foundation.core\"], e) : \"object\" == typeof exports ? exports[\"foundation.util.box\"] = e(require(\"./foundation.core\")) : (t.__FOUNDATION_EXTERNAL__ = t.__FOUNDATION_EXTERNAL__ || {}, t.__FOUNDATION_EXTERNAL__[\"foundation.util.box\"] = e(t.__FOUNDATION_EXTERNAL__[\"foundation.core\"]));\n}(window, function (o) {\n return n = {\n \"./foundation.core\": function (t, e) {\n t.exports = o;\n },\n \"./js/entries/plugins/foundation.util.box.js\": function (t, e, o) {\n \"use strict\";\n\n o.r(e);\n var n = o(\"./foundation.core\");\n o.d(e, \"Foundation\", function () {\n return n.Foundation;\n });\n var i = o(\"./js/foundation.util.box.js\");\n o.d(e, \"Box\", function () {\n return i.Box;\n }), n.Foundation.Box = i.Box;\n },\n \"./js/foundation.util.box.js\": function (t, e, o) {\n \"use strict\";\n\n o.r(e), o.d(e, \"Box\", function () {\n return n;\n });\n var n = {\n ImNotTouchingYou: function (t, e, o, n, i) {\n return 0 === f(t, e, o, n, i);\n },\n OverlapArea: f,\n GetDimensions: c,\n GetExplicitOffsets: function (t, e, o, n, i, f, r) {\n var s,\n u,\n a = c(t),\n d = e ? c(e) : null;\n\n if (null !== d) {\n switch (o) {\n case \"top\":\n s = d.offset.top - (a.height + i);\n break;\n\n case \"bottom\":\n s = d.offset.top + d.height + i;\n break;\n\n case \"left\":\n u = d.offset.left - (a.width + f);\n break;\n\n case \"right\":\n u = d.offset.left + d.width + f;\n }\n\n switch (o) {\n case \"top\":\n case \"bottom\":\n switch (n) {\n case \"left\":\n u = d.offset.left + f;\n break;\n\n case \"right\":\n u = d.offset.left - a.width + d.width - f;\n break;\n\n case \"center\":\n u = r ? f : d.offset.left + d.width / 2 - a.width / 2 + f;\n }\n\n break;\n\n case \"right\":\n case \"left\":\n switch (n) {\n case \"bottom\":\n s = d.offset.top - i + d.height - a.height;\n break;\n\n case \"top\":\n s = d.offset.top + i;\n break;\n\n case \"center\":\n s = d.offset.top + i + d.height / 2 - a.height / 2;\n }\n\n }\n }\n\n return {\n top: s,\n left: u\n };\n }\n };\n\n function f(t, e, o, n, i) {\n var f,\n r,\n s,\n t = c(t);\n return t = e ? (f = (e = c(e)).height + e.offset.top - (t.offset.top + t.height), r = t.offset.top - e.offset.top, s = t.offset.left - e.offset.left, e.width + e.offset.left - (t.offset.left + t.width)) : (f = t.windowDims.height + t.windowDims.offset.top - (t.offset.top + t.height), r = t.offset.top - t.windowDims.offset.top, s = t.offset.left - t.windowDims.offset.left, t.windowDims.width - (t.offset.left + t.width)), f = i ? 0 : Math.min(f, 0), r = Math.min(r, 0), s = Math.min(s, 0), t = Math.min(t, 0), o ? s + t : n ? r + f : Math.sqrt(r * r + f * f + s * s + t * t);\n }\n\n function c(t) {\n if ((t = t.length ? t[0] : t) === window || t === document) throw new Error(\"I'm sorry, Dave. I'm afraid I can't do that.\");\n var e = t.getBoundingClientRect(),\n o = t.parentNode.getBoundingClientRect(),\n n = document.body.getBoundingClientRect(),\n i = window.pageYOffset,\n t = window.pageXOffset;\n return {\n width: e.width,\n height: e.height,\n offset: {\n top: e.top + i,\n left: e.left + t\n },\n parentDims: {\n width: o.width,\n height: o.height,\n offset: {\n top: o.top + i,\n left: o.left + t\n }\n },\n windowDims: {\n width: n.width,\n height: n.height,\n offset: {\n top: i,\n left: t\n }\n }\n };\n }\n },\n 21: function (t, e, o) {\n t.exports = o(\"./js/entries/plugins/foundation.util.box.js\");\n }\n }, f = {}, i.m = n, i.c = f, i.d = function (t, e, o) {\n i.o(t, e) || Object.defineProperty(t, e, {\n enumerable: !0,\n get: o\n });\n }, i.r = function (t) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(t, \"__esModule\", {\n value: !0\n });\n }, i.t = function (e, t) {\n if (1 & t && (e = i(e)), 8 & t) return e;\n if (4 & t && \"object\" == typeof e && e && e.__esModule) return e;\n var o = Object.create(null);\n if (i.r(o), Object.defineProperty(o, \"default\", {\n enumerable: !0,\n value: e\n }), 2 & t && \"string\" != typeof e) for (var n in e) i.d(o, n, function (t) {\n return e[t];\n }.bind(null, n));\n return o;\n }, i.n = function (t) {\n var e = t && t.__esModule ? function () {\n return t.default;\n } : function () {\n return t;\n };\n return i.d(e, \"a\", e), e;\n }, i.o = function (t, e) {\n return Object.prototype.hasOwnProperty.call(t, e);\n }, i.p = \"\", i(i.s = 21);\n\n function i(t) {\n if (f[t]) return f[t].exports;\n var e = f[t] = {\n i: t,\n l: !1,\n exports: {}\n };\n return n[t].call(e.exports, e, e.exports, i), e.l = !0, e.exports;\n }\n\n var n, f;\n});","(function webpackUniversalModuleDefinition(root, factory) {\n if (typeof exports === 'object' && typeof module === 'object') module.exports = factory(require(\"./foundation.core\"), require(\"jquery\"));else if (typeof define === 'function' && define.amd) define([\"./foundation.core\", \"jquery\"], factory);else if (typeof exports === 'object') exports[\"foundation.util.imageLoader\"] = factory(require(\"./foundation.core\"), require(\"jquery\"));else root[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.imageLoader\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"jQuery\"]);\n})(window, function (__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\n return (\n /******/\n function (modules) {\n // webpackBootstrap\n\n /******/\n // The module cache\n\n /******/\n var installedModules = {};\n /******/\n\n /******/\n // The require function\n\n /******/\n\n function __webpack_require__(moduleId) {\n /******/\n\n /******/\n // Check if module is in cache\n\n /******/\n if (installedModules[moduleId]) {\n /******/\n return installedModules[moduleId].exports;\n /******/\n }\n /******/\n // Create a new module (and put it into the cache)\n\n /******/\n\n\n var module = installedModules[moduleId] = {\n /******/\n i: moduleId,\n\n /******/\n l: false,\n\n /******/\n exports: {}\n /******/\n\n };\n /******/\n\n /******/\n // Execute the module function\n\n /******/\n\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n /******/\n\n /******/\n // Flag the module as loaded\n\n /******/\n\n module.l = true;\n /******/\n\n /******/\n // Return the exports of the module\n\n /******/\n\n return module.exports;\n /******/\n }\n /******/\n\n /******/\n\n /******/\n // expose the modules object (__webpack_modules__)\n\n /******/\n\n\n __webpack_require__.m = modules;\n /******/\n\n /******/\n // expose the module cache\n\n /******/\n\n __webpack_require__.c = installedModules;\n /******/\n\n /******/\n // define getter function for harmony exports\n\n /******/\n\n __webpack_require__.d = function (exports, name, getter) {\n /******/\n if (!__webpack_require__.o(exports, name)) {\n /******/\n Object.defineProperty(exports, name, {\n enumerable: true,\n get: getter\n });\n /******/\n }\n /******/\n\n };\n /******/\n\n /******/\n // define __esModule on exports\n\n /******/\n\n\n __webpack_require__.r = function (exports) {\n /******/\n if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n /******/\n Object.defineProperty(exports, Symbol.toStringTag, {\n value: 'Module'\n });\n /******/\n }\n /******/\n\n\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n /******/\n };\n /******/\n\n /******/\n // create a fake namespace object\n\n /******/\n // mode & 1: value is a module id, require it\n\n /******/\n // mode & 2: merge all properties of value into the ns\n\n /******/\n // mode & 4: return value when already ns object\n\n /******/\n // mode & 8|1: behave like require\n\n /******/\n\n\n __webpack_require__.t = function (value, mode) {\n /******/\n if (mode & 1) value = __webpack_require__(value);\n /******/\n\n if (mode & 8) return value;\n /******/\n\n if (mode & 4 && typeof value === 'object' && value && value.__esModule) return value;\n /******/\n\n var ns = Object.create(null);\n /******/\n\n __webpack_require__.r(ns);\n /******/\n\n\n Object.defineProperty(ns, 'default', {\n enumerable: true,\n value: value\n });\n /******/\n\n if (mode & 2 && typeof value != 'string') for (var key in value) __webpack_require__.d(ns, key, function (key) {\n return value[key];\n }.bind(null, key));\n /******/\n\n return ns;\n /******/\n };\n /******/\n\n /******/\n // getDefaultExport function for compatibility with non-harmony modules\n\n /******/\n\n\n __webpack_require__.n = function (module) {\n /******/\n var getter = module && module.__esModule ?\n /******/\n function getDefault() {\n return module['default'];\n } :\n /******/\n function getModuleExports() {\n return module;\n };\n /******/\n\n __webpack_require__.d(getter, 'a', getter);\n /******/\n\n\n return getter;\n /******/\n };\n /******/\n\n /******/\n // Object.prototype.hasOwnProperty.call\n\n /******/\n\n\n __webpack_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n /******/\n\n /******/\n // __webpack_public_path__\n\n /******/\n\n\n __webpack_require__.p = \"\";\n /******/\n\n /******/\n\n /******/\n // Load entry module and return exports\n\n /******/\n\n return __webpack_require__(__webpack_require__.s = 22);\n /******/\n }\n /************************************************************************/\n\n /******/\n ({\n /***/\n \"./foundation.core\":\n /*!****************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n \\****************************************************************************************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n /***/\n },\n\n /***/\n \"./js/entries/plugins/foundation.util.imageLoader.js\":\n /*!***********************************************************!*\\\n !*** ./js/entries/plugins/foundation.util.imageLoader.js ***!\n \\***********************************************************/\n\n /*! exports provided: Foundation, onImagesLoaded */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! ./foundation.core */\n \"./foundation.core\");\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Foundation\", function () {\n return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"];\n });\n /* harmony import */\n\n\n var _foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! ../../foundation.util.imageLoader */\n \"./js/foundation.util.imageLoader.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"onImagesLoaded\", function () {\n return _foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_1__[\"onImagesLoaded\"];\n });\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].onImagesLoaded = _foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_1__[\"onImagesLoaded\"];\n /***/\n },\n\n /***/\n \"./js/foundation.util.imageLoader.js\":\n /*!*******************************************!*\\\n !*** ./js/foundation.util.imageLoader.js ***!\n \\*******************************************/\n\n /*! exports provided: onImagesLoaded */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"onImagesLoaded\", function () {\n return onImagesLoaded;\n });\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! jquery */\n \"jquery\");\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n /**\n * Runs a callback function when images are fully loaded.\n * @param {Object} images - Image(s) to check if loaded.\n * @param {Func} callback - Function to execute when image is fully loaded.\n */\n\n\n function onImagesLoaded(images, callback) {\n var unloaded = images.length;\n\n if (unloaded === 0) {\n callback();\n }\n\n images.each(function () {\n // Check if image is loaded\n if (this.complete && typeof this.naturalWidth !== 'undefined') {\n singleImageLoaded();\n } else {\n // If the above check failed, simulate loading on detached element.\n var image = new Image(); // Still count image as loaded if it finalizes with an error.\n\n var events = \"load.zf.images error.zf.images\";\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(image).one(events, function me() {\n // Unbind the event listeners. We're using 'one' but only one of the two events will have fired.\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).off(events, me);\n singleImageLoaded();\n });\n image.src = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).attr('src');\n }\n });\n\n function singleImageLoaded() {\n unloaded--;\n\n if (unloaded === 0) {\n callback();\n }\n }\n }\n /***/\n\n },\n\n /***/\n 22:\n /*!*****************************************************************!*\\\n !*** multi ./js/entries/plugins/foundation.util.imageLoader.js ***!\n \\*****************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports, __webpack_require__) {\n module.exports = __webpack_require__(\n /*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.util.imageLoader.js */\n \"./js/entries/plugins/foundation.util.imageLoader.js\");\n /***/\n },\n\n /***/\n \"jquery\":\n /*!********************************************************************************************!*\\\n !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n \\********************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n /***/\n }\n /******/\n\n })\n );\n});","(function webpackUniversalModuleDefinition(root, factory) {\n if (typeof exports === 'object' && typeof module === 'object') module.exports = factory(require(\"./foundation.core\"), require(\"jquery\"));else if (typeof define === 'function' && define.amd) define([\"./foundation.core\", \"jquery\"], factory);else if (typeof exports === 'object') exports[\"foundation.util.keyboard\"] = factory(require(\"./foundation.core\"), require(\"jquery\"));else root[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"jQuery\"]);\n})(window, function (__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\n return (\n /******/\n function (modules) {\n // webpackBootstrap\n\n /******/\n // The module cache\n\n /******/\n var installedModules = {};\n /******/\n\n /******/\n // The require function\n\n /******/\n\n function __webpack_require__(moduleId) {\n /******/\n\n /******/\n // Check if module is in cache\n\n /******/\n if (installedModules[moduleId]) {\n /******/\n return installedModules[moduleId].exports;\n /******/\n }\n /******/\n // Create a new module (and put it into the cache)\n\n /******/\n\n\n var module = installedModules[moduleId] = {\n /******/\n i: moduleId,\n\n /******/\n l: false,\n\n /******/\n exports: {}\n /******/\n\n };\n /******/\n\n /******/\n // Execute the module function\n\n /******/\n\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n /******/\n\n /******/\n // Flag the module as loaded\n\n /******/\n\n module.l = true;\n /******/\n\n /******/\n // Return the exports of the module\n\n /******/\n\n return module.exports;\n /******/\n }\n /******/\n\n /******/\n\n /******/\n // expose the modules object (__webpack_modules__)\n\n /******/\n\n\n __webpack_require__.m = modules;\n /******/\n\n /******/\n // expose the module cache\n\n /******/\n\n __webpack_require__.c = installedModules;\n /******/\n\n /******/\n // define getter function for harmony exports\n\n /******/\n\n __webpack_require__.d = function (exports, name, getter) {\n /******/\n if (!__webpack_require__.o(exports, name)) {\n /******/\n Object.defineProperty(exports, name, {\n enumerable: true,\n get: getter\n });\n /******/\n }\n /******/\n\n };\n /******/\n\n /******/\n // define __esModule on exports\n\n /******/\n\n\n __webpack_require__.r = function (exports) {\n /******/\n if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n /******/\n Object.defineProperty(exports, Symbol.toStringTag, {\n value: 'Module'\n });\n /******/\n }\n /******/\n\n\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n /******/\n };\n /******/\n\n /******/\n // create a fake namespace object\n\n /******/\n // mode & 1: value is a module id, require it\n\n /******/\n // mode & 2: merge all properties of value into the ns\n\n /******/\n // mode & 4: return value when already ns object\n\n /******/\n // mode & 8|1: behave like require\n\n /******/\n\n\n __webpack_require__.t = function (value, mode) {\n /******/\n if (mode & 1) value = __webpack_require__(value);\n /******/\n\n if (mode & 8) return value;\n /******/\n\n if (mode & 4 && typeof value === 'object' && value && value.__esModule) return value;\n /******/\n\n var ns = Object.create(null);\n /******/\n\n __webpack_require__.r(ns);\n /******/\n\n\n Object.defineProperty(ns, 'default', {\n enumerable: true,\n value: value\n });\n /******/\n\n if (mode & 2 && typeof value != 'string') for (var key in value) __webpack_require__.d(ns, key, function (key) {\n return value[key];\n }.bind(null, key));\n /******/\n\n return ns;\n /******/\n };\n /******/\n\n /******/\n // getDefaultExport function for compatibility with non-harmony modules\n\n /******/\n\n\n __webpack_require__.n = function (module) {\n /******/\n var getter = module && module.__esModule ?\n /******/\n function getDefault() {\n return module['default'];\n } :\n /******/\n function getModuleExports() {\n return module;\n };\n /******/\n\n __webpack_require__.d(getter, 'a', getter);\n /******/\n\n\n return getter;\n /******/\n };\n /******/\n\n /******/\n // Object.prototype.hasOwnProperty.call\n\n /******/\n\n\n __webpack_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n /******/\n\n /******/\n // __webpack_public_path__\n\n /******/\n\n\n __webpack_require__.p = \"\";\n /******/\n\n /******/\n\n /******/\n // Load entry module and return exports\n\n /******/\n\n return __webpack_require__(__webpack_require__.s = 23);\n /******/\n }\n /************************************************************************/\n\n /******/\n ({\n /***/\n \"./foundation.core\":\n /*!****************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n \\****************************************************************************************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n /***/\n },\n\n /***/\n \"./js/entries/plugins/foundation.util.keyboard.js\":\n /*!********************************************************!*\\\n !*** ./js/entries/plugins/foundation.util.keyboard.js ***!\n \\********************************************************/\n\n /*! exports provided: Foundation, Keyboard */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! ./foundation.core */\n \"./foundation.core\");\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Foundation\", function () {\n return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"];\n });\n /* harmony import */\n\n\n var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! ../../foundation.util.keyboard */\n \"./js/foundation.util.keyboard.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Keyboard\", function () {\n return _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__[\"Keyboard\"];\n });\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].Keyboard = _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__[\"Keyboard\"];\n /***/\n },\n\n /***/\n \"./js/foundation.util.keyboard.js\":\n /*!****************************************!*\\\n !*** ./js/foundation.util.keyboard.js ***!\n \\****************************************/\n\n /*! exports provided: Keyboard */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Keyboard\", function () {\n return Keyboard;\n });\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! jquery */\n \"jquery\");\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */\n\n\n var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! ./foundation.core.utils */\n \"./foundation.core\");\n /* harmony import */\n\n\n var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__);\n /*******************************************\n * *\n * This util was created by Marius Olbertz *\n * Please thank Marius on GitHub /owlbertz *\n * or the web http://www.mariusolbertz.de/ *\n * *\n ******************************************/\n\n\n var keyCodes = {\n 9: 'TAB',\n 13: 'ENTER',\n 27: 'ESCAPE',\n 32: 'SPACE',\n 35: 'END',\n 36: 'HOME',\n 37: 'ARROW_LEFT',\n 38: 'ARROW_UP',\n 39: 'ARROW_RIGHT',\n 40: 'ARROW_DOWN'\n };\n var commands = {}; // Functions pulled out to be referenceable from internals\n\n function findFocusable($element) {\n if (!$element) {\n return false;\n }\n\n return $element.find('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]').filter(function () {\n if (!jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).is(':visible') || jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).attr('tabindex') < 0) {\n return false;\n } //only have visible elements and those that have a tabindex greater or equal 0\n\n\n return true;\n }).sort(function (a, b) {\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(a).attr('tabindex') === jquery__WEBPACK_IMPORTED_MODULE_0___default()(b).attr('tabindex')) {\n return 0;\n }\n\n var aTabIndex = parseInt(jquery__WEBPACK_IMPORTED_MODULE_0___default()(a).attr('tabindex'), 10),\n bTabIndex = parseInt(jquery__WEBPACK_IMPORTED_MODULE_0___default()(b).attr('tabindex'), 10); // Undefined is treated the same as 0\n\n if (typeof jquery__WEBPACK_IMPORTED_MODULE_0___default()(a).attr('tabindex') === 'undefined' && bTabIndex > 0) {\n return 1;\n }\n\n if (typeof jquery__WEBPACK_IMPORTED_MODULE_0___default()(b).attr('tabindex') === 'undefined' && aTabIndex > 0) {\n return -1;\n }\n\n if (aTabIndex === 0 && bTabIndex > 0) {\n return 1;\n }\n\n if (bTabIndex === 0 && aTabIndex > 0) {\n return -1;\n }\n\n if (aTabIndex < bTabIndex) {\n return -1;\n }\n\n if (aTabIndex > bTabIndex) {\n return 1;\n }\n });\n }\n\n function parseKey(event) {\n var key = keyCodes[event.which || event.keyCode] || String.fromCharCode(event.which).toUpperCase(); // Remove un-printable characters, e.g. for `fromCharCode` calls for CTRL only events\n\n key = key.replace(/\\W+/, '');\n if (event.shiftKey) key = \"SHIFT_\".concat(key);\n if (event.ctrlKey) key = \"CTRL_\".concat(key);\n if (event.altKey) key = \"ALT_\".concat(key); // Remove trailing underscore, in case only modifiers were used (e.g. only `CTRL_ALT`)\n\n key = key.replace(/_$/, '');\n return key;\n }\n\n var Keyboard = {\n keys: getKeyCodes(keyCodes),\n\n /**\n * Parses the (keyboard) event and returns a String that represents its key\n * Can be used like Foundation.parseKey(event) === Foundation.keys.SPACE\n * @param {Event} event - the event generated by the event handler\n * @return String key - String that represents the key pressed\n */\n parseKey: parseKey,\n\n /**\n * Handles the given (keyboard) event\n * @param {Event} event - the event generated by the event handler\n * @param {String} component - Foundation component's name, e.g. Slider or Reveal\n * @param {Objects} functions - collection of functions that are to be executed\n */\n handleKey: function handleKey(event, component, functions) {\n var commandList = commands[component],\n keyCode = this.parseKey(event),\n cmds,\n command,\n fn;\n if (!commandList) return console.warn('Component not defined!'); // Ignore the event if it was already handled\n\n if (event.zfIsKeyHandled === true) return; // This component does not differentiate between ltr and rtl\n\n if (typeof commandList.ltr === 'undefined') {\n cmds = commandList; // use plain list\n } else {\n // merge ltr and rtl: if document is rtl, rtl overwrites ltr and vice versa\n if (Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"rtl\"])()) cmds = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, commandList.ltr, commandList.rtl);else cmds = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, commandList.rtl, commandList.ltr);\n }\n\n command = cmds[keyCode];\n fn = functions[command]; // Execute the handler if found\n\n if (fn && typeof fn === 'function') {\n var returnValue = fn.apply(); // Mark the event as \"handled\" to prevent future handlings\n\n event.zfIsKeyHandled = true; // Execute function when event was handled\n\n if (functions.handled || typeof functions.handled === 'function') {\n functions.handled(returnValue);\n }\n } else {\n // Execute function when event was not handled\n if (functions.unhandled || typeof functions.unhandled === 'function') {\n functions.unhandled();\n }\n }\n },\n\n /**\n * Finds all focusable elements within the given `$element`\n * @param {jQuery} $element - jQuery object to search within\n * @return {jQuery} $focusable - all focusable elements within `$element`\n */\n findFocusable: findFocusable,\n\n /**\n * Returns the component name name\n * @param {Object} component - Foundation component, e.g. Slider or Reveal\n * @return String componentName\n */\n register: function register(componentName, cmds) {\n commands[componentName] = cmds;\n },\n // TODO9438: These references to Keyboard need to not require global. Will 'this' work in this context?\n //\n\n /**\n * Traps the focus in the given element.\n * @param {jQuery} $element jQuery object to trap the foucs into.\n */\n trapFocus: function trapFocus($element) {\n var $focusable = findFocusable($element),\n $firstFocusable = $focusable.eq(0),\n $lastFocusable = $focusable.eq(-1);\n $element.on('keydown.zf.trapfocus', function (event) {\n if (event.target === $lastFocusable[0] && parseKey(event) === 'TAB') {\n event.preventDefault();\n $firstFocusable.focus();\n } else if (event.target === $firstFocusable[0] && parseKey(event) === 'SHIFT_TAB') {\n event.preventDefault();\n $lastFocusable.focus();\n }\n });\n },\n\n /**\n * Releases the trapped focus from the given element.\n * @param {jQuery} $element jQuery object to release the focus for.\n */\n releaseFocus: function releaseFocus($element) {\n $element.off('keydown.zf.trapfocus');\n }\n };\n /*\n * Constants for easier comparing.\n * Can be used like Foundation.parseKey(event) === Foundation.keys.SPACE\n */\n\n function getKeyCodes(kcs) {\n var k = {};\n\n for (var kc in kcs) {\n if (kcs.hasOwnProperty(kc)) k[kcs[kc]] = kcs[kc];\n }\n\n return k;\n }\n /***/\n\n },\n\n /***/\n 23:\n /*!**************************************************************!*\\\n !*** multi ./js/entries/plugins/foundation.util.keyboard.js ***!\n \\**************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports, __webpack_require__) {\n module.exports = __webpack_require__(\n /*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.util.keyboard.js */\n \"./js/entries/plugins/foundation.util.keyboard.js\");\n /***/\n },\n\n /***/\n \"jquery\":\n /*!********************************************************************************************!*\\\n !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n \\********************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n /***/\n }\n /******/\n\n })\n );\n});","!function (e, t) {\n \"object\" == typeof exports && \"object\" == typeof module ? module.exports = t(require(\"./foundation.core\"), require(\"jquery\")) : \"function\" == typeof define && define.amd ? define([\"./foundation.core\", \"jquery\"], t) : \"object\" == typeof exports ? exports[\"foundation.util.keyboard\"] = t(require(\"./foundation.core\"), require(\"jquery\")) : (e.__FOUNDATION_EXTERNAL__ = e.__FOUNDATION_EXTERNAL__ || {}, e.__FOUNDATION_EXTERNAL__[\"foundation.util.keyboard\"] = t(e.__FOUNDATION_EXTERNAL__[\"foundation.core\"], e.jQuery));\n}(window, function (n, r) {\n return i = {\n \"./foundation.core\": function (e, t) {\n e.exports = n;\n },\n \"./js/entries/plugins/foundation.util.keyboard.js\": function (e, t, n) {\n \"use strict\";\n\n n.r(t);\n var r = n(\"./foundation.core\");\n n.d(t, \"Foundation\", function () {\n return r.Foundation;\n });\n var o = n(\"./js/foundation.util.keyboard.js\");\n n.d(t, \"Keyboard\", function () {\n return o.Keyboard;\n }), r.Foundation.Keyboard = o.Keyboard;\n },\n \"./js/foundation.util.keyboard.js\": function (e, t, n) {\n \"use strict\";\n\n n.r(t), n.d(t, \"Keyboard\", function () {\n return f;\n });\n var t = n(\"jquery\"),\n o = n.n(t),\n i = n(\"./foundation.core\"),\n r = {\n 9: \"TAB\",\n 13: \"ENTER\",\n 27: \"ESCAPE\",\n 32: \"SPACE\",\n 35: \"END\",\n 36: \"HOME\",\n 37: \"ARROW_LEFT\",\n 38: \"ARROW_UP\",\n 39: \"ARROW_RIGHT\",\n 40: \"ARROW_DOWN\"\n },\n u = {};\n\n function a(e) {\n return !!e && e.find(\"a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]\").filter(function () {\n return !(!o()(this).is(\":visible\") || o()(this).attr(\"tabindex\") < 0);\n }).sort(function (e, t) {\n if (o()(e).attr(\"tabindex\") === o()(t).attr(\"tabindex\")) return 0;\n var n = parseInt(o()(e).attr(\"tabindex\"), 10),\n r = parseInt(o()(t).attr(\"tabindex\"), 10);\n return void 0 === o()(e).attr(\"tabindex\") && 0 < r ? 1 : void 0 === o()(t).attr(\"tabindex\") && 0 < n ? -1 : 0 === n && 0 < r ? 1 : 0 === r && 0 < n || n < r ? -1 : r < n ? 1 : void 0;\n });\n }\n\n function d(e) {\n var t = (t = r[e.which || e.keyCode] || String.fromCharCode(e.which).toUpperCase()).replace(/\\W+/, \"\");\n return e.shiftKey && (t = \"SHIFT_\".concat(t)), e.ctrlKey && (t = \"CTRL_\".concat(t)), t = (t = e.altKey ? \"ALT_\".concat(t) : t).replace(/_$/, \"\");\n }\n\n var f = {\n keys: function (e) {\n var t,\n n = {};\n\n for (t in e) e.hasOwnProperty(t) && (n[e[t]] = e[t]);\n\n return n;\n }(r),\n parseKey: d,\n handleKey: function (e, t, n) {\n var r = u[t],\n t = this.parseKey(e);\n if (!r) return console.warn(\"Component not defined!\");\n !0 !== e.zfIsKeyHandled && ((t = n[(void 0 === r.ltr ? r : Object(i.rtl)() ? o.a.extend({}, r.ltr, r.rtl) : o.a.extend({}, r.rtl, r.ltr))[t]]) && \"function\" == typeof t ? (t = t.apply(), e.zfIsKeyHandled = !0, !n.handled && \"function\" != typeof n.handled || n.handled(t)) : !n.unhandled && \"function\" != typeof n.unhandled || n.unhandled());\n },\n findFocusable: a,\n register: function (e, t) {\n u[e] = t;\n },\n trapFocus: function (e) {\n var t = a(e),\n n = t.eq(0),\n r = t.eq(-1);\n e.on(\"keydown.zf.trapfocus\", function (e) {\n e.target === r[0] && \"TAB\" === d(e) ? (e.preventDefault(), n.focus()) : e.target === n[0] && \"SHIFT_TAB\" === d(e) && (e.preventDefault(), r.focus());\n });\n },\n releaseFocus: function (e) {\n e.off(\"keydown.zf.trapfocus\");\n }\n };\n },\n 23: function (e, t, n) {\n e.exports = n(\"./js/entries/plugins/foundation.util.keyboard.js\");\n },\n jquery: function (e, t) {\n e.exports = r;\n }\n }, u = {}, o.m = i, o.c = u, o.d = function (e, t, n) {\n o.o(e, t) || Object.defineProperty(e, t, {\n enumerable: !0,\n get: n\n });\n }, o.r = function (e) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n }, o.t = function (t, e) {\n if (1 & e && (t = o(t)), 8 & e) return t;\n if (4 & e && \"object\" == typeof t && t && t.__esModule) return t;\n var n = Object.create(null);\n if (o.r(n), Object.defineProperty(n, \"default\", {\n enumerable: !0,\n value: t\n }), 2 & e && \"string\" != typeof t) for (var r in t) o.d(n, r, function (e) {\n return t[e];\n }.bind(null, r));\n return n;\n }, o.n = function (e) {\n var t = e && e.__esModule ? function () {\n return e.default;\n } : function () {\n return e;\n };\n return o.d(t, \"a\", t), t;\n }, o.o = function (e, t) {\n return Object.prototype.hasOwnProperty.call(e, t);\n }, o.p = \"\", o(o.s = 23);\n\n function o(e) {\n if (u[e]) return u[e].exports;\n var t = u[e] = {\n i: e,\n l: !1,\n exports: {}\n };\n return i[e].call(t.exports, t, t.exports, o), t.l = !0, t.exports;\n }\n\n var i, u;\n});","(function webpackUniversalModuleDefinition(root, factory) {\n if (typeof exports === 'object' && typeof module === 'object') module.exports = factory(require(\"./foundation.core\"), require(\"jquery\"));else if (typeof define === 'function' && define.amd) define([\"./foundation.core\", \"jquery\"], factory);else if (typeof exports === 'object') exports[\"foundation.util.mediaQuery\"] = factory(require(\"./foundation.core\"), require(\"jquery\"));else root[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.mediaQuery\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"jQuery\"]);\n})(window, function (__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\n return (\n /******/\n function (modules) {\n // webpackBootstrap\n\n /******/\n // The module cache\n\n /******/\n var installedModules = {};\n /******/\n\n /******/\n // The require function\n\n /******/\n\n function __webpack_require__(moduleId) {\n /******/\n\n /******/\n // Check if module is in cache\n\n /******/\n if (installedModules[moduleId]) {\n /******/\n return installedModules[moduleId].exports;\n /******/\n }\n /******/\n // Create a new module (and put it into the cache)\n\n /******/\n\n\n var module = installedModules[moduleId] = {\n /******/\n i: moduleId,\n\n /******/\n l: false,\n\n /******/\n exports: {}\n /******/\n\n };\n /******/\n\n /******/\n // Execute the module function\n\n /******/\n\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n /******/\n\n /******/\n // Flag the module as loaded\n\n /******/\n\n module.l = true;\n /******/\n\n /******/\n // Return the exports of the module\n\n /******/\n\n return module.exports;\n /******/\n }\n /******/\n\n /******/\n\n /******/\n // expose the modules object (__webpack_modules__)\n\n /******/\n\n\n __webpack_require__.m = modules;\n /******/\n\n /******/\n // expose the module cache\n\n /******/\n\n __webpack_require__.c = installedModules;\n /******/\n\n /******/\n // define getter function for harmony exports\n\n /******/\n\n __webpack_require__.d = function (exports, name, getter) {\n /******/\n if (!__webpack_require__.o(exports, name)) {\n /******/\n Object.defineProperty(exports, name, {\n enumerable: true,\n get: getter\n });\n /******/\n }\n /******/\n\n };\n /******/\n\n /******/\n // define __esModule on exports\n\n /******/\n\n\n __webpack_require__.r = function (exports) {\n /******/\n if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n /******/\n Object.defineProperty(exports, Symbol.toStringTag, {\n value: 'Module'\n });\n /******/\n }\n /******/\n\n\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n /******/\n };\n /******/\n\n /******/\n // create a fake namespace object\n\n /******/\n // mode & 1: value is a module id, require it\n\n /******/\n // mode & 2: merge all properties of value into the ns\n\n /******/\n // mode & 4: return value when already ns object\n\n /******/\n // mode & 8|1: behave like require\n\n /******/\n\n\n __webpack_require__.t = function (value, mode) {\n /******/\n if (mode & 1) value = __webpack_require__(value);\n /******/\n\n if (mode & 8) return value;\n /******/\n\n if (mode & 4 && typeof value === 'object' && value && value.__esModule) return value;\n /******/\n\n var ns = Object.create(null);\n /******/\n\n __webpack_require__.r(ns);\n /******/\n\n\n Object.defineProperty(ns, 'default', {\n enumerable: true,\n value: value\n });\n /******/\n\n if (mode & 2 && typeof value != 'string') for (var key in value) __webpack_require__.d(ns, key, function (key) {\n return value[key];\n }.bind(null, key));\n /******/\n\n return ns;\n /******/\n };\n /******/\n\n /******/\n // getDefaultExport function for compatibility with non-harmony modules\n\n /******/\n\n\n __webpack_require__.n = function (module) {\n /******/\n var getter = module && module.__esModule ?\n /******/\n function getDefault() {\n return module['default'];\n } :\n /******/\n function getModuleExports() {\n return module;\n };\n /******/\n\n __webpack_require__.d(getter, 'a', getter);\n /******/\n\n\n return getter;\n /******/\n };\n /******/\n\n /******/\n // Object.prototype.hasOwnProperty.call\n\n /******/\n\n\n __webpack_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n /******/\n\n /******/\n // __webpack_public_path__\n\n /******/\n\n\n __webpack_require__.p = \"\";\n /******/\n\n /******/\n\n /******/\n // Load entry module and return exports\n\n /******/\n\n return __webpack_require__(__webpack_require__.s = 24);\n /******/\n }\n /************************************************************************/\n\n /******/\n ({\n /***/\n \"./foundation.core\":\n /*!****************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n \\****************************************************************************************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n /***/\n },\n\n /***/\n \"./js/entries/plugins/foundation.util.mediaQuery.js\":\n /*!**********************************************************!*\\\n !*** ./js/entries/plugins/foundation.util.mediaQuery.js ***!\n \\**********************************************************/\n\n /*! exports provided: Foundation, MediaQuery */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! ./foundation.core */\n \"./foundation.core\");\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Foundation\", function () {\n return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"];\n });\n /* harmony import */\n\n\n var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! ../../foundation.util.mediaQuery */\n \"./js/foundation.util.mediaQuery.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"MediaQuery\", function () {\n return _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__[\"MediaQuery\"];\n });\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].MediaQuery = _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__[\"MediaQuery\"];\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].MediaQuery._init();\n /***/\n\n },\n\n /***/\n \"./js/foundation.util.mediaQuery.js\":\n /*!******************************************!*\\\n !*** ./js/foundation.util.mediaQuery.js ***!\n \\******************************************/\n\n /*! exports provided: MediaQuery */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"MediaQuery\", function () {\n return MediaQuery;\n });\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! jquery */\n \"jquery\");\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n }\n\n function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n\n function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n } // Default set of media queries\n // const defaultQueries = {\n // 'default' : 'only screen',\n // landscape : 'only screen and (orientation: landscape)',\n // portrait : 'only screen and (orientation: portrait)',\n // retina : 'only screen and (-webkit-min-device-pixel-ratio: 2),' +\n // 'only screen and (min--moz-device-pixel-ratio: 2),' +\n // 'only screen and (-o-min-device-pixel-ratio: 2/1),' +\n // 'only screen and (min-device-pixel-ratio: 2),' +\n // 'only screen and (min-resolution: 192dpi),' +\n // 'only screen and (min-resolution: 2dppx)'\n // };\n // matchMedia() polyfill - Test a CSS media type/query in JS.\n // Authors & copyright © 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. MIT license\n\n /* eslint-disable */\n\n\n window.matchMedia || (window.matchMedia = function () {\n \"use strict\"; // For browsers that support matchMedium api such as IE 9 and webkit\n\n var styleMedia = window.styleMedia || window.media; // For those that don't support matchMedium\n\n if (!styleMedia) {\n var style = document.createElement('style'),\n script = document.getElementsByTagName('script')[0],\n info = null;\n style.type = 'text/css';\n style.id = 'matchmediajs-test';\n\n if (!script) {\n document.head.appendChild(style);\n } else {\n script.parentNode.insertBefore(style, script);\n } // 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers\n\n\n info = 'getComputedStyle' in window && window.getComputedStyle(style, null) || style.currentStyle;\n styleMedia = {\n matchMedium: function matchMedium(media) {\n var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }'; // 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers\n\n if (style.styleSheet) {\n style.styleSheet.cssText = text;\n } else {\n style.textContent = text;\n } // Test if media query is true or false\n\n\n return info.width === '1px';\n }\n };\n }\n\n return function (media) {\n return {\n matches: styleMedia.matchMedium(media || 'all'),\n media: media || 'all'\n };\n };\n }());\n /* eslint-enable */\n\n var MediaQuery = {\n queries: [],\n current: '',\n\n /**\n * Initializes the media query helper, by extracting the breakpoint list from the CSS and activating the breakpoint watcher.\n * @function\n * @private\n */\n _init: function _init() {\n // make sure the initialization is only done once when calling _init() several times\n if (this.isInitialized === true) {\n return this;\n } else {\n this.isInitialized = true;\n }\n\n var self = this;\n var $meta = jquery__WEBPACK_IMPORTED_MODULE_0___default()('meta.foundation-mq');\n\n if (!$meta.length) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('').appendTo(document.head);\n }\n\n var extractedStyles = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.foundation-mq').css('font-family');\n var namedQueries;\n namedQueries = parseStyleToObject(extractedStyles);\n self.queries = []; // reset\n\n for (var key in namedQueries) {\n if (namedQueries.hasOwnProperty(key)) {\n self.queries.push({\n name: key,\n value: \"only screen and (min-width: \".concat(namedQueries[key], \")\")\n });\n }\n }\n\n this.current = this._getCurrentSize();\n\n this._watcher();\n },\n\n /**\n * Reinitializes the media query helper.\n * Useful if your CSS breakpoint configuration has just been loaded or has changed since the initialization.\n * @function\n * @private\n */\n _reInit: function _reInit() {\n this.isInitialized = false;\n\n this._init();\n },\n\n /**\n * Checks if the screen is at least as wide as a breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint to check.\n * @returns {Boolean} `true` if the breakpoint matches, `false` if it's smaller.\n */\n atLeast: function atLeast(size) {\n var query = this.get(size);\n\n if (query) {\n return window.matchMedia(query).matches;\n }\n\n return false;\n },\n\n /**\n * Checks if the screen is within the given breakpoint.\n * If smaller than the breakpoint of larger than its upper limit it returns false.\n * @function\n * @param {String} size - Name of the breakpoint to check.\n * @returns {Boolean} `true` if the breakpoint matches, `false` otherwise.\n */\n only: function only(size) {\n return size === this._getCurrentSize();\n },\n\n /**\n * Checks if the screen is within a breakpoint or smaller.\n * @function\n * @param {String} size - Name of the breakpoint to check.\n * @returns {Boolean} `true` if the breakpoint matches, `false` if it's larger.\n */\n upTo: function upTo(size) {\n var nextSize = this.next(size); // If the next breakpoint does not match, the screen is smaller than\n // the upper limit of this breakpoint.\n\n if (nextSize) {\n return !this.atLeast(nextSize);\n } // If there is no next breakpoint, the \"size\" breakpoint does not have\n // an upper limit and the screen will always be within it or smaller.\n\n\n return true;\n },\n\n /**\n * Checks if the screen matches to a breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint to check, either 'small only' or 'small'. Omitting 'only' falls back to using atLeast() method.\n * @returns {Boolean} `true` if the breakpoint matches, `false` if it does not.\n */\n is: function is(size) {\n var parts = size.trim().split(' ').filter(function (p) {\n return !!p.length;\n });\n\n var _parts = _slicedToArray(parts, 2),\n bpSize = _parts[0],\n _parts$ = _parts[1],\n bpModifier = _parts$ === void 0 ? '' : _parts$; // Only the breakpont\n\n\n if (bpModifier === 'only') {\n return this.only(bpSize);\n } // At least the breakpoint (included)\n\n\n if (!bpModifier || bpModifier === 'up') {\n return this.atLeast(bpSize);\n } // Up to the breakpoint (included)\n\n\n if (bpModifier === 'down') {\n return this.upTo(bpSize);\n }\n\n throw new Error(\"\\n Invalid breakpoint passed to MediaQuery.is().\\n Expected a breakpoint name formatted like \\\" \\\", got \\\"\".concat(size, \"\\\".\\n \"));\n },\n\n /**\n * Gets the media query of a breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint to get.\n * @returns {String|null} - The media query of the breakpoint, or `null` if the breakpoint doesn't exist.\n */\n get: function get(size) {\n for (var i in this.queries) {\n if (this.queries.hasOwnProperty(i)) {\n var query = this.queries[i];\n if (size === query.name) return query.value;\n }\n }\n\n return null;\n },\n\n /**\n * Get the breakpoint following the given breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint.\n * @returns {String|null} - The name of the following breakpoint, or `null` if the passed breakpoint was the last one.\n */\n next: function next(size) {\n var _this = this;\n\n var queryIndex = this.queries.findIndex(function (q) {\n return _this._getQueryName(q) === size;\n });\n\n if (queryIndex === -1) {\n throw new Error(\"\\n Unknown breakpoint \\\"\".concat(size, \"\\\" passed to MediaQuery.next().\\n Ensure it is present in your Sass \\\"$breakpoints\\\" setting.\\n \"));\n }\n\n var nextQuery = this.queries[queryIndex + 1];\n return nextQuery ? nextQuery.name : null;\n },\n\n /**\n * Returns the name of the breakpoint related to the given value.\n * @function\n * @private\n * @param {String|Object} value - Breakpoint name or query object.\n * @returns {String} Name of the breakpoint.\n */\n _getQueryName: function _getQueryName(value) {\n if (typeof value === 'string') return value;\n if (_typeof(value) === 'object') return value.name;\n throw new TypeError(\"\\n Invalid value passed to MediaQuery._getQueryName().\\n Expected a breakpoint name (String) or a breakpoint query (Object), got \\\"\".concat(value, \"\\\" (\").concat(_typeof(value), \")\\n \"));\n },\n\n /**\n * Gets the current breakpoint name by testing every breakpoint and returning the last one to match (the biggest one).\n * @function\n * @private\n * @returns {String} Name of the current breakpoint.\n */\n _getCurrentSize: function _getCurrentSize() {\n var matched;\n\n for (var i = 0; i < this.queries.length; i++) {\n var query = this.queries[i];\n\n if (window.matchMedia(query.value).matches) {\n matched = query;\n }\n }\n\n return matched && this._getQueryName(matched);\n },\n\n /**\n * Activates the breakpoint watcher, which fires an event on the window whenever the breakpoint changes.\n * @function\n * @private\n */\n _watcher: function _watcher() {\n var _this2 = this;\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('resize.zf.trigger', function () {\n var newSize = _this2._getCurrentSize(),\n currentSize = _this2.current;\n\n if (newSize !== currentSize) {\n // Change the current media query\n _this2.current = newSize; // Broadcast the media query change on the window\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).trigger('changed.zf.mediaquery', [newSize, currentSize]);\n }\n });\n }\n }; // Thank you: https://github.com/sindresorhus/query-string\n\n function parseStyleToObject(str) {\n var styleObject = {};\n\n if (typeof str !== 'string') {\n return styleObject;\n }\n\n str = str.trim().slice(1, -1); // browsers re-quote string style values\n\n if (!str) {\n return styleObject;\n }\n\n styleObject = str.split('&').reduce(function (ret, param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = parts[0];\n var val = parts[1];\n key = decodeURIComponent(key); // missing `=` should be `null`:\n // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\n val = typeof val === 'undefined' ? null : decodeURIComponent(val);\n\n if (!ret.hasOwnProperty(key)) {\n ret[key] = val;\n } else if (Array.isArray(ret[key])) {\n ret[key].push(val);\n } else {\n ret[key] = [ret[key], val];\n }\n\n return ret;\n }, {});\n return styleObject;\n }\n /***/\n\n },\n\n /***/\n 24:\n /*!****************************************************************!*\\\n !*** multi ./js/entries/plugins/foundation.util.mediaQuery.js ***!\n \\****************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports, __webpack_require__) {\n module.exports = __webpack_require__(\n /*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.util.mediaQuery.js */\n \"./js/entries/plugins/foundation.util.mediaQuery.js\");\n /***/\n },\n\n /***/\n \"jquery\":\n /*!********************************************************************************************!*\\\n !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n \\********************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n /***/\n }\n /******/\n\n })\n );\n});","(function webpackUniversalModuleDefinition(root, factory) {\n if (typeof exports === 'object' && typeof module === 'object') module.exports = factory(require(\"./foundation.core\"), require(\"jquery\"));else if (typeof define === 'function' && define.amd) define([\"./foundation.core\", \"jquery\"], factory);else if (typeof exports === 'object') exports[\"foundation.util.motion\"] = factory(require(\"./foundation.core\"), require(\"jquery\"));else root[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.motion\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"jQuery\"]);\n})(window, function (__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\n return (\n /******/\n function (modules) {\n // webpackBootstrap\n\n /******/\n // The module cache\n\n /******/\n var installedModules = {};\n /******/\n\n /******/\n // The require function\n\n /******/\n\n function __webpack_require__(moduleId) {\n /******/\n\n /******/\n // Check if module is in cache\n\n /******/\n if (installedModules[moduleId]) {\n /******/\n return installedModules[moduleId].exports;\n /******/\n }\n /******/\n // Create a new module (and put it into the cache)\n\n /******/\n\n\n var module = installedModules[moduleId] = {\n /******/\n i: moduleId,\n\n /******/\n l: false,\n\n /******/\n exports: {}\n /******/\n\n };\n /******/\n\n /******/\n // Execute the module function\n\n /******/\n\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n /******/\n\n /******/\n // Flag the module as loaded\n\n /******/\n\n module.l = true;\n /******/\n\n /******/\n // Return the exports of the module\n\n /******/\n\n return module.exports;\n /******/\n }\n /******/\n\n /******/\n\n /******/\n // expose the modules object (__webpack_modules__)\n\n /******/\n\n\n __webpack_require__.m = modules;\n /******/\n\n /******/\n // expose the module cache\n\n /******/\n\n __webpack_require__.c = installedModules;\n /******/\n\n /******/\n // define getter function for harmony exports\n\n /******/\n\n __webpack_require__.d = function (exports, name, getter) {\n /******/\n if (!__webpack_require__.o(exports, name)) {\n /******/\n Object.defineProperty(exports, name, {\n enumerable: true,\n get: getter\n });\n /******/\n }\n /******/\n\n };\n /******/\n\n /******/\n // define __esModule on exports\n\n /******/\n\n\n __webpack_require__.r = function (exports) {\n /******/\n if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n /******/\n Object.defineProperty(exports, Symbol.toStringTag, {\n value: 'Module'\n });\n /******/\n }\n /******/\n\n\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n /******/\n };\n /******/\n\n /******/\n // create a fake namespace object\n\n /******/\n // mode & 1: value is a module id, require it\n\n /******/\n // mode & 2: merge all properties of value into the ns\n\n /******/\n // mode & 4: return value when already ns object\n\n /******/\n // mode & 8|1: behave like require\n\n /******/\n\n\n __webpack_require__.t = function (value, mode) {\n /******/\n if (mode & 1) value = __webpack_require__(value);\n /******/\n\n if (mode & 8) return value;\n /******/\n\n if (mode & 4 && typeof value === 'object' && value && value.__esModule) return value;\n /******/\n\n var ns = Object.create(null);\n /******/\n\n __webpack_require__.r(ns);\n /******/\n\n\n Object.defineProperty(ns, 'default', {\n enumerable: true,\n value: value\n });\n /******/\n\n if (mode & 2 && typeof value != 'string') for (var key in value) __webpack_require__.d(ns, key, function (key) {\n return value[key];\n }.bind(null, key));\n /******/\n\n return ns;\n /******/\n };\n /******/\n\n /******/\n // getDefaultExport function for compatibility with non-harmony modules\n\n /******/\n\n\n __webpack_require__.n = function (module) {\n /******/\n var getter = module && module.__esModule ?\n /******/\n function getDefault() {\n return module['default'];\n } :\n /******/\n function getModuleExports() {\n return module;\n };\n /******/\n\n __webpack_require__.d(getter, 'a', getter);\n /******/\n\n\n return getter;\n /******/\n };\n /******/\n\n /******/\n // Object.prototype.hasOwnProperty.call\n\n /******/\n\n\n __webpack_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n /******/\n\n /******/\n // __webpack_public_path__\n\n /******/\n\n\n __webpack_require__.p = \"\";\n /******/\n\n /******/\n\n /******/\n // Load entry module and return exports\n\n /******/\n\n return __webpack_require__(__webpack_require__.s = 25);\n /******/\n }\n /************************************************************************/\n\n /******/\n ({\n /***/\n \"./foundation.core\":\n /*!****************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n \\****************************************************************************************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n /***/\n },\n\n /***/\n \"./js/entries/plugins/foundation.util.motion.js\":\n /*!******************************************************!*\\\n !*** ./js/entries/plugins/foundation.util.motion.js ***!\n \\******************************************************/\n\n /*! exports provided: Foundation, Motion, Move */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! ./foundation.core */\n \"./foundation.core\");\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Foundation\", function () {\n return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"];\n });\n /* harmony import */\n\n\n var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! ../../foundation.util.motion */\n \"./js/foundation.util.motion.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Motion\", function () {\n return _foundation_util_motion__WEBPACK_IMPORTED_MODULE_1__[\"Motion\"];\n });\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Move\", function () {\n return _foundation_util_motion__WEBPACK_IMPORTED_MODULE_1__[\"Move\"];\n });\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].Motion = _foundation_util_motion__WEBPACK_IMPORTED_MODULE_1__[\"Motion\"];\n _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].Move = _foundation_util_motion__WEBPACK_IMPORTED_MODULE_1__[\"Move\"];\n /***/\n },\n\n /***/\n \"./js/foundation.util.motion.js\":\n /*!**************************************!*\\\n !*** ./js/foundation.util.motion.js ***!\n \\**************************************/\n\n /*! exports provided: Move, Motion */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Move\", function () {\n return Move;\n });\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Motion\", function () {\n return Motion;\n });\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! jquery */\n \"jquery\");\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */\n\n\n var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! ./foundation.core.utils */\n \"./foundation.core\");\n /* harmony import */\n\n\n var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__);\n /**\n * Motion module.\n * @module foundation.motion\n */\n\n\n var initClasses = ['mui-enter', 'mui-leave'];\n var activeClasses = ['mui-enter-active', 'mui-leave-active'];\n var Motion = {\n animateIn: function animateIn(element, animation, cb) {\n animate(true, element, animation, cb);\n },\n animateOut: function animateOut(element, animation, cb) {\n animate(false, element, animation, cb);\n }\n };\n\n function Move(duration, elem, fn) {\n var anim,\n prog,\n start = null;\n\n if (duration === 0) {\n fn.apply(elem);\n elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]);\n return;\n }\n\n function move(ts) {\n if (!start) start = ts;\n prog = ts - start;\n fn.apply(elem);\n\n if (prog < duration) {\n anim = window.requestAnimationFrame(move, elem);\n } else {\n window.cancelAnimationFrame(anim);\n elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]);\n }\n }\n\n anim = window.requestAnimationFrame(move);\n }\n /**\n * Animates an element in or out using a CSS transition class.\n * @function\n * @private\n * @param {Boolean} isIn - Defines if the animation is in or out.\n * @param {Object} element - jQuery or HTML object to animate.\n * @param {String} animation - CSS class to use.\n * @param {Function} cb - Callback to run when animation is finished.\n */\n\n\n function animate(isIn, element, animation, cb) {\n element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element).eq(0);\n if (!element.length) return;\n var initClass = isIn ? initClasses[0] : initClasses[1];\n var activeClass = isIn ? activeClasses[0] : activeClasses[1]; // Set up the animation\n\n reset();\n element.addClass(animation).css('transition', 'none');\n requestAnimationFrame(function () {\n element.addClass(initClass);\n if (isIn) element.show();\n }); // Start the animation\n\n requestAnimationFrame(function () {\n // will trigger the browser to synchronously calculate the style and layout\n // also called reflow or layout thrashing\n // see https://gist.github.com/paulirish/5d52fb081b3570c81e3a\n element[0].offsetWidth;\n element.css('transition', '').addClass(activeClass);\n }); // Clean up the animation when it finishes\n\n element.one(Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"transitionend\"])(element), finish); // Hides the element (for out animations), resets the element, and runs a callback\n\n function finish() {\n if (!isIn) element.hide();\n reset();\n if (cb) cb.apply(element);\n } // Resets transitions and removes motion-specific classes\n\n\n function reset() {\n element[0].style.transitionDuration = 0;\n element.removeClass(\"\".concat(initClass, \" \").concat(activeClass, \" \").concat(animation));\n }\n }\n /***/\n\n },\n\n /***/\n 25:\n /*!************************************************************!*\\\n !*** multi ./js/entries/plugins/foundation.util.motion.js ***!\n \\************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports, __webpack_require__) {\n module.exports = __webpack_require__(\n /*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.util.motion.js */\n \"./js/entries/plugins/foundation.util.motion.js\");\n /***/\n },\n\n /***/\n \"jquery\":\n /*!********************************************************************************************!*\\\n !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n \\********************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n /***/\n }\n /******/\n\n })\n );\n});","(function webpackUniversalModuleDefinition(root, factory) {\n if (typeof exports === 'object' && typeof module === 'object') module.exports = factory(require(\"./foundation.core\"), require(\"jquery\"));else if (typeof define === 'function' && define.amd) define([\"./foundation.core\", \"jquery\"], factory);else if (typeof exports === 'object') exports[\"foundation.util.nest\"] = factory(require(\"./foundation.core\"), require(\"jquery\"));else root[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.nest\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"jQuery\"]);\n})(window, function (__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\n return (\n /******/\n function (modules) {\n // webpackBootstrap\n\n /******/\n // The module cache\n\n /******/\n var installedModules = {};\n /******/\n\n /******/\n // The require function\n\n /******/\n\n function __webpack_require__(moduleId) {\n /******/\n\n /******/\n // Check if module is in cache\n\n /******/\n if (installedModules[moduleId]) {\n /******/\n return installedModules[moduleId].exports;\n /******/\n }\n /******/\n // Create a new module (and put it into the cache)\n\n /******/\n\n\n var module = installedModules[moduleId] = {\n /******/\n i: moduleId,\n\n /******/\n l: false,\n\n /******/\n exports: {}\n /******/\n\n };\n /******/\n\n /******/\n // Execute the module function\n\n /******/\n\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n /******/\n\n /******/\n // Flag the module as loaded\n\n /******/\n\n module.l = true;\n /******/\n\n /******/\n // Return the exports of the module\n\n /******/\n\n return module.exports;\n /******/\n }\n /******/\n\n /******/\n\n /******/\n // expose the modules object (__webpack_modules__)\n\n /******/\n\n\n __webpack_require__.m = modules;\n /******/\n\n /******/\n // expose the module cache\n\n /******/\n\n __webpack_require__.c = installedModules;\n /******/\n\n /******/\n // define getter function for harmony exports\n\n /******/\n\n __webpack_require__.d = function (exports, name, getter) {\n /******/\n if (!__webpack_require__.o(exports, name)) {\n /******/\n Object.defineProperty(exports, name, {\n enumerable: true,\n get: getter\n });\n /******/\n }\n /******/\n\n };\n /******/\n\n /******/\n // define __esModule on exports\n\n /******/\n\n\n __webpack_require__.r = function (exports) {\n /******/\n if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n /******/\n Object.defineProperty(exports, Symbol.toStringTag, {\n value: 'Module'\n });\n /******/\n }\n /******/\n\n\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n /******/\n };\n /******/\n\n /******/\n // create a fake namespace object\n\n /******/\n // mode & 1: value is a module id, require it\n\n /******/\n // mode & 2: merge all properties of value into the ns\n\n /******/\n // mode & 4: return value when already ns object\n\n /******/\n // mode & 8|1: behave like require\n\n /******/\n\n\n __webpack_require__.t = function (value, mode) {\n /******/\n if (mode & 1) value = __webpack_require__(value);\n /******/\n\n if (mode & 8) return value;\n /******/\n\n if (mode & 4 && typeof value === 'object' && value && value.__esModule) return value;\n /******/\n\n var ns = Object.create(null);\n /******/\n\n __webpack_require__.r(ns);\n /******/\n\n\n Object.defineProperty(ns, 'default', {\n enumerable: true,\n value: value\n });\n /******/\n\n if (mode & 2 && typeof value != 'string') for (var key in value) __webpack_require__.d(ns, key, function (key) {\n return value[key];\n }.bind(null, key));\n /******/\n\n return ns;\n /******/\n };\n /******/\n\n /******/\n // getDefaultExport function for compatibility with non-harmony modules\n\n /******/\n\n\n __webpack_require__.n = function (module) {\n /******/\n var getter = module && module.__esModule ?\n /******/\n function getDefault() {\n return module['default'];\n } :\n /******/\n function getModuleExports() {\n return module;\n };\n /******/\n\n __webpack_require__.d(getter, 'a', getter);\n /******/\n\n\n return getter;\n /******/\n };\n /******/\n\n /******/\n // Object.prototype.hasOwnProperty.call\n\n /******/\n\n\n __webpack_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n /******/\n\n /******/\n // __webpack_public_path__\n\n /******/\n\n\n __webpack_require__.p = \"\";\n /******/\n\n /******/\n\n /******/\n // Load entry module and return exports\n\n /******/\n\n return __webpack_require__(__webpack_require__.s = 26);\n /******/\n }\n /************************************************************************/\n\n /******/\n ({\n /***/\n \"./foundation.core\":\n /*!****************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n \\****************************************************************************************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n /***/\n },\n\n /***/\n \"./js/entries/plugins/foundation.util.nest.js\":\n /*!****************************************************!*\\\n !*** ./js/entries/plugins/foundation.util.nest.js ***!\n \\****************************************************/\n\n /*! exports provided: Foundation, Nest */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! ./foundation.core */\n \"./foundation.core\");\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Foundation\", function () {\n return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"];\n });\n /* harmony import */\n\n\n var _foundation_util_nest__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! ../../foundation.util.nest */\n \"./js/foundation.util.nest.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Nest\", function () {\n return _foundation_util_nest__WEBPACK_IMPORTED_MODULE_1__[\"Nest\"];\n });\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].Nest = _foundation_util_nest__WEBPACK_IMPORTED_MODULE_1__[\"Nest\"];\n /***/\n },\n\n /***/\n \"./js/foundation.util.nest.js\":\n /*!************************************!*\\\n !*** ./js/foundation.util.nest.js ***!\n \\************************************/\n\n /*! exports provided: Nest */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Nest\", function () {\n return Nest;\n });\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! jquery */\n \"jquery\");\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\n var Nest = {\n Feather: function Feather(menu) {\n var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'zf';\n menu.attr('role', 'menubar');\n menu.find('a').attr({\n 'role': 'menuitem'\n });\n var items = menu.find('li').attr({\n 'role': 'none'\n }),\n subMenuClass = \"is-\".concat(type, \"-submenu\"),\n subItemClass = \"\".concat(subMenuClass, \"-item\"),\n hasSubClass = \"is-\".concat(type, \"-submenu-parent\"),\n applyAria = type !== 'accordion'; // Accordions handle their own ARIA attriutes.\n\n items.each(function () {\n var $item = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),\n $sub = $item.children('ul');\n\n if ($sub.length) {\n $item.addClass(hasSubClass);\n\n if (applyAria) {\n $item.children('a:first').attr({\n 'aria-haspopup': true,\n 'aria-label': $item.children('a:first').text()\n }); // Note: Drilldowns behave differently in how they hide, and so need\n // additional attributes. We should look if this possibly over-generalized\n // utility (Nest) is appropriate when we rework menus in 6.4\n\n if (type === 'drilldown') {\n $item.attr({\n 'aria-expanded': false\n });\n }\n }\n\n $sub.addClass(\"submenu \".concat(subMenuClass)).attr({\n 'data-submenu': '',\n 'role': 'menubar'\n });\n\n if (type === 'drilldown') {\n $sub.attr({\n 'aria-hidden': true\n });\n }\n }\n\n if ($item.parent('[data-submenu]').length) {\n $item.addClass(\"is-submenu-item \".concat(subItemClass));\n }\n });\n return;\n },\n Burn: function Burn(menu, type) {\n var //items = menu.find('li'),\n subMenuClass = \"is-\".concat(type, \"-submenu\"),\n subItemClass = \"\".concat(subMenuClass, \"-item\"),\n hasSubClass = \"is-\".concat(type, \"-submenu-parent\");\n menu.find('>li, > li > ul, .menu, .menu > li, [data-submenu] > li').removeClass(\"\".concat(subMenuClass, \" \").concat(subItemClass, \" \").concat(hasSubClass, \" is-submenu-item submenu is-active\")).removeAttr('data-submenu').css('display', '');\n }\n };\n /***/\n },\n\n /***/\n 26:\n /*!**********************************************************!*\\\n !*** multi ./js/entries/plugins/foundation.util.nest.js ***!\n \\**********************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports, __webpack_require__) {\n module.exports = __webpack_require__(\n /*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.util.nest.js */\n \"./js/entries/plugins/foundation.util.nest.js\");\n /***/\n },\n\n /***/\n \"jquery\":\n /*!********************************************************************************************!*\\\n !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n \\********************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n /***/\n }\n /******/\n\n })\n );\n});","!function (e, n) {\n \"object\" == typeof exports && \"object\" == typeof module ? module.exports = n(require(\"./foundation.core\"), require(\"jquery\")) : \"function\" == typeof define && define.amd ? define([\"./foundation.core\", \"jquery\"], n) : \"object\" == typeof exports ? exports[\"foundation.util.nest\"] = n(require(\"./foundation.core\"), require(\"jquery\")) : (e.__FOUNDATION_EXTERNAL__ = e.__FOUNDATION_EXTERNAL__ || {}, e.__FOUNDATION_EXTERNAL__[\"foundation.util.nest\"] = n(e.__FOUNDATION_EXTERNAL__[\"foundation.core\"], e.jQuery));\n}(window, function (t, r) {\n return u = {\n \"./foundation.core\": function (e, n) {\n e.exports = t;\n },\n \"./js/entries/plugins/foundation.util.nest.js\": function (e, n, t) {\n \"use strict\";\n\n t.r(n);\n var r = t(\"./foundation.core\");\n t.d(n, \"Foundation\", function () {\n return r.Foundation;\n });\n var o = t(\"./js/foundation.util.nest.js\");\n t.d(n, \"Nest\", function () {\n return o.Nest;\n }), r.Foundation.Nest = o.Nest;\n },\n \"./js/foundation.util.nest.js\": function (e, n, t) {\n \"use strict\";\n\n t.r(n), t.d(n, \"Nest\", function () {\n return r;\n });\n var n = t(\"jquery\"),\n a = t.n(n),\n r = {\n Feather: function (e) {\n var t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : \"zf\";\n e.attr(\"role\", \"menubar\"), e.find(\"a\").attr({\n role: \"menuitem\"\n });\n var e = e.find(\"li\").attr({\n role: \"none\"\n }),\n r = \"is-\".concat(t, \"-submenu\"),\n o = \"\".concat(r, \"-item\"),\n u = \"is-\".concat(t, \"-submenu-parent\"),\n i = \"accordion\" !== t;\n e.each(function () {\n var e = a()(this),\n n = e.children(\"ul\");\n n.length && (e.addClass(u), i && (e.children(\"a:first\").attr({\n \"aria-haspopup\": !0,\n \"aria-label\": e.children(\"a:first\").text()\n }), \"drilldown\" === t && e.attr({\n \"aria-expanded\": !1\n })), n.addClass(\"submenu \".concat(r)).attr({\n \"data-submenu\": \"\",\n role: \"menubar\"\n }), \"drilldown\" === t && n.attr({\n \"aria-hidden\": !0\n })), e.parent(\"[data-submenu]\").length && e.addClass(\"is-submenu-item \".concat(o));\n });\n },\n Burn: function (e, n) {\n var t = \"is-\".concat(n, \"-submenu\"),\n r = \"\".concat(t, \"-item\"),\n n = \"is-\".concat(n, \"-submenu-parent\");\n e.find(\">li, > li > ul, .menu, .menu > li, [data-submenu] > li\").removeClass(\"\".concat(t, \" \").concat(r, \" \").concat(n, \" is-submenu-item submenu is-active\")).removeAttr(\"data-submenu\").css(\"display\", \"\");\n }\n };\n },\n 26: function (e, n, t) {\n e.exports = t(\"./js/entries/plugins/foundation.util.nest.js\");\n },\n jquery: function (e, n) {\n e.exports = r;\n }\n }, i = {}, o.m = u, o.c = i, o.d = function (e, n, t) {\n o.o(e, n) || Object.defineProperty(e, n, {\n enumerable: !0,\n get: t\n });\n }, o.r = function (e) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n }, o.t = function (n, e) {\n if (1 & e && (n = o(n)), 8 & e) return n;\n if (4 & e && \"object\" == typeof n && n && n.__esModule) return n;\n var t = Object.create(null);\n if (o.r(t), Object.defineProperty(t, \"default\", {\n enumerable: !0,\n value: n\n }), 2 & e && \"string\" != typeof n) for (var r in n) o.d(t, r, function (e) {\n return n[e];\n }.bind(null, r));\n return t;\n }, o.n = function (e) {\n var n = e && e.__esModule ? function () {\n return e.default;\n } : function () {\n return e;\n };\n return o.d(n, \"a\", n), n;\n }, o.o = function (e, n) {\n return Object.prototype.hasOwnProperty.call(e, n);\n }, o.p = \"\", o(o.s = 26);\n\n function o(e) {\n if (i[e]) return i[e].exports;\n var n = i[e] = {\n i: e,\n l: !1,\n exports: {}\n };\n return u[e].call(n.exports, n, n.exports, o), n.l = !0, n.exports;\n }\n\n var u, i;\n});","(function webpackUniversalModuleDefinition(root, factory) {\n if (typeof exports === 'object' && typeof module === 'object') module.exports = factory(require(\"./foundation.core\"), require(\"jquery\"));else if (typeof define === 'function' && define.amd) define([\"./foundation.core\", \"jquery\"], factory);else if (typeof exports === 'object') exports[\"foundation.util.touch\"] = factory(require(\"./foundation.core\"), require(\"jquery\"));else root[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.touch\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"jQuery\"]);\n})(window, function (__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\n return (\n /******/\n function (modules) {\n // webpackBootstrap\n\n /******/\n // The module cache\n\n /******/\n var installedModules = {};\n /******/\n\n /******/\n // The require function\n\n /******/\n\n function __webpack_require__(moduleId) {\n /******/\n\n /******/\n // Check if module is in cache\n\n /******/\n if (installedModules[moduleId]) {\n /******/\n return installedModules[moduleId].exports;\n /******/\n }\n /******/\n // Create a new module (and put it into the cache)\n\n /******/\n\n\n var module = installedModules[moduleId] = {\n /******/\n i: moduleId,\n\n /******/\n l: false,\n\n /******/\n exports: {}\n /******/\n\n };\n /******/\n\n /******/\n // Execute the module function\n\n /******/\n\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n /******/\n\n /******/\n // Flag the module as loaded\n\n /******/\n\n module.l = true;\n /******/\n\n /******/\n // Return the exports of the module\n\n /******/\n\n return module.exports;\n /******/\n }\n /******/\n\n /******/\n\n /******/\n // expose the modules object (__webpack_modules__)\n\n /******/\n\n\n __webpack_require__.m = modules;\n /******/\n\n /******/\n // expose the module cache\n\n /******/\n\n __webpack_require__.c = installedModules;\n /******/\n\n /******/\n // define getter function for harmony exports\n\n /******/\n\n __webpack_require__.d = function (exports, name, getter) {\n /******/\n if (!__webpack_require__.o(exports, name)) {\n /******/\n Object.defineProperty(exports, name, {\n enumerable: true,\n get: getter\n });\n /******/\n }\n /******/\n\n };\n /******/\n\n /******/\n // define __esModule on exports\n\n /******/\n\n\n __webpack_require__.r = function (exports) {\n /******/\n if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n /******/\n Object.defineProperty(exports, Symbol.toStringTag, {\n value: 'Module'\n });\n /******/\n }\n /******/\n\n\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n /******/\n };\n /******/\n\n /******/\n // create a fake namespace object\n\n /******/\n // mode & 1: value is a module id, require it\n\n /******/\n // mode & 2: merge all properties of value into the ns\n\n /******/\n // mode & 4: return value when already ns object\n\n /******/\n // mode & 8|1: behave like require\n\n /******/\n\n\n __webpack_require__.t = function (value, mode) {\n /******/\n if (mode & 1) value = __webpack_require__(value);\n /******/\n\n if (mode & 8) return value;\n /******/\n\n if (mode & 4 && typeof value === 'object' && value && value.__esModule) return value;\n /******/\n\n var ns = Object.create(null);\n /******/\n\n __webpack_require__.r(ns);\n /******/\n\n\n Object.defineProperty(ns, 'default', {\n enumerable: true,\n value: value\n });\n /******/\n\n if (mode & 2 && typeof value != 'string') for (var key in value) __webpack_require__.d(ns, key, function (key) {\n return value[key];\n }.bind(null, key));\n /******/\n\n return ns;\n /******/\n };\n /******/\n\n /******/\n // getDefaultExport function for compatibility with non-harmony modules\n\n /******/\n\n\n __webpack_require__.n = function (module) {\n /******/\n var getter = module && module.__esModule ?\n /******/\n function getDefault() {\n return module['default'];\n } :\n /******/\n function getModuleExports() {\n return module;\n };\n /******/\n\n __webpack_require__.d(getter, 'a', getter);\n /******/\n\n\n return getter;\n /******/\n };\n /******/\n\n /******/\n // Object.prototype.hasOwnProperty.call\n\n /******/\n\n\n __webpack_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n /******/\n\n /******/\n // __webpack_public_path__\n\n /******/\n\n\n __webpack_require__.p = \"\";\n /******/\n\n /******/\n\n /******/\n // Load entry module and return exports\n\n /******/\n\n return __webpack_require__(__webpack_require__.s = 28);\n /******/\n }\n /************************************************************************/\n\n /******/\n ({\n /***/\n \"./foundation.core\":\n /*!****************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n \\****************************************************************************************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n /***/\n },\n\n /***/\n \"./js/entries/plugins/foundation.util.touch.js\":\n /*!*****************************************************!*\\\n !*** ./js/entries/plugins/foundation.util.touch.js ***!\n \\*****************************************************/\n\n /*! exports provided: Foundation, Touch */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! jquery */\n \"jquery\");\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */\n\n\n var _foundation_util_touch__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! ../../foundation.util.touch */\n \"./js/foundation.util.touch.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Touch\", function () {\n return _foundation_util_touch__WEBPACK_IMPORTED_MODULE_1__[\"Touch\"];\n });\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\n /*! ./foundation.core */\n \"./foundation.core\");\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_2__);\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Foundation\", function () {\n return _foundation_core__WEBPACK_IMPORTED_MODULE_2__[\"Foundation\"];\n });\n\n _foundation_util_touch__WEBPACK_IMPORTED_MODULE_1__[\"Touch\"].init(jquery__WEBPACK_IMPORTED_MODULE_0___default.a);\n\n window.Foundation.Touch = _foundation_util_touch__WEBPACK_IMPORTED_MODULE_1__[\"Touch\"];\n /***/\n },\n\n /***/\n \"./js/foundation.util.touch.js\":\n /*!*************************************!*\\\n !*** ./js/foundation.util.touch.js ***!\n \\*************************************/\n\n /*! exports provided: Touch */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Touch\", function () {\n return Touch;\n });\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! jquery */\n \"jquery\");\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n } //**************************************************\n //**Work inspired by multiple jquery swipe plugins**\n //**Done by Yohai Ararat ***************************\n //**************************************************\n\n\n var Touch = {};\n var startPosX,\n startTime,\n elapsedTime,\n startEvent,\n isMoving = false,\n didMoved = false;\n\n function onTouchEnd(e) {\n this.removeEventListener('touchmove', onTouchMove);\n this.removeEventListener('touchend', onTouchEnd); // If the touch did not move, consider it as a \"tap\"\n\n if (!didMoved) {\n var tapEvent = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.Event('tap', startEvent || e);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger(tapEvent);\n }\n\n startEvent = null;\n isMoving = false;\n didMoved = false;\n }\n\n function onTouchMove(e) {\n if (true === jquery__WEBPACK_IMPORTED_MODULE_0___default.a.spotSwipe.preventDefault) {\n e.preventDefault();\n }\n\n if (isMoving) {\n var x = e.touches[0].pageX; // var y = e.touches[0].pageY;\n\n var dx = startPosX - x; // var dy = startPosY - y;\n\n var dir;\n didMoved = true;\n elapsedTime = new Date().getTime() - startTime;\n\n if (Math.abs(dx) >= jquery__WEBPACK_IMPORTED_MODULE_0___default.a.spotSwipe.moveThreshold && elapsedTime <= jquery__WEBPACK_IMPORTED_MODULE_0___default.a.spotSwipe.timeThreshold) {\n dir = dx > 0 ? 'left' : 'right';\n } // else if(Math.abs(dy) >= $.spotSwipe.moveThreshold && elapsedTime <= $.spotSwipe.timeThreshold) {\n // dir = dy > 0 ? 'down' : 'up';\n // }\n\n\n if (dir) {\n e.preventDefault();\n onTouchEnd.apply(this, arguments);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger(jquery__WEBPACK_IMPORTED_MODULE_0___default.a.Event('swipe', Object.assign({}, e)), dir).trigger(jquery__WEBPACK_IMPORTED_MODULE_0___default.a.Event(\"swipe\".concat(dir), Object.assign({}, e)));\n }\n }\n }\n\n function onTouchStart(e) {\n if (e.touches.length === 1) {\n startPosX = e.touches[0].pageX;\n startEvent = e;\n isMoving = true;\n didMoved = false;\n startTime = new Date().getTime();\n this.addEventListener('touchmove', onTouchMove, {\n passive: true === jquery__WEBPACK_IMPORTED_MODULE_0___default.a.spotSwipe.preventDefault\n });\n this.addEventListener('touchend', onTouchEnd, false);\n }\n }\n\n function init() {\n this.addEventListener && this.addEventListener('touchstart', onTouchStart, {\n passive: true\n });\n } // function teardown() {\n // this.removeEventListener('touchstart', onTouchStart);\n // }\n\n\n var SpotSwipe = /*#__PURE__*/function () {\n function SpotSwipe() {\n _classCallCheck(this, SpotSwipe);\n\n this.version = '1.0.0';\n this.enabled = 'ontouchstart' in document.documentElement;\n this.preventDefault = false;\n this.moveThreshold = 75;\n this.timeThreshold = 200;\n\n this._init();\n }\n\n _createClass(SpotSwipe, [{\n key: \"_init\",\n value: function _init() {\n jquery__WEBPACK_IMPORTED_MODULE_0___default.a.event.special.swipe = {\n setup: init\n };\n jquery__WEBPACK_IMPORTED_MODULE_0___default.a.event.special.tap = {\n setup: init\n };\n jquery__WEBPACK_IMPORTED_MODULE_0___default.a.each(['left', 'up', 'down', 'right'], function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default.a.event.special[\"swipe\".concat(this)] = {\n setup: function setup() {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).on('swipe', jquery__WEBPACK_IMPORTED_MODULE_0___default.a.noop);\n }\n };\n });\n }\n }]);\n\n return SpotSwipe;\n }();\n /****************************************************\n * As far as I can tell, both setupSpotSwipe and *\n * setupTouchHandler should be idempotent, *\n * because they directly replace functions & *\n * values, and do not add event handlers directly. *\n ****************************************************/\n\n\n Touch.setupSpotSwipe = function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default.a.spotSwipe = new SpotSwipe(jquery__WEBPACK_IMPORTED_MODULE_0___default.a);\n };\n /****************************************************\n * Method for adding pseudo drag events to elements *\n ***************************************************/\n\n\n Touch.setupTouchHandler = function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn.addTouch = function () {\n this.each(function (i, el) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(el).bind('touchstart touchmove touchend touchcancel', function (event) {\n //we pass the original event object because the jQuery event\n //object is normalized to w3c specs and does not provide the TouchList\n handleTouch(event);\n });\n });\n\n var handleTouch = function handleTouch(event) {\n var touches = event.changedTouches,\n first = touches[0],\n eventTypes = {\n touchstart: 'mousedown',\n touchmove: 'mousemove',\n touchend: 'mouseup'\n },\n type = eventTypes[event.type],\n simulatedEvent;\n\n if ('MouseEvent' in window && typeof window.MouseEvent === 'function') {\n simulatedEvent = new window.MouseEvent(type, {\n 'bubbles': true,\n 'cancelable': true,\n 'screenX': first.screenX,\n 'screenY': first.screenY,\n 'clientX': first.clientX,\n 'clientY': first.clientY\n });\n } else {\n simulatedEvent = document.createEvent('MouseEvent');\n simulatedEvent.initMouseEvent(type, true, true, window, 1, first.screenX, first.screenY, first.clientX, first.clientY, false, false, false, false, 0\n /*left*/\n , null);\n }\n\n first.target.dispatchEvent(simulatedEvent);\n };\n };\n };\n\n Touch.init = function () {\n if (typeof jquery__WEBPACK_IMPORTED_MODULE_0___default.a.spotSwipe === 'undefined') {\n Touch.setupSpotSwipe(jquery__WEBPACK_IMPORTED_MODULE_0___default.a);\n Touch.setupTouchHandler(jquery__WEBPACK_IMPORTED_MODULE_0___default.a);\n }\n };\n /***/\n\n },\n\n /***/\n 28:\n /*!***********************************************************!*\\\n !*** multi ./js/entries/plugins/foundation.util.touch.js ***!\n \\***********************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports, __webpack_require__) {\n module.exports = __webpack_require__(\n /*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.util.touch.js */\n \"./js/entries/plugins/foundation.util.touch.js\");\n /***/\n },\n\n /***/\n \"jquery\":\n /*!********************************************************************************************!*\\\n !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n \\********************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n /***/\n }\n /******/\n\n })\n );\n});","(function webpackUniversalModuleDefinition(root, factory) {\n if (typeof exports === 'object' && typeof module === 'object') module.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.motion\"), require(\"jquery\"));else if (typeof define === 'function' && define.amd) define([\"./foundation.core\", \"./foundation.util.motion\", \"jquery\"], factory);else if (typeof exports === 'object') exports[\"foundation.util.triggers\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.motion\"), require(\"jquery\"));else root[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.triggers\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.motion\"], root[\"jQuery\"]);\n})(window, function (__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\n return (\n /******/\n function (modules) {\n // webpackBootstrap\n\n /******/\n // The module cache\n\n /******/\n var installedModules = {};\n /******/\n\n /******/\n // The require function\n\n /******/\n\n function __webpack_require__(moduleId) {\n /******/\n\n /******/\n // Check if module is in cache\n\n /******/\n if (installedModules[moduleId]) {\n /******/\n return installedModules[moduleId].exports;\n /******/\n }\n /******/\n // Create a new module (and put it into the cache)\n\n /******/\n\n\n var module = installedModules[moduleId] = {\n /******/\n i: moduleId,\n\n /******/\n l: false,\n\n /******/\n exports: {}\n /******/\n\n };\n /******/\n\n /******/\n // Execute the module function\n\n /******/\n\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n /******/\n\n /******/\n // Flag the module as loaded\n\n /******/\n\n module.l = true;\n /******/\n\n /******/\n // Return the exports of the module\n\n /******/\n\n return module.exports;\n /******/\n }\n /******/\n\n /******/\n\n /******/\n // expose the modules object (__webpack_modules__)\n\n /******/\n\n\n __webpack_require__.m = modules;\n /******/\n\n /******/\n // expose the module cache\n\n /******/\n\n __webpack_require__.c = installedModules;\n /******/\n\n /******/\n // define getter function for harmony exports\n\n /******/\n\n __webpack_require__.d = function (exports, name, getter) {\n /******/\n if (!__webpack_require__.o(exports, name)) {\n /******/\n Object.defineProperty(exports, name, {\n enumerable: true,\n get: getter\n });\n /******/\n }\n /******/\n\n };\n /******/\n\n /******/\n // define __esModule on exports\n\n /******/\n\n\n __webpack_require__.r = function (exports) {\n /******/\n if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n /******/\n Object.defineProperty(exports, Symbol.toStringTag, {\n value: 'Module'\n });\n /******/\n }\n /******/\n\n\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n /******/\n };\n /******/\n\n /******/\n // create a fake namespace object\n\n /******/\n // mode & 1: value is a module id, require it\n\n /******/\n // mode & 2: merge all properties of value into the ns\n\n /******/\n // mode & 4: return value when already ns object\n\n /******/\n // mode & 8|1: behave like require\n\n /******/\n\n\n __webpack_require__.t = function (value, mode) {\n /******/\n if (mode & 1) value = __webpack_require__(value);\n /******/\n\n if (mode & 8) return value;\n /******/\n\n if (mode & 4 && typeof value === 'object' && value && value.__esModule) return value;\n /******/\n\n var ns = Object.create(null);\n /******/\n\n __webpack_require__.r(ns);\n /******/\n\n\n Object.defineProperty(ns, 'default', {\n enumerable: true,\n value: value\n });\n /******/\n\n if (mode & 2 && typeof value != 'string') for (var key in value) __webpack_require__.d(ns, key, function (key) {\n return value[key];\n }.bind(null, key));\n /******/\n\n return ns;\n /******/\n };\n /******/\n\n /******/\n // getDefaultExport function for compatibility with non-harmony modules\n\n /******/\n\n\n __webpack_require__.n = function (module) {\n /******/\n var getter = module && module.__esModule ?\n /******/\n function getDefault() {\n return module['default'];\n } :\n /******/\n function getModuleExports() {\n return module;\n };\n /******/\n\n __webpack_require__.d(getter, 'a', getter);\n /******/\n\n\n return getter;\n /******/\n };\n /******/\n\n /******/\n // Object.prototype.hasOwnProperty.call\n\n /******/\n\n\n __webpack_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n /******/\n\n /******/\n // __webpack_public_path__\n\n /******/\n\n\n __webpack_require__.p = \"\";\n /******/\n\n /******/\n\n /******/\n // Load entry module and return exports\n\n /******/\n\n return __webpack_require__(__webpack_require__.s = 29);\n /******/\n }\n /************************************************************************/\n\n /******/\n ({\n /***/\n \"./foundation.core\":\n /*!****************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n \\****************************************************************************************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n /***/\n },\n\n /***/\n \"./foundation.util.motion\":\n /*!********************************************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.motion\"],\"amd\":\"./foundation.util.motion\",\"commonjs\":\"./foundation.util.motion\",\"commonjs2\":\"./foundation.util.motion\"} ***!\n \\********************************************************************************************************************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__;\n /***/\n },\n\n /***/\n \"./js/entries/plugins/foundation.util.triggers.js\":\n /*!********************************************************!*\\\n !*** ./js/entries/plugins/foundation.util.triggers.js ***!\n \\********************************************************/\n\n /*! exports provided: Foundation, Triggers */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! ./foundation.core */\n \"./foundation.core\");\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Foundation\", function () {\n return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"];\n });\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! jquery */\n \"jquery\");\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_1__);\n /* harmony import */\n\n\n var _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\n /*! ../../foundation.util.triggers */\n \"./js/foundation.util.triggers.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Triggers\", function () {\n return _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_2__[\"Triggers\"];\n });\n\n _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_2__[\"Triggers\"].init(jquery__WEBPACK_IMPORTED_MODULE_1___default.a, _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"]);\n /***/\n\n },\n\n /***/\n \"./js/foundation.util.triggers.js\":\n /*!****************************************!*\\\n !*** ./js/foundation.util.triggers.js ***!\n \\****************************************/\n\n /*! exports provided: Triggers */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Triggers\", function () {\n return Triggers;\n });\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! jquery */\n \"jquery\");\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */\n\n\n var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! ./foundation.core.utils */\n \"./foundation.core\");\n /* harmony import */\n\n\n var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__);\n /* harmony import */\n\n\n var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\n /*! ./foundation.util.motion */\n \"./foundation.util.motion\");\n /* harmony import */\n\n\n var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__);\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n var MutationObserver = function () {\n var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n\n for (var i = 0; i < prefixes.length; i++) {\n if (\"\".concat(prefixes[i], \"MutationObserver\") in window) {\n return window[\"\".concat(prefixes[i], \"MutationObserver\")];\n }\n }\n\n return false;\n }();\n\n var triggers = function triggers(el, type) {\n el.data(type).split(' ').forEach(function (id) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(id))[type === 'close' ? 'trigger' : 'triggerHandler'](\"\".concat(type, \".zf.trigger\"), [el]);\n });\n };\n\n var Triggers = {\n Listeners: {\n Basic: {},\n Global: {}\n },\n Initializers: {}\n };\n Triggers.Listeners.Basic = {\n openListener: function openListener() {\n triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'open');\n },\n closeListener: function closeListener() {\n var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('close');\n\n if (id) {\n triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'close');\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('close.zf.trigger');\n }\n },\n toggleListener: function toggleListener() {\n var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('toggle');\n\n if (id) {\n triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'toggle');\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('toggle.zf.trigger');\n }\n },\n closeableListener: function closeableListener(e) {\n var animation = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('closable'); // Only close the first closable element. See https://git.io/zf-7833\n\n e.stopPropagation();\n\n if (animation !== '') {\n _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__[\"Motion\"].animateOut(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), animation, function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('closed.zf');\n });\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).fadeOut().trigger('closed.zf');\n }\n },\n toggleFocusListener: function toggleFocusListener() {\n var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('toggle-focus');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(id)).triggerHandler('toggle.zf.trigger', [jquery__WEBPACK_IMPORTED_MODULE_0___default()(this)]);\n }\n }; // Elements with [data-open] will reveal a plugin that supports it when clicked.\n\n Triggers.Initializers.addOpenListener = function ($elem) {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n }; // Elements with [data-close] will close a plugin that supports it when clicked.\n // If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\n\n\n Triggers.Initializers.addCloseListener = function ($elem) {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n }; // Elements with [data-toggle] will toggle a plugin that supports it when clicked.\n\n\n Triggers.Initializers.addToggleListener = function ($elem) {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n }; // Elements with [data-closable] will respond to close.zf.trigger events.\n\n\n Triggers.Initializers.addCloseableListener = function ($elem) {\n $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n }; // Elements with [data-toggle-focus] will respond to coming in and out of focus\n\n\n Triggers.Initializers.addToggleFocusListener = function ($elem) {\n $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n }; // More Global/complex listeners and triggers\n\n\n Triggers.Listeners.Global = {\n resizeListener: function resizeListener($nodes) {\n if (!MutationObserver) {\n //fallback for IE 9\n $nodes.each(function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).triggerHandler('resizeme.zf.trigger');\n });\n } //trigger all listening elements and signal a resize event\n\n\n $nodes.attr('data-events', \"resize\");\n },\n scrollListener: function scrollListener($nodes) {\n if (!MutationObserver) {\n //fallback for IE 9\n $nodes.each(function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).triggerHandler('scrollme.zf.trigger');\n });\n } //trigger all listening elements and signal a scroll event\n\n\n $nodes.attr('data-events', \"scroll\");\n },\n closeMeListener: function closeMeListener(e, pluginId) {\n var plugin = e.namespace.split('.')[0];\n var plugins = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-\".concat(plugin, \"]\")).not(\"[data-yeti-box=\\\"\".concat(pluginId, \"\\\"]\"));\n plugins.each(function () {\n var _this = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n\n _this.triggerHandler('close.zf.trigger', [_this]);\n });\n }\n }; // Global, parses whole document.\n\n Triggers.Initializers.addClosemeListener = function (pluginName) {\n var yetiBoxes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-yeti-box]'),\n plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n if (pluginName) {\n if (typeof pluginName === 'string') {\n plugNames.push(pluginName);\n } else if (_typeof(pluginName) === 'object' && typeof pluginName[0] === 'string') {\n plugNames = plugNames.concat(pluginName);\n } else {\n console.error('Plugin names must be strings');\n }\n }\n\n if (yetiBoxes.length) {\n var listeners = plugNames.map(function (name) {\n return \"closeme.zf.\".concat(name);\n }).join(' ');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n }\n };\n\n function debounceGlobalListener(debounce, trigger, listener) {\n var timer,\n args = Array.prototype.slice.call(arguments, 3);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on(trigger, function () {\n if (timer) {\n clearTimeout(timer);\n }\n\n timer = setTimeout(function () {\n listener.apply(null, args);\n }, debounce || 10); //default time to emit scroll event\n });\n }\n\n Triggers.Initializers.addResizeListener = function (debounce) {\n var $nodes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-resize]');\n\n if ($nodes.length) {\n debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n }\n };\n\n Triggers.Initializers.addScrollListener = function (debounce) {\n var $nodes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-scroll]');\n\n if ($nodes.length) {\n debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n }\n };\n\n Triggers.Initializers.addMutationEventsListener = function ($elem) {\n if (!MutationObserver) {\n return false;\n }\n\n var $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]'); //element callback\n\n var listeningElementsMutation = function listeningElementsMutation(mutationRecordsList) {\n var $target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(mutationRecordsList[0].target); //trigger the event handler for the element depending on type\n\n switch (mutationRecordsList[0].type) {\n case \"attributes\":\n if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n }\n\n if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n $target.triggerHandler('resizeme.zf.trigger', [$target]);\n }\n\n if (mutationRecordsList[0].attributeName === \"style\") {\n $target.closest(\"[data-mutate]\").attr(\"data-events\", \"mutate\");\n $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n }\n\n break;\n\n case \"childList\":\n $target.closest(\"[data-mutate]\").attr(\"data-events\", \"mutate\");\n $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n break;\n\n default:\n return false;\n //nothing\n }\n };\n\n if ($nodes.length) {\n //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n for (var i = 0; i <= $nodes.length - 1; i++) {\n var elementObserver = new MutationObserver(listeningElementsMutation);\n elementObserver.observe($nodes[i], {\n attributes: true,\n childList: true,\n characterData: false,\n subtree: true,\n attributeFilter: [\"data-events\", \"style\"]\n });\n }\n }\n };\n\n Triggers.Initializers.addSimpleListeners = function () {\n var $document = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document);\n Triggers.Initializers.addOpenListener($document);\n Triggers.Initializers.addCloseListener($document);\n Triggers.Initializers.addToggleListener($document);\n Triggers.Initializers.addCloseableListener($document);\n Triggers.Initializers.addToggleFocusListener($document);\n };\n\n Triggers.Initializers.addGlobalListeners = function () {\n var $document = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document);\n Triggers.Initializers.addMutationEventsListener($document);\n Triggers.Initializers.addResizeListener(250);\n Triggers.Initializers.addScrollListener();\n Triggers.Initializers.addClosemeListener();\n };\n\n Triggers.init = function (__, Foundation) {\n Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"onLoad\"])(jquery__WEBPACK_IMPORTED_MODULE_0___default()(window), function () {\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default.a.triggersInitialized !== true) {\n Triggers.Initializers.addSimpleListeners();\n Triggers.Initializers.addGlobalListeners();\n jquery__WEBPACK_IMPORTED_MODULE_0___default.a.triggersInitialized = true;\n }\n });\n\n if (Foundation) {\n Foundation.Triggers = Triggers; // Legacy included to be backwards compatible for now.\n\n Foundation.IHearYou = Triggers.Initializers.addGlobalListeners;\n }\n };\n /***/\n\n },\n\n /***/\n 29:\n /*!**************************************************************!*\\\n !*** multi ./js/entries/plugins/foundation.util.triggers.js ***!\n \\**************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports, __webpack_require__) {\n module.exports = __webpack_require__(\n /*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.util.triggers.js */\n \"./js/entries/plugins/foundation.util.triggers.js\");\n /***/\n },\n\n /***/\n \"jquery\":\n /*!********************************************************************************************!*\\\n !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n \\********************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n /***/\n }\n /******/\n\n })\n );\n});","'use strict';\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n\n var args = slice.call(arguments, 1);\n var bound;\n\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(this, args.concat(slice.call(arguments)));\n\n if (Object(result) === result) {\n return result;\n }\n\n return this;\n } else {\n return target.apply(that, args.concat(slice.call(arguments)));\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;","'use strict';\n\nvar undefined;\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError; // eslint-disable-next-line consistent-return\n\nvar getEvalledConstructor = function (expressionSyntax) {\n try {\n return $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n } catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\n\nif ($gOPD) {\n try {\n $gOPD({}, '');\n } catch (e) {\n $gOPD = null; // this is IE 8, which has a broken gOPD\n }\n}\n\nvar throwTypeError = function () {\n throw new $TypeError();\n};\n\nvar ThrowTypeError = $gOPD ? function () {\n try {\n // eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n arguments.callee; // IE 8 does not throw here\n\n return throwTypeError;\n } catch (calleeThrows) {\n try {\n // IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n return $gOPD(arguments, 'callee').get;\n } catch (gOPDthrows) {\n return throwTypeError;\n }\n }\n}() : throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) {\n return x.__proto__;\n}; // eslint-disable-line no-proto\n\n\nvar needsEval = {};\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\nvar INTRINSICS = {\n '%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n '%Array%': Array,\n '%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n '%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n '%AsyncFromSyncIteratorPrototype%': undefined,\n '%AsyncFunction%': needsEval,\n '%AsyncGenerator%': needsEval,\n '%AsyncGeneratorFunction%': needsEval,\n '%AsyncIteratorPrototype%': needsEval,\n '%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n '%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n '%Boolean%': Boolean,\n '%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n '%Date%': Date,\n '%decodeURI%': decodeURI,\n '%decodeURIComponent%': decodeURIComponent,\n '%encodeURI%': encodeURI,\n '%encodeURIComponent%': encodeURIComponent,\n '%Error%': Error,\n '%eval%': eval,\n // eslint-disable-line no-eval\n '%EvalError%': EvalError,\n '%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n '%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n '%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n '%Function%': $Function,\n '%GeneratorFunction%': needsEval,\n '%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n '%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n '%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n '%isFinite%': isFinite,\n '%isNaN%': isNaN,\n '%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n '%JSON%': typeof JSON === 'object' ? JSON : undefined,\n '%Map%': typeof Map === 'undefined' ? undefined : Map,\n '%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n '%Math%': Math,\n '%Number%': Number,\n '%Object%': Object,\n '%parseFloat%': parseFloat,\n '%parseInt%': parseInt,\n '%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n '%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n '%RangeError%': RangeError,\n '%ReferenceError%': ReferenceError,\n '%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n '%RegExp%': RegExp,\n '%Set%': typeof Set === 'undefined' ? undefined : Set,\n '%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n '%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n '%String%': String,\n '%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n '%Symbol%': hasSymbols ? Symbol : undefined,\n '%SyntaxError%': $SyntaxError,\n '%ThrowTypeError%': ThrowTypeError,\n '%TypedArray%': TypedArray,\n '%TypeError%': $TypeError,\n '%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n '%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n '%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n '%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n '%URIError%': URIError,\n '%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n '%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n '%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nvar doEval = function doEval(name) {\n var value;\n\n if (name === '%AsyncFunction%') {\n value = getEvalledConstructor('async function () {}');\n } else if (name === '%GeneratorFunction%') {\n value = getEvalledConstructor('function* () {}');\n } else if (name === '%AsyncGeneratorFunction%') {\n value = getEvalledConstructor('async function* () {}');\n } else if (name === '%AsyncGenerator%') {\n var fn = doEval('%AsyncGeneratorFunction%');\n\n if (fn) {\n value = fn.prototype;\n }\n } else if (name === '%AsyncIteratorPrototype%') {\n var gen = doEval('%AsyncGenerator%');\n\n if (gen) {\n value = getProto(gen.prototype);\n }\n }\n\n INTRINSICS[name] = value;\n return value;\n};\n\nvar LEGACY_ALIASES = {\n '%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n '%ArrayPrototype%': ['Array', 'prototype'],\n '%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n '%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n '%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n '%ArrayProto_values%': ['Array', 'prototype', 'values'],\n '%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n '%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n '%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n '%BooleanPrototype%': ['Boolean', 'prototype'],\n '%DataViewPrototype%': ['DataView', 'prototype'],\n '%DatePrototype%': ['Date', 'prototype'],\n '%ErrorPrototype%': ['Error', 'prototype'],\n '%EvalErrorPrototype%': ['EvalError', 'prototype'],\n '%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n '%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n '%FunctionPrototype%': ['Function', 'prototype'],\n '%Generator%': ['GeneratorFunction', 'prototype'],\n '%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n '%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n '%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n '%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n '%JSONParse%': ['JSON', 'parse'],\n '%JSONStringify%': ['JSON', 'stringify'],\n '%MapPrototype%': ['Map', 'prototype'],\n '%NumberPrototype%': ['Number', 'prototype'],\n '%ObjectPrototype%': ['Object', 'prototype'],\n '%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n '%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n '%PromisePrototype%': ['Promise', 'prototype'],\n '%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n '%Promise_all%': ['Promise', 'all'],\n '%Promise_reject%': ['Promise', 'reject'],\n '%Promise_resolve%': ['Promise', 'resolve'],\n '%RangeErrorPrototype%': ['RangeError', 'prototype'],\n '%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n '%RegExpPrototype%': ['RegExp', 'prototype'],\n '%SetPrototype%': ['Set', 'prototype'],\n '%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n '%StringPrototype%': ['String', 'prototype'],\n '%SymbolPrototype%': ['Symbol', 'prototype'],\n '%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n '%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n '%TypeErrorPrototype%': ['TypeError', 'prototype'],\n '%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n '%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n '%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n '%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n '%URIErrorPrototype%': ['URIError', 'prototype'],\n '%WeakMapPrototype%': ['WeakMap', 'prototype'],\n '%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\n\nvar hasOwn = require('has');\n\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\nvar $exec = bind.call(Function.call, RegExp.prototype.exec);\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\n\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g;\n/** Used to match backslashes in property paths. */\n\nvar stringToPath = function stringToPath(string) {\n var first = $strSlice(string, 0, 1);\n var last = $strSlice(string, -1);\n\n if (first === '%' && last !== '%') {\n throw new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n } else if (last === '%' && first !== '%') {\n throw new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n }\n\n var result = [];\n $replace(string, rePropName, function (match, number, quote, subString) {\n result[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n });\n return result;\n};\n/* end adaptation */\n\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n var intrinsicName = name;\n var alias;\n\n if (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n alias = LEGACY_ALIASES[intrinsicName];\n intrinsicName = '%' + alias[0] + '%';\n }\n\n if (hasOwn(INTRINSICS, intrinsicName)) {\n var value = INTRINSICS[intrinsicName];\n\n if (value === needsEval) {\n value = doEval(intrinsicName);\n }\n\n if (typeof value === 'undefined' && !allowMissing) {\n throw new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n }\n\n return {\n alias: alias,\n name: intrinsicName,\n value: value\n };\n }\n\n throw new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n if (typeof name !== 'string' || name.length === 0) {\n throw new $TypeError('intrinsic name must be a non-empty string');\n }\n\n if (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n throw new $TypeError('\"allowMissing\" argument must be a boolean');\n }\n\n if ($exec(/^%?[^%]*%?$/g, name) === null) {\n throw new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n }\n\n var parts = stringToPath(name);\n var intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n var intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n var intrinsicRealName = intrinsic.name;\n var value = intrinsic.value;\n var skipFurtherCaching = false;\n var alias = intrinsic.alias;\n\n if (alias) {\n intrinsicBaseName = alias[0];\n $spliceApply(parts, $concat([0, 1], alias));\n }\n\n for (var i = 1, isOwn = true; i < parts.length; i += 1) {\n var part = parts[i];\n var first = $strSlice(part, 0, 1);\n var last = $strSlice(part, -1);\n\n if ((first === '\"' || first === \"'\" || first === '`' || last === '\"' || last === \"'\" || last === '`') && first !== last) {\n throw new $SyntaxError('property names with quotes must have matching quotes');\n }\n\n if (part === 'constructor' || !isOwn) {\n skipFurtherCaching = true;\n }\n\n intrinsicBaseName += '.' + part;\n intrinsicRealName = '%' + intrinsicBaseName + '%';\n\n if (hasOwn(INTRINSICS, intrinsicRealName)) {\n value = INTRINSICS[intrinsicRealName];\n } else if (value != null) {\n if (!(part in value)) {\n if (!allowMissing) {\n throw new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n }\n\n return void undefined;\n }\n\n if ($gOPD && i + 1 >= parts.length) {\n var desc = $gOPD(value, part);\n isOwn = !!desc; // By convention, when a data property is converted to an accessor\n // property to emulate a data property that does not suffer from\n // the override mistake, that accessor's getter is marked with\n // an `originalValue` property. Here, when we detect this, we\n // uphold the illusion by pretending to see that original data\n // property, i.e., returning the value rather than the getter\n // itself.\n\n if (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n value = desc.get;\n } else {\n value = value[part];\n }\n } else {\n isOwn = hasOwn(value, part);\n value = value[part];\n }\n\n if (isOwn && !skipFurtherCaching) {\n INTRINSICS[intrinsicRealName] = value;\n }\n }\n }\n\n return value;\n};","/*!\n * getSize v2.0.3\n * measure size of elements\n * MIT license\n */\n\n/* jshint browser: true, strict: true, undef: true, unused: true */\n\n/* globals console: false */\n(function (window, factory) {\n /* jshint strict: false */\n\n /* globals define, module */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(factory);\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.getSize = factory();\n }\n})(window, function factory() {\n 'use strict'; // -------------------------- helpers -------------------------- //\n // get a number from a string, not a percentage\n\n function getStyleSize(value) {\n var num = parseFloat(value); // not a percent like '100%', and a number\n\n var isValid = value.indexOf('%') == -1 && !isNaN(num);\n return isValid && num;\n }\n\n function noop() {}\n\n var logError = typeof console == 'undefined' ? noop : function (message) {\n console.error(message);\n }; // -------------------------- measurements -------------------------- //\n\n var measurements = ['paddingLeft', 'paddingRight', 'paddingTop', 'paddingBottom', 'marginLeft', 'marginRight', 'marginTop', 'marginBottom', 'borderLeftWidth', 'borderRightWidth', 'borderTopWidth', 'borderBottomWidth'];\n var measurementsLength = measurements.length;\n\n function getZeroSize() {\n var size = {\n width: 0,\n height: 0,\n innerWidth: 0,\n innerHeight: 0,\n outerWidth: 0,\n outerHeight: 0\n };\n\n for (var i = 0; i < measurementsLength; i++) {\n var measurement = measurements[i];\n size[measurement] = 0;\n }\n\n return size;\n } // -------------------------- getStyle -------------------------- //\n\n /**\n * getStyle, get style of element, check for Firefox bug\n * https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n */\n\n\n function getStyle(elem) {\n var style = getComputedStyle(elem);\n\n if (!style) {\n logError('Style returned ' + style + '. Are you running this code in a hidden iframe on Firefox? ' + 'See https://bit.ly/getsizebug1');\n }\n\n return style;\n } // -------------------------- setup -------------------------- //\n\n\n var isSetup = false;\n var isBoxSizeOuter;\n /**\n * setup\n * check isBoxSizerOuter\n * do on first getSize() rather than on page load for Firefox bug\n */\n\n function setup() {\n // setup once\n if (isSetup) {\n return;\n }\n\n isSetup = true; // -------------------------- box sizing -------------------------- //\n\n /**\n * Chrome & Safari measure the outer-width on style.width on border-box elems\n * IE11 & Firefox<29 measures the inner-width\n */\n\n var div = document.createElement('div');\n div.style.width = '200px';\n div.style.padding = '1px 2px 3px 4px';\n div.style.borderStyle = 'solid';\n div.style.borderWidth = '1px 2px 3px 4px';\n div.style.boxSizing = 'border-box';\n var body = document.body || document.documentElement;\n body.appendChild(div);\n var style = getStyle(div); // round value for browser zoom. desandro/masonry#928\n\n isBoxSizeOuter = Math.round(getStyleSize(style.width)) == 200;\n getSize.isBoxSizeOuter = isBoxSizeOuter;\n body.removeChild(div);\n } // -------------------------- getSize -------------------------- //\n\n\n function getSize(elem) {\n setup(); // use querySeletor if elem is string\n\n if (typeof elem == 'string') {\n elem = document.querySelector(elem);\n } // do not proceed on non-objects\n\n\n if (!elem || typeof elem != 'object' || !elem.nodeType) {\n return;\n }\n\n var style = getStyle(elem); // if hidden, everything is 0\n\n if (style.display == 'none') {\n return getZeroSize();\n }\n\n var size = {};\n size.width = elem.offsetWidth;\n size.height = elem.offsetHeight;\n var isBorderBox = size.isBorderBox = style.boxSizing == 'border-box'; // get all measurements\n\n for (var i = 0; i < measurementsLength; i++) {\n var measurement = measurements[i];\n var value = style[measurement];\n var num = parseFloat(value); // any 'auto', 'medium' value will be 0\n\n size[measurement] = !isNaN(num) ? num : 0;\n }\n\n var paddingWidth = size.paddingLeft + size.paddingRight;\n var paddingHeight = size.paddingTop + size.paddingBottom;\n var marginWidth = size.marginLeft + size.marginRight;\n var marginHeight = size.marginTop + size.marginBottom;\n var borderWidth = size.borderLeftWidth + size.borderRightWidth;\n var borderHeight = size.borderTopWidth + size.borderBottomWidth;\n var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter; // overwrite width and height if we can get it from style\n\n var styleWidth = getStyleSize(style.width);\n\n if (styleWidth !== false) {\n size.width = styleWidth + ( // add padding and border unless it's already including it\n isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth);\n }\n\n var styleHeight = getStyleSize(style.height);\n\n if (styleHeight !== false) {\n size.height = styleHeight + ( // add padding and border unless it's already including it\n isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight);\n }\n\n size.innerWidth = size.width - (paddingWidth + borderWidth);\n size.innerHeight = size.height - (paddingHeight + borderHeight);\n size.outerWidth = size.width + marginWidth;\n size.outerHeight = size.height + marginHeight;\n return size;\n }\n\n return getSize;\n});","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n if ($defineProperty) {\n try {\n $defineProperty({}, 'a', {\n value: 1\n });\n return true;\n } catch (e) {\n // IE 8 has a broken defineProperty\n return false;\n }\n }\n\n return false;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n // node v0.6 has a bug where array lengths can be Set but not Defined\n if (!hasPropertyDescriptors()) {\n return null;\n }\n\n try {\n return $defineProperty([], 'length', {\n value: 1\n }).length !== 1;\n } catch (e) {\n // In Firefox 4-22, defining length on an array throws an exception.\n return true;\n }\n};\n\nmodule.exports = hasPropertyDescriptors;","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\n\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n if (typeof origSymbol !== 'function') {\n return false;\n }\n\n if (typeof Symbol !== 'function') {\n return false;\n }\n\n if (typeof origSymbol('foo') !== 'symbol') {\n return false;\n }\n\n if (typeof Symbol('bar') !== 'symbol') {\n return false;\n }\n\n return hasSymbolSham();\n};","'use strict';\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\n\nmodule.exports = function hasSymbols() {\n if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') {\n return false;\n }\n\n if (typeof Symbol.iterator === 'symbol') {\n return true;\n }\n\n var obj = {};\n var sym = Symbol('test');\n var symObj = Object(sym);\n\n if (typeof sym === 'string') {\n return false;\n }\n\n if (Object.prototype.toString.call(sym) !== '[object Symbol]') {\n return false;\n }\n\n if (Object.prototype.toString.call(symObj) !== '[object Symbol]') {\n return false;\n } // temp disabled per https://github.com/ljharb/object.assign/issues/17\n // if (sym instanceof Symbol) { return false; }\n // temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n // if (!(symObj instanceof Symbol)) { return false; }\n // if (typeof Symbol.prototype.toString !== 'function') { return false; }\n // if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\n var symVal = 42;\n obj[sym] = symVal;\n\n for (sym in obj) {\n return false;\n } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\n\n if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) {\n return false;\n }\n\n if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) {\n return false;\n }\n\n var syms = Object.getOwnPropertySymbols(obj);\n\n if (syms.length !== 1 || syms[0] !== sym) {\n return false;\n }\n\n if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) {\n return false;\n }\n\n if (typeof Object.getOwnPropertyDescriptor === 'function') {\n var descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\n if (descriptor.value !== symVal || descriptor.enumerable !== true) {\n return false;\n }\n }\n\n return true;\n};","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\nmodule.exports = function hasToStringTagShams() {\n return hasSymbols() && !!Symbol.toStringTag;\n};","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n\n var TempCtor = function () {};\n\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n };\n}","'use strict';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\n\nvar isStandardArguments = function isArguments(value) {\n if (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n return false;\n }\n\n return $toString(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n if (isStandardArguments(value)) {\n return true;\n }\n\n return value !== null && typeof value === 'object' && typeof value.length === 'number' && value.length >= 0 && $toString(value) !== '[object Array]' && $toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = function () {\n return isStandardArguments(arguments);\n}();\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;","'use strict';\n\nvar fnToStr = Function.prototype.toString;\nvar reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;\nvar badArrayLike;\nvar isCallableMarker;\n\nif (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {\n try {\n badArrayLike = Object.defineProperty({}, 'length', {\n get: function () {\n throw isCallableMarker;\n }\n });\n isCallableMarker = {}; // eslint-disable-next-line no-throw-literal\n\n reflectApply(function () {\n throw 42;\n }, null, badArrayLike);\n } catch (_) {\n if (_ !== isCallableMarker) {\n reflectApply = null;\n }\n }\n} else {\n reflectApply = null;\n}\n\nvar constructorRegex = /^\\s*class\\b/;\n\nvar isES6ClassFn = function isES6ClassFunction(value) {\n try {\n var fnStr = fnToStr.call(value);\n return constructorRegex.test(fnStr);\n } catch (e) {\n return false; // not a function\n }\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n try {\n if (isES6ClassFn(value)) {\n return false;\n }\n\n fnToStr.call(value);\n return true;\n } catch (e) {\n return false;\n }\n};\n\nvar toStr = Object.prototype.toString;\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag`\n\n/* globals document: false */\n\nvar documentDotAll = typeof document === 'object' && typeof document.all === 'undefined' && document.all !== undefined ? document.all : {};\nmodule.exports = reflectApply ? function isCallable(value) {\n if (value === documentDotAll) {\n return true;\n }\n\n if (!value) {\n return false;\n }\n\n if (typeof value !== 'function' && typeof value !== 'object') {\n return false;\n }\n\n if (typeof value === 'function' && !value.prototype) {\n return true;\n }\n\n try {\n reflectApply(value, null, badArrayLike);\n } catch (e) {\n if (e !== isCallableMarker) {\n return false;\n }\n }\n\n return !isES6ClassFn(value);\n} : function isCallable(value) {\n if (value === documentDotAll) {\n return true;\n }\n\n if (!value) {\n return false;\n }\n\n if (typeof value !== 'function' && typeof value !== 'object') {\n return false;\n }\n\n if (typeof value === 'function' && !value.prototype) {\n return true;\n }\n\n if (hasToStringTag) {\n return tryFunctionObject(value);\n }\n\n if (isES6ClassFn(value)) {\n return false;\n }\n\n var strClass = toStr.call(value);\n return strClass === fnClass || strClass === genClass;\n};","'use strict';\n\nvar toStr = Object.prototype.toString;\nvar fnToStr = Function.prototype.toString;\nvar isFnRegex = /^\\s*(?:function)?\\*/;\n\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar getProto = Object.getPrototypeOf;\n\nvar getGeneratorFunc = function () {\n // eslint-disable-line consistent-return\n if (!hasToStringTag) {\n return false;\n }\n\n try {\n return Function('return function*() {}')();\n } catch (e) {}\n};\n\nvar GeneratorFunction;\n\nmodule.exports = function isGeneratorFunction(fn) {\n if (typeof fn !== 'function') {\n return false;\n }\n\n if (isFnRegex.test(fnToStr.call(fn))) {\n return true;\n }\n\n if (!hasToStringTag) {\n var str = toStr.call(fn);\n return str === '[object GeneratorFunction]';\n }\n\n if (!getProto) {\n return false;\n }\n\n if (typeof GeneratorFunction === 'undefined') {\n var generatorFunc = getGeneratorFunc();\n GeneratorFunction = generatorFunc ? getProto(generatorFunc) : false;\n }\n\n return getProto(fn) === GeneratorFunction;\n};","'use strict';\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\nmodule.exports = function isNaN(value) {\n return value !== value;\n};","'use strict';\n\nvar callBind = require('call-bind');\n\nvar define = require('define-properties');\n\nvar implementation = require('./implementation');\n\nvar getPolyfill = require('./polyfill');\n\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Number);\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\ndefine(polyfill, {\n getPolyfill: getPolyfill,\n implementation: implementation,\n shim: shim\n});\nmodule.exports = polyfill;","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n if (Number.isNaN && Number.isNaN(NaN) && !Number.isNaN('a')) {\n return Number.isNaN;\n }\n\n return implementation;\n};","'use strict';\n\nvar define = require('define-properties');\n\nvar getPolyfill = require('./polyfill');\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\n\nmodule.exports = function shimNumberIsNaN() {\n var polyfill = getPolyfill();\n define(Number, {\n isNaN: polyfill\n }, {\n isNaN: function testIsNaN() {\n return Number.isNaN !== polyfill;\n }\n });\n return polyfill;\n};","'use strict';\n\nvar forEach = require('for-each');\n\nvar availableTypedArrays = require('available-typed-arrays');\n\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\n\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $indexOf = callBound('Array.prototype.indexOf', true) || function indexOf(array, value) {\n for (var i = 0; i < array.length; i += 1) {\n if (array[i] === value) {\n return i;\n }\n }\n\n return -1;\n};\n\nvar $slice = callBound('String.prototype.slice');\nvar toStrTags = {};\n\nvar gOPD = require('es-abstract/helpers/getOwnPropertyDescriptor');\n\nvar getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof');\n\nif (hasToStringTag && gOPD && getPrototypeOf) {\n forEach(typedArrays, function (typedArray) {\n var arr = new g[typedArray]();\n\n if (Symbol.toStringTag in arr) {\n var proto = getPrototypeOf(arr);\n var descriptor = gOPD(proto, Symbol.toStringTag);\n\n if (!descriptor) {\n var superProto = getPrototypeOf(proto);\n descriptor = gOPD(superProto, Symbol.toStringTag);\n }\n\n toStrTags[typedArray] = descriptor.get;\n }\n });\n}\n\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n var anyTrue = false;\n forEach(toStrTags, function (getter, typedArray) {\n if (!anyTrue) {\n try {\n anyTrue = getter.call(value) === typedArray;\n } catch (e) {\n /**/\n }\n }\n });\n return anyTrue;\n};\n\nmodule.exports = function isTypedArray(value) {\n if (!value || typeof value !== 'object') {\n return false;\n }\n\n if (!hasToStringTag || !(Symbol.toStringTag in value)) {\n var tag = $slice($toString(value), 8, -1);\n return $indexOf(typedArrays, tag) > -1;\n }\n\n if (!gOPD) {\n return false;\n }\n\n return tryTypedArrays(value);\n};","/**\n * Bridget makes jQuery widgets\n * v3.0.1\n * MIT license\n */\n(function (window, factory) {\n // module definition\n if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(window, require('jquery'));\n } else {\n // browser global\n window.jQueryBridget = factory(window, window.jQuery);\n }\n})(window, function factory(window, jQuery) {\n // ----- utils ----- //\n // helper function for logging errors\n // $.error breaks jQuery chaining\n let console = window.console;\n let logError = typeof console == 'undefined' ? function () {} : function (message) {\n console.error(message);\n }; // ----- jQueryBridget ----- //\n\n function jQueryBridget(namespace, PluginClass, $) {\n $ = $ || jQuery || window.jQuery;\n\n if (!$) {\n return;\n } // add option method -> $().plugin('option', {...})\n\n\n if (!PluginClass.prototype.option) {\n // option setter\n PluginClass.prototype.option = function (opts) {\n if (!opts) return;\n this.options = Object.assign(this.options || {}, opts);\n };\n } // make jQuery plugin\n\n\n $.fn[namespace] = function (arg0, ...args) {\n if (typeof arg0 == 'string') {\n // method call $().plugin( 'methodName', { options } )\n return methodCall(this, arg0, args);\n } // just $().plugin({ options })\n\n\n plainCall(this, arg0);\n return this;\n }; // $().plugin('methodName')\n\n\n function methodCall($elems, methodName, args) {\n let returnValue;\n let pluginMethodStr = `$().${namespace}(\"${methodName}\")`;\n $elems.each(function (i, elem) {\n // get instance\n let instance = $.data(elem, namespace);\n\n if (!instance) {\n logError(`${namespace} not initialized.` + ` Cannot call method ${pluginMethodStr}`);\n return;\n }\n\n let method = instance[methodName];\n\n if (!method || methodName.charAt(0) == '_') {\n logError(`${pluginMethodStr} is not a valid method`);\n return;\n } // apply method, get return value\n\n\n let value = method.apply(instance, args); // set return value if value is returned, use only first value\n\n returnValue = returnValue === undefined ? value : returnValue;\n });\n return returnValue !== undefined ? returnValue : $elems;\n }\n\n function plainCall($elems, options) {\n $elems.each(function (i, elem) {\n let instance = $.data(elem, namespace);\n\n if (instance) {\n // set options & init\n instance.option(options);\n\n instance._init();\n } else {\n // initialize new instance\n instance = new PluginClass(elem, options);\n $.data(elem, namespace, instance);\n }\n });\n }\n } // ----- ----- //\n\n\n return jQueryBridget;\n});","/*!\n * jQuery JavaScript Library v3.5.1\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2020-05-04T22:49Z\n */\n(function (global, factory) {\n \"use strict\";\n\n if (typeof module === \"object\" && typeof module.exports === \"object\") {\n // For CommonJS and CommonJS-like environments where a proper `window`\n // is present, execute the factory and get jQuery.\n // For environments that do not have a `window` with a `document`\n // (such as Node.js), expose a factory as module.exports.\n // This accentuates the need for the creation of a real `window`.\n // e.g. var jQuery = require(\"jquery\")(window);\n // See ticket #14549 for more info.\n module.exports = global.document ? factory(global, true) : function (w) {\n if (!w.document) {\n throw new Error(\"jQuery requires a window with a document\");\n }\n\n return factory(w);\n };\n } else {\n factory(global);\n } // Pass this if window is not defined yet\n\n})(typeof window !== \"undefined\" ? window : this, function (window, noGlobal) {\n // Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n // throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n // arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n // enough that all such attempts are guarded in a try block.\n \"use strict\";\n\n var arr = [];\n var getProto = Object.getPrototypeOf;\n var slice = arr.slice;\n var flat = arr.flat ? function (array) {\n return arr.flat.call(array);\n } : function (array) {\n return arr.concat.apply([], array);\n };\n var push = arr.push;\n var indexOf = arr.indexOf;\n var class2type = {};\n var toString = class2type.toString;\n var hasOwn = class2type.hasOwnProperty;\n var fnToString = hasOwn.toString;\n var ObjectFunctionString = fnToString.call(Object);\n var support = {};\n\n var isFunction = function isFunction(obj) {\n // Support: Chrome <=57, Firefox <=52\n // In some browsers, typeof returns \"function\" for HTML elements\n // (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n // We don't want to classify *any* DOM node as a function.\n return typeof obj === \"function\" && typeof obj.nodeType !== \"number\";\n };\n\n var isWindow = function isWindow(obj) {\n return obj != null && obj === obj.window;\n };\n\n var document = window.document;\n var preservedScriptAttributes = {\n type: true,\n src: true,\n nonce: true,\n noModule: true\n };\n\n function DOMEval(code, node, doc) {\n doc = doc || document;\n var i,\n val,\n script = doc.createElement(\"script\");\n script.text = code;\n\n if (node) {\n for (i in preservedScriptAttributes) {\n // Support: Firefox 64+, Edge 18+\n // Some browsers don't support the \"nonce\" property on scripts.\n // On the other hand, just using `getAttribute` is not enough as\n // the `nonce` attribute is reset to an empty string whenever it\n // becomes browsing-context connected.\n // See https://github.com/whatwg/html/issues/2369\n // See https://html.spec.whatwg.org/#nonce-attributes\n // The `node.getAttribute` check was added for the sake of\n // `jQuery.globalEval` so that it can fake a nonce-containing node\n // via an object.\n val = node[i] || node.getAttribute && node.getAttribute(i);\n\n if (val) {\n script.setAttribute(i, val);\n }\n }\n }\n\n doc.head.appendChild(script).parentNode.removeChild(script);\n }\n\n function toType(obj) {\n if (obj == null) {\n return obj + \"\";\n } // Support: Android <=2.3 only (functionish RegExp)\n\n\n return typeof obj === \"object\" || typeof obj === \"function\" ? class2type[toString.call(obj)] || \"object\" : typeof obj;\n }\n /* global Symbol */\n // Defining this global in .eslintrc.json would create a danger of using the global\n // unguarded in another place, it seems safer to define global only for this module\n\n\n var version = \"3.5.1\",\n // Define a local copy of jQuery\n jQuery = function (selector, context) {\n // The jQuery object is actually just the init constructor 'enhanced'\n // Need init if jQuery is called (just allow error to be thrown if not included)\n return new jQuery.fn.init(selector, context);\n };\n\n jQuery.fn = jQuery.prototype = {\n // The current version of jQuery being used\n jquery: version,\n constructor: jQuery,\n // The default length of a jQuery object is 0\n length: 0,\n toArray: function () {\n return slice.call(this);\n },\n // Get the Nth element in the matched element set OR\n // Get the whole matched element set as a clean array\n get: function (num) {\n // Return all the elements in a clean array\n if (num == null) {\n return slice.call(this);\n } // Return just the one element from the set\n\n\n return num < 0 ? this[num + this.length] : this[num];\n },\n // Take an array of elements and push it onto the stack\n // (returning the new matched element set)\n pushStack: function (elems) {\n // Build a new jQuery matched element set\n var ret = jQuery.merge(this.constructor(), elems); // Add the old object onto the stack (as a reference)\n\n ret.prevObject = this; // Return the newly-formed element set\n\n return ret;\n },\n // Execute a callback for every element in the matched set.\n each: function (callback) {\n return jQuery.each(this, callback);\n },\n map: function (callback) {\n return this.pushStack(jQuery.map(this, function (elem, i) {\n return callback.call(elem, i, elem);\n }));\n },\n slice: function () {\n return this.pushStack(slice.apply(this, arguments));\n },\n first: function () {\n return this.eq(0);\n },\n last: function () {\n return this.eq(-1);\n },\n even: function () {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return (i + 1) % 2;\n }));\n },\n odd: function () {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return i % 2;\n }));\n },\n eq: function (i) {\n var len = this.length,\n j = +i + (i < 0 ? len : 0);\n return this.pushStack(j >= 0 && j < len ? [this[j]] : []);\n },\n end: function () {\n return this.prevObject || this.constructor();\n },\n // For internal use only.\n // Behaves like an Array's method, not like a jQuery method.\n push: push,\n sort: arr.sort,\n splice: arr.splice\n };\n\n jQuery.extend = jQuery.fn.extend = function () {\n var options,\n name,\n src,\n copy,\n copyIsArray,\n clone,\n target = arguments[0] || {},\n i = 1,\n length = arguments.length,\n deep = false; // Handle a deep copy situation\n\n if (typeof target === \"boolean\") {\n deep = target; // Skip the boolean and the target\n\n target = arguments[i] || {};\n i++;\n } // Handle case when target is a string or something (possible in deep copy)\n\n\n if (typeof target !== \"object\" && !isFunction(target)) {\n target = {};\n } // Extend jQuery itself if only one argument is passed\n\n\n if (i === length) {\n target = this;\n i--;\n }\n\n for (; i < length; i++) {\n // Only deal with non-null/undefined values\n if ((options = arguments[i]) != null) {\n // Extend the base object\n for (name in options) {\n copy = options[name]; // Prevent Object.prototype pollution\n // Prevent never-ending loop\n\n if (name === \"__proto__\" || target === copy) {\n continue;\n } // Recurse if we're merging plain objects or arrays\n\n\n if (deep && copy && (jQuery.isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))) {\n src = target[name]; // Ensure proper type for the source value\n\n if (copyIsArray && !Array.isArray(src)) {\n clone = [];\n } else if (!copyIsArray && !jQuery.isPlainObject(src)) {\n clone = {};\n } else {\n clone = src;\n }\n\n copyIsArray = false; // Never move original objects, clone them\n\n target[name] = jQuery.extend(deep, clone, copy); // Don't bring in undefined values\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n } // Return the modified object\n\n\n return target;\n };\n\n jQuery.extend({\n // Unique for each copy of jQuery on the page\n expando: \"jQuery\" + (version + Math.random()).replace(/\\D/g, \"\"),\n // Assume jQuery is ready without the ready module\n isReady: true,\n error: function (msg) {\n throw new Error(msg);\n },\n noop: function () {},\n isPlainObject: function (obj) {\n var proto, Ctor; // Detect obvious negatives\n // Use toString instead of jQuery.type to catch host objects\n\n if (!obj || toString.call(obj) !== \"[object Object]\") {\n return false;\n }\n\n proto = getProto(obj); // Objects with no prototype (e.g., `Object.create( null )`) are plain\n\n if (!proto) {\n return true;\n } // Objects with prototype are plain iff they were constructed by a global Object function\n\n\n Ctor = hasOwn.call(proto, \"constructor\") && proto.constructor;\n return typeof Ctor === \"function\" && fnToString.call(Ctor) === ObjectFunctionString;\n },\n isEmptyObject: function (obj) {\n var name;\n\n for (name in obj) {\n return false;\n }\n\n return true;\n },\n // Evaluates a script in a provided context; falls back to the global one\n // if not specified.\n globalEval: function (code, options, doc) {\n DOMEval(code, {\n nonce: options && options.nonce\n }, doc);\n },\n each: function (obj, callback) {\n var length,\n i = 0;\n\n if (isArrayLike(obj)) {\n length = obj.length;\n\n for (; i < length; i++) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n } else {\n for (i in obj) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n }\n\n return obj;\n },\n // results is for internal usage only\n makeArray: function (arr, results) {\n var ret = results || [];\n\n if (arr != null) {\n if (isArrayLike(Object(arr))) {\n jQuery.merge(ret, typeof arr === \"string\" ? [arr] : arr);\n } else {\n push.call(ret, arr);\n }\n }\n\n return ret;\n },\n inArray: function (elem, arr, i) {\n return arr == null ? -1 : indexOf.call(arr, elem, i);\n },\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n merge: function (first, second) {\n var len = +second.length,\n j = 0,\n i = first.length;\n\n for (; j < len; j++) {\n first[i++] = second[j];\n }\n\n first.length = i;\n return first;\n },\n grep: function (elems, callback, invert) {\n var callbackInverse,\n matches = [],\n i = 0,\n length = elems.length,\n callbackExpect = !invert; // Go through the array, only saving the items\n // that pass the validator function\n\n for (; i < length; i++) {\n callbackInverse = !callback(elems[i], i);\n\n if (callbackInverse !== callbackExpect) {\n matches.push(elems[i]);\n }\n }\n\n return matches;\n },\n // arg is for internal usage only\n map: function (elems, callback, arg) {\n var length,\n value,\n i = 0,\n ret = []; // Go through the array, translating each of the items to their new values\n\n if (isArrayLike(elems)) {\n length = elems.length;\n\n for (; i < length; i++) {\n value = callback(elems[i], i, arg);\n\n if (value != null) {\n ret.push(value);\n }\n } // Go through every key on the object,\n\n } else {\n for (i in elems) {\n value = callback(elems[i], i, arg);\n\n if (value != null) {\n ret.push(value);\n }\n }\n } // Flatten any nested arrays\n\n\n return flat(ret);\n },\n // A global GUID counter for objects\n guid: 1,\n // jQuery.support is not used in Core but other projects attach their\n // properties to it so it needs to exist.\n support: support\n });\n\n if (typeof Symbol === \"function\") {\n jQuery.fn[Symbol.iterator] = arr[Symbol.iterator];\n } // Populate the class2type map\n\n\n jQuery.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"), function (_i, name) {\n class2type[\"[object \" + name + \"]\"] = name.toLowerCase();\n });\n\n function isArrayLike(obj) {\n // Support: real iOS 8.2 only (not reproducible in simulator)\n // `in` check used to prevent JIT error (gh-2145)\n // hasOwn isn't used here due to false negatives\n // regarding Nodelist length in IE\n var length = !!obj && \"length\" in obj && obj.length,\n type = toType(obj);\n\n if (isFunction(obj) || isWindow(obj)) {\n return false;\n }\n\n return type === \"array\" || length === 0 || typeof length === \"number\" && length > 0 && length - 1 in obj;\n }\n\n var Sizzle =\n /*!\n * Sizzle CSS Selector Engine v2.3.5\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2020-03-14\n */\n function (window) {\n var i,\n support,\n Expr,\n getText,\n isXML,\n tokenize,\n compile,\n select,\n outermostContext,\n sortInput,\n hasDuplicate,\n // Local document vars\n setDocument,\n document,\n docElem,\n documentIsHTML,\n rbuggyQSA,\n rbuggyMatches,\n matches,\n contains,\n // Instance-specific data\n expando = \"sizzle\" + 1 * new Date(),\n preferredDoc = window.document,\n dirruns = 0,\n done = 0,\n classCache = createCache(),\n tokenCache = createCache(),\n compilerCache = createCache(),\n nonnativeSelectorCache = createCache(),\n sortOrder = function (a, b) {\n if (a === b) {\n hasDuplicate = true;\n }\n\n return 0;\n },\n // Instance methods\n hasOwn = {}.hasOwnProperty,\n arr = [],\n pop = arr.pop,\n pushNative = arr.push,\n push = arr.push,\n slice = arr.slice,\n // Use a stripped-down indexOf as it's faster than native\n // https://jsperf.com/thor-indexof-vs-for/5\n indexOf = function (list, elem) {\n var i = 0,\n len = list.length;\n\n for (; i < len; i++) {\n if (list[i] === elem) {\n return i;\n }\n }\n\n return -1;\n },\n booleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" + \"ismap|loop|multiple|open|readonly|required|scoped\",\n // Regular expressions\n // http://www.w3.org/TR/css3-selectors/#whitespace\n whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n identifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n attributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace + // Operator (capture 2)\n \"*([*^$|!~]?=)\" + whitespace + // \"Attribute values must be CSS identifiers [capture 5]\n // or strings [capture 3 or capture 4]\"\n \"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace + \"*\\\\]\",\n pseudos = \":(\" + identifier + \")(?:\\\\((\" + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n // 1. quoted (capture 3; capture 4 or capture 5)\n \"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" + // 2. simple (capture 6)\n \"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" + // 3. anything else (capture 2)\n \".*\" + \")\\\\)|)\",\n // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n rwhitespace = new RegExp(whitespace + \"+\", \"g\"),\n rtrim = new RegExp(\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\"),\n rcomma = new RegExp(\"^\" + whitespace + \"*,\" + whitespace + \"*\"),\n rcombinators = new RegExp(\"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\"),\n rdescend = new RegExp(whitespace + \"|>\"),\n rpseudo = new RegExp(pseudos),\n ridentifier = new RegExp(\"^\" + identifier + \"$\"),\n matchExpr = {\n \"ID\": new RegExp(\"^#(\" + identifier + \")\"),\n \"CLASS\": new RegExp(\"^\\\\.(\" + identifier + \")\"),\n \"TAG\": new RegExp(\"^(\" + identifier + \"|[*])\"),\n \"ATTR\": new RegExp(\"^\" + attributes),\n \"PSEUDO\": new RegExp(\"^\" + pseudos),\n \"CHILD\": new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\"),\n \"bool\": new RegExp(\"^(?:\" + booleans + \")$\", \"i\"),\n // For use in libraries implementing .is()\n // We use this for POS matching in `select`\n \"needsContext\": new RegExp(\"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\")\n },\n rhtml = /HTML$/i,\n rinputs = /^(?:input|select|textarea|button)$/i,\n rheader = /^h\\d$/i,\n rnative = /^[^{]+\\{\\s*\\[native \\w/,\n // Easily-parseable/retrievable ID or TAG or CLASS selectors\n rquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n rsibling = /[+~]/,\n // CSS escapes\n // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n runescape = new RegExp(\"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\"),\n funescape = function (escape, nonHex) {\n var high = \"0x\" + escape.slice(1) - 0x10000;\n return nonHex ? // Strip the backslash prefix from a non-hex escape sequence\n nonHex : // Replace a hexadecimal escape sequence with the encoded Unicode code point\n // Support: IE <=11+\n // For values outside the Basic Multilingual Plane (BMP), manually construct a\n // surrogate pair\n high < 0 ? String.fromCharCode(high + 0x10000) : String.fromCharCode(high >> 10 | 0xD800, high & 0x3FF | 0xDC00);\n },\n // CSS string/identifier serialization\n // https://drafts.csswg.org/cssom/#common-serializing-idioms\n rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n fcssescape = function (ch, asCodePoint) {\n if (asCodePoint) {\n // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n if (ch === \"\\0\") {\n return \"\\uFFFD\";\n } // Control characters and (dependent upon position) numbers get escaped as code points\n\n\n return ch.slice(0, -1) + \"\\\\\" + ch.charCodeAt(ch.length - 1).toString(16) + \" \";\n } // Other potentially-special ASCII characters get backslash-escaped\n\n\n return \"\\\\\" + ch;\n },\n // Used for iframes\n // See setDocument()\n // Removing the function wrapper causes a \"Permission Denied\"\n // error in IE\n unloadHandler = function () {\n setDocument();\n },\n inDisabledFieldset = addCombinator(function (elem) {\n return elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n }, {\n dir: \"parentNode\",\n next: \"legend\"\n }); // Optimize for push.apply( _, NodeList )\n\n\n try {\n push.apply(arr = slice.call(preferredDoc.childNodes), preferredDoc.childNodes); // Support: Android<4.0\n // Detect silently failing push.apply\n // eslint-disable-next-line no-unused-expressions\n\n arr[preferredDoc.childNodes.length].nodeType;\n } catch (e) {\n push = {\n apply: arr.length ? // Leverage slice if possible\n function (target, els) {\n pushNative.apply(target, slice.call(els));\n } : // Support: IE<9\n // Otherwise append directly\n function (target, els) {\n var j = target.length,\n i = 0; // Can't trust NodeList.length\n\n while (target[j++] = els[i++]) {}\n\n target.length = j - 1;\n }\n };\n }\n\n function Sizzle(selector, context, results, seed) {\n var m,\n i,\n elem,\n nid,\n match,\n groups,\n newSelector,\n newContext = context && context.ownerDocument,\n // nodeType defaults to 9, since context defaults to document\n nodeType = context ? context.nodeType : 9;\n results = results || []; // Return early from calls with invalid selector or context\n\n if (typeof selector !== \"string\" || !selector || nodeType !== 1 && nodeType !== 9 && nodeType !== 11) {\n return results;\n } // Try to shortcut find operations (as opposed to filters) in HTML documents\n\n\n if (!seed) {\n setDocument(context);\n context = context || document;\n\n if (documentIsHTML) {\n // If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n // (excepting DocumentFragment context, where the methods don't exist)\n if (nodeType !== 11 && (match = rquickExpr.exec(selector))) {\n // ID selector\n if (m = match[1]) {\n // Document context\n if (nodeType === 9) {\n if (elem = context.getElementById(m)) {\n // Support: IE, Opera, Webkit\n // TODO: identify versions\n // getElementById can match elements by name instead of ID\n if (elem.id === m) {\n results.push(elem);\n return results;\n }\n } else {\n return results;\n } // Element context\n\n } else {\n // Support: IE, Opera, Webkit\n // TODO: identify versions\n // getElementById can match elements by name instead of ID\n if (newContext && (elem = newContext.getElementById(m)) && contains(context, elem) && elem.id === m) {\n results.push(elem);\n return results;\n }\n } // Type selector\n\n } else if (match[2]) {\n push.apply(results, context.getElementsByTagName(selector));\n return results; // Class selector\n } else if ((m = match[3]) && support.getElementsByClassName && context.getElementsByClassName) {\n push.apply(results, context.getElementsByClassName(m));\n return results;\n }\n } // Take advantage of querySelectorAll\n\n\n if (support.qsa && !nonnativeSelectorCache[selector + \" \"] && (!rbuggyQSA || !rbuggyQSA.test(selector)) && ( // Support: IE 8 only\n // Exclude object elements\n nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\")) {\n newSelector = selector;\n newContext = context; // qSA considers elements outside a scoping root when evaluating child or\n // descendant combinators, which is not what we want.\n // In such cases, we work around the behavior by prefixing every selector in the\n // list with an ID selector referencing the scope context.\n // The technique has to be used as well when a leading combinator is used\n // as such selectors are not recognized by querySelectorAll.\n // Thanks to Andrew Dupont for this technique.\n\n if (nodeType === 1 && (rdescend.test(selector) || rcombinators.test(selector))) {\n // Expand context for sibling selectors\n newContext = rsibling.test(selector) && testContext(context.parentNode) || context; // We can use :scope instead of the ID hack if the browser\n // supports it & if we're not changing the context.\n\n if (newContext !== context || !support.scope) {\n // Capture the context ID, setting it first if necessary\n if (nid = context.getAttribute(\"id\")) {\n nid = nid.replace(rcssescape, fcssescape);\n } else {\n context.setAttribute(\"id\", nid = expando);\n }\n } // Prefix every selector in the list\n\n\n groups = tokenize(selector);\n i = groups.length;\n\n while (i--) {\n groups[i] = (nid ? \"#\" + nid : \":scope\") + \" \" + toSelector(groups[i]);\n }\n\n newSelector = groups.join(\",\");\n }\n\n try {\n push.apply(results, newContext.querySelectorAll(newSelector));\n return results;\n } catch (qsaError) {\n nonnativeSelectorCache(selector, true);\n } finally {\n if (nid === expando) {\n context.removeAttribute(\"id\");\n }\n }\n }\n }\n } // All others\n\n\n return select(selector.replace(rtrim, \"$1\"), context, results, seed);\n }\n /**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\n\n\n function createCache() {\n var keys = [];\n\n function cache(key, value) {\n // Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n if (keys.push(key + \" \") > Expr.cacheLength) {\n // Only keep the most recent entries\n delete cache[keys.shift()];\n }\n\n return cache[key + \" \"] = value;\n }\n\n return cache;\n }\n /**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\n\n\n function markFunction(fn) {\n fn[expando] = true;\n return fn;\n }\n /**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\n\n\n function assert(fn) {\n var el = document.createElement(\"fieldset\");\n\n try {\n return !!fn(el);\n } catch (e) {\n return false;\n } finally {\n // Remove from its parent by default\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n } // release memory in IE\n\n\n el = null;\n }\n }\n /**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\n\n\n function addHandle(attrs, handler) {\n var arr = attrs.split(\"|\"),\n i = arr.length;\n\n while (i--) {\n Expr.attrHandle[arr[i]] = handler;\n }\n }\n /**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\n\n\n function siblingCheck(a, b) {\n var cur = b && a,\n diff = cur && a.nodeType === 1 && b.nodeType === 1 && a.sourceIndex - b.sourceIndex; // Use IE sourceIndex if available on both nodes\n\n if (diff) {\n return diff;\n } // Check if b follows a\n\n\n if (cur) {\n while (cur = cur.nextSibling) {\n if (cur === b) {\n return -1;\n }\n }\n }\n\n return a ? 1 : -1;\n }\n /**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\n\n\n function createInputPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return name === \"input\" && elem.type === type;\n };\n }\n /**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\n\n\n function createButtonPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return (name === \"input\" || name === \"button\") && elem.type === type;\n };\n }\n /**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\n\n\n function createDisabledPseudo(disabled) {\n // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n return function (elem) {\n // Only certain elements can match :enabled or :disabled\n // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n if (\"form\" in elem) {\n // Check for inherited disabledness on relevant non-disabled elements:\n // * listed form-associated elements in a disabled fieldset\n // https://html.spec.whatwg.org/multipage/forms.html#category-listed\n // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n // * option elements in a disabled optgroup\n // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n // All such elements have a \"form\" property.\n if (elem.parentNode && elem.disabled === false) {\n // Option elements defer to a parent optgroup if present\n if (\"label\" in elem) {\n if (\"label\" in elem.parentNode) {\n return elem.parentNode.disabled === disabled;\n } else {\n return elem.disabled === disabled;\n }\n } // Support: IE 6 - 11\n // Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\n\n return elem.isDisabled === disabled || // Where there is no isDisabled, check manually\n\n /* jshint -W018 */\n elem.isDisabled !== !disabled && inDisabledFieldset(elem) === disabled;\n }\n\n return elem.disabled === disabled; // Try to winnow out elements that can't be disabled before trusting the disabled property.\n // Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n // even exist on them, let alone have a boolean value.\n } else if (\"label\" in elem) {\n return elem.disabled === disabled;\n } // Remaining elements are neither :enabled nor :disabled\n\n\n return false;\n };\n }\n /**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\n\n\n function createPositionalPseudo(fn) {\n return markFunction(function (argument) {\n argument = +argument;\n return markFunction(function (seed, matches) {\n var j,\n matchIndexes = fn([], seed.length, argument),\n i = matchIndexes.length; // Match elements found at the specified indexes\n\n while (i--) {\n if (seed[j = matchIndexes[i]]) {\n seed[j] = !(matches[j] = seed[j]);\n }\n }\n });\n });\n }\n /**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\n\n\n function testContext(context) {\n return context && typeof context.getElementsByTagName !== \"undefined\" && context;\n } // Expose support vars for convenience\n\n\n support = Sizzle.support = {};\n /**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\n\n isXML = Sizzle.isXML = function (elem) {\n var namespace = elem.namespaceURI,\n docElem = (elem.ownerDocument || elem).documentElement; // Support: IE <=8\n // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n // https://bugs.jquery.com/ticket/4833\n\n return !rhtml.test(namespace || docElem && docElem.nodeName || \"HTML\");\n };\n /**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\n\n\n setDocument = Sizzle.setDocument = function (node) {\n var hasCompare,\n subWindow,\n doc = node ? node.ownerDocument || node : preferredDoc; // Return early if doc is invalid or already selected\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n if (doc == document || doc.nodeType !== 9 || !doc.documentElement) {\n return document;\n } // Update global variables\n\n\n document = doc;\n docElem = document.documentElement;\n documentIsHTML = !isXML(document); // Support: IE 9 - 11+, Edge 12 - 18+\n // Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n if (preferredDoc != document && (subWindow = document.defaultView) && subWindow.top !== subWindow) {\n // Support: IE 11, Edge\n if (subWindow.addEventListener) {\n subWindow.addEventListener(\"unload\", unloadHandler, false); // Support: IE 9 - 10 only\n } else if (subWindow.attachEvent) {\n subWindow.attachEvent(\"onunload\", unloadHandler);\n }\n } // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n // Safari 4 - 5 only, Opera <=11.6 - 12.x only\n // IE/Edge & older browsers don't support the :scope pseudo-class.\n // Support: Safari 6.0 only\n // Safari 6.0 supports :scope but it's an alias of :root there.\n\n\n support.scope = assert(function (el) {\n docElem.appendChild(el).appendChild(document.createElement(\"div\"));\n return typeof el.querySelectorAll !== \"undefined\" && !el.querySelectorAll(\":scope fieldset div\").length;\n });\n /* Attributes\n ---------------------------------------------------------------------- */\n // Support: IE<8\n // Verify that getAttribute really returns attributes and not properties\n // (excepting IE8 booleans)\n\n support.attributes = assert(function (el) {\n el.className = \"i\";\n return !el.getAttribute(\"className\");\n });\n /* getElement(s)By*\n ---------------------------------------------------------------------- */\n // Check if getElementsByTagName(\"*\") returns only elements\n\n support.getElementsByTagName = assert(function (el) {\n el.appendChild(document.createComment(\"\"));\n return !el.getElementsByTagName(\"*\").length;\n }); // Support: IE<9\n\n support.getElementsByClassName = rnative.test(document.getElementsByClassName); // Support: IE<10\n // Check if getElementById returns elements by name\n // The broken getElementById methods don't pick up programmatically-set names,\n // so use a roundabout getElementsByName test\n\n support.getById = assert(function (el) {\n docElem.appendChild(el).id = expando;\n return !document.getElementsByName || !document.getElementsByName(expando).length;\n }); // ID filter and find\n\n if (support.getById) {\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n return elem.getAttribute(\"id\") === attrId;\n };\n };\n\n Expr.find[\"ID\"] = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var elem = context.getElementById(id);\n return elem ? [elem] : [];\n }\n };\n } else {\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n var node = typeof elem.getAttributeNode !== \"undefined\" && elem.getAttributeNode(\"id\");\n return node && node.value === attrId;\n };\n }; // Support: IE 6 - 7 only\n // getElementById is not reliable as a find shortcut\n\n\n Expr.find[\"ID\"] = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var node,\n i,\n elems,\n elem = context.getElementById(id);\n\n if (elem) {\n // Verify the id attribute\n node = elem.getAttributeNode(\"id\");\n\n if (node && node.value === id) {\n return [elem];\n } // Fall back on getElementsByName\n\n\n elems = context.getElementsByName(id);\n i = 0;\n\n while (elem = elems[i++]) {\n node = elem.getAttributeNode(\"id\");\n\n if (node && node.value === id) {\n return [elem];\n }\n }\n }\n\n return [];\n }\n };\n } // Tag\n\n\n Expr.find[\"TAG\"] = support.getElementsByTagName ? function (tag, context) {\n if (typeof context.getElementsByTagName !== \"undefined\") {\n return context.getElementsByTagName(tag); // DocumentFragment nodes don't have gEBTN\n } else if (support.qsa) {\n return context.querySelectorAll(tag);\n }\n } : function (tag, context) {\n var elem,\n tmp = [],\n i = 0,\n // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n results = context.getElementsByTagName(tag); // Filter out possible comments\n\n if (tag === \"*\") {\n while (elem = results[i++]) {\n if (elem.nodeType === 1) {\n tmp.push(elem);\n }\n }\n\n return tmp;\n }\n\n return results;\n }; // Class\n\n Expr.find[\"CLASS\"] = support.getElementsByClassName && function (className, context) {\n if (typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML) {\n return context.getElementsByClassName(className);\n }\n };\n /* QSA/matchesSelector\n ---------------------------------------------------------------------- */\n // QSA and matchesSelector support\n // matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\n\n rbuggyMatches = []; // qSa(:focus) reports false when true (Chrome 21)\n // We allow this because of a bug in IE8/9 that throws an error\n // whenever `document.activeElement` is accessed on an iframe\n // So, we allow :focus to pass through QSA all the time to avoid the IE error\n // See https://bugs.jquery.com/ticket/13378\n\n rbuggyQSA = [];\n\n if (support.qsa = rnative.test(document.querySelectorAll)) {\n // Build QSA regex\n // Regex strategy adopted from Diego Perini\n assert(function (el) {\n var input; // Select is set to empty string on purpose\n // This is to test IE's treatment of not explicitly\n // setting a boolean content attribute,\n // since its presence should be enough\n // https://bugs.jquery.com/ticket/12359\n\n docElem.appendChild(el).innerHTML = \"\" + \"\"; // Support: IE8, Opera 11-12.16\n // Nothing should be selected when empty strings follow ^= or $= or *=\n // The test attribute must be unknown in Opera but \"safe\" for WinRT\n // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\n if (el.querySelectorAll(\"[msallowcapture^='']\").length) {\n rbuggyQSA.push(\"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\");\n } // Support: IE8\n // Boolean attributes and \"value\" are not treated correctly\n\n\n if (!el.querySelectorAll(\"[selected]\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\");\n } // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\n\n if (!el.querySelectorAll(\"[id~=\" + expando + \"-]\").length) {\n rbuggyQSA.push(\"~=\");\n } // Support: IE 11+, Edge 15 - 18+\n // IE 11/Edge don't find elements on a `[name='']` query in some cases.\n // Adding a temporary attribute to the document before the selection works\n // around the issue.\n // Interestingly, IE 10 & older don't seem to have the issue.\n\n\n input = document.createElement(\"input\");\n input.setAttribute(\"name\", \"\");\n el.appendChild(input);\n\n if (!el.querySelectorAll(\"[name='']\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" + whitespace + \"*(?:''|\\\"\\\")\");\n } // Webkit/Opera - :checked should return selected option elements\n // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n // IE8 throws error here and will not see later tests\n\n\n if (!el.querySelectorAll(\":checked\").length) {\n rbuggyQSA.push(\":checked\");\n } // Support: Safari 8+, iOS 8+\n // https://bugs.webkit.org/show_bug.cgi?id=136851\n // In-page `selector#id sibling-combinator selector` fails\n\n\n if (!el.querySelectorAll(\"a#\" + expando + \"+*\").length) {\n rbuggyQSA.push(\".#.+[+~]\");\n } // Support: Firefox <=3.6 - 5 only\n // Old Firefox doesn't throw on a badly-escaped identifier.\n\n\n el.querySelectorAll(\"\\\\\\f\");\n rbuggyQSA.push(\"[\\\\r\\\\n\\\\f]\");\n });\n assert(function (el) {\n el.innerHTML = \"\" + \"\"; // Support: Windows 8 Native Apps\n // The type and name attributes are restricted during .innerHTML assignment\n\n var input = document.createElement(\"input\");\n input.setAttribute(\"type\", \"hidden\");\n el.appendChild(input).setAttribute(\"name\", \"D\"); // Support: IE8\n // Enforce case-sensitivity of name attribute\n\n if (el.querySelectorAll(\"[name=d]\").length) {\n rbuggyQSA.push(\"name\" + whitespace + \"*[*^$|!~]?=\");\n } // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n // IE8 throws error here and will not see later tests\n\n\n if (el.querySelectorAll(\":enabled\").length !== 2) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n } // Support: IE9-11+\n // IE's :disabled selector does not pick up the children of disabled fieldsets\n\n\n docElem.appendChild(el).disabled = true;\n\n if (el.querySelectorAll(\":disabled\").length !== 2) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n } // Support: Opera 10 - 11 only\n // Opera 10-11 does not throw on post-comma invalid pseudos\n\n\n el.querySelectorAll(\"*,:x\");\n rbuggyQSA.push(\",.*:\");\n });\n }\n\n if (support.matchesSelector = rnative.test(matches = docElem.matches || docElem.webkitMatchesSelector || docElem.mozMatchesSelector || docElem.oMatchesSelector || docElem.msMatchesSelector)) {\n assert(function (el) {\n // Check to see if it's possible to do matchesSelector\n // on a disconnected node (IE 9)\n support.disconnectedMatch = matches.call(el, \"*\"); // This should fail with an exception\n // Gecko does not error, returns false instead\n\n matches.call(el, \"[s!='']:x\");\n rbuggyMatches.push(\"!=\", pseudos);\n });\n }\n\n rbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join(\"|\"));\n rbuggyMatches = rbuggyMatches.length && new RegExp(rbuggyMatches.join(\"|\"));\n /* Contains\n ---------------------------------------------------------------------- */\n\n hasCompare = rnative.test(docElem.compareDocumentPosition); // Element contains another\n // Purposefully self-exclusive\n // As in, an element does not contain itself\n\n contains = hasCompare || rnative.test(docElem.contains) ? function (a, b) {\n var adown = a.nodeType === 9 ? a.documentElement : a,\n bup = b && b.parentNode;\n return a === bup || !!(bup && bup.nodeType === 1 && (adown.contains ? adown.contains(bup) : a.compareDocumentPosition && a.compareDocumentPosition(bup) & 16));\n } : function (a, b) {\n if (b) {\n while (b = b.parentNode) {\n if (b === a) {\n return true;\n }\n }\n }\n\n return false;\n };\n /* Sorting\n ---------------------------------------------------------------------- */\n // Document order sorting\n\n sortOrder = hasCompare ? function (a, b) {\n // Flag for duplicate removal\n if (a === b) {\n hasDuplicate = true;\n return 0;\n } // Sort on method existence if only one input has compareDocumentPosition\n\n\n var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\n if (compare) {\n return compare;\n } // Calculate position if both inputs belong to the same document\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n\n compare = (a.ownerDocument || a) == (b.ownerDocument || b) ? a.compareDocumentPosition(b) : // Otherwise we know they are disconnected\n 1; // Disconnected nodes\n\n if (compare & 1 || !support.sortDetached && b.compareDocumentPosition(a) === compare) {\n // Choose the first element that is related to our preferred document\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if (a == document || a.ownerDocument == preferredDoc && contains(preferredDoc, a)) {\n return -1;\n } // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n\n if (b == document || b.ownerDocument == preferredDoc && contains(preferredDoc, b)) {\n return 1;\n } // Maintain original order\n\n\n return sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0;\n }\n\n return compare & 4 ? -1 : 1;\n } : function (a, b) {\n // Exit early if the nodes are identical\n if (a === b) {\n hasDuplicate = true;\n return 0;\n }\n\n var cur,\n i = 0,\n aup = a.parentNode,\n bup = b.parentNode,\n ap = [a],\n bp = [b]; // Parentless nodes are either documents or disconnected\n\n if (!aup || !bup) {\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n\n /* eslint-disable eqeqeq */\n return a == document ? -1 : b == document ? 1 :\n /* eslint-enable eqeqeq */\n aup ? -1 : bup ? 1 : sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0; // If the nodes are siblings, we can do a quick check\n } else if (aup === bup) {\n return siblingCheck(a, b);\n } // Otherwise we need full lists of their ancestors for comparison\n\n\n cur = a;\n\n while (cur = cur.parentNode) {\n ap.unshift(cur);\n }\n\n cur = b;\n\n while (cur = cur.parentNode) {\n bp.unshift(cur);\n } // Walk down the tree looking for a discrepancy\n\n\n while (ap[i] === bp[i]) {\n i++;\n }\n\n return i ? // Do a sibling check if the nodes have a common ancestor\n siblingCheck(ap[i], bp[i]) : // Otherwise nodes in our document sort first\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n\n /* eslint-disable eqeqeq */\n ap[i] == preferredDoc ? -1 : bp[i] == preferredDoc ? 1 :\n /* eslint-enable eqeqeq */\n 0;\n };\n return document;\n };\n\n Sizzle.matches = function (expr, elements) {\n return Sizzle(expr, null, null, elements);\n };\n\n Sizzle.matchesSelector = function (elem, expr) {\n setDocument(elem);\n\n if (support.matchesSelector && documentIsHTML && !nonnativeSelectorCache[expr + \" \"] && (!rbuggyMatches || !rbuggyMatches.test(expr)) && (!rbuggyQSA || !rbuggyQSA.test(expr))) {\n try {\n var ret = matches.call(elem, expr); // IE 9's matchesSelector returns false on disconnected nodes\n\n if (ret || support.disconnectedMatch || // As well, disconnected nodes are said to be in a document\n // fragment in IE 9\n elem.document && elem.document.nodeType !== 11) {\n return ret;\n }\n } catch (e) {\n nonnativeSelectorCache(expr, true);\n }\n }\n\n return Sizzle(expr, document, null, [elem]).length > 0;\n };\n\n Sizzle.contains = function (context, elem) {\n // Set document vars if needed\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if ((context.ownerDocument || context) != document) {\n setDocument(context);\n }\n\n return contains(context, elem);\n };\n\n Sizzle.attr = function (elem, name) {\n // Set document vars if needed\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if ((elem.ownerDocument || elem) != document) {\n setDocument(elem);\n }\n\n var fn = Expr.attrHandle[name.toLowerCase()],\n // Don't get fooled by Object.prototype properties (jQuery #13807)\n val = fn && hasOwn.call(Expr.attrHandle, name.toLowerCase()) ? fn(elem, name, !documentIsHTML) : undefined;\n return val !== undefined ? val : support.attributes || !documentIsHTML ? elem.getAttribute(name) : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;\n };\n\n Sizzle.escape = function (sel) {\n return (sel + \"\").replace(rcssescape, fcssescape);\n };\n\n Sizzle.error = function (msg) {\n throw new Error(\"Syntax error, unrecognized expression: \" + msg);\n };\n /**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\n\n\n Sizzle.uniqueSort = function (results) {\n var elem,\n duplicates = [],\n j = 0,\n i = 0; // Unless we *know* we can detect duplicates, assume their presence\n\n hasDuplicate = !support.detectDuplicates;\n sortInput = !support.sortStable && results.slice(0);\n results.sort(sortOrder);\n\n if (hasDuplicate) {\n while (elem = results[i++]) {\n if (elem === results[i]) {\n j = duplicates.push(i);\n }\n }\n\n while (j--) {\n results.splice(duplicates[j], 1);\n }\n } // Clear input after sorting to release objects\n // See https://github.com/jquery/sizzle/pull/225\n\n\n sortInput = null;\n return results;\n };\n /**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\n\n\n getText = Sizzle.getText = function (elem) {\n var node,\n ret = \"\",\n i = 0,\n nodeType = elem.nodeType;\n\n if (!nodeType) {\n // If no nodeType, this is expected to be an array\n while (node = elem[i++]) {\n // Do not traverse comment nodes\n ret += getText(node);\n }\n } else if (nodeType === 1 || nodeType === 9 || nodeType === 11) {\n // Use textContent for elements\n // innerText usage removed for consistency of new lines (jQuery #11153)\n if (typeof elem.textContent === \"string\") {\n return elem.textContent;\n } else {\n // Traverse its children\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n ret += getText(elem);\n }\n }\n } else if (nodeType === 3 || nodeType === 4) {\n return elem.nodeValue;\n } // Do not include comment or processing instruction nodes\n\n\n return ret;\n };\n\n Expr = Sizzle.selectors = {\n // Can be adjusted by the user\n cacheLength: 50,\n createPseudo: markFunction,\n match: matchExpr,\n attrHandle: {},\n find: {},\n relative: {\n \">\": {\n dir: \"parentNode\",\n first: true\n },\n \" \": {\n dir: \"parentNode\"\n },\n \"+\": {\n dir: \"previousSibling\",\n first: true\n },\n \"~\": {\n dir: \"previousSibling\"\n }\n },\n preFilter: {\n \"ATTR\": function (match) {\n match[1] = match[1].replace(runescape, funescape); // Move the given value to match[3] whether quoted or unquoted\n\n match[3] = (match[3] || match[4] || match[5] || \"\").replace(runescape, funescape);\n\n if (match[2] === \"~=\") {\n match[3] = \" \" + match[3] + \" \";\n }\n\n return match.slice(0, 4);\n },\n \"CHILD\": function (match) {\n /* matches from matchExpr[\"CHILD\"]\n \t1 type (only|nth|...)\n \t2 what (child|of-type)\n \t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n \t4 xn-component of xn+y argument ([+-]?\\d*n|)\n \t5 sign of xn-component\n \t6 x of xn-component\n \t7 sign of y-component\n \t8 y of y-component\n */\n match[1] = match[1].toLowerCase();\n\n if (match[1].slice(0, 3) === \"nth\") {\n // nth-* requires argument\n if (!match[3]) {\n Sizzle.error(match[0]);\n } // numeric x and y parameters for Expr.filter.CHILD\n // remember that false/true cast respectively to 0/1\n\n\n match[4] = +(match[4] ? match[5] + (match[6] || 1) : 2 * (match[3] === \"even\" || match[3] === \"odd\"));\n match[5] = +(match[7] + match[8] || match[3] === \"odd\"); // other types prohibit arguments\n } else if (match[3]) {\n Sizzle.error(match[0]);\n }\n\n return match;\n },\n \"PSEUDO\": function (match) {\n var excess,\n unquoted = !match[6] && match[2];\n\n if (matchExpr[\"CHILD\"].test(match[0])) {\n return null;\n } // Accept quoted arguments as-is\n\n\n if (match[3]) {\n match[2] = match[4] || match[5] || \"\"; // Strip excess characters from unquoted arguments\n } else if (unquoted && rpseudo.test(unquoted) && ( // Get excess from tokenize (recursively)\n excess = tokenize(unquoted, true)) && ( // advance to the next closing parenthesis\n excess = unquoted.indexOf(\")\", unquoted.length - excess) - unquoted.length)) {\n // excess is a negative index\n match[0] = match[0].slice(0, excess);\n match[2] = unquoted.slice(0, excess);\n } // Return only captures needed by the pseudo filter method (type and argument)\n\n\n return match.slice(0, 3);\n }\n },\n filter: {\n \"TAG\": function (nodeNameSelector) {\n var nodeName = nodeNameSelector.replace(runescape, funescape).toLowerCase();\n return nodeNameSelector === \"*\" ? function () {\n return true;\n } : function (elem) {\n return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n };\n },\n \"CLASS\": function (className) {\n var pattern = classCache[className + \" \"];\n return pattern || (pattern = new RegExp(\"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\")) && classCache(className, function (elem) {\n return pattern.test(typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\");\n });\n },\n \"ATTR\": function (name, operator, check) {\n return function (elem) {\n var result = Sizzle.attr(elem, name);\n\n if (result == null) {\n return operator === \"!=\";\n }\n\n if (!operator) {\n return true;\n }\n\n result += \"\";\n /* eslint-disable max-len */\n\n return operator === \"=\" ? result === check : operator === \"!=\" ? result !== check : operator === \"^=\" ? check && result.indexOf(check) === 0 : operator === \"*=\" ? check && result.indexOf(check) > -1 : operator === \"$=\" ? check && result.slice(-check.length) === check : operator === \"~=\" ? (\" \" + result.replace(rwhitespace, \" \") + \" \").indexOf(check) > -1 : operator === \"|=\" ? result === check || result.slice(0, check.length + 1) === check + \"-\" : false;\n /* eslint-enable max-len */\n };\n },\n \"CHILD\": function (type, what, _argument, first, last) {\n var simple = type.slice(0, 3) !== \"nth\",\n forward = type.slice(-4) !== \"last\",\n ofType = what === \"of-type\";\n return first === 1 && last === 0 ? // Shortcut for :nth-*(n)\n function (elem) {\n return !!elem.parentNode;\n } : function (elem, _context, xml) {\n var cache,\n uniqueCache,\n outerCache,\n node,\n nodeIndex,\n start,\n dir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n parent = elem.parentNode,\n name = ofType && elem.nodeName.toLowerCase(),\n useCache = !xml && !ofType,\n diff = false;\n\n if (parent) {\n // :(first|last|only)-(child|of-type)\n if (simple) {\n while (dir) {\n node = elem;\n\n while (node = node[dir]) {\n if (ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) {\n return false;\n }\n } // Reverse direction for :only-* (if we haven't yet done so)\n\n\n start = dir = type === \"only\" && !start && \"nextSibling\";\n }\n\n return true;\n }\n\n start = [forward ? parent.firstChild : parent.lastChild]; // non-xml :nth-child(...) stores cache data on `parent`\n\n if (forward && useCache) {\n // Seek `elem` from a previously-cached index\n // ...in a gzip-friendly way\n node = parent;\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n cache = uniqueCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = nodeIndex && cache[2];\n node = nodeIndex && parent.childNodes[nodeIndex];\n\n while (node = ++nodeIndex && node && node[dir] || ( // Fallback to seeking `elem` from the start\n diff = nodeIndex = 0) || start.pop()) {\n // When found, cache indexes on `parent` and break\n if (node.nodeType === 1 && ++diff && node === elem) {\n uniqueCache[type] = [dirruns, nodeIndex, diff];\n break;\n }\n }\n } else {\n // Use previously-cached element index if available\n if (useCache) {\n // ...in a gzip-friendly way\n node = elem;\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n cache = uniqueCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = nodeIndex;\n } // xml :nth-child(...)\n // or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\n\n if (diff === false) {\n // Use the same loop as above to seek `elem` from the start\n while (node = ++nodeIndex && node && node[dir] || (diff = nodeIndex = 0) || start.pop()) {\n if ((ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) && ++diff) {\n // Cache the index of each encountered element\n if (useCache) {\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n uniqueCache[type] = [dirruns, diff];\n }\n\n if (node === elem) {\n break;\n }\n }\n }\n }\n } // Incorporate the offset, then check against cycle size\n\n\n diff -= last;\n return diff === first || diff % first === 0 && diff / first >= 0;\n }\n };\n },\n \"PSEUDO\": function (pseudo, argument) {\n // pseudo-class names are case-insensitive\n // http://www.w3.org/TR/selectors/#pseudo-classes\n // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n // Remember that setFilters inherits from pseudos\n var args,\n fn = Expr.pseudos[pseudo] || Expr.setFilters[pseudo.toLowerCase()] || Sizzle.error(\"unsupported pseudo: \" + pseudo); // The user may use createPseudo to indicate that\n // arguments are needed to create the filter function\n // just as Sizzle does\n\n if (fn[expando]) {\n return fn(argument);\n } // But maintain support for old signatures\n\n\n if (fn.length > 1) {\n args = [pseudo, pseudo, \"\", argument];\n return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase()) ? markFunction(function (seed, matches) {\n var idx,\n matched = fn(seed, argument),\n i = matched.length;\n\n while (i--) {\n idx = indexOf(seed, matched[i]);\n seed[idx] = !(matches[idx] = matched[i]);\n }\n }) : function (elem) {\n return fn(elem, 0, args);\n };\n }\n\n return fn;\n }\n },\n pseudos: {\n // Potentially complex pseudos\n \"not\": markFunction(function (selector) {\n // Trim the selector passed to compile\n // to avoid treating leading and trailing\n // spaces as combinators\n var input = [],\n results = [],\n matcher = compile(selector.replace(rtrim, \"$1\"));\n return matcher[expando] ? markFunction(function (seed, matches, _context, xml) {\n var elem,\n unmatched = matcher(seed, null, xml, []),\n i = seed.length; // Match elements unmatched by `matcher`\n\n while (i--) {\n if (elem = unmatched[i]) {\n seed[i] = !(matches[i] = elem);\n }\n }\n }) : function (elem, _context, xml) {\n input[0] = elem;\n matcher(input, null, xml, results); // Don't keep the element (issue #299)\n\n input[0] = null;\n return !results.pop();\n };\n }),\n \"has\": markFunction(function (selector) {\n return function (elem) {\n return Sizzle(selector, elem).length > 0;\n };\n }),\n \"contains\": markFunction(function (text) {\n text = text.replace(runescape, funescape);\n return function (elem) {\n return (elem.textContent || getText(elem)).indexOf(text) > -1;\n };\n }),\n // \"Whether an element is represented by a :lang() selector\n // is based solely on the element's language value\n // being equal to the identifier C,\n // or beginning with the identifier C immediately followed by \"-\".\n // The matching of C against the element's language value is performed case-insensitively.\n // The identifier C does not have to be a valid language name.\"\n // http://www.w3.org/TR/selectors/#lang-pseudo\n \"lang\": markFunction(function (lang) {\n // lang value must be a valid identifier\n if (!ridentifier.test(lang || \"\")) {\n Sizzle.error(\"unsupported lang: \" + lang);\n }\n\n lang = lang.replace(runescape, funescape).toLowerCase();\n return function (elem) {\n var elemLang;\n\n do {\n if (elemLang = documentIsHTML ? elem.lang : elem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) {\n elemLang = elemLang.toLowerCase();\n return elemLang === lang || elemLang.indexOf(lang + \"-\") === 0;\n }\n } while ((elem = elem.parentNode) && elem.nodeType === 1);\n\n return false;\n };\n }),\n // Miscellaneous\n \"target\": function (elem) {\n var hash = window.location && window.location.hash;\n return hash && hash.slice(1) === elem.id;\n },\n \"root\": function (elem) {\n return elem === docElem;\n },\n \"focus\": function (elem) {\n return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n },\n // Boolean properties\n \"enabled\": createDisabledPseudo(false),\n \"disabled\": createDisabledPseudo(true),\n \"checked\": function (elem) {\n // In CSS3, :checked should return both checked and selected elements\n // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n var nodeName = elem.nodeName.toLowerCase();\n return nodeName === \"input\" && !!elem.checked || nodeName === \"option\" && !!elem.selected;\n },\n \"selected\": function (elem) {\n // Accessing this property makes selected-by-default\n // options in Safari work properly\n if (elem.parentNode) {\n // eslint-disable-next-line no-unused-expressions\n elem.parentNode.selectedIndex;\n }\n\n return elem.selected === true;\n },\n // Contents\n \"empty\": function (elem) {\n // http://www.w3.org/TR/selectors/#empty-pseudo\n // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n // but not by others (comment: 8; processing instruction: 7; etc.)\n // nodeType < 6 works because attributes (2) do not appear as children\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n if (elem.nodeType < 6) {\n return false;\n }\n }\n\n return true;\n },\n \"parent\": function (elem) {\n return !Expr.pseudos[\"empty\"](elem);\n },\n // Element/input types\n \"header\": function (elem) {\n return rheader.test(elem.nodeName);\n },\n \"input\": function (elem) {\n return rinputs.test(elem.nodeName);\n },\n \"button\": function (elem) {\n var name = elem.nodeName.toLowerCase();\n return name === \"input\" && elem.type === \"button\" || name === \"button\";\n },\n \"text\": function (elem) {\n var attr;\n return elem.nodeName.toLowerCase() === \"input\" && elem.type === \"text\" && ( // Support: IE<8\n // New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\");\n },\n // Position-in-collection\n \"first\": createPositionalPseudo(function () {\n return [0];\n }),\n \"last\": createPositionalPseudo(function (_matchIndexes, length) {\n return [length - 1];\n }),\n \"eq\": createPositionalPseudo(function (_matchIndexes, length, argument) {\n return [argument < 0 ? argument + length : argument];\n }),\n \"even\": createPositionalPseudo(function (matchIndexes, length) {\n var i = 0;\n\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"odd\": createPositionalPseudo(function (matchIndexes, length) {\n var i = 1;\n\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"lt\": createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument > length ? length : argument;\n\n for (; --i >= 0;) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"gt\": createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument;\n\n for (; ++i < length;) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n })\n }\n };\n Expr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"]; // Add button/input type pseudos\n\n for (i in {\n radio: true,\n checkbox: true,\n file: true,\n password: true,\n image: true\n }) {\n Expr.pseudos[i] = createInputPseudo(i);\n }\n\n for (i in {\n submit: true,\n reset: true\n }) {\n Expr.pseudos[i] = createButtonPseudo(i);\n } // Easy API for creating new setFilters\n\n\n function setFilters() {}\n\n setFilters.prototype = Expr.filters = Expr.pseudos;\n Expr.setFilters = new setFilters();\n\n tokenize = Sizzle.tokenize = function (selector, parseOnly) {\n var matched,\n match,\n tokens,\n type,\n soFar,\n groups,\n preFilters,\n cached = tokenCache[selector + \" \"];\n\n if (cached) {\n return parseOnly ? 0 : cached.slice(0);\n }\n\n soFar = selector;\n groups = [];\n preFilters = Expr.preFilter;\n\n while (soFar) {\n // Comma and first run\n if (!matched || (match = rcomma.exec(soFar))) {\n if (match) {\n // Don't consume trailing commas as valid\n soFar = soFar.slice(match[0].length) || soFar;\n }\n\n groups.push(tokens = []);\n }\n\n matched = false; // Combinators\n\n if (match = rcombinators.exec(soFar)) {\n matched = match.shift();\n tokens.push({\n value: matched,\n // Cast descendant combinators to space\n type: match[0].replace(rtrim, \" \")\n });\n soFar = soFar.slice(matched.length);\n } // Filters\n\n\n for (type in Expr.filter) {\n if ((match = matchExpr[type].exec(soFar)) && (!preFilters[type] || (match = preFilters[type](match)))) {\n matched = match.shift();\n tokens.push({\n value: matched,\n type: type,\n matches: match\n });\n soFar = soFar.slice(matched.length);\n }\n }\n\n if (!matched) {\n break;\n }\n } // Return the length of the invalid excess\n // if we're just parsing\n // Otherwise, throw an error or return tokens\n\n\n return parseOnly ? soFar.length : soFar ? Sizzle.error(selector) : // Cache the tokens\n tokenCache(selector, groups).slice(0);\n };\n\n function toSelector(tokens) {\n var i = 0,\n len = tokens.length,\n selector = \"\";\n\n for (; i < len; i++) {\n selector += tokens[i].value;\n }\n\n return selector;\n }\n\n function addCombinator(matcher, combinator, base) {\n var dir = combinator.dir,\n skip = combinator.next,\n key = skip || dir,\n checkNonElements = base && key === \"parentNode\",\n doneName = done++;\n return combinator.first ? // Check against closest ancestor/preceding element\n function (elem, context, xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n return matcher(elem, context, xml);\n }\n }\n\n return false;\n } : // Check against all ancestor/preceding elements\n function (elem, context, xml) {\n var oldCache,\n uniqueCache,\n outerCache,\n newCache = [dirruns, doneName]; // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\n if (xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n if (matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n } else {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n outerCache = elem[expando] || (elem[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[elem.uniqueID] || (outerCache[elem.uniqueID] = {});\n\n if (skip && skip === elem.nodeName.toLowerCase()) {\n elem = elem[dir] || elem;\n } else if ((oldCache = uniqueCache[key]) && oldCache[0] === dirruns && oldCache[1] === doneName) {\n // Assign to newCache so results back-propagate to previous elements\n return newCache[2] = oldCache[2];\n } else {\n // Reuse newcache so results back-propagate to previous elements\n uniqueCache[key] = newCache; // A match means we're done; a fail means we have to keep checking\n\n if (newCache[2] = matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n }\n }\n\n return false;\n };\n }\n\n function elementMatcher(matchers) {\n return matchers.length > 1 ? function (elem, context, xml) {\n var i = matchers.length;\n\n while (i--) {\n if (!matchers[i](elem, context, xml)) {\n return false;\n }\n }\n\n return true;\n } : matchers[0];\n }\n\n function multipleContexts(selector, contexts, results) {\n var i = 0,\n len = contexts.length;\n\n for (; i < len; i++) {\n Sizzle(selector, contexts[i], results);\n }\n\n return results;\n }\n\n function condense(unmatched, map, filter, context, xml) {\n var elem,\n newUnmatched = [],\n i = 0,\n len = unmatched.length,\n mapped = map != null;\n\n for (; i < len; i++) {\n if (elem = unmatched[i]) {\n if (!filter || filter(elem, context, xml)) {\n newUnmatched.push(elem);\n\n if (mapped) {\n map.push(i);\n }\n }\n }\n }\n\n return newUnmatched;\n }\n\n function setMatcher(preFilter, selector, matcher, postFilter, postFinder, postSelector) {\n if (postFilter && !postFilter[expando]) {\n postFilter = setMatcher(postFilter);\n }\n\n if (postFinder && !postFinder[expando]) {\n postFinder = setMatcher(postFinder, postSelector);\n }\n\n return markFunction(function (seed, results, context, xml) {\n var temp,\n i,\n elem,\n preMap = [],\n postMap = [],\n preexisting = results.length,\n // Get initial elements from seed or context\n elems = seed || multipleContexts(selector || \"*\", context.nodeType ? [context] : context, []),\n // Prefilter to get matcher input, preserving a map for seed-results synchronization\n matcherIn = preFilter && (seed || !selector) ? condense(elems, preMap, preFilter, context, xml) : elems,\n matcherOut = matcher ? // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n postFinder || (seed ? preFilter : preexisting || postFilter) ? // ...intermediate processing is necessary\n [] : // ...otherwise use results directly\n results : matcherIn; // Find primary matches\n\n if (matcher) {\n matcher(matcherIn, matcherOut, context, xml);\n } // Apply postFilter\n\n\n if (postFilter) {\n temp = condense(matcherOut, postMap);\n postFilter(temp, [], context, xml); // Un-match failing elements by moving them back to matcherIn\n\n i = temp.length;\n\n while (i--) {\n if (elem = temp[i]) {\n matcherOut[postMap[i]] = !(matcherIn[postMap[i]] = elem);\n }\n }\n }\n\n if (seed) {\n if (postFinder || preFilter) {\n if (postFinder) {\n // Get the final matcherOut by condensing this intermediate into postFinder contexts\n temp = [];\n i = matcherOut.length;\n\n while (i--) {\n if (elem = matcherOut[i]) {\n // Restore matcherIn since elem is not yet a final match\n temp.push(matcherIn[i] = elem);\n }\n }\n\n postFinder(null, matcherOut = [], temp, xml);\n } // Move matched elements from seed to results to keep them synchronized\n\n\n i = matcherOut.length;\n\n while (i--) {\n if ((elem = matcherOut[i]) && (temp = postFinder ? indexOf(seed, elem) : preMap[i]) > -1) {\n seed[temp] = !(results[temp] = elem);\n }\n }\n } // Add elements to results, through postFinder if defined\n\n } else {\n matcherOut = condense(matcherOut === results ? matcherOut.splice(preexisting, matcherOut.length) : matcherOut);\n\n if (postFinder) {\n postFinder(null, results, matcherOut, xml);\n } else {\n push.apply(results, matcherOut);\n }\n }\n });\n }\n\n function matcherFromTokens(tokens) {\n var checkContext,\n matcher,\n j,\n len = tokens.length,\n leadingRelative = Expr.relative[tokens[0].type],\n implicitRelative = leadingRelative || Expr.relative[\" \"],\n i = leadingRelative ? 1 : 0,\n // The foundational matcher ensures that elements are reachable from top-level context(s)\n matchContext = addCombinator(function (elem) {\n return elem === checkContext;\n }, implicitRelative, true),\n matchAnyContext = addCombinator(function (elem) {\n return indexOf(checkContext, elem) > -1;\n }, implicitRelative, true),\n matchers = [function (elem, context, xml) {\n var ret = !leadingRelative && (xml || context !== outermostContext) || ((checkContext = context).nodeType ? matchContext(elem, context, xml) : matchAnyContext(elem, context, xml)); // Avoid hanging onto element (issue #299)\n\n checkContext = null;\n return ret;\n }];\n\n for (; i < len; i++) {\n if (matcher = Expr.relative[tokens[i].type]) {\n matchers = [addCombinator(elementMatcher(matchers), matcher)];\n } else {\n matcher = Expr.filter[tokens[i].type].apply(null, tokens[i].matches); // Return special upon seeing a positional matcher\n\n if (matcher[expando]) {\n // Find the next relative operator (if any) for proper handling\n j = ++i;\n\n for (; j < len; j++) {\n if (Expr.relative[tokens[j].type]) {\n break;\n }\n }\n\n return setMatcher(i > 1 && elementMatcher(matchers), i > 1 && toSelector( // If the preceding token was a descendant combinator, insert an implicit any-element `*`\n tokens.slice(0, i - 1).concat({\n value: tokens[i - 2].type === \" \" ? \"*\" : \"\"\n })).replace(rtrim, \"$1\"), matcher, i < j && matcherFromTokens(tokens.slice(i, j)), j < len && matcherFromTokens(tokens = tokens.slice(j)), j < len && toSelector(tokens));\n }\n\n matchers.push(matcher);\n }\n }\n\n return elementMatcher(matchers);\n }\n\n function matcherFromGroupMatchers(elementMatchers, setMatchers) {\n var bySet = setMatchers.length > 0,\n byElement = elementMatchers.length > 0,\n superMatcher = function (seed, context, xml, results, outermost) {\n var elem,\n j,\n matcher,\n matchedCount = 0,\n i = \"0\",\n unmatched = seed && [],\n setMatched = [],\n contextBackup = outermostContext,\n // We must always have either seed elements or outermost context\n elems = seed || byElement && Expr.find[\"TAG\"](\"*\", outermost),\n // Use integer dirruns iff this is the outermost matcher\n dirrunsUnique = dirruns += contextBackup == null ? 1 : Math.random() || 0.1,\n len = elems.length;\n\n if (outermost) {\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n outermostContext = context == document || context || outermost;\n } // Add elements passing elementMatchers directly to results\n // Support: IE<9, Safari\n // Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\n\n for (; i !== len && (elem = elems[i]) != null; i++) {\n if (byElement && elem) {\n j = 0; // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n if (!context && elem.ownerDocument != document) {\n setDocument(elem);\n xml = !documentIsHTML;\n }\n\n while (matcher = elementMatchers[j++]) {\n if (matcher(elem, context || document, xml)) {\n results.push(elem);\n break;\n }\n }\n\n if (outermost) {\n dirruns = dirrunsUnique;\n }\n } // Track unmatched elements for set filters\n\n\n if (bySet) {\n // They will have gone through all possible matchers\n if (elem = !matcher && elem) {\n matchedCount--;\n } // Lengthen the array for every element, matched or not\n\n\n if (seed) {\n unmatched.push(elem);\n }\n }\n } // `i` is now the count of elements visited above, and adding it to `matchedCount`\n // makes the latter nonnegative.\n\n\n matchedCount += i; // Apply set filters to unmatched elements\n // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n // equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n // no element matchers and no seed.\n // Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n // case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n // numerically zero.\n\n if (bySet && i !== matchedCount) {\n j = 0;\n\n while (matcher = setMatchers[j++]) {\n matcher(unmatched, setMatched, context, xml);\n }\n\n if (seed) {\n // Reintegrate element matches to eliminate the need for sorting\n if (matchedCount > 0) {\n while (i--) {\n if (!(unmatched[i] || setMatched[i])) {\n setMatched[i] = pop.call(results);\n }\n }\n } // Discard index placeholder values to get only actual matches\n\n\n setMatched = condense(setMatched);\n } // Add matches to results\n\n\n push.apply(results, setMatched); // Seedless set matches succeeding multiple successful matchers stipulate sorting\n\n if (outermost && !seed && setMatched.length > 0 && matchedCount + setMatchers.length > 1) {\n Sizzle.uniqueSort(results);\n }\n } // Override manipulation of globals by nested matchers\n\n\n if (outermost) {\n dirruns = dirrunsUnique;\n outermostContext = contextBackup;\n }\n\n return unmatched;\n };\n\n return bySet ? markFunction(superMatcher) : superMatcher;\n }\n\n compile = Sizzle.compile = function (selector, match\n /* Internal Use Only */\n ) {\n var i,\n setMatchers = [],\n elementMatchers = [],\n cached = compilerCache[selector + \" \"];\n\n if (!cached) {\n // Generate a function of recursive functions that can be used to check each element\n if (!match) {\n match = tokenize(selector);\n }\n\n i = match.length;\n\n while (i--) {\n cached = matcherFromTokens(match[i]);\n\n if (cached[expando]) {\n setMatchers.push(cached);\n } else {\n elementMatchers.push(cached);\n }\n } // Cache the compiled function\n\n\n cached = compilerCache(selector, matcherFromGroupMatchers(elementMatchers, setMatchers)); // Save selector and tokenization\n\n cached.selector = selector;\n }\n\n return cached;\n };\n /**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\n\n\n select = Sizzle.select = function (selector, context, results, seed) {\n var i,\n tokens,\n token,\n type,\n find,\n compiled = typeof selector === \"function\" && selector,\n match = !seed && tokenize(selector = compiled.selector || selector);\n results = results || []; // Try to minimize operations if there is only one selector in the list and no seed\n // (the latter of which guarantees us context)\n\n if (match.length === 1) {\n // Reduce context if the leading compound selector is an ID\n tokens = match[0] = match[0].slice(0);\n\n if (tokens.length > 2 && (token = tokens[0]).type === \"ID\" && context.nodeType === 9 && documentIsHTML && Expr.relative[tokens[1].type]) {\n context = (Expr.find[\"ID\"](token.matches[0].replace(runescape, funescape), context) || [])[0];\n\n if (!context) {\n return results; // Precompiled matchers will still verify ancestry, so step up a level\n } else if (compiled) {\n context = context.parentNode;\n }\n\n selector = selector.slice(tokens.shift().value.length);\n } // Fetch a seed set for right-to-left matching\n\n\n i = matchExpr[\"needsContext\"].test(selector) ? 0 : tokens.length;\n\n while (i--) {\n token = tokens[i]; // Abort if we hit a combinator\n\n if (Expr.relative[type = token.type]) {\n break;\n }\n\n if (find = Expr.find[type]) {\n // Search, expanding context for leading sibling combinators\n if (seed = find(token.matches[0].replace(runescape, funescape), rsibling.test(tokens[0].type) && testContext(context.parentNode) || context)) {\n // If seed is empty or no tokens remain, we can return early\n tokens.splice(i, 1);\n selector = seed.length && toSelector(tokens);\n\n if (!selector) {\n push.apply(results, seed);\n return results;\n }\n\n break;\n }\n }\n }\n } // Compile and execute a filtering function if one is not provided\n // Provide `match` to avoid retokenization if we modified the selector above\n\n\n (compiled || compile(selector, match))(seed, context, !documentIsHTML, results, !context || rsibling.test(selector) && testContext(context.parentNode) || context);\n return results;\n }; // One-time assignments\n // Sort stability\n\n\n support.sortStable = expando.split(\"\").sort(sortOrder).join(\"\") === expando; // Support: Chrome 14-35+\n // Always assume duplicates if they aren't passed to the comparison function\n\n support.detectDuplicates = !!hasDuplicate; // Initialize against the default document\n\n setDocument(); // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n // Detached nodes confoundingly follow *each other*\n\n support.sortDetached = assert(function (el) {\n // Should return 1, but returns 4 (following)\n return el.compareDocumentPosition(document.createElement(\"fieldset\")) & 1;\n }); // Support: IE<8\n // Prevent attribute/property \"interpolation\"\n // https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\n\n if (!assert(function (el) {\n el.innerHTML = \"\";\n return el.firstChild.getAttribute(\"href\") === \"#\";\n })) {\n addHandle(\"type|href|height|width\", function (elem, name, isXML) {\n if (!isXML) {\n return elem.getAttribute(name, name.toLowerCase() === \"type\" ? 1 : 2);\n }\n });\n } // Support: IE<9\n // Use defaultValue in place of getAttribute(\"value\")\n\n\n if (!support.attributes || !assert(function (el) {\n el.innerHTML = \"\";\n el.firstChild.setAttribute(\"value\", \"\");\n return el.firstChild.getAttribute(\"value\") === \"\";\n })) {\n addHandle(\"value\", function (elem, _name, isXML) {\n if (!isXML && elem.nodeName.toLowerCase() === \"input\") {\n return elem.defaultValue;\n }\n });\n } // Support: IE<9\n // Use getAttributeNode to fetch booleans when getAttribute lies\n\n\n if (!assert(function (el) {\n return el.getAttribute(\"disabled\") == null;\n })) {\n addHandle(booleans, function (elem, name, isXML) {\n var val;\n\n if (!isXML) {\n return elem[name] === true ? name.toLowerCase() : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;\n }\n });\n }\n\n return Sizzle;\n }(window);\n\n jQuery.find = Sizzle;\n jQuery.expr = Sizzle.selectors; // Deprecated\n\n jQuery.expr[\":\"] = jQuery.expr.pseudos;\n jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\n jQuery.text = Sizzle.getText;\n jQuery.isXMLDoc = Sizzle.isXML;\n jQuery.contains = Sizzle.contains;\n jQuery.escapeSelector = Sizzle.escape;\n\n var dir = function (elem, dir, until) {\n var matched = [],\n truncate = until !== undefined;\n\n while ((elem = elem[dir]) && elem.nodeType !== 9) {\n if (elem.nodeType === 1) {\n if (truncate && jQuery(elem).is(until)) {\n break;\n }\n\n matched.push(elem);\n }\n }\n\n return matched;\n };\n\n var siblings = function (n, elem) {\n var matched = [];\n\n for (; n; n = n.nextSibling) {\n if (n.nodeType === 1 && n !== elem) {\n matched.push(n);\n }\n }\n\n return matched;\n };\n\n var rneedsContext = jQuery.expr.match.needsContext;\n\n function nodeName(elem, name) {\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n }\n\n ;\n var rsingleTag = /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i; // Implement the identical functionality for filter and not\n\n function winnow(elements, qualifier, not) {\n if (isFunction(qualifier)) {\n return jQuery.grep(elements, function (elem, i) {\n return !!qualifier.call(elem, i, elem) !== not;\n });\n } // Single element\n\n\n if (qualifier.nodeType) {\n return jQuery.grep(elements, function (elem) {\n return elem === qualifier !== not;\n });\n } // Arraylike of elements (jQuery, arguments, Array)\n\n\n if (typeof qualifier !== \"string\") {\n return jQuery.grep(elements, function (elem) {\n return indexOf.call(qualifier, elem) > -1 !== not;\n });\n } // Filtered directly for both simple and complex selectors\n\n\n return jQuery.filter(qualifier, elements, not);\n }\n\n jQuery.filter = function (expr, elems, not) {\n var elem = elems[0];\n\n if (not) {\n expr = \":not(\" + expr + \")\";\n }\n\n if (elems.length === 1 && elem.nodeType === 1) {\n return jQuery.find.matchesSelector(elem, expr) ? [elem] : [];\n }\n\n return jQuery.find.matches(expr, jQuery.grep(elems, function (elem) {\n return elem.nodeType === 1;\n }));\n };\n\n jQuery.fn.extend({\n find: function (selector) {\n var i,\n ret,\n len = this.length,\n self = this;\n\n if (typeof selector !== \"string\") {\n return this.pushStack(jQuery(selector).filter(function () {\n for (i = 0; i < len; i++) {\n if (jQuery.contains(self[i], this)) {\n return true;\n }\n }\n }));\n }\n\n ret = this.pushStack([]);\n\n for (i = 0; i < len; i++) {\n jQuery.find(selector, self[i], ret);\n }\n\n return len > 1 ? jQuery.uniqueSort(ret) : ret;\n },\n filter: function (selector) {\n return this.pushStack(winnow(this, selector || [], false));\n },\n not: function (selector) {\n return this.pushStack(winnow(this, selector || [], true));\n },\n is: function (selector) {\n return !!winnow(this, // If this is a positional/relative selector, check membership in the returned set\n // so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n typeof selector === \"string\" && rneedsContext.test(selector) ? jQuery(selector) : selector || [], false).length;\n }\n }); // Initialize a jQuery object\n // A central reference to the root jQuery(document)\n\n var rootjQuery,\n // A simple way to check for HTML strings\n // Prioritize #id over to avoid XSS via location.hash (#9521)\n // Strict HTML recognition (#11290: must start with <)\n // Shortcut simple #id case for speed\n rquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n init = jQuery.fn.init = function (selector, context, root) {\n var match, elem; // HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\n if (!selector) {\n return this;\n } // Method init() accepts an alternate rootjQuery\n // so migrate can support jQuery.sub (gh-2101)\n\n\n root = root || rootjQuery; // Handle HTML strings\n\n if (typeof selector === \"string\") {\n if (selector[0] === \"<\" && selector[selector.length - 1] === \">\" && selector.length >= 3) {\n // Assume that strings that start and end with <> are HTML and skip the regex check\n match = [null, selector, null];\n } else {\n match = rquickExpr.exec(selector);\n } // Match html or make sure no context is specified for #id\n\n\n if (match && (match[1] || !context)) {\n // HANDLE: $(html) -> $(array)\n if (match[1]) {\n context = context instanceof jQuery ? context[0] : context; // Option to run scripts is true for back-compat\n // Intentionally let the error be thrown if parseHTML is not present\n\n jQuery.merge(this, jQuery.parseHTML(match[1], context && context.nodeType ? context.ownerDocument || context : document, true)); // HANDLE: $(html, props)\n\n if (rsingleTag.test(match[1]) && jQuery.isPlainObject(context)) {\n for (match in context) {\n // Properties of context are called as methods if possible\n if (isFunction(this[match])) {\n this[match](context[match]); // ...and otherwise set as attributes\n } else {\n this.attr(match, context[match]);\n }\n }\n }\n\n return this; // HANDLE: $(#id)\n } else {\n elem = document.getElementById(match[2]);\n\n if (elem) {\n // Inject the element directly into the jQuery object\n this[0] = elem;\n this.length = 1;\n }\n\n return this;\n } // HANDLE: $(expr, $(...))\n\n } else if (!context || context.jquery) {\n return (context || root).find(selector); // HANDLE: $(expr, context)\n // (which is just equivalent to: $(context).find(expr)\n } else {\n return this.constructor(context).find(selector);\n } // HANDLE: $(DOMElement)\n\n } else if (selector.nodeType) {\n this[0] = selector;\n this.length = 1;\n return this; // HANDLE: $(function)\n // Shortcut for document ready\n } else if (isFunction(selector)) {\n return root.ready !== undefined ? root.ready(selector) : // Execute immediately if ready is not present\n selector(jQuery);\n }\n\n return jQuery.makeArray(selector, this);\n }; // Give the init function the jQuery prototype for later instantiation\n\n\n init.prototype = jQuery.fn; // Initialize central reference\n\n rootjQuery = jQuery(document);\n var rparentsprev = /^(?:parents|prev(?:Until|All))/,\n // Methods guaranteed to produce a unique set when starting from a unique set\n guaranteedUnique = {\n children: true,\n contents: true,\n next: true,\n prev: true\n };\n jQuery.fn.extend({\n has: function (target) {\n var targets = jQuery(target, this),\n l = targets.length;\n return this.filter(function () {\n var i = 0;\n\n for (; i < l; i++) {\n if (jQuery.contains(this, targets[i])) {\n return true;\n }\n }\n });\n },\n closest: function (selectors, context) {\n var cur,\n i = 0,\n l = this.length,\n matched = [],\n targets = typeof selectors !== \"string\" && jQuery(selectors); // Positional selectors never match, since there's no _selection_ context\n\n if (!rneedsContext.test(selectors)) {\n for (; i < l; i++) {\n for (cur = this[i]; cur && cur !== context; cur = cur.parentNode) {\n // Always skip document fragments\n if (cur.nodeType < 11 && (targets ? targets.index(cur) > -1 : // Don't pass non-elements to Sizzle\n cur.nodeType === 1 && jQuery.find.matchesSelector(cur, selectors))) {\n matched.push(cur);\n break;\n }\n }\n }\n }\n\n return this.pushStack(matched.length > 1 ? jQuery.uniqueSort(matched) : matched);\n },\n // Determine the position of an element within the set\n index: function (elem) {\n // No argument, return index in parent\n if (!elem) {\n return this[0] && this[0].parentNode ? this.first().prevAll().length : -1;\n } // Index in selector\n\n\n if (typeof elem === \"string\") {\n return indexOf.call(jQuery(elem), this[0]);\n } // Locate the position of the desired element\n\n\n return indexOf.call(this, // If it receives a jQuery object, the first element is used\n elem.jquery ? elem[0] : elem);\n },\n add: function (selector, context) {\n return this.pushStack(jQuery.uniqueSort(jQuery.merge(this.get(), jQuery(selector, context))));\n },\n addBack: function (selector) {\n return this.add(selector == null ? this.prevObject : this.prevObject.filter(selector));\n }\n });\n\n function sibling(cur, dir) {\n while ((cur = cur[dir]) && cur.nodeType !== 1) {}\n\n return cur;\n }\n\n jQuery.each({\n parent: function (elem) {\n var parent = elem.parentNode;\n return parent && parent.nodeType !== 11 ? parent : null;\n },\n parents: function (elem) {\n return dir(elem, \"parentNode\");\n },\n parentsUntil: function (elem, _i, until) {\n return dir(elem, \"parentNode\", until);\n },\n next: function (elem) {\n return sibling(elem, \"nextSibling\");\n },\n prev: function (elem) {\n return sibling(elem, \"previousSibling\");\n },\n nextAll: function (elem) {\n return dir(elem, \"nextSibling\");\n },\n prevAll: function (elem) {\n return dir(elem, \"previousSibling\");\n },\n nextUntil: function (elem, _i, until) {\n return dir(elem, \"nextSibling\", until);\n },\n prevUntil: function (elem, _i, until) {\n return dir(elem, \"previousSibling\", until);\n },\n siblings: function (elem) {\n return siblings((elem.parentNode || {}).firstChild, elem);\n },\n children: function (elem) {\n return siblings(elem.firstChild);\n },\n contents: function (elem) {\n if (elem.contentDocument != null && // Support: IE 11+\n // elements with no `data` attribute has an object\n // `contentDocument` with a `null` prototype.\n getProto(elem.contentDocument)) {\n return elem.contentDocument;\n } // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n // Treat the template element as a regular one in browsers that\n // don't support it.\n\n\n if (nodeName(elem, \"template\")) {\n elem = elem.content || elem;\n }\n\n return jQuery.merge([], elem.childNodes);\n }\n }, function (name, fn) {\n jQuery.fn[name] = function (until, selector) {\n var matched = jQuery.map(this, fn, until);\n\n if (name.slice(-5) !== \"Until\") {\n selector = until;\n }\n\n if (selector && typeof selector === \"string\") {\n matched = jQuery.filter(selector, matched);\n }\n\n if (this.length > 1) {\n // Remove duplicates\n if (!guaranteedUnique[name]) {\n jQuery.uniqueSort(matched);\n } // Reverse order for parents* and prev-derivatives\n\n\n if (rparentsprev.test(name)) {\n matched.reverse();\n }\n }\n\n return this.pushStack(matched);\n };\n });\n var rnothtmlwhite = /[^\\x20\\t\\r\\n\\f]+/g; // Convert String-formatted options into Object-formatted ones\n\n function createOptions(options) {\n var object = {};\n jQuery.each(options.match(rnothtmlwhite) || [], function (_, flag) {\n object[flag] = true;\n });\n return object;\n }\n /*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\n\n\n jQuery.Callbacks = function (options) {\n // Convert options from String-formatted to Object-formatted if needed\n // (we check in cache first)\n options = typeof options === \"string\" ? createOptions(options) : jQuery.extend({}, options);\n\n var // Flag to know if list is currently firing\n firing,\n // Last fire value for non-forgettable lists\n memory,\n // Flag to know if list was already fired\n fired,\n // Flag to prevent firing\n locked,\n // Actual callback list\n list = [],\n // Queue of execution data for repeatable lists\n queue = [],\n // Index of currently firing callback (modified by add/remove as needed)\n firingIndex = -1,\n // Fire callbacks\n fire = function () {\n // Enforce single-firing\n locked = locked || options.once; // Execute callbacks for all pending executions,\n // respecting firingIndex overrides and runtime changes\n\n fired = firing = true;\n\n for (; queue.length; firingIndex = -1) {\n memory = queue.shift();\n\n while (++firingIndex < list.length) {\n // Run callback and check for early termination\n if (list[firingIndex].apply(memory[0], memory[1]) === false && options.stopOnFalse) {\n // Jump to end and forget the data so .add doesn't re-fire\n firingIndex = list.length;\n memory = false;\n }\n }\n } // Forget the data if we're done with it\n\n\n if (!options.memory) {\n memory = false;\n }\n\n firing = false; // Clean up if we're done firing for good\n\n if (locked) {\n // Keep an empty list if we have data for future add calls\n if (memory) {\n list = []; // Otherwise, this object is spent\n } else {\n list = \"\";\n }\n }\n },\n // Actual Callbacks object\n self = {\n // Add a callback or a collection of callbacks to the list\n add: function () {\n if (list) {\n // If we have memory from a past run, we should fire after adding\n if (memory && !firing) {\n firingIndex = list.length - 1;\n queue.push(memory);\n }\n\n (function add(args) {\n jQuery.each(args, function (_, arg) {\n if (isFunction(arg)) {\n if (!options.unique || !self.has(arg)) {\n list.push(arg);\n }\n } else if (arg && arg.length && toType(arg) !== \"string\") {\n // Inspect recursively\n add(arg);\n }\n });\n })(arguments);\n\n if (memory && !firing) {\n fire();\n }\n }\n\n return this;\n },\n // Remove a callback from the list\n remove: function () {\n jQuery.each(arguments, function (_, arg) {\n var index;\n\n while ((index = jQuery.inArray(arg, list, index)) > -1) {\n list.splice(index, 1); // Handle firing indexes\n\n if (index <= firingIndex) {\n firingIndex--;\n }\n }\n });\n return this;\n },\n // Check if a given callback is in the list.\n // If no argument is given, return whether or not list has callbacks attached.\n has: function (fn) {\n return fn ? jQuery.inArray(fn, list) > -1 : list.length > 0;\n },\n // Remove all callbacks from the list\n empty: function () {\n if (list) {\n list = [];\n }\n\n return this;\n },\n // Disable .fire and .add\n // Abort any current/pending executions\n // Clear all callbacks and values\n disable: function () {\n locked = queue = [];\n list = memory = \"\";\n return this;\n },\n disabled: function () {\n return !list;\n },\n // Disable .fire\n // Also disable .add unless we have memory (since it would have no effect)\n // Abort any pending executions\n lock: function () {\n locked = queue = [];\n\n if (!memory && !firing) {\n list = memory = \"\";\n }\n\n return this;\n },\n locked: function () {\n return !!locked;\n },\n // Call all callbacks with the given context and arguments\n fireWith: function (context, args) {\n if (!locked) {\n args = args || [];\n args = [context, args.slice ? args.slice() : args];\n queue.push(args);\n\n if (!firing) {\n fire();\n }\n }\n\n return this;\n },\n // Call all the callbacks with the given arguments\n fire: function () {\n self.fireWith(this, arguments);\n return this;\n },\n // To know if the callbacks have already been called at least once\n fired: function () {\n return !!fired;\n }\n };\n\n return self;\n };\n\n function Identity(v) {\n return v;\n }\n\n function Thrower(ex) {\n throw ex;\n }\n\n function adoptValue(value, resolve, reject, noValue) {\n var method;\n\n try {\n // Check for promise aspect first to privilege synchronous behavior\n if (value && isFunction(method = value.promise)) {\n method.call(value).done(resolve).fail(reject); // Other thenables\n } else if (value && isFunction(method = value.then)) {\n method.call(value, resolve, reject); // Other non-thenables\n } else {\n // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n // * false: [ value ].slice( 0 ) => resolve( value )\n // * true: [ value ].slice( 1 ) => resolve()\n resolve.apply(undefined, [value].slice(noValue));\n } // For Promises/A+, convert exceptions into rejections\n // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n // Deferred#then to conditionally suppress rejection.\n\n } catch (value) {\n // Support: Android 4.0 only\n // Strict mode functions invoked without .call/.apply get global-object context\n reject.apply(undefined, [value]);\n }\n }\n\n jQuery.extend({\n Deferred: function (func) {\n var tuples = [// action, add listener, callbacks,\n // ... .then handlers, argument index, [final state]\n [\"notify\", \"progress\", jQuery.Callbacks(\"memory\"), jQuery.Callbacks(\"memory\"), 2], [\"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 0, \"resolved\"], [\"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 1, \"rejected\"]],\n state = \"pending\",\n promise = {\n state: function () {\n return state;\n },\n always: function () {\n deferred.done(arguments).fail(arguments);\n return this;\n },\n \"catch\": function (fn) {\n return promise.then(null, fn);\n },\n // Keep pipe for back-compat\n pipe: function\n /* fnDone, fnFail, fnProgress */\n () {\n var fns = arguments;\n return jQuery.Deferred(function (newDefer) {\n jQuery.each(tuples, function (_i, tuple) {\n // Map tuples (progress, done, fail) to arguments (done, fail, progress)\n var fn = isFunction(fns[tuple[4]]) && fns[tuple[4]]; // deferred.progress(function() { bind to newDefer or newDefer.notify })\n // deferred.done(function() { bind to newDefer or newDefer.resolve })\n // deferred.fail(function() { bind to newDefer or newDefer.reject })\n\n deferred[tuple[1]](function () {\n var returned = fn && fn.apply(this, arguments);\n\n if (returned && isFunction(returned.promise)) {\n returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject);\n } else {\n newDefer[tuple[0] + \"With\"](this, fn ? [returned] : arguments);\n }\n });\n });\n fns = null;\n }).promise();\n },\n then: function (onFulfilled, onRejected, onProgress) {\n var maxDepth = 0;\n\n function resolve(depth, deferred, handler, special) {\n return function () {\n var that = this,\n args = arguments,\n mightThrow = function () {\n var returned, then; // Support: Promises/A+ section 2.3.3.3.3\n // https://promisesaplus.com/#point-59\n // Ignore double-resolution attempts\n\n if (depth < maxDepth) {\n return;\n }\n\n returned = handler.apply(that, args); // Support: Promises/A+ section 2.3.1\n // https://promisesaplus.com/#point-48\n\n if (returned === deferred.promise()) {\n throw new TypeError(\"Thenable self-resolution\");\n } // Support: Promises/A+ sections 2.3.3.1, 3.5\n // https://promisesaplus.com/#point-54\n // https://promisesaplus.com/#point-75\n // Retrieve `then` only once\n\n\n then = returned && ( // Support: Promises/A+ section 2.3.4\n // https://promisesaplus.com/#point-64\n // Only check objects and functions for thenability\n typeof returned === \"object\" || typeof returned === \"function\") && returned.then; // Handle a returned thenable\n\n if (isFunction(then)) {\n // Special processors (notify) just wait for resolution\n if (special) {\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special)); // Normal processors (resolve) also hook into progress\n } else {\n // ...and disregard older resolution values\n maxDepth++;\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special), resolve(maxDepth, deferred, Identity, deferred.notifyWith));\n } // Handle all other returned values\n\n } else {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Identity) {\n that = undefined;\n args = [returned];\n } // Process the value(s)\n // Default process is resolve\n\n\n (special || deferred.resolveWith)(that, args);\n }\n },\n // Only normal processors (resolve) catch and reject exceptions\n process = special ? mightThrow : function () {\n try {\n mightThrow();\n } catch (e) {\n if (jQuery.Deferred.exceptionHook) {\n jQuery.Deferred.exceptionHook(e, process.stackTrace);\n } // Support: Promises/A+ section 2.3.3.3.4.1\n // https://promisesaplus.com/#point-61\n // Ignore post-resolution exceptions\n\n\n if (depth + 1 >= maxDepth) {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Thrower) {\n that = undefined;\n args = [e];\n }\n\n deferred.rejectWith(that, args);\n }\n }\n }; // Support: Promises/A+ section 2.3.3.3.1\n // https://promisesaplus.com/#point-57\n // Re-resolve promises immediately to dodge false rejection from\n // subsequent errors\n\n\n if (depth) {\n process();\n } else {\n // Call an optional hook to record the stack, in case of exception\n // since it's otherwise lost when execution goes async\n if (jQuery.Deferred.getStackHook) {\n process.stackTrace = jQuery.Deferred.getStackHook();\n }\n\n window.setTimeout(process);\n }\n };\n }\n\n return jQuery.Deferred(function (newDefer) {\n // progress_handlers.add( ... )\n tuples[0][3].add(resolve(0, newDefer, isFunction(onProgress) ? onProgress : Identity, newDefer.notifyWith)); // fulfilled_handlers.add( ... )\n\n tuples[1][3].add(resolve(0, newDefer, isFunction(onFulfilled) ? onFulfilled : Identity)); // rejected_handlers.add( ... )\n\n tuples[2][3].add(resolve(0, newDefer, isFunction(onRejected) ? onRejected : Thrower));\n }).promise();\n },\n // Get a promise for this deferred\n // If obj is provided, the promise aspect is added to the object\n promise: function (obj) {\n return obj != null ? jQuery.extend(obj, promise) : promise;\n }\n },\n deferred = {}; // Add list-specific methods\n\n jQuery.each(tuples, function (i, tuple) {\n var list = tuple[2],\n stateString = tuple[5]; // promise.progress = list.add\n // promise.done = list.add\n // promise.fail = list.add\n\n promise[tuple[1]] = list.add; // Handle state\n\n if (stateString) {\n list.add(function () {\n // state = \"resolved\" (i.e., fulfilled)\n // state = \"rejected\"\n state = stateString;\n }, // rejected_callbacks.disable\n // fulfilled_callbacks.disable\n tuples[3 - i][2].disable, // rejected_handlers.disable\n // fulfilled_handlers.disable\n tuples[3 - i][3].disable, // progress_callbacks.lock\n tuples[0][2].lock, // progress_handlers.lock\n tuples[0][3].lock);\n } // progress_handlers.fire\n // fulfilled_handlers.fire\n // rejected_handlers.fire\n\n\n list.add(tuple[3].fire); // deferred.notify = function() { deferred.notifyWith(...) }\n // deferred.resolve = function() { deferred.resolveWith(...) }\n // deferred.reject = function() { deferred.rejectWith(...) }\n\n deferred[tuple[0]] = function () {\n deferred[tuple[0] + \"With\"](this === deferred ? undefined : this, arguments);\n return this;\n }; // deferred.notifyWith = list.fireWith\n // deferred.resolveWith = list.fireWith\n // deferred.rejectWith = list.fireWith\n\n\n deferred[tuple[0] + \"With\"] = list.fireWith;\n }); // Make the deferred a promise\n\n promise.promise(deferred); // Call given func if any\n\n if (func) {\n func.call(deferred, deferred);\n } // All done!\n\n\n return deferred;\n },\n // Deferred helper\n when: function (singleValue) {\n var // count of uncompleted subordinates\n remaining = arguments.length,\n // count of unprocessed arguments\n i = remaining,\n // subordinate fulfillment data\n resolveContexts = Array(i),\n resolveValues = slice.call(arguments),\n // the master Deferred\n master = jQuery.Deferred(),\n // subordinate callback factory\n updateFunc = function (i) {\n return function (value) {\n resolveContexts[i] = this;\n resolveValues[i] = arguments.length > 1 ? slice.call(arguments) : value;\n\n if (! --remaining) {\n master.resolveWith(resolveContexts, resolveValues);\n }\n };\n }; // Single- and empty arguments are adopted like Promise.resolve\n\n\n if (remaining <= 1) {\n adoptValue(singleValue, master.done(updateFunc(i)).resolve, master.reject, !remaining); // Use .then() to unwrap secondary thenables (cf. gh-3000)\n\n if (master.state() === \"pending\" || isFunction(resolveValues[i] && resolveValues[i].then)) {\n return master.then();\n }\n } // Multiple arguments are aggregated like Promise.all array elements\n\n\n while (i--) {\n adoptValue(resolveValues[i], updateFunc(i), master.reject);\n }\n\n return master.promise();\n }\n }); // These usually indicate a programmer mistake during development,\n // warn about them ASAP rather than swallowing them by default.\n\n var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\n jQuery.Deferred.exceptionHook = function (error, stack) {\n // Support: IE 8 - 9 only\n // Console exists when dev tools are open, which can happen at any time\n if (window.console && window.console.warn && error && rerrorNames.test(error.name)) {\n window.console.warn(\"jQuery.Deferred exception: \" + error.message, error.stack, stack);\n }\n };\n\n jQuery.readyException = function (error) {\n window.setTimeout(function () {\n throw error;\n });\n }; // The deferred used on DOM ready\n\n\n var readyList = jQuery.Deferred();\n\n jQuery.fn.ready = function (fn) {\n readyList.then(fn) // Wrap jQuery.readyException in a function so that the lookup\n // happens at the time of error handling instead of callback\n // registration.\n .catch(function (error) {\n jQuery.readyException(error);\n });\n return this;\n };\n\n jQuery.extend({\n // Is the DOM ready to be used? Set to true once it occurs.\n isReady: false,\n // A counter to track how many items to wait for before\n // the ready event fires. See #6781\n readyWait: 1,\n // Handle when the DOM is ready\n ready: function (wait) {\n // Abort if there are pending holds or we're already ready\n if (wait === true ? --jQuery.readyWait : jQuery.isReady) {\n return;\n } // Remember that the DOM is ready\n\n\n jQuery.isReady = true; // If a normal DOM Ready event fired, decrement, and wait if need be\n\n if (wait !== true && --jQuery.readyWait > 0) {\n return;\n } // If there are functions bound, to execute\n\n\n readyList.resolveWith(document, [jQuery]);\n }\n });\n jQuery.ready.then = readyList.then; // The ready event handler and self cleanup method\n\n function completed() {\n document.removeEventListener(\"DOMContentLoaded\", completed);\n window.removeEventListener(\"load\", completed);\n jQuery.ready();\n } // Catch cases where $(document).ready() is called\n // after the browser event has already occurred.\n // Support: IE <=9 - 10 only\n // Older IE sometimes signals \"interactive\" too soon\n\n\n if (document.readyState === \"complete\" || document.readyState !== \"loading\" && !document.documentElement.doScroll) {\n // Handle it asynchronously to allow scripts the opportunity to delay ready\n window.setTimeout(jQuery.ready);\n } else {\n // Use the handy event callback\n document.addEventListener(\"DOMContentLoaded\", completed); // A fallback to window.onload, that will always work\n\n window.addEventListener(\"load\", completed);\n } // Multifunctional method to get and set values of a collection\n // The value/s can optionally be executed if it's a function\n\n\n var access = function (elems, fn, key, value, chainable, emptyGet, raw) {\n var i = 0,\n len = elems.length,\n bulk = key == null; // Sets many values\n\n if (toType(key) === \"object\") {\n chainable = true;\n\n for (i in key) {\n access(elems, fn, i, key[i], true, emptyGet, raw);\n } // Sets one value\n\n } else if (value !== undefined) {\n chainable = true;\n\n if (!isFunction(value)) {\n raw = true;\n }\n\n if (bulk) {\n // Bulk operations run against the entire set\n if (raw) {\n fn.call(elems, value);\n fn = null; // ...except when executing function values\n } else {\n bulk = fn;\n\n fn = function (elem, _key, value) {\n return bulk.call(jQuery(elem), value);\n };\n }\n }\n\n if (fn) {\n for (; i < len; i++) {\n fn(elems[i], key, raw ? value : value.call(elems[i], i, fn(elems[i], key)));\n }\n }\n }\n\n if (chainable) {\n return elems;\n } // Gets\n\n\n if (bulk) {\n return fn.call(elems);\n }\n\n return len ? fn(elems[0], key) : emptyGet;\n }; // Matches dashed string for camelizing\n\n\n var rmsPrefix = /^-ms-/,\n rdashAlpha = /-([a-z])/g; // Used by camelCase as callback to replace()\n\n function fcamelCase(_all, letter) {\n return letter.toUpperCase();\n } // Convert dashed to camelCase; used by the css and data modules\n // Support: IE <=9 - 11, Edge 12 - 15\n // Microsoft forgot to hump their vendor prefix (#9572)\n\n\n function camelCase(string) {\n return string.replace(rmsPrefix, \"ms-\").replace(rdashAlpha, fcamelCase);\n }\n\n var acceptData = function (owner) {\n // Accepts only:\n // - Node\n // - Node.ELEMENT_NODE\n // - Node.DOCUMENT_NODE\n // - Object\n // - Any\n return owner.nodeType === 1 || owner.nodeType === 9 || !+owner.nodeType;\n };\n\n function Data() {\n this.expando = jQuery.expando + Data.uid++;\n }\n\n Data.uid = 1;\n Data.prototype = {\n cache: function (owner) {\n // Check if the owner object already has a cache\n var value = owner[this.expando]; // If not, create one\n\n if (!value) {\n value = {}; // We can accept data for non-element nodes in modern browsers,\n // but we should not, see #8335.\n // Always return an empty object.\n\n if (acceptData(owner)) {\n // If it is a node unlikely to be stringify-ed or looped over\n // use plain assignment\n if (owner.nodeType) {\n owner[this.expando] = value; // Otherwise secure it in a non-enumerable property\n // configurable must be true to allow the property to be\n // deleted when data is removed\n } else {\n Object.defineProperty(owner, this.expando, {\n value: value,\n configurable: true\n });\n }\n }\n }\n\n return value;\n },\n set: function (owner, data, value) {\n var prop,\n cache = this.cache(owner); // Handle: [ owner, key, value ] args\n // Always use camelCase key (gh-2257)\n\n if (typeof data === \"string\") {\n cache[camelCase(data)] = value; // Handle: [ owner, { properties } ] args\n } else {\n // Copy the properties one-by-one to the cache object\n for (prop in data) {\n cache[camelCase(prop)] = data[prop];\n }\n }\n\n return cache;\n },\n get: function (owner, key) {\n return key === undefined ? this.cache(owner) : // Always use camelCase key (gh-2257)\n owner[this.expando] && owner[this.expando][camelCase(key)];\n },\n access: function (owner, key, value) {\n // In cases where either:\n //\n // 1. No key was specified\n // 2. A string key was specified, but no value provided\n //\n // Take the \"read\" path and allow the get method to determine\n // which value to return, respectively either:\n //\n // 1. The entire cache object\n // 2. The data stored at the key\n //\n if (key === undefined || key && typeof key === \"string\" && value === undefined) {\n return this.get(owner, key);\n } // When the key is not a string, or both a key and value\n // are specified, set or extend (existing objects) with either:\n //\n // 1. An object of properties\n // 2. A key and value\n //\n\n\n this.set(owner, key, value); // Since the \"set\" path can have two possible entry points\n // return the expected data based on which path was taken[*]\n\n return value !== undefined ? value : key;\n },\n remove: function (owner, key) {\n var i,\n cache = owner[this.expando];\n\n if (cache === undefined) {\n return;\n }\n\n if (key !== undefined) {\n // Support array or space separated string of keys\n if (Array.isArray(key)) {\n // If key is an array of keys...\n // We always set camelCase keys, so remove that.\n key = key.map(camelCase);\n } else {\n key = camelCase(key); // If a key with the spaces exists, use it.\n // Otherwise, create an array by matching non-whitespace\n\n key = key in cache ? [key] : key.match(rnothtmlwhite) || [];\n }\n\n i = key.length;\n\n while (i--) {\n delete cache[key[i]];\n }\n } // Remove the expando if there's no more data\n\n\n if (key === undefined || jQuery.isEmptyObject(cache)) {\n // Support: Chrome <=35 - 45\n // Webkit & Blink performance suffers when deleting properties\n // from DOM nodes, so set to undefined instead\n // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n if (owner.nodeType) {\n owner[this.expando] = undefined;\n } else {\n delete owner[this.expando];\n }\n }\n },\n hasData: function (owner) {\n var cache = owner[this.expando];\n return cache !== undefined && !jQuery.isEmptyObject(cache);\n }\n };\n var dataPriv = new Data();\n var dataUser = new Data(); //\tImplementation Summary\n //\n //\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n //\t2. Improve the module's maintainability by reducing the storage\n //\t\tpaths to a single mechanism.\n //\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n //\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n //\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n //\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\n var rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n rmultiDash = /[A-Z]/g;\n\n function getData(data) {\n if (data === \"true\") {\n return true;\n }\n\n if (data === \"false\") {\n return false;\n }\n\n if (data === \"null\") {\n return null;\n } // Only convert to a number if it doesn't change the string\n\n\n if (data === +data + \"\") {\n return +data;\n }\n\n if (rbrace.test(data)) {\n return JSON.parse(data);\n }\n\n return data;\n }\n\n function dataAttr(elem, key, data) {\n var name; // If nothing was found internally, try to fetch any\n // data from the HTML5 data-* attribute\n\n if (data === undefined && elem.nodeType === 1) {\n name = \"data-\" + key.replace(rmultiDash, \"-$&\").toLowerCase();\n data = elem.getAttribute(name);\n\n if (typeof data === \"string\") {\n try {\n data = getData(data);\n } catch (e) {} // Make sure we set the data so it isn't changed later\n\n\n dataUser.set(elem, key, data);\n } else {\n data = undefined;\n }\n }\n\n return data;\n }\n\n jQuery.extend({\n hasData: function (elem) {\n return dataUser.hasData(elem) || dataPriv.hasData(elem);\n },\n data: function (elem, name, data) {\n return dataUser.access(elem, name, data);\n },\n removeData: function (elem, name) {\n dataUser.remove(elem, name);\n },\n // TODO: Now that all calls to _data and _removeData have been replaced\n // with direct calls to dataPriv methods, these can be deprecated.\n _data: function (elem, name, data) {\n return dataPriv.access(elem, name, data);\n },\n _removeData: function (elem, name) {\n dataPriv.remove(elem, name);\n }\n });\n jQuery.fn.extend({\n data: function (key, value) {\n var i,\n name,\n data,\n elem = this[0],\n attrs = elem && elem.attributes; // Gets all values\n\n if (key === undefined) {\n if (this.length) {\n data = dataUser.get(elem);\n\n if (elem.nodeType === 1 && !dataPriv.get(elem, \"hasDataAttrs\")) {\n i = attrs.length;\n\n while (i--) {\n // Support: IE 11 only\n // The attrs elements can be null (#14894)\n if (attrs[i]) {\n name = attrs[i].name;\n\n if (name.indexOf(\"data-\") === 0) {\n name = camelCase(name.slice(5));\n dataAttr(elem, name, data[name]);\n }\n }\n }\n\n dataPriv.set(elem, \"hasDataAttrs\", true);\n }\n }\n\n return data;\n } // Sets multiple values\n\n\n if (typeof key === \"object\") {\n return this.each(function () {\n dataUser.set(this, key);\n });\n }\n\n return access(this, function (value) {\n var data; // The calling jQuery object (element matches) is not empty\n // (and therefore has an element appears at this[ 0 ]) and the\n // `value` parameter was not undefined. An empty jQuery object\n // will result in `undefined` for elem = this[ 0 ] which will\n // throw an exception if an attempt to read a data cache is made.\n\n if (elem && value === undefined) {\n // Attempt to get data from the cache\n // The key will always be camelCased in Data\n data = dataUser.get(elem, key);\n\n if (data !== undefined) {\n return data;\n } // Attempt to \"discover\" the data in\n // HTML5 custom data-* attrs\n\n\n data = dataAttr(elem, key);\n\n if (data !== undefined) {\n return data;\n } // We tried really hard, but the data doesn't exist.\n\n\n return;\n } // Set the data...\n\n\n this.each(function () {\n // We always store the camelCased key\n dataUser.set(this, key, value);\n });\n }, null, value, arguments.length > 1, null, true);\n },\n removeData: function (key) {\n return this.each(function () {\n dataUser.remove(this, key);\n });\n }\n });\n jQuery.extend({\n queue: function (elem, type, data) {\n var queue;\n\n if (elem) {\n type = (type || \"fx\") + \"queue\";\n queue = dataPriv.get(elem, type); // Speed up dequeue by getting out quickly if this is just a lookup\n\n if (data) {\n if (!queue || Array.isArray(data)) {\n queue = dataPriv.access(elem, type, jQuery.makeArray(data));\n } else {\n queue.push(data);\n }\n }\n\n return queue || [];\n }\n },\n dequeue: function (elem, type) {\n type = type || \"fx\";\n\n var queue = jQuery.queue(elem, type),\n startLength = queue.length,\n fn = queue.shift(),\n hooks = jQuery._queueHooks(elem, type),\n next = function () {\n jQuery.dequeue(elem, type);\n }; // If the fx queue is dequeued, always remove the progress sentinel\n\n\n if (fn === \"inprogress\") {\n fn = queue.shift();\n startLength--;\n }\n\n if (fn) {\n // Add a progress sentinel to prevent the fx queue from being\n // automatically dequeued\n if (type === \"fx\") {\n queue.unshift(\"inprogress\");\n } // Clear up the last queue stop function\n\n\n delete hooks.stop;\n fn.call(elem, next, hooks);\n }\n\n if (!startLength && hooks) {\n hooks.empty.fire();\n }\n },\n // Not public - generate a queueHooks object, or return the current one\n _queueHooks: function (elem, type) {\n var key = type + \"queueHooks\";\n return dataPriv.get(elem, key) || dataPriv.access(elem, key, {\n empty: jQuery.Callbacks(\"once memory\").add(function () {\n dataPriv.remove(elem, [type + \"queue\", key]);\n })\n });\n }\n });\n jQuery.fn.extend({\n queue: function (type, data) {\n var setter = 2;\n\n if (typeof type !== \"string\") {\n data = type;\n type = \"fx\";\n setter--;\n }\n\n if (arguments.length < setter) {\n return jQuery.queue(this[0], type);\n }\n\n return data === undefined ? this : this.each(function () {\n var queue = jQuery.queue(this, type, data); // Ensure a hooks for this queue\n\n jQuery._queueHooks(this, type);\n\n if (type === \"fx\" && queue[0] !== \"inprogress\") {\n jQuery.dequeue(this, type);\n }\n });\n },\n dequeue: function (type) {\n return this.each(function () {\n jQuery.dequeue(this, type);\n });\n },\n clearQueue: function (type) {\n return this.queue(type || \"fx\", []);\n },\n // Get a promise resolved when queues of a certain type\n // are emptied (fx is the type by default)\n promise: function (type, obj) {\n var tmp,\n count = 1,\n defer = jQuery.Deferred(),\n elements = this,\n i = this.length,\n resolve = function () {\n if (! --count) {\n defer.resolveWith(elements, [elements]);\n }\n };\n\n if (typeof type !== \"string\") {\n obj = type;\n type = undefined;\n }\n\n type = type || \"fx\";\n\n while (i--) {\n tmp = dataPriv.get(elements[i], type + \"queueHooks\");\n\n if (tmp && tmp.empty) {\n count++;\n tmp.empty.add(resolve);\n }\n }\n\n resolve();\n return defer.promise(obj);\n }\n });\n var pnum = /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source;\n var rcssNum = new RegExp(\"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\");\n var cssExpand = [\"Top\", \"Right\", \"Bottom\", \"Left\"];\n var documentElement = document.documentElement;\n\n var isAttached = function (elem) {\n return jQuery.contains(elem.ownerDocument, elem);\n },\n composed = {\n composed: true\n }; // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n // Check attachment across shadow DOM boundaries when possible (gh-3504)\n // Support: iOS 10.0-10.2 only\n // Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n // leading to errors. We need to check for `getRootNode`.\n\n\n if (documentElement.getRootNode) {\n isAttached = function (elem) {\n return jQuery.contains(elem.ownerDocument, elem) || elem.getRootNode(composed) === elem.ownerDocument;\n };\n }\n\n var isHiddenWithinTree = function (elem, el) {\n // isHiddenWithinTree might be called from jQuery#filter function;\n // in that case, element will be second argument\n elem = el || elem; // Inline style trumps all\n\n return elem.style.display === \"none\" || elem.style.display === \"\" && // Otherwise, check computed style\n // Support: Firefox <=43 - 45\n // Disconnected elements can have computed display: none, so first confirm that elem is\n // in the document.\n isAttached(elem) && jQuery.css(elem, \"display\") === \"none\";\n };\n\n function adjustCSS(elem, prop, valueParts, tween) {\n var adjusted,\n scale,\n maxIterations = 20,\n currentValue = tween ? function () {\n return tween.cur();\n } : function () {\n return jQuery.css(elem, prop, \"\");\n },\n initial = currentValue(),\n unit = valueParts && valueParts[3] || (jQuery.cssNumber[prop] ? \"\" : \"px\"),\n // Starting value computation is required for potential unit mismatches\n initialInUnit = elem.nodeType && (jQuery.cssNumber[prop] || unit !== \"px\" && +initial) && rcssNum.exec(jQuery.css(elem, prop));\n\n if (initialInUnit && initialInUnit[3] !== unit) {\n // Support: Firefox <=54\n // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n initial = initial / 2; // Trust units reported by jQuery.css\n\n unit = unit || initialInUnit[3]; // Iteratively approximate from a nonzero starting point\n\n initialInUnit = +initial || 1;\n\n while (maxIterations--) {\n // Evaluate and update our best guess (doubling guesses that zero out).\n // Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n jQuery.style(elem, prop, initialInUnit + unit);\n\n if ((1 - scale) * (1 - (scale = currentValue() / initial || 0.5)) <= 0) {\n maxIterations = 0;\n }\n\n initialInUnit = initialInUnit / scale;\n }\n\n initialInUnit = initialInUnit * 2;\n jQuery.style(elem, prop, initialInUnit + unit); // Make sure we update the tween properties later on\n\n valueParts = valueParts || [];\n }\n\n if (valueParts) {\n initialInUnit = +initialInUnit || +initial || 0; // Apply relative offset (+=/-=) if specified\n\n adjusted = valueParts[1] ? initialInUnit + (valueParts[1] + 1) * valueParts[2] : +valueParts[2];\n\n if (tween) {\n tween.unit = unit;\n tween.start = initialInUnit;\n tween.end = adjusted;\n }\n }\n\n return adjusted;\n }\n\n var defaultDisplayMap = {};\n\n function getDefaultDisplay(elem) {\n var temp,\n doc = elem.ownerDocument,\n nodeName = elem.nodeName,\n display = defaultDisplayMap[nodeName];\n\n if (display) {\n return display;\n }\n\n temp = doc.body.appendChild(doc.createElement(nodeName));\n display = jQuery.css(temp, \"display\");\n temp.parentNode.removeChild(temp);\n\n if (display === \"none\") {\n display = \"block\";\n }\n\n defaultDisplayMap[nodeName] = display;\n return display;\n }\n\n function showHide(elements, show) {\n var display,\n elem,\n values = [],\n index = 0,\n length = elements.length; // Determine new display value for elements that need to change\n\n for (; index < length; index++) {\n elem = elements[index];\n\n if (!elem.style) {\n continue;\n }\n\n display = elem.style.display;\n\n if (show) {\n // Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n // check is required in this first loop unless we have a nonempty display value (either\n // inline or about-to-be-restored)\n if (display === \"none\") {\n values[index] = dataPriv.get(elem, \"display\") || null;\n\n if (!values[index]) {\n elem.style.display = \"\";\n }\n }\n\n if (elem.style.display === \"\" && isHiddenWithinTree(elem)) {\n values[index] = getDefaultDisplay(elem);\n }\n } else {\n if (display !== \"none\") {\n values[index] = \"none\"; // Remember what we're overwriting\n\n dataPriv.set(elem, \"display\", display);\n }\n }\n } // Set the display of the elements in a second loop to avoid constant reflow\n\n\n for (index = 0; index < length; index++) {\n if (values[index] != null) {\n elements[index].style.display = values[index];\n }\n }\n\n return elements;\n }\n\n jQuery.fn.extend({\n show: function () {\n return showHide(this, true);\n },\n hide: function () {\n return showHide(this);\n },\n toggle: function (state) {\n if (typeof state === \"boolean\") {\n return state ? this.show() : this.hide();\n }\n\n return this.each(function () {\n if (isHiddenWithinTree(this)) {\n jQuery(this).show();\n } else {\n jQuery(this).hide();\n }\n });\n }\n });\n var rcheckableType = /^(?:checkbox|radio)$/i;\n var rtagName = /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i;\n var rscriptType = /^$|^module$|\\/(?:java|ecma)script/i;\n\n (function () {\n var fragment = document.createDocumentFragment(),\n div = fragment.appendChild(document.createElement(\"div\")),\n input = document.createElement(\"input\"); // Support: Android 4.0 - 4.3 only\n // Check state lost if the name is set (#11217)\n // Support: Windows Web Apps (WWA)\n // `name` and `type` must use .setAttribute for WWA (#14901)\n\n input.setAttribute(\"type\", \"radio\");\n input.setAttribute(\"checked\", \"checked\");\n input.setAttribute(\"name\", \"t\");\n div.appendChild(input); // Support: Android <=4.1 only\n // Older WebKit doesn't clone checked state correctly in fragments\n\n support.checkClone = div.cloneNode(true).cloneNode(true).lastChild.checked; // Support: IE <=11 only\n // Make sure textarea (and checkbox) defaultValue is properly cloned\n\n div.innerHTML = \"\";\n support.noCloneChecked = !!div.cloneNode(true).lastChild.defaultValue; // Support: IE <=9 only\n // IE <=9 replaces \";\n support.option = !!div.lastChild;\n })(); // We have to close these tags to support XHTML (#13200)\n\n\n var wrapMap = {\n // XHTML parsers do not magically insert elements in the\n // same way that tag soup parsers do. So we cannot shorten\n // this by omitting or other required elements.\n thead: [1, \"\", \"
\"],\n col: [2, \"\", \"
\"],\n tr: [2, \"\", \"
\"],\n td: [3, \"\", \"
\"],\n _default: [0, \"\", \"\"]\n };\n wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\n wrapMap.th = wrapMap.td; // Support: IE <=9 only\n\n if (!support.option) {\n wrapMap.optgroup = wrapMap.option = [1, \"\"];\n }\n\n function getAll(context, tag) {\n // Support: IE <=9 - 11 only\n // Use typeof to avoid zero-argument method invocation on host objects (#15151)\n var ret;\n\n if (typeof context.getElementsByTagName !== \"undefined\") {\n ret = context.getElementsByTagName(tag || \"*\");\n } else if (typeof context.querySelectorAll !== \"undefined\") {\n ret = context.querySelectorAll(tag || \"*\");\n } else {\n ret = [];\n }\n\n if (tag === undefined || tag && nodeName(context, tag)) {\n return jQuery.merge([context], ret);\n }\n\n return ret;\n } // Mark scripts as having already been evaluated\n\n\n function setGlobalEval(elems, refElements) {\n var i = 0,\n l = elems.length;\n\n for (; i < l; i++) {\n dataPriv.set(elems[i], \"globalEval\", !refElements || dataPriv.get(refElements[i], \"globalEval\"));\n }\n }\n\n var rhtml = /<|&#?\\w+;/;\n\n function buildFragment(elems, context, scripts, selection, ignored) {\n var elem,\n tmp,\n tag,\n wrap,\n attached,\n j,\n fragment = context.createDocumentFragment(),\n nodes = [],\n i = 0,\n l = elems.length;\n\n for (; i < l; i++) {\n elem = elems[i];\n\n if (elem || elem === 0) {\n // Add nodes directly\n if (toType(elem) === \"object\") {\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(nodes, elem.nodeType ? [elem] : elem); // Convert non-html into a text node\n } else if (!rhtml.test(elem)) {\n nodes.push(context.createTextNode(elem)); // Convert html into DOM nodes\n } else {\n tmp = tmp || fragment.appendChild(context.createElement(\"div\")); // Deserialize a standard representation\n\n tag = (rtagName.exec(elem) || [\"\", \"\"])[1].toLowerCase();\n wrap = wrapMap[tag] || wrapMap._default;\n tmp.innerHTML = wrap[1] + jQuery.htmlPrefilter(elem) + wrap[2]; // Descend through wrappers to the right content\n\n j = wrap[0];\n\n while (j--) {\n tmp = tmp.lastChild;\n } // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n\n\n jQuery.merge(nodes, tmp.childNodes); // Remember the top-level container\n\n tmp = fragment.firstChild; // Ensure the created nodes are orphaned (#12392)\n\n tmp.textContent = \"\";\n }\n }\n } // Remove wrapper from fragment\n\n\n fragment.textContent = \"\";\n i = 0;\n\n while (elem = nodes[i++]) {\n // Skip elements already in the context collection (trac-4087)\n if (selection && jQuery.inArray(elem, selection) > -1) {\n if (ignored) {\n ignored.push(elem);\n }\n\n continue;\n }\n\n attached = isAttached(elem); // Append to fragment\n\n tmp = getAll(fragment.appendChild(elem), \"script\"); // Preserve script evaluation history\n\n if (attached) {\n setGlobalEval(tmp);\n } // Capture executables\n\n\n if (scripts) {\n j = 0;\n\n while (elem = tmp[j++]) {\n if (rscriptType.test(elem.type || \"\")) {\n scripts.push(elem);\n }\n }\n }\n }\n\n return fragment;\n }\n\n var rkeyEvent = /^key/,\n rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,\n rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\n function returnTrue() {\n return true;\n }\n\n function returnFalse() {\n return false;\n } // Support: IE <=9 - 11+\n // focus() and blur() are asynchronous, except when they are no-op.\n // So expect focus to be synchronous when the element is already active,\n // and blur to be synchronous when the element is not already active.\n // (focus and blur are always synchronous in other supported browsers,\n // this just defines when we can count on it).\n\n\n function expectSync(elem, type) {\n return elem === safeActiveElement() === (type === \"focus\");\n } // Support: IE <=9 only\n // Accessing document.activeElement can throw unexpectedly\n // https://bugs.jquery.com/ticket/13393\n\n\n function safeActiveElement() {\n try {\n return document.activeElement;\n } catch (err) {}\n }\n\n function on(elem, types, selector, data, fn, one) {\n var origFn, type; // Types can be a map of types/handlers\n\n if (typeof types === \"object\") {\n // ( types-Object, selector, data )\n if (typeof selector !== \"string\") {\n // ( types-Object, data )\n data = data || selector;\n selector = undefined;\n }\n\n for (type in types) {\n on(elem, type, selector, data, types[type], one);\n }\n\n return elem;\n }\n\n if (data == null && fn == null) {\n // ( types, fn )\n fn = selector;\n data = selector = undefined;\n } else if (fn == null) {\n if (typeof selector === \"string\") {\n // ( types, selector, fn )\n fn = data;\n data = undefined;\n } else {\n // ( types, data, fn )\n fn = data;\n data = selector;\n selector = undefined;\n }\n }\n\n if (fn === false) {\n fn = returnFalse;\n } else if (!fn) {\n return elem;\n }\n\n if (one === 1) {\n origFn = fn;\n\n fn = function (event) {\n // Can use an empty set, since event contains the info\n jQuery().off(event);\n return origFn.apply(this, arguments);\n }; // Use same guid so caller can remove using origFn\n\n\n fn.guid = origFn.guid || (origFn.guid = jQuery.guid++);\n }\n\n return elem.each(function () {\n jQuery.event.add(this, types, fn, data, selector);\n });\n }\n /*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\n\n\n jQuery.event = {\n global: {},\n add: function (elem, types, handler, data, selector) {\n var handleObjIn,\n eventHandle,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.get(elem); // Only attach events to objects that accept data\n\n if (!acceptData(elem)) {\n return;\n } // Caller can pass in an object of custom data in lieu of the handler\n\n\n if (handler.handler) {\n handleObjIn = handler;\n handler = handleObjIn.handler;\n selector = handleObjIn.selector;\n } // Ensure that invalid selectors throw exceptions at attach time\n // Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\n\n if (selector) {\n jQuery.find.matchesSelector(documentElement, selector);\n } // Make sure that the handler has a unique ID, used to find/remove it later\n\n\n if (!handler.guid) {\n handler.guid = jQuery.guid++;\n } // Init the element's event structure and main handler, if this is the first\n\n\n if (!(events = elemData.events)) {\n events = elemData.events = Object.create(null);\n }\n\n if (!(eventHandle = elemData.handle)) {\n eventHandle = elemData.handle = function (e) {\n // Discard the second event of a jQuery.event.trigger() and\n // when an event is called after a page has unloaded\n return typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ? jQuery.event.dispatch.apply(elem, arguments) : undefined;\n };\n } // Handle multiple events separated by a space\n\n\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort(); // There *must* be a type, no attaching namespace-only handlers\n\n if (!type) {\n continue;\n } // If event changes its type, use the special event handlers for the changed type\n\n\n special = jQuery.event.special[type] || {}; // If selector defined, determine special event api type, otherwise given type\n\n type = (selector ? special.delegateType : special.bindType) || type; // Update special based on newly reset type\n\n special = jQuery.event.special[type] || {}; // handleObj is passed to all event handlers\n\n handleObj = jQuery.extend({\n type: type,\n origType: origType,\n data: data,\n handler: handler,\n guid: handler.guid,\n selector: selector,\n needsContext: selector && jQuery.expr.match.needsContext.test(selector),\n namespace: namespaces.join(\".\")\n }, handleObjIn); // Init the event handler queue if we're the first\n\n if (!(handlers = events[type])) {\n handlers = events[type] = [];\n handlers.delegateCount = 0; // Only use addEventListener if the special events handler returns false\n\n if (!special.setup || special.setup.call(elem, data, namespaces, eventHandle) === false) {\n if (elem.addEventListener) {\n elem.addEventListener(type, eventHandle);\n }\n }\n }\n\n if (special.add) {\n special.add.call(elem, handleObj);\n\n if (!handleObj.handler.guid) {\n handleObj.handler.guid = handler.guid;\n }\n } // Add to the element's handler list, delegates in front\n\n\n if (selector) {\n handlers.splice(handlers.delegateCount++, 0, handleObj);\n } else {\n handlers.push(handleObj);\n } // Keep track of which events have ever been used, for event optimization\n\n\n jQuery.event.global[type] = true;\n }\n },\n // Detach an event or set of events from an element\n remove: function (elem, types, handler, selector, mappedTypes) {\n var j,\n origCount,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.hasData(elem) && dataPriv.get(elem);\n\n if (!elemData || !(events = elemData.events)) {\n return;\n } // Once for each type.namespace in types; type may be omitted\n\n\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort(); // Unbind all events (on this namespace, if provided) for the element\n\n if (!type) {\n for (type in events) {\n jQuery.event.remove(elem, type + types[t], handler, selector, true);\n }\n\n continue;\n }\n\n special = jQuery.event.special[type] || {};\n type = (selector ? special.delegateType : special.bindType) || type;\n handlers = events[type] || [];\n tmp = tmp[2] && new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\"); // Remove matching events\n\n origCount = j = handlers.length;\n\n while (j--) {\n handleObj = handlers[j];\n\n if ((mappedTypes || origType === handleObj.origType) && (!handler || handler.guid === handleObj.guid) && (!tmp || tmp.test(handleObj.namespace)) && (!selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector)) {\n handlers.splice(j, 1);\n\n if (handleObj.selector) {\n handlers.delegateCount--;\n }\n\n if (special.remove) {\n special.remove.call(elem, handleObj);\n }\n }\n } // Remove generic event handler if we removed something and no more handlers exist\n // (avoids potential for endless recursion during removal of special event handlers)\n\n\n if (origCount && !handlers.length) {\n if (!special.teardown || special.teardown.call(elem, namespaces, elemData.handle) === false) {\n jQuery.removeEvent(elem, type, elemData.handle);\n }\n\n delete events[type];\n }\n } // Remove data and the expando if it's no longer used\n\n\n if (jQuery.isEmptyObject(events)) {\n dataPriv.remove(elem, \"handle events\");\n }\n },\n dispatch: function (nativeEvent) {\n var i,\n j,\n ret,\n matched,\n handleObj,\n handlerQueue,\n args = new Array(arguments.length),\n // Make a writable jQuery.Event from the native event object\n event = jQuery.event.fix(nativeEvent),\n handlers = (dataPriv.get(this, \"events\") || Object.create(null))[event.type] || [],\n special = jQuery.event.special[event.type] || {}; // Use the fix-ed jQuery.Event rather than the (read-only) native event\n\n args[0] = event;\n\n for (i = 1; i < arguments.length; i++) {\n args[i] = arguments[i];\n }\n\n event.delegateTarget = this; // Call the preDispatch hook for the mapped type, and let it bail if desired\n\n if (special.preDispatch && special.preDispatch.call(this, event) === false) {\n return;\n } // Determine handlers\n\n\n handlerQueue = jQuery.event.handlers.call(this, event, handlers); // Run delegates first; they may want to stop propagation beneath us\n\n i = 0;\n\n while ((matched = handlerQueue[i++]) && !event.isPropagationStopped()) {\n event.currentTarget = matched.elem;\n j = 0;\n\n while ((handleObj = matched.handlers[j++]) && !event.isImmediatePropagationStopped()) {\n // If the event is namespaced, then each handler is only invoked if it is\n // specially universal or its namespaces are a superset of the event's.\n if (!event.rnamespace || handleObj.namespace === false || event.rnamespace.test(handleObj.namespace)) {\n event.handleObj = handleObj;\n event.data = handleObj.data;\n ret = ((jQuery.event.special[handleObj.origType] || {}).handle || handleObj.handler).apply(matched.elem, args);\n\n if (ret !== undefined) {\n if ((event.result = ret) === false) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n }\n } // Call the postDispatch hook for the mapped type\n\n\n if (special.postDispatch) {\n special.postDispatch.call(this, event);\n }\n\n return event.result;\n },\n handlers: function (event, handlers) {\n var i,\n handleObj,\n sel,\n matchedHandlers,\n matchedSelectors,\n handlerQueue = [],\n delegateCount = handlers.delegateCount,\n cur = event.target; // Find delegate handlers\n\n if (delegateCount && // Support: IE <=9\n // Black-hole SVG instance trees (trac-13180)\n cur.nodeType && // Support: Firefox <=42\n // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n // Support: IE 11 only\n // ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n !(event.type === \"click\" && event.button >= 1)) {\n for (; cur !== this; cur = cur.parentNode || this) {\n // Don't check non-elements (#13208)\n // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n if (cur.nodeType === 1 && !(event.type === \"click\" && cur.disabled === true)) {\n matchedHandlers = [];\n matchedSelectors = {};\n\n for (i = 0; i < delegateCount; i++) {\n handleObj = handlers[i]; // Don't conflict with Object.prototype properties (#13203)\n\n sel = handleObj.selector + \" \";\n\n if (matchedSelectors[sel] === undefined) {\n matchedSelectors[sel] = handleObj.needsContext ? jQuery(sel, this).index(cur) > -1 : jQuery.find(sel, this, null, [cur]).length;\n }\n\n if (matchedSelectors[sel]) {\n matchedHandlers.push(handleObj);\n }\n }\n\n if (matchedHandlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: matchedHandlers\n });\n }\n }\n }\n } // Add the remaining (directly-bound) handlers\n\n\n cur = this;\n\n if (delegateCount < handlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: handlers.slice(delegateCount)\n });\n }\n\n return handlerQueue;\n },\n addProp: function (name, hook) {\n Object.defineProperty(jQuery.Event.prototype, name, {\n enumerable: true,\n configurable: true,\n get: isFunction(hook) ? function () {\n if (this.originalEvent) {\n return hook(this.originalEvent);\n }\n } : function () {\n if (this.originalEvent) {\n return this.originalEvent[name];\n }\n },\n set: function (value) {\n Object.defineProperty(this, name, {\n enumerable: true,\n configurable: true,\n writable: true,\n value: value\n });\n }\n });\n },\n fix: function (originalEvent) {\n return originalEvent[jQuery.expando] ? originalEvent : new jQuery.Event(originalEvent);\n },\n special: {\n load: {\n // Prevent triggered image.load events from bubbling to window.load\n noBubble: true\n },\n click: {\n // Utilize native event to ensure correct state for checkable inputs\n setup: function (data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data; // Claim the first handler\n\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n // dataPriv.set( el, \"click\", ... )\n leverageNative(el, \"click\", returnTrue);\n } // Return false to allow normal processing in the caller\n\n\n return false;\n },\n trigger: function (data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data; // Force setup before triggering a click\n\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n leverageNative(el, \"click\");\n } // Return non-false to allow normal event-path propagation\n\n\n return true;\n },\n // For cross-browser consistency, suppress native .click() on links\n // Also prevent it if we're currently inside a leveraged native-event stack\n _default: function (event) {\n var target = event.target;\n return rcheckableType.test(target.type) && target.click && nodeName(target, \"input\") && dataPriv.get(target, \"click\") || nodeName(target, \"a\");\n }\n },\n beforeunload: {\n postDispatch: function (event) {\n // Support: Firefox 20+\n // Firefox doesn't alert if the returnValue field is not set.\n if (event.result !== undefined && event.originalEvent) {\n event.originalEvent.returnValue = event.result;\n }\n }\n }\n }\n }; // Ensure the presence of an event listener that handles manually-triggered\n // synthetic events by interrupting progress until reinvoked in response to\n // *native* events that it fires directly, ensuring that state changes have\n // already occurred before other listeners are invoked.\n\n function leverageNative(el, type, expectSync) {\n // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n if (!expectSync) {\n if (dataPriv.get(el, type) === undefined) {\n jQuery.event.add(el, type, returnTrue);\n }\n\n return;\n } // Register the controller as a special universal handler for all event namespaces\n\n\n dataPriv.set(el, type, false);\n jQuery.event.add(el, type, {\n namespace: false,\n handler: function (event) {\n var notAsync,\n result,\n saved = dataPriv.get(this, type);\n\n if (event.isTrigger & 1 && this[type]) {\n // Interrupt processing of the outer synthetic .trigger()ed event\n // Saved data should be false in such cases, but might be a leftover capture object\n // from an async native handler (gh-4350)\n if (!saved.length) {\n // Store arguments for use when handling the inner native event\n // There will always be at least one argument (an event object), so this array\n // will not be confused with a leftover capture object.\n saved = slice.call(arguments);\n dataPriv.set(this, type, saved); // Trigger the native event and capture its result\n // Support: IE <=9 - 11+\n // focus() and blur() are asynchronous\n\n notAsync = expectSync(this, type);\n this[type]();\n result = dataPriv.get(this, type);\n\n if (saved !== result || notAsync) {\n dataPriv.set(this, type, false);\n } else {\n result = {};\n }\n\n if (saved !== result) {\n // Cancel the outer synthetic event\n event.stopImmediatePropagation();\n event.preventDefault();\n return result.value;\n } // If this is an inner synthetic event for an event with a bubbling surrogate\n // (focus or blur), assume that the surrogate already propagated from triggering the\n // native event and prevent that from happening again here.\n // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n // bubbling surrogate propagates *after* the non-bubbling base), but that seems\n // less bad than duplication.\n\n } else if ((jQuery.event.special[type] || {}).delegateType) {\n event.stopPropagation();\n } // If this is a native event triggered above, everything is now in order\n // Fire an inner synthetic event with the original arguments\n\n } else if (saved.length) {\n // ...and capture the result\n dataPriv.set(this, type, {\n value: jQuery.event.trigger( // Support: IE <=9 - 11+\n // Extend with the prototype to reset the above stopImmediatePropagation()\n jQuery.extend(saved[0], jQuery.Event.prototype), saved.slice(1), this)\n }); // Abort handling of the native event\n\n event.stopImmediatePropagation();\n }\n }\n });\n }\n\n jQuery.removeEvent = function (elem, type, handle) {\n // This \"if\" is needed for plain objects\n if (elem.removeEventListener) {\n elem.removeEventListener(type, handle);\n }\n };\n\n jQuery.Event = function (src, props) {\n // Allow instantiation without the 'new' keyword\n if (!(this instanceof jQuery.Event)) {\n return new jQuery.Event(src, props);\n } // Event object\n\n\n if (src && src.type) {\n this.originalEvent = src;\n this.type = src.type; // Events bubbling up the document may have been marked as prevented\n // by a handler lower down the tree; reflect the correct value.\n\n this.isDefaultPrevented = src.defaultPrevented || src.defaultPrevented === undefined && // Support: Android <=2.3 only\n src.returnValue === false ? returnTrue : returnFalse; // Create target properties\n // Support: Safari <=6 - 7 only\n // Target should not be a text node (#504, #13143)\n\n this.target = src.target && src.target.nodeType === 3 ? src.target.parentNode : src.target;\n this.currentTarget = src.currentTarget;\n this.relatedTarget = src.relatedTarget; // Event type\n } else {\n this.type = src;\n } // Put explicitly provided properties onto the event object\n\n\n if (props) {\n jQuery.extend(this, props);\n } // Create a timestamp if incoming event doesn't have one\n\n\n this.timeStamp = src && src.timeStamp || Date.now(); // Mark it as fixed\n\n this[jQuery.expando] = true;\n }; // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n // https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\n\n\n jQuery.Event.prototype = {\n constructor: jQuery.Event,\n isDefaultPrevented: returnFalse,\n isPropagationStopped: returnFalse,\n isImmediatePropagationStopped: returnFalse,\n isSimulated: false,\n preventDefault: function () {\n var e = this.originalEvent;\n this.isDefaultPrevented = returnTrue;\n\n if (e && !this.isSimulated) {\n e.preventDefault();\n }\n },\n stopPropagation: function () {\n var e = this.originalEvent;\n this.isPropagationStopped = returnTrue;\n\n if (e && !this.isSimulated) {\n e.stopPropagation();\n }\n },\n stopImmediatePropagation: function () {\n var e = this.originalEvent;\n this.isImmediatePropagationStopped = returnTrue;\n\n if (e && !this.isSimulated) {\n e.stopImmediatePropagation();\n }\n\n this.stopPropagation();\n }\n }; // Includes all common event props including KeyEvent and MouseEvent specific props\n\n jQuery.each({\n altKey: true,\n bubbles: true,\n cancelable: true,\n changedTouches: true,\n ctrlKey: true,\n detail: true,\n eventPhase: true,\n metaKey: true,\n pageX: true,\n pageY: true,\n shiftKey: true,\n view: true,\n \"char\": true,\n code: true,\n charCode: true,\n key: true,\n keyCode: true,\n button: true,\n buttons: true,\n clientX: true,\n clientY: true,\n offsetX: true,\n offsetY: true,\n pointerId: true,\n pointerType: true,\n screenX: true,\n screenY: true,\n targetTouches: true,\n toElement: true,\n touches: true,\n which: function (event) {\n var button = event.button; // Add which for key events\n\n if (event.which == null && rkeyEvent.test(event.type)) {\n return event.charCode != null ? event.charCode : event.keyCode;\n } // Add which for click: 1 === left; 2 === middle; 3 === right\n\n\n if (!event.which && button !== undefined && rmouseEvent.test(event.type)) {\n if (button & 1) {\n return 1;\n }\n\n if (button & 2) {\n return 3;\n }\n\n if (button & 4) {\n return 2;\n }\n\n return 0;\n }\n\n return event.which;\n }\n }, jQuery.event.addProp);\n jQuery.each({\n focus: \"focusin\",\n blur: \"focusout\"\n }, function (type, delegateType) {\n jQuery.event.special[type] = {\n // Utilize native event if possible so blur/focus sequence is correct\n setup: function () {\n // Claim the first handler\n // dataPriv.set( this, \"focus\", ... )\n // dataPriv.set( this, \"blur\", ... )\n leverageNative(this, type, expectSync); // Return false to allow normal processing in the caller\n\n return false;\n },\n trigger: function () {\n // Force setup before trigger\n leverageNative(this, type); // Return non-false to allow normal event-path propagation\n\n return true;\n },\n delegateType: delegateType\n };\n }); // Create mouseenter/leave events using mouseover/out and event-time checks\n // so that event delegation works in jQuery.\n // Do the same for pointerenter/pointerleave and pointerover/pointerout\n //\n // Support: Safari 7 only\n // Safari sends mouseenter too often; see:\n // https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n // for the description of the bug (it existed in older Chrome versions as well).\n\n jQuery.each({\n mouseenter: \"mouseover\",\n mouseleave: \"mouseout\",\n pointerenter: \"pointerover\",\n pointerleave: \"pointerout\"\n }, function (orig, fix) {\n jQuery.event.special[orig] = {\n delegateType: fix,\n bindType: fix,\n handle: function (event) {\n var ret,\n target = this,\n related = event.relatedTarget,\n handleObj = event.handleObj; // For mouseenter/leave call the handler if related is outside the target.\n // NB: No relatedTarget if the mouse left/entered the browser window\n\n if (!related || related !== target && !jQuery.contains(target, related)) {\n event.type = handleObj.origType;\n ret = handleObj.handler.apply(this, arguments);\n event.type = fix;\n }\n\n return ret;\n }\n };\n });\n jQuery.fn.extend({\n on: function (types, selector, data, fn) {\n return on(this, types, selector, data, fn);\n },\n one: function (types, selector, data, fn) {\n return on(this, types, selector, data, fn, 1);\n },\n off: function (types, selector, fn) {\n var handleObj, type;\n\n if (types && types.preventDefault && types.handleObj) {\n // ( event ) dispatched jQuery.Event\n handleObj = types.handleObj;\n jQuery(types.delegateTarget).off(handleObj.namespace ? handleObj.origType + \".\" + handleObj.namespace : handleObj.origType, handleObj.selector, handleObj.handler);\n return this;\n }\n\n if (typeof types === \"object\") {\n // ( types-object [, selector] )\n for (type in types) {\n this.off(type, selector, types[type]);\n }\n\n return this;\n }\n\n if (selector === false || typeof selector === \"function\") {\n // ( types [, fn] )\n fn = selector;\n selector = undefined;\n }\n\n if (fn === false) {\n fn = returnFalse;\n }\n\n return this.each(function () {\n jQuery.event.remove(this, types, fn, selector);\n });\n }\n });\n var // Support: IE <=10 - 11, Edge 12 - 13 only\n // In IE/Edge using regex groups here causes severe slowdowns.\n // See https://connect.microsoft.com/IE/feedback/details/1736512/\n rnoInnerhtml = /\\s*$/g; // Prefer a tbody over its parent table for containing new rows\n\n function manipulationTarget(elem, content) {\n if (nodeName(elem, \"table\") && nodeName(content.nodeType !== 11 ? content : content.firstChild, \"tr\")) {\n return jQuery(elem).children(\"tbody\")[0] || elem;\n }\n\n return elem;\n } // Replace/restore the type attribute of script elements for safe DOM manipulation\n\n\n function disableScript(elem) {\n elem.type = (elem.getAttribute(\"type\") !== null) + \"/\" + elem.type;\n return elem;\n }\n\n function restoreScript(elem) {\n if ((elem.type || \"\").slice(0, 5) === \"true/\") {\n elem.type = elem.type.slice(5);\n } else {\n elem.removeAttribute(\"type\");\n }\n\n return elem;\n }\n\n function cloneCopyEvent(src, dest) {\n var i, l, type, pdataOld, udataOld, udataCur, events;\n\n if (dest.nodeType !== 1) {\n return;\n } // 1. Copy private data: events, handlers, etc.\n\n\n if (dataPriv.hasData(src)) {\n pdataOld = dataPriv.get(src);\n events = pdataOld.events;\n\n if (events) {\n dataPriv.remove(dest, \"handle events\");\n\n for (type in events) {\n for (i = 0, l = events[type].length; i < l; i++) {\n jQuery.event.add(dest, type, events[type][i]);\n }\n }\n }\n } // 2. Copy user data\n\n\n if (dataUser.hasData(src)) {\n udataOld = dataUser.access(src);\n udataCur = jQuery.extend({}, udataOld);\n dataUser.set(dest, udataCur);\n }\n } // Fix IE bugs, see support tests\n\n\n function fixInput(src, dest) {\n var nodeName = dest.nodeName.toLowerCase(); // Fails to persist the checked state of a cloned checkbox or radio button.\n\n if (nodeName === \"input\" && rcheckableType.test(src.type)) {\n dest.checked = src.checked; // Fails to return the selected option to the default selected state when cloning options\n } else if (nodeName === \"input\" || nodeName === \"textarea\") {\n dest.defaultValue = src.defaultValue;\n }\n }\n\n function domManip(collection, args, callback, ignored) {\n // Flatten any nested arrays\n args = flat(args);\n var fragment,\n first,\n scripts,\n hasScripts,\n node,\n doc,\n i = 0,\n l = collection.length,\n iNoClone = l - 1,\n value = args[0],\n valueIsFunction = isFunction(value); // We can't cloneNode fragments that contain checked, in WebKit\n\n if (valueIsFunction || l > 1 && typeof value === \"string\" && !support.checkClone && rchecked.test(value)) {\n return collection.each(function (index) {\n var self = collection.eq(index);\n\n if (valueIsFunction) {\n args[0] = value.call(this, index, self.html());\n }\n\n domManip(self, args, callback, ignored);\n });\n }\n\n if (l) {\n fragment = buildFragment(args, collection[0].ownerDocument, false, collection, ignored);\n first = fragment.firstChild;\n\n if (fragment.childNodes.length === 1) {\n fragment = first;\n } // Require either new content or an interest in ignored elements to invoke the callback\n\n\n if (first || ignored) {\n scripts = jQuery.map(getAll(fragment, \"script\"), disableScript);\n hasScripts = scripts.length; // Use the original fragment for the last item\n // instead of the first because it can end up\n // being emptied incorrectly in certain situations (#8070).\n\n for (; i < l; i++) {\n node = fragment;\n\n if (i !== iNoClone) {\n node = jQuery.clone(node, true, true); // Keep references to cloned scripts for later restoration\n\n if (hasScripts) {\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(scripts, getAll(node, \"script\"));\n }\n }\n\n callback.call(collection[i], node, i);\n }\n\n if (hasScripts) {\n doc = scripts[scripts.length - 1].ownerDocument; // Reenable scripts\n\n jQuery.map(scripts, restoreScript); // Evaluate executable scripts on first document insertion\n\n for (i = 0; i < hasScripts; i++) {\n node = scripts[i];\n\n if (rscriptType.test(node.type || \"\") && !dataPriv.access(node, \"globalEval\") && jQuery.contains(doc, node)) {\n if (node.src && (node.type || \"\").toLowerCase() !== \"module\") {\n // Optional AJAX dependency, but won't run scripts if not present\n if (jQuery._evalUrl && !node.noModule) {\n jQuery._evalUrl(node.src, {\n nonce: node.nonce || node.getAttribute(\"nonce\")\n }, doc);\n }\n } else {\n DOMEval(node.textContent.replace(rcleanScript, \"\"), node, doc);\n }\n }\n }\n }\n }\n }\n\n return collection;\n }\n\n function remove(elem, selector, keepData) {\n var node,\n nodes = selector ? jQuery.filter(selector, elem) : elem,\n i = 0;\n\n for (; (node = nodes[i]) != null; i++) {\n if (!keepData && node.nodeType === 1) {\n jQuery.cleanData(getAll(node));\n }\n\n if (node.parentNode) {\n if (keepData && isAttached(node)) {\n setGlobalEval(getAll(node, \"script\"));\n }\n\n node.parentNode.removeChild(node);\n }\n }\n\n return elem;\n }\n\n jQuery.extend({\n htmlPrefilter: function (html) {\n return html;\n },\n clone: function (elem, dataAndEvents, deepDataAndEvents) {\n var i,\n l,\n srcElements,\n destElements,\n clone = elem.cloneNode(true),\n inPage = isAttached(elem); // Fix IE cloning issues\n\n if (!support.noCloneChecked && (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem)) {\n // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n destElements = getAll(clone);\n srcElements = getAll(elem);\n\n for (i = 0, l = srcElements.length; i < l; i++) {\n fixInput(srcElements[i], destElements[i]);\n }\n } // Copy the events from the original to the clone\n\n\n if (dataAndEvents) {\n if (deepDataAndEvents) {\n srcElements = srcElements || getAll(elem);\n destElements = destElements || getAll(clone);\n\n for (i = 0, l = srcElements.length; i < l; i++) {\n cloneCopyEvent(srcElements[i], destElements[i]);\n }\n } else {\n cloneCopyEvent(elem, clone);\n }\n } // Preserve script evaluation history\n\n\n destElements = getAll(clone, \"script\");\n\n if (destElements.length > 0) {\n setGlobalEval(destElements, !inPage && getAll(elem, \"script\"));\n } // Return the cloned set\n\n\n return clone;\n },\n cleanData: function (elems) {\n var data,\n elem,\n type,\n special = jQuery.event.special,\n i = 0;\n\n for (; (elem = elems[i]) !== undefined; i++) {\n if (acceptData(elem)) {\n if (data = elem[dataPriv.expando]) {\n if (data.events) {\n for (type in data.events) {\n if (special[type]) {\n jQuery.event.remove(elem, type); // This is a shortcut to avoid jQuery.event.remove's overhead\n } else {\n jQuery.removeEvent(elem, type, data.handle);\n }\n }\n } // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n\n\n elem[dataPriv.expando] = undefined;\n }\n\n if (elem[dataUser.expando]) {\n // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n elem[dataUser.expando] = undefined;\n }\n }\n }\n }\n });\n jQuery.fn.extend({\n detach: function (selector) {\n return remove(this, selector, true);\n },\n remove: function (selector) {\n return remove(this, selector);\n },\n text: function (value) {\n return access(this, function (value) {\n return value === undefined ? jQuery.text(this) : this.empty().each(function () {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n this.textContent = value;\n }\n });\n }, null, value, arguments.length);\n },\n append: function () {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.appendChild(elem);\n }\n });\n },\n prepend: function () {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.insertBefore(elem, target.firstChild);\n }\n });\n },\n before: function () {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this);\n }\n });\n },\n after: function () {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this.nextSibling);\n }\n });\n },\n empty: function () {\n var elem,\n i = 0;\n\n for (; (elem = this[i]) != null; i++) {\n if (elem.nodeType === 1) {\n // Prevent memory leaks\n jQuery.cleanData(getAll(elem, false)); // Remove any remaining nodes\n\n elem.textContent = \"\";\n }\n }\n\n return this;\n },\n clone: function (dataAndEvents, deepDataAndEvents) {\n dataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n return this.map(function () {\n return jQuery.clone(this, dataAndEvents, deepDataAndEvents);\n });\n },\n html: function (value) {\n return access(this, function (value) {\n var elem = this[0] || {},\n i = 0,\n l = this.length;\n\n if (value === undefined && elem.nodeType === 1) {\n return elem.innerHTML;\n } // See if we can take a shortcut and just use innerHTML\n\n\n if (typeof value === \"string\" && !rnoInnerhtml.test(value) && !wrapMap[(rtagName.exec(value) || [\"\", \"\"])[1].toLowerCase()]) {\n value = jQuery.htmlPrefilter(value);\n\n try {\n for (; i < l; i++) {\n elem = this[i] || {}; // Remove element nodes and prevent memory leaks\n\n if (elem.nodeType === 1) {\n jQuery.cleanData(getAll(elem, false));\n elem.innerHTML = value;\n }\n }\n\n elem = 0; // If using innerHTML throws an exception, use the fallback method\n } catch (e) {}\n }\n\n if (elem) {\n this.empty().append(value);\n }\n }, null, value, arguments.length);\n },\n replaceWith: function () {\n var ignored = []; // Make the changes, replacing each non-ignored context element with the new content\n\n return domManip(this, arguments, function (elem) {\n var parent = this.parentNode;\n\n if (jQuery.inArray(this, ignored) < 0) {\n jQuery.cleanData(getAll(this));\n\n if (parent) {\n parent.replaceChild(elem, this);\n }\n } // Force callback invocation\n\n }, ignored);\n }\n });\n jQuery.each({\n appendTo: \"append\",\n prependTo: \"prepend\",\n insertBefore: \"before\",\n insertAfter: \"after\",\n replaceAll: \"replaceWith\"\n }, function (name, original) {\n jQuery.fn[name] = function (selector) {\n var elems,\n ret = [],\n insert = jQuery(selector),\n last = insert.length - 1,\n i = 0;\n\n for (; i <= last; i++) {\n elems = i === last ? this : this.clone(true);\n jQuery(insert[i])[original](elems); // Support: Android <=4.0 only, PhantomJS 1 only\n // .get() because push.apply(_, arraylike) throws on ancient WebKit\n\n push.apply(ret, elems.get());\n }\n\n return this.pushStack(ret);\n };\n });\n var rnumnonpx = new RegExp(\"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\");\n\n var getStyles = function (elem) {\n // Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n // IE throws on elements created in popups\n // FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n var view = elem.ownerDocument.defaultView;\n\n if (!view || !view.opener) {\n view = window;\n }\n\n return view.getComputedStyle(elem);\n };\n\n var swap = function (elem, options, callback) {\n var ret,\n name,\n old = {}; // Remember the old values, and insert the new ones\n\n for (name in options) {\n old[name] = elem.style[name];\n elem.style[name] = options[name];\n }\n\n ret = callback.call(elem); // Revert the old values\n\n for (name in options) {\n elem.style[name] = old[name];\n }\n\n return ret;\n };\n\n var rboxStyle = new RegExp(cssExpand.join(\"|\"), \"i\");\n\n (function () {\n // Executing both pixelPosition & boxSizingReliable tests require only one layout\n // so they're executed at the same time to save the second computation.\n function computeStyleTests() {\n // This is a singleton, we need to execute it only once\n if (!div) {\n return;\n }\n\n container.style.cssText = \"position:absolute;left:-11111px;width:60px;\" + \"margin-top:1px;padding:0;border:0\";\n div.style.cssText = \"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" + \"margin:auto;border:1px;padding:1px;\" + \"width:60%;top:1%\";\n documentElement.appendChild(container).appendChild(div);\n var divStyle = window.getComputedStyle(div);\n pixelPositionVal = divStyle.top !== \"1%\"; // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\n reliableMarginLeftVal = roundPixelMeasures(divStyle.marginLeft) === 12; // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n // Some styles come back with percentage values, even though they shouldn't\n\n div.style.right = \"60%\";\n pixelBoxStylesVal = roundPixelMeasures(divStyle.right) === 36; // Support: IE 9 - 11 only\n // Detect misreporting of content dimensions for box-sizing:border-box elements\n\n boxSizingReliableVal = roundPixelMeasures(divStyle.width) === 36; // Support: IE 9 only\n // Detect overflow:scroll screwiness (gh-3699)\n // Support: Chrome <=64\n // Don't get tricked when zoom affects offsetWidth (gh-4029)\n\n div.style.position = \"absolute\";\n scrollboxSizeVal = roundPixelMeasures(div.offsetWidth / 3) === 12;\n documentElement.removeChild(container); // Nullify the div so it wouldn't be stored in the memory and\n // it will also be a sign that checks already performed\n\n div = null;\n }\n\n function roundPixelMeasures(measure) {\n return Math.round(parseFloat(measure));\n }\n\n var pixelPositionVal,\n boxSizingReliableVal,\n scrollboxSizeVal,\n pixelBoxStylesVal,\n reliableTrDimensionsVal,\n reliableMarginLeftVal,\n container = document.createElement(\"div\"),\n div = document.createElement(\"div\"); // Finish early in limited (non-browser) environments\n\n if (!div.style) {\n return;\n } // Support: IE <=9 - 11 only\n // Style of cloned element affects source element cloned (#8908)\n\n\n div.style.backgroundClip = \"content-box\";\n div.cloneNode(true).style.backgroundClip = \"\";\n support.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n jQuery.extend(support, {\n boxSizingReliable: function () {\n computeStyleTests();\n return boxSizingReliableVal;\n },\n pixelBoxStyles: function () {\n computeStyleTests();\n return pixelBoxStylesVal;\n },\n pixelPosition: function () {\n computeStyleTests();\n return pixelPositionVal;\n },\n reliableMarginLeft: function () {\n computeStyleTests();\n return reliableMarginLeftVal;\n },\n scrollboxSize: function () {\n computeStyleTests();\n return scrollboxSizeVal;\n },\n // Support: IE 9 - 11+, Edge 15 - 18+\n // IE/Edge misreport `getComputedStyle` of table rows with width/height\n // set in CSS while `offset*` properties report correct values.\n // Behavior in IE 9 is more subtle than in newer versions & it passes\n // some versions of this test; make sure not to make it pass there!\n reliableTrDimensions: function () {\n var table, tr, trChild, trStyle;\n\n if (reliableTrDimensionsVal == null) {\n table = document.createElement(\"table\");\n tr = document.createElement(\"tr\");\n trChild = document.createElement(\"div\");\n table.style.cssText = \"position:absolute;left:-11111px\";\n tr.style.height = \"1px\";\n trChild.style.height = \"9px\";\n documentElement.appendChild(table).appendChild(tr).appendChild(trChild);\n trStyle = window.getComputedStyle(tr);\n reliableTrDimensionsVal = parseInt(trStyle.height) > 3;\n documentElement.removeChild(table);\n }\n\n return reliableTrDimensionsVal;\n }\n });\n })();\n\n function curCSS(elem, name, computed) {\n var width,\n minWidth,\n maxWidth,\n ret,\n // Support: Firefox 51+\n // Retrieving style before computed somehow\n // fixes an issue with getting wrong values\n // on detached elements\n style = elem.style;\n computed = computed || getStyles(elem); // getPropertyValue is needed for:\n // .css('filter') (IE 9 only, #12537)\n // .css('--customProperty) (#3144)\n\n if (computed) {\n ret = computed.getPropertyValue(name) || computed[name];\n\n if (ret === \"\" && !isAttached(elem)) {\n ret = jQuery.style(elem, name);\n } // A tribute to the \"awesome hack by Dean Edwards\"\n // Android Browser returns percentage for some values,\n // but width seems to be reliably pixels.\n // This is against the CSSOM draft spec:\n // https://drafts.csswg.org/cssom/#resolved-values\n\n\n if (!support.pixelBoxStyles() && rnumnonpx.test(ret) && rboxStyle.test(name)) {\n // Remember the original values\n width = style.width;\n minWidth = style.minWidth;\n maxWidth = style.maxWidth; // Put in the new values to get a computed value out\n\n style.minWidth = style.maxWidth = style.width = ret;\n ret = computed.width; // Revert the changed values\n\n style.width = width;\n style.minWidth = minWidth;\n style.maxWidth = maxWidth;\n }\n }\n\n return ret !== undefined ? // Support: IE <=9 - 11 only\n // IE returns zIndex value as an integer.\n ret + \"\" : ret;\n }\n\n function addGetHookIf(conditionFn, hookFn) {\n // Define the hook, we'll check on the first run if it's really needed.\n return {\n get: function () {\n if (conditionFn()) {\n // Hook not needed (or it's not possible to use it due\n // to missing dependency), remove it.\n delete this.get;\n return;\n } // Hook needed; redefine it so that the support test is not executed again.\n\n\n return (this.get = hookFn).apply(this, arguments);\n }\n };\n }\n\n var cssPrefixes = [\"Webkit\", \"Moz\", \"ms\"],\n emptyStyle = document.createElement(\"div\").style,\n vendorProps = {}; // Return a vendor-prefixed property or undefined\n\n function vendorPropName(name) {\n // Check for vendor prefixed names\n var capName = name[0].toUpperCase() + name.slice(1),\n i = cssPrefixes.length;\n\n while (i--) {\n name = cssPrefixes[i] + capName;\n\n if (name in emptyStyle) {\n return name;\n }\n }\n } // Return a potentially-mapped jQuery.cssProps or vendor prefixed property\n\n\n function finalPropName(name) {\n var final = jQuery.cssProps[name] || vendorProps[name];\n\n if (final) {\n return final;\n }\n\n if (name in emptyStyle) {\n return name;\n }\n\n return vendorProps[name] = vendorPropName(name) || name;\n }\n\n var // Swappable if display is none or starts with table\n // except \"table\", \"table-cell\", or \"table-caption\"\n // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n rdisplayswap = /^(none|table(?!-c[ea]).+)/,\n rcustomProp = /^--/,\n cssShow = {\n position: \"absolute\",\n visibility: \"hidden\",\n display: \"block\"\n },\n cssNormalTransform = {\n letterSpacing: \"0\",\n fontWeight: \"400\"\n };\n\n function setPositiveNumber(_elem, value, subtract) {\n // Any relative (+/-) values have already been\n // normalized at this point\n var matches = rcssNum.exec(value);\n return matches ? // Guard against undefined \"subtract\", e.g., when used as in cssHooks\n Math.max(0, matches[2] - (subtract || 0)) + (matches[3] || \"px\") : value;\n }\n\n function boxModelAdjustment(elem, dimension, box, isBorderBox, styles, computedVal) {\n var i = dimension === \"width\" ? 1 : 0,\n extra = 0,\n delta = 0; // Adjustment may not be necessary\n\n if (box === (isBorderBox ? \"border\" : \"content\")) {\n return 0;\n }\n\n for (; i < 4; i += 2) {\n // Both box models exclude margin\n if (box === \"margin\") {\n delta += jQuery.css(elem, box + cssExpand[i], true, styles);\n } // If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\n\n if (!isBorderBox) {\n // Add padding\n delta += jQuery.css(elem, \"padding\" + cssExpand[i], true, styles); // For \"border\" or \"margin\", add border\n\n if (box !== \"padding\") {\n delta += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles); // But still keep track of it otherwise\n } else {\n extra += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n } // If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n // \"padding\" or \"margin\"\n\n } else {\n // For \"content\", subtract padding\n if (box === \"content\") {\n delta -= jQuery.css(elem, \"padding\" + cssExpand[i], true, styles);\n } // For \"content\" or \"padding\", subtract border\n\n\n if (box !== \"margin\") {\n delta -= jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n }\n }\n } // Account for positive content-box scroll gutter when requested by providing computedVal\n\n\n if (!isBorderBox && computedVal >= 0) {\n // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n // Assuming integer scroll gutter, subtract the rest and round down\n delta += Math.max(0, Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - computedVal - delta - extra - 0.5 // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n // Use an explicit zero to avoid NaN (gh-3964)\n )) || 0;\n }\n\n return delta;\n }\n\n function getWidthOrHeight(elem, dimension, extra) {\n // Start with computed style\n var styles = getStyles(elem),\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n // Fake content-box until we know it's needed to know the true value.\n boxSizingNeeded = !support.boxSizingReliable() || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n valueIsBorderBox = isBorderBox,\n val = curCSS(elem, dimension, styles),\n offsetProp = \"offset\" + dimension[0].toUpperCase() + dimension.slice(1); // Support: Firefox <=54\n // Return a confounding non-pixel value or feign ignorance, as appropriate.\n\n if (rnumnonpx.test(val)) {\n if (!extra) {\n return val;\n }\n\n val = \"auto\";\n } // Support: IE 9 - 11 only\n // Use offsetWidth/offsetHeight for when box sizing is unreliable.\n // In those cases, the computed value can be trusted to be border-box.\n\n\n if ((!support.boxSizingReliable() && isBorderBox || // Support: IE 10 - 11+, Edge 15 - 18+\n // IE/Edge misreport `getComputedStyle` of table rows with width/height\n // set in CSS while `offset*` properties report correct values.\n // Interestingly, in some cases IE 9 doesn't suffer from this issue.\n !support.reliableTrDimensions() && nodeName(elem, \"tr\") || // Fall back to offsetWidth/offsetHeight when value is \"auto\"\n // This happens for inline elements with no explicit setting (gh-3571)\n val === \"auto\" || // Support: Android <=4.1 - 4.3 only\n // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n !parseFloat(val) && jQuery.css(elem, \"display\", false, styles) === \"inline\") && // Make sure the element is visible & connected\n elem.getClientRects().length) {\n isBorderBox = jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\"; // Where available, offsetWidth/offsetHeight approximate border box dimensions.\n // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n // retrieved value as a content box dimension.\n\n valueIsBorderBox = offsetProp in elem;\n\n if (valueIsBorderBox) {\n val = elem[offsetProp];\n }\n } // Normalize \"\" and auto\n\n\n val = parseFloat(val) || 0; // Adjust for the element's box model\n\n return val + boxModelAdjustment(elem, dimension, extra || (isBorderBox ? \"border\" : \"content\"), valueIsBorderBox, styles, // Provide the current computed size to request scroll gutter calculation (gh-3589)\n val) + \"px\";\n }\n\n jQuery.extend({\n // Add in style property hooks for overriding the default\n // behavior of getting and setting a style property\n cssHooks: {\n opacity: {\n get: function (elem, computed) {\n if (computed) {\n // We should always get a number back from opacity\n var ret = curCSS(elem, \"opacity\");\n return ret === \"\" ? \"1\" : ret;\n }\n }\n }\n },\n // Don't automatically add \"px\" to these possibly-unitless properties\n cssNumber: {\n \"animationIterationCount\": true,\n \"columnCount\": true,\n \"fillOpacity\": true,\n \"flexGrow\": true,\n \"flexShrink\": true,\n \"fontWeight\": true,\n \"gridArea\": true,\n \"gridColumn\": true,\n \"gridColumnEnd\": true,\n \"gridColumnStart\": true,\n \"gridRow\": true,\n \"gridRowEnd\": true,\n \"gridRowStart\": true,\n \"lineHeight\": true,\n \"opacity\": true,\n \"order\": true,\n \"orphans\": true,\n \"widows\": true,\n \"zIndex\": true,\n \"zoom\": true\n },\n // Add in properties whose names you wish to fix before\n // setting or getting the value\n cssProps: {},\n // Get and set the style property on a DOM Node\n style: function (elem, name, value, extra) {\n // Don't set styles on text and comment nodes\n if (!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style) {\n return;\n } // Make sure that we're working with the right name\n\n\n var ret,\n type,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name),\n style = elem.style; // Make sure that we're working with the right name. We don't\n // want to query the value if it is a CSS custom property\n // since they are user-defined.\n\n if (!isCustomProp) {\n name = finalPropName(origName);\n } // Gets hook for the prefixed version, then unprefixed version\n\n\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; // Check if we're setting a value\n\n if (value !== undefined) {\n type = typeof value; // Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\n if (type === \"string\" && (ret = rcssNum.exec(value)) && ret[1]) {\n value = adjustCSS(elem, name, ret); // Fixes bug #9237\n\n type = \"number\";\n } // Make sure that null and NaN values aren't set (#7116)\n\n\n if (value == null || value !== value) {\n return;\n } // If a number was passed in, add the unit (except for certain CSS properties)\n // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n // \"px\" to a few hardcoded values.\n\n\n if (type === \"number\" && !isCustomProp) {\n value += ret && ret[3] || (jQuery.cssNumber[origName] ? \"\" : \"px\");\n } // background-* props affect original clone's values\n\n\n if (!support.clearCloneStyle && value === \"\" && name.indexOf(\"background\") === 0) {\n style[name] = \"inherit\";\n } // If a hook was provided, use that value, otherwise just set the specified value\n\n\n if (!hooks || !(\"set\" in hooks) || (value = hooks.set(elem, value, extra)) !== undefined) {\n if (isCustomProp) {\n style.setProperty(name, value);\n } else {\n style[name] = value;\n }\n }\n } else {\n // If a hook was provided get the non-computed value from there\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, false, extra)) !== undefined) {\n return ret;\n } // Otherwise just get the value from the style object\n\n\n return style[name];\n }\n },\n css: function (elem, name, extra, styles) {\n var val,\n num,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name); // Make sure that we're working with the right name. We don't\n // want to modify the value if it is a CSS custom property\n // since they are user-defined.\n\n if (!isCustomProp) {\n name = finalPropName(origName);\n } // Try prefixed name followed by the unprefixed name\n\n\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; // If a hook was provided get the computed value from there\n\n if (hooks && \"get\" in hooks) {\n val = hooks.get(elem, true, extra);\n } // Otherwise, if a way to get the computed value exists, use that\n\n\n if (val === undefined) {\n val = curCSS(elem, name, styles);\n } // Convert \"normal\" to computed value\n\n\n if (val === \"normal\" && name in cssNormalTransform) {\n val = cssNormalTransform[name];\n } // Make numeric if forced or a qualifier was provided and val looks numeric\n\n\n if (extra === \"\" || extra) {\n num = parseFloat(val);\n return extra === true || isFinite(num) ? num || 0 : val;\n }\n\n return val;\n }\n });\n jQuery.each([\"height\", \"width\"], function (_i, dimension) {\n jQuery.cssHooks[dimension] = {\n get: function (elem, computed, extra) {\n if (computed) {\n // Certain elements can have dimension info if we invisibly show them\n // but it must have a current display style that would benefit\n return rdisplayswap.test(jQuery.css(elem, \"display\")) && ( // Support: Safari 8+\n // Table columns in Safari have non-zero offsetWidth & zero\n // getBoundingClientRect().width unless display is changed.\n // Support: IE <=11 only\n // Running getBoundingClientRect on a disconnected node\n // in IE throws an error.\n !elem.getClientRects().length || !elem.getBoundingClientRect().width) ? swap(elem, cssShow, function () {\n return getWidthOrHeight(elem, dimension, extra);\n }) : getWidthOrHeight(elem, dimension, extra);\n }\n },\n set: function (elem, value, extra) {\n var matches,\n styles = getStyles(elem),\n // Only read styles.position if the test has a chance to fail\n // to avoid forcing a reflow.\n scrollboxSizeBuggy = !support.scrollboxSize() && styles.position === \"absolute\",\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n boxSizingNeeded = scrollboxSizeBuggy || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n subtract = extra ? boxModelAdjustment(elem, dimension, extra, isBorderBox, styles) : 0; // Account for unreliable border-box dimensions by comparing offset* to computed and\n // faking a content-box to get border and padding (gh-3699)\n\n if (isBorderBox && scrollboxSizeBuggy) {\n subtract -= Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - parseFloat(styles[dimension]) - boxModelAdjustment(elem, dimension, \"border\", false, styles) - 0.5);\n } // Convert to pixels if value adjustment is needed\n\n\n if (subtract && (matches = rcssNum.exec(value)) && (matches[3] || \"px\") !== \"px\") {\n elem.style[dimension] = value;\n value = jQuery.css(elem, dimension);\n }\n\n return setPositiveNumber(elem, value, subtract);\n }\n };\n });\n jQuery.cssHooks.marginLeft = addGetHookIf(support.reliableMarginLeft, function (elem, computed) {\n if (computed) {\n return (parseFloat(curCSS(elem, \"marginLeft\")) || elem.getBoundingClientRect().left - swap(elem, {\n marginLeft: 0\n }, function () {\n return elem.getBoundingClientRect().left;\n })) + \"px\";\n }\n }); // These hooks are used by animate to expand properties\n\n jQuery.each({\n margin: \"\",\n padding: \"\",\n border: \"Width\"\n }, function (prefix, suffix) {\n jQuery.cssHooks[prefix + suffix] = {\n expand: function (value) {\n var i = 0,\n expanded = {},\n // Assumes a single number if not a string\n parts = typeof value === \"string\" ? value.split(\" \") : [value];\n\n for (; i < 4; i++) {\n expanded[prefix + cssExpand[i] + suffix] = parts[i] || parts[i - 2] || parts[0];\n }\n\n return expanded;\n }\n };\n\n if (prefix !== \"margin\") {\n jQuery.cssHooks[prefix + suffix].set = setPositiveNumber;\n }\n });\n jQuery.fn.extend({\n css: function (name, value) {\n return access(this, function (elem, name, value) {\n var styles,\n len,\n map = {},\n i = 0;\n\n if (Array.isArray(name)) {\n styles = getStyles(elem);\n len = name.length;\n\n for (; i < len; i++) {\n map[name[i]] = jQuery.css(elem, name[i], false, styles);\n }\n\n return map;\n }\n\n return value !== undefined ? jQuery.style(elem, name, value) : jQuery.css(elem, name);\n }, name, value, arguments.length > 1);\n }\n });\n\n function Tween(elem, options, prop, end, easing) {\n return new Tween.prototype.init(elem, options, prop, end, easing);\n }\n\n jQuery.Tween = Tween;\n Tween.prototype = {\n constructor: Tween,\n init: function (elem, options, prop, end, easing, unit) {\n this.elem = elem;\n this.prop = prop;\n this.easing = easing || jQuery.easing._default;\n this.options = options;\n this.start = this.now = this.cur();\n this.end = end;\n this.unit = unit || (jQuery.cssNumber[prop] ? \"\" : \"px\");\n },\n cur: function () {\n var hooks = Tween.propHooks[this.prop];\n return hooks && hooks.get ? hooks.get(this) : Tween.propHooks._default.get(this);\n },\n run: function (percent) {\n var eased,\n hooks = Tween.propHooks[this.prop];\n\n if (this.options.duration) {\n this.pos = eased = jQuery.easing[this.easing](percent, this.options.duration * percent, 0, 1, this.options.duration);\n } else {\n this.pos = eased = percent;\n }\n\n this.now = (this.end - this.start) * eased + this.start;\n\n if (this.options.step) {\n this.options.step.call(this.elem, this.now, this);\n }\n\n if (hooks && hooks.set) {\n hooks.set(this);\n } else {\n Tween.propHooks._default.set(this);\n }\n\n return this;\n }\n };\n Tween.prototype.init.prototype = Tween.prototype;\n Tween.propHooks = {\n _default: {\n get: function (tween) {\n var result; // Use a property on the element directly when it is not a DOM element,\n // or when there is no matching style property that exists.\n\n if (tween.elem.nodeType !== 1 || tween.elem[tween.prop] != null && tween.elem.style[tween.prop] == null) {\n return tween.elem[tween.prop];\n } // Passing an empty string as a 3rd parameter to .css will automatically\n // attempt a parseFloat and fallback to a string if the parse fails.\n // Simple values such as \"10px\" are parsed to Float;\n // complex values such as \"rotate(1rad)\" are returned as-is.\n\n\n result = jQuery.css(tween.elem, tween.prop, \"\"); // Empty strings, null, undefined and \"auto\" are converted to 0.\n\n return !result || result === \"auto\" ? 0 : result;\n },\n set: function (tween) {\n // Use step hook for back compat.\n // Use cssHook if its there.\n // Use .style if available and use plain properties where available.\n if (jQuery.fx.step[tween.prop]) {\n jQuery.fx.step[tween.prop](tween);\n } else if (tween.elem.nodeType === 1 && (jQuery.cssHooks[tween.prop] || tween.elem.style[finalPropName(tween.prop)] != null)) {\n jQuery.style(tween.elem, tween.prop, tween.now + tween.unit);\n } else {\n tween.elem[tween.prop] = tween.now;\n }\n }\n }\n }; // Support: IE <=9 only\n // Panic based approach to setting things on disconnected nodes\n\n Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n set: function (tween) {\n if (tween.elem.nodeType && tween.elem.parentNode) {\n tween.elem[tween.prop] = tween.now;\n }\n }\n };\n jQuery.easing = {\n linear: function (p) {\n return p;\n },\n swing: function (p) {\n return 0.5 - Math.cos(p * Math.PI) / 2;\n },\n _default: \"swing\"\n };\n jQuery.fx = Tween.prototype.init; // Back compat <1.8 extension point\n\n jQuery.fx.step = {};\n var fxNow,\n inProgress,\n rfxtypes = /^(?:toggle|show|hide)$/,\n rrun = /queueHooks$/;\n\n function schedule() {\n if (inProgress) {\n if (document.hidden === false && window.requestAnimationFrame) {\n window.requestAnimationFrame(schedule);\n } else {\n window.setTimeout(schedule, jQuery.fx.interval);\n }\n\n jQuery.fx.tick();\n }\n } // Animations created synchronously will run synchronously\n\n\n function createFxNow() {\n window.setTimeout(function () {\n fxNow = undefined;\n });\n return fxNow = Date.now();\n } // Generate parameters to create a standard animation\n\n\n function genFx(type, includeWidth) {\n var which,\n i = 0,\n attrs = {\n height: type\n }; // If we include width, step value is 1 to do all cssExpand values,\n // otherwise step value is 2 to skip over Left and Right\n\n includeWidth = includeWidth ? 1 : 0;\n\n for (; i < 4; i += 2 - includeWidth) {\n which = cssExpand[i];\n attrs[\"margin\" + which] = attrs[\"padding\" + which] = type;\n }\n\n if (includeWidth) {\n attrs.opacity = attrs.width = type;\n }\n\n return attrs;\n }\n\n function createTween(value, prop, animation) {\n var tween,\n collection = (Animation.tweeners[prop] || []).concat(Animation.tweeners[\"*\"]),\n index = 0,\n length = collection.length;\n\n for (; index < length; index++) {\n if (tween = collection[index].call(animation, prop, value)) {\n // We're done with this property\n return tween;\n }\n }\n }\n\n function defaultPrefilter(elem, props, opts) {\n var prop,\n value,\n toggle,\n hooks,\n oldfire,\n propTween,\n restoreDisplay,\n display,\n isBox = \"width\" in props || \"height\" in props,\n anim = this,\n orig = {},\n style = elem.style,\n hidden = elem.nodeType && isHiddenWithinTree(elem),\n dataShow = dataPriv.get(elem, \"fxshow\"); // Queue-skipping animations hijack the fx hooks\n\n if (!opts.queue) {\n hooks = jQuery._queueHooks(elem, \"fx\");\n\n if (hooks.unqueued == null) {\n hooks.unqueued = 0;\n oldfire = hooks.empty.fire;\n\n hooks.empty.fire = function () {\n if (!hooks.unqueued) {\n oldfire();\n }\n };\n }\n\n hooks.unqueued++;\n anim.always(function () {\n // Ensure the complete handler is called before this completes\n anim.always(function () {\n hooks.unqueued--;\n\n if (!jQuery.queue(elem, \"fx\").length) {\n hooks.empty.fire();\n }\n });\n });\n } // Detect show/hide animations\n\n\n for (prop in props) {\n value = props[prop];\n\n if (rfxtypes.test(value)) {\n delete props[prop];\n toggle = toggle || value === \"toggle\";\n\n if (value === (hidden ? \"hide\" : \"show\")) {\n // Pretend to be hidden if this is a \"show\" and\n // there is still data from a stopped show/hide\n if (value === \"show\" && dataShow && dataShow[prop] !== undefined) {\n hidden = true; // Ignore all other no-op show/hide data\n } else {\n continue;\n }\n }\n\n orig[prop] = dataShow && dataShow[prop] || jQuery.style(elem, prop);\n }\n } // Bail out if this is a no-op like .hide().hide()\n\n\n propTween = !jQuery.isEmptyObject(props);\n\n if (!propTween && jQuery.isEmptyObject(orig)) {\n return;\n } // Restrict \"overflow\" and \"display\" styles during box animations\n\n\n if (isBox && elem.nodeType === 1) {\n // Support: IE <=9 - 11, Edge 12 - 15\n // Record all 3 overflow attributes because IE does not infer the shorthand\n // from identically-valued overflowX and overflowY and Edge just mirrors\n // the overflowX value there.\n opts.overflow = [style.overflow, style.overflowX, style.overflowY]; // Identify a display type, preferring old show/hide data over the CSS cascade\n\n restoreDisplay = dataShow && dataShow.display;\n\n if (restoreDisplay == null) {\n restoreDisplay = dataPriv.get(elem, \"display\");\n }\n\n display = jQuery.css(elem, \"display\");\n\n if (display === \"none\") {\n if (restoreDisplay) {\n display = restoreDisplay;\n } else {\n // Get nonempty value(s) by temporarily forcing visibility\n showHide([elem], true);\n restoreDisplay = elem.style.display || restoreDisplay;\n display = jQuery.css(elem, \"display\");\n showHide([elem]);\n }\n } // Animate inline elements as inline-block\n\n\n if (display === \"inline\" || display === \"inline-block\" && restoreDisplay != null) {\n if (jQuery.css(elem, \"float\") === \"none\") {\n // Restore the original display value at the end of pure show/hide animations\n if (!propTween) {\n anim.done(function () {\n style.display = restoreDisplay;\n });\n\n if (restoreDisplay == null) {\n display = style.display;\n restoreDisplay = display === \"none\" ? \"\" : display;\n }\n }\n\n style.display = \"inline-block\";\n }\n }\n }\n\n if (opts.overflow) {\n style.overflow = \"hidden\";\n anim.always(function () {\n style.overflow = opts.overflow[0];\n style.overflowX = opts.overflow[1];\n style.overflowY = opts.overflow[2];\n });\n } // Implement show/hide animations\n\n\n propTween = false;\n\n for (prop in orig) {\n // General show/hide setup for this element animation\n if (!propTween) {\n if (dataShow) {\n if (\"hidden\" in dataShow) {\n hidden = dataShow.hidden;\n }\n } else {\n dataShow = dataPriv.access(elem, \"fxshow\", {\n display: restoreDisplay\n });\n } // Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\n\n if (toggle) {\n dataShow.hidden = !hidden;\n } // Show elements before animating them\n\n\n if (hidden) {\n showHide([elem], true);\n }\n /* eslint-disable no-loop-func */\n\n\n anim.done(function () {\n /* eslint-enable no-loop-func */\n // The final step of a \"hide\" animation is actually hiding the element\n if (!hidden) {\n showHide([elem]);\n }\n\n dataPriv.remove(elem, \"fxshow\");\n\n for (prop in orig) {\n jQuery.style(elem, prop, orig[prop]);\n }\n });\n } // Per-property setup\n\n\n propTween = createTween(hidden ? dataShow[prop] : 0, prop, anim);\n\n if (!(prop in dataShow)) {\n dataShow[prop] = propTween.start;\n\n if (hidden) {\n propTween.end = propTween.start;\n propTween.start = 0;\n }\n }\n }\n }\n\n function propFilter(props, specialEasing) {\n var index, name, easing, value, hooks; // camelCase, specialEasing and expand cssHook pass\n\n for (index in props) {\n name = camelCase(index);\n easing = specialEasing[name];\n value = props[index];\n\n if (Array.isArray(value)) {\n easing = value[1];\n value = props[index] = value[0];\n }\n\n if (index !== name) {\n props[name] = value;\n delete props[index];\n }\n\n hooks = jQuery.cssHooks[name];\n\n if (hooks && \"expand\" in hooks) {\n value = hooks.expand(value);\n delete props[name]; // Not quite $.extend, this won't overwrite existing keys.\n // Reusing 'index' because we have the correct \"name\"\n\n for (index in value) {\n if (!(index in props)) {\n props[index] = value[index];\n specialEasing[index] = easing;\n }\n }\n } else {\n specialEasing[name] = easing;\n }\n }\n }\n\n function Animation(elem, properties, options) {\n var result,\n stopped,\n index = 0,\n length = Animation.prefilters.length,\n deferred = jQuery.Deferred().always(function () {\n // Don't match elem in the :animated selector\n delete tick.elem;\n }),\n tick = function () {\n if (stopped) {\n return false;\n }\n\n var currentTime = fxNow || createFxNow(),\n remaining = Math.max(0, animation.startTime + animation.duration - currentTime),\n // Support: Android 2.3 only\n // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n temp = remaining / animation.duration || 0,\n percent = 1 - temp,\n index = 0,\n length = animation.tweens.length;\n\n for (; index < length; index++) {\n animation.tweens[index].run(percent);\n }\n\n deferred.notifyWith(elem, [animation, percent, remaining]); // If there's more to do, yield\n\n if (percent < 1 && length) {\n return remaining;\n } // If this was an empty animation, synthesize a final progress notification\n\n\n if (!length) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n } // Resolve the animation and report its conclusion\n\n\n deferred.resolveWith(elem, [animation]);\n return false;\n },\n animation = deferred.promise({\n elem: elem,\n props: jQuery.extend({}, properties),\n opts: jQuery.extend(true, {\n specialEasing: {},\n easing: jQuery.easing._default\n }, options),\n originalProperties: properties,\n originalOptions: options,\n startTime: fxNow || createFxNow(),\n duration: options.duration,\n tweens: [],\n createTween: function (prop, end) {\n var tween = jQuery.Tween(elem, animation.opts, prop, end, animation.opts.specialEasing[prop] || animation.opts.easing);\n animation.tweens.push(tween);\n return tween;\n },\n stop: function (gotoEnd) {\n var index = 0,\n // If we are going to the end, we want to run all the tweens\n // otherwise we skip this part\n length = gotoEnd ? animation.tweens.length : 0;\n\n if (stopped) {\n return this;\n }\n\n stopped = true;\n\n for (; index < length; index++) {\n animation.tweens[index].run(1);\n } // Resolve when we played the last frame; otherwise, reject\n\n\n if (gotoEnd) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n deferred.resolveWith(elem, [animation, gotoEnd]);\n } else {\n deferred.rejectWith(elem, [animation, gotoEnd]);\n }\n\n return this;\n }\n }),\n props = animation.props;\n\n propFilter(props, animation.opts.specialEasing);\n\n for (; index < length; index++) {\n result = Animation.prefilters[index].call(animation, elem, props, animation.opts);\n\n if (result) {\n if (isFunction(result.stop)) {\n jQuery._queueHooks(animation.elem, animation.opts.queue).stop = result.stop.bind(result);\n }\n\n return result;\n }\n }\n\n jQuery.map(props, createTween, animation);\n\n if (isFunction(animation.opts.start)) {\n animation.opts.start.call(elem, animation);\n } // Attach callbacks from options\n\n\n animation.progress(animation.opts.progress).done(animation.opts.done, animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always);\n jQuery.fx.timer(jQuery.extend(tick, {\n elem: elem,\n anim: animation,\n queue: animation.opts.queue\n }));\n return animation;\n }\n\n jQuery.Animation = jQuery.extend(Animation, {\n tweeners: {\n \"*\": [function (prop, value) {\n var tween = this.createTween(prop, value);\n adjustCSS(tween.elem, prop, rcssNum.exec(value), tween);\n return tween;\n }]\n },\n tweener: function (props, callback) {\n if (isFunction(props)) {\n callback = props;\n props = [\"*\"];\n } else {\n props = props.match(rnothtmlwhite);\n }\n\n var prop,\n index = 0,\n length = props.length;\n\n for (; index < length; index++) {\n prop = props[index];\n Animation.tweeners[prop] = Animation.tweeners[prop] || [];\n Animation.tweeners[prop].unshift(callback);\n }\n },\n prefilters: [defaultPrefilter],\n prefilter: function (callback, prepend) {\n if (prepend) {\n Animation.prefilters.unshift(callback);\n } else {\n Animation.prefilters.push(callback);\n }\n }\n });\n\n jQuery.speed = function (speed, easing, fn) {\n var opt = speed && typeof speed === \"object\" ? jQuery.extend({}, speed) : {\n complete: fn || !fn && easing || isFunction(speed) && speed,\n duration: speed,\n easing: fn && easing || easing && !isFunction(easing) && easing\n }; // Go to the end state if fx are off\n\n if (jQuery.fx.off) {\n opt.duration = 0;\n } else {\n if (typeof opt.duration !== \"number\") {\n if (opt.duration in jQuery.fx.speeds) {\n opt.duration = jQuery.fx.speeds[opt.duration];\n } else {\n opt.duration = jQuery.fx.speeds._default;\n }\n }\n } // Normalize opt.queue - true/undefined/null -> \"fx\"\n\n\n if (opt.queue == null || opt.queue === true) {\n opt.queue = \"fx\";\n } // Queueing\n\n\n opt.old = opt.complete;\n\n opt.complete = function () {\n if (isFunction(opt.old)) {\n opt.old.call(this);\n }\n\n if (opt.queue) {\n jQuery.dequeue(this, opt.queue);\n }\n };\n\n return opt;\n };\n\n jQuery.fn.extend({\n fadeTo: function (speed, to, easing, callback) {\n // Show any hidden elements after setting opacity to 0\n return this.filter(isHiddenWithinTree).css(\"opacity\", 0).show() // Animate to the value specified\n .end().animate({\n opacity: to\n }, speed, easing, callback);\n },\n animate: function (prop, speed, easing, callback) {\n var empty = jQuery.isEmptyObject(prop),\n optall = jQuery.speed(speed, easing, callback),\n doAnimation = function () {\n // Operate on a copy of prop so per-property easing won't be lost\n var anim = Animation(this, jQuery.extend({}, prop), optall); // Empty animations, or finishing resolves immediately\n\n if (empty || dataPriv.get(this, \"finish\")) {\n anim.stop(true);\n }\n };\n\n doAnimation.finish = doAnimation;\n return empty || optall.queue === false ? this.each(doAnimation) : this.queue(optall.queue, doAnimation);\n },\n stop: function (type, clearQueue, gotoEnd) {\n var stopQueue = function (hooks) {\n var stop = hooks.stop;\n delete hooks.stop;\n stop(gotoEnd);\n };\n\n if (typeof type !== \"string\") {\n gotoEnd = clearQueue;\n clearQueue = type;\n type = undefined;\n }\n\n if (clearQueue) {\n this.queue(type || \"fx\", []);\n }\n\n return this.each(function () {\n var dequeue = true,\n index = type != null && type + \"queueHooks\",\n timers = jQuery.timers,\n data = dataPriv.get(this);\n\n if (index) {\n if (data[index] && data[index].stop) {\n stopQueue(data[index]);\n }\n } else {\n for (index in data) {\n if (data[index] && data[index].stop && rrun.test(index)) {\n stopQueue(data[index]);\n }\n }\n }\n\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && (type == null || timers[index].queue === type)) {\n timers[index].anim.stop(gotoEnd);\n dequeue = false;\n timers.splice(index, 1);\n }\n } // Start the next in the queue if the last step wasn't forced.\n // Timers currently will call their complete callbacks, which\n // will dequeue but only if they were gotoEnd.\n\n\n if (dequeue || !gotoEnd) {\n jQuery.dequeue(this, type);\n }\n });\n },\n finish: function (type) {\n if (type !== false) {\n type = type || \"fx\";\n }\n\n return this.each(function () {\n var index,\n data = dataPriv.get(this),\n queue = data[type + \"queue\"],\n hooks = data[type + \"queueHooks\"],\n timers = jQuery.timers,\n length = queue ? queue.length : 0; // Enable finishing flag on private data\n\n data.finish = true; // Empty the queue first\n\n jQuery.queue(this, type, []);\n\n if (hooks && hooks.stop) {\n hooks.stop.call(this, true);\n } // Look for any active animations, and finish them\n\n\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && timers[index].queue === type) {\n timers[index].anim.stop(true);\n timers.splice(index, 1);\n }\n } // Look for any animations in the old queue and finish them\n\n\n for (index = 0; index < length; index++) {\n if (queue[index] && queue[index].finish) {\n queue[index].finish.call(this);\n }\n } // Turn off finishing flag\n\n\n delete data.finish;\n });\n }\n });\n jQuery.each([\"toggle\", \"show\", \"hide\"], function (_i, name) {\n var cssFn = jQuery.fn[name];\n\n jQuery.fn[name] = function (speed, easing, callback) {\n return speed == null || typeof speed === \"boolean\" ? cssFn.apply(this, arguments) : this.animate(genFx(name, true), speed, easing, callback);\n };\n }); // Generate shortcuts for custom animations\n\n jQuery.each({\n slideDown: genFx(\"show\"),\n slideUp: genFx(\"hide\"),\n slideToggle: genFx(\"toggle\"),\n fadeIn: {\n opacity: \"show\"\n },\n fadeOut: {\n opacity: \"hide\"\n },\n fadeToggle: {\n opacity: \"toggle\"\n }\n }, function (name, props) {\n jQuery.fn[name] = function (speed, easing, callback) {\n return this.animate(props, speed, easing, callback);\n };\n });\n jQuery.timers = [];\n\n jQuery.fx.tick = function () {\n var timer,\n i = 0,\n timers = jQuery.timers;\n fxNow = Date.now();\n\n for (; i < timers.length; i++) {\n timer = timers[i]; // Run the timer and safely remove it when done (allowing for external removal)\n\n if (!timer() && timers[i] === timer) {\n timers.splice(i--, 1);\n }\n }\n\n if (!timers.length) {\n jQuery.fx.stop();\n }\n\n fxNow = undefined;\n };\n\n jQuery.fx.timer = function (timer) {\n jQuery.timers.push(timer);\n jQuery.fx.start();\n };\n\n jQuery.fx.interval = 13;\n\n jQuery.fx.start = function () {\n if (inProgress) {\n return;\n }\n\n inProgress = true;\n schedule();\n };\n\n jQuery.fx.stop = function () {\n inProgress = null;\n };\n\n jQuery.fx.speeds = {\n slow: 600,\n fast: 200,\n // Default speed\n _default: 400\n }; // Based off of the plugin by Clint Helfers, with permission.\n // https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\n\n jQuery.fn.delay = function (time, type) {\n time = jQuery.fx ? jQuery.fx.speeds[time] || time : time;\n type = type || \"fx\";\n return this.queue(type, function (next, hooks) {\n var timeout = window.setTimeout(next, time);\n\n hooks.stop = function () {\n window.clearTimeout(timeout);\n };\n });\n };\n\n (function () {\n var input = document.createElement(\"input\"),\n select = document.createElement(\"select\"),\n opt = select.appendChild(document.createElement(\"option\"));\n input.type = \"checkbox\"; // Support: Android <=4.3 only\n // Default value for a checkbox should be \"on\"\n\n support.checkOn = input.value !== \"\"; // Support: IE <=11 only\n // Must access selectedIndex to make default options select\n\n support.optSelected = opt.selected; // Support: IE <=11 only\n // An input loses its value after becoming a radio\n\n input = document.createElement(\"input\");\n input.value = \"t\";\n input.type = \"radio\";\n support.radioValue = input.value === \"t\";\n })();\n\n var boolHook,\n attrHandle = jQuery.expr.attrHandle;\n jQuery.fn.extend({\n attr: function (name, value) {\n return access(this, jQuery.attr, name, value, arguments.length > 1);\n },\n removeAttr: function (name) {\n return this.each(function () {\n jQuery.removeAttr(this, name);\n });\n }\n });\n jQuery.extend({\n attr: function (elem, name, value) {\n var ret,\n hooks,\n nType = elem.nodeType; // Don't get/set attributes on text, comment and attribute nodes\n\n if (nType === 3 || nType === 8 || nType === 2) {\n return;\n } // Fallback to prop when attributes are not supported\n\n\n if (typeof elem.getAttribute === \"undefined\") {\n return jQuery.prop(elem, name, value);\n } // Attribute hooks are determined by the lowercase version\n // Grab necessary hook if one is defined\n\n\n if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n hooks = jQuery.attrHooks[name.toLowerCase()] || (jQuery.expr.match.bool.test(name) ? boolHook : undefined);\n }\n\n if (value !== undefined) {\n if (value === null) {\n jQuery.removeAttr(elem, name);\n return;\n }\n\n if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n return ret;\n }\n\n elem.setAttribute(name, value + \"\");\n return value;\n }\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n return ret;\n }\n\n ret = jQuery.find.attr(elem, name); // Non-existent attributes return null, we normalize to undefined\n\n return ret == null ? undefined : ret;\n },\n attrHooks: {\n type: {\n set: function (elem, value) {\n if (!support.radioValue && value === \"radio\" && nodeName(elem, \"input\")) {\n var val = elem.value;\n elem.setAttribute(\"type\", value);\n\n if (val) {\n elem.value = val;\n }\n\n return value;\n }\n }\n }\n },\n removeAttr: function (elem, value) {\n var name,\n i = 0,\n // Attribute names can contain non-HTML whitespace characters\n // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n attrNames = value && value.match(rnothtmlwhite);\n\n if (attrNames && elem.nodeType === 1) {\n while (name = attrNames[i++]) {\n elem.removeAttribute(name);\n }\n }\n }\n }); // Hooks for boolean attributes\n\n boolHook = {\n set: function (elem, value, name) {\n if (value === false) {\n // Remove boolean attributes when set to false\n jQuery.removeAttr(elem, name);\n } else {\n elem.setAttribute(name, name);\n }\n\n return name;\n }\n };\n jQuery.each(jQuery.expr.match.bool.source.match(/\\w+/g), function (_i, name) {\n var getter = attrHandle[name] || jQuery.find.attr;\n\n attrHandle[name] = function (elem, name, isXML) {\n var ret,\n handle,\n lowercaseName = name.toLowerCase();\n\n if (!isXML) {\n // Avoid an infinite loop by temporarily removing this function from the getter\n handle = attrHandle[lowercaseName];\n attrHandle[lowercaseName] = ret;\n ret = getter(elem, name, isXML) != null ? lowercaseName : null;\n attrHandle[lowercaseName] = handle;\n }\n\n return ret;\n };\n });\n var rfocusable = /^(?:input|select|textarea|button)$/i,\n rclickable = /^(?:a|area)$/i;\n jQuery.fn.extend({\n prop: function (name, value) {\n return access(this, jQuery.prop, name, value, arguments.length > 1);\n },\n removeProp: function (name) {\n return this.each(function () {\n delete this[jQuery.propFix[name] || name];\n });\n }\n });\n jQuery.extend({\n prop: function (elem, name, value) {\n var ret,\n hooks,\n nType = elem.nodeType; // Don't get/set properties on text, comment and attribute nodes\n\n if (nType === 3 || nType === 8 || nType === 2) {\n return;\n }\n\n if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n // Fix name and attach hooks\n name = jQuery.propFix[name] || name;\n hooks = jQuery.propHooks[name];\n }\n\n if (value !== undefined) {\n if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n return ret;\n }\n\n return elem[name] = value;\n }\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n return ret;\n }\n\n return elem[name];\n },\n propHooks: {\n tabIndex: {\n get: function (elem) {\n // Support: IE <=9 - 11 only\n // elem.tabIndex doesn't always return the\n // correct value when it hasn't been explicitly set\n // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n // Use proper attribute retrieval(#12072)\n var tabindex = jQuery.find.attr(elem, \"tabindex\");\n\n if (tabindex) {\n return parseInt(tabindex, 10);\n }\n\n if (rfocusable.test(elem.nodeName) || rclickable.test(elem.nodeName) && elem.href) {\n return 0;\n }\n\n return -1;\n }\n }\n },\n propFix: {\n \"for\": \"htmlFor\",\n \"class\": \"className\"\n }\n }); // Support: IE <=11 only\n // Accessing the selectedIndex property\n // forces the browser to respect setting selected\n // on the option\n // The getter ensures a default option is selected\n // when in an optgroup\n // eslint rule \"no-unused-expressions\" is disabled for this code\n // since it considers such accessions noop\n\n if (!support.optSelected) {\n jQuery.propHooks.selected = {\n get: function (elem) {\n /* eslint no-unused-expressions: \"off\" */\n var parent = elem.parentNode;\n\n if (parent && parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n\n return null;\n },\n set: function (elem) {\n /* eslint no-unused-expressions: \"off\" */\n var parent = elem.parentNode;\n\n if (parent) {\n parent.selectedIndex;\n\n if (parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n }\n }\n };\n }\n\n jQuery.each([\"tabIndex\", \"readOnly\", \"maxLength\", \"cellSpacing\", \"cellPadding\", \"rowSpan\", \"colSpan\", \"useMap\", \"frameBorder\", \"contentEditable\"], function () {\n jQuery.propFix[this.toLowerCase()] = this;\n }); // Strip and collapse whitespace according to HTML spec\n // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\n function stripAndCollapse(value) {\n var tokens = value.match(rnothtmlwhite) || [];\n return tokens.join(\" \");\n }\n\n function getClass(elem) {\n return elem.getAttribute && elem.getAttribute(\"class\") || \"\";\n }\n\n function classesToArray(value) {\n if (Array.isArray(value)) {\n return value;\n }\n\n if (typeof value === \"string\") {\n return value.match(rnothtmlwhite) || [];\n }\n\n return [];\n }\n\n jQuery.fn.extend({\n addClass: function (value) {\n var classes,\n elem,\n cur,\n curValue,\n clazz,\n j,\n finalValue,\n i = 0;\n\n if (isFunction(value)) {\n return this.each(function (j) {\n jQuery(this).addClass(value.call(this, j, getClass(this)));\n });\n }\n\n classes = classesToArray(value);\n\n if (classes.length) {\n while (elem = this[i++]) {\n curValue = getClass(elem);\n cur = elem.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n\n if (cur) {\n j = 0;\n\n while (clazz = classes[j++]) {\n if (cur.indexOf(\" \" + clazz + \" \") < 0) {\n cur += clazz + \" \";\n }\n } // Only assign if different to avoid unneeded rendering.\n\n\n finalValue = stripAndCollapse(cur);\n\n if (curValue !== finalValue) {\n elem.setAttribute(\"class\", finalValue);\n }\n }\n }\n }\n\n return this;\n },\n removeClass: function (value) {\n var classes,\n elem,\n cur,\n curValue,\n clazz,\n j,\n finalValue,\n i = 0;\n\n if (isFunction(value)) {\n return this.each(function (j) {\n jQuery(this).removeClass(value.call(this, j, getClass(this)));\n });\n }\n\n if (!arguments.length) {\n return this.attr(\"class\", \"\");\n }\n\n classes = classesToArray(value);\n\n if (classes.length) {\n while (elem = this[i++]) {\n curValue = getClass(elem); // This expression is here for better compressibility (see addClass)\n\n cur = elem.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n\n if (cur) {\n j = 0;\n\n while (clazz = classes[j++]) {\n // Remove *all* instances\n while (cur.indexOf(\" \" + clazz + \" \") > -1) {\n cur = cur.replace(\" \" + clazz + \" \", \" \");\n }\n } // Only assign if different to avoid unneeded rendering.\n\n\n finalValue = stripAndCollapse(cur);\n\n if (curValue !== finalValue) {\n elem.setAttribute(\"class\", finalValue);\n }\n }\n }\n }\n\n return this;\n },\n toggleClass: function (value, stateVal) {\n var type = typeof value,\n isValidValue = type === \"string\" || Array.isArray(value);\n\n if (typeof stateVal === \"boolean\" && isValidValue) {\n return stateVal ? this.addClass(value) : this.removeClass(value);\n }\n\n if (isFunction(value)) {\n return this.each(function (i) {\n jQuery(this).toggleClass(value.call(this, i, getClass(this), stateVal), stateVal);\n });\n }\n\n return this.each(function () {\n var className, i, self, classNames;\n\n if (isValidValue) {\n // Toggle individual class names\n i = 0;\n self = jQuery(this);\n classNames = classesToArray(value);\n\n while (className = classNames[i++]) {\n // Check each className given, space separated list\n if (self.hasClass(className)) {\n self.removeClass(className);\n } else {\n self.addClass(className);\n }\n } // Toggle whole class name\n\n } else if (value === undefined || type === \"boolean\") {\n className = getClass(this);\n\n if (className) {\n // Store className if set\n dataPriv.set(this, \"__className__\", className);\n } // If the element has a class name or if we're passed `false`,\n // then remove the whole classname (if there was one, the above saved it).\n // Otherwise bring back whatever was previously saved (if anything),\n // falling back to the empty string if nothing was stored.\n\n\n if (this.setAttribute) {\n this.setAttribute(\"class\", className || value === false ? \"\" : dataPriv.get(this, \"__className__\") || \"\");\n }\n }\n });\n },\n hasClass: function (selector) {\n var className,\n elem,\n i = 0;\n className = \" \" + selector + \" \";\n\n while (elem = this[i++]) {\n if (elem.nodeType === 1 && (\" \" + stripAndCollapse(getClass(elem)) + \" \").indexOf(className) > -1) {\n return true;\n }\n }\n\n return false;\n }\n });\n var rreturn = /\\r/g;\n jQuery.fn.extend({\n val: function (value) {\n var hooks,\n ret,\n valueIsFunction,\n elem = this[0];\n\n if (!arguments.length) {\n if (elem) {\n hooks = jQuery.valHooks[elem.type] || jQuery.valHooks[elem.nodeName.toLowerCase()];\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, \"value\")) !== undefined) {\n return ret;\n }\n\n ret = elem.value; // Handle most common string cases\n\n if (typeof ret === \"string\") {\n return ret.replace(rreturn, \"\");\n } // Handle cases where value is null/undef or number\n\n\n return ret == null ? \"\" : ret;\n }\n\n return;\n }\n\n valueIsFunction = isFunction(value);\n return this.each(function (i) {\n var val;\n\n if (this.nodeType !== 1) {\n return;\n }\n\n if (valueIsFunction) {\n val = value.call(this, i, jQuery(this).val());\n } else {\n val = value;\n } // Treat null/undefined as \"\"; convert numbers to string\n\n\n if (val == null) {\n val = \"\";\n } else if (typeof val === \"number\") {\n val += \"\";\n } else if (Array.isArray(val)) {\n val = jQuery.map(val, function (value) {\n return value == null ? \"\" : value + \"\";\n });\n }\n\n hooks = jQuery.valHooks[this.type] || jQuery.valHooks[this.nodeName.toLowerCase()]; // If set returns undefined, fall back to normal setting\n\n if (!hooks || !(\"set\" in hooks) || hooks.set(this, val, \"value\") === undefined) {\n this.value = val;\n }\n });\n }\n });\n jQuery.extend({\n valHooks: {\n option: {\n get: function (elem) {\n var val = jQuery.find.attr(elem, \"value\");\n return val != null ? val : // Support: IE <=10 - 11 only\n // option.text throws exceptions (#14686, #14858)\n // Strip and collapse whitespace\n // https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n stripAndCollapse(jQuery.text(elem));\n }\n },\n select: {\n get: function (elem) {\n var value,\n option,\n i,\n options = elem.options,\n index = elem.selectedIndex,\n one = elem.type === \"select-one\",\n values = one ? null : [],\n max = one ? index + 1 : options.length;\n\n if (index < 0) {\n i = max;\n } else {\n i = one ? index : 0;\n } // Loop through all the selected options\n\n\n for (; i < max; i++) {\n option = options[i]; // Support: IE <=9 only\n // IE8-9 doesn't update selected after form reset (#2551)\n\n if ((option.selected || i === index) && // Don't return options that are disabled or in a disabled optgroup\n !option.disabled && (!option.parentNode.disabled || !nodeName(option.parentNode, \"optgroup\"))) {\n // Get the specific value for the option\n value = jQuery(option).val(); // We don't need an array for one selects\n\n if (one) {\n return value;\n } // Multi-Selects return an array\n\n\n values.push(value);\n }\n }\n\n return values;\n },\n set: function (elem, value) {\n var optionSet,\n option,\n options = elem.options,\n values = jQuery.makeArray(value),\n i = options.length;\n\n while (i--) {\n option = options[i];\n /* eslint-disable no-cond-assign */\n\n if (option.selected = jQuery.inArray(jQuery.valHooks.option.get(option), values) > -1) {\n optionSet = true;\n }\n /* eslint-enable no-cond-assign */\n\n } // Force browsers to behave consistently when non-matching value is set\n\n\n if (!optionSet) {\n elem.selectedIndex = -1;\n }\n\n return values;\n }\n }\n }\n }); // Radios and checkboxes getter/setter\n\n jQuery.each([\"radio\", \"checkbox\"], function () {\n jQuery.valHooks[this] = {\n set: function (elem, value) {\n if (Array.isArray(value)) {\n return elem.checked = jQuery.inArray(jQuery(elem).val(), value) > -1;\n }\n }\n };\n\n if (!support.checkOn) {\n jQuery.valHooks[this].get = function (elem) {\n return elem.getAttribute(\"value\") === null ? \"on\" : elem.value;\n };\n }\n }); // Return jQuery for attributes-only inclusion\n\n support.focusin = \"onfocusin\" in window;\n\n var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n stopPropagationCallback = function (e) {\n e.stopPropagation();\n };\n\n jQuery.extend(jQuery.event, {\n trigger: function (event, data, elem, onlyHandlers) {\n var i,\n cur,\n tmp,\n bubbleType,\n ontype,\n handle,\n special,\n lastElement,\n eventPath = [elem || document],\n type = hasOwn.call(event, \"type\") ? event.type : event,\n namespaces = hasOwn.call(event, \"namespace\") ? event.namespace.split(\".\") : [];\n cur = lastElement = tmp = elem = elem || document; // Don't do events on text and comment nodes\n\n if (elem.nodeType === 3 || elem.nodeType === 8) {\n return;\n } // focus/blur morphs to focusin/out; ensure we're not firing them right now\n\n\n if (rfocusMorph.test(type + jQuery.event.triggered)) {\n return;\n }\n\n if (type.indexOf(\".\") > -1) {\n // Namespaced trigger; create a regexp to match event type in handle()\n namespaces = type.split(\".\");\n type = namespaces.shift();\n namespaces.sort();\n }\n\n ontype = type.indexOf(\":\") < 0 && \"on\" + type; // Caller can pass in a jQuery.Event object, Object, or just an event type string\n\n event = event[jQuery.expando] ? event : new jQuery.Event(type, typeof event === \"object\" && event); // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\n event.isTrigger = onlyHandlers ? 2 : 3;\n event.namespace = namespaces.join(\".\");\n event.rnamespace = event.namespace ? new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\") : null; // Clean up the event in case it is being reused\n\n event.result = undefined;\n\n if (!event.target) {\n event.target = elem;\n } // Clone any incoming data and prepend the event, creating the handler arg list\n\n\n data = data == null ? [event] : jQuery.makeArray(data, [event]); // Allow special events to draw outside the lines\n\n special = jQuery.event.special[type] || {};\n\n if (!onlyHandlers && special.trigger && special.trigger.apply(elem, data) === false) {\n return;\n } // Determine event propagation path in advance, per W3C events spec (#9951)\n // Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\n\n if (!onlyHandlers && !special.noBubble && !isWindow(elem)) {\n bubbleType = special.delegateType || type;\n\n if (!rfocusMorph.test(bubbleType + type)) {\n cur = cur.parentNode;\n }\n\n for (; cur; cur = cur.parentNode) {\n eventPath.push(cur);\n tmp = cur;\n } // Only add window if we got to document (e.g., not plain obj or detached DOM)\n\n\n if (tmp === (elem.ownerDocument || document)) {\n eventPath.push(tmp.defaultView || tmp.parentWindow || window);\n }\n } // Fire handlers on the event path\n\n\n i = 0;\n\n while ((cur = eventPath[i++]) && !event.isPropagationStopped()) {\n lastElement = cur;\n event.type = i > 1 ? bubbleType : special.bindType || type; // jQuery handler\n\n handle = (dataPriv.get(cur, \"events\") || Object.create(null))[event.type] && dataPriv.get(cur, \"handle\");\n\n if (handle) {\n handle.apply(cur, data);\n } // Native handler\n\n\n handle = ontype && cur[ontype];\n\n if (handle && handle.apply && acceptData(cur)) {\n event.result = handle.apply(cur, data);\n\n if (event.result === false) {\n event.preventDefault();\n }\n }\n }\n\n event.type = type; // If nobody prevented the default action, do it now\n\n if (!onlyHandlers && !event.isDefaultPrevented()) {\n if ((!special._default || special._default.apply(eventPath.pop(), data) === false) && acceptData(elem)) {\n // Call a native DOM method on the target with the same name as the event.\n // Don't do default actions on window, that's where global variables be (#6170)\n if (ontype && isFunction(elem[type]) && !isWindow(elem)) {\n // Don't re-trigger an onFOO event when we call its FOO() method\n tmp = elem[ontype];\n\n if (tmp) {\n elem[ontype] = null;\n } // Prevent re-triggering of the same event, since we already bubbled it above\n\n\n jQuery.event.triggered = type;\n\n if (event.isPropagationStopped()) {\n lastElement.addEventListener(type, stopPropagationCallback);\n }\n\n elem[type]();\n\n if (event.isPropagationStopped()) {\n lastElement.removeEventListener(type, stopPropagationCallback);\n }\n\n jQuery.event.triggered = undefined;\n\n if (tmp) {\n elem[ontype] = tmp;\n }\n }\n }\n }\n\n return event.result;\n },\n // Piggyback on a donor event to simulate a different one\n // Used only for `focus(in | out)` events\n simulate: function (type, elem, event) {\n var e = jQuery.extend(new jQuery.Event(), event, {\n type: type,\n isSimulated: true\n });\n jQuery.event.trigger(e, null, elem);\n }\n });\n jQuery.fn.extend({\n trigger: function (type, data) {\n return this.each(function () {\n jQuery.event.trigger(type, data, this);\n });\n },\n triggerHandler: function (type, data) {\n var elem = this[0];\n\n if (elem) {\n return jQuery.event.trigger(type, data, elem, true);\n }\n }\n }); // Support: Firefox <=44\n // Firefox doesn't have focus(in | out) events\n // Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n //\n // Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n // focus(in | out) events fire after focus & blur events,\n // which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n // Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\n\n if (!support.focusin) {\n jQuery.each({\n focus: \"focusin\",\n blur: \"focusout\"\n }, function (orig, fix) {\n // Attach a single capturing handler on the document while someone wants focusin/focusout\n var handler = function (event) {\n jQuery.event.simulate(fix, event.target, jQuery.event.fix(event));\n };\n\n jQuery.event.special[fix] = {\n setup: function () {\n // Handle: regular nodes (via `this.ownerDocument`), window\n // (via `this.document`) & document (via `this`).\n var doc = this.ownerDocument || this.document || this,\n attaches = dataPriv.access(doc, fix);\n\n if (!attaches) {\n doc.addEventListener(orig, handler, true);\n }\n\n dataPriv.access(doc, fix, (attaches || 0) + 1);\n },\n teardown: function () {\n var doc = this.ownerDocument || this.document || this,\n attaches = dataPriv.access(doc, fix) - 1;\n\n if (!attaches) {\n doc.removeEventListener(orig, handler, true);\n dataPriv.remove(doc, fix);\n } else {\n dataPriv.access(doc, fix, attaches);\n }\n }\n };\n });\n }\n\n var location = window.location;\n var nonce = {\n guid: Date.now()\n };\n var rquery = /\\?/; // Cross-browser xml parsing\n\n jQuery.parseXML = function (data) {\n var xml;\n\n if (!data || typeof data !== \"string\") {\n return null;\n } // Support: IE 9 - 11 only\n // IE throws on parseFromString with invalid input.\n\n\n try {\n xml = new window.DOMParser().parseFromString(data, \"text/xml\");\n } catch (e) {\n xml = undefined;\n }\n\n if (!xml || xml.getElementsByTagName(\"parsererror\").length) {\n jQuery.error(\"Invalid XML: \" + data);\n }\n\n return xml;\n };\n\n var rbracket = /\\[\\]$/,\n rCRLF = /\\r?\\n/g,\n rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n rsubmittable = /^(?:input|select|textarea|keygen)/i;\n\n function buildParams(prefix, obj, traditional, add) {\n var name;\n\n if (Array.isArray(obj)) {\n // Serialize array item.\n jQuery.each(obj, function (i, v) {\n if (traditional || rbracket.test(prefix)) {\n // Treat each array item as a scalar.\n add(prefix, v);\n } else {\n // Item is non-scalar (array or object), encode its numeric index.\n buildParams(prefix + \"[\" + (typeof v === \"object\" && v != null ? i : \"\") + \"]\", v, traditional, add);\n }\n });\n } else if (!traditional && toType(obj) === \"object\") {\n // Serialize object item.\n for (name in obj) {\n buildParams(prefix + \"[\" + name + \"]\", obj[name], traditional, add);\n }\n } else {\n // Serialize scalar item.\n add(prefix, obj);\n }\n } // Serialize an array of form elements or a set of\n // key/values into a query string\n\n\n jQuery.param = function (a, traditional) {\n var prefix,\n s = [],\n add = function (key, valueOrFunction) {\n // If value is a function, invoke it and use its return value\n var value = isFunction(valueOrFunction) ? valueOrFunction() : valueOrFunction;\n s[s.length] = encodeURIComponent(key) + \"=\" + encodeURIComponent(value == null ? \"\" : value);\n };\n\n if (a == null) {\n return \"\";\n } // If an array was passed in, assume that it is an array of form elements.\n\n\n if (Array.isArray(a) || a.jquery && !jQuery.isPlainObject(a)) {\n // Serialize the form elements\n jQuery.each(a, function () {\n add(this.name, this.value);\n });\n } else {\n // If traditional, encode the \"old\" way (the way 1.3.2 or older\n // did it), otherwise encode params recursively.\n for (prefix in a) {\n buildParams(prefix, a[prefix], traditional, add);\n }\n } // Return the resulting serialization\n\n\n return s.join(\"&\");\n };\n\n jQuery.fn.extend({\n serialize: function () {\n return jQuery.param(this.serializeArray());\n },\n serializeArray: function () {\n return this.map(function () {\n // Can add propHook for \"elements\" to filter or add form elements\n var elements = jQuery.prop(this, \"elements\");\n return elements ? jQuery.makeArray(elements) : this;\n }).filter(function () {\n var type = this.type; // Use .is( \":disabled\" ) so that fieldset[disabled] works\n\n return this.name && !jQuery(this).is(\":disabled\") && rsubmittable.test(this.nodeName) && !rsubmitterTypes.test(type) && (this.checked || !rcheckableType.test(type));\n }).map(function (_i, elem) {\n var val = jQuery(this).val();\n\n if (val == null) {\n return null;\n }\n\n if (Array.isArray(val)) {\n return jQuery.map(val, function (val) {\n return {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n });\n }\n\n return {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n }).get();\n }\n });\n var r20 = /%20/g,\n rhash = /#.*$/,\n rantiCache = /([?&])_=[^&]*/,\n rheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n // #7653, #8125, #8152: local protocol detection\n rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n rnoContent = /^(?:GET|HEAD)$/,\n rprotocol = /^\\/\\//,\n\n /* Prefilters\n * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n * 2) These are called:\n * - BEFORE asking for a transport\n * - AFTER param serialization (s.data is a string if s.processData is true)\n * 3) key is the dataType\n * 4) the catchall symbol \"*\" can be used\n * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n */\n prefilters = {},\n\n /* Transports bindings\n * 1) key is the dataType\n * 2) the catchall symbol \"*\" can be used\n * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n */\n transports = {},\n // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n allTypes = \"*/\".concat(\"*\"),\n // Anchor tag for parsing the document origin\n originAnchor = document.createElement(\"a\");\n originAnchor.href = location.href; // Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\n\n function addToPrefiltersOrTransports(structure) {\n // dataTypeExpression is optional and defaults to \"*\"\n return function (dataTypeExpression, func) {\n if (typeof dataTypeExpression !== \"string\") {\n func = dataTypeExpression;\n dataTypeExpression = \"*\";\n }\n\n var dataType,\n i = 0,\n dataTypes = dataTypeExpression.toLowerCase().match(rnothtmlwhite) || [];\n\n if (isFunction(func)) {\n // For each dataType in the dataTypeExpression\n while (dataType = dataTypes[i++]) {\n // Prepend if requested\n if (dataType[0] === \"+\") {\n dataType = dataType.slice(1) || \"*\";\n (structure[dataType] = structure[dataType] || []).unshift(func); // Otherwise append\n } else {\n (structure[dataType] = structure[dataType] || []).push(func);\n }\n }\n }\n };\n } // Base inspection function for prefilters and transports\n\n\n function inspectPrefiltersOrTransports(structure, options, originalOptions, jqXHR) {\n var inspected = {},\n seekingTransport = structure === transports;\n\n function inspect(dataType) {\n var selected;\n inspected[dataType] = true;\n jQuery.each(structure[dataType] || [], function (_, prefilterOrFactory) {\n var dataTypeOrTransport = prefilterOrFactory(options, originalOptions, jqXHR);\n\n if (typeof dataTypeOrTransport === \"string\" && !seekingTransport && !inspected[dataTypeOrTransport]) {\n options.dataTypes.unshift(dataTypeOrTransport);\n inspect(dataTypeOrTransport);\n return false;\n } else if (seekingTransport) {\n return !(selected = dataTypeOrTransport);\n }\n });\n return selected;\n }\n\n return inspect(options.dataTypes[0]) || !inspected[\"*\"] && inspect(\"*\");\n } // A special extend for ajax options\n // that takes \"flat\" options (not to be deep extended)\n // Fixes #9887\n\n\n function ajaxExtend(target, src) {\n var key,\n deep,\n flatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n for (key in src) {\n if (src[key] !== undefined) {\n (flatOptions[key] ? target : deep || (deep = {}))[key] = src[key];\n }\n }\n\n if (deep) {\n jQuery.extend(true, target, deep);\n }\n\n return target;\n }\n /* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\n\n\n function ajaxHandleResponses(s, jqXHR, responses) {\n var ct,\n type,\n finalDataType,\n firstDataType,\n contents = s.contents,\n dataTypes = s.dataTypes; // Remove auto dataType and get content-type in the process\n\n while (dataTypes[0] === \"*\") {\n dataTypes.shift();\n\n if (ct === undefined) {\n ct = s.mimeType || jqXHR.getResponseHeader(\"Content-Type\");\n }\n } // Check if we're dealing with a known content-type\n\n\n if (ct) {\n for (type in contents) {\n if (contents[type] && contents[type].test(ct)) {\n dataTypes.unshift(type);\n break;\n }\n }\n } // Check to see if we have a response for the expected dataType\n\n\n if (dataTypes[0] in responses) {\n finalDataType = dataTypes[0];\n } else {\n // Try convertible dataTypes\n for (type in responses) {\n if (!dataTypes[0] || s.converters[type + \" \" + dataTypes[0]]) {\n finalDataType = type;\n break;\n }\n\n if (!firstDataType) {\n firstDataType = type;\n }\n } // Or just use first one\n\n\n finalDataType = finalDataType || firstDataType;\n } // If we found a dataType\n // We add the dataType to the list if needed\n // and return the corresponding response\n\n\n if (finalDataType) {\n if (finalDataType !== dataTypes[0]) {\n dataTypes.unshift(finalDataType);\n }\n\n return responses[finalDataType];\n }\n }\n /* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\n\n\n function ajaxConvert(s, response, jqXHR, isSuccess) {\n var conv2,\n current,\n conv,\n tmp,\n prev,\n converters = {},\n // Work with a copy of dataTypes in case we need to modify it for conversion\n dataTypes = s.dataTypes.slice(); // Create converters map with lowercased keys\n\n if (dataTypes[1]) {\n for (conv in s.converters) {\n converters[conv.toLowerCase()] = s.converters[conv];\n }\n }\n\n current = dataTypes.shift(); // Convert to each sequential dataType\n\n while (current) {\n if (s.responseFields[current]) {\n jqXHR[s.responseFields[current]] = response;\n } // Apply the dataFilter if provided\n\n\n if (!prev && isSuccess && s.dataFilter) {\n response = s.dataFilter(response, s.dataType);\n }\n\n prev = current;\n current = dataTypes.shift();\n\n if (current) {\n // There's only work to do if current dataType is non-auto\n if (current === \"*\") {\n current = prev; // Convert response if prev dataType is non-auto and differs from current\n } else if (prev !== \"*\" && prev !== current) {\n // Seek a direct converter\n conv = converters[prev + \" \" + current] || converters[\"* \" + current]; // If none found, seek a pair\n\n if (!conv) {\n for (conv2 in converters) {\n // If conv2 outputs current\n tmp = conv2.split(\" \");\n\n if (tmp[1] === current) {\n // If prev can be converted to accepted input\n conv = converters[prev + \" \" + tmp[0]] || converters[\"* \" + tmp[0]];\n\n if (conv) {\n // Condense equivalence converters\n if (conv === true) {\n conv = converters[conv2]; // Otherwise, insert the intermediate dataType\n } else if (converters[conv2] !== true) {\n current = tmp[0];\n dataTypes.unshift(tmp[1]);\n }\n\n break;\n }\n }\n }\n } // Apply converter (if not an equivalence)\n\n\n if (conv !== true) {\n // Unless errors are allowed to bubble, catch and return them\n if (conv && s.throws) {\n response = conv(response);\n } else {\n try {\n response = conv(response);\n } catch (e) {\n return {\n state: \"parsererror\",\n error: conv ? e : \"No conversion from \" + prev + \" to \" + current\n };\n }\n }\n }\n }\n }\n }\n\n return {\n state: \"success\",\n data: response\n };\n }\n\n jQuery.extend({\n // Counter for holding the number of active queries\n active: 0,\n // Last-Modified header cache for next request\n lastModified: {},\n etag: {},\n ajaxSettings: {\n url: location.href,\n type: \"GET\",\n isLocal: rlocalProtocol.test(location.protocol),\n global: true,\n processData: true,\n async: true,\n contentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n /*\n timeout: 0,\n data: null,\n dataType: null,\n username: null,\n password: null,\n cache: null,\n throws: false,\n traditional: false,\n headers: {},\n */\n accepts: {\n \"*\": allTypes,\n text: \"text/plain\",\n html: \"text/html\",\n xml: \"application/xml, text/xml\",\n json: \"application/json, text/javascript\"\n },\n contents: {\n xml: /\\bxml\\b/,\n html: /\\bhtml/,\n json: /\\bjson\\b/\n },\n responseFields: {\n xml: \"responseXML\",\n text: \"responseText\",\n json: \"responseJSON\"\n },\n // Data converters\n // Keys separate source (or catchall \"*\") and destination types with a single space\n converters: {\n // Convert anything to text\n \"* text\": String,\n // Text to html (true = no transformation)\n \"text html\": true,\n // Evaluate text as a json expression\n \"text json\": JSON.parse,\n // Parse text as xml\n \"text xml\": jQuery.parseXML\n },\n // For options that shouldn't be deep extended:\n // you can add your own custom options here if\n // and when you create one that shouldn't be\n // deep extended (see ajaxExtend)\n flatOptions: {\n url: true,\n context: true\n }\n },\n // Creates a full fledged settings object into target\n // with both ajaxSettings and settings fields.\n // If target is omitted, writes into ajaxSettings.\n ajaxSetup: function (target, settings) {\n return settings ? // Building a settings object\n ajaxExtend(ajaxExtend(target, jQuery.ajaxSettings), settings) : // Extending ajaxSettings\n ajaxExtend(jQuery.ajaxSettings, target);\n },\n ajaxPrefilter: addToPrefiltersOrTransports(prefilters),\n ajaxTransport: addToPrefiltersOrTransports(transports),\n // Main method\n ajax: function (url, options) {\n // If url is an object, simulate pre-1.5 signature\n if (typeof url === \"object\") {\n options = url;\n url = undefined;\n } // Force options to be an object\n\n\n options = options || {};\n var transport,\n // URL without anti-cache param\n cacheURL,\n // Response headers\n responseHeadersString,\n responseHeaders,\n // timeout handle\n timeoutTimer,\n // Url cleanup var\n urlAnchor,\n // Request state (becomes false upon send and true upon completion)\n completed,\n // To know if global events are to be dispatched\n fireGlobals,\n // Loop variable\n i,\n // uncached part of the url\n uncached,\n // Create the final options object\n s = jQuery.ajaxSetup({}, options),\n // Callbacks context\n callbackContext = s.context || s,\n // Context for global events is callbackContext if it is a DOM node or jQuery collection\n globalEventContext = s.context && (callbackContext.nodeType || callbackContext.jquery) ? jQuery(callbackContext) : jQuery.event,\n // Deferreds\n deferred = jQuery.Deferred(),\n completeDeferred = jQuery.Callbacks(\"once memory\"),\n // Status-dependent callbacks\n statusCode = s.statusCode || {},\n // Headers (they are sent all at once)\n requestHeaders = {},\n requestHeadersNames = {},\n // Default abort message\n strAbort = \"canceled\",\n // Fake xhr\n jqXHR = {\n readyState: 0,\n // Builds headers hashtable if needed\n getResponseHeader: function (key) {\n var match;\n\n if (completed) {\n if (!responseHeaders) {\n responseHeaders = {};\n\n while (match = rheaders.exec(responseHeadersString)) {\n responseHeaders[match[1].toLowerCase() + \" \"] = (responseHeaders[match[1].toLowerCase() + \" \"] || []).concat(match[2]);\n }\n }\n\n match = responseHeaders[key.toLowerCase() + \" \"];\n }\n\n return match == null ? null : match.join(\", \");\n },\n // Raw string\n getAllResponseHeaders: function () {\n return completed ? responseHeadersString : null;\n },\n // Caches the header\n setRequestHeader: function (name, value) {\n if (completed == null) {\n name = requestHeadersNames[name.toLowerCase()] = requestHeadersNames[name.toLowerCase()] || name;\n requestHeaders[name] = value;\n }\n\n return this;\n },\n // Overrides response content-type header\n overrideMimeType: function (type) {\n if (completed == null) {\n s.mimeType = type;\n }\n\n return this;\n },\n // Status-dependent callbacks\n statusCode: function (map) {\n var code;\n\n if (map) {\n if (completed) {\n // Execute the appropriate callbacks\n jqXHR.always(map[jqXHR.status]);\n } else {\n // Lazy-add the new callbacks in a way that preserves old ones\n for (code in map) {\n statusCode[code] = [statusCode[code], map[code]];\n }\n }\n }\n\n return this;\n },\n // Cancel the request\n abort: function (statusText) {\n var finalText = statusText || strAbort;\n\n if (transport) {\n transport.abort(finalText);\n }\n\n done(0, finalText);\n return this;\n }\n }; // Attach deferreds\n\n deferred.promise(jqXHR); // Add protocol if not provided (prefilters might expect it)\n // Handle falsy url in the settings object (#10093: consistency with old signature)\n // We also use the url parameter if available\n\n s.url = ((url || s.url || location.href) + \"\").replace(rprotocol, location.protocol + \"//\"); // Alias method option to type as per ticket #12004\n\n s.type = options.method || options.type || s.method || s.type; // Extract dataTypes list\n\n s.dataTypes = (s.dataType || \"*\").toLowerCase().match(rnothtmlwhite) || [\"\"]; // A cross-domain request is in order when the origin doesn't match the current origin.\n\n if (s.crossDomain == null) {\n urlAnchor = document.createElement(\"a\"); // Support: IE <=8 - 11, Edge 12 - 15\n // IE throws exception on accessing the href property if url is malformed,\n // e.g. http://example.com:80x/\n\n try {\n urlAnchor.href = s.url; // Support: IE <=8 - 11 only\n // Anchor's host property isn't correctly set when s.url is relative\n\n urlAnchor.href = urlAnchor.href;\n s.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !== urlAnchor.protocol + \"//\" + urlAnchor.host;\n } catch (e) {\n // If there is an error parsing the URL, assume it is crossDomain,\n // it can be rejected by the transport if it is invalid\n s.crossDomain = true;\n }\n } // Convert data if not already a string\n\n\n if (s.data && s.processData && typeof s.data !== \"string\") {\n s.data = jQuery.param(s.data, s.traditional);\n } // Apply prefilters\n\n\n inspectPrefiltersOrTransports(prefilters, s, options, jqXHR); // If request was aborted inside a prefilter, stop there\n\n if (completed) {\n return jqXHR;\n } // We can fire global events as of now if asked to\n // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\n\n fireGlobals = jQuery.event && s.global; // Watch for a new set of requests\n\n if (fireGlobals && jQuery.active++ === 0) {\n jQuery.event.trigger(\"ajaxStart\");\n } // Uppercase the type\n\n\n s.type = s.type.toUpperCase(); // Determine if request has content\n\n s.hasContent = !rnoContent.test(s.type); // Save the URL in case we're toying with the If-Modified-Since\n // and/or If-None-Match header later on\n // Remove hash to simplify url manipulation\n\n cacheURL = s.url.replace(rhash, \"\"); // More options handling for requests with no content\n\n if (!s.hasContent) {\n // Remember the hash so we can put it back\n uncached = s.url.slice(cacheURL.length); // If data is available and should be processed, append data to url\n\n if (s.data && (s.processData || typeof s.data === \"string\")) {\n cacheURL += (rquery.test(cacheURL) ? \"&\" : \"?\") + s.data; // #9682: remove data so that it's not used in an eventual retry\n\n delete s.data;\n } // Add or update anti-cache param if needed\n\n\n if (s.cache === false) {\n cacheURL = cacheURL.replace(rantiCache, \"$1\");\n uncached = (rquery.test(cacheURL) ? \"&\" : \"?\") + \"_=\" + nonce.guid++ + uncached;\n } // Put hash and anti-cache on the URL that will be requested (gh-1732)\n\n\n s.url = cacheURL + uncached; // Change '%20' to '+' if this is encoded form body content (gh-2658)\n } else if (s.data && s.processData && (s.contentType || \"\").indexOf(\"application/x-www-form-urlencoded\") === 0) {\n s.data = s.data.replace(r20, \"+\");\n } // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\n\n if (s.ifModified) {\n if (jQuery.lastModified[cacheURL]) {\n jqXHR.setRequestHeader(\"If-Modified-Since\", jQuery.lastModified[cacheURL]);\n }\n\n if (jQuery.etag[cacheURL]) {\n jqXHR.setRequestHeader(\"If-None-Match\", jQuery.etag[cacheURL]);\n }\n } // Set the correct header, if data is being sent\n\n\n if (s.data && s.hasContent && s.contentType !== false || options.contentType) {\n jqXHR.setRequestHeader(\"Content-Type\", s.contentType);\n } // Set the Accepts header for the server, depending on the dataType\n\n\n jqXHR.setRequestHeader(\"Accept\", s.dataTypes[0] && s.accepts[s.dataTypes[0]] ? s.accepts[s.dataTypes[0]] + (s.dataTypes[0] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\") : s.accepts[\"*\"]); // Check for headers option\n\n for (i in s.headers) {\n jqXHR.setRequestHeader(i, s.headers[i]);\n } // Allow custom headers/mimetypes and early abort\n\n\n if (s.beforeSend && (s.beforeSend.call(callbackContext, jqXHR, s) === false || completed)) {\n // Abort if not done already and return\n return jqXHR.abort();\n } // Aborting is no longer a cancellation\n\n\n strAbort = \"abort\"; // Install callbacks on deferreds\n\n completeDeferred.add(s.complete);\n jqXHR.done(s.success);\n jqXHR.fail(s.error); // Get transport\n\n transport = inspectPrefiltersOrTransports(transports, s, options, jqXHR); // If no transport, we auto-abort\n\n if (!transport) {\n done(-1, \"No Transport\");\n } else {\n jqXHR.readyState = 1; // Send global event\n\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxSend\", [jqXHR, s]);\n } // If request was aborted inside ajaxSend, stop there\n\n\n if (completed) {\n return jqXHR;\n } // Timeout\n\n\n if (s.async && s.timeout > 0) {\n timeoutTimer = window.setTimeout(function () {\n jqXHR.abort(\"timeout\");\n }, s.timeout);\n }\n\n try {\n completed = false;\n transport.send(requestHeaders, done);\n } catch (e) {\n // Rethrow post-completion exceptions\n if (completed) {\n throw e;\n } // Propagate others as results\n\n\n done(-1, e);\n }\n } // Callback for when everything is done\n\n\n function done(status, nativeStatusText, responses, headers) {\n var isSuccess,\n success,\n error,\n response,\n modified,\n statusText = nativeStatusText; // Ignore repeat invocations\n\n if (completed) {\n return;\n }\n\n completed = true; // Clear timeout if it exists\n\n if (timeoutTimer) {\n window.clearTimeout(timeoutTimer);\n } // Dereference transport for early garbage collection\n // (no matter how long the jqXHR object will be used)\n\n\n transport = undefined; // Cache response headers\n\n responseHeadersString = headers || \"\"; // Set readyState\n\n jqXHR.readyState = status > 0 ? 4 : 0; // Determine if successful\n\n isSuccess = status >= 200 && status < 300 || status === 304; // Get response data\n\n if (responses) {\n response = ajaxHandleResponses(s, jqXHR, responses);\n } // Use a noop converter for missing script\n\n\n if (!isSuccess && jQuery.inArray(\"script\", s.dataTypes) > -1) {\n s.converters[\"text script\"] = function () {};\n } // Convert no matter what (that way responseXXX fields are always set)\n\n\n response = ajaxConvert(s, response, jqXHR, isSuccess); // If successful, handle type chaining\n\n if (isSuccess) {\n // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n if (s.ifModified) {\n modified = jqXHR.getResponseHeader(\"Last-Modified\");\n\n if (modified) {\n jQuery.lastModified[cacheURL] = modified;\n }\n\n modified = jqXHR.getResponseHeader(\"etag\");\n\n if (modified) {\n jQuery.etag[cacheURL] = modified;\n }\n } // if no content\n\n\n if (status === 204 || s.type === \"HEAD\") {\n statusText = \"nocontent\"; // if not modified\n } else if (status === 304) {\n statusText = \"notmodified\"; // If we have data, let's convert it\n } else {\n statusText = response.state;\n success = response.data;\n error = response.error;\n isSuccess = !error;\n }\n } else {\n // Extract error from statusText and normalize for non-aborts\n error = statusText;\n\n if (status || !statusText) {\n statusText = \"error\";\n\n if (status < 0) {\n status = 0;\n }\n }\n } // Set data for the fake xhr object\n\n\n jqXHR.status = status;\n jqXHR.statusText = (nativeStatusText || statusText) + \"\"; // Success/Error\n\n if (isSuccess) {\n deferred.resolveWith(callbackContext, [success, statusText, jqXHR]);\n } else {\n deferred.rejectWith(callbackContext, [jqXHR, statusText, error]);\n } // Status-dependent callbacks\n\n\n jqXHR.statusCode(statusCode);\n statusCode = undefined;\n\n if (fireGlobals) {\n globalEventContext.trigger(isSuccess ? \"ajaxSuccess\" : \"ajaxError\", [jqXHR, s, isSuccess ? success : error]);\n } // Complete\n\n\n completeDeferred.fireWith(callbackContext, [jqXHR, statusText]);\n\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxComplete\", [jqXHR, s]); // Handle the global AJAX counter\n\n if (! --jQuery.active) {\n jQuery.event.trigger(\"ajaxStop\");\n }\n }\n }\n\n return jqXHR;\n },\n getJSON: function (url, data, callback) {\n return jQuery.get(url, data, callback, \"json\");\n },\n getScript: function (url, callback) {\n return jQuery.get(url, undefined, callback, \"script\");\n }\n });\n jQuery.each([\"get\", \"post\"], function (_i, method) {\n jQuery[method] = function (url, data, callback, type) {\n // Shift arguments if data argument was omitted\n if (isFunction(data)) {\n type = type || callback;\n callback = data;\n data = undefined;\n } // The url can be an options object (which then must have .url)\n\n\n return jQuery.ajax(jQuery.extend({\n url: url,\n type: method,\n dataType: type,\n data: data,\n success: callback\n }, jQuery.isPlainObject(url) && url));\n };\n });\n jQuery.ajaxPrefilter(function (s) {\n var i;\n\n for (i in s.headers) {\n if (i.toLowerCase() === \"content-type\") {\n s.contentType = s.headers[i] || \"\";\n }\n }\n });\n\n jQuery._evalUrl = function (url, options, doc) {\n return jQuery.ajax({\n url: url,\n // Make this explicit, since user can override this through ajaxSetup (#11264)\n type: \"GET\",\n dataType: \"script\",\n cache: true,\n async: false,\n global: false,\n // Only evaluate the response if it is successful (gh-4126)\n // dataFilter is not invoked for failure responses, so using it instead\n // of the default converter is kludgy but it works.\n converters: {\n \"text script\": function () {}\n },\n dataFilter: function (response) {\n jQuery.globalEval(response, options, doc);\n }\n });\n };\n\n jQuery.fn.extend({\n wrapAll: function (html) {\n var wrap;\n\n if (this[0]) {\n if (isFunction(html)) {\n html = html.call(this[0]);\n } // The elements to wrap the target around\n\n\n wrap = jQuery(html, this[0].ownerDocument).eq(0).clone(true);\n\n if (this[0].parentNode) {\n wrap.insertBefore(this[0]);\n }\n\n wrap.map(function () {\n var elem = this;\n\n while (elem.firstElementChild) {\n elem = elem.firstElementChild;\n }\n\n return elem;\n }).append(this);\n }\n\n return this;\n },\n wrapInner: function (html) {\n if (isFunction(html)) {\n return this.each(function (i) {\n jQuery(this).wrapInner(html.call(this, i));\n });\n }\n\n return this.each(function () {\n var self = jQuery(this),\n contents = self.contents();\n\n if (contents.length) {\n contents.wrapAll(html);\n } else {\n self.append(html);\n }\n });\n },\n wrap: function (html) {\n var htmlIsFunction = isFunction(html);\n return this.each(function (i) {\n jQuery(this).wrapAll(htmlIsFunction ? html.call(this, i) : html);\n });\n },\n unwrap: function (selector) {\n this.parent(selector).not(\"body\").each(function () {\n jQuery(this).replaceWith(this.childNodes);\n });\n return this;\n }\n });\n\n jQuery.expr.pseudos.hidden = function (elem) {\n return !jQuery.expr.pseudos.visible(elem);\n };\n\n jQuery.expr.pseudos.visible = function (elem) {\n return !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length);\n };\n\n jQuery.ajaxSettings.xhr = function () {\n try {\n return new window.XMLHttpRequest();\n } catch (e) {}\n };\n\n var xhrSuccessStatus = {\n // File protocol always yields status code 0, assume 200\n 0: 200,\n // Support: IE <=9 only\n // #1450: sometimes IE returns 1223 when it should be 204\n 1223: 204\n },\n xhrSupported = jQuery.ajaxSettings.xhr();\n support.cors = !!xhrSupported && \"withCredentials\" in xhrSupported;\n support.ajax = xhrSupported = !!xhrSupported;\n jQuery.ajaxTransport(function (options) {\n var callback, errorCallback; // Cross domain only allowed if supported through XMLHttpRequest\n\n if (support.cors || xhrSupported && !options.crossDomain) {\n return {\n send: function (headers, complete) {\n var i,\n xhr = options.xhr();\n xhr.open(options.type, options.url, options.async, options.username, options.password); // Apply custom fields if provided\n\n if (options.xhrFields) {\n for (i in options.xhrFields) {\n xhr[i] = options.xhrFields[i];\n }\n } // Override mime type if needed\n\n\n if (options.mimeType && xhr.overrideMimeType) {\n xhr.overrideMimeType(options.mimeType);\n } // X-Requested-With header\n // For cross-domain requests, seeing as conditions for a preflight are\n // akin to a jigsaw puzzle, we simply never set it to be sure.\n // (it can always be set on a per-request basis or even using ajaxSetup)\n // For same-domain requests, won't change header if already provided.\n\n\n if (!options.crossDomain && !headers[\"X-Requested-With\"]) {\n headers[\"X-Requested-With\"] = \"XMLHttpRequest\";\n } // Set headers\n\n\n for (i in headers) {\n xhr.setRequestHeader(i, headers[i]);\n } // Callback\n\n\n callback = function (type) {\n return function () {\n if (callback) {\n callback = errorCallback = xhr.onload = xhr.onerror = xhr.onabort = xhr.ontimeout = xhr.onreadystatechange = null;\n\n if (type === \"abort\") {\n xhr.abort();\n } else if (type === \"error\") {\n // Support: IE <=9 only\n // On a manual native abort, IE9 throws\n // errors on any property access that is not readyState\n if (typeof xhr.status !== \"number\") {\n complete(0, \"error\");\n } else {\n complete( // File: protocol always yields status 0; see #8605, #14207\n xhr.status, xhr.statusText);\n }\n } else {\n complete(xhrSuccessStatus[xhr.status] || xhr.status, xhr.statusText, // Support: IE <=9 only\n // IE9 has no XHR2 but throws on binary (trac-11426)\n // For XHR2 non-text, let the caller handle it (gh-2498)\n (xhr.responseType || \"text\") !== \"text\" || typeof xhr.responseText !== \"string\" ? {\n binary: xhr.response\n } : {\n text: xhr.responseText\n }, xhr.getAllResponseHeaders());\n }\n }\n };\n }; // Listen to events\n\n\n xhr.onload = callback();\n errorCallback = xhr.onerror = xhr.ontimeout = callback(\"error\"); // Support: IE 9 only\n // Use onreadystatechange to replace onabort\n // to handle uncaught aborts\n\n if (xhr.onabort !== undefined) {\n xhr.onabort = errorCallback;\n } else {\n xhr.onreadystatechange = function () {\n // Check readyState before timeout as it changes\n if (xhr.readyState === 4) {\n // Allow onerror to be called first,\n // but that will not handle a native abort\n // Also, save errorCallback to a variable\n // as xhr.onerror cannot be accessed\n window.setTimeout(function () {\n if (callback) {\n errorCallback();\n }\n });\n }\n };\n } // Create the abort callback\n\n\n callback = callback(\"abort\");\n\n try {\n // Do send the request (this may raise an exception)\n xhr.send(options.hasContent && options.data || null);\n } catch (e) {\n // #14683: Only rethrow if this hasn't been notified as an error yet\n if (callback) {\n throw e;\n }\n }\n },\n abort: function () {\n if (callback) {\n callback();\n }\n }\n };\n }\n }); // Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\n\n jQuery.ajaxPrefilter(function (s) {\n if (s.crossDomain) {\n s.contents.script = false;\n }\n }); // Install script dataType\n\n jQuery.ajaxSetup({\n accepts: {\n script: \"text/javascript, application/javascript, \" + \"application/ecmascript, application/x-ecmascript\"\n },\n contents: {\n script: /\\b(?:java|ecma)script\\b/\n },\n converters: {\n \"text script\": function (text) {\n jQuery.globalEval(text);\n return text;\n }\n }\n }); // Handle cache's special case and crossDomain\n\n jQuery.ajaxPrefilter(\"script\", function (s) {\n if (s.cache === undefined) {\n s.cache = false;\n }\n\n if (s.crossDomain) {\n s.type = \"GET\";\n }\n }); // Bind script tag hack transport\n\n jQuery.ajaxTransport(\"script\", function (s) {\n // This transport only deals with cross domain or forced-by-attrs requests\n if (s.crossDomain || s.scriptAttrs) {\n var script, callback;\n return {\n send: function (_, complete) {\n script = jQuery(\"