{"version":3,"file":"js/1589-a82d07e3d7bc4f91eb4a.js","mappings":"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","sources":["webpack://app/./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack://app/./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack://app/./node_modules/bootstrap-tagsinput/dist/bootstrap-tagsinput.js","webpack://app/./node_modules/core-js/internals/a-callable.js","webpack://app/./node_modules/core-js/internals/a-possible-prototype.js","webpack://app/./node_modules/core-js/internals/an-object.js","webpack://app/./node_modules/core-js/internals/array-buffer-basic-detection.js","webpack://app/./node_modules/core-js/internals/array-buffer-view-core.js","webpack://app/./node_modules/core-js/internals/array-includes.js","webpack://app/./node_modules/core-js/internals/array-slice.js","webpack://app/./node_modules/core-js/internals/classof-raw.js","webpack://app/./node_modules/core-js/internals/classof.js","webpack://app/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://app/./node_modules/core-js/internals/correct-prototype-getter.js","webpack://app/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://app/./node_modules/core-js/internals/create-property-descriptor.js","webpack://app/./node_modules/core-js/internals/define-built-in-accessor.js","webpack://app/./node_modules/core-js/internals/define-built-in.js","webpack://app/./node_modules/core-js/internals/define-global-property.js","webpack://app/./node_modules/core-js/internals/descriptors.js","webpack://app/./node_modules/core-js/internals/document-all.js","webpack://app/./node_modules/core-js/internals/document-create-element.js","webpack://app/./node_modules/core-js/internals/engine-is-ios.js","webpack://app/./node_modules/core-js/internals/engine-is-node.js","webpack://app/./node_modules/core-js/internals/engine-user-agent.js","webpack://app/./node_modules/core-js/internals/engine-v8-version.js","webpack://app/./node_modules/core-js/internals/enum-bug-keys.js","webpack://app/./node_modules/core-js/internals/export.js","webpack://app/./node_modules/core-js/internals/fails.js","webpack://app/./node_modules/core-js/internals/function-apply.js","webpack://app/./node_modules/core-js/internals/function-bind-context.js","webpack://app/./node_modules/core-js/internals/function-bind-native.js","webpack://app/./node_modules/core-js/internals/function-call.js","webpack://app/./node_modules/core-js/internals/function-name.js","webpack://app/./node_modules/core-js/internals/function-uncurry-this.js","webpack://app/./node_modules/core-js/internals/get-built-in.js","webpack://app/./node_modules/core-js/internals/get-method.js","webpack://app/./node_modules/core-js/internals/global.js","webpack://app/./node_modules/core-js/internals/has-own-property.js","webpack://app/./node_modules/core-js/internals/hidden-keys.js","webpack://app/./node_modules/core-js/internals/html.js","webpack://app/./node_modules/core-js/internals/ie8-dom-define.js","webpack://app/./node_modules/core-js/internals/indexed-object.js","webpack://app/./node_modules/core-js/internals/inspect-source.js","webpack://app/./node_modules/core-js/internals/internal-state.js","webpack://app/./node_modules/core-js/internals/is-callable.js","webpack://app/./node_modules/core-js/internals/is-forced.js","webpack://app/./node_modules/core-js/internals/is-null-or-undefined.js","webpack://app/./node_modules/core-js/internals/is-object.js","webpack://app/./node_modules/core-js/internals/is-pure.js","webpack://app/./node_modules/core-js/internals/is-symbol.js","webpack://app/./node_modules/core-js/internals/length-of-array-like.js","webpack://app/./node_modules/core-js/internals/make-built-in.js","webpack://app/./node_modules/core-js/internals/math-trunc.js","webpack://app/./node_modules/core-js/internals/object-define-property.js","webpack://app/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://app/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://app/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://app/./node_modules/core-js/internals/object-get-prototype-of.js","webpack://app/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://app/./node_modules/core-js/internals/object-keys-internal.js","webpack://app/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://app/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://app/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://app/./node_modules/core-js/internals/own-keys.js","webpack://app/./node_modules/core-js/internals/regexp-flags.js","webpack://app/./node_modules/core-js/internals/require-object-coercible.js","webpack://app/./node_modules/core-js/internals/shared-key.js","webpack://app/./node_modules/core-js/internals/shared-store.js","webpack://app/./node_modules/core-js/internals/shared.js","webpack://app/./node_modules/core-js/internals/symbol-constructor-detection.js","webpack://app/./node_modules/core-js/internals/task.js","webpack://app/./node_modules/core-js/internals/to-absolute-index.js","webpack://app/./node_modules/core-js/internals/to-indexed-object.js","webpack://app/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://app/./node_modules/core-js/internals/to-length.js","webpack://app/./node_modules/core-js/internals/to-object.js","webpack://app/./node_modules/core-js/internals/to-offset.js","webpack://app/./node_modules/core-js/internals/to-positive-integer.js","webpack://app/./node_modules/core-js/internals/to-primitive.js","webpack://app/./node_modules/core-js/internals/to-property-key.js","webpack://app/./node_modules/core-js/internals/to-string-tag-support.js","webpack://app/./node_modules/core-js/internals/try-to-string.js","webpack://app/./node_modules/core-js/internals/uid.js","webpack://app/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://app/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://app/./node_modules/core-js/internals/validate-arguments-length.js","webpack://app/./node_modules/core-js/internals/weak-map-basic-detection.js","webpack://app/./node_modules/core-js/internals/well-known-symbol.js","webpack://app/./node_modules/core-js/modules/es.regexp.flags.js","webpack://app/./node_modules/core-js/modules/es.typed-array.set.js","webpack://app/./node_modules/core-js/modules/web.clear-immediate.js","webpack://app/./node_modules/core-js/modules/web.immediate.js","webpack://app/./node_modules/core-js/modules/web.set-immediate.js","webpack://app/./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs-exposed.js","webpack://app/./node_modules/quill/dist/quill-exposed.js","webpack://app/./node_modules/expose-loader/dist/runtime/getGlobalThis.js","webpack://app/./node_modules/jquery/dist/jquery.js","webpack://app/./node_modules/quill/dist/quill.js","webpack://app/./node_modules/regenerator-runtime/runtime.js"],"sourcesContent":["(function(global, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && define.amd ? define([ \"exports\" ], factory) : factory(global.ActiveStorage = {});\n})(this, function(exports) {\n \"use strict\";\n function createCommonjsModule(fn, module) {\n return module = {\n exports: {}\n }, fn(module, module.exports), module.exports;\n }\n var sparkMd5 = createCommonjsModule(function(module, exports) {\n (function(factory) {\n {\n module.exports = factory();\n }\n })(function(undefined) {\n var hex_chr = [ \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\" ];\n function md5cycle(x, k) {\n var a = x[0], b = x[1], c = x[2], d = x[3];\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n function md5blk(s) {\n var md5blks = [], i;\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n }\n return md5blks;\n }\n function md5blk_array(a) {\n var md5blks = [], i;\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n }\n return md5blks;\n }\n function md51(s) {\n var n = s.length, state = [ 1732584193, -271733879, -1732584194, 271733878 ], i, length, tail, tmp, lo, hi;\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n s = s.substring(i - 64);\n length = s.length;\n tail = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n }\n tail[i >> 2] |= 128 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n function md51_array(a) {\n var n = a.length, state = [ 1732584193, -271733879, -1732584194, 271733878 ], i, length, tail, tmp, lo, hi;\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\n a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);\n length = a.length;\n tail = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << (i % 4 << 3);\n }\n tail[i >> 2] |= 128 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n function rhex(n) {\n var s = \"\", j;\n for (j = 0; j < 4; j += 1) {\n s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];\n }\n return s;\n }\n function hex(x) {\n var i;\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n return x.join(\"\");\n }\n if (hex(md51(\"hello\")) !== \"5d41402abc4b2a76b9719d911017c592\") ;\n if (typeof ArrayBuffer !== \"undefined\" && !ArrayBuffer.prototype.slice) {\n (function() {\n function clamp(val, length) {\n val = val | 0 || 0;\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n return Math.min(val, length);\n }\n ArrayBuffer.prototype.slice = function(from, to) {\n var length = this.byteLength, begin = clamp(from, length), end = length, num, target, targetArray, sourceArray;\n if (to !== undefined) {\n end = clamp(to, length);\n }\n if (begin > end) {\n return new ArrayBuffer(0);\n }\n num = end - begin;\n target = new ArrayBuffer(num);\n targetArray = new Uint8Array(target);\n sourceArray = new Uint8Array(this, begin, num);\n targetArray.set(sourceArray);\n return target;\n };\n })();\n }\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n return str;\n }\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length, buff = new ArrayBuffer(length), arr = new Uint8Array(buff), i;\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n return returnUInt8Array ? arr : buff;\n }\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\n function concatenateArrayBuffers(first, second, returnUInt8Array) {\n var result = new Uint8Array(first.byteLength + second.byteLength);\n result.set(new Uint8Array(first));\n result.set(new Uint8Array(second), first.byteLength);\n return returnUInt8Array ? result : result.buffer;\n }\n function hexToBinaryString(hex) {\n var bytes = [], length = hex.length, x;\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n return String.fromCharCode.apply(String, bytes);\n }\n function SparkMD5() {\n this.reset();\n }\n SparkMD5.prototype.append = function(str) {\n this.appendBinary(toUtf8(str));\n return this;\n };\n SparkMD5.prototype.appendBinary = function(contents) {\n this._buff += contents;\n this._length += contents.length;\n var length = this._buff.length, i;\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n this._buff = this._buff.substring(i - 64);\n return this;\n };\n SparkMD5.prototype.end = function(raw) {\n var buff = this._buff, length = buff.length, i, tail = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], ret;\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n }\n this._finish(tail, length);\n ret = hex(this._hash);\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n this.reset();\n return ret;\n };\n SparkMD5.prototype.reset = function() {\n this._buff = \"\";\n this._length = 0;\n this._hash = [ 1732584193, -271733879, -1732584194, 271733878 ];\n return this;\n };\n SparkMD5.prototype.getState = function() {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash\n };\n };\n SparkMD5.prototype.setState = function(state) {\n this._buff = state.buff;\n this._length = state.length;\n this._hash = state.hash;\n return this;\n };\n SparkMD5.prototype.destroy = function() {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n SparkMD5.prototype._finish = function(tail, length) {\n var i = length, tmp, lo, hi;\n tail[i >> 2] |= 128 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(this._hash, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n tmp = this._length * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(this._hash, tail);\n };\n SparkMD5.hash = function(str, raw) {\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n SparkMD5.hashBinary = function(content, raw) {\n var hash = md51(content), ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n SparkMD5.ArrayBuffer = function() {\n this.reset();\n };\n SparkMD5.ArrayBuffer.prototype.append = function(arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true), length = buff.length, i;\n this._length += arr.byteLength;\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n return this;\n };\n SparkMD5.ArrayBuffer.prototype.end = function(raw) {\n var buff = this._buff, length = buff.length, tail = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], i, ret;\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << (i % 4 << 3);\n }\n this._finish(tail, length);\n ret = hex(this._hash);\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n this.reset();\n return ret;\n };\n SparkMD5.ArrayBuffer.prototype.reset = function() {\n this._buff = new Uint8Array(0);\n this._length = 0;\n this._hash = [ 1732584193, -271733879, -1732584194, 271733878 ];\n return this;\n };\n SparkMD5.ArrayBuffer.prototype.getState = function() {\n var state = SparkMD5.prototype.getState.call(this);\n state.buff = arrayBuffer2Utf8Str(state.buff);\n return state;\n };\n SparkMD5.ArrayBuffer.prototype.setState = function(state) {\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n return SparkMD5.prototype.setState.call(this, state);\n };\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n SparkMD5.ArrayBuffer.hash = function(arr, raw) {\n var hash = md51_array(new Uint8Array(arr)), ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n return SparkMD5;\n });\n });\n var classCallCheck = function(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n };\n var createClass = function() {\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 return function(Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n var FileChecksum = function() {\n createClass(FileChecksum, null, [ {\n key: \"create\",\n value: function create(file, callback) {\n var instance = new FileChecksum(file);\n instance.create(callback);\n }\n } ]);\n function FileChecksum(file) {\n classCallCheck(this, FileChecksum);\n this.file = file;\n this.chunkSize = 2097152;\n this.chunkCount = Math.ceil(this.file.size / this.chunkSize);\n this.chunkIndex = 0;\n }\n createClass(FileChecksum, [ {\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n this.callback = callback;\n this.md5Buffer = new sparkMd5.ArrayBuffer();\n this.fileReader = new FileReader();\n this.fileReader.addEventListener(\"load\", function(event) {\n return _this.fileReaderDidLoad(event);\n });\n this.fileReader.addEventListener(\"error\", function(event) {\n return _this.fileReaderDidError(event);\n });\n this.readNextChunk();\n }\n }, {\n key: \"fileReaderDidLoad\",\n value: function fileReaderDidLoad(event) {\n this.md5Buffer.append(event.target.result);\n if (!this.readNextChunk()) {\n var binaryDigest = this.md5Buffer.end(true);\n var base64digest = btoa(binaryDigest);\n this.callback(null, base64digest);\n }\n }\n }, {\n key: \"fileReaderDidError\",\n value: function fileReaderDidError(event) {\n this.callback(\"Error reading \" + this.file.name);\n }\n }, {\n key: \"readNextChunk\",\n value: function readNextChunk() {\n if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {\n var start = this.chunkIndex * this.chunkSize;\n var end = Math.min(start + this.chunkSize, this.file.size);\n var bytes = fileSlice.call(this.file, start, end);\n this.fileReader.readAsArrayBuffer(bytes);\n this.chunkIndex++;\n return true;\n } else {\n return false;\n }\n }\n } ]);\n return FileChecksum;\n }();\n function getMetaValue(name) {\n var element = findElement(document.head, 'meta[name=\"' + name + '\"]');\n if (element) {\n return element.getAttribute(\"content\");\n }\n }\n function findElements(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n var elements = root.querySelectorAll(selector);\n return toArray$1(elements);\n }\n function findElement(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n return root.querySelector(selector);\n }\n function dispatchEvent(element, type) {\n var eventInit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var disabled = element.disabled;\n var bubbles = eventInit.bubbles, cancelable = eventInit.cancelable, detail = eventInit.detail;\n var event = document.createEvent(\"Event\");\n event.initEvent(type, bubbles || true, cancelable || true);\n event.detail = detail || {};\n try {\n element.disabled = false;\n element.dispatchEvent(event);\n } finally {\n element.disabled = disabled;\n }\n return event;\n }\n function toArray$1(value) {\n if (Array.isArray(value)) {\n return value;\n } else if (Array.from) {\n return Array.from(value);\n } else {\n return [].slice.call(value);\n }\n }\n var BlobRecord = function() {\n function BlobRecord(file, checksum, url) {\n var _this = this;\n classCallCheck(this, BlobRecord);\n this.file = file;\n this.attributes = {\n filename: file.name,\n content_type: file.type || \"application/octet-stream\",\n byte_size: file.size,\n checksum: checksum\n };\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"POST\", url, true);\n this.xhr.responseType = \"json\";\n this.xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n this.xhr.setRequestHeader(\"Accept\", \"application/json\");\n this.xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n var csrfToken = getMetaValue(\"csrf-token\");\n if (csrfToken != undefined) {\n this.xhr.setRequestHeader(\"X-CSRF-Token\", csrfToken);\n }\n this.xhr.addEventListener(\"load\", function(event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function(event) {\n return _this.requestDidError(event);\n });\n }\n createClass(BlobRecord, [ {\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(JSON.stringify({\n blob: this.attributes\n }));\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n if (this.status >= 200 && this.status < 300) {\n var response = this.response;\n var direct_upload = response.direct_upload;\n delete response.direct_upload;\n this.attributes = response;\n this.directUploadData = direct_upload;\n this.callback(null, this.toJSON());\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error creating Blob for \"' + this.file.name + '\". Status: ' + this.status);\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var result = {};\n for (var key in this.attributes) {\n result[key] = this.attributes[key];\n }\n return result;\n }\n }, {\n key: \"status\",\n get: function get$$1() {\n return this.xhr.status;\n }\n }, {\n key: \"response\",\n get: function get$$1() {\n var _xhr = this.xhr, responseType = _xhr.responseType, response = _xhr.response;\n if (responseType == \"json\") {\n return response;\n } else {\n return JSON.parse(response);\n }\n }\n } ]);\n return BlobRecord;\n }();\n var BlobUpload = function() {\n function BlobUpload(blob) {\n var _this = this;\n classCallCheck(this, BlobUpload);\n this.blob = blob;\n this.file = blob.file;\n var _blob$directUploadDat = blob.directUploadData, url = _blob$directUploadDat.url, headers = _blob$directUploadDat.headers;\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"PUT\", url, true);\n this.xhr.responseType = \"text\";\n for (var key in headers) {\n this.xhr.setRequestHeader(key, headers[key]);\n }\n this.xhr.addEventListener(\"load\", function(event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function(event) {\n return _this.requestDidError(event);\n });\n }\n createClass(BlobUpload, [ {\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(this.file.slice());\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n var _xhr = this.xhr, status = _xhr.status, response = _xhr.response;\n if (status >= 200 && status < 300) {\n this.callback(null, response);\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error storing \"' + this.file.name + '\". Status: ' + this.xhr.status);\n }\n } ]);\n return BlobUpload;\n }();\n var id = 0;\n var DirectUpload = function() {\n function DirectUpload(file, url, delegate) {\n classCallCheck(this, DirectUpload);\n this.id = ++id;\n this.file = file;\n this.url = url;\n this.delegate = delegate;\n }\n createClass(DirectUpload, [ {\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n FileChecksum.create(this.file, function(error, checksum) {\n if (error) {\n callback(error);\n return;\n }\n var blob = new BlobRecord(_this.file, checksum, _this.url);\n notify(_this.delegate, \"directUploadWillCreateBlobWithXHR\", blob.xhr);\n blob.create(function(error) {\n if (error) {\n callback(error);\n } else {\n var upload = new BlobUpload(blob);\n notify(_this.delegate, \"directUploadWillStoreFileWithXHR\", upload.xhr);\n upload.create(function(error) {\n if (error) {\n callback(error);\n } else {\n callback(null, blob.toJSON());\n }\n });\n }\n });\n });\n }\n } ]);\n return DirectUpload;\n }();\n function notify(object, methodName) {\n if (object && typeof object[methodName] == \"function\") {\n for (var _len = arguments.length, messages = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n messages[_key - 2] = arguments[_key];\n }\n return object[methodName].apply(object, messages);\n }\n }\n var DirectUploadController = function() {\n function DirectUploadController(input, file) {\n classCallCheck(this, DirectUploadController);\n this.input = input;\n this.file = file;\n this.directUpload = new DirectUpload(this.file, this.url, this);\n this.dispatch(\"initialize\");\n }\n createClass(DirectUploadController, [ {\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n var hiddenInput = document.createElement(\"input\");\n hiddenInput.type = \"hidden\";\n hiddenInput.name = this.input.name;\n this.input.insertAdjacentElement(\"beforebegin\", hiddenInput);\n this.dispatch(\"start\");\n this.directUpload.create(function(error, attributes) {\n if (error) {\n hiddenInput.parentNode.removeChild(hiddenInput);\n _this.dispatchError(error);\n } else {\n hiddenInput.value = attributes.signed_id;\n }\n _this.dispatch(\"end\");\n callback(error);\n });\n }\n }, {\n key: \"uploadRequestDidProgress\",\n value: function uploadRequestDidProgress(event) {\n var progress = event.loaded / event.total * 100;\n if (progress) {\n this.dispatch(\"progress\", {\n progress: progress\n });\n }\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n detail.file = this.file;\n detail.id = this.directUpload.id;\n return dispatchEvent(this.input, \"direct-upload:\" + name, {\n detail: detail\n });\n }\n }, {\n key: \"dispatchError\",\n value: function dispatchError(error) {\n var event = this.dispatch(\"error\", {\n error: error\n });\n if (!event.defaultPrevented) {\n alert(error);\n }\n }\n }, {\n key: \"directUploadWillCreateBlobWithXHR\",\n value: function directUploadWillCreateBlobWithXHR(xhr) {\n this.dispatch(\"before-blob-request\", {\n xhr: xhr\n });\n }\n }, {\n key: \"directUploadWillStoreFileWithXHR\",\n value: function directUploadWillStoreFileWithXHR(xhr) {\n var _this2 = this;\n this.dispatch(\"before-storage-request\", {\n xhr: xhr\n });\n xhr.upload.addEventListener(\"progress\", function(event) {\n return _this2.uploadRequestDidProgress(event);\n });\n }\n }, {\n key: \"url\",\n get: function get$$1() {\n return this.input.getAttribute(\"data-direct-upload-url\");\n }\n } ]);\n return DirectUploadController;\n }();\n var inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n var DirectUploadsController = function() {\n function DirectUploadsController(form) {\n classCallCheck(this, DirectUploadsController);\n this.form = form;\n this.inputs = findElements(form, inputSelector).filter(function(input) {\n return input.files.length;\n });\n }\n createClass(DirectUploadsController, [ {\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n var controllers = this.createDirectUploadControllers();\n var startNextController = function startNextController() {\n var controller = controllers.shift();\n if (controller) {\n controller.start(function(error) {\n if (error) {\n callback(error);\n _this.dispatch(\"end\");\n } else {\n startNextController();\n }\n });\n } else {\n callback();\n _this.dispatch(\"end\");\n }\n };\n this.dispatch(\"start\");\n startNextController();\n }\n }, {\n key: \"createDirectUploadControllers\",\n value: function createDirectUploadControllers() {\n var controllers = [];\n this.inputs.forEach(function(input) {\n toArray$1(input.files).forEach(function(file) {\n var controller = new DirectUploadController(input, file);\n controllers.push(controller);\n });\n });\n return controllers;\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return dispatchEvent(this.form, \"direct-uploads:\" + name, {\n detail: detail\n });\n }\n } ]);\n return DirectUploadsController;\n }();\n var processingAttribute = \"data-direct-uploads-processing\";\n var submitButtonsByForm = new WeakMap();\n var started = false;\n function start() {\n if (!started) {\n started = true;\n document.addEventListener(\"click\", didClick, true);\n document.addEventListener(\"submit\", didSubmitForm);\n document.addEventListener(\"ajax:before\", didSubmitRemoteElement);\n }\n }\n function didClick(event) {\n var target = event.target;\n if ((target.tagName == \"INPUT\" || target.tagName == \"BUTTON\") && target.type == \"submit\" && target.form) {\n submitButtonsByForm.set(target.form, target);\n }\n }\n function didSubmitForm(event) {\n handleFormSubmissionEvent(event);\n }\n function didSubmitRemoteElement(event) {\n if (event.target.tagName == \"FORM\") {\n handleFormSubmissionEvent(event);\n }\n }\n function handleFormSubmissionEvent(event) {\n var form = event.target;\n if (form.hasAttribute(processingAttribute)) {\n event.preventDefault();\n return;\n }\n var controller = new DirectUploadsController(form);\n var inputs = controller.inputs;\n if (inputs.length) {\n event.preventDefault();\n form.setAttribute(processingAttribute, \"\");\n inputs.forEach(disable);\n controller.start(function(error) {\n form.removeAttribute(processingAttribute);\n if (error) {\n inputs.forEach(enable);\n } else {\n submitForm(form);\n }\n });\n }\n }\n function submitForm(form) {\n var button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n if (button) {\n var _button = button, disabled = _button.disabled;\n button.disabled = false;\n button.focus();\n button.click();\n button.disabled = disabled;\n } else {\n button = document.createElement(\"input\");\n button.type = \"submit\";\n button.style.display = \"none\";\n form.appendChild(button);\n button.click();\n form.removeChild(button);\n }\n submitButtonsByForm.delete(form);\n }\n function disable(input) {\n input.disabled = true;\n }\n function enable(input) {\n input.disabled = false;\n }\n function autostart() {\n if (window.ActiveStorage) {\n start();\n }\n }\n setTimeout(autostart, 1);\n exports.start = start;\n exports.DirectUpload = DirectUpload;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});\n","/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/main/actionview/app/assets/javascripts\nReleased under the MIT license\n */;\n\n(function() {\n var context = this;\n\n (function() {\n (function() {\n this.Rails = {\n linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n buttonClickSelector: {\n selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n exclude: 'form button'\n },\n inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n formSubmitSelector: 'form:not([data-turbo=true])',\n formInputClickSelector: 'form:not([data-turbo=true]) input[type=submit], form:not([data-turbo=true]) input[type=image], form:not([data-turbo=true]) button[type=submit], form:not([data-turbo=true]) button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n fileInputSelector: 'input[name][type=file]:not([disabled])',\n linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n };\n\n }).call(this);\n }).call(context);\n\n var Rails = context.Rails;\n\n (function() {\n (function() {\n var nonce;\n\n nonce = null;\n\n Rails.loadCSPNonce = function() {\n var ref;\n return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\n };\n\n Rails.cspNonce = function() {\n return nonce != null ? nonce : Rails.loadCSPNonce();\n };\n\n }).call(this);\n (function() {\n var expando, m;\n\n m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n\n Rails.matches = function(element, selector) {\n if (selector.exclude != null) {\n return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n } else {\n return m.call(element, selector);\n }\n };\n\n expando = '_ujsData';\n\n Rails.getData = function(element, key) {\n var ref;\n return (ref = element[expando]) != null ? ref[key] : void 0;\n };\n\n Rails.setData = function(element, key, value) {\n if (element[expando] == null) {\n element[expando] = {};\n }\n return element[expando][key] = value;\n };\n\n Rails.$ = function(selector) {\n return Array.prototype.slice.call(document.querySelectorAll(selector));\n };\n\n }).call(this);\n (function() {\n var $, csrfParam, csrfToken;\n\n $ = Rails.$;\n\n csrfToken = Rails.csrfToken = function() {\n var meta;\n meta = document.querySelector('meta[name=csrf-token]');\n return meta && meta.content;\n };\n\n csrfParam = Rails.csrfParam = function() {\n var meta;\n meta = document.querySelector('meta[name=csrf-param]');\n return meta && meta.content;\n };\n\n Rails.CSRFProtection = function(xhr) {\n var token;\n token = csrfToken();\n if (token != null) {\n return xhr.setRequestHeader('X-CSRF-Token', token);\n }\n };\n\n Rails.refreshCSRFTokens = function() {\n var param, token;\n token = csrfToken();\n param = csrfParam();\n if ((token != null) && (param != null)) {\n return $('form input[name=\"' + param + '\"]').forEach(function(input) {\n return input.value = token;\n });\n }\n };\n\n }).call(this);\n (function() {\n var CustomEvent, fire, matches, preventDefault;\n\n matches = Rails.matches;\n\n CustomEvent = window.CustomEvent;\n\n if (typeof CustomEvent !== 'function') {\n CustomEvent = function(event, params) {\n var evt;\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n CustomEvent.prototype = window.Event.prototype;\n preventDefault = CustomEvent.prototype.preventDefault;\n CustomEvent.prototype.preventDefault = function() {\n var result;\n result = preventDefault.call(this);\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function() {\n return true;\n }\n });\n }\n return result;\n };\n }\n\n fire = Rails.fire = function(obj, name, data) {\n var event;\n event = new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: data\n });\n obj.dispatchEvent(event);\n return !event.defaultPrevented;\n };\n\n Rails.stopEverything = function(e) {\n fire(e.target, 'ujs:everythingStopped');\n e.preventDefault();\n e.stopPropagation();\n return e.stopImmediatePropagation();\n };\n\n Rails.delegate = function(element, selector, eventType, handler) {\n return element.addEventListener(eventType, function(e) {\n var target;\n target = e.target;\n while (!(!(target instanceof Element) || matches(target, selector))) {\n target = target.parentNode;\n }\n if (target instanceof Element && handler.call(target, e) === false) {\n e.preventDefault();\n return e.stopPropagation();\n }\n });\n };\n\n }).call(this);\n (function() {\n var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n\n cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n\n AcceptHeaders = {\n '*': '*/*',\n text: 'text/plain',\n html: 'text/html',\n xml: 'application/xml, text/xml',\n json: 'application/json, text/javascript',\n script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n };\n\n Rails.ajax = function(options) {\n var xhr;\n options = prepareOptions(options);\n xhr = createXHR(options, function() {\n var ref, response;\n response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n if (Math.floor(xhr.status / 100) === 2) {\n if (typeof options.success === \"function\") {\n options.success(response, xhr.statusText, xhr);\n }\n } else {\n if (typeof options.error === \"function\") {\n options.error(response, xhr.statusText, xhr);\n }\n }\n return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n });\n if ((options.beforeSend != null) && !options.beforeSend(xhr, options)) {\n return false;\n }\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n };\n\n prepareOptions = function(options) {\n options.url = options.url || location.href;\n options.type = options.type.toUpperCase();\n if (options.type === 'GET' && options.data) {\n if (options.url.indexOf('?') < 0) {\n options.url += '?' + options.data;\n } else {\n options.url += '&' + options.data;\n }\n }\n if (AcceptHeaders[options.dataType] == null) {\n options.dataType = '*';\n }\n options.accept = AcceptHeaders[options.dataType];\n if (options.dataType !== '*') {\n options.accept += ', */*; q=0.01';\n }\n return options;\n };\n\n createXHR = function(options, done) {\n var xhr;\n xhr = new XMLHttpRequest();\n xhr.open(options.type, options.url, true);\n xhr.setRequestHeader('Accept', options.accept);\n if (typeof options.data === 'string') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n }\n if (!options.crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n CSRFProtection(xhr);\n }\n xhr.withCredentials = !!options.withCredentials;\n xhr.onreadystatechange = function() {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n return done(xhr);\n }\n };\n return xhr;\n };\n\n processResponse = function(response, type) {\n var parser, script;\n if (typeof response === 'string' && typeof type === 'string') {\n if (type.match(/\\bjson\\b/)) {\n try {\n response = JSON.parse(response);\n } catch (error) {}\n } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n script = document.createElement('script');\n script.setAttribute('nonce', cspNonce());\n script.text = response;\n document.head.appendChild(script).parentNode.removeChild(script);\n } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n parser = new DOMParser();\n type = type.replace(/;.+/, '');\n try {\n response = parser.parseFromString(response, type);\n } catch (error) {}\n }\n }\n return response;\n };\n\n Rails.href = function(element) {\n return element.href;\n };\n\n Rails.isCrossDomain = function(url) {\n var e, originAnchor, urlAnchor;\n originAnchor = document.createElement('a');\n originAnchor.href = location.href;\n urlAnchor = document.createElement('a');\n try {\n urlAnchor.href = url;\n return !(((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host) || (originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host));\n } catch (error) {\n e = error;\n return true;\n }\n };\n\n }).call(this);\n (function() {\n var matches, toArray;\n\n matches = Rails.matches;\n\n toArray = function(e) {\n return Array.prototype.slice.call(e);\n };\n\n Rails.serializeElement = function(element, additionalParam) {\n var inputs, params;\n inputs = [element];\n if (matches(element, 'form')) {\n inputs = toArray(element.elements);\n }\n params = [];\n inputs.forEach(function(input) {\n if (!input.name || input.disabled) {\n return;\n }\n if (matches(input, 'fieldset[disabled] *')) {\n return;\n }\n if (matches(input, 'select')) {\n return toArray(input.options).forEach(function(option) {\n if (option.selected) {\n return params.push({\n name: input.name,\n value: option.value\n });\n }\n });\n } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n return params.push({\n name: input.name,\n value: input.value\n });\n }\n });\n if (additionalParam) {\n params.push(additionalParam);\n }\n return params.map(function(param) {\n if (param.name != null) {\n return (encodeURIComponent(param.name)) + \"=\" + (encodeURIComponent(param.value));\n } else {\n return param;\n }\n }).join('&');\n };\n\n Rails.formElements = function(form, selector) {\n if (matches(form, 'form')) {\n return toArray(form.elements).filter(function(el) {\n return matches(el, selector);\n });\n } else {\n return toArray(form.querySelectorAll(selector));\n }\n };\n\n }).call(this);\n (function() {\n var allowAction, fire, stopEverything;\n\n fire = Rails.fire, stopEverything = Rails.stopEverything;\n\n Rails.handleConfirm = function(e) {\n if (!allowAction(this)) {\n return stopEverything(e);\n }\n };\n\n Rails.confirm = function(message, element) {\n return confirm(message);\n };\n\n allowAction = function(element) {\n var answer, callback, message;\n message = element.getAttribute('data-confirm');\n if (!message) {\n return true;\n }\n answer = false;\n if (fire(element, 'confirm')) {\n try {\n answer = Rails.confirm(message, element);\n } catch (error) {}\n callback = fire(element, 'confirm:complete', [answer]);\n }\n return answer && callback;\n };\n\n }).call(this);\n (function() {\n var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isXhrRedirect, matches, setData, stopEverything;\n\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements;\n\n Rails.handleDisabledElement = function(e) {\n var element;\n element = this;\n if (element.disabled) {\n return stopEverything(e);\n }\n };\n\n Rails.enableElement = function(e) {\n var element;\n if (e instanceof Event) {\n if (isXhrRedirect(e)) {\n return;\n }\n element = e.target;\n } else {\n element = e;\n }\n if (matches(element, Rails.linkDisableSelector)) {\n return enableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n return enableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return enableFormElements(element);\n }\n };\n\n Rails.disableElement = function(e) {\n var element;\n element = e instanceof Event ? e.target : e;\n if (matches(element, Rails.linkDisableSelector)) {\n return disableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n return disableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return disableFormElements(element);\n }\n };\n\n disableLinkElement = function(element) {\n var replacement;\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n replacement = element.getAttribute('data-disable-with');\n if (replacement != null) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n }\n element.addEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', true);\n };\n\n enableLinkElement = function(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n if (originalText != null) {\n element.innerHTML = originalText;\n setData(element, 'ujs:enable-with', null);\n }\n element.removeEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', null);\n };\n\n disableFormElements = function(form) {\n return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n };\n\n disableFormElement = function(element) {\n var replacement;\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n replacement = element.getAttribute('data-disable-with');\n if (replacement != null) {\n if (matches(element, 'button')) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n } else {\n setData(element, 'ujs:enable-with', element.value);\n element.value = replacement;\n }\n }\n element.disabled = true;\n return setData(element, 'ujs:disabled', true);\n };\n\n enableFormElements = function(form) {\n return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n };\n\n enableFormElement = function(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n if (originalText != null) {\n if (matches(element, 'button')) {\n element.innerHTML = originalText;\n } else {\n element.value = originalText;\n }\n setData(element, 'ujs:enable-with', null);\n }\n element.disabled = false;\n return setData(element, 'ujs:disabled', null);\n };\n\n isXhrRedirect = function(event) {\n var ref, xhr;\n xhr = (ref = event.detail) != null ? ref[0] : void 0;\n return (xhr != null ? xhr.getResponseHeader(\"X-Xhr-Redirect\") : void 0) != null;\n };\n\n }).call(this);\n (function() {\n var stopEverything;\n\n stopEverything = Rails.stopEverything;\n\n Rails.handleMethod = function(e) {\n var csrfParam, csrfToken, form, formContent, href, link, method;\n link = this;\n method = link.getAttribute('data-method');\n if (!method) {\n return;\n }\n href = Rails.href(link);\n csrfToken = Rails.csrfToken();\n csrfParam = Rails.csrfParam();\n form = document.createElement('form');\n formContent = \"<input name='_method' value='\" + method + \"' type='hidden' />\";\n if ((csrfParam != null) && (csrfToken != null) && !Rails.isCrossDomain(href)) {\n formContent += \"<input name='\" + csrfParam + \"' value='\" + csrfToken + \"' type='hidden' />\";\n }\n formContent += '<input type=\"submit\" />';\n form.method = 'post';\n form.action = href;\n form.target = link.target;\n form.innerHTML = formContent;\n form.style.display = 'none';\n document.body.appendChild(form);\n form.querySelector('[type=\"submit\"]').click();\n return stopEverything(e);\n };\n\n }).call(this);\n (function() {\n var ajax, fire, getData, isCrossDomain, isRemote, matches, serializeElement, setData, stopEverything,\n slice = [].slice;\n\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement;\n\n isRemote = function(element) {\n var value;\n value = element.getAttribute('data-remote');\n return (value != null) && value !== 'false';\n };\n\n Rails.handleRemote = function(e) {\n var button, data, dataType, element, method, url, withCredentials;\n element = this;\n if (!isRemote(element)) {\n return true;\n }\n if (!fire(element, 'ajax:before')) {\n fire(element, 'ajax:stopped');\n return false;\n }\n withCredentials = element.getAttribute('data-with-credentials');\n dataType = element.getAttribute('data-type') || 'script';\n if (matches(element, Rails.formSubmitSelector)) {\n button = getData(element, 'ujs:submit-button');\n method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n if (method.toUpperCase() === 'GET') {\n url = url.replace(/\\?.*$/, '');\n }\n if (element.enctype === 'multipart/form-data') {\n data = new FormData(element);\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\n }\n setData(element, 'ujs:submit-button', null);\n setData(element, 'ujs:submit-button-formmethod', null);\n setData(element, 'ujs:submit-button-formaction', null);\n } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n method = element.getAttribute('data-method');\n url = element.getAttribute('data-url');\n data = serializeElement(element, element.getAttribute('data-params'));\n } else {\n method = element.getAttribute('data-method');\n url = Rails.href(element);\n data = element.getAttribute('data-params');\n }\n ajax({\n type: method || 'GET',\n url: url,\n data: data,\n dataType: dataType,\n beforeSend: function(xhr, options) {\n if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n return fire(element, 'ajax:send', [xhr]);\n } else {\n fire(element, 'ajax:stopped');\n return false;\n }\n },\n success: function() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:success', args);\n },\n error: function() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:error', args);\n },\n complete: function() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:complete', args);\n },\n crossDomain: isCrossDomain(url),\n withCredentials: (withCredentials != null) && withCredentials !== 'false'\n });\n return stopEverything(e);\n };\n\n Rails.formSubmitButtonClick = function(e) {\n var button, form;\n button = this;\n form = button.form;\n if (!form) {\n return;\n }\n if (button.name) {\n setData(form, 'ujs:submit-button', {\n name: button.name,\n value: button.value\n });\n }\n setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n };\n\n Rails.preventInsignificantClick = function(e) {\n var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;\n link = this;\n method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n data = link.getAttribute('data-params');\n metaClick = e.metaKey || e.ctrlKey;\n insignificantMetaClick = metaClick && method === 'GET' && !data;\n nonPrimaryMouseClick = (e.button != null) && e.button !== 0;\n if (nonPrimaryMouseClick || insignificantMetaClick) {\n return e.stopImmediatePropagation();\n }\n };\n\n }).call(this);\n (function() {\n var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n\n fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, loadCSPNonce = Rails.loadCSPNonce, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, preventInsignificantClick = Rails.preventInsignificantClick, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMethod = Rails.handleMethod;\n\n if ((typeof jQuery !== \"undefined\" && jQuery !== null) && (jQuery.ajax != null)) {\n if (jQuery.rails) {\n throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n }\n jQuery.rails = Rails;\n jQuery.ajaxPrefilter(function(options, originalOptions, xhr) {\n if (!options.crossDomain) {\n return CSRFProtection(xhr);\n }\n });\n }\n\n Rails.start = function() {\n if (window._rails_loaded) {\n throw new Error('rails-ujs has already been loaded!');\n }\n window.addEventListener('pageshow', function() {\n $(Rails.formEnableSelector).forEach(function(el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n return $(Rails.linkDisableSelector).forEach(function(el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n });\n delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.linkClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n delegate(document, Rails.linkClickSelector, 'click', disableElement);\n delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n delegate(document, Rails.buttonClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', function(e) {\n return setTimeout((function() {\n return disableElement(e);\n }), 13);\n });\n delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.formInputClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n document.addEventListener('DOMContentLoaded', loadCSPNonce);\n return window._rails_loaded = true;\n };\n\n if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n Rails.start();\n }\n\n }).call(this);\n }).call(this);\n\n if (typeof module === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);\n","(function ($) {\n \"use strict\";\n\n var defaultOptions = {\n tagClass: function(item) {\n return 'label label-info';\n },\n itemValue: function(item) {\n return item ? item.toString() : item;\n },\n itemText: function(item) {\n return this.itemValue(item);\n },\n itemTitle: function(item) {\n return null;\n },\n freeInput: true,\n addOnBlur: true,\n maxTags: undefined,\n maxChars: undefined,\n confirmKeys: [13, 44],\n delimiter: ',',\n delimiterRegex: null,\n cancelConfirmKeysOnEmpty: false,\n onTagExists: function(item, $tag) {\n $tag.hide().fadeIn();\n },\n trimValue: false,\n allowDuplicates: false\n };\n\n /**\n * Constructor function\n */\n function TagsInput(element, options) {\n this.isInit = true;\n this.itemsArray = [];\n\n this.$element = $(element);\n this.$element.hide();\n\n this.isSelect = (element.tagName === 'SELECT');\n this.multiple = (this.isSelect && element.hasAttribute('multiple'));\n this.objectItems = options && options.itemValue;\n this.placeholderText = element.hasAttribute('placeholder') ? this.$element.attr('placeholder') : '';\n this.inputSize = Math.max(1, this.placeholderText.length);\n\n this.$container = $('<div class=\"bootstrap-tagsinput\"></div>');\n this.$input = $('<input type=\"text\" placeholder=\"' + this.placeholderText + '\"/>').appendTo(this.$container);\n\n this.$element.before(this.$container);\n\n this.build(options);\n this.isInit = false;\n }\n\n TagsInput.prototype = {\n constructor: TagsInput,\n\n /**\n * Adds the given item as a new tag. Pass true to dontPushVal to prevent\n * updating the elements val()\n */\n add: function(item, dontPushVal, options) {\n var self = this;\n\n if (self.options.maxTags && self.itemsArray.length >= self.options.maxTags)\n return;\n\n // Ignore falsey values, except false\n if (item !== false && !item)\n return;\n\n // Trim value\n if (typeof item === \"string\" && self.options.trimValue) {\n item = $.trim(item);\n }\n\n // Throw an error when trying to add an object while the itemValue option was not set\n if (typeof item === \"object\" && !self.objectItems)\n throw(\"Can't add objects when itemValue option is not set\");\n\n // Ignore strings only containg whitespace\n if (item.toString().match(/^\\s*$/))\n return;\n\n // If SELECT but not multiple, remove current tag\n if (self.isSelect && !self.multiple && self.itemsArray.length > 0)\n self.remove(self.itemsArray[0]);\n\n if (typeof item === \"string\" && this.$element[0].tagName === 'INPUT') {\n var delimiter = (self.options.delimiterRegex) ? self.options.delimiterRegex : self.options.delimiter;\n var items = item.split(delimiter);\n if (items.length > 1) {\n for (var i = 0; i < items.length; i++) {\n this.add(items[i], true);\n }\n\n if (!dontPushVal)\n self.pushVal();\n return;\n }\n }\n\n var itemValue = self.options.itemValue(item),\n itemText = self.options.itemText(item),\n tagClass = self.options.tagClass(item),\n itemTitle = self.options.itemTitle(item);\n\n // Ignore items allready added\n var existing = $.grep(self.itemsArray, function(item) { return self.options.itemValue(item) === itemValue; } )[0];\n if (existing && !self.options.allowDuplicates) {\n // Invoke onTagExists\n if (self.options.onTagExists) {\n var $existingTag = $(\".tag\", self.$container).filter(function() { return $(this).data(\"item\") === existing; });\n self.options.onTagExists(item, $existingTag);\n }\n return;\n }\n\n // if length greater than limit\n if (self.items().toString().length + item.length + 1 > self.options.maxInputLength)\n return;\n\n // raise beforeItemAdd arg\n var beforeItemAddEvent = $.Event('beforeItemAdd', { item: item, cancel: false, options: options});\n self.$element.trigger(beforeItemAddEvent);\n if (beforeItemAddEvent.cancel)\n return;\n\n // register item in internal array and map\n self.itemsArray.push(item);\n\n // add a tag element\n\n var $tag = $('<span class=\"tag ' + htmlEncode(tagClass) + (itemTitle !== null ? ('\" title=\"' + itemTitle) : '') + '\">' + htmlEncode(itemText) + '<span data-role=\"remove\"></span></span>');\n $tag.data('item', item);\n self.findInputWrapper().before($tag);\n $tag.after(' ');\n\n // Check to see if the tag exists in its raw or uri-encoded form\n var optionExists = (\n $('option[value=\"' + encodeURIComponent(itemValue) + '\"]', self.$element).length ||\n $('option[value=\"' + htmlEncode(itemValue) + '\"]', self.$element).length\n );\n\n // add <option /> if item represents a value not present in one of the <select />'s options\n if (self.isSelect && !optionExists) {\n var $option = $('<option selected>' + htmlEncode(itemText) + '</option>');\n $option.data('item', item);\n $option.attr('value', itemValue);\n self.$element.append($option);\n }\n\n if (!dontPushVal)\n self.pushVal();\n\n // Add class when reached maxTags\n if (self.options.maxTags === self.itemsArray.length || self.items().toString().length === self.options.maxInputLength)\n self.$container.addClass('bootstrap-tagsinput-max');\n\n // If using typeahead, once the tag has been added, clear the typeahead value so it does not stick around in the input.\n if ($('.typeahead, .twitter-typeahead', self.$container).length) {\n self.$input.typeahead('val', '');\n }\n\n if (this.isInit) {\n self.$element.trigger($.Event('itemAddedOnInit', { item: item, options: options }));\n } else {\n self.$element.trigger($.Event('itemAdded', { item: item, options: options }));\n }\n },\n\n /**\n * Removes the given item. Pass true to dontPushVal to prevent updating the\n * elements val()\n */\n remove: function(item, dontPushVal, options) {\n var self = this;\n\n if (self.objectItems) {\n if (typeof item === \"object\")\n item = $.grep(self.itemsArray, function(other) { return self.options.itemValue(other) == self.options.itemValue(item); } );\n else\n item = $.grep(self.itemsArray, function(other) { return self.options.itemValue(other) == item; } );\n\n item = item[item.length-1];\n }\n\n if (item) {\n var beforeItemRemoveEvent = $.Event('beforeItemRemove', { item: item, cancel: false, options: options });\n self.$element.trigger(beforeItemRemoveEvent);\n if (beforeItemRemoveEvent.cancel)\n return;\n\n $('.tag', self.$container).filter(function() { return $(this).data('item') === item; }).remove();\n $('option', self.$element).filter(function() { return $(this).data('item') === item; }).remove();\n if($.inArray(item, self.itemsArray) !== -1)\n self.itemsArray.splice($.inArray(item, self.itemsArray), 1);\n }\n\n if (!dontPushVal)\n self.pushVal();\n\n // Remove class when reached maxTags\n if (self.options.maxTags > self.itemsArray.length)\n self.$container.removeClass('bootstrap-tagsinput-max');\n\n self.$element.trigger($.Event('itemRemoved', { item: item, options: options }));\n },\n\n /**\n * Removes all items\n */\n removeAll: function() {\n var self = this;\n\n $('.tag', self.$container).remove();\n $('option', self.$element).remove();\n\n while(self.itemsArray.length > 0)\n self.itemsArray.pop();\n\n self.pushVal();\n },\n\n /**\n * Refreshes the tags so they match the text/value of their corresponding\n * item.\n */\n refresh: function() {\n var self = this;\n $('.tag', self.$container).each(function() {\n var $tag = $(this),\n item = $tag.data('item'),\n itemValue = self.options.itemValue(item),\n itemText = self.options.itemText(item),\n tagClass = self.options.tagClass(item);\n\n // Update tag's class and inner text\n $tag.attr('class', null);\n $tag.addClass('tag ' + htmlEncode(tagClass));\n $tag.contents().filter(function() {\n return this.nodeType == 3;\n })[0].nodeValue = htmlEncode(itemText);\n\n if (self.isSelect) {\n var option = $('option', self.$element).filter(function() { return $(this).data('item') === item; });\n option.attr('value', itemValue);\n }\n });\n },\n\n /**\n * Returns the items added as tags\n */\n items: function() {\n return this.itemsArray;\n },\n\n /**\n * Assembly value by retrieving the value of each item, and set it on the\n * element.\n */\n pushVal: function() {\n var self = this,\n val = $.map(self.items(), function(item) {\n return self.options.itemValue(item).toString();\n });\n\n self.$element.val(val, true).trigger('change');\n },\n\n /**\n * Initializes the tags input behaviour on the element\n */\n build: function(options) {\n var self = this;\n\n self.options = $.extend({}, defaultOptions, options);\n // When itemValue is set, freeInput should always be false\n if (self.objectItems)\n self.options.freeInput = false;\n\n makeOptionItemFunction(self.options, 'itemValue');\n makeOptionItemFunction(self.options, 'itemText');\n makeOptionFunction(self.options, 'tagClass');\n\n // Typeahead Bootstrap version 2.3.2\n if (self.options.typeahead) {\n var typeahead = self.options.typeahead || {};\n\n makeOptionFunction(typeahead, 'source');\n\n self.$input.typeahead($.extend({}, typeahead, {\n source: function (query, process) {\n function processItems(items) {\n var texts = [];\n\n for (var i = 0; i < items.length; i++) {\n var text = self.options.itemText(items[i]);\n map[text] = items[i];\n texts.push(text);\n }\n process(texts);\n }\n\n this.map = {};\n var map = this.map,\n data = typeahead.source(query);\n\n if ($.isFunction(data.success)) {\n // support for Angular callbacks\n data.success(processItems);\n } else if ($.isFunction(data.then)) {\n // support for Angular promises\n data.then(processItems);\n } else {\n // support for functions and jquery promises\n $.when(data)\n .then(processItems);\n }\n },\n updater: function (text) {\n self.add(this.map[text]);\n return this.map[text];\n },\n matcher: function (text) {\n return (text.toLowerCase().indexOf(this.query.trim().toLowerCase()) !== -1);\n },\n sorter: function (texts) {\n return texts.sort();\n },\n highlighter: function (text) {\n var regex = new RegExp( '(' + this.query + ')', 'gi' );\n return text.replace( regex, \"<strong>$1</strong>\" );\n }\n }));\n }\n\n // typeahead.js\n if (self.options.typeaheadjs) {\n var typeaheadConfig = null;\n var typeaheadDatasets = {};\n\n // Determine if main configurations were passed or simply a dataset\n var typeaheadjs = self.options.typeaheadjs;\n if ($.isArray(typeaheadjs)) {\n typeaheadConfig = typeaheadjs[0];\n typeaheadDatasets = typeaheadjs[1];\n } else {\n typeaheadDatasets = typeaheadjs;\n }\n\n self.$input.typeahead(typeaheadConfig, typeaheadDatasets).on('typeahead:selected', $.proxy(function (obj, datum) {\n if (typeaheadDatasets.valueKey)\n self.add(datum[typeaheadDatasets.valueKey]);\n else\n self.add(datum);\n self.$input.typeahead('val', '');\n }, self));\n }\n\n self.$container.on('click', $.proxy(function(event) {\n if (! self.$element.attr('disabled')) {\n self.$input.removeAttr('disabled');\n }\n self.$input.focus();\n }, self));\n\n if (self.options.addOnBlur && self.options.freeInput) {\n self.$input.on('focusout', $.proxy(function(event) {\n // HACK: only process on focusout when no typeahead opened, to\n // avoid adding the typeahead text as tag\n if ($('.typeahead, .twitter-typeahead', self.$container).length === 0) {\n self.add(self.$input.val());\n self.$input.val('');\n }\n }, self));\n }\n\n\n self.$container.on('keydown', 'input', $.proxy(function(event) {\n var $input = $(event.target),\n $inputWrapper = self.findInputWrapper();\n\n if (self.$element.attr('disabled')) {\n self.$input.attr('disabled', 'disabled');\n return;\n }\n\n switch (event.which) {\n // BACKSPACE\n case 8:\n if (doGetCaretPosition($input[0]) === 0) {\n var prev = $inputWrapper.prev();\n if (prev.length) {\n self.remove(prev.data('item'));\n }\n }\n break;\n\n // DELETE\n case 46:\n if (doGetCaretPosition($input[0]) === 0) {\n var next = $inputWrapper.next();\n if (next.length) {\n self.remove(next.data('item'));\n }\n }\n break;\n\n // LEFT ARROW\n case 37:\n // Try to move the input before the previous tag\n var $prevTag = $inputWrapper.prev();\n if ($input.val().length === 0 && $prevTag[0]) {\n $prevTag.before($inputWrapper);\n $input.focus();\n }\n break;\n // RIGHT ARROW\n case 39:\n // Try to move the input after the next tag\n var $nextTag = $inputWrapper.next();\n if ($input.val().length === 0 && $nextTag[0]) {\n $nextTag.after($inputWrapper);\n $input.focus();\n }\n break;\n default:\n // ignore\n }\n\n // Reset internal input's size\n var textLength = $input.val().length,\n wordSpace = Math.ceil(textLength / 5),\n size = textLength + wordSpace + 1;\n $input.attr('size', Math.max(this.inputSize, $input.val().length));\n }, self));\n\n self.$container.on('keypress', 'input', $.proxy(function(event) {\n var $input = $(event.target);\n\n if (self.$element.attr('disabled')) {\n self.$input.attr('disabled', 'disabled');\n return;\n }\n\n var text = $input.val(),\n maxLengthReached = self.options.maxChars && text.length >= self.options.maxChars;\n if (self.options.freeInput && (keyCombinationInList(event, self.options.confirmKeys) || maxLengthReached)) {\n // Only attempt to add a tag if there is data in the field\n if (text.length !== 0) {\n self.add(maxLengthReached ? text.substr(0, self.options.maxChars) : text);\n $input.val('');\n }\n\n // If the field is empty, let the event triggered fire as usual\n if (self.options.cancelConfirmKeysOnEmpty === false) {\n event.preventDefault();\n }\n }\n\n // Reset internal input's size\n var textLength = $input.val().length,\n wordSpace = Math.ceil(textLength / 5),\n size = textLength + wordSpace + 1;\n $input.attr('size', Math.max(this.inputSize, $input.val().length));\n }, self));\n\n // Remove icon clicked\n self.$container.on('click', '[data-role=remove]', $.proxy(function(event) {\n if (self.$element.attr('disabled')) {\n return;\n }\n self.remove($(event.target).closest('.tag').data('item'));\n }, self));\n\n // Only add existing value as tags when using strings as tags\n if (self.options.itemValue === defaultOptions.itemValue) {\n if (self.$element[0].tagName === 'INPUT') {\n self.add(self.$element.val());\n } else {\n $('option', self.$element).each(function() {\n self.add($(this).attr('value'), true);\n });\n }\n }\n },\n\n /**\n * Removes all tagsinput behaviour and unregsiter all event handlers\n */\n destroy: function() {\n var self = this;\n\n // Unbind events\n self.$container.off('keypress', 'input');\n self.$container.off('click', '[role=remove]');\n\n self.$container.remove();\n self.$element.removeData('tagsinput');\n self.$element.show();\n },\n\n /**\n * Sets focus on the tagsinput\n */\n focus: function() {\n this.$input.focus();\n },\n\n /**\n * Returns the internal input element\n */\n input: function() {\n return this.$input;\n },\n\n /**\n * Returns the element which is wrapped around the internal input. This\n * is normally the $container, but typeahead.js moves the $input element.\n */\n findInputWrapper: function() {\n var elt = this.$input[0],\n container = this.$container[0];\n while(elt && elt.parentNode !== container)\n elt = elt.parentNode;\n\n return $(elt);\n }\n };\n\n /**\n * Register JQuery plugin\n */\n $.fn.tagsinput = function(arg1, arg2, arg3) {\n var results = [];\n\n this.each(function() {\n var tagsinput = $(this).data('tagsinput');\n // Initialize a new tags input\n if (!tagsinput) {\n tagsinput = new TagsInput(this, arg1);\n $(this).data('tagsinput', tagsinput);\n results.push(tagsinput);\n\n if (this.tagName === 'SELECT') {\n $('option', $(this)).attr('selected', 'selected');\n }\n\n // Init tags from $(this).val()\n $(this).val($(this).val());\n } else if (!arg1 && !arg2) {\n // tagsinput already exists\n // no function, trying to init\n results.push(tagsinput);\n } else if(tagsinput[arg1] !== undefined) {\n // Invoke function on existing tags input\n if(tagsinput[arg1].length === 3 && arg3 !== undefined){\n var retVal = tagsinput[arg1](arg2, null, arg3);\n }else{\n var retVal = tagsinput[arg1](arg2);\n }\n if (retVal !== undefined)\n results.push(retVal);\n }\n });\n\n if ( typeof arg1 == 'string') {\n // Return the results from the invoked function calls\n return results.length > 1 ? results : results[0];\n } else {\n return results;\n }\n };\n\n $.fn.tagsinput.Constructor = TagsInput;\n\n /**\n * Most options support both a string or number as well as a function as\n * option value. This function makes sure that the option with the given\n * key in the given options is wrapped in a function\n */\n function makeOptionItemFunction(options, key) {\n if (typeof options[key] !== 'function') {\n var propertyName = options[key];\n options[key] = function(item) { return item[propertyName]; };\n }\n }\n function makeOptionFunction(options, key) {\n if (typeof options[key] !== 'function') {\n var value = options[key];\n options[key] = function() { return value; };\n }\n }\n /**\n * HtmlEncodes the given value\n */\n var htmlEncodeContainer = $('<div />');\n function htmlEncode(value) {\n if (value) {\n return htmlEncodeContainer.text(value).html();\n } else {\n return '';\n }\n }\n\n /**\n * Returns the position of the caret in the given input field\n * http://flightschool.acylt.com/devnotes/caret-position-woes/\n */\n function doGetCaretPosition(oField) {\n var iCaretPos = 0;\n if (document.selection) {\n oField.focus ();\n var oSel = document.selection.createRange();\n oSel.moveStart ('character', -oField.value.length);\n iCaretPos = oSel.text.length;\n } else if (oField.selectionStart || oField.selectionStart == '0') {\n iCaretPos = oField.selectionStart;\n }\n return (iCaretPos);\n }\n\n /**\n * Returns boolean indicates whether user has pressed an expected key combination.\n * @param object keyPressEvent: JavaScript event object, refer\n * http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\n * @param object lookupList: expected key combinations, as in:\n * [13, {which: 188, shiftKey: true}]\n */\n function keyCombinationInList(keyPressEvent, lookupList) {\n var found = false;\n $.each(lookupList, function (index, keyCombination) {\n if (typeof (keyCombination) === 'number' && keyPressEvent.which === keyCombination) {\n found = true;\n return false;\n }\n\n if (keyPressEvent.which === keyCombination.which) {\n var alt = !keyCombination.hasOwnProperty('altKey') || keyPressEvent.altKey === keyCombination.altKey,\n shift = !keyCombination.hasOwnProperty('shiftKey') || keyPressEvent.shiftKey === keyCombination.shiftKey,\n ctrl = !keyCombination.hasOwnProperty('ctrlKey') || keyPressEvent.ctrlKey === keyCombination.ctrlKey;\n if (alt && shift && ctrl) {\n found = true;\n return false;\n }\n }\n });\n\n return found;\n }\n\n /**\n * Initialize tagsinput behaviour on inputs and selects which have\n * data-role=tagsinput\n */\n $(function() {\n $(\"input[data-role=tagsinput], select[multiple][data-role=tagsinput]\").tagsinput();\n });\n})(window.jQuery);\n","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","// eslint-disable-next-line es-x/no-typed-arrays -- safe\nmodule.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar tryToString = require('../internals/try-to-string');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineProperty = require('../internals/object-define-property').f;\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar TypeError = global.TypeError;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor';\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQUIRED = false;\nvar NAME, Constructor, Prototype;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n BigInt64Array: 8,\n BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return klass === 'DataView'\n || hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar getTypedArrayConstructor = function (it) {\n var proto = getPrototypeOf(it);\n if (!isObject(proto)) return;\n var state = getInternalState(proto);\n return (state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR)) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto);\n};\n\nvar isTypedArray = function (it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C;\n throw TypeError(tryToString(C) + ' is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced, options) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try {\n delete TypedArrayConstructor.prototype[KEY];\n } catch (error) {\n // old WebKit bug - some methods are non-configurable\n try {\n TypedArrayConstructor.prototype[KEY] = property;\n } catch (error2) { /* empty */ }\n }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n defineBuiltIn(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try {\n delete TypedArrayConstructor[KEY];\n } catch (error) { /* empty */ }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n defineBuiltIn(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n else NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\nfor (NAME in BigIntArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow -- safe\n TypedArray = function TypedArray() {\n throw TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQUIRED = true;\n defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n } });\n for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n getTypedArrayConstructor: getTypedArrayConstructor,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es-x/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es-x/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar uncurryThis = NATIVE_BIND && bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? function (fn) {\n return fn && uncurryThis(fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es-x/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es-x/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","module.exports = {};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n if (wmhas(store, it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget(store, it) || {};\n };\n has = function (it) {\n return wmhas(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","var isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","module.exports = false;\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es-x/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es-x/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es-x/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es-x/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","/* eslint-disable no-proto -- safe */\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es-x/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\n setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","var isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.25.2',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.25.2/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","/* eslint-disable es-x/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es-x/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar location, defer, channel, port;\n\ntry {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n location = global.location;\n} catch (error) { /* empty */ }\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n location && location.protocol !== 'file:' &&\n !fails(post)\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var toPositiveInteger = require('../internals/to-positive-integer');\n\nvar $RangeError = RangeError;\n\nmodule.exports = function (it, BYTES) {\n var offset = toPositiveInteger(it);\n if (offset % BYTES) throw $RangeError('Wrong offset');\n return offset;\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar $RangeError = RangeError;\n\nmodule.exports = function (it) {\n var result = toIntegerOrInfinity(it);\n if (result < 0) throw $RangeError(\"The argument can't be less than 0\");\n return result;\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","/* eslint-disable es-x/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw $TypeError('Not enough arguments');\n return passed;\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar regExpFlags = require('../internals/regexp-flags');\nvar fails = require('../internals/fails');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 'd') -> /./d and it causes SyntaxError\nvar RegExp = global.RegExp;\nvar RegExpPrototype = RegExp.prototype;\n\nvar FORCED = DESCRIPTORS && fails(function () {\n var INDICES_SUPPORT = true;\n try {\n RegExp('.', 'd');\n } catch (error) {\n INDICES_SUPPORT = false;\n }\n\n var O = {};\n // modern V8 bug\n var calls = '';\n var expected = INDICES_SUPPORT ? 'dgimsy' : 'gimsy';\n\n var addGetter = function (key, chr) {\n // eslint-disable-next-line es-x/no-object-defineproperty -- safe\n Object.defineProperty(O, key, { get: function () {\n calls += chr;\n return true;\n } });\n };\n\n var pairs = {\n dotAll: 's',\n global: 'g',\n ignoreCase: 'i',\n multiline: 'm',\n sticky: 'y'\n };\n\n if (INDICES_SUPPORT) pairs.hasIndices = 'd';\n\n for (var key in pairs) addGetter(key, pairs[key]);\n\n // eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\n var result = Object.getOwnPropertyDescriptor(RegExpPrototype, 'flags').get.call(O);\n\n return result !== expected || calls !== expected;\n});\n\n// `RegExp.prototype.flags` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nif (FORCED) defineBuiltInAccessor(RegExpPrototype, 'flags', {\n configurable: true,\n get: regExpFlags\n});\n","'use strict';\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toOffset = require('../internals/to-offset');\nvar toIndexedObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\n\nvar RangeError = global.RangeError;\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar $set = Int8ArrayPrototype && Int8ArrayPrototype.set;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS = !fails(function () {\n // eslint-disable-next-line es-x/no-typed-arrays -- required for testing\n var array = new Uint8ClampedArray(2);\n call($set, array, { length: 1, 0: 3 }, 1);\n return array[1] !== 3;\n});\n\n// https://bugs.chromium.org/p/v8/issues/detail?id=11294 and other\nvar TO_OBJECT_BUG = WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS && ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS && fails(function () {\n var array = new Int8Array(2);\n array.set(1);\n array.set('2', 1);\n return array[0] !== 0 || array[1] !== 2;\n});\n\n// `%TypedArray%.prototype.set` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.set\nexportTypedArrayMethod('set', function set(arrayLike /* , offset */) {\n aTypedArray(this);\n var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);\n var src = toIndexedObject(arrayLike);\n if (WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS) return call($set, this, src, offset);\n var length = this.length;\n var len = lengthOfArrayLike(src);\n var index = 0;\n if (len + offset > length) throw RangeError('Wrong length');\n while (index < len) this[offset + index] = src[index++];\n}, !WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS || TO_OBJECT_BUG);\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar clearImmediate = require('../internals/task').clear;\n\n// `clearImmediate` method\n// http://w3c.github.io/setImmediate/#si-clearImmediate\n$({ global: true, bind: true, enumerable: true, forced: global.clearImmediate !== clearImmediate }, {\n clearImmediate: clearImmediate\n});\n","// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/web.clear-immediate');\nrequire('../modules/web.set-immediate');\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar setImmediate = require('../internals/task').set;\n\n// `setImmediate` method\n// http://w3c.github.io/setImmediate/#si-setImmediate\n$({ global: true, bind: true, enumerable: true, forced: global.setImmediate !== setImmediate }, {\n setImmediate: setImmediate\n});\n","var ___EXPOSE_LOADER_IMPORT___ = require(\"-!./rails-ujs.js\");\nvar ___EXPOSE_LOADER_GET_GLOBAL_THIS___ = require(\"../../../../../expose-loader/dist/runtime/getGlobalThis.js\");\nvar ___EXPOSE_LOADER_GLOBAL_THIS___ = ___EXPOSE_LOADER_GET_GLOBAL_THIS___;\nif (typeof ___EXPOSE_LOADER_GLOBAL_THIS___[\"Rails\"] === 'undefined') ___EXPOSE_LOADER_GLOBAL_THIS___[\"Rails\"] = ___EXPOSE_LOADER_IMPORT___;\nmodule.exports = ___EXPOSE_LOADER_IMPORT___;\n","var ___EXPOSE_LOADER_IMPORT___ = require(\"-!./quill.js\");\nvar ___EXPOSE_LOADER_GET_GLOBAL_THIS___ = require(\"../../expose-loader/dist/runtime/getGlobalThis.js\");\nvar ___EXPOSE_LOADER_GLOBAL_THIS___ = ___EXPOSE_LOADER_GET_GLOBAL_THIS___;\nif (typeof ___EXPOSE_LOADER_GLOBAL_THIS___[\"Quill\"] === 'undefined') ___EXPOSE_LOADER_GLOBAL_THIS___[\"Quill\"] = ___EXPOSE_LOADER_IMPORT___;\nmodule.exports = ___EXPOSE_LOADER_IMPORT___;\n","\"use strict\";\n\n// eslint-disable-next-line func-names\nmodule.exports = function () {\n if (typeof globalThis === \"object\") {\n return globalThis;\n }\n\n var g;\n\n try {\n // This works if eval is allowed (see CSP)\n // eslint-disable-next-line no-new-func\n g = this || new Function(\"return this\")();\n } catch (e) {\n // This works if the window reference is available\n if (typeof window === \"object\") {\n return window;\n } // This works if the self reference is available\n\n\n if (typeof self === \"object\") {\n return self;\n } // This works if the global reference is available\n\n\n if (typeof global !== \"undefined\") {\n return global;\n }\n }\n\n return g;\n}();","/*!\n * jQuery JavaScript Library v3.6.3\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2022-12-20T21:28Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket trac-14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\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\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n\t\t// Support: Chrome <=57, Firefox <=52\n\t\t// In some browsers, typeof returns \"function\" for HTML <object> elements\n\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n\t\t// We don't want to classify *any* DOM node as a function.\n\t\t// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n\t\t// Plus for old WebKit, typeof returns \"function\" for HTML collections\n\t\t// (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\" &&\n\t\t\ttypeof obj.item !== \"function\";\n\t};\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof 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\nvar\n\tversion = \"3.6.3\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\tfunction( _i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.9\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: 2022-12-19\n */\n( function( window ) {\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ( {} ).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpushNative = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[ i ] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" +\n\t\t\"ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5]\n\t\t// or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" +\n\t\twhitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace +\n\t\t\"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trhtml = /HTML$/i,\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\treturn nonHex ?\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\tnonHex :\n\n\t\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t\t// Support: IE <=11+\n\t\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t\t// surrogate pair\n\t\t\thigh < 0 ?\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" +\n\t\t\t\tch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( ( target[ j++ ] = els[ i++ ] ) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&\n\n\t\t\t\t// Support: IE 8 only\n\t\t\t\t// Exclude object elements\n\t\t\t\t( nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\" ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rcombinators.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\tif ( newContext !== context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// `qSA` may not throw for unrecognized parts using forgiving parsing:\n\t\t\t\t\t// https://drafts.csswg.org/selectors/#forgiving-selector\n\t\t\t\t\t// like the `:has()` pseudo-class:\n\t\t\t\t\t// https://drafts.csswg.org/selectors/#relational\n\t\t\t\t\t// `CSS.supports` is still expected to return `false` then:\n\t\t\t\t\t// https://drafts.csswg.org/css-conditional-4/#typedef-supports-selector-fn\n\t\t\t\t\t// https://drafts.csswg.org/css-conditional-4/#dfn-support-selector\n\t\t\t\t\tif ( support.cssSupportsSelector &&\n\n\t\t\t\t\t\t// eslint-disable-next-line no-undef\n\t\t\t\t\t\t!CSS.supports( \"selector(:is(\" + newSelector + \"))\" ) ) {\n\n\t\t\t\t\t\t// Support: IE 11+\n\t\t\t\t\t\t// Throw to get to the same code path as an error directly in qSA.\n\t\t\t\t\t\t// Note: once we only support browser supporting\n\t\t\t\t\t\t// `CSS.supports('selector(...)')`, we can most likely drop\n\t\t\t\t\t\t// the `try-catch`. IE doesn't implement the API.\n\t\t\t\t\t\tthrow new Error();\n\t\t\t\t\t}\n\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\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 */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\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 */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split( \"|\" ),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[ i ] ] = handler;\n\t}\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 */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( ( cur = cur.nextSibling ) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn ( name === \"input\" || name === \"button\" ) && elem.type === type;\n\t};\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 */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\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 */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\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 */\nisXML = Sizzle.isXML = function( elem ) {\n\tvar namespace = elem && elem.namespaceURI,\n\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\n\n\t// Support: IE <=8\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n\t// https://bugs.jquery.com/ticket/4833\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n};\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 */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( preferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n\t// Safari 4 - 5 only, Opera <=11.6 - 12.x only\n\t// IE/Edge & older browsers don't support the :scope pseudo-class.\n\t// Support: Safari 6.0 only\n\t// Safari 6.0 supports :scope but it's an alias of :root there.\n\tsupport.scope = assert( function( el ) {\n\t\tdocElem.appendChild( el ).appendChild( document.createElement( \"div\" ) );\n\t\treturn typeof el.querySelectorAll !== \"undefined\" &&\n\t\t\t!el.querySelectorAll( \":scope fieldset div\" ).length;\n\t} );\n\n\t// Support: Chrome 105+, Firefox 104+, Safari 15.4+\n\t// Make sure forgiving mode is not used in `CSS.supports( \"selector(...)\" )`.\n\t//\n\t// `:is()` uses a forgiving selector list as an argument and is widely\n\t// implemented, so it's a good one to test against.\n\tsupport.cssSupportsSelector = assert( function() {\n\t\t/* eslint-disable no-undef */\n\n\t\treturn CSS.supports( \"selector(*)\" ) &&\n\n\t\t\t// Support: Firefox 78-81 only\n\t\t\t// In old Firefox, `:is()` didn't use forgiving parsing. In that case,\n\t\t\t// fail this test as there's no selector to test against that.\n\t\t\t// `CSS.supports` uses unforgiving parsing\n\t\t\tdocument.querySelectorAll( \":is(:jqfake)\" ) &&\n\n\t\t\t// `*` is needed as Safari & newer Chrome implemented something in between\n\t\t\t// for `:has()` - it throws in `qSA` if it only contains an unsupported\n\t\t\t// argument but multiple ones, one of which is supported, are fine.\n\t\t\t// We want to play safe in case `:is()` gets the same treatment.\n\t\t\t!CSS.supports( \"selector(:is(*,:jqfake))\" );\n\n\t\t/* eslint-enable */\n\t} );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert( function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute( \"className\" );\n\t} );\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert( function( el ) {\n\t\tel.appendChild( document.createComment( \"\" ) );\n\t\treturn !el.getElementsByTagName( \"*\" ).length;\n\t} );\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[ \"TAG\" ] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[ \"CLASS\" ] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {\n\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert( function( el ) {\n\n\t\t\tvar input;\n\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"<a id='\" + expando + \"'></a>\" +\n\t\t\t\t\"<select id='\" + expando + \"-\\r\\\\' msallowcapture=''>\" +\n\t\t\t\t\"<option selected=''></option></select>\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll( \"[msallowcapture^='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"~=\" );\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t\t// Adding a temporary attribute to the document before the selection works\n\t\t\t// around the issue.\n\t\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\t\tinput = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"name\", \"\" );\n\t\t\tel.appendChild( input );\n\t\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\t\trbuggyQSA.push( \":checked\" );\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t\t}\n\n\t\t\t// Support: Firefox <=3.6 - 5 only\n\t\t\t// Old Firefox doesn't throw on a badly-escaped identifier.\n\t\t\tel.querySelectorAll( \"\\\\\\f\" );\n\t\t\trbuggyQSA.push( \"[\\\\r\\\\n\\\\f]\" );\n\t\t} );\n\n\t\tassert( function( el ) {\n\t\t\tel.innerHTML = \"<a href='' disabled='disabled'></a>\" +\n\t\t\t\t\"<select disabled='disabled'><option/></select>\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll( \"[name=d]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll( \":enabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: Opera 10 - 11 only\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll( \"*,:x\" );\n\t\t\trbuggyQSA.push( \",.*:\" );\n\t\t} );\n\t}\n\n\tif ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector ) ) ) ) {\n\n\t\tassert( function( el ) {\n\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t} );\n\t}\n\n\tif ( !support.cssSupportsSelector ) {\n\n\t\t// Support: Chrome 105+, Safari 15.4+\n\t\t// `:has()` uses a forgiving selector list as an argument so our regular\n\t\t// `try-catch` mechanism fails to catch `:has()` with arguments not supported\n\t\t// natively like `:has(:contains(\"Foo\"))`. Where supported & spec-compliant,\n\t\t// we now use `CSS.supports(\"selector(:is(SELECTOR_TO_BE_TESTED))\")`, but\n\t\t// outside that we mark `:has` as buggy.\n\t\trbuggyQSA.push( \":has\" );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( \"|\" ) );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\n\t\t\t// Support: IE <9 only\n\t\t\t// IE doesn't have `contains` on `document` so we need to check for\n\t\t\t// `documentElement` presence.\n\t\t\t// We need to fall back to `a` when `documentElement` is missing\n\t\t\t// as `ownerDocument` of elements within `<template/>` may have\n\t\t\t// a null one - a default behavior of all modern browsers.\n\t\t\tvar adown = a.nodeType === 9 && a.documentElement || a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t) );\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( ( b = b.parentNode ) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a == document || a.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b == document || b.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\treturn a == document ? -1 :\n\t\t\t\tb == document ? 1 :\n\t\t\t\t/* eslint-enable eqeqeq */\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[ i ] === bp[ i ] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[ i ], bp[ i ] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\tap[ i ] == preferredDoc ? -1 :\n\t\t\tbp[ i ] == preferredDoc ? 1 :\n\t\t\t/* eslint-enable eqeqeq */\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t// fragment in IE 9\n\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] ||\n\t\t\t\tmatch[ 5 ] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" ) );\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr[ \"CHILD\" ].test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace +\n\t\t\t\t\t\")\" + className + \"(\" + whitespace + \"|$)\" ) ) && classCache(\n\t\t\t\t\t\tclassName, function( elem ) {\n\t\t\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\t/* eslint-disable max-len */\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t\t/* eslint-enable max-len */\n\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\t\"has\": markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\t\"contains\": markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement &&\n\t\t\t\t( !document.hasFocus || document.hasFocus() ) &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn ( nodeName === \"input\" && !!elem.checked ) ||\n\t\t\t\t( nodeName === \"option\" && !!elem.selected );\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[ \"empty\" ]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE <10 only\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\t\"last\": createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\t\"eq\": createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\t\"even\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"odd\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"lt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ?\n\t\t\t\targument + length :\n\t\t\t\targument > length ?\n\t\t\t\t\tlength :\n\t\t\t\t\targument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"gt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos[ \"nth\" ] = Expr.pseudos[ \"eq\" ];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rcombinators.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrim, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] ||\n\t\t\t\t\t\t\t( outerCache[ elem.uniqueID ] = {} );\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = uniqueCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts(\n\t\t\t\tselector || \"*\",\n\t\t\t\tcontext.nodeType ? [ context ] : context,\n\t\t\t\t[]\n\t\t\t),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\ttokens\n\t\t\t\t\t\t.slice( 0, i - 1 )\n\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[ \"TAG\" ]( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: <number>) matching elements by id\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache(\n\t\t\tselector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers )\n\t\t);\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\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 */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find[ \"ID\" ]( token.matches[ 0 ]\n\t\t\t\t.replace( runescape, funescape ), context ) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[ \"needsContext\" ].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert( function( el ) {\n\tel.innerHTML = \"<a href='#'></a>\";\n\treturn el.firstChild.getAttribute( \"href\" ) === \"#\";\n} ) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert( function( el ) {\n\tel.innerHTML = \"<input/>\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n} ) ) {\n\taddHandle( \"value\", function( elem, _name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert( function( el ) {\n\treturn el.getAttribute( \"disabled\" ) == null;\n} ) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\t\tnull;\n\t\t}\n\t} );\n}\n\nreturn Sizzle;\n\n} )( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\n\n\nfunction nodeName( elem, name ) {\n\n\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n}\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over <tag> to avoid XSS via location.hash (trac-9521)\n\t// Strict HTML recognition (trac-11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// <object> elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\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 */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the primary Deferred\n\t\t\tprimary = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tprimary.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( primary.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn primary.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );\n\t\t}\n\n\t\treturn primary.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\njQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See trac-6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\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\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, _key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\t\tvalue :\n\t\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\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 (trac-9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see trac-8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\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\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (trac-14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (trac-11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (trac-14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"<textarea>x</textarea>\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces <option> tags with their contents when inserted outside of\n\t// the select element.\n\tdiv.innerHTML = \"<option></option>\";\n\tsupport.option = !!div.lastChild;\n} )();\n\n\n// We have to close these tags to support XHTML (trac-13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting <tbody> or other required elements.\n\tthead: [ 1, \"<table>\", \"</table>\" ],\n\tcol: [ 2, \"<table><colgroup>\", \"</colgroup></table>\" ],\n\ttr: [ 2, \"<table><tbody>\", \"</tbody></table>\" ],\n\ttd: [ 3, \"<table><tbody><tr>\", \"</tr></tbody></table>\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"<select multiple='multiple'>\", \"</select>\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (trac-15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (trac-12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\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).\nfunction expectSync( elem, type ) {\n\treturn ( elem === safeActiveElement() ) === ( type === \"focus\" );\n}\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\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 */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG <use> instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (trac-13208)\n\t\t\t\t// Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (trac-13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", returnTrue );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\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.\nfunction leverageNative( el, type, expectSync ) {\n\n\t// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !expectSync ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar notAsync, result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\t// Saved data should be false in such cases, but might be a leftover capture object\n\t\t\t\t// from an async native handler (gh-4350)\n\t\t\t\tif ( !saved.length ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t// focus() and blur() are asynchronous\n\t\t\t\t\tnotAsync = expectSync( this, type );\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tif ( saved !== result || notAsync ) {\n\t\t\t\t\t\tdataPriv.set( this, type, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = {};\n\t\t\t\t\t}\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\t// Support: Chrome 86+\n\t\t\t\t\t\t// In Chrome, if an element having a focusout handler is blurred by\n\t\t\t\t\t\t// clicking outside of it, it invokes the handler synchronously. If\n\t\t\t\t\t\t// that handler calls `.remove()` on the element, the data is cleared,\n\t\t\t\t\t\t// leaving `result` undefined. We need to guard against this.\n\t\t\t\t\t\treturn result && result.value;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering the\n\t\t\t\t// native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved.length ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, {\n\t\t\t\t\tvalue: jQuery.event.trigger(\n\n\t\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t\t// Extend with the prototype to reset the above stopImmediatePropagation()\n\t\t\t\t\t\tjQuery.extend( saved[ 0 ], jQuery.Event.prototype ),\n\t\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\t\tthis\n\t\t\t\t\t)\n\t\t\t\t} );\n\n\t\t\t\t// Abort handling of the native event\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (trac-504, trac-13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\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\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\twhich: true\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, expectSync );\n\n\t\t\t// Return false to allow normal processing in the caller\n\t\t\treturn false;\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\t// Suppress native focus or blur if we're currently inside\n\t\t// a leveraged native-event stack\n\t\t_default: function( event ) {\n\t\t\treturn dataPriv.get( event.target, type );\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n} );\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).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /<script|<style|<link/i,\n\n\t// checked=\"checked\" or checked\n\trchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n\n\trcleanScript = /^\\s*<!\\[CDATA\\[|\\]\\]>\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle events\" );\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (trac-8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Unwrap a CDATA section containing script contents. This shouldn't be\n\t\t\t\t\t\t\t// needed as in XML documents they're already not visible when\n\t\t\t\t\t\t\t// inspecting element contents and in HTML documents they have no\n\t\t\t\t\t\t\t// meaning but we're preserving that logic for backwards compatibility.\n\t\t\t\t\t\t\t// This will be removed completely in 4.0. See gh-4904.\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar rcustomProp = /^--/;\n\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (trac-15098, trac-14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.call( elem );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\nvar whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\";\n\n\nvar rtrimCSS = new RegExp(\n\t\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\",\n\t\"g\"\n);\n\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (trac-8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\t//\n\t\t// Support: Firefox 70+\n\t\t// Only Firefox includes border widths\n\t\t// in computed dimensions. (gh-4529)\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n\t\t\t\ttr.style.cssText = \"border:1px solid\";\n\n\t\t\t\t// Support: Chrome 86+\n\t\t\t\t// Height set through cssText does not get applied.\n\t\t\t\t// Computed height then comes back as 0.\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\t// Support: Android 8 Chrome 86+\n\t\t\t\t// In our bodyBackground.html iframe,\n\t\t\t\t// display for all div elements is set to \"inline\",\n\t\t\t\t// which causes a problem only in Android 8 Chrome 86.\n\t\t\t\t// Ensuring the div is display: block\n\t\t\t\t// gets around this issue.\n\t\t\t\ttrChild.style.display = \"block\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderTopWidth, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\t\tisCustomProp = rcustomProp.test( name ),\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t// .css('filter') (IE 9 only, trac-12537)\n\t// .css('--customProperty) (gh-3144)\n\tif ( computed ) {\n\n\t\t// Support: IE <=9 - 11+\n\t\t// IE only supports `\"float\"` in `getPropertyValue`; in computed styles\n\t\t// it's only available as `\"cssFloat\"`. We no longer modify properties\n\t\t// sent to `.css()` apart from camelCasing, so we need to check both.\n\t\t// Normally, this would create difference in behavior: if\n\t\t// `getPropertyValue` returns an empty string, the value returned\n\t\t// by `.css()` would be `undefined`. This is usually the case for\n\t\t// disconnected elements. However, in IE even disconnected elements\n\t\t// with no styles return `\"none\"` for `getPropertyValue( \"float\" )`\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( isCustomProp && ret ) {\n\n\t\t\t// Support: Firefox 105+, Chrome <=105+\n\t\t\t// Spec requires trimming whitespace for custom properties (gh-4926).\n\t\t\t// Firefox only trims leading whitespace. Chrome just collapses\n\t\t\t// both leading & trailing whitespace to a single space.\n\t\t\t//\n\t\t\t// Fall back to `undefined` if empty string returned.\n\t\t\t// This collapses a missing definition with property defined\n\t\t\t// and set to an empty string but there's no standard API\n\t\t\t// allowing us to differentiate them without a performance penalty\n\t\t\t// and returning `undefined` aligns with older jQuery.\n\t\t\t//\n\t\t\t// rtrimCSS treats U+000D CARRIAGE RETURN and U+000C FORM FEED\n\t\t\t// as whitespace while CSS does not, but this is not a problem\n\t\t\t// because CSS preprocessing replaces them with U+000A LINE FEED\n\t\t\t// (which *is* CSS whitespace)\n\t\t\t// https://www.w3.org/TR/css-syntax-3/#input-preprocessing\n\t\t\tret = ret.replace( rtrimCSS, \"$1\" ) || undefined;\n\t\t}\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\tif ( box === \"margin\" ) {\n\t\t\tdelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"gridArea\": true,\n\t\t\"gridColumn\": true,\n\t\t\"gridColumnEnd\": true,\n\t\t\"gridColumnStart\": true,\n\t\t\"gridRow\": true,\n\t\t\"gridRowEnd\": true,\n\t\t\"gridRowStart\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (trac-7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug trac-9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (trac-7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t} ) :\n\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (trac-12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\n\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// Use proper attribute retrieval (trac-12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\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\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classNames, cur, curValue, className, i, finalValue;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\tif ( classNames.length ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tcurValue = getClass( this );\n\t\t\t\tcur = this.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\t\tclassName = classNames[ i ];\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + className + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += className + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\tthis.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classNames, cur, curValue, className, i, finalValue;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\tif ( classNames.length ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tcurValue = getClass( this );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = this.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\t\tclassName = classNames[ i ];\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + className + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + className + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\tthis.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar classNames, className, i, self,\n\t\t\ttype = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\treturn this.each( function() {\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\tself = jQuery( this );\n\n\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\tclassName = classNames[ i ];\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (trac-14686, trac-14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (trac-2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\nsupport.focusin = \"onfocusin\" in window;\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (trac-9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (trac-9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || Object.create( null ) )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (trac-6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\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\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\n\t\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\nvar location = window.location;\n\nvar nonce = { guid: Date.now() };\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml, parserErrorElem;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {}\n\n\tparserErrorElem = xml && xml.getElementsByTagName( \"parsererror\" )[ 0 ];\n\tif ( !xml || parserErrorElem ) {\n\t\tjQuery.error( \"Invalid XML: \" + (\n\t\t\tparserErrorElem ?\n\t\t\t\tjQuery.map( parserErrorElem.childNodes, function( el ) {\n\t\t\t\t\treturn el.textContent;\n\t\t\t\t} ).join( \"\\n\" ) :\n\t\t\t\tdata\n\t\t) );\n\t}\n\treturn xml;\n};\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} ).filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} ).map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// trac-7653, trac-8125, trac-8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (trac-10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\noriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes trac-9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\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 */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (trac-10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket trac-12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (trac-15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// trac-9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\n\t\t\t\t\tuncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Use a noop converter for missing script but not if jsonp\n\t\t\tif ( !isSuccess &&\n\t\t\t\tjQuery.inArray( \"script\", s.dataTypes ) > -1 &&\n\t\t\t\tjQuery.inArray( \"json\", s.dataTypes ) < 0 ) {\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\njQuery.ajaxPrefilter( function( s ) {\n\tvar i;\n\tfor ( i in s.headers ) {\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\n\t\t\ts.contentType = s.headers[ i ] || \"\";\n\t\t}\n\t}\n} );\n\n\njQuery._evalUrl = function( url, options, doc ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (trac-11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options, doc );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// trac-1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see trac-8605, trac-14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// trac-14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"<script>\" )\n\t\t\t\t\t.attr( s.scriptAttrs || {} )\n\t\t\t\t\t.prop( { charset: s.scriptCharset, src: s.url } )\n\t\t\t\t\t.on( \"load error\", callback = function( evt ) {\n\t\t\t\t\t\tscript.remove();\n\t\t\t\t\t\tcallback = null;\n\t\t\t\t\t\tif ( evt ) {\n\t\t\t\t\t\t\tcomplete( evt.type === \"error\" ? 404 : 200, evt.type );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t// Use native DOM manipulation to avoid our domManip AJAX trickery\n\t\t\t\tdocument.head.appendChild( script[ 0 ] );\n\t\t\t},\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\nvar oldCallbacks = [],\n\trjsonp = /(=)\\?(?=&|$)|\\?\\?/;\n\n// Default jsonp settings\njQuery.ajaxSetup( {\n\tjsonp: \"callback\",\n\tjsonpCallback: function() {\n\t\tvar callback = oldCallbacks.pop() || ( jQuery.expando + \"_\" + ( nonce.guid++ ) );\n\t\tthis[ callback ] = true;\n\t\treturn callback;\n\t}\n} );\n\n// Detect, normalize options and install callbacks for jsonp requests\njQuery.ajaxPrefilter( \"json jsonp\", function( s, originalSettings, jqXHR ) {\n\n\tvar callbackName, overwritten, responseContainer,\n\t\tjsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?\n\t\t\t\"url\" :\n\t\t\ttypeof s.data === \"string\" &&\n\t\t\t\t( s.contentType || \"\" )\n\t\t\t\t\t.indexOf( \"application/x-www-form-urlencoded\" ) === 0 &&\n\t\t\t\trjsonp.test( s.data ) && \"data\"\n\t\t);\n\n\t// Handle iff the expected data type is \"jsonp\" or we have a parameter to set\n\tif ( jsonProp || s.dataTypes[ 0 ] === \"jsonp\" ) {\n\n\t\t// Get callback name, remembering preexisting value associated with it\n\t\tcallbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ?\n\t\t\ts.jsonpCallback() :\n\t\t\ts.jsonpCallback;\n\n\t\t// Insert callback into url or form data\n\t\tif ( jsonProp ) {\n\t\t\ts[ jsonProp ] = s[ jsonProp ].replace( rjsonp, \"$1\" + callbackName );\n\t\t} else if ( s.jsonp !== false ) {\n\t\t\ts.url += ( rquery.test( s.url ) ? \"&\" : \"?\" ) + s.jsonp + \"=\" + callbackName;\n\t\t}\n\n\t\t// Use data converter to retrieve json after script execution\n\t\ts.converters[ \"script json\" ] = function() {\n\t\t\tif ( !responseContainer ) {\n\t\t\t\tjQuery.error( callbackName + \" was not called\" );\n\t\t\t}\n\t\t\treturn responseContainer[ 0 ];\n\t\t};\n\n\t\t// Force json dataType\n\t\ts.dataTypes[ 0 ] = \"json\";\n\n\t\t// Install callback\n\t\toverwritten = window[ callbackName ];\n\t\twindow[ callbackName ] = function() {\n\t\t\tresponseContainer = arguments;\n\t\t};\n\n\t\t// Clean-up function (fires after converters)\n\t\tjqXHR.always( function() {\n\n\t\t\t// If previous value didn't exist - remove it\n\t\t\tif ( overwritten === undefined ) {\n\t\t\t\tjQuery( window ).removeProp( callbackName );\n\n\t\t\t// Otherwise restore preexisting value\n\t\t\t} else {\n\t\t\t\twindow[ callbackName ] = overwritten;\n\t\t\t}\n\n\t\t\t// Save back as free\n\t\t\tif ( s[ callbackName ] ) {\n\n\t\t\t\t// Make sure that re-using the options doesn't screw things around\n\t\t\t\ts.jsonpCallback = originalSettings.jsonpCallback;\n\n\t\t\t\t// Save the callback name for future use\n\t\t\t\toldCallbacks.push( callbackName );\n\t\t\t}\n\n\t\t\t// Call if it was a function and we have a response\n\t\t\tif ( responseContainer && isFunction( overwritten ) ) {\n\t\t\t\toverwritten( responseContainer[ 0 ] );\n\t\t\t}\n\n\t\t\tresponseContainer = overwritten = undefined;\n\t\t} );\n\n\t\t// Delegate to script\n\t\treturn \"script\";\n\t}\n} );\n\n\n\n\n// Support: Safari 8 only\n// In Safari 8 documents created via document.implementation.createHTMLDocument\n// collapse sibling forms: the second one becomes a child of the first one.\n// Because of that, this security measure has to be disabled in Safari 8.\n// https://bugs.webkit.org/show_bug.cgi?id=137337\nsupport.createHTMLDocument = ( function() {\n\tvar body = document.implementation.createHTMLDocument( \"\" ).body;\n\tbody.innerHTML = \"<form></form><form></form>\";\n\treturn body.childNodes.length === 2;\n} )();\n\n\n// Argument \"data\" should be string of html\n// context (optional): If specified, the fragment will be created in this context,\n// defaults to document\n// keepScripts (optional): If true, will include scripts passed in the html string\njQuery.parseHTML = function( data, context, keepScripts ) {\n\tif ( typeof data !== \"string\" ) {\n\t\treturn [];\n\t}\n\tif ( typeof context === \"boolean\" ) {\n\t\tkeepScripts = context;\n\t\tcontext = false;\n\t}\n\n\tvar base, parsed, scripts;\n\n\tif ( !context ) {\n\n\t\t// Stop scripts or inline event handlers from being executed immediately\n\t\t// by using document.implementation\n\t\tif ( support.createHTMLDocument ) {\n\t\t\tcontext = document.implementation.createHTMLDocument( \"\" );\n\n\t\t\t// Set the base href for the created document\n\t\t\t// so any parsed elements with URLs\n\t\t\t// are based on the document's URL (gh-2965)\n\t\t\tbase = context.createElement( \"base\" );\n\t\t\tbase.href = document.location.href;\n\t\t\tcontext.head.appendChild( base );\n\t\t} else {\n\t\t\tcontext = document;\n\t\t}\n\t}\n\n\tparsed = rsingleTag.exec( data );\n\tscripts = !keepScripts && [];\n\n\t// Single tag\n\tif ( parsed ) {\n\t\treturn [ context.createElement( parsed[ 1 ] ) ];\n\t}\n\n\tparsed = buildFragment( [ data ], context, scripts );\n\n\tif ( scripts && scripts.length ) {\n\t\tjQuery( scripts ).remove();\n\t}\n\n\treturn jQuery.merge( [], parsed.childNodes );\n};\n\n\n/**\n * Load a url into a page\n */\njQuery.fn.load = function( url, params, callback ) {\n\tvar selector, type, response,\n\t\tself = this,\n\t\toff = url.indexOf( \" \" );\n\n\tif ( off > -1 ) {\n\t\tselector = stripAndCollapse( url.slice( off ) );\n\t\turl = url.slice( 0, off );\n\t}\n\n\t// If it's a function\n\tif ( isFunction( params ) ) {\n\n\t\t// We assume that it's the callback\n\t\tcallback = params;\n\t\tparams = undefined;\n\n\t// Otherwise, build a param string\n\t} else if ( params && typeof params === \"object\" ) {\n\t\ttype = \"POST\";\n\t}\n\n\t// If we have elements to modify, make the request\n\tif ( self.length > 0 ) {\n\t\tjQuery.ajax( {\n\t\t\turl: url,\n\n\t\t\t// If \"type\" variable is undefined, then \"GET\" method will be used.\n\t\t\t// Make value of this field explicit since\n\t\t\t// user can override it through ajaxSetup method\n\t\t\ttype: type || \"GET\",\n\t\t\tdataType: \"html\",\n\t\t\tdata: params\n\t\t} ).done( function( responseText ) {\n\n\t\t\t// Save response for use in complete callback\n\t\t\tresponse = arguments;\n\n\t\t\tself.html( selector ?\n\n\t\t\t\t// If a selector was specified, locate the right elements in a dummy div\n\t\t\t\t// Exclude scripts to avoid IE 'Permission Denied' errors\n\t\t\t\tjQuery( \"<div>\" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :\n\n\t\t\t\t// Otherwise use the full result\n\t\t\t\tresponseText );\n\n\t\t// If the request succeeds, this function gets \"data\", \"status\", \"jqXHR\"\n\t\t// but they are ignored because response was set above.\n\t\t// If it fails, this function gets \"jqXHR\", \"status\", \"error\"\n\t\t} ).always( callback && function( jqXHR, status ) {\n\t\t\tself.each( function() {\n\t\t\t\tcallback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );\n\t\t\t} );\n\t\t} );\n\t}\n\n\treturn this;\n};\n\n\n\n\njQuery.expr.pseudos.animated = function( elem ) {\n\treturn jQuery.grep( jQuery.timers, function( fn ) {\n\t\treturn elem === fn.elem;\n\t} ).length;\n};\n\n\n\n\njQuery.offset = {\n\tsetOffset: function( elem, options, i ) {\n\t\tvar curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,\n\t\t\tposition = jQuery.css( elem, \"position\" ),\n\t\t\tcurElem = jQuery( elem ),\n\t\t\tprops = {};\n\n\t\t// Set position first, in-case top/left are set even on static elem\n\t\tif ( position === \"static\" ) {\n\t\t\telem.style.position = \"relative\";\n\t\t}\n\n\t\tcurOffset = curElem.offset();\n\t\tcurCSSTop = jQuery.css( elem, \"top\" );\n\t\tcurCSSLeft = jQuery.css( elem, \"left\" );\n\t\tcalculatePosition = ( position === \"absolute\" || position === \"fixed\" ) &&\n\t\t\t( curCSSTop + curCSSLeft ).indexOf( \"auto\" ) > -1;\n\n\t\t// Need to be able to calculate position if either\n\t\t// top or left is auto and position is either absolute or fixed\n\t\tif ( calculatePosition ) {\n\t\t\tcurPosition = curElem.position();\n\t\t\tcurTop = curPosition.top;\n\t\t\tcurLeft = curPosition.left;\n\n\t\t} else {\n\t\t\tcurTop = parseFloat( curCSSTop ) || 0;\n\t\t\tcurLeft = parseFloat( curCSSLeft ) || 0;\n\t\t}\n\n\t\tif ( isFunction( options ) ) {\n\n\t\t\t// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)\n\t\t\toptions = options.call( elem, i, jQuery.extend( {}, curOffset ) );\n\t\t}\n\n\t\tif ( options.top != null ) {\n\t\t\tprops.top = ( options.top - curOffset.top ) + curTop;\n\t\t}\n\t\tif ( options.left != null ) {\n\t\t\tprops.left = ( options.left - curOffset.left ) + curLeft;\n\t\t}\n\n\t\tif ( \"using\" in options ) {\n\t\t\toptions.using.call( elem, props );\n\n\t\t} else {\n\t\t\tcurElem.css( props );\n\t\t}\n\t}\n};\n\njQuery.fn.extend( {\n\n\t// offset() relates an element's border box to the document origin\n\toffset: function( options ) {\n\n\t\t// Preserve chaining for setter\n\t\tif ( arguments.length ) {\n\t\t\treturn options === undefined ?\n\t\t\t\tthis :\n\t\t\t\tthis.each( function( i ) {\n\t\t\t\t\tjQuery.offset.setOffset( this, options, i );\n\t\t\t\t} );\n\t\t}\n\n\t\tvar rect, win,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !elem ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Return zeros for disconnected and hidden (display: none) elements (gh-2310)\n\t\t// Support: IE <=11 only\n\t\t// Running getBoundingClientRect on a\n\t\t// disconnected node in IE throws an error\n\t\tif ( !elem.getClientRects().length ) {\n\t\t\treturn { top: 0, left: 0 };\n\t\t}\n\n\t\t// Get document-relative position by adding viewport scroll to viewport-relative gBCR\n\t\trect = elem.getBoundingClientRect();\n\t\twin = elem.ownerDocument.defaultView;\n\t\treturn {\n\t\t\ttop: rect.top + win.pageYOffset,\n\t\t\tleft: rect.left + win.pageXOffset\n\t\t};\n\t},\n\n\t// position() relates an element's margin box to its offset parent's padding box\n\t// This corresponds to the behavior of CSS absolute positioning\n\tposition: function() {\n\t\tif ( !this[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar offsetParent, offset, doc,\n\t\t\telem = this[ 0 ],\n\t\t\tparentOffset = { top: 0, left: 0 };\n\n\t\t// position:fixed elements are offset from the viewport, which itself always has zero offset\n\t\tif ( jQuery.css( elem, \"position\" ) === \"fixed\" ) {\n\n\t\t\t// Assume position:fixed implies availability of getBoundingClientRect\n\t\t\toffset = elem.getBoundingClientRect();\n\n\t\t} else {\n\t\t\toffset = this.offset();\n\n\t\t\t// Account for the *real* offset parent, which can be the document or its root element\n\t\t\t// when a statically positioned element is identified\n\t\t\tdoc = elem.ownerDocument;\n\t\t\toffsetParent = elem.offsetParent || doc.documentElement;\n\t\t\twhile ( offsetParent &&\n\t\t\t\t( offsetParent === doc.body || offsetParent === doc.documentElement ) &&\n\t\t\t\tjQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\n\t\t\t\toffsetParent = offsetParent.parentNode;\n\t\t\t}\n\t\t\tif ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {\n\n\t\t\t\t// Incorporate borders into its offset, since they are outside its content origin\n\t\t\t\tparentOffset = jQuery( offsetParent ).offset();\n\t\t\t\tparentOffset.top += jQuery.css( offsetParent, \"borderTopWidth\", true );\n\t\t\t\tparentOffset.left += jQuery.css( offsetParent, \"borderLeftWidth\", true );\n\t\t\t}\n\t\t}\n\n\t\t// Subtract parent offsets and element margins\n\t\treturn {\n\t\t\ttop: offset.top - parentOffset.top - jQuery.css( elem, \"marginTop\", true ),\n\t\t\tleft: offset.left - parentOffset.left - jQuery.css( elem, \"marginLeft\", true )\n\t\t};\n\t},\n\n\t// This method will return documentElement in the following cases:\n\t// 1) For the element inside the iframe without offsetParent, this method will return\n\t// documentElement of the parent window\n\t// 2) For the hidden or detached element\n\t// 3) For body or html element, i.e. in case of the html node - it will return itself\n\t//\n\t// but those exceptions were never presented as a real life use-cases\n\t// and might be considered as more preferable results.\n\t//\n\t// This logic, however, is not guaranteed and can change at any point in the future\n\toffsetParent: function() {\n\t\treturn this.map( function() {\n\t\t\tvar offsetParent = this.offsetParent;\n\n\t\t\twhile ( offsetParent && jQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\t\t\t\toffsetParent = offsetParent.offsetParent;\n\t\t\t}\n\n\t\t\treturn offsetParent || documentElement;\n\t\t} );\n\t}\n} );\n\n// Create scrollLeft and scrollTop methods\njQuery.each( { scrollLeft: \"pageXOffset\", scrollTop: \"pageYOffset\" }, function( method, prop ) {\n\tvar top = \"pageYOffset\" === prop;\n\n\tjQuery.fn[ method ] = function( val ) {\n\t\treturn access( this, function( elem, method, val ) {\n\n\t\t\t// Coalesce documents and windows\n\t\t\tvar win;\n\t\t\tif ( isWindow( elem ) ) {\n\t\t\t\twin = elem;\n\t\t\t} else if ( elem.nodeType === 9 ) {\n\t\t\t\twin = elem.defaultView;\n\t\t\t}\n\n\t\t\tif ( val === undefined ) {\n\t\t\t\treturn win ? win[ prop ] : elem[ method ];\n\t\t\t}\n\n\t\t\tif ( win ) {\n\t\t\t\twin.scrollTo(\n\t\t\t\t\t!top ? val : win.pageXOffset,\n\t\t\t\t\ttop ? val : win.pageYOffset\n\t\t\t\t);\n\n\t\t\t} else {\n\t\t\t\telem[ method ] = val;\n\t\t\t}\n\t\t}, method, val, arguments.length );\n\t};\n} );\n\n// Support: Safari <=7 - 9.1, Chrome <=37 - 49\n// Add the top/left cssHooks using jQuery.fn.position\n// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084\n// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347\n// getComputedStyle returns percent when specified for top/left/bottom/right;\n// rather than make the css module depend on the offset module, just check for it here\njQuery.each( [ \"top\", \"left\" ], function( _i, prop ) {\n\tjQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,\n\t\tfunction( elem, computed ) {\n\t\t\tif ( computed ) {\n\t\t\t\tcomputed = curCSS( elem, prop );\n\n\t\t\t\t// If curCSS returns percentage, fallback to offset\n\t\t\t\treturn rnumnonpx.test( computed ) ?\n\t\t\t\t\tjQuery( elem ).position()[ prop ] + \"px\" :\n\t\t\t\t\tcomputed;\n\t\t\t}\n\t\t}\n\t);\n} );\n\n\n// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\njQuery.each( { Height: \"height\", Width: \"width\" }, function( name, type ) {\n\tjQuery.each( {\n\t\tpadding: \"inner\" + name,\n\t\tcontent: type,\n\t\t\"\": \"outer\" + name\n\t}, function( defaultExtra, funcName ) {\n\n\t\t// Margin is only for outerHeight, outerWidth\n\t\tjQuery.fn[ funcName ] = function( margin, value ) {\n\t\t\tvar chainable = arguments.length && ( defaultExtra || typeof margin !== \"boolean\" ),\n\t\t\t\textra = defaultExtra || ( margin === true || value === true ? \"margin\" : \"border\" );\n\n\t\t\treturn access( this, function( elem, type, value ) {\n\t\t\t\tvar doc;\n\n\t\t\t\tif ( isWindow( elem ) ) {\n\n\t\t\t\t\t// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)\n\t\t\t\t\treturn funcName.indexOf( \"outer\" ) === 0 ?\n\t\t\t\t\t\telem[ \"inner\" + name ] :\n\t\t\t\t\t\telem.document.documentElement[ \"client\" + name ];\n\t\t\t\t}\n\n\t\t\t\t// Get document width or height\n\t\t\t\tif ( elem.nodeType === 9 ) {\n\t\t\t\t\tdoc = elem.documentElement;\n\n\t\t\t\t\t// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],\n\t\t\t\t\t// whichever is greatest\n\t\t\t\t\treturn Math.max(\n\t\t\t\t\t\telem.body[ \"scroll\" + name ], doc[ \"scroll\" + name ],\n\t\t\t\t\t\telem.body[ \"offset\" + name ], doc[ \"offset\" + name ],\n\t\t\t\t\t\tdoc[ \"client\" + name ]\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn value === undefined ?\n\n\t\t\t\t\t// Get width or height on the element, requesting but not forcing parseFloat\n\t\t\t\t\tjQuery.css( elem, type, extra ) :\n\n\t\t\t\t\t// Set width or height on the element\n\t\t\t\t\tjQuery.style( elem, type, value, extra );\n\t\t\t}, type, chainable ? margin : undefined, chainable );\n\t\t};\n\t} );\n} );\n\n\njQuery.each( [\n\t\"ajaxStart\",\n\t\"ajaxStop\",\n\t\"ajaxComplete\",\n\t\"ajaxError\",\n\t\"ajaxSuccess\",\n\t\"ajaxSend\"\n], function( _i, type ) {\n\tjQuery.fn[ type ] = function( fn ) {\n\t\treturn this.on( type, fn );\n\t};\n} );\n\n\n\n\njQuery.fn.extend( {\n\n\tbind: function( types, data, fn ) {\n\t\treturn this.on( types, null, data, fn );\n\t},\n\tunbind: function( types, fn ) {\n\t\treturn this.off( types, null, fn );\n\t},\n\n\tdelegate: function( selector, types, data, fn ) {\n\t\treturn this.on( types, selector, data, fn );\n\t},\n\tundelegate: function( selector, types, fn ) {\n\n\t\t// ( namespace ) or ( selector, types [, fn] )\n\t\treturn arguments.length === 1 ?\n\t\t\tthis.off( selector, \"**\" ) :\n\t\t\tthis.off( types, selector || \"**\", fn );\n\t},\n\n\thover: function( fnOver, fnOut ) {\n\t\treturn this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );\n\t}\n} );\n\njQuery.each(\n\t( \"blur focus focusin focusout resize scroll click dblclick \" +\n\t\"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" +\n\t\"change select submit keydown keypress keyup contextmenu\" ).split( \" \" ),\n\tfunction( _i, name ) {\n\n\t\t// Handle event binding\n\t\tjQuery.fn[ name ] = function( data, fn ) {\n\t\t\treturn arguments.length > 0 ?\n\t\t\t\tthis.on( name, null, data, fn ) :\n\t\t\t\tthis.trigger( name );\n\t\t};\n\t}\n);\n\n\n\n\n// Support: Android <=4.0 only\n// Make sure we trim BOM and NBSP\n// Require that the \"whitespace run\" starts from a non-whitespace\n// to avoid O(N^2) behavior when the engine would try matching \"\\s+$\" at each space position.\nvar rtrim = /^[\\s\\uFEFF\\xA0]+|([^\\s\\uFEFF\\xA0])[\\s\\uFEFF\\xA0]+$/g;\n\n// Bind a function to a context, optionally partially applying any\n// arguments.\n// jQuery.proxy is deprecated to promote standards (specifically Function#bind)\n// However, it is not slated for removal any time soon\njQuery.proxy = function( fn, context ) {\n\tvar tmp, args, proxy;\n\n\tif ( typeof context === \"string\" ) {\n\t\ttmp = fn[ context ];\n\t\tcontext = fn;\n\t\tfn = tmp;\n\t}\n\n\t// Quick check to determine if target is callable, in the spec\n\t// this throws a TypeError, but we will just return undefined.\n\tif ( !isFunction( fn ) ) {\n\t\treturn undefined;\n\t}\n\n\t// Simulated bind\n\targs = slice.call( arguments, 2 );\n\tproxy = function() {\n\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t};\n\n\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\treturn proxy;\n};\n\njQuery.holdReady = function( hold ) {\n\tif ( hold ) {\n\t\tjQuery.readyWait++;\n\t} else {\n\t\tjQuery.ready( true );\n\t}\n};\njQuery.isArray = Array.isArray;\njQuery.parseJSON = JSON.parse;\njQuery.nodeName = nodeName;\njQuery.isFunction = isFunction;\njQuery.isWindow = isWindow;\njQuery.camelCase = camelCase;\njQuery.type = toType;\n\njQuery.now = Date.now;\n\njQuery.isNumeric = function( obj ) {\n\n\t// As of jQuery 3.0, isNumeric is limited to\n\t// strings and numbers (primitives or objects)\n\t// that can be coerced to finite numbers (gh-2662)\n\tvar type = jQuery.type( obj );\n\treturn ( type === \"number\" || type === \"string\" ) &&\n\n\t\t// parseFloat NaNs numeric-cast false positives (\"\")\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t// subtraction forces infinities to NaN\n\t\t!isNaN( obj - parseFloat( obj ) );\n};\n\njQuery.trim = function( text ) {\n\treturn text == null ?\n\t\t\"\" :\n\t\t( text + \"\" ).replace( rtrim, \"$1\" );\n};\n\n\n\n// Register as a named AMD module, since jQuery can be concatenated with other\n// files that may use define, but not via a proper concatenation script that\n// understands anonymous AMD modules. A named AMD is safest and most robust\n// way to register. Lowercase jquery is used because AMD module names are\n// derived from file names, and jQuery is normally delivered in a lowercase\n// file name. Do this after creating the global so that if an AMD module wants\n// to call noConflict to hide this version of jQuery, it will work.\n\n// Note that for maximum portability, libraries that are not jQuery should\n// declare themselves as anonymous modules, and avoid setting a global if an\n// AMD loader is present. jQuery is a special case. For more information, see\n// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon\n\nif ( typeof define === \"function\" && define.amd ) {\n\tdefine( \"jquery\", [], function() {\n\t\treturn jQuery;\n\t} );\n}\n\n\n\n\nvar\n\n\t// Map over jQuery in case of overwrite\n\t_jQuery = window.jQuery,\n\n\t// Map over the $ in case of overwrite\n\t_$ = window.$;\n\njQuery.noConflict = function( deep ) {\n\tif ( window.$ === jQuery ) {\n\t\twindow.$ = _$;\n\t}\n\n\tif ( deep && window.jQuery === jQuery ) {\n\t\twindow.jQuery = _jQuery;\n\t}\n\n\treturn jQuery;\n};\n\n// Expose jQuery and $ identifiers, even in AMD\n// (trac-7102#comment:10, https://github.com/jquery/jquery/pull/557)\n// and CommonJS for browser emulators (trac-13566)\nif ( typeof noGlobal === \"undefined\" ) {\n\twindow.jQuery = window.$ = jQuery;\n}\n\n\n\n\nreturn jQuery;\n} );\n","/*!\n * Quill Editor v1.3.7\n * https://quilljs.com/\n * Copyright (c) 2014, Jason Chen\n * Copyright (c) 2013, salesforce.com\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Quill\"] = factory();\n\telse\n\t\troot[\"Quill\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 109);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = __webpack_require__(17);\nvar format_1 = __webpack_require__(18);\nvar leaf_1 = __webpack_require__(19);\nvar scroll_1 = __webpack_require__(45);\nvar inline_1 = __webpack_require__(46);\nvar block_1 = __webpack_require__(47);\nvar embed_1 = __webpack_require__(48);\nvar text_1 = __webpack_require__(49);\nvar attributor_1 = __webpack_require__(12);\nvar class_1 = __webpack_require__(32);\nvar style_1 = __webpack_require__(33);\nvar store_1 = __webpack_require__(31);\nvar Registry = __webpack_require__(1);\nvar Parchment = {\n Scope: Registry.Scope,\n create: Registry.create,\n find: Registry.find,\n query: Registry.query,\n register: Registry.register,\n Container: container_1.default,\n Format: format_1.default,\n Leaf: leaf_1.default,\n Embed: embed_1.default,\n Scroll: scroll_1.default,\n Block: block_1.default,\n Inline: inline_1.default,\n Text: text_1.default,\n Attributor: {\n Attribute: attributor_1.default,\n Class: class_1.default,\n Style: style_1.default,\n Store: store_1.default,\n },\n};\nexports.default = Parchment;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ParchmentError = /** @class */ (function (_super) {\n __extends(ParchmentError, _super);\n function ParchmentError(message) {\n var _this = this;\n message = '[Parchment] ' + message;\n _this = _super.call(this, message) || this;\n _this.message = message;\n _this.name = _this.constructor.name;\n return _this;\n }\n return ParchmentError;\n}(Error));\nexports.ParchmentError = ParchmentError;\nvar attributes = {};\nvar classes = {};\nvar tags = {};\nvar types = {};\nexports.DATA_KEY = '__blot';\nvar Scope;\n(function (Scope) {\n Scope[Scope[\"TYPE\"] = 3] = \"TYPE\";\n Scope[Scope[\"LEVEL\"] = 12] = \"LEVEL\";\n Scope[Scope[\"ATTRIBUTE\"] = 13] = \"ATTRIBUTE\";\n Scope[Scope[\"BLOT\"] = 14] = \"BLOT\";\n Scope[Scope[\"INLINE\"] = 7] = \"INLINE\";\n Scope[Scope[\"BLOCK\"] = 11] = \"BLOCK\";\n Scope[Scope[\"BLOCK_BLOT\"] = 10] = \"BLOCK_BLOT\";\n Scope[Scope[\"INLINE_BLOT\"] = 6] = \"INLINE_BLOT\";\n Scope[Scope[\"BLOCK_ATTRIBUTE\"] = 9] = \"BLOCK_ATTRIBUTE\";\n Scope[Scope[\"INLINE_ATTRIBUTE\"] = 5] = \"INLINE_ATTRIBUTE\";\n Scope[Scope[\"ANY\"] = 15] = \"ANY\";\n})(Scope = exports.Scope || (exports.Scope = {}));\nfunction create(input, value) {\n var match = query(input);\n if (match == null) {\n throw new ParchmentError(\"Unable to create \" + input + \" blot\");\n }\n var BlotClass = match;\n var node = \n // @ts-ignore\n input instanceof Node || input['nodeType'] === Node.TEXT_NODE ? input : BlotClass.create(value);\n return new BlotClass(node, value);\n}\nexports.create = create;\nfunction find(node, bubble) {\n if (bubble === void 0) { bubble = false; }\n if (node == null)\n return null;\n // @ts-ignore\n if (node[exports.DATA_KEY] != null)\n return node[exports.DATA_KEY].blot;\n if (bubble)\n return find(node.parentNode, bubble);\n return null;\n}\nexports.find = find;\nfunction query(query, scope) {\n if (scope === void 0) { scope = Scope.ANY; }\n var match;\n if (typeof query === 'string') {\n match = types[query] || attributes[query];\n // @ts-ignore\n }\n else if (query instanceof Text || query['nodeType'] === Node.TEXT_NODE) {\n match = types['text'];\n }\n else if (typeof query === 'number') {\n if (query & Scope.LEVEL & Scope.BLOCK) {\n match = types['block'];\n }\n else if (query & Scope.LEVEL & Scope.INLINE) {\n match = types['inline'];\n }\n }\n else if (query instanceof HTMLElement) {\n var names = (query.getAttribute('class') || '').split(/\\s+/);\n for (var i in names) {\n match = classes[names[i]];\n if (match)\n break;\n }\n match = match || tags[query.tagName];\n }\n if (match == null)\n return null;\n // @ts-ignore\n if (scope & Scope.LEVEL & match.scope && scope & Scope.TYPE & match.scope)\n return match;\n return null;\n}\nexports.query = query;\nfunction register() {\n var Definitions = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n Definitions[_i] = arguments[_i];\n }\n if (Definitions.length > 1) {\n return Definitions.map(function (d) {\n return register(d);\n });\n }\n var Definition = Definitions[0];\n if (typeof Definition.blotName !== 'string' && typeof Definition.attrName !== 'string') {\n throw new ParchmentError('Invalid definition');\n }\n else if (Definition.blotName === 'abstract') {\n throw new ParchmentError('Cannot register abstract class');\n }\n types[Definition.blotName || Definition.attrName] = Definition;\n if (typeof Definition.keyName === 'string') {\n attributes[Definition.keyName] = Definition;\n }\n else {\n if (Definition.className != null) {\n classes[Definition.className] = Definition;\n }\n if (Definition.tagName != null) {\n if (Array.isArray(Definition.tagName)) {\n Definition.tagName = Definition.tagName.map(function (tagName) {\n return tagName.toUpperCase();\n });\n }\n else {\n Definition.tagName = Definition.tagName.toUpperCase();\n }\n var tagNames = Array.isArray(Definition.tagName) ? Definition.tagName : [Definition.tagName];\n tagNames.forEach(function (tag) {\n if (tags[tag] == null || Definition.className == null) {\n tags[tag] = Definition;\n }\n });\n }\n }\n return Definition;\n}\nexports.register = register;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar diff = __webpack_require__(51);\nvar equal = __webpack_require__(11);\nvar extend = __webpack_require__(3);\nvar op = __webpack_require__(20);\n\n\nvar NULL_CHARACTER = String.fromCharCode(0); // Placeholder char for embed in diff()\n\n\nvar Delta = function (ops) {\n // Assume we are given a well formed ops\n if (Array.isArray(ops)) {\n this.ops = ops;\n } else if (ops != null && Array.isArray(ops.ops)) {\n this.ops = ops.ops;\n } else {\n this.ops = [];\n }\n};\n\n\nDelta.prototype.insert = function (text, attributes) {\n var newOp = {};\n if (text.length === 0) return this;\n newOp.insert = text;\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n};\n\nDelta.prototype['delete'] = function (length) {\n if (length <= 0) return this;\n return this.push({ 'delete': length });\n};\n\nDelta.prototype.retain = function (length, attributes) {\n if (length <= 0) return this;\n var newOp = { retain: length };\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n};\n\nDelta.prototype.push = function (newOp) {\n var index = this.ops.length;\n var lastOp = this.ops[index - 1];\n newOp = extend(true, {}, newOp);\n if (typeof lastOp === 'object') {\n if (typeof newOp['delete'] === 'number' && typeof lastOp['delete'] === 'number') {\n this.ops[index - 1] = { 'delete': lastOp['delete'] + newOp['delete'] };\n return this;\n }\n // Since it does not matter if we insert before or after deleting at the same index,\n // always prefer to insert first\n if (typeof lastOp['delete'] === 'number' && newOp.insert != null) {\n index -= 1;\n lastOp = this.ops[index - 1];\n if (typeof lastOp !== 'object') {\n this.ops.unshift(newOp);\n return this;\n }\n }\n if (equal(newOp.attributes, lastOp.attributes)) {\n if (typeof newOp.insert === 'string' && typeof lastOp.insert === 'string') {\n this.ops[index - 1] = { insert: lastOp.insert + newOp.insert };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n return this;\n } else if (typeof newOp.retain === 'number' && typeof lastOp.retain === 'number') {\n this.ops[index - 1] = { retain: lastOp.retain + newOp.retain };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n return this;\n }\n }\n }\n if (index === this.ops.length) {\n this.ops.push(newOp);\n } else {\n this.ops.splice(index, 0, newOp);\n }\n return this;\n};\n\nDelta.prototype.chop = function () {\n var lastOp = this.ops[this.ops.length - 1];\n if (lastOp && lastOp.retain && !lastOp.attributes) {\n this.ops.pop();\n }\n return this;\n};\n\nDelta.prototype.filter = function (predicate) {\n return this.ops.filter(predicate);\n};\n\nDelta.prototype.forEach = function (predicate) {\n this.ops.forEach(predicate);\n};\n\nDelta.prototype.map = function (predicate) {\n return this.ops.map(predicate);\n};\n\nDelta.prototype.partition = function (predicate) {\n var passed = [], failed = [];\n this.forEach(function(op) {\n var target = predicate(op) ? passed : failed;\n target.push(op);\n });\n return [passed, failed];\n};\n\nDelta.prototype.reduce = function (predicate, initial) {\n return this.ops.reduce(predicate, initial);\n};\n\nDelta.prototype.changeLength = function () {\n return this.reduce(function (length, elem) {\n if (elem.insert) {\n return length + op.length(elem);\n } else if (elem.delete) {\n return length - elem.delete;\n }\n return length;\n }, 0);\n};\n\nDelta.prototype.length = function () {\n return this.reduce(function (length, elem) {\n return length + op.length(elem);\n }, 0);\n};\n\nDelta.prototype.slice = function (start, end) {\n start = start || 0;\n if (typeof end !== 'number') end = Infinity;\n var ops = [];\n var iter = op.iterator(this.ops);\n var index = 0;\n while (index < end && iter.hasNext()) {\n var nextOp;\n if (index < start) {\n nextOp = iter.next(start - index);\n } else {\n nextOp = iter.next(end - index);\n ops.push(nextOp);\n }\n index += op.length(nextOp);\n }\n return new Delta(ops);\n};\n\n\nDelta.prototype.compose = function (other) {\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var ops = [];\n var firstOther = otherIter.peek();\n if (firstOther != null && typeof firstOther.retain === 'number' && firstOther.attributes == null) {\n var firstLeft = firstOther.retain;\n while (thisIter.peekType() === 'insert' && thisIter.peekLength() <= firstLeft) {\n firstLeft -= thisIter.peekLength();\n ops.push(thisIter.next());\n }\n if (firstOther.retain - firstLeft > 0) {\n otherIter.next(firstOther.retain - firstLeft);\n }\n }\n var delta = new Delta(ops);\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else if (thisIter.peekType() === 'delete') {\n delta.push(thisIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (typeof otherOp.retain === 'number') {\n var newOp = {};\n if (typeof thisOp.retain === 'number') {\n newOp.retain = length;\n } else {\n newOp.insert = thisOp.insert;\n }\n // Preserve null when composing with a retain, otherwise remove it for inserts\n var attributes = op.attributes.compose(thisOp.attributes, otherOp.attributes, typeof thisOp.retain === 'number');\n if (attributes) newOp.attributes = attributes;\n delta.push(newOp);\n\n // Optimization if rest of other is just retain\n if (!otherIter.hasNext() && equal(delta.ops[delta.ops.length - 1], newOp)) {\n var rest = new Delta(thisIter.rest());\n return delta.concat(rest).chop();\n }\n\n // Other op should be delete, we could be an insert or retain\n // Insert + delete cancels out\n } else if (typeof otherOp['delete'] === 'number' && typeof thisOp.retain === 'number') {\n delta.push(otherOp);\n }\n }\n }\n return delta.chop();\n};\n\nDelta.prototype.concat = function (other) {\n var delta = new Delta(this.ops.slice());\n if (other.ops.length > 0) {\n delta.push(other.ops[0]);\n delta.ops = delta.ops.concat(other.ops.slice(1));\n }\n return delta;\n};\n\nDelta.prototype.diff = function (other, index) {\n if (this.ops === other.ops) {\n return new Delta();\n }\n var strings = [this, other].map(function (delta) {\n return delta.map(function (op) {\n if (op.insert != null) {\n return typeof op.insert === 'string' ? op.insert : NULL_CHARACTER;\n }\n var prep = (delta === other) ? 'on' : 'with';\n throw new Error('diff() called ' + prep + ' non-document');\n }).join('');\n });\n var delta = new Delta();\n var diffResult = diff(strings[0], strings[1], index);\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n diffResult.forEach(function (component) {\n var length = component[1].length;\n while (length > 0) {\n var opLength = 0;\n switch (component[0]) {\n case diff.INSERT:\n opLength = Math.min(otherIter.peekLength(), length);\n delta.push(otherIter.next(opLength));\n break;\n case diff.DELETE:\n opLength = Math.min(length, thisIter.peekLength());\n thisIter.next(opLength);\n delta['delete'](opLength);\n break;\n case diff.EQUAL:\n opLength = Math.min(thisIter.peekLength(), otherIter.peekLength(), length);\n var thisOp = thisIter.next(opLength);\n var otherOp = otherIter.next(opLength);\n if (equal(thisOp.insert, otherOp.insert)) {\n delta.retain(opLength, op.attributes.diff(thisOp.attributes, otherOp.attributes));\n } else {\n delta.push(otherOp)['delete'](opLength);\n }\n break;\n }\n length -= opLength;\n }\n });\n return delta.chop();\n};\n\nDelta.prototype.eachLine = function (predicate, newline) {\n newline = newline || '\\n';\n var iter = op.iterator(this.ops);\n var line = new Delta();\n var i = 0;\n while (iter.hasNext()) {\n if (iter.peekType() !== 'insert') return;\n var thisOp = iter.peek();\n var start = op.length(thisOp) - iter.peekLength();\n var index = typeof thisOp.insert === 'string' ?\n thisOp.insert.indexOf(newline, start) - start : -1;\n if (index < 0) {\n line.push(iter.next());\n } else if (index > 0) {\n line.push(iter.next(index));\n } else {\n if (predicate(line, iter.next(1).attributes || {}, i) === false) {\n return;\n }\n i += 1;\n line = new Delta();\n }\n }\n if (line.length() > 0) {\n predicate(line, {}, i);\n }\n};\n\nDelta.prototype.transform = function (other, priority) {\n priority = !!priority;\n if (typeof other === 'number') {\n return this.transformPosition(other, priority);\n }\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var delta = new Delta();\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (thisIter.peekType() === 'insert' && (priority || otherIter.peekType() !== 'insert')) {\n delta.retain(op.length(thisIter.next()));\n } else if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (thisOp['delete']) {\n // Our delete either makes their delete redundant or removes their retain\n continue;\n } else if (otherOp['delete']) {\n delta.push(otherOp);\n } else {\n // We retain either their retain or insert\n delta.retain(length, op.attributes.transform(thisOp.attributes, otherOp.attributes, priority));\n }\n }\n }\n return delta.chop();\n};\n\nDelta.prototype.transformPosition = function (index, priority) {\n priority = !!priority;\n var thisIter = op.iterator(this.ops);\n var offset = 0;\n while (thisIter.hasNext() && offset <= index) {\n var length = thisIter.peekLength();\n var nextType = thisIter.peekType();\n thisIter.next();\n if (nextType === 'delete') {\n index -= Math.min(length, index - offset);\n continue;\n } else if (nextType === 'insert' && (offset < index || !priority)) {\n index += length;\n }\n offset += length;\n }\n return index;\n};\n\n\nmodule.exports = Delta;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BlockEmbed = exports.bubbleFormats = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar NEWLINE_LENGTH = 1;\n\nvar BlockEmbed = function (_Parchment$Embed) {\n _inherits(BlockEmbed, _Parchment$Embed);\n\n function BlockEmbed() {\n _classCallCheck(this, BlockEmbed);\n\n return _possibleConstructorReturn(this, (BlockEmbed.__proto__ || Object.getPrototypeOf(BlockEmbed)).apply(this, arguments));\n }\n\n _createClass(BlockEmbed, [{\n key: 'attach',\n value: function attach() {\n _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'attach', this).call(this);\n this.attributes = new _parchment2.default.Attributor.Store(this.domNode);\n }\n }, {\n key: 'delta',\n value: function delta() {\n return new _quillDelta2.default().insert(this.value(), (0, _extend2.default)(this.formats(), this.attributes.values()));\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n var attribute = _parchment2.default.query(name, _parchment2.default.Scope.BLOCK_ATTRIBUTE);\n if (attribute != null) {\n this.attributes.attribute(attribute, value);\n }\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n this.format(name, value);\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (typeof value === 'string' && value.endsWith('\\n')) {\n var block = _parchment2.default.create(Block.blotName);\n this.parent.insertBefore(block, index === 0 ? this : this.next);\n block.insertAt(0, value.slice(0, -1));\n } else {\n _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'insertAt', this).call(this, index, value, def);\n }\n }\n }]);\n\n return BlockEmbed;\n}(_parchment2.default.Embed);\n\nBlockEmbed.scope = _parchment2.default.Scope.BLOCK_BLOT;\n// It is important for cursor behavior BlockEmbeds use tags that are block level elements\n\n\nvar Block = function (_Parchment$Block) {\n _inherits(Block, _Parchment$Block);\n\n function Block(domNode) {\n _classCallCheck(this, Block);\n\n var _this2 = _possibleConstructorReturn(this, (Block.__proto__ || Object.getPrototypeOf(Block)).call(this, domNode));\n\n _this2.cache = {};\n return _this2;\n }\n\n _createClass(Block, [{\n key: 'delta',\n value: function delta() {\n if (this.cache.delta == null) {\n this.cache.delta = this.descendants(_parchment2.default.Leaf).reduce(function (delta, leaf) {\n if (leaf.length() === 0) {\n return delta;\n } else {\n return delta.insert(leaf.value(), bubbleFormats(leaf));\n }\n }, new _quillDelta2.default()).insert('\\n', bubbleFormats(this));\n }\n return this.cache.delta;\n }\n }, {\n key: 'deleteAt',\n value: function deleteAt(index, length) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'deleteAt', this).call(this, index, length);\n this.cache = {};\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (length <= 0) return;\n if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {\n if (index + length === this.length()) {\n this.format(name, value);\n }\n } else {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'formatAt', this).call(this, index, Math.min(length, this.length() - index - 1), name, value);\n }\n this.cache = {};\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null) return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, index, value, def);\n if (value.length === 0) return;\n var lines = value.split('\\n');\n var text = lines.shift();\n if (text.length > 0) {\n if (index < this.length() - 1 || this.children.tail == null) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, Math.min(index, this.length() - 1), text);\n } else {\n this.children.tail.insertAt(this.children.tail.length(), text);\n }\n this.cache = {};\n }\n var block = this;\n lines.reduce(function (index, line) {\n block = block.split(index, true);\n block.insertAt(0, line);\n return line.length;\n }, index + text.length);\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n var head = this.children.head;\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertBefore', this).call(this, blot, ref);\n if (head instanceof _break2.default) {\n head.remove();\n }\n this.cache = {};\n }\n }, {\n key: 'length',\n value: function length() {\n if (this.cache.length == null) {\n this.cache.length = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'length', this).call(this) + NEWLINE_LENGTH;\n }\n return this.cache.length;\n }\n }, {\n key: 'moveChildren',\n value: function moveChildren(target, ref) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'moveChildren', this).call(this, target, ref);\n this.cache = {};\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'optimize', this).call(this, context);\n this.cache = {};\n }\n }, {\n key: 'path',\n value: function path(index) {\n return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'path', this).call(this, index, true);\n }\n }, {\n key: 'removeChild',\n value: function removeChild(child) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'removeChild', this).call(this, child);\n this.cache = {};\n }\n }, {\n key: 'split',\n value: function split(index) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (force && (index === 0 || index >= this.length() - NEWLINE_LENGTH)) {\n var clone = this.clone();\n if (index === 0) {\n this.parent.insertBefore(clone, this);\n return this;\n } else {\n this.parent.insertBefore(clone, this.next);\n return clone;\n }\n } else {\n var next = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'split', this).call(this, index, force);\n this.cache = {};\n return next;\n }\n }\n }]);\n\n return Block;\n}(_parchment2.default.Block);\n\nBlock.blotName = 'block';\nBlock.tagName = 'P';\nBlock.defaultChild = 'break';\nBlock.allowedChildren = [_inline2.default, _parchment2.default.Embed, _text2.default];\n\nfunction bubbleFormats(blot) {\n var formats = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (blot == null) return formats;\n if (typeof blot.formats === 'function') {\n formats = (0, _extend2.default)(formats, blot.formats());\n }\n if (blot.parent == null || blot.parent.blotName == 'scroll' || blot.parent.statics.scope !== blot.statics.scope) {\n return formats;\n }\n return bubbleFormats(blot.parent, formats);\n}\n\nexports.bubbleFormats = bubbleFormats;\nexports.BlockEmbed = BlockEmbed;\nexports.default = Block;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.overload = exports.expandConfig = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n__webpack_require__(50);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _editor = __webpack_require__(14);\n\nvar _editor2 = _interopRequireDefault(_editor);\n\nvar _emitter3 = __webpack_require__(8);\n\nvar _emitter4 = _interopRequireDefault(_emitter3);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _selection = __webpack_require__(15);\n\nvar _selection2 = _interopRequireDefault(_selection);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _theme = __webpack_require__(34);\n\nvar _theme2 = _interopRequireDefault(_theme);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar debug = (0, _logger2.default)('quill');\n\nvar Quill = function () {\n _createClass(Quill, null, [{\n key: 'debug',\n value: function debug(limit) {\n if (limit === true) {\n limit = 'log';\n }\n _logger2.default.level(limit);\n }\n }, {\n key: 'find',\n value: function find(node) {\n return node.__quill || _parchment2.default.find(node);\n }\n }, {\n key: 'import',\n value: function _import(name) {\n if (this.imports[name] == null) {\n debug.error('Cannot import ' + name + '. Are you sure it was registered?');\n }\n return this.imports[name];\n }\n }, {\n key: 'register',\n value: function register(path, target) {\n var _this = this;\n\n var overwrite = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (typeof path !== 'string') {\n var name = path.attrName || path.blotName;\n if (typeof name === 'string') {\n // register(Blot | Attributor, overwrite)\n this.register('formats/' + name, path, target);\n } else {\n Object.keys(path).forEach(function (key) {\n _this.register(key, path[key], target);\n });\n }\n } else {\n if (this.imports[path] != null && !overwrite) {\n debug.warn('Overwriting ' + path + ' with', target);\n }\n this.imports[path] = target;\n if ((path.startsWith('blots/') || path.startsWith('formats/')) && target.blotName !== 'abstract') {\n _parchment2.default.register(target);\n } else if (path.startsWith('modules') && typeof target.register === 'function') {\n target.register();\n }\n }\n }\n }]);\n\n function Quill(container) {\n var _this2 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Quill);\n\n this.options = expandConfig(container, options);\n this.container = this.options.container;\n if (this.container == null) {\n return debug.error('Invalid Quill container', container);\n }\n if (this.options.debug) {\n Quill.debug(this.options.debug);\n }\n var html = this.container.innerHTML.trim();\n this.container.classList.add('ql-container');\n this.container.innerHTML = '';\n this.container.__quill = this;\n this.root = this.addContainer('ql-editor');\n this.root.classList.add('ql-blank');\n this.root.setAttribute('data-gramm', false);\n this.scrollingContainer = this.options.scrollingContainer || this.root;\n this.emitter = new _emitter4.default();\n this.scroll = _parchment2.default.create(this.root, {\n emitter: this.emitter,\n whitelist: this.options.formats\n });\n this.editor = new _editor2.default(this.scroll);\n this.selection = new _selection2.default(this.scroll, this.emitter);\n this.theme = new this.options.theme(this, this.options);\n this.keyboard = this.theme.addModule('keyboard');\n this.clipboard = this.theme.addModule('clipboard');\n this.history = this.theme.addModule('history');\n this.theme.init();\n this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type) {\n if (type === _emitter4.default.events.TEXT_CHANGE) {\n _this2.root.classList.toggle('ql-blank', _this2.editor.isBlank());\n }\n });\n this.emitter.on(_emitter4.default.events.SCROLL_UPDATE, function (source, mutations) {\n var range = _this2.selection.lastRange;\n var index = range && range.length === 0 ? range.index : undefined;\n modify.call(_this2, function () {\n return _this2.editor.update(null, mutations, index);\n }, source);\n });\n var contents = this.clipboard.convert('<div class=\\'ql-editor\\' style=\"white-space: normal;\">' + html + '<p><br></p></div>');\n this.setContents(contents);\n this.history.clear();\n if (this.options.placeholder) {\n this.root.setAttribute('data-placeholder', this.options.placeholder);\n }\n if (this.options.readOnly) {\n this.disable();\n }\n }\n\n _createClass(Quill, [{\n key: 'addContainer',\n value: function addContainer(container) {\n var refNode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (typeof container === 'string') {\n var className = container;\n container = document.createElement('div');\n container.classList.add(className);\n }\n this.container.insertBefore(container, refNode);\n return container;\n }\n }, {\n key: 'blur',\n value: function blur() {\n this.selection.setRange(null);\n }\n }, {\n key: 'deleteText',\n value: function deleteText(index, length, source) {\n var _this3 = this;\n\n var _overload = overload(index, length, source);\n\n var _overload2 = _slicedToArray(_overload, 4);\n\n index = _overload2[0];\n length = _overload2[1];\n source = _overload2[3];\n\n return modify.call(this, function () {\n return _this3.editor.deleteText(index, length);\n }, source, index, -1 * length);\n }\n }, {\n key: 'disable',\n value: function disable() {\n this.enable(false);\n }\n }, {\n key: 'enable',\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this.scroll.enable(enabled);\n this.container.classList.toggle('ql-disabled', !enabled);\n }\n }, {\n key: 'focus',\n value: function focus() {\n var scrollTop = this.scrollingContainer.scrollTop;\n this.selection.focus();\n this.scrollingContainer.scrollTop = scrollTop;\n this.scrollIntoView();\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n var _this4 = this;\n\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n var range = _this4.getSelection(true);\n var change = new _quillDelta2.default();\n if (range == null) {\n return change;\n } else if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {\n change = _this4.editor.formatLine(range.index, range.length, _defineProperty({}, name, value));\n } else if (range.length === 0) {\n _this4.selection.format(name, value);\n return change;\n } else {\n change = _this4.editor.formatText(range.index, range.length, _defineProperty({}, name, value));\n }\n _this4.setSelection(range, _emitter4.default.sources.SILENT);\n return change;\n }, source);\n }\n }, {\n key: 'formatLine',\n value: function formatLine(index, length, name, value, source) {\n var _this5 = this;\n\n var formats = void 0;\n\n var _overload3 = overload(index, length, name, value, source);\n\n var _overload4 = _slicedToArray(_overload3, 4);\n\n index = _overload4[0];\n length = _overload4[1];\n formats = _overload4[2];\n source = _overload4[3];\n\n return modify.call(this, function () {\n return _this5.editor.formatLine(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: 'formatText',\n value: function formatText(index, length, name, value, source) {\n var _this6 = this;\n\n var formats = void 0;\n\n var _overload5 = overload(index, length, name, value, source);\n\n var _overload6 = _slicedToArray(_overload5, 4);\n\n index = _overload6[0];\n length = _overload6[1];\n formats = _overload6[2];\n source = _overload6[3];\n\n return modify.call(this, function () {\n return _this6.editor.formatText(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: 'getBounds',\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var bounds = void 0;\n if (typeof index === 'number') {\n bounds = this.selection.getBounds(index, length);\n } else {\n bounds = this.selection.getBounds(index.index, index.length);\n }\n var containerBounds = this.container.getBoundingClientRect();\n return {\n bottom: bounds.bottom - containerBounds.top,\n height: bounds.height,\n left: bounds.left - containerBounds.left,\n right: bounds.right - containerBounds.left,\n top: bounds.top - containerBounds.top,\n width: bounds.width\n };\n }\n }, {\n key: 'getContents',\n value: function getContents() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n\n var _overload7 = overload(index, length);\n\n var _overload8 = _slicedToArray(_overload7, 2);\n\n index = _overload8[0];\n length = _overload8[1];\n\n return this.editor.getContents(index, length);\n }\n }, {\n key: 'getFormat',\n value: function getFormat() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getSelection(true);\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n if (typeof index === 'number') {\n return this.editor.getFormat(index, length);\n } else {\n return this.editor.getFormat(index.index, index.length);\n }\n }\n }, {\n key: 'getIndex',\n value: function getIndex(blot) {\n return blot.offset(this.scroll);\n }\n }, {\n key: 'getLength',\n value: function getLength() {\n return this.scroll.length();\n }\n }, {\n key: 'getLeaf',\n value: function getLeaf(index) {\n return this.scroll.leaf(index);\n }\n }, {\n key: 'getLine',\n value: function getLine(index) {\n return this.scroll.line(index);\n }\n }, {\n key: 'getLines',\n value: function getLines() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n\n if (typeof index !== 'number') {\n return this.scroll.lines(index.index, index.length);\n } else {\n return this.scroll.lines(index, length);\n }\n }\n }, {\n key: 'getModule',\n value: function getModule(name) {\n return this.theme.modules[name];\n }\n }, {\n key: 'getSelection',\n value: function getSelection() {\n var focus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (focus) this.focus();\n this.update(); // Make sure we access getRange with editor in consistent state\n return this.selection.getRange()[0];\n }\n }, {\n key: 'getText',\n value: function getText() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n\n var _overload9 = overload(index, length);\n\n var _overload10 = _slicedToArray(_overload9, 2);\n\n index = _overload10[0];\n length = _overload10[1];\n\n return this.editor.getText(index, length);\n }\n }, {\n key: 'hasFocus',\n value: function hasFocus() {\n return this.selection.hasFocus();\n }\n }, {\n key: 'insertEmbed',\n value: function insertEmbed(index, embed, value) {\n var _this7 = this;\n\n var source = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Quill.sources.API;\n\n return modify.call(this, function () {\n return _this7.editor.insertEmbed(index, embed, value);\n }, source, index);\n }\n }, {\n key: 'insertText',\n value: function insertText(index, text, name, value, source) {\n var _this8 = this;\n\n var formats = void 0;\n\n var _overload11 = overload(index, 0, name, value, source);\n\n var _overload12 = _slicedToArray(_overload11, 4);\n\n index = _overload12[0];\n formats = _overload12[2];\n source = _overload12[3];\n\n return modify.call(this, function () {\n return _this8.editor.insertText(index, text, formats);\n }, source, index, text.length);\n }\n }, {\n key: 'isEnabled',\n value: function isEnabled() {\n return !this.container.classList.contains('ql-disabled');\n }\n }, {\n key: 'off',\n value: function off() {\n return this.emitter.off.apply(this.emitter, arguments);\n }\n }, {\n key: 'on',\n value: function on() {\n return this.emitter.on.apply(this.emitter, arguments);\n }\n }, {\n key: 'once',\n value: function once() {\n return this.emitter.once.apply(this.emitter, arguments);\n }\n }, {\n key: 'pasteHTML',\n value: function pasteHTML(index, html, source) {\n this.clipboard.dangerouslyPasteHTML(index, html, source);\n }\n }, {\n key: 'removeFormat',\n value: function removeFormat(index, length, source) {\n var _this9 = this;\n\n var _overload13 = overload(index, length, source);\n\n var _overload14 = _slicedToArray(_overload13, 4);\n\n index = _overload14[0];\n length = _overload14[1];\n source = _overload14[3];\n\n return modify.call(this, function () {\n return _this9.editor.removeFormat(index, length);\n }, source, index);\n }\n }, {\n key: 'scrollIntoView',\n value: function scrollIntoView() {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }, {\n key: 'setContents',\n value: function setContents(delta) {\n var _this10 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n delta = new _quillDelta2.default(delta);\n var length = _this10.getLength();\n var deleted = _this10.editor.deleteText(0, length);\n var applied = _this10.editor.applyDelta(delta);\n var lastOp = applied.ops[applied.ops.length - 1];\n if (lastOp != null && typeof lastOp.insert === 'string' && lastOp.insert[lastOp.insert.length - 1] === '\\n') {\n _this10.editor.deleteText(_this10.getLength() - 1, 1);\n applied.delete(1);\n }\n var ret = deleted.compose(applied);\n return ret;\n }, source);\n }\n }, {\n key: 'setSelection',\n value: function setSelection(index, length, source) {\n if (index == null) {\n this.selection.setRange(null, length || Quill.sources.API);\n } else {\n var _overload15 = overload(index, length, source);\n\n var _overload16 = _slicedToArray(_overload15, 4);\n\n index = _overload16[0];\n length = _overload16[1];\n source = _overload16[3];\n\n this.selection.setRange(new _selection.Range(index, length), source);\n if (source !== _emitter4.default.sources.SILENT) {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }\n }\n }, {\n key: 'setText',\n value: function setText(text) {\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n var delta = new _quillDelta2.default().insert(text);\n return this.setContents(delta, source);\n }\n }, {\n key: 'update',\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER;\n\n var change = this.scroll.update(source); // Will update selection before selection.update() does if text changes\n this.selection.update(source);\n return change;\n }\n }, {\n key: 'updateContents',\n value: function updateContents(delta) {\n var _this11 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n delta = new _quillDelta2.default(delta);\n return _this11.editor.applyDelta(delta, source);\n }, source, true);\n }\n }]);\n\n return Quill;\n}();\n\nQuill.DEFAULTS = {\n bounds: null,\n formats: null,\n modules: {},\n placeholder: '',\n readOnly: false,\n scrollingContainer: null,\n strict: true,\n theme: 'default'\n};\nQuill.events = _emitter4.default.events;\nQuill.sources = _emitter4.default.sources;\n// eslint-disable-next-line no-undef\nQuill.version = false ? 'dev' : \"1.3.7\";\n\nQuill.imports = {\n 'delta': _quillDelta2.default,\n 'parchment': _parchment2.default,\n 'core/module': _module2.default,\n 'core/theme': _theme2.default\n};\n\nfunction expandConfig(container, userConfig) {\n userConfig = (0, _extend2.default)(true, {\n container: container,\n modules: {\n clipboard: true,\n keyboard: true,\n history: true\n }\n }, userConfig);\n if (!userConfig.theme || userConfig.theme === Quill.DEFAULTS.theme) {\n userConfig.theme = _theme2.default;\n } else {\n userConfig.theme = Quill.import('themes/' + userConfig.theme);\n if (userConfig.theme == null) {\n throw new Error('Invalid theme ' + userConfig.theme + '. Did you register it?');\n }\n }\n var themeConfig = (0, _extend2.default)(true, {}, userConfig.theme.DEFAULTS);\n [themeConfig, userConfig].forEach(function (config) {\n config.modules = config.modules || {};\n Object.keys(config.modules).forEach(function (module) {\n if (config.modules[module] === true) {\n config.modules[module] = {};\n }\n });\n });\n var moduleNames = Object.keys(themeConfig.modules).concat(Object.keys(userConfig.modules));\n var moduleConfig = moduleNames.reduce(function (config, name) {\n var moduleClass = Quill.import('modules/' + name);\n if (moduleClass == null) {\n debug.error('Cannot load ' + name + ' module. Are you sure you registered it?');\n } else {\n config[name] = moduleClass.DEFAULTS || {};\n }\n return config;\n }, {});\n // Special case toolbar shorthand\n if (userConfig.modules != null && userConfig.modules.toolbar && userConfig.modules.toolbar.constructor !== Object) {\n userConfig.modules.toolbar = {\n container: userConfig.modules.toolbar\n };\n }\n userConfig = (0, _extend2.default)(true, {}, Quill.DEFAULTS, { modules: moduleConfig }, themeConfig, userConfig);\n ['bounds', 'container', 'scrollingContainer'].forEach(function (key) {\n if (typeof userConfig[key] === 'string') {\n userConfig[key] = document.querySelector(userConfig[key]);\n }\n });\n userConfig.modules = Object.keys(userConfig.modules).reduce(function (config, name) {\n if (userConfig.modules[name]) {\n config[name] = userConfig.modules[name];\n }\n return config;\n }, {});\n return userConfig;\n}\n\n// Handle selection preservation and TEXT_CHANGE emission\n// common to modification APIs\nfunction modify(modifier, source, index, shift) {\n if (this.options.strict && !this.isEnabled() && source === _emitter4.default.sources.USER) {\n return new _quillDelta2.default();\n }\n var range = index == null ? null : this.getSelection();\n var oldDelta = this.editor.delta;\n var change = modifier();\n if (range != null) {\n if (index === true) index = range.index;\n if (shift == null) {\n range = shiftRange(range, change, source);\n } else if (shift !== 0) {\n range = shiftRange(range, index, shift, source);\n }\n this.setSelection(range, _emitter4.default.sources.SILENT);\n }\n if (change.length() > 0) {\n var _emitter;\n\n var args = [_emitter4.default.events.TEXT_CHANGE, change, oldDelta, source];\n (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));\n if (source !== _emitter4.default.sources.SILENT) {\n var _emitter2;\n\n (_emitter2 = this.emitter).emit.apply(_emitter2, args);\n }\n }\n return change;\n}\n\nfunction overload(index, length, name, value, source) {\n var formats = {};\n if (typeof index.index === 'number' && typeof index.length === 'number') {\n // Allow for throwaway end (used by insertText/insertEmbed)\n if (typeof length !== 'number') {\n source = value, value = name, name = length, length = index.length, index = index.index;\n } else {\n length = index.length, index = index.index;\n }\n } else if (typeof length !== 'number') {\n source = value, value = name, name = length, length = 0;\n }\n // Handle format being object, two format name/value strings or excluded\n if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') {\n formats = name;\n source = value;\n } else if (typeof name === 'string') {\n if (value != null) {\n formats[name] = value;\n } else {\n source = name;\n }\n }\n // Handle optional source\n source = source || _emitter4.default.sources.API;\n return [index, length, formats, source];\n}\n\nfunction shiftRange(range, index, length, source) {\n if (range == null) return null;\n var start = void 0,\n end = void 0;\n if (index instanceof _quillDelta2.default) {\n var _map = [range.index, range.index + range.length].map(function (pos) {\n return index.transformPosition(pos, source !== _emitter4.default.sources.USER);\n });\n\n var _map2 = _slicedToArray(_map, 2);\n\n start = _map2[0];\n end = _map2[1];\n } else {\n var _map3 = [range.index, range.index + range.length].map(function (pos) {\n if (pos < index || pos === index && source === _emitter4.default.sources.USER) return pos;\n if (length >= 0) {\n return pos + length;\n } else {\n return Math.max(index, pos + length);\n }\n });\n\n var _map4 = _slicedToArray(_map3, 2);\n\n start = _map4[0];\n end = _map4[1];\n }\n return new _selection.Range(start, end - start);\n}\n\nexports.expandConfig = expandConfig;\nexports.overload = overload;\nexports.default = Quill;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Inline = function (_Parchment$Inline) {\n _inherits(Inline, _Parchment$Inline);\n\n function Inline() {\n _classCallCheck(this, Inline);\n\n return _possibleConstructorReturn(this, (Inline.__proto__ || Object.getPrototypeOf(Inline)).apply(this, arguments));\n }\n\n _createClass(Inline, [{\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (Inline.compare(this.statics.blotName, name) < 0 && _parchment2.default.query(name, _parchment2.default.Scope.BLOT)) {\n var blot = this.isolate(index, length);\n if (value) {\n blot.wrap(name, value);\n }\n } else {\n _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'formatAt', this).call(this, index, length, name, value);\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'optimize', this).call(this, context);\n if (this.parent instanceof Inline && Inline.compare(this.statics.blotName, this.parent.statics.blotName) > 0) {\n var parent = this.parent.isolate(this.offset(), this.length());\n this.moveChildren(parent);\n parent.wrap(this);\n }\n }\n }], [{\n key: 'compare',\n value: function compare(self, other) {\n var selfIndex = Inline.order.indexOf(self);\n var otherIndex = Inline.order.indexOf(other);\n if (selfIndex >= 0 || otherIndex >= 0) {\n return selfIndex - otherIndex;\n } else if (self === other) {\n return 0;\n } else if (self < other) {\n return -1;\n } else {\n return 1;\n }\n }\n }]);\n\n return Inline;\n}(_parchment2.default.Inline);\n\nInline.allowedChildren = [Inline, _parchment2.default.Embed, _text2.default];\n// Lower index means deeper in the DOM tree, since not found (-1) is for embeds\nInline.order = ['cursor', 'inline', // Must be lower\n'underline', 'strike', 'italic', 'bold', 'script', 'link', 'code' // Must be higher\n];\n\nexports.default = Inline;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TextBlot = function (_Parchment$Text) {\n _inherits(TextBlot, _Parchment$Text);\n\n function TextBlot() {\n _classCallCheck(this, TextBlot);\n\n return _possibleConstructorReturn(this, (TextBlot.__proto__ || Object.getPrototypeOf(TextBlot)).apply(this, arguments));\n }\n\n return TextBlot;\n}(_parchment2.default.Text);\n\nexports.default = TextBlot;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _eventemitter = __webpack_require__(54);\n\nvar _eventemitter2 = _interopRequireDefault(_eventemitter);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:events');\n\nvar EVENTS = ['selectionchange', 'mousedown', 'mouseup', 'click'];\n\nEVENTS.forEach(function (eventName) {\n document.addEventListener(eventName, function () {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n [].slice.call(document.querySelectorAll('.ql-container')).forEach(function (node) {\n // TODO use WeakMap\n if (node.__quill && node.__quill.emitter) {\n var _node$__quill$emitter;\n\n (_node$__quill$emitter = node.__quill.emitter).handleDOM.apply(_node$__quill$emitter, args);\n }\n });\n });\n});\n\nvar Emitter = function (_EventEmitter) {\n _inherits(Emitter, _EventEmitter);\n\n function Emitter() {\n _classCallCheck(this, Emitter);\n\n var _this = _possibleConstructorReturn(this, (Emitter.__proto__ || Object.getPrototypeOf(Emitter)).call(this));\n\n _this.listeners = {};\n _this.on('error', debug.error);\n return _this;\n }\n\n _createClass(Emitter, [{\n key: 'emit',\n value: function emit() {\n debug.log.apply(debug, arguments);\n _get(Emitter.prototype.__proto__ || Object.getPrototypeOf(Emitter.prototype), 'emit', this).apply(this, arguments);\n }\n }, {\n key: 'handleDOM',\n value: function handleDOM(event) {\n for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n (this.listeners[event.type] || []).forEach(function (_ref) {\n var node = _ref.node,\n handler = _ref.handler;\n\n if (event.target === node || node.contains(event.target)) {\n handler.apply(undefined, [event].concat(args));\n }\n });\n }\n }, {\n key: 'listenDOM',\n value: function listenDOM(eventName, node, handler) {\n if (!this.listeners[eventName]) {\n this.listeners[eventName] = [];\n }\n this.listeners[eventName].push({ node: node, handler: handler });\n }\n }]);\n\n return Emitter;\n}(_eventemitter2.default);\n\nEmitter.events = {\n EDITOR_CHANGE: 'editor-change',\n SCROLL_BEFORE_UPDATE: 'scroll-before-update',\n SCROLL_OPTIMIZE: 'scroll-optimize',\n SCROLL_UPDATE: 'scroll-update',\n SELECTION_CHANGE: 'selection-change',\n TEXT_CHANGE: 'text-change'\n};\nEmitter.sources = {\n API: 'api',\n SILENT: 'silent',\n USER: 'user'\n};\n\nexports.default = Emitter;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Module = function Module(quill) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Module);\n\n this.quill = quill;\n this.options = options;\n};\n\nModule.DEFAULTS = {};\n\nexports.default = Module;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar levels = ['error', 'warn', 'log', 'info'];\nvar level = 'warn';\n\nfunction debug(method) {\n if (levels.indexOf(method) <= levels.indexOf(level)) {\n var _console;\n\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n (_console = console)[method].apply(_console, args); // eslint-disable-line no-console\n }\n}\n\nfunction namespace(ns) {\n return levels.reduce(function (logger, method) {\n logger[method] = debug.bind(console, method, ns);\n return logger;\n }, {});\n}\n\ndebug.level = namespace.level = function (newLevel) {\n level = newLevel;\n};\n\nexports.default = namespace;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar pSlice = Array.prototype.slice;\nvar objectKeys = __webpack_require__(52);\nvar isArguments = __webpack_require__(53);\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {};\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n\n // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n return opts.strict ? actual === expected : actual == expected;\n\n // 7.4. For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected, opts);\n }\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) return false;\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length != kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) return false;\n }\n return typeof a === typeof b;\n}\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = __webpack_require__(1);\nvar Attributor = /** @class */ (function () {\n function Attributor(attrName, keyName, options) {\n if (options === void 0) { options = {}; }\n this.attrName = attrName;\n this.keyName = keyName;\n var attributeBit = Registry.Scope.TYPE & Registry.Scope.ATTRIBUTE;\n if (options.scope != null) {\n // Ignore type bits, force attribute bit\n this.scope = (options.scope & Registry.Scope.LEVEL) | attributeBit;\n }\n else {\n this.scope = Registry.Scope.ATTRIBUTE;\n }\n if (options.whitelist != null)\n this.whitelist = options.whitelist;\n }\n Attributor.keys = function (node) {\n return [].map.call(node.attributes, function (item) {\n return item.name;\n });\n };\n Attributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n node.setAttribute(this.keyName, value);\n return true;\n };\n Attributor.prototype.canAdd = function (node, value) {\n var match = Registry.query(node, Registry.Scope.BLOT & (this.scope | Registry.Scope.TYPE));\n if (match == null)\n return false;\n if (this.whitelist == null)\n return true;\n if (typeof value === 'string') {\n return this.whitelist.indexOf(value.replace(/[\"']/g, '')) > -1;\n }\n else {\n return this.whitelist.indexOf(value) > -1;\n }\n };\n Attributor.prototype.remove = function (node) {\n node.removeAttribute(this.keyName);\n };\n Attributor.prototype.value = function (node) {\n var value = node.getAttribute(this.keyName);\n if (this.canAdd(node, value) && value) {\n return value;\n }\n return '';\n };\n return Attributor;\n}());\nexports.default = Attributor;\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.Code = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Code = function (_Inline) {\n _inherits(Code, _Inline);\n\n function Code() {\n _classCallCheck(this, Code);\n\n return _possibleConstructorReturn(this, (Code.__proto__ || Object.getPrototypeOf(Code)).apply(this, arguments));\n }\n\n return Code;\n}(_inline2.default);\n\nCode.blotName = 'code';\nCode.tagName = 'CODE';\n\nvar CodeBlock = function (_Block) {\n _inherits(CodeBlock, _Block);\n\n function CodeBlock() {\n _classCallCheck(this, CodeBlock);\n\n return _possibleConstructorReturn(this, (CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock)).apply(this, arguments));\n }\n\n _createClass(CodeBlock, [{\n key: 'delta',\n value: function delta() {\n var _this3 = this;\n\n var text = this.domNode.textContent;\n if (text.endsWith('\\n')) {\n // Should always be true\n text = text.slice(0, -1);\n }\n return text.split('\\n').reduce(function (delta, frag) {\n return delta.insert(frag).insert('\\n', _this3.formats());\n }, new _quillDelta2.default());\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n if (name === this.statics.blotName && value) return;\n\n var _descendant = this.descendant(_text2.default, this.length() - 1),\n _descendant2 = _slicedToArray(_descendant, 1),\n text = _descendant2[0];\n\n if (text != null) {\n text.deleteAt(text.length() - 1, 1);\n }\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'format', this).call(this, name, value);\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (length === 0) return;\n if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK) == null || name === this.statics.blotName && value === this.statics.formats(this.domNode)) {\n return;\n }\n var nextNewline = this.newlineIndex(index);\n if (nextNewline < 0 || nextNewline >= index + length) return;\n var prevNewline = this.newlineIndex(index, true) + 1;\n var isolateLength = nextNewline - prevNewline + 1;\n var blot = this.isolate(prevNewline, isolateLength);\n var next = blot.next;\n blot.format(name, value);\n if (next instanceof CodeBlock) {\n next.formatAt(0, index - prevNewline + length - isolateLength, name, value);\n }\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null) return;\n\n var _descendant3 = this.descendant(_text2.default, index),\n _descendant4 = _slicedToArray(_descendant3, 2),\n text = _descendant4[0],\n offset = _descendant4[1];\n\n text.insertAt(offset, value);\n }\n }, {\n key: 'length',\n value: function length() {\n var length = this.domNode.textContent.length;\n if (!this.domNode.textContent.endsWith('\\n')) {\n return length + 1;\n }\n return length;\n }\n }, {\n key: 'newlineIndex',\n value: function newlineIndex(searchIndex) {\n var reverse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!reverse) {\n var offset = this.domNode.textContent.slice(searchIndex).indexOf('\\n');\n return offset > -1 ? searchIndex + offset : -1;\n } else {\n return this.domNode.textContent.slice(0, searchIndex).lastIndexOf('\\n');\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n if (!this.domNode.textContent.endsWith('\\n')) {\n this.appendChild(_parchment2.default.create('text', '\\n'));\n }\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'optimize', this).call(this, context);\n var next = this.next;\n if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && this.statics.formats(this.domNode) === next.statics.formats(next.domNode)) {\n next.optimize(context);\n next.moveChildren(this);\n next.remove();\n }\n }\n }, {\n key: 'replace',\n value: function replace(target) {\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'replace', this).call(this, target);\n [].slice.call(this.domNode.querySelectorAll('*')).forEach(function (node) {\n var blot = _parchment2.default.find(node);\n if (blot == null) {\n node.parentNode.removeChild(node);\n } else if (blot instanceof _parchment2.default.Embed) {\n blot.remove();\n } else {\n blot.unwrap();\n }\n });\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var domNode = _get(CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock), 'create', this).call(this, value);\n domNode.setAttribute('spellcheck', false);\n return domNode;\n }\n }, {\n key: 'formats',\n value: function formats() {\n return true;\n }\n }]);\n\n return CodeBlock;\n}(_block2.default);\n\nCodeBlock.blotName = 'code-block';\nCodeBlock.tagName = 'PRE';\nCodeBlock.TAB = ' ';\n\nexports.Code = Code;\nexports.default = CodeBlock;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _op = __webpack_require__(20);\n\nvar _op2 = _interopRequireDefault(_op);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _cursor = __webpack_require__(24);\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ASCII = /^[ -~]*$/;\n\nvar Editor = function () {\n function Editor(scroll) {\n _classCallCheck(this, Editor);\n\n this.scroll = scroll;\n this.delta = this.getDelta();\n }\n\n _createClass(Editor, [{\n key: 'applyDelta',\n value: function applyDelta(delta) {\n var _this = this;\n\n var consumeNextNewline = false;\n this.scroll.update();\n var scrollLength = this.scroll.length();\n this.scroll.batchStart();\n delta = normalizeDelta(delta);\n delta.reduce(function (index, op) {\n var length = op.retain || op.delete || op.insert.length || 1;\n var attributes = op.attributes || {};\n if (op.insert != null) {\n if (typeof op.insert === 'string') {\n var text = op.insert;\n if (text.endsWith('\\n') && consumeNextNewline) {\n consumeNextNewline = false;\n text = text.slice(0, -1);\n }\n if (index >= scrollLength && !text.endsWith('\\n')) {\n consumeNextNewline = true;\n }\n _this.scroll.insertAt(index, text);\n\n var _scroll$line = _this.scroll.line(index),\n _scroll$line2 = _slicedToArray(_scroll$line, 2),\n line = _scroll$line2[0],\n offset = _scroll$line2[1];\n\n var formats = (0, _extend2.default)({}, (0, _block.bubbleFormats)(line));\n if (line instanceof _block2.default) {\n var _line$descendant = line.descendant(_parchment2.default.Leaf, offset),\n _line$descendant2 = _slicedToArray(_line$descendant, 1),\n leaf = _line$descendant2[0];\n\n formats = (0, _extend2.default)(formats, (0, _block.bubbleFormats)(leaf));\n }\n attributes = _op2.default.attributes.diff(formats, attributes) || {};\n } else if (_typeof(op.insert) === 'object') {\n var key = Object.keys(op.insert)[0]; // There should only be one key\n if (key == null) return index;\n _this.scroll.insertAt(index, key, op.insert[key]);\n }\n scrollLength += length;\n }\n Object.keys(attributes).forEach(function (name) {\n _this.scroll.formatAt(index, length, name, attributes[name]);\n });\n return index + length;\n }, 0);\n delta.reduce(function (index, op) {\n if (typeof op.delete === 'number') {\n _this.scroll.deleteAt(index, op.delete);\n return index;\n }\n return index + (op.retain || op.insert.length || 1);\n }, 0);\n this.scroll.batchEnd();\n return this.update(delta);\n }\n }, {\n key: 'deleteText',\n value: function deleteText(index, length) {\n this.scroll.deleteAt(index, length);\n return this.update(new _quillDelta2.default().retain(index).delete(length));\n }\n }, {\n key: 'formatLine',\n value: function formatLine(index, length) {\n var _this2 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n this.scroll.update();\n Object.keys(formats).forEach(function (format) {\n if (_this2.scroll.whitelist != null && !_this2.scroll.whitelist[format]) return;\n var lines = _this2.scroll.lines(index, Math.max(length, 1));\n var lengthRemaining = length;\n lines.forEach(function (line) {\n var lineLength = line.length();\n if (!(line instanceof _code2.default)) {\n line.format(format, formats[format]);\n } else {\n var codeIndex = index - line.offset(_this2.scroll);\n var codeLength = line.newlineIndex(codeIndex + lengthRemaining) - codeIndex + 1;\n line.formatAt(codeIndex, codeLength, format, formats[format]);\n }\n lengthRemaining -= lineLength;\n });\n });\n this.scroll.optimize();\n return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'formatText',\n value: function formatText(index, length) {\n var _this3 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n Object.keys(formats).forEach(function (format) {\n _this3.scroll.formatAt(index, length, format, formats[format]);\n });\n return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'getContents',\n value: function getContents(index, length) {\n return this.delta.slice(index, index + length);\n }\n }, {\n key: 'getDelta',\n value: function getDelta() {\n return this.scroll.lines().reduce(function (delta, line) {\n return delta.concat(line.delta());\n }, new _quillDelta2.default());\n }\n }, {\n key: 'getFormat',\n value: function getFormat(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var lines = [],\n leaves = [];\n if (length === 0) {\n this.scroll.path(index).forEach(function (path) {\n var _path = _slicedToArray(path, 1),\n blot = _path[0];\n\n if (blot instanceof _block2.default) {\n lines.push(blot);\n } else if (blot instanceof _parchment2.default.Leaf) {\n leaves.push(blot);\n }\n });\n } else {\n lines = this.scroll.lines(index, length);\n leaves = this.scroll.descendants(_parchment2.default.Leaf, index, length);\n }\n var formatsArr = [lines, leaves].map(function (blots) {\n if (blots.length === 0) return {};\n var formats = (0, _block.bubbleFormats)(blots.shift());\n while (Object.keys(formats).length > 0) {\n var blot = blots.shift();\n if (blot == null) return formats;\n formats = combineFormats((0, _block.bubbleFormats)(blot), formats);\n }\n return formats;\n });\n return _extend2.default.apply(_extend2.default, formatsArr);\n }\n }, {\n key: 'getText',\n value: function getText(index, length) {\n return this.getContents(index, length).filter(function (op) {\n return typeof op.insert === 'string';\n }).map(function (op) {\n return op.insert;\n }).join('');\n }\n }, {\n key: 'insertEmbed',\n value: function insertEmbed(index, embed, value) {\n this.scroll.insertAt(index, embed, value);\n return this.update(new _quillDelta2.default().retain(index).insert(_defineProperty({}, embed, value)));\n }\n }, {\n key: 'insertText',\n value: function insertText(index, text) {\n var _this4 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n text = text.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n this.scroll.insertAt(index, text);\n Object.keys(formats).forEach(function (format) {\n _this4.scroll.formatAt(index, text.length, format, formats[format]);\n });\n return this.update(new _quillDelta2.default().retain(index).insert(text, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'isBlank',\n value: function isBlank() {\n if (this.scroll.children.length == 0) return true;\n if (this.scroll.children.length > 1) return false;\n var block = this.scroll.children.head;\n if (block.statics.blotName !== _block2.default.blotName) return false;\n if (block.children.length > 1) return false;\n return block.children.head instanceof _break2.default;\n }\n }, {\n key: 'removeFormat',\n value: function removeFormat(index, length) {\n var text = this.getText(index, length);\n\n var _scroll$line3 = this.scroll.line(index + length),\n _scroll$line4 = _slicedToArray(_scroll$line3, 2),\n line = _scroll$line4[0],\n offset = _scroll$line4[1];\n\n var suffixLength = 0,\n suffix = new _quillDelta2.default();\n if (line != null) {\n if (!(line instanceof _code2.default)) {\n suffixLength = line.length() - offset;\n } else {\n suffixLength = line.newlineIndex(offset) - offset + 1;\n }\n suffix = line.delta().slice(offset, offset + suffixLength - 1).insert('\\n');\n }\n var contents = this.getContents(index, length + suffixLength);\n var diff = contents.diff(new _quillDelta2.default().insert(text).concat(suffix));\n var delta = new _quillDelta2.default().retain(index).concat(diff);\n return this.applyDelta(delta);\n }\n }, {\n key: 'update',\n value: function update(change) {\n var mutations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var cursorIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n\n var oldDelta = this.delta;\n if (mutations.length === 1 && mutations[0].type === 'characterData' && mutations[0].target.data.match(ASCII) && _parchment2.default.find(mutations[0].target)) {\n // Optimization for character changes\n var textBlot = _parchment2.default.find(mutations[0].target);\n var formats = (0, _block.bubbleFormats)(textBlot);\n var index = textBlot.offset(this.scroll);\n var oldValue = mutations[0].oldValue.replace(_cursor2.default.CONTENTS, '');\n var oldText = new _quillDelta2.default().insert(oldValue);\n var newText = new _quillDelta2.default().insert(textBlot.value());\n var diffDelta = new _quillDelta2.default().retain(index).concat(oldText.diff(newText, cursorIndex));\n change = diffDelta.reduce(function (delta, op) {\n if (op.insert) {\n return delta.insert(op.insert, formats);\n } else {\n return delta.push(op);\n }\n }, new _quillDelta2.default());\n this.delta = oldDelta.compose(change);\n } else {\n this.delta = this.getDelta();\n if (!change || !(0, _deepEqual2.default)(oldDelta.compose(change), this.delta)) {\n change = oldDelta.diff(this.delta, cursorIndex);\n }\n }\n return change;\n }\n }]);\n\n return Editor;\n}();\n\nfunction combineFormats(formats, combined) {\n return Object.keys(combined).reduce(function (merged, name) {\n if (formats[name] == null) return merged;\n if (combined[name] === formats[name]) {\n merged[name] = combined[name];\n } else if (Array.isArray(combined[name])) {\n if (combined[name].indexOf(formats[name]) < 0) {\n merged[name] = combined[name].concat([formats[name]]);\n }\n } else {\n merged[name] = [combined[name], formats[name]];\n }\n return merged;\n }, {});\n}\n\nfunction normalizeDelta(delta) {\n return delta.reduce(function (delta, op) {\n if (op.insert === 1) {\n var attributes = (0, _clone2.default)(op.attributes);\n delete attributes['image'];\n return delta.insert({ image: op.attributes.image }, attributes);\n }\n if (op.attributes != null && (op.attributes.list === true || op.attributes.bullet === true)) {\n op = (0, _clone2.default)(op);\n if (op.attributes.list) {\n op.attributes.list = 'ordered';\n } else {\n op.attributes.list = 'bullet';\n delete op.attributes.bullet;\n }\n }\n if (typeof op.insert === 'string') {\n var text = op.insert.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n return delta.insert(text, op.attributes);\n }\n return delta.push(op);\n }, new _quillDelta2.default());\n}\n\nexports.default = Editor;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.Range = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _emitter3 = __webpack_require__(8);\n\nvar _emitter4 = _interopRequireDefault(_emitter3);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar debug = (0, _logger2.default)('quill:selection');\n\nvar Range = function Range(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n _classCallCheck(this, Range);\n\n this.index = index;\n this.length = length;\n};\n\nvar Selection = function () {\n function Selection(scroll, emitter) {\n var _this = this;\n\n _classCallCheck(this, Selection);\n\n this.emitter = emitter;\n this.scroll = scroll;\n this.composing = false;\n this.mouseDown = false;\n this.root = this.scroll.domNode;\n this.cursor = _parchment2.default.create('cursor', this);\n // savedRange is last non-null range\n this.lastRange = this.savedRange = new Range(0, 0);\n this.handleComposition();\n this.handleDragging();\n this.emitter.listenDOM('selectionchange', document, function () {\n if (!_this.mouseDown) {\n setTimeout(_this.update.bind(_this, _emitter4.default.sources.USER), 1);\n }\n });\n this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type, delta) {\n if (type === _emitter4.default.events.TEXT_CHANGE && delta.length() > 0) {\n _this.update(_emitter4.default.sources.SILENT);\n }\n });\n this.emitter.on(_emitter4.default.events.SCROLL_BEFORE_UPDATE, function () {\n if (!_this.hasFocus()) return;\n var native = _this.getNativeRange();\n if (native == null) return;\n if (native.start.node === _this.cursor.textNode) return; // cursor.restore() will handle\n // TODO unclear if this has negative side effects\n _this.emitter.once(_emitter4.default.events.SCROLL_UPDATE, function () {\n try {\n _this.setNativeRange(native.start.node, native.start.offset, native.end.node, native.end.offset);\n } catch (ignored) {}\n });\n });\n this.emitter.on(_emitter4.default.events.SCROLL_OPTIMIZE, function (mutations, context) {\n if (context.range) {\n var _context$range = context.range,\n startNode = _context$range.startNode,\n startOffset = _context$range.startOffset,\n endNode = _context$range.endNode,\n endOffset = _context$range.endOffset;\n\n _this.setNativeRange(startNode, startOffset, endNode, endOffset);\n }\n });\n this.update(_emitter4.default.sources.SILENT);\n }\n\n _createClass(Selection, [{\n key: 'handleComposition',\n value: function handleComposition() {\n var _this2 = this;\n\n this.root.addEventListener('compositionstart', function () {\n _this2.composing = true;\n });\n this.root.addEventListener('compositionend', function () {\n _this2.composing = false;\n if (_this2.cursor.parent) {\n var range = _this2.cursor.restore();\n if (!range) return;\n setTimeout(function () {\n _this2.setNativeRange(range.startNode, range.startOffset, range.endNode, range.endOffset);\n }, 1);\n }\n });\n }\n }, {\n key: 'handleDragging',\n value: function handleDragging() {\n var _this3 = this;\n\n this.emitter.listenDOM('mousedown', document.body, function () {\n _this3.mouseDown = true;\n });\n this.emitter.listenDOM('mouseup', document.body, function () {\n _this3.mouseDown = false;\n _this3.update(_emitter4.default.sources.USER);\n });\n }\n }, {\n key: 'focus',\n value: function focus() {\n if (this.hasFocus()) return;\n this.root.focus();\n this.setRange(this.savedRange);\n }\n }, {\n key: 'format',\n value: function format(_format, value) {\n if (this.scroll.whitelist != null && !this.scroll.whitelist[_format]) return;\n this.scroll.update();\n var nativeRange = this.getNativeRange();\n if (nativeRange == null || !nativeRange.native.collapsed || _parchment2.default.query(_format, _parchment2.default.Scope.BLOCK)) return;\n if (nativeRange.start.node !== this.cursor.textNode) {\n var blot = _parchment2.default.find(nativeRange.start.node, false);\n if (blot == null) return;\n // TODO Give blot ability to not split\n if (blot instanceof _parchment2.default.Leaf) {\n var after = blot.split(nativeRange.start.offset);\n blot.parent.insertBefore(this.cursor, after);\n } else {\n blot.insertBefore(this.cursor, nativeRange.start.node); // Should never happen\n }\n this.cursor.attach();\n }\n this.cursor.format(_format, value);\n this.scroll.optimize();\n this.setNativeRange(this.cursor.textNode, this.cursor.textNode.data.length);\n this.update();\n }\n }, {\n key: 'getBounds',\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var scrollLength = this.scroll.length();\n index = Math.min(index, scrollLength - 1);\n length = Math.min(index + length, scrollLength - 1) - index;\n var node = void 0,\n _scroll$leaf = this.scroll.leaf(index),\n _scroll$leaf2 = _slicedToArray(_scroll$leaf, 2),\n leaf = _scroll$leaf2[0],\n offset = _scroll$leaf2[1];\n if (leaf == null) return null;\n\n var _leaf$position = leaf.position(offset, true);\n\n var _leaf$position2 = _slicedToArray(_leaf$position, 2);\n\n node = _leaf$position2[0];\n offset = _leaf$position2[1];\n\n var range = document.createRange();\n if (length > 0) {\n range.setStart(node, offset);\n\n var _scroll$leaf3 = this.scroll.leaf(index + length);\n\n var _scroll$leaf4 = _slicedToArray(_scroll$leaf3, 2);\n\n leaf = _scroll$leaf4[0];\n offset = _scroll$leaf4[1];\n\n if (leaf == null) return null;\n\n var _leaf$position3 = leaf.position(offset, true);\n\n var _leaf$position4 = _slicedToArray(_leaf$position3, 2);\n\n node = _leaf$position4[0];\n offset = _leaf$position4[1];\n\n range.setEnd(node, offset);\n return range.getBoundingClientRect();\n } else {\n var side = 'left';\n var rect = void 0;\n if (node instanceof Text) {\n if (offset < node.data.length) {\n range.setStart(node, offset);\n range.setEnd(node, offset + 1);\n } else {\n range.setStart(node, offset - 1);\n range.setEnd(node, offset);\n side = 'right';\n }\n rect = range.getBoundingClientRect();\n } else {\n rect = leaf.domNode.getBoundingClientRect();\n if (offset > 0) side = 'right';\n }\n return {\n bottom: rect.top + rect.height,\n height: rect.height,\n left: rect[side],\n right: rect[side],\n top: rect.top,\n width: 0\n };\n }\n }\n }, {\n key: 'getNativeRange',\n value: function getNativeRange() {\n var selection = document.getSelection();\n if (selection == null || selection.rangeCount <= 0) return null;\n var nativeRange = selection.getRangeAt(0);\n if (nativeRange == null) return null;\n var range = this.normalizeNative(nativeRange);\n debug.info('getNativeRange', range);\n return range;\n }\n }, {\n key: 'getRange',\n value: function getRange() {\n var normalized = this.getNativeRange();\n if (normalized == null) return [null, null];\n var range = this.normalizedToRange(normalized);\n return [range, normalized];\n }\n }, {\n key: 'hasFocus',\n value: function hasFocus() {\n return document.activeElement === this.root;\n }\n }, {\n key: 'normalizedToRange',\n value: function normalizedToRange(range) {\n var _this4 = this;\n\n var positions = [[range.start.node, range.start.offset]];\n if (!range.native.collapsed) {\n positions.push([range.end.node, range.end.offset]);\n }\n var indexes = positions.map(function (position) {\n var _position = _slicedToArray(position, 2),\n node = _position[0],\n offset = _position[1];\n\n var blot = _parchment2.default.find(node, true);\n var index = blot.offset(_this4.scroll);\n if (offset === 0) {\n return index;\n } else if (blot instanceof _parchment2.default.Container) {\n return index + blot.length();\n } else {\n return index + blot.index(node, offset);\n }\n });\n var end = Math.min(Math.max.apply(Math, _toConsumableArray(indexes)), this.scroll.length() - 1);\n var start = Math.min.apply(Math, [end].concat(_toConsumableArray(indexes)));\n return new Range(start, end - start);\n }\n }, {\n key: 'normalizeNative',\n value: function normalizeNative(nativeRange) {\n if (!contains(this.root, nativeRange.startContainer) || !nativeRange.collapsed && !contains(this.root, nativeRange.endContainer)) {\n return null;\n }\n var range = {\n start: { node: nativeRange.startContainer, offset: nativeRange.startOffset },\n end: { node: nativeRange.endContainer, offset: nativeRange.endOffset },\n native: nativeRange\n };\n [range.start, range.end].forEach(function (position) {\n var node = position.node,\n offset = position.offset;\n while (!(node instanceof Text) && node.childNodes.length > 0) {\n if (node.childNodes.length > offset) {\n node = node.childNodes[offset];\n offset = 0;\n } else if (node.childNodes.length === offset) {\n node = node.lastChild;\n offset = node instanceof Text ? node.data.length : node.childNodes.length + 1;\n } else {\n break;\n }\n }\n position.node = node, position.offset = offset;\n });\n return range;\n }\n }, {\n key: 'rangeToNative',\n value: function rangeToNative(range) {\n var _this5 = this;\n\n var indexes = range.collapsed ? [range.index] : [range.index, range.index + range.length];\n var args = [];\n var scrollLength = this.scroll.length();\n indexes.forEach(function (index, i) {\n index = Math.min(scrollLength - 1, index);\n var node = void 0,\n _scroll$leaf5 = _this5.scroll.leaf(index),\n _scroll$leaf6 = _slicedToArray(_scroll$leaf5, 2),\n leaf = _scroll$leaf6[0],\n offset = _scroll$leaf6[1];\n var _leaf$position5 = leaf.position(offset, i !== 0);\n\n var _leaf$position6 = _slicedToArray(_leaf$position5, 2);\n\n node = _leaf$position6[0];\n offset = _leaf$position6[1];\n\n args.push(node, offset);\n });\n if (args.length < 2) {\n args = args.concat(args);\n }\n return args;\n }\n }, {\n key: 'scrollIntoView',\n value: function scrollIntoView(scrollingContainer) {\n var range = this.lastRange;\n if (range == null) return;\n var bounds = this.getBounds(range.index, range.length);\n if (bounds == null) return;\n var limit = this.scroll.length() - 1;\n\n var _scroll$line = this.scroll.line(Math.min(range.index, limit)),\n _scroll$line2 = _slicedToArray(_scroll$line, 1),\n first = _scroll$line2[0];\n\n var last = first;\n if (range.length > 0) {\n var _scroll$line3 = this.scroll.line(Math.min(range.index + range.length, limit));\n\n var _scroll$line4 = _slicedToArray(_scroll$line3, 1);\n\n last = _scroll$line4[0];\n }\n if (first == null || last == null) return;\n var scrollBounds = scrollingContainer.getBoundingClientRect();\n if (bounds.top < scrollBounds.top) {\n scrollingContainer.scrollTop -= scrollBounds.top - bounds.top;\n } else if (bounds.bottom > scrollBounds.bottom) {\n scrollingContainer.scrollTop += bounds.bottom - scrollBounds.bottom;\n }\n }\n }, {\n key: 'setNativeRange',\n value: function setNativeRange(startNode, startOffset) {\n var endNode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : startNode;\n var endOffset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : startOffset;\n var force = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n debug.info('setNativeRange', startNode, startOffset, endNode, endOffset);\n if (startNode != null && (this.root.parentNode == null || startNode.parentNode == null || endNode.parentNode == null)) {\n return;\n }\n var selection = document.getSelection();\n if (selection == null) return;\n if (startNode != null) {\n if (!this.hasFocus()) this.root.focus();\n var native = (this.getNativeRange() || {}).native;\n if (native == null || force || startNode !== native.startContainer || startOffset !== native.startOffset || endNode !== native.endContainer || endOffset !== native.endOffset) {\n\n if (startNode.tagName == \"BR\") {\n startOffset = [].indexOf.call(startNode.parentNode.childNodes, startNode);\n startNode = startNode.parentNode;\n }\n if (endNode.tagName == \"BR\") {\n endOffset = [].indexOf.call(endNode.parentNode.childNodes, endNode);\n endNode = endNode.parentNode;\n }\n var range = document.createRange();\n range.setStart(startNode, startOffset);\n range.setEnd(endNode, endOffset);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n } else {\n selection.removeAllRanges();\n this.root.blur();\n document.body.focus(); // root.blur() not enough on IE11+Travis+SauceLabs (but not local VMs)\n }\n }\n }, {\n key: 'setRange',\n value: function setRange(range) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API;\n\n if (typeof force === 'string') {\n source = force;\n force = false;\n }\n debug.info('setRange', range);\n if (range != null) {\n var args = this.rangeToNative(range);\n this.setNativeRange.apply(this, _toConsumableArray(args).concat([force]));\n } else {\n this.setNativeRange(null);\n }\n this.update(source);\n }\n }, {\n key: 'update',\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER;\n\n var oldRange = this.lastRange;\n\n var _getRange = this.getRange(),\n _getRange2 = _slicedToArray(_getRange, 2),\n lastRange = _getRange2[0],\n nativeRange = _getRange2[1];\n\n this.lastRange = lastRange;\n if (this.lastRange != null) {\n this.savedRange = this.lastRange;\n }\n if (!(0, _deepEqual2.default)(oldRange, this.lastRange)) {\n var _emitter;\n\n if (!this.composing && nativeRange != null && nativeRange.native.collapsed && nativeRange.start.node !== this.cursor.textNode) {\n this.cursor.restore();\n }\n var args = [_emitter4.default.events.SELECTION_CHANGE, (0, _clone2.default)(this.lastRange), (0, _clone2.default)(oldRange), source];\n (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));\n if (source !== _emitter4.default.sources.SILENT) {\n var _emitter2;\n\n (_emitter2 = this.emitter).emit.apply(_emitter2, args);\n }\n }\n }\n }]);\n\n return Selection;\n}();\n\nfunction contains(parent, descendant) {\n try {\n // Firefox inserts inaccessible nodes around video elements\n descendant.parentNode;\n } catch (e) {\n return false;\n }\n // IE11 has bug with Text nodes\n // https://connect.microsoft.com/IE/feedback/details/780874/node-contains-is-incorrect\n if (descendant instanceof Text) {\n descendant = descendant.parentNode;\n }\n return parent.contains(descendant);\n}\n\nexports.Range = Range;\nexports.default = Selection;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Break = function (_Parchment$Embed) {\n _inherits(Break, _Parchment$Embed);\n\n function Break() {\n _classCallCheck(this, Break);\n\n return _possibleConstructorReturn(this, (Break.__proto__ || Object.getPrototypeOf(Break)).apply(this, arguments));\n }\n\n _createClass(Break, [{\n key: 'insertInto',\n value: function insertInto(parent, ref) {\n if (parent.children.length === 0) {\n _get(Break.prototype.__proto__ || Object.getPrototypeOf(Break.prototype), 'insertInto', this).call(this, parent, ref);\n } else {\n this.remove();\n }\n }\n }, {\n key: 'length',\n value: function length() {\n return 0;\n }\n }, {\n key: 'value',\n value: function value() {\n return '';\n }\n }], [{\n key: 'value',\n value: function value() {\n return undefined;\n }\n }]);\n\n return Break;\n}(_parchment2.default.Embed);\n\nBreak.blotName = 'break';\nBreak.tagName = 'BR';\n\nexports.default = Break;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar linked_list_1 = __webpack_require__(44);\nvar shadow_1 = __webpack_require__(30);\nvar Registry = __webpack_require__(1);\nvar ContainerBlot = /** @class */ (function (_super) {\n __extends(ContainerBlot, _super);\n function ContainerBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.build();\n return _this;\n }\n ContainerBlot.prototype.appendChild = function (other) {\n this.insertBefore(other);\n };\n ContainerBlot.prototype.attach = function () {\n _super.prototype.attach.call(this);\n this.children.forEach(function (child) {\n child.attach();\n });\n };\n ContainerBlot.prototype.build = function () {\n var _this = this;\n this.children = new linked_list_1.default();\n // Need to be reversed for if DOM nodes already in order\n [].slice\n .call(this.domNode.childNodes)\n .reverse()\n .forEach(function (node) {\n try {\n var child = makeBlot(node);\n _this.insertBefore(child, _this.children.head || undefined);\n }\n catch (err) {\n if (err instanceof Registry.ParchmentError)\n return;\n else\n throw err;\n }\n });\n };\n ContainerBlot.prototype.deleteAt = function (index, length) {\n if (index === 0 && length === this.length()) {\n return this.remove();\n }\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.deleteAt(offset, length);\n });\n };\n ContainerBlot.prototype.descendant = function (criteria, index) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n return [child, offset];\n }\n else if (child instanceof ContainerBlot) {\n return child.descendant(criteria, offset);\n }\n else {\n return [null, -1];\n }\n };\n ContainerBlot.prototype.descendants = function (criteria, index, length) {\n if (index === void 0) { index = 0; }\n if (length === void 0) { length = Number.MAX_VALUE; }\n var descendants = [];\n var lengthLeft = length;\n this.children.forEachAt(index, length, function (child, index, length) {\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n descendants.push(child);\n }\n if (child instanceof ContainerBlot) {\n descendants = descendants.concat(child.descendants(criteria, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return descendants;\n };\n ContainerBlot.prototype.detach = function () {\n this.children.forEach(function (child) {\n child.detach();\n });\n _super.prototype.detach.call(this);\n };\n ContainerBlot.prototype.formatAt = function (index, length, name, value) {\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.formatAt(offset, length, name, value);\n });\n };\n ContainerBlot.prototype.insertAt = function (index, value, def) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if (child) {\n child.insertAt(offset, value, def);\n }\n else {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n this.appendChild(blot);\n }\n };\n ContainerBlot.prototype.insertBefore = function (childBlot, refBlot) {\n if (this.statics.allowedChildren != null &&\n !this.statics.allowedChildren.some(function (child) {\n return childBlot instanceof child;\n })) {\n throw new Registry.ParchmentError(\"Cannot insert \" + childBlot.statics.blotName + \" into \" + this.statics.blotName);\n }\n childBlot.insertInto(this, refBlot);\n };\n ContainerBlot.prototype.length = function () {\n return this.children.reduce(function (memo, child) {\n return memo + child.length();\n }, 0);\n };\n ContainerBlot.prototype.moveChildren = function (targetParent, refNode) {\n this.children.forEach(function (child) {\n targetParent.insertBefore(child, refNode);\n });\n };\n ContainerBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n if (this.children.length === 0) {\n if (this.statics.defaultChild != null) {\n var child = Registry.create(this.statics.defaultChild);\n this.appendChild(child);\n child.optimize(context);\n }\n else {\n this.remove();\n }\n }\n };\n ContainerBlot.prototype.path = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var _a = this.children.find(index, inclusive), child = _a[0], offset = _a[1];\n var position = [[this, index]];\n if (child instanceof ContainerBlot) {\n return position.concat(child.path(offset, inclusive));\n }\n else if (child != null) {\n position.push([child, offset]);\n }\n return position;\n };\n ContainerBlot.prototype.removeChild = function (child) {\n this.children.remove(child);\n };\n ContainerBlot.prototype.replace = function (target) {\n if (target instanceof ContainerBlot) {\n target.moveChildren(this);\n }\n _super.prototype.replace.call(this, target);\n };\n ContainerBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = this.clone();\n this.parent.insertBefore(after, this.next);\n this.children.forEachAt(index, this.length(), function (child, offset, length) {\n child = child.split(offset, force);\n after.appendChild(child);\n });\n return after;\n };\n ContainerBlot.prototype.unwrap = function () {\n this.moveChildren(this.parent, this.next);\n this.remove();\n };\n ContainerBlot.prototype.update = function (mutations, context) {\n var _this = this;\n var addedNodes = [];\n var removedNodes = [];\n mutations.forEach(function (mutation) {\n if (mutation.target === _this.domNode && mutation.type === 'childList') {\n addedNodes.push.apply(addedNodes, mutation.addedNodes);\n removedNodes.push.apply(removedNodes, mutation.removedNodes);\n }\n });\n removedNodes.forEach(function (node) {\n // Check node has actually been removed\n // One exception is Chrome does not immediately remove IFRAMEs\n // from DOM but MutationRecord is correct in its reported removal\n if (node.parentNode != null &&\n // @ts-ignore\n node.tagName !== 'IFRAME' &&\n document.body.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return;\n }\n var blot = Registry.find(node);\n if (blot == null)\n return;\n if (blot.domNode.parentNode == null || blot.domNode.parentNode === _this.domNode) {\n blot.detach();\n }\n });\n addedNodes\n .filter(function (node) {\n return node.parentNode == _this.domNode;\n })\n .sort(function (a, b) {\n if (a === b)\n return 0;\n if (a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING) {\n return 1;\n }\n return -1;\n })\n .forEach(function (node) {\n var refBlot = null;\n if (node.nextSibling != null) {\n refBlot = Registry.find(node.nextSibling);\n }\n var blot = makeBlot(node);\n if (blot.next != refBlot || blot.next == null) {\n if (blot.parent != null) {\n blot.parent.removeChild(_this);\n }\n _this.insertBefore(blot, refBlot || undefined);\n }\n });\n };\n return ContainerBlot;\n}(shadow_1.default));\nfunction makeBlot(node) {\n var blot = Registry.find(node);\n if (blot == null) {\n try {\n blot = Registry.create(node);\n }\n catch (e) {\n blot = Registry.create(Registry.Scope.INLINE);\n [].slice.call(node.childNodes).forEach(function (child) {\n // @ts-ignore\n blot.domNode.appendChild(child);\n });\n if (node.parentNode) {\n node.parentNode.replaceChild(blot.domNode, node);\n }\n blot.attach();\n }\n }\n return blot;\n}\nexports.default = ContainerBlot;\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nvar store_1 = __webpack_require__(31);\nvar container_1 = __webpack_require__(17);\nvar Registry = __webpack_require__(1);\nvar FormatBlot = /** @class */ (function (_super) {\n __extends(FormatBlot, _super);\n function FormatBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.attributes = new store_1.default(_this.domNode);\n return _this;\n }\n FormatBlot.formats = function (domNode) {\n if (typeof this.tagName === 'string') {\n return true;\n }\n else if (Array.isArray(this.tagName)) {\n return domNode.tagName.toLowerCase();\n }\n return undefined;\n };\n FormatBlot.prototype.format = function (name, value) {\n var format = Registry.query(name);\n if (format instanceof attributor_1.default) {\n this.attributes.attribute(format, value);\n }\n else if (value) {\n if (format != null && (name !== this.statics.blotName || this.formats()[name] !== value)) {\n this.replaceWith(name, value);\n }\n }\n };\n FormatBlot.prototype.formats = function () {\n var formats = this.attributes.values();\n var format = this.statics.formats(this.domNode);\n if (format != null) {\n formats[this.statics.blotName] = format;\n }\n return formats;\n };\n FormatBlot.prototype.replaceWith = function (name, value) {\n var replacement = _super.prototype.replaceWith.call(this, name, value);\n this.attributes.copy(replacement);\n return replacement;\n };\n FormatBlot.prototype.update = function (mutations, context) {\n var _this = this;\n _super.prototype.update.call(this, mutations, context);\n if (mutations.some(function (mutation) {\n return mutation.target === _this.domNode && mutation.type === 'attributes';\n })) {\n this.attributes.build();\n }\n };\n FormatBlot.prototype.wrap = function (name, value) {\n var wrapper = _super.prototype.wrap.call(this, name, value);\n if (wrapper instanceof FormatBlot && wrapper.statics.scope === this.statics.scope) {\n this.attributes.move(wrapper);\n }\n return wrapper;\n };\n return FormatBlot;\n}(container_1.default));\nexports.default = FormatBlot;\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar shadow_1 = __webpack_require__(30);\nvar Registry = __webpack_require__(1);\nvar LeafBlot = /** @class */ (function (_super) {\n __extends(LeafBlot, _super);\n function LeafBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LeafBlot.value = function (domNode) {\n return true;\n };\n LeafBlot.prototype.index = function (node, offset) {\n if (this.domNode === node ||\n this.domNode.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return Math.min(offset, 1);\n }\n return -1;\n };\n LeafBlot.prototype.position = function (index, inclusive) {\n var offset = [].indexOf.call(this.parent.domNode.childNodes, this.domNode);\n if (index > 0)\n offset += 1;\n return [this.parent.domNode, offset];\n };\n LeafBlot.prototype.value = function () {\n var _a;\n return _a = {}, _a[this.statics.blotName] = this.statics.value(this.domNode) || true, _a;\n };\n LeafBlot.scope = Registry.Scope.INLINE_BLOT;\n return LeafBlot;\n}(shadow_1.default));\nexports.default = LeafBlot;\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar equal = __webpack_require__(11);\nvar extend = __webpack_require__(3);\n\n\nvar lib = {\n attributes: {\n compose: function (a, b, keepNull) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = extend(true, {}, b);\n if (!keepNull) {\n attributes = Object.keys(attributes).reduce(function (copy, key) {\n if (attributes[key] != null) {\n copy[key] = attributes[key];\n }\n return copy;\n }, {});\n }\n for (var key in a) {\n if (a[key] !== undefined && b[key] === undefined) {\n attributes[key] = a[key];\n }\n }\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n\n diff: function(a, b) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = Object.keys(a).concat(Object.keys(b)).reduce(function (attributes, key) {\n if (!equal(a[key], b[key])) {\n attributes[key] = b[key] === undefined ? null : b[key];\n }\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n\n transform: function (a, b, priority) {\n if (typeof a !== 'object') return b;\n if (typeof b !== 'object') return undefined;\n if (!priority) return b; // b simply overwrites us without priority\n var attributes = Object.keys(b).reduce(function (attributes, key) {\n if (a[key] === undefined) attributes[key] = b[key]; // null is a valid value\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n },\n\n iterator: function (ops) {\n return new Iterator(ops);\n },\n\n length: function (op) {\n if (typeof op['delete'] === 'number') {\n return op['delete'];\n } else if (typeof op.retain === 'number') {\n return op.retain;\n } else {\n return typeof op.insert === 'string' ? op.insert.length : 1;\n }\n }\n};\n\n\nfunction Iterator(ops) {\n this.ops = ops;\n this.index = 0;\n this.offset = 0;\n};\n\nIterator.prototype.hasNext = function () {\n return this.peekLength() < Infinity;\n};\n\nIterator.prototype.next = function (length) {\n if (!length) length = Infinity;\n var nextOp = this.ops[this.index];\n if (nextOp) {\n var offset = this.offset;\n var opLength = lib.length(nextOp)\n if (length >= opLength - offset) {\n length = opLength - offset;\n this.index += 1;\n this.offset = 0;\n } else {\n this.offset += length;\n }\n if (typeof nextOp['delete'] === 'number') {\n return { 'delete': length };\n } else {\n var retOp = {};\n if (nextOp.attributes) {\n retOp.attributes = nextOp.attributes;\n }\n if (typeof nextOp.retain === 'number') {\n retOp.retain = length;\n } else if (typeof nextOp.insert === 'string') {\n retOp.insert = nextOp.insert.substr(offset, length);\n } else {\n // offset should === 0, length should === 1\n retOp.insert = nextOp.insert;\n }\n return retOp;\n }\n } else {\n return { retain: Infinity };\n }\n};\n\nIterator.prototype.peek = function () {\n return this.ops[this.index];\n};\n\nIterator.prototype.peekLength = function () {\n if (this.ops[this.index]) {\n // Should never return 0 if our index is being managed correctly\n return lib.length(this.ops[this.index]) - this.offset;\n } else {\n return Infinity;\n }\n};\n\nIterator.prototype.peekType = function () {\n if (this.ops[this.index]) {\n if (typeof this.ops[this.index]['delete'] === 'number') {\n return 'delete';\n } else if (typeof this.ops[this.index].retain === 'number') {\n return 'retain';\n } else {\n return 'insert';\n }\n }\n return 'retain';\n};\n\nIterator.prototype.rest = function () {\n if (!this.hasNext()) {\n return [];\n } else if (this.offset === 0) {\n return this.ops.slice(this.index);\n } else {\n var offset = this.offset;\n var index = this.index;\n var next = this.next();\n var rest = this.ops.slice(this.index);\n this.offset = offset;\n this.index = index;\n return [next].concat(rest);\n }\n};\n\n\nmodule.exports = lib;\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports) {\n\nvar clone = (function() {\n'use strict';\n\nfunction _instanceof(obj, type) {\n return type != null && obj instanceof type;\n}\n\nvar nativeMap;\ntry {\n nativeMap = Map;\n} catch(_) {\n // maybe a reference error because no `Map`. Give it a dummy value that no\n // value will ever be an instanceof.\n nativeMap = function() {};\n}\n\nvar nativeSet;\ntry {\n nativeSet = Set;\n} catch(_) {\n nativeSet = function() {};\n}\n\nvar nativePromise;\ntry {\n nativePromise = Promise;\n} catch(_) {\n nativePromise = function() {};\n}\n\n/**\n * Clones (copies) an Object using deep copying.\n *\n * This function supports circular references by default, but if you are certain\n * there are no circular references in your object, you can save some CPU time\n * by calling clone(obj, false).\n *\n * Caution: if `circular` is false and `parent` contains circular references,\n * your program may enter an infinite loop and crash.\n *\n * @param `parent` - the object to be cloned\n * @param `circular` - set to true if the object to be cloned may contain\n * circular references. (optional - true by default)\n * @param `depth` - set to a number if the object is only to be cloned to\n * a particular depth. (optional - defaults to Infinity)\n * @param `prototype` - sets the prototype to be used when cloning an object.\n * (optional - defaults to parent prototype).\n * @param `includeNonEnumerable` - set to true if the non-enumerable properties\n * should be cloned as well. Non-enumerable properties on the prototype\n * chain will be ignored. (optional - false by default)\n*/\nfunction clone(parent, circular, depth, prototype, includeNonEnumerable) {\n if (typeof circular === 'object') {\n depth = circular.depth;\n prototype = circular.prototype;\n includeNonEnumerable = circular.includeNonEnumerable;\n circular = circular.circular;\n }\n // maintain two arrays for circular references, where corresponding parents\n // and children have the same index\n var allParents = [];\n var allChildren = [];\n\n var useBuffer = typeof Buffer != 'undefined';\n\n if (typeof circular == 'undefined')\n circular = true;\n\n if (typeof depth == 'undefined')\n depth = Infinity;\n\n // recurse this function so we don't reset allParents and allChildren\n function _clone(parent, depth) {\n // cloning null always returns null\n if (parent === null)\n return null;\n\n if (depth === 0)\n return parent;\n\n var child;\n var proto;\n if (typeof parent != 'object') {\n return parent;\n }\n\n if (_instanceof(parent, nativeMap)) {\n child = new nativeMap();\n } else if (_instanceof(parent, nativeSet)) {\n child = new nativeSet();\n } else if (_instanceof(parent, nativePromise)) {\n child = new nativePromise(function (resolve, reject) {\n parent.then(function(value) {\n resolve(_clone(value, depth - 1));\n }, function(err) {\n reject(_clone(err, depth - 1));\n });\n });\n } else if (clone.__isArray(parent)) {\n child = [];\n } else if (clone.__isRegExp(parent)) {\n child = new RegExp(parent.source, __getRegExpFlags(parent));\n if (parent.lastIndex) child.lastIndex = parent.lastIndex;\n } else if (clone.__isDate(parent)) {\n child = new Date(parent.getTime());\n } else if (useBuffer && Buffer.isBuffer(parent)) {\n if (Buffer.allocUnsafe) {\n // Node.js >= 4.5.0\n child = Buffer.allocUnsafe(parent.length);\n } else {\n // Older Node.js versions\n child = new Buffer(parent.length);\n }\n parent.copy(child);\n return child;\n } else if (_instanceof(parent, Error)) {\n child = Object.create(parent);\n } else {\n if (typeof prototype == 'undefined') {\n proto = Object.getPrototypeOf(parent);\n child = Object.create(proto);\n }\n else {\n child = Object.create(prototype);\n proto = prototype;\n }\n }\n\n if (circular) {\n var index = allParents.indexOf(parent);\n\n if (index != -1) {\n return allChildren[index];\n }\n allParents.push(parent);\n allChildren.push(child);\n }\n\n if (_instanceof(parent, nativeMap)) {\n parent.forEach(function(value, key) {\n var keyChild = _clone(key, depth - 1);\n var valueChild = _clone(value, depth - 1);\n child.set(keyChild, valueChild);\n });\n }\n if (_instanceof(parent, nativeSet)) {\n parent.forEach(function(value) {\n var entryChild = _clone(value, depth - 1);\n child.add(entryChild);\n });\n }\n\n for (var i in parent) {\n var attrs;\n if (proto) {\n attrs = Object.getOwnPropertyDescriptor(proto, i);\n }\n\n if (attrs && attrs.set == null) {\n continue;\n }\n child[i] = _clone(parent[i], depth - 1);\n }\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(parent);\n for (var i = 0; i < symbols.length; i++) {\n // Don't need to worry about cloning a symbol because it is a primitive,\n // like a number or string.\n var symbol = symbols[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, symbol);\n if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {\n continue;\n }\n child[symbol] = _clone(parent[symbol], depth - 1);\n if (!descriptor.enumerable) {\n Object.defineProperty(child, symbol, {\n enumerable: false\n });\n }\n }\n }\n\n if (includeNonEnumerable) {\n var allPropertyNames = Object.getOwnPropertyNames(parent);\n for (var i = 0; i < allPropertyNames.length; i++) {\n var propertyName = allPropertyNames[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName);\n if (descriptor && descriptor.enumerable) {\n continue;\n }\n child[propertyName] = _clone(parent[propertyName], depth - 1);\n Object.defineProperty(child, propertyName, {\n enumerable: false\n });\n }\n }\n\n return child;\n }\n\n return _clone(parent, depth);\n}\n\n/**\n * Simple flat clone using prototype, accepts only objects, usefull for property\n * override on FLAT configuration object (no nested props).\n *\n * USE WITH CAUTION! This may not behave as you wish if you do not know how this\n * works.\n */\nclone.clonePrototype = function clonePrototype(parent) {\n if (parent === null)\n return null;\n\n var c = function () {};\n c.prototype = parent;\n return new c();\n};\n\n// private utility functions\n\nfunction __objToStr(o) {\n return Object.prototype.toString.call(o);\n}\nclone.__objToStr = __objToStr;\n\nfunction __isDate(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Date]';\n}\nclone.__isDate = __isDate;\n\nfunction __isArray(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Array]';\n}\nclone.__isArray = __isArray;\n\nfunction __isRegExp(o) {\n return typeof o === 'object' && __objToStr(o) === '[object RegExp]';\n}\nclone.__isRegExp = __isRegExp;\n\nfunction __getRegExpFlags(re) {\n var flags = '';\n if (re.global) flags += 'g';\n if (re.ignoreCase) flags += 'i';\n if (re.multiline) flags += 'm';\n return flags;\n}\nclone.__getRegExpFlags = __getRegExpFlags;\n\nreturn clone;\n})();\n\nif (typeof module === 'object' && module.exports) {\n module.exports = clone;\n}\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction isLine(blot) {\n return blot instanceof _block2.default || blot instanceof _block.BlockEmbed;\n}\n\nvar Scroll = function (_Parchment$Scroll) {\n _inherits(Scroll, _Parchment$Scroll);\n\n function Scroll(domNode, config) {\n _classCallCheck(this, Scroll);\n\n var _this = _possibleConstructorReturn(this, (Scroll.__proto__ || Object.getPrototypeOf(Scroll)).call(this, domNode));\n\n _this.emitter = config.emitter;\n if (Array.isArray(config.whitelist)) {\n _this.whitelist = config.whitelist.reduce(function (whitelist, format) {\n whitelist[format] = true;\n return whitelist;\n }, {});\n }\n // Some reason fixes composition issues with character languages in Windows/Chrome, Safari\n _this.domNode.addEventListener('DOMNodeInserted', function () {});\n _this.optimize();\n _this.enable();\n return _this;\n }\n\n _createClass(Scroll, [{\n key: 'batchStart',\n value: function batchStart() {\n this.batch = true;\n }\n }, {\n key: 'batchEnd',\n value: function batchEnd() {\n this.batch = false;\n this.optimize();\n }\n }, {\n key: 'deleteAt',\n value: function deleteAt(index, length) {\n var _line = this.line(index),\n _line2 = _slicedToArray(_line, 2),\n first = _line2[0],\n offset = _line2[1];\n\n var _line3 = this.line(index + length),\n _line4 = _slicedToArray(_line3, 1),\n last = _line4[0];\n\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'deleteAt', this).call(this, index, length);\n if (last != null && first !== last && offset > 0) {\n if (first instanceof _block.BlockEmbed || last instanceof _block.BlockEmbed) {\n this.optimize();\n return;\n }\n if (first instanceof _code2.default) {\n var newlineIndex = first.newlineIndex(first.length(), true);\n if (newlineIndex > -1) {\n first = first.split(newlineIndex + 1);\n if (first === last) {\n this.optimize();\n return;\n }\n }\n } else if (last instanceof _code2.default) {\n var _newlineIndex = last.newlineIndex(0);\n if (_newlineIndex > -1) {\n last.split(_newlineIndex + 1);\n }\n }\n var ref = last.children.head instanceof _break2.default ? null : last.children.head;\n first.moveChildren(last, ref);\n first.remove();\n }\n this.optimize();\n }\n }, {\n key: 'enable',\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this.domNode.setAttribute('contenteditable', enabled);\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, format, value) {\n if (this.whitelist != null && !this.whitelist[format]) return;\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'formatAt', this).call(this, index, length, format, value);\n this.optimize();\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null && this.whitelist != null && !this.whitelist[value]) return;\n if (index >= this.length()) {\n if (def == null || _parchment2.default.query(value, _parchment2.default.Scope.BLOCK) == null) {\n var blot = _parchment2.default.create(this.statics.defaultChild);\n this.appendChild(blot);\n if (def == null && value.endsWith('\\n')) {\n value = value.slice(0, -1);\n }\n blot.insertAt(0, value, def);\n } else {\n var embed = _parchment2.default.create(value, def);\n this.appendChild(embed);\n }\n } else {\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertAt', this).call(this, index, value, def);\n }\n this.optimize();\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n if (blot.statics.scope === _parchment2.default.Scope.INLINE_BLOT) {\n var wrapper = _parchment2.default.create(this.statics.defaultChild);\n wrapper.appendChild(blot);\n blot = wrapper;\n }\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertBefore', this).call(this, blot, ref);\n }\n }, {\n key: 'leaf',\n value: function leaf(index) {\n return this.path(index).pop() || [null, -1];\n }\n }, {\n key: 'line',\n value: function line(index) {\n if (index === this.length()) {\n return this.line(index - 1);\n }\n return this.descendant(isLine, index);\n }\n }, {\n key: 'lines',\n value: function lines() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n\n var getLines = function getLines(blot, index, length) {\n var lines = [],\n lengthLeft = length;\n blot.children.forEachAt(index, length, function (child, index, length) {\n if (isLine(child)) {\n lines.push(child);\n } else if (child instanceof _parchment2.default.Container) {\n lines = lines.concat(getLines(child, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return lines;\n };\n return getLines(this, index, length);\n }\n }, {\n key: 'optimize',\n value: function optimize() {\n var mutations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this.batch === true) return;\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'optimize', this).call(this, mutations, context);\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_OPTIMIZE, mutations, context);\n }\n }\n }, {\n key: 'path',\n value: function path(index) {\n return _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'path', this).call(this, index).slice(1); // Exclude self\n }\n }, {\n key: 'update',\n value: function update(mutations) {\n if (this.batch === true) return;\n var source = _emitter2.default.sources.USER;\n if (typeof mutations === 'string') {\n source = mutations;\n }\n if (!Array.isArray(mutations)) {\n mutations = this.observer.takeRecords();\n }\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_BEFORE_UPDATE, source, mutations);\n }\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'update', this).call(this, mutations.concat([])); // pass copy\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_UPDATE, source, mutations);\n }\n }\n }]);\n\n return Scroll;\n}(_parchment2.default.Scroll);\n\nScroll.blotName = 'scroll';\nScroll.className = 'ql-editor';\nScroll.tagName = 'DIV';\nScroll.defaultChild = 'block';\nScroll.allowedChildren = [_block2.default, _block.BlockEmbed, _container2.default];\n\nexports.default = Scroll;\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SHORTKEY = exports.default = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _op = __webpack_require__(20);\n\nvar _op2 = _interopRequireDefault(_op);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:keyboard');\n\nvar SHORTKEY = /Mac/i.test(navigator.platform) ? 'metaKey' : 'ctrlKey';\n\nvar Keyboard = function (_Module) {\n _inherits(Keyboard, _Module);\n\n _createClass(Keyboard, null, [{\n key: 'match',\n value: function match(evt, binding) {\n binding = normalize(binding);\n if (['altKey', 'ctrlKey', 'metaKey', 'shiftKey'].some(function (key) {\n return !!binding[key] !== evt[key] && binding[key] !== null;\n })) {\n return false;\n }\n return binding.key === (evt.which || evt.keyCode);\n }\n }]);\n\n function Keyboard(quill, options) {\n _classCallCheck(this, Keyboard);\n\n var _this = _possibleConstructorReturn(this, (Keyboard.__proto__ || Object.getPrototypeOf(Keyboard)).call(this, quill, options));\n\n _this.bindings = {};\n Object.keys(_this.options.bindings).forEach(function (name) {\n if (name === 'list autofill' && quill.scroll.whitelist != null && !quill.scroll.whitelist['list']) {\n return;\n }\n if (_this.options.bindings[name]) {\n _this.addBinding(_this.options.bindings[name]);\n }\n });\n _this.addBinding({ key: Keyboard.keys.ENTER, shiftKey: null }, handleEnter);\n _this.addBinding({ key: Keyboard.keys.ENTER, metaKey: null, ctrlKey: null, altKey: null }, function () {});\n if (/Firefox/i.test(navigator.userAgent)) {\n // Need to handle delete and backspace for Firefox in the general case #1171\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true }, handleBackspace);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true }, handleDelete);\n } else {\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true, prefix: /^.?$/ }, handleBackspace);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true, suffix: /^.?$/ }, handleDelete);\n }\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: false }, handleDeleteRange);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: false }, handleDeleteRange);\n _this.addBinding({ key: Keyboard.keys.BACKSPACE, altKey: null, ctrlKey: null, metaKey: null, shiftKey: null }, { collapsed: true, offset: 0 }, handleBackspace);\n _this.listen();\n return _this;\n }\n\n _createClass(Keyboard, [{\n key: 'addBinding',\n value: function addBinding(key) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var handler = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var binding = normalize(key);\n if (binding == null || binding.key == null) {\n return debug.warn('Attempted to add invalid keyboard binding', binding);\n }\n if (typeof context === 'function') {\n context = { handler: context };\n }\n if (typeof handler === 'function') {\n handler = { handler: handler };\n }\n binding = (0, _extend2.default)(binding, context, handler);\n this.bindings[binding.key] = this.bindings[binding.key] || [];\n this.bindings[binding.key].push(binding);\n }\n }, {\n key: 'listen',\n value: function listen() {\n var _this2 = this;\n\n this.quill.root.addEventListener('keydown', function (evt) {\n if (evt.defaultPrevented) return;\n var which = evt.which || evt.keyCode;\n var bindings = (_this2.bindings[which] || []).filter(function (binding) {\n return Keyboard.match(evt, binding);\n });\n if (bindings.length === 0) return;\n var range = _this2.quill.getSelection();\n if (range == null || !_this2.quill.hasFocus()) return;\n\n var _quill$getLine = _this2.quill.getLine(range.index),\n _quill$getLine2 = _slicedToArray(_quill$getLine, 2),\n line = _quill$getLine2[0],\n offset = _quill$getLine2[1];\n\n var _quill$getLeaf = _this2.quill.getLeaf(range.index),\n _quill$getLeaf2 = _slicedToArray(_quill$getLeaf, 2),\n leafStart = _quill$getLeaf2[0],\n offsetStart = _quill$getLeaf2[1];\n\n var _ref = range.length === 0 ? [leafStart, offsetStart] : _this2.quill.getLeaf(range.index + range.length),\n _ref2 = _slicedToArray(_ref, 2),\n leafEnd = _ref2[0],\n offsetEnd = _ref2[1];\n\n var prefixText = leafStart instanceof _parchment2.default.Text ? leafStart.value().slice(0, offsetStart) : '';\n var suffixText = leafEnd instanceof _parchment2.default.Text ? leafEnd.value().slice(offsetEnd) : '';\n var curContext = {\n collapsed: range.length === 0,\n empty: range.length === 0 && line.length() <= 1,\n format: _this2.quill.getFormat(range),\n offset: offset,\n prefix: prefixText,\n suffix: suffixText\n };\n var prevented = bindings.some(function (binding) {\n if (binding.collapsed != null && binding.collapsed !== curContext.collapsed) return false;\n if (binding.empty != null && binding.empty !== curContext.empty) return false;\n if (binding.offset != null && binding.offset !== curContext.offset) return false;\n if (Array.isArray(binding.format)) {\n // any format is present\n if (binding.format.every(function (name) {\n return curContext.format[name] == null;\n })) {\n return false;\n }\n } else if (_typeof(binding.format) === 'object') {\n // all formats must match\n if (!Object.keys(binding.format).every(function (name) {\n if (binding.format[name] === true) return curContext.format[name] != null;\n if (binding.format[name] === false) return curContext.format[name] == null;\n return (0, _deepEqual2.default)(binding.format[name], curContext.format[name]);\n })) {\n return false;\n }\n }\n if (binding.prefix != null && !binding.prefix.test(curContext.prefix)) return false;\n if (binding.suffix != null && !binding.suffix.test(curContext.suffix)) return false;\n return binding.handler.call(_this2, range, curContext) !== true;\n });\n if (prevented) {\n evt.preventDefault();\n }\n });\n }\n }]);\n\n return Keyboard;\n}(_module2.default);\n\nKeyboard.keys = {\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n ESCAPE: 27,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n DELETE: 46\n};\n\nKeyboard.DEFAULTS = {\n bindings: {\n 'bold': makeFormatHandler('bold'),\n 'italic': makeFormatHandler('italic'),\n 'underline': makeFormatHandler('underline'),\n 'indent': {\n // highlight tab or tab at beginning of list, indent or blockquote\n key: Keyboard.keys.TAB,\n format: ['blockquote', 'indent', 'list'],\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '+1', _quill2.default.sources.USER);\n }\n },\n 'outdent': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n format: ['blockquote', 'indent', 'list'],\n // highlight tab or tab at beginning of list, indent or blockquote\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '-1', _quill2.default.sources.USER);\n }\n },\n 'outdent backspace': {\n key: Keyboard.keys.BACKSPACE,\n collapsed: true,\n shiftKey: null,\n metaKey: null,\n ctrlKey: null,\n altKey: null,\n format: ['indent', 'list'],\n offset: 0,\n handler: function handler(range, context) {\n if (context.format.indent != null) {\n this.quill.format('indent', '-1', _quill2.default.sources.USER);\n } else if (context.format.list != null) {\n this.quill.format('list', false, _quill2.default.sources.USER);\n }\n }\n },\n 'indent code-block': makeCodeBlockHandler(true),\n 'outdent code-block': makeCodeBlockHandler(false),\n 'remove tab': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n collapsed: true,\n prefix: /\\t$/,\n handler: function handler(range) {\n this.quill.deleteText(range.index - 1, 1, _quill2.default.sources.USER);\n }\n },\n 'tab': {\n key: Keyboard.keys.TAB,\n handler: function handler(range) {\n this.quill.history.cutoff();\n var delta = new _quillDelta2.default().retain(range.index).delete(range.length).insert('\\t');\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n }\n },\n 'list empty enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['list'],\n empty: true,\n handler: function handler(range, context) {\n this.quill.format('list', false, _quill2.default.sources.USER);\n if (context.format.indent) {\n this.quill.format('indent', false, _quill2.default.sources.USER);\n }\n }\n },\n 'checklist enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: { list: 'checked' },\n handler: function handler(range) {\n var _quill$getLine3 = this.quill.getLine(range.index),\n _quill$getLine4 = _slicedToArray(_quill$getLine3, 2),\n line = _quill$getLine4[0],\n offset = _quill$getLine4[1];\n\n var formats = (0, _extend2.default)({}, line.formats(), { list: 'checked' });\n var delta = new _quillDelta2.default().retain(range.index).insert('\\n', formats).retain(line.length() - offset - 1).retain(1, { list: 'unchecked' });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'header enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['header'],\n suffix: /^$/,\n handler: function handler(range, context) {\n var _quill$getLine5 = this.quill.getLine(range.index),\n _quill$getLine6 = _slicedToArray(_quill$getLine5, 2),\n line = _quill$getLine6[0],\n offset = _quill$getLine6[1];\n\n var delta = new _quillDelta2.default().retain(range.index).insert('\\n', context.format).retain(line.length() - offset - 1).retain(1, { header: null });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'list autofill': {\n key: ' ',\n collapsed: true,\n format: { list: false },\n prefix: /^\\s*?(\\d+\\.|-|\\*|\\[ ?\\]|\\[x\\])$/,\n handler: function handler(range, context) {\n var length = context.prefix.length;\n\n var _quill$getLine7 = this.quill.getLine(range.index),\n _quill$getLine8 = _slicedToArray(_quill$getLine7, 2),\n line = _quill$getLine8[0],\n offset = _quill$getLine8[1];\n\n if (offset > length) return true;\n var value = void 0;\n switch (context.prefix.trim()) {\n case '[]':case '[ ]':\n value = 'unchecked';\n break;\n case '[x]':\n value = 'checked';\n break;\n case '-':case '*':\n value = 'bullet';\n break;\n default:\n value = 'ordered';\n }\n this.quill.insertText(range.index, ' ', _quill2.default.sources.USER);\n this.quill.history.cutoff();\n var delta = new _quillDelta2.default().retain(range.index - offset).delete(length + 1).retain(line.length() - 2 - offset).retain(1, { list: value });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index - length, _quill2.default.sources.SILENT);\n }\n },\n 'code exit': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['code-block'],\n prefix: /\\n\\n$/,\n suffix: /^\\s+$/,\n handler: function handler(range) {\n var _quill$getLine9 = this.quill.getLine(range.index),\n _quill$getLine10 = _slicedToArray(_quill$getLine9, 2),\n line = _quill$getLine10[0],\n offset = _quill$getLine10[1];\n\n var delta = new _quillDelta2.default().retain(range.index + line.length() - offset - 2).retain(1, { 'code-block': null }).delete(1);\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n }\n },\n 'embed left': makeEmbedArrowHandler(Keyboard.keys.LEFT, false),\n 'embed left shift': makeEmbedArrowHandler(Keyboard.keys.LEFT, true),\n 'embed right': makeEmbedArrowHandler(Keyboard.keys.RIGHT, false),\n 'embed right shift': makeEmbedArrowHandler(Keyboard.keys.RIGHT, true)\n }\n};\n\nfunction makeEmbedArrowHandler(key, shiftKey) {\n var _ref3;\n\n var where = key === Keyboard.keys.LEFT ? 'prefix' : 'suffix';\n return _ref3 = {\n key: key,\n shiftKey: shiftKey,\n altKey: null\n }, _defineProperty(_ref3, where, /^$/), _defineProperty(_ref3, 'handler', function handler(range) {\n var index = range.index;\n if (key === Keyboard.keys.RIGHT) {\n index += range.length + 1;\n }\n\n var _quill$getLeaf3 = this.quill.getLeaf(index),\n _quill$getLeaf4 = _slicedToArray(_quill$getLeaf3, 1),\n leaf = _quill$getLeaf4[0];\n\n if (!(leaf instanceof _parchment2.default.Embed)) return true;\n if (key === Keyboard.keys.LEFT) {\n if (shiftKey) {\n this.quill.setSelection(range.index - 1, range.length + 1, _quill2.default.sources.USER);\n } else {\n this.quill.setSelection(range.index - 1, _quill2.default.sources.USER);\n }\n } else {\n if (shiftKey) {\n this.quill.setSelection(range.index, range.length + 1, _quill2.default.sources.USER);\n } else {\n this.quill.setSelection(range.index + range.length + 1, _quill2.default.sources.USER);\n }\n }\n return false;\n }), _ref3;\n}\n\nfunction handleBackspace(range, context) {\n if (range.index === 0 || this.quill.getLength() <= 1) return;\n\n var _quill$getLine11 = this.quill.getLine(range.index),\n _quill$getLine12 = _slicedToArray(_quill$getLine11, 1),\n line = _quill$getLine12[0];\n\n var formats = {};\n if (context.offset === 0) {\n var _quill$getLine13 = this.quill.getLine(range.index - 1),\n _quill$getLine14 = _slicedToArray(_quill$getLine13, 1),\n prev = _quill$getLine14[0];\n\n if (prev != null && prev.length() > 1) {\n var curFormats = line.formats();\n var prevFormats = this.quill.getFormat(range.index - 1, 1);\n formats = _op2.default.attributes.diff(curFormats, prevFormats) || {};\n }\n }\n // Check for astral symbols\n var length = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]$/.test(context.prefix) ? 2 : 1;\n this.quill.deleteText(range.index - length, length, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index - length, length, formats, _quill2.default.sources.USER);\n }\n this.quill.focus();\n}\n\nfunction handleDelete(range, context) {\n // Check for astral symbols\n var length = /^[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/.test(context.suffix) ? 2 : 1;\n if (range.index >= this.quill.getLength() - length) return;\n var formats = {},\n nextLength = 0;\n\n var _quill$getLine15 = this.quill.getLine(range.index),\n _quill$getLine16 = _slicedToArray(_quill$getLine15, 1),\n line = _quill$getLine16[0];\n\n if (context.offset >= line.length() - 1) {\n var _quill$getLine17 = this.quill.getLine(range.index + 1),\n _quill$getLine18 = _slicedToArray(_quill$getLine17, 1),\n next = _quill$getLine18[0];\n\n if (next) {\n var curFormats = line.formats();\n var nextFormats = this.quill.getFormat(range.index, 1);\n formats = _op2.default.attributes.diff(curFormats, nextFormats) || {};\n nextLength = next.length();\n }\n }\n this.quill.deleteText(range.index, length, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index + nextLength - 1, length, formats, _quill2.default.sources.USER);\n }\n}\n\nfunction handleDeleteRange(range) {\n var lines = this.quill.getLines(range);\n var formats = {};\n if (lines.length > 1) {\n var firstFormats = lines[0].formats();\n var lastFormats = lines[lines.length - 1].formats();\n formats = _op2.default.attributes.diff(lastFormats, firstFormats) || {};\n }\n this.quill.deleteText(range, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index, 1, formats, _quill2.default.sources.USER);\n }\n this.quill.setSelection(range.index, _quill2.default.sources.SILENT);\n this.quill.focus();\n}\n\nfunction handleEnter(range, context) {\n var _this3 = this;\n\n if (range.length > 0) {\n this.quill.scroll.deleteAt(range.index, range.length); // So we do not trigger text-change\n }\n var lineFormats = Object.keys(context.format).reduce(function (lineFormats, format) {\n if (_parchment2.default.query(format, _parchment2.default.Scope.BLOCK) && !Array.isArray(context.format[format])) {\n lineFormats[format] = context.format[format];\n }\n return lineFormats;\n }, {});\n this.quill.insertText(range.index, '\\n', lineFormats, _quill2.default.sources.USER);\n // Earlier scroll.deleteAt might have messed up our selection,\n // so insertText's built in selection preservation is not reliable\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.focus();\n Object.keys(context.format).forEach(function (name) {\n if (lineFormats[name] != null) return;\n if (Array.isArray(context.format[name])) return;\n if (name === 'link') return;\n _this3.quill.format(name, context.format[name], _quill2.default.sources.USER);\n });\n}\n\nfunction makeCodeBlockHandler(indent) {\n return {\n key: Keyboard.keys.TAB,\n shiftKey: !indent,\n format: { 'code-block': true },\n handler: function handler(range) {\n var CodeBlock = _parchment2.default.query('code-block');\n var index = range.index,\n length = range.length;\n\n var _quill$scroll$descend = this.quill.scroll.descendant(CodeBlock, index),\n _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2),\n block = _quill$scroll$descend2[0],\n offset = _quill$scroll$descend2[1];\n\n if (block == null) return;\n var scrollIndex = this.quill.getIndex(block);\n var start = block.newlineIndex(offset, true) + 1;\n var end = block.newlineIndex(scrollIndex + offset + length);\n var lines = block.domNode.textContent.slice(start, end).split('\\n');\n offset = 0;\n lines.forEach(function (line, i) {\n if (indent) {\n block.insertAt(start + offset, CodeBlock.TAB);\n offset += CodeBlock.TAB.length;\n if (i === 0) {\n index += CodeBlock.TAB.length;\n } else {\n length += CodeBlock.TAB.length;\n }\n } else if (line.startsWith(CodeBlock.TAB)) {\n block.deleteAt(start + offset, CodeBlock.TAB.length);\n offset -= CodeBlock.TAB.length;\n if (i === 0) {\n index -= CodeBlock.TAB.length;\n } else {\n length -= CodeBlock.TAB.length;\n }\n }\n offset += line.length + 1;\n });\n this.quill.update(_quill2.default.sources.USER);\n this.quill.setSelection(index, length, _quill2.default.sources.SILENT);\n }\n };\n}\n\nfunction makeFormatHandler(format) {\n return {\n key: format[0].toUpperCase(),\n shortKey: true,\n handler: function handler(range, context) {\n this.quill.format(format, !context.format[format], _quill2.default.sources.USER);\n }\n };\n}\n\nfunction normalize(binding) {\n if (typeof binding === 'string' || typeof binding === 'number') {\n return normalize({ key: binding });\n }\n if ((typeof binding === 'undefined' ? 'undefined' : _typeof(binding)) === 'object') {\n binding = (0, _clone2.default)(binding, false);\n }\n if (typeof binding.key === 'string') {\n if (Keyboard.keys[binding.key.toUpperCase()] != null) {\n binding.key = Keyboard.keys[binding.key.toUpperCase()];\n } else if (binding.key.length === 1) {\n binding.key = binding.key.toUpperCase().charCodeAt(0);\n } else {\n return null;\n }\n }\n if (binding.shortKey) {\n binding[SHORTKEY] = binding.shortKey;\n delete binding.shortKey;\n }\n return binding;\n}\n\nexports.default = Keyboard;\nexports.SHORTKEY = SHORTKEY;\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Cursor = function (_Parchment$Embed) {\n _inherits(Cursor, _Parchment$Embed);\n\n _createClass(Cursor, null, [{\n key: 'value',\n value: function value() {\n return undefined;\n }\n }]);\n\n function Cursor(domNode, selection) {\n _classCallCheck(this, Cursor);\n\n var _this = _possibleConstructorReturn(this, (Cursor.__proto__ || Object.getPrototypeOf(Cursor)).call(this, domNode));\n\n _this.selection = selection;\n _this.textNode = document.createTextNode(Cursor.CONTENTS);\n _this.domNode.appendChild(_this.textNode);\n _this._length = 0;\n return _this;\n }\n\n _createClass(Cursor, [{\n key: 'detach',\n value: function detach() {\n // super.detach() will also clear domNode.__blot\n if (this.parent != null) this.parent.removeChild(this);\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n if (this._length !== 0) {\n return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'format', this).call(this, name, value);\n }\n var target = this,\n index = 0;\n while (target != null && target.statics.scope !== _parchment2.default.Scope.BLOCK_BLOT) {\n index += target.offset(target.parent);\n target = target.parent;\n }\n if (target != null) {\n this._length = Cursor.CONTENTS.length;\n target.optimize();\n target.formatAt(index, Cursor.CONTENTS.length, name, value);\n this._length = 0;\n }\n }\n }, {\n key: 'index',\n value: function index(node, offset) {\n if (node === this.textNode) return 0;\n return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'index', this).call(this, node, offset);\n }\n }, {\n key: 'length',\n value: function length() {\n return this._length;\n }\n }, {\n key: 'position',\n value: function position() {\n return [this.textNode, this.textNode.data.length];\n }\n }, {\n key: 'remove',\n value: function remove() {\n _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'remove', this).call(this);\n this.parent = null;\n }\n }, {\n key: 'restore',\n value: function restore() {\n if (this.selection.composing || this.parent == null) return;\n var textNode = this.textNode;\n var range = this.selection.getNativeRange();\n var restoreText = void 0,\n start = void 0,\n end = void 0;\n if (range != null && range.start.node === textNode && range.end.node === textNode) {\n var _ref = [textNode, range.start.offset, range.end.offset];\n restoreText = _ref[0];\n start = _ref[1];\n end = _ref[2];\n }\n // Link format will insert text outside of anchor tag\n while (this.domNode.lastChild != null && this.domNode.lastChild !== this.textNode) {\n this.domNode.parentNode.insertBefore(this.domNode.lastChild, this.domNode);\n }\n if (this.textNode.data !== Cursor.CONTENTS) {\n var text = this.textNode.data.split(Cursor.CONTENTS).join('');\n if (this.next instanceof _text2.default) {\n restoreText = this.next.domNode;\n this.next.insertAt(0, text);\n this.textNode.data = Cursor.CONTENTS;\n } else {\n this.textNode.data = text;\n this.parent.insertBefore(_parchment2.default.create(this.textNode), this);\n this.textNode = document.createTextNode(Cursor.CONTENTS);\n this.domNode.appendChild(this.textNode);\n }\n }\n this.remove();\n if (start != null) {\n var _map = [start, end].map(function (offset) {\n return Math.max(0, Math.min(restoreText.data.length, offset - 1));\n });\n\n var _map2 = _slicedToArray(_map, 2);\n\n start = _map2[0];\n end = _map2[1];\n\n return {\n startNode: restoreText,\n startOffset: start,\n endNode: restoreText,\n endOffset: end\n };\n }\n }\n }, {\n key: 'update',\n value: function update(mutations, context) {\n var _this2 = this;\n\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this2.textNode;\n })) {\n var range = this.restore();\n if (range) context.range = range;\n }\n }\n }, {\n key: 'value',\n value: function value() {\n return '';\n }\n }]);\n\n return Cursor;\n}(_parchment2.default.Embed);\n\nCursor.blotName = 'cursor';\nCursor.className = 'ql-cursor';\nCursor.tagName = 'span';\nCursor.CONTENTS = '\\uFEFF'; // Zero width no break space\n\n\nexports.default = Cursor;\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Container = function (_Parchment$Container) {\n _inherits(Container, _Parchment$Container);\n\n function Container() {\n _classCallCheck(this, Container);\n\n return _possibleConstructorReturn(this, (Container.__proto__ || Object.getPrototypeOf(Container)).apply(this, arguments));\n }\n\n return Container;\n}(_parchment2.default.Container);\n\nContainer.allowedChildren = [_block2.default, _block.BlockEmbed, Container];\n\nexports.default = Container;\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ColorStyle = exports.ColorClass = exports.ColorAttributor = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ColorAttributor = function (_Parchment$Attributor) {\n _inherits(ColorAttributor, _Parchment$Attributor);\n\n function ColorAttributor() {\n _classCallCheck(this, ColorAttributor);\n\n return _possibleConstructorReturn(this, (ColorAttributor.__proto__ || Object.getPrototypeOf(ColorAttributor)).apply(this, arguments));\n }\n\n _createClass(ColorAttributor, [{\n key: 'value',\n value: function value(domNode) {\n var value = _get(ColorAttributor.prototype.__proto__ || Object.getPrototypeOf(ColorAttributor.prototype), 'value', this).call(this, domNode);\n if (!value.startsWith('rgb(')) return value;\n value = value.replace(/^[^\\d]+/, '').replace(/[^\\d]+$/, '');\n return '#' + value.split(',').map(function (component) {\n return ('00' + parseInt(component).toString(16)).slice(-2);\n }).join('');\n }\n }]);\n\n return ColorAttributor;\n}(_parchment2.default.Attributor.Style);\n\nvar ColorClass = new _parchment2.default.Attributor.Class('color', 'ql-color', {\n scope: _parchment2.default.Scope.INLINE\n});\nvar ColorStyle = new ColorAttributor('color', 'color', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nexports.ColorAttributor = ColorAttributor;\nexports.ColorClass = ColorClass;\nexports.ColorStyle = ColorStyle;\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.sanitize = exports.default = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Link = function (_Inline) {\n _inherits(Link, _Inline);\n\n function Link() {\n _classCallCheck(this, Link);\n\n return _possibleConstructorReturn(this, (Link.__proto__ || Object.getPrototypeOf(Link)).apply(this, arguments));\n }\n\n _createClass(Link, [{\n key: 'format',\n value: function format(name, value) {\n if (name !== this.statics.blotName || !value) return _get(Link.prototype.__proto__ || Object.getPrototypeOf(Link.prototype), 'format', this).call(this, name, value);\n value = this.constructor.sanitize(value);\n this.domNode.setAttribute('href', value);\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Link.__proto__ || Object.getPrototypeOf(Link), 'create', this).call(this, value);\n value = this.sanitize(value);\n node.setAttribute('href', value);\n node.setAttribute('rel', 'noopener noreferrer');\n node.setAttribute('target', '_blank');\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return domNode.getAttribute('href');\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return _sanitize(url, this.PROTOCOL_WHITELIST) ? url : this.SANITIZED_URL;\n }\n }]);\n\n return Link;\n}(_inline2.default);\n\nLink.blotName = 'link';\nLink.tagName = 'A';\nLink.SANITIZED_URL = 'about:blank';\nLink.PROTOCOL_WHITELIST = ['http', 'https', 'mailto', 'tel'];\n\nfunction _sanitize(url, protocols) {\n var anchor = document.createElement('a');\n anchor.href = url;\n var protocol = anchor.href.slice(0, anchor.href.indexOf(':'));\n return protocols.indexOf(protocol) > -1;\n}\n\nexports.default = Link;\nexports.sanitize = _sanitize;\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nvar _dropdown = __webpack_require__(107);\n\nvar _dropdown2 = _interopRequireDefault(_dropdown);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar optionsCounter = 0;\n\nfunction toggleAriaAttribute(element, attribute) {\n element.setAttribute(attribute, !(element.getAttribute(attribute) === 'true'));\n}\n\nvar Picker = function () {\n function Picker(select) {\n var _this = this;\n\n _classCallCheck(this, Picker);\n\n this.select = select;\n this.container = document.createElement('span');\n this.buildPicker();\n this.select.style.display = 'none';\n this.select.parentNode.insertBefore(this.container, this.select);\n\n this.label.addEventListener('mousedown', function () {\n _this.togglePicker();\n });\n this.label.addEventListener('keydown', function (event) {\n switch (event.keyCode) {\n // Allows the \"Enter\" key to open the picker\n case _keyboard2.default.keys.ENTER:\n _this.togglePicker();\n break;\n\n // Allows the \"Escape\" key to close the picker\n case _keyboard2.default.keys.ESCAPE:\n _this.escape();\n event.preventDefault();\n break;\n default:\n }\n });\n this.select.addEventListener('change', this.update.bind(this));\n }\n\n _createClass(Picker, [{\n key: 'togglePicker',\n value: function togglePicker() {\n this.container.classList.toggle('ql-expanded');\n // Toggle aria-expanded and aria-hidden to make the picker accessible\n toggleAriaAttribute(this.label, 'aria-expanded');\n toggleAriaAttribute(this.options, 'aria-hidden');\n }\n }, {\n key: 'buildItem',\n value: function buildItem(option) {\n var _this2 = this;\n\n var item = document.createElement('span');\n item.tabIndex = '0';\n item.setAttribute('role', 'button');\n\n item.classList.add('ql-picker-item');\n if (option.hasAttribute('value')) {\n item.setAttribute('data-value', option.getAttribute('value'));\n }\n if (option.textContent) {\n item.setAttribute('data-label', option.textContent);\n }\n item.addEventListener('click', function () {\n _this2.selectItem(item, true);\n });\n item.addEventListener('keydown', function (event) {\n switch (event.keyCode) {\n // Allows the \"Enter\" key to select an item\n case _keyboard2.default.keys.ENTER:\n _this2.selectItem(item, true);\n event.preventDefault();\n break;\n\n // Allows the \"Escape\" key to close the picker\n case _keyboard2.default.keys.ESCAPE:\n _this2.escape();\n event.preventDefault();\n break;\n default:\n }\n });\n\n return item;\n }\n }, {\n key: 'buildLabel',\n value: function buildLabel() {\n var label = document.createElement('span');\n label.classList.add('ql-picker-label');\n label.innerHTML = _dropdown2.default;\n label.tabIndex = '0';\n label.setAttribute('role', 'button');\n label.setAttribute('aria-expanded', 'false');\n this.container.appendChild(label);\n return label;\n }\n }, {\n key: 'buildOptions',\n value: function buildOptions() {\n var _this3 = this;\n\n var options = document.createElement('span');\n options.classList.add('ql-picker-options');\n\n // Don't want screen readers to read this until options are visible\n options.setAttribute('aria-hidden', 'true');\n options.tabIndex = '-1';\n\n // Need a unique id for aria-controls\n options.id = 'ql-picker-options-' + optionsCounter;\n optionsCounter += 1;\n this.label.setAttribute('aria-controls', options.id);\n\n this.options = options;\n\n [].slice.call(this.select.options).forEach(function (option) {\n var item = _this3.buildItem(option);\n options.appendChild(item);\n if (option.selected === true) {\n _this3.selectItem(item);\n }\n });\n this.container.appendChild(options);\n }\n }, {\n key: 'buildPicker',\n value: function buildPicker() {\n var _this4 = this;\n\n [].slice.call(this.select.attributes).forEach(function (item) {\n _this4.container.setAttribute(item.name, item.value);\n });\n this.container.classList.add('ql-picker');\n this.label = this.buildLabel();\n this.buildOptions();\n }\n }, {\n key: 'escape',\n value: function escape() {\n var _this5 = this;\n\n // Close menu and return focus to trigger label\n this.close();\n // Need setTimeout for accessibility to ensure that the browser executes\n // focus on the next process thread and after any DOM content changes\n setTimeout(function () {\n return _this5.label.focus();\n }, 1);\n }\n }, {\n key: 'close',\n value: function close() {\n this.container.classList.remove('ql-expanded');\n this.label.setAttribute('aria-expanded', 'false');\n this.options.setAttribute('aria-hidden', 'true');\n }\n }, {\n key: 'selectItem',\n value: function selectItem(item) {\n var trigger = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var selected = this.container.querySelector('.ql-selected');\n if (item === selected) return;\n if (selected != null) {\n selected.classList.remove('ql-selected');\n }\n if (item == null) return;\n item.classList.add('ql-selected');\n this.select.selectedIndex = [].indexOf.call(item.parentNode.children, item);\n if (item.hasAttribute('data-value')) {\n this.label.setAttribute('data-value', item.getAttribute('data-value'));\n } else {\n this.label.removeAttribute('data-value');\n }\n if (item.hasAttribute('data-label')) {\n this.label.setAttribute('data-label', item.getAttribute('data-label'));\n } else {\n this.label.removeAttribute('data-label');\n }\n if (trigger) {\n if (typeof Event === 'function') {\n this.select.dispatchEvent(new Event('change'));\n } else if ((typeof Event === 'undefined' ? 'undefined' : _typeof(Event)) === 'object') {\n // IE11\n var event = document.createEvent('Event');\n event.initEvent('change', true, true);\n this.select.dispatchEvent(event);\n }\n this.close();\n }\n }\n }, {\n key: 'update',\n value: function update() {\n var option = void 0;\n if (this.select.selectedIndex > -1) {\n var item = this.container.querySelector('.ql-picker-options').children[this.select.selectedIndex];\n option = this.select.options[this.select.selectedIndex];\n this.selectItem(item);\n } else {\n this.selectItem(null);\n }\n var isActive = option != null && option !== this.select.querySelector('option[selected]');\n this.label.classList.toggle('ql-active', isActive);\n }\n }]);\n\n return Picker;\n}();\n\nexports.default = Picker;\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nvar _cursor = __webpack_require__(24);\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nvar _embed = __webpack_require__(35);\n\nvar _embed2 = _interopRequireDefault(_embed);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _scroll = __webpack_require__(22);\n\nvar _scroll2 = _interopRequireDefault(_scroll);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nvar _clipboard = __webpack_require__(55);\n\nvar _clipboard2 = _interopRequireDefault(_clipboard);\n\nvar _history = __webpack_require__(42);\n\nvar _history2 = _interopRequireDefault(_history);\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_quill2.default.register({\n 'blots/block': _block2.default,\n 'blots/block/embed': _block.BlockEmbed,\n 'blots/break': _break2.default,\n 'blots/container': _container2.default,\n 'blots/cursor': _cursor2.default,\n 'blots/embed': _embed2.default,\n 'blots/inline': _inline2.default,\n 'blots/scroll': _scroll2.default,\n 'blots/text': _text2.default,\n\n 'modules/clipboard': _clipboard2.default,\n 'modules/history': _history2.default,\n 'modules/keyboard': _keyboard2.default\n});\n\n_parchment2.default.register(_block2.default, _break2.default, _cursor2.default, _inline2.default, _scroll2.default, _text2.default);\n\nexports.default = _quill2.default;\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = __webpack_require__(1);\nvar ShadowBlot = /** @class */ (function () {\n function ShadowBlot(domNode) {\n this.domNode = domNode;\n // @ts-ignore\n this.domNode[Registry.DATA_KEY] = { blot: this };\n }\n Object.defineProperty(ShadowBlot.prototype, \"statics\", {\n // Hack for accessing inherited static methods\n get: function () {\n return this.constructor;\n },\n enumerable: true,\n configurable: true\n });\n ShadowBlot.create = function (value) {\n if (this.tagName == null) {\n throw new Registry.ParchmentError('Blot definition missing tagName');\n }\n var node;\n if (Array.isArray(this.tagName)) {\n if (typeof value === 'string') {\n value = value.toUpperCase();\n if (parseInt(value).toString() === value) {\n value = parseInt(value);\n }\n }\n if (typeof value === 'number') {\n node = document.createElement(this.tagName[value - 1]);\n }\n else if (this.tagName.indexOf(value) > -1) {\n node = document.createElement(value);\n }\n else {\n node = document.createElement(this.tagName[0]);\n }\n }\n else {\n node = document.createElement(this.tagName);\n }\n if (this.className) {\n node.classList.add(this.className);\n }\n return node;\n };\n ShadowBlot.prototype.attach = function () {\n if (this.parent != null) {\n this.scroll = this.parent.scroll;\n }\n };\n ShadowBlot.prototype.clone = function () {\n var domNode = this.domNode.cloneNode(false);\n return Registry.create(domNode);\n };\n ShadowBlot.prototype.detach = function () {\n if (this.parent != null)\n this.parent.removeChild(this);\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY];\n };\n ShadowBlot.prototype.deleteAt = function (index, length) {\n var blot = this.isolate(index, length);\n blot.remove();\n };\n ShadowBlot.prototype.formatAt = function (index, length, name, value) {\n var blot = this.isolate(index, length);\n if (Registry.query(name, Registry.Scope.BLOT) != null && value) {\n blot.wrap(name, value);\n }\n else if (Registry.query(name, Registry.Scope.ATTRIBUTE) != null) {\n var parent = Registry.create(this.statics.scope);\n blot.wrap(parent);\n parent.format(name, value);\n }\n };\n ShadowBlot.prototype.insertAt = function (index, value, def) {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n var ref = this.split(index);\n this.parent.insertBefore(blot, ref);\n };\n ShadowBlot.prototype.insertInto = function (parentBlot, refBlot) {\n if (refBlot === void 0) { refBlot = null; }\n if (this.parent != null) {\n this.parent.children.remove(this);\n }\n var refDomNode = null;\n parentBlot.children.insertBefore(this, refBlot);\n if (refBlot != null) {\n refDomNode = refBlot.domNode;\n }\n if (this.domNode.parentNode != parentBlot.domNode ||\n this.domNode.nextSibling != refDomNode) {\n parentBlot.domNode.insertBefore(this.domNode, refDomNode);\n }\n this.parent = parentBlot;\n this.attach();\n };\n ShadowBlot.prototype.isolate = function (index, length) {\n var target = this.split(index);\n target.split(length);\n return target;\n };\n ShadowBlot.prototype.length = function () {\n return 1;\n };\n ShadowBlot.prototype.offset = function (root) {\n if (root === void 0) { root = this.parent; }\n if (this.parent == null || this == root)\n return 0;\n return this.parent.children.offset(this) + this.parent.offset(root);\n };\n ShadowBlot.prototype.optimize = function (context) {\n // TODO clean up once we use WeakMap\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY] != null) {\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY].mutations;\n }\n };\n ShadowBlot.prototype.remove = function () {\n if (this.domNode.parentNode != null) {\n this.domNode.parentNode.removeChild(this.domNode);\n }\n this.detach();\n };\n ShadowBlot.prototype.replace = function (target) {\n if (target.parent == null)\n return;\n target.parent.insertBefore(this, target.next);\n target.remove();\n };\n ShadowBlot.prototype.replaceWith = function (name, value) {\n var replacement = typeof name === 'string' ? Registry.create(name, value) : name;\n replacement.replace(this);\n return replacement;\n };\n ShadowBlot.prototype.split = function (index, force) {\n return index === 0 ? this : this.next;\n };\n ShadowBlot.prototype.update = function (mutations, context) {\n // Nothing to do by default\n };\n ShadowBlot.prototype.wrap = function (name, value) {\n var wrapper = typeof name === 'string' ? Registry.create(name, value) : name;\n if (this.parent != null) {\n this.parent.insertBefore(wrapper, this.next);\n }\n wrapper.appendChild(this);\n return wrapper;\n };\n ShadowBlot.blotName = 'abstract';\n return ShadowBlot;\n}());\nexports.default = ShadowBlot;\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nvar class_1 = __webpack_require__(32);\nvar style_1 = __webpack_require__(33);\nvar Registry = __webpack_require__(1);\nvar AttributorStore = /** @class */ (function () {\n function AttributorStore(domNode) {\n this.attributes = {};\n this.domNode = domNode;\n this.build();\n }\n AttributorStore.prototype.attribute = function (attribute, value) {\n // verb\n if (value) {\n if (attribute.add(this.domNode, value)) {\n if (attribute.value(this.domNode) != null) {\n this.attributes[attribute.attrName] = attribute;\n }\n else {\n delete this.attributes[attribute.attrName];\n }\n }\n }\n else {\n attribute.remove(this.domNode);\n delete this.attributes[attribute.attrName];\n }\n };\n AttributorStore.prototype.build = function () {\n var _this = this;\n this.attributes = {};\n var attributes = attributor_1.default.keys(this.domNode);\n var classes = class_1.default.keys(this.domNode);\n var styles = style_1.default.keys(this.domNode);\n attributes\n .concat(classes)\n .concat(styles)\n .forEach(function (name) {\n var attr = Registry.query(name, Registry.Scope.ATTRIBUTE);\n if (attr instanceof attributor_1.default) {\n _this.attributes[attr.attrName] = attr;\n }\n });\n };\n AttributorStore.prototype.copy = function (target) {\n var _this = this;\n Object.keys(this.attributes).forEach(function (key) {\n var value = _this.attributes[key].value(_this.domNode);\n target.format(key, value);\n });\n };\n AttributorStore.prototype.move = function (target) {\n var _this = this;\n this.copy(target);\n Object.keys(this.attributes).forEach(function (key) {\n _this.attributes[key].remove(_this.domNode);\n });\n this.attributes = {};\n };\n AttributorStore.prototype.values = function () {\n var _this = this;\n return Object.keys(this.attributes).reduce(function (attributes, name) {\n attributes[name] = _this.attributes[name].value(_this.domNode);\n return attributes;\n }, {});\n };\n return AttributorStore;\n}());\nexports.default = AttributorStore;\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nfunction match(node, prefix) {\n var className = node.getAttribute('class') || '';\n return className.split(/\\s+/).filter(function (name) {\n return name.indexOf(prefix + \"-\") === 0;\n });\n}\nvar ClassAttributor = /** @class */ (function (_super) {\n __extends(ClassAttributor, _super);\n function ClassAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ClassAttributor.keys = function (node) {\n return (node.getAttribute('class') || '').split(/\\s+/).map(function (name) {\n return name\n .split('-')\n .slice(0, -1)\n .join('-');\n });\n };\n ClassAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n this.remove(node);\n node.classList.add(this.keyName + \"-\" + value);\n return true;\n };\n ClassAttributor.prototype.remove = function (node) {\n var matches = match(node, this.keyName);\n matches.forEach(function (name) {\n node.classList.remove(name);\n });\n if (node.classList.length === 0) {\n node.removeAttribute('class');\n }\n };\n ClassAttributor.prototype.value = function (node) {\n var result = match(node, this.keyName)[0] || '';\n var value = result.slice(this.keyName.length + 1); // +1 for hyphen\n return this.canAdd(node, value) ? value : '';\n };\n return ClassAttributor;\n}(attributor_1.default));\nexports.default = ClassAttributor;\n\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nfunction camelize(name) {\n var parts = name.split('-');\n var rest = parts\n .slice(1)\n .map(function (part) {\n return part[0].toUpperCase() + part.slice(1);\n })\n .join('');\n return parts[0] + rest;\n}\nvar StyleAttributor = /** @class */ (function (_super) {\n __extends(StyleAttributor, _super);\n function StyleAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StyleAttributor.keys = function (node) {\n return (node.getAttribute('style') || '').split(';').map(function (value) {\n var arr = value.split(':');\n return arr[0].trim();\n });\n };\n StyleAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n // @ts-ignore\n node.style[camelize(this.keyName)] = value;\n return true;\n };\n StyleAttributor.prototype.remove = function (node) {\n // @ts-ignore\n node.style[camelize(this.keyName)] = '';\n if (!node.getAttribute('style')) {\n node.removeAttribute('style');\n }\n };\n StyleAttributor.prototype.value = function (node) {\n // @ts-ignore\n var value = node.style[camelize(this.keyName)];\n return this.canAdd(node, value) ? value : '';\n };\n return StyleAttributor;\n}(attributor_1.default));\nexports.default = StyleAttributor;\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Theme = function () {\n function Theme(quill, options) {\n _classCallCheck(this, Theme);\n\n this.quill = quill;\n this.options = options;\n this.modules = {};\n }\n\n _createClass(Theme, [{\n key: 'init',\n value: function init() {\n var _this = this;\n\n Object.keys(this.options.modules).forEach(function (name) {\n if (_this.modules[name] == null) {\n _this.addModule(name);\n }\n });\n }\n }, {\n key: 'addModule',\n value: function addModule(name) {\n var moduleClass = this.quill.constructor.import('modules/' + name);\n this.modules[name] = new moduleClass(this.quill, this.options.modules[name] || {});\n return this.modules[name];\n }\n }]);\n\n return Theme;\n}();\n\nTheme.DEFAULTS = {\n modules: {}\n};\nTheme.themes = {\n 'default': Theme\n};\n\nexports.default = Theme;\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar GUARD_TEXT = '\\uFEFF';\n\nvar Embed = function (_Parchment$Embed) {\n _inherits(Embed, _Parchment$Embed);\n\n function Embed(node) {\n _classCallCheck(this, Embed);\n\n var _this = _possibleConstructorReturn(this, (Embed.__proto__ || Object.getPrototypeOf(Embed)).call(this, node));\n\n _this.contentNode = document.createElement('span');\n _this.contentNode.setAttribute('contenteditable', false);\n [].slice.call(_this.domNode.childNodes).forEach(function (childNode) {\n _this.contentNode.appendChild(childNode);\n });\n _this.leftGuard = document.createTextNode(GUARD_TEXT);\n _this.rightGuard = document.createTextNode(GUARD_TEXT);\n _this.domNode.appendChild(_this.leftGuard);\n _this.domNode.appendChild(_this.contentNode);\n _this.domNode.appendChild(_this.rightGuard);\n return _this;\n }\n\n _createClass(Embed, [{\n key: 'index',\n value: function index(node, offset) {\n if (node === this.leftGuard) return 0;\n if (node === this.rightGuard) return 1;\n return _get(Embed.prototype.__proto__ || Object.getPrototypeOf(Embed.prototype), 'index', this).call(this, node, offset);\n }\n }, {\n key: 'restore',\n value: function restore(node) {\n var range = void 0,\n textNode = void 0;\n var text = node.data.split(GUARD_TEXT).join('');\n if (node === this.leftGuard) {\n if (this.prev instanceof _text2.default) {\n var prevLength = this.prev.length();\n this.prev.insertAt(prevLength, text);\n range = {\n startNode: this.prev.domNode,\n startOffset: prevLength + text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(_parchment2.default.create(textNode), this);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n } else if (node === this.rightGuard) {\n if (this.next instanceof _text2.default) {\n this.next.insertAt(0, text);\n range = {\n startNode: this.next.domNode,\n startOffset: text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(_parchment2.default.create(textNode), this.next);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n }\n node.data = GUARD_TEXT;\n return range;\n }\n }, {\n key: 'update',\n value: function update(mutations, context) {\n var _this2 = this;\n\n mutations.forEach(function (mutation) {\n if (mutation.type === 'characterData' && (mutation.target === _this2.leftGuard || mutation.target === _this2.rightGuard)) {\n var range = _this2.restore(mutation.target);\n if (range) context.range = range;\n }\n });\n }\n }]);\n\n return Embed;\n}(_parchment2.default.Embed);\n\nexports.default = Embed;\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AlignStyle = exports.AlignClass = exports.AlignAttribute = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar config = {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: ['right', 'center', 'justify']\n};\n\nvar AlignAttribute = new _parchment2.default.Attributor.Attribute('align', 'align', config);\nvar AlignClass = new _parchment2.default.Attributor.Class('align', 'ql-align', config);\nvar AlignStyle = new _parchment2.default.Attributor.Style('align', 'text-align', config);\n\nexports.AlignAttribute = AlignAttribute;\nexports.AlignClass = AlignClass;\nexports.AlignStyle = AlignStyle;\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BackgroundStyle = exports.BackgroundClass = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _color = __webpack_require__(26);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar BackgroundClass = new _parchment2.default.Attributor.Class('background', 'ql-bg', {\n scope: _parchment2.default.Scope.INLINE\n});\nvar BackgroundStyle = new _color.ColorAttributor('background', 'background-color', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nexports.BackgroundClass = BackgroundClass;\nexports.BackgroundStyle = BackgroundStyle;\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DirectionStyle = exports.DirectionClass = exports.DirectionAttribute = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar config = {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: ['rtl']\n};\n\nvar DirectionAttribute = new _parchment2.default.Attributor.Attribute('direction', 'dir', config);\nvar DirectionClass = new _parchment2.default.Attributor.Class('direction', 'ql-direction', config);\nvar DirectionStyle = new _parchment2.default.Attributor.Style('direction', 'direction', config);\n\nexports.DirectionAttribute = DirectionAttribute;\nexports.DirectionClass = DirectionClass;\nexports.DirectionStyle = DirectionStyle;\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FontClass = exports.FontStyle = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar config = {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['serif', 'monospace']\n};\n\nvar FontClass = new _parchment2.default.Attributor.Class('font', 'ql-font', config);\n\nvar FontStyleAttributor = function (_Parchment$Attributor) {\n _inherits(FontStyleAttributor, _Parchment$Attributor);\n\n function FontStyleAttributor() {\n _classCallCheck(this, FontStyleAttributor);\n\n return _possibleConstructorReturn(this, (FontStyleAttributor.__proto__ || Object.getPrototypeOf(FontStyleAttributor)).apply(this, arguments));\n }\n\n _createClass(FontStyleAttributor, [{\n key: 'value',\n value: function value(node) {\n return _get(FontStyleAttributor.prototype.__proto__ || Object.getPrototypeOf(FontStyleAttributor.prototype), 'value', this).call(this, node).replace(/[\"']/g, '');\n }\n }]);\n\n return FontStyleAttributor;\n}(_parchment2.default.Attributor.Style);\n\nvar FontStyle = new FontStyleAttributor('font', 'font-family', config);\n\nexports.FontStyle = FontStyle;\nexports.FontClass = FontClass;\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SizeStyle = exports.SizeClass = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SizeClass = new _parchment2.default.Attributor.Class('size', 'ql-size', {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['small', 'large', 'huge']\n});\nvar SizeStyle = new _parchment2.default.Attributor.Style('size', 'font-size', {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['10px', '18px', '32px']\n});\n\nexports.SizeClass = SizeClass;\nexports.SizeStyle = SizeStyle;\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = {\n 'align': {\n '': __webpack_require__(76),\n 'center': __webpack_require__(77),\n 'right': __webpack_require__(78),\n 'justify': __webpack_require__(79)\n },\n 'background': __webpack_require__(80),\n 'blockquote': __webpack_require__(81),\n 'bold': __webpack_require__(82),\n 'clean': __webpack_require__(83),\n 'code': __webpack_require__(58),\n 'code-block': __webpack_require__(58),\n 'color': __webpack_require__(84),\n 'direction': {\n '': __webpack_require__(85),\n 'rtl': __webpack_require__(86)\n },\n 'float': {\n 'center': __webpack_require__(87),\n 'full': __webpack_require__(88),\n 'left': __webpack_require__(89),\n 'right': __webpack_require__(90)\n },\n 'formula': __webpack_require__(91),\n 'header': {\n '1': __webpack_require__(92),\n '2': __webpack_require__(93)\n },\n 'italic': __webpack_require__(94),\n 'image': __webpack_require__(95),\n 'indent': {\n '+1': __webpack_require__(96),\n '-1': __webpack_require__(97)\n },\n 'link': __webpack_require__(98),\n 'list': {\n 'ordered': __webpack_require__(99),\n 'bullet': __webpack_require__(100),\n 'check': __webpack_require__(101)\n },\n 'script': {\n 'sub': __webpack_require__(102),\n 'super': __webpack_require__(103)\n },\n 'strike': __webpack_require__(104),\n 'underline': __webpack_require__(105),\n 'video': __webpack_require__(106)\n};\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getLastChangeIndex = exports.default = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar History = function (_Module) {\n _inherits(History, _Module);\n\n function History(quill, options) {\n _classCallCheck(this, History);\n\n var _this = _possibleConstructorReturn(this, (History.__proto__ || Object.getPrototypeOf(History)).call(this, quill, options));\n\n _this.lastRecorded = 0;\n _this.ignoreChange = false;\n _this.clear();\n _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (eventName, delta, oldDelta, source) {\n if (eventName !== _quill2.default.events.TEXT_CHANGE || _this.ignoreChange) return;\n if (!_this.options.userOnly || source === _quill2.default.sources.USER) {\n _this.record(delta, oldDelta);\n } else {\n _this.transform(delta);\n }\n });\n _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true }, _this.undo.bind(_this));\n _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true, shiftKey: true }, _this.redo.bind(_this));\n if (/Win/i.test(navigator.platform)) {\n _this.quill.keyboard.addBinding({ key: 'Y', shortKey: true }, _this.redo.bind(_this));\n }\n return _this;\n }\n\n _createClass(History, [{\n key: 'change',\n value: function change(source, dest) {\n if (this.stack[source].length === 0) return;\n var delta = this.stack[source].pop();\n this.stack[dest].push(delta);\n this.lastRecorded = 0;\n this.ignoreChange = true;\n this.quill.updateContents(delta[source], _quill2.default.sources.USER);\n this.ignoreChange = false;\n var index = getLastChangeIndex(delta[source]);\n this.quill.setSelection(index);\n }\n }, {\n key: 'clear',\n value: function clear() {\n this.stack = { undo: [], redo: [] };\n }\n }, {\n key: 'cutoff',\n value: function cutoff() {\n this.lastRecorded = 0;\n }\n }, {\n key: 'record',\n value: function record(changeDelta, oldDelta) {\n if (changeDelta.ops.length === 0) return;\n this.stack.redo = [];\n var undoDelta = this.quill.getContents().diff(oldDelta);\n var timestamp = Date.now();\n if (this.lastRecorded + this.options.delay > timestamp && this.stack.undo.length > 0) {\n var delta = this.stack.undo.pop();\n undoDelta = undoDelta.compose(delta.undo);\n changeDelta = delta.redo.compose(changeDelta);\n } else {\n this.lastRecorded = timestamp;\n }\n this.stack.undo.push({\n redo: changeDelta,\n undo: undoDelta\n });\n if (this.stack.undo.length > this.options.maxStack) {\n this.stack.undo.shift();\n }\n }\n }, {\n key: 'redo',\n value: function redo() {\n this.change('redo', 'undo');\n }\n }, {\n key: 'transform',\n value: function transform(delta) {\n this.stack.undo.forEach(function (change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n this.stack.redo.forEach(function (change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n }\n }, {\n key: 'undo',\n value: function undo() {\n this.change('undo', 'redo');\n }\n }]);\n\n return History;\n}(_module2.default);\n\nHistory.DEFAULTS = {\n delay: 1000,\n maxStack: 100,\n userOnly: false\n};\n\nfunction endsWithNewlineChange(delta) {\n var lastOp = delta.ops[delta.ops.length - 1];\n if (lastOp == null) return false;\n if (lastOp.insert != null) {\n return typeof lastOp.insert === 'string' && lastOp.insert.endsWith('\\n');\n }\n if (lastOp.attributes != null) {\n return Object.keys(lastOp.attributes).some(function (attr) {\n return _parchment2.default.query(attr, _parchment2.default.Scope.BLOCK) != null;\n });\n }\n return false;\n}\n\nfunction getLastChangeIndex(delta) {\n var deleteLength = delta.reduce(function (length, op) {\n length += op.delete || 0;\n return length;\n }, 0);\n var changeIndex = delta.length() - deleteLength;\n if (endsWithNewlineChange(delta)) {\n changeIndex -= 1;\n }\n return changeIndex;\n}\n\nexports.default = History;\nexports.getLastChangeIndex = getLastChangeIndex;\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BaseTooltip = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nvar _theme = __webpack_require__(34);\n\nvar _theme2 = _interopRequireDefault(_theme);\n\nvar _colorPicker = __webpack_require__(59);\n\nvar _colorPicker2 = _interopRequireDefault(_colorPicker);\n\nvar _iconPicker = __webpack_require__(60);\n\nvar _iconPicker2 = _interopRequireDefault(_iconPicker);\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nvar _tooltip = __webpack_require__(61);\n\nvar _tooltip2 = _interopRequireDefault(_tooltip);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ALIGNS = [false, 'center', 'right', 'justify'];\n\nvar COLORS = [\"#000000\", \"#e60000\", \"#ff9900\", \"#ffff00\", \"#008a00\", \"#0066cc\", \"#9933ff\", \"#ffffff\", \"#facccc\", \"#ffebcc\", \"#ffffcc\", \"#cce8cc\", \"#cce0f5\", \"#ebd6ff\", \"#bbbbbb\", \"#f06666\", \"#ffc266\", \"#ffff66\", \"#66b966\", \"#66a3e0\", \"#c285ff\", \"#888888\", \"#a10000\", \"#b26b00\", \"#b2b200\", \"#006100\", \"#0047b2\", \"#6b24b2\", \"#444444\", \"#5c0000\", \"#663d00\", \"#666600\", \"#003700\", \"#002966\", \"#3d1466\"];\n\nvar FONTS = [false, 'serif', 'monospace'];\n\nvar HEADERS = ['1', '2', '3', false];\n\nvar SIZES = ['small', false, 'large', 'huge'];\n\nvar BaseTheme = function (_Theme) {\n _inherits(BaseTheme, _Theme);\n\n function BaseTheme(quill, options) {\n _classCallCheck(this, BaseTheme);\n\n var _this = _possibleConstructorReturn(this, (BaseTheme.__proto__ || Object.getPrototypeOf(BaseTheme)).call(this, quill, options));\n\n var listener = function listener(e) {\n if (!document.body.contains(quill.root)) {\n return document.body.removeEventListener('click', listener);\n }\n if (_this.tooltip != null && !_this.tooltip.root.contains(e.target) && document.activeElement !== _this.tooltip.textbox && !_this.quill.hasFocus()) {\n _this.tooltip.hide();\n }\n if (_this.pickers != null) {\n _this.pickers.forEach(function (picker) {\n if (!picker.container.contains(e.target)) {\n picker.close();\n }\n });\n }\n };\n quill.emitter.listenDOM('click', document.body, listener);\n return _this;\n }\n\n _createClass(BaseTheme, [{\n key: 'addModule',\n value: function addModule(name) {\n var module = _get(BaseTheme.prototype.__proto__ || Object.getPrototypeOf(BaseTheme.prototype), 'addModule', this).call(this, name);\n if (name === 'toolbar') {\n this.extendToolbar(module);\n }\n return module;\n }\n }, {\n key: 'buildButtons',\n value: function buildButtons(buttons, icons) {\n buttons.forEach(function (button) {\n var className = button.getAttribute('class') || '';\n className.split(/\\s+/).forEach(function (name) {\n if (!name.startsWith('ql-')) return;\n name = name.slice('ql-'.length);\n if (icons[name] == null) return;\n if (name === 'direction') {\n button.innerHTML = icons[name][''] + icons[name]['rtl'];\n } else if (typeof icons[name] === 'string') {\n button.innerHTML = icons[name];\n } else {\n var value = button.value || '';\n if (value != null && icons[name][value]) {\n button.innerHTML = icons[name][value];\n }\n }\n });\n });\n }\n }, {\n key: 'buildPickers',\n value: function buildPickers(selects, icons) {\n var _this2 = this;\n\n this.pickers = selects.map(function (select) {\n if (select.classList.contains('ql-align')) {\n if (select.querySelector('option') == null) {\n fillSelect(select, ALIGNS);\n }\n return new _iconPicker2.default(select, icons.align);\n } else if (select.classList.contains('ql-background') || select.classList.contains('ql-color')) {\n var format = select.classList.contains('ql-background') ? 'background' : 'color';\n if (select.querySelector('option') == null) {\n fillSelect(select, COLORS, format === 'background' ? '#ffffff' : '#000000');\n }\n return new _colorPicker2.default(select, icons[format]);\n } else {\n if (select.querySelector('option') == null) {\n if (select.classList.contains('ql-font')) {\n fillSelect(select, FONTS);\n } else if (select.classList.contains('ql-header')) {\n fillSelect(select, HEADERS);\n } else if (select.classList.contains('ql-size')) {\n fillSelect(select, SIZES);\n }\n }\n return new _picker2.default(select);\n }\n });\n var update = function update() {\n _this2.pickers.forEach(function (picker) {\n picker.update();\n });\n };\n this.quill.on(_emitter2.default.events.EDITOR_CHANGE, update);\n }\n }]);\n\n return BaseTheme;\n}(_theme2.default);\n\nBaseTheme.DEFAULTS = (0, _extend2.default)(true, {}, _theme2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n formula: function formula() {\n this.quill.theme.tooltip.edit('formula');\n },\n image: function image() {\n var _this3 = this;\n\n var fileInput = this.container.querySelector('input.ql-image[type=file]');\n if (fileInput == null) {\n fileInput = document.createElement('input');\n fileInput.setAttribute('type', 'file');\n fileInput.setAttribute('accept', 'image/png, image/gif, image/jpeg, image/bmp, image/x-icon');\n fileInput.classList.add('ql-image');\n fileInput.addEventListener('change', function () {\n if (fileInput.files != null && fileInput.files[0] != null) {\n var reader = new FileReader();\n reader.onload = function (e) {\n var range = _this3.quill.getSelection(true);\n _this3.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert({ image: e.target.result }), _emitter2.default.sources.USER);\n _this3.quill.setSelection(range.index + 1, _emitter2.default.sources.SILENT);\n fileInput.value = \"\";\n };\n reader.readAsDataURL(fileInput.files[0]);\n }\n });\n this.container.appendChild(fileInput);\n }\n fileInput.click();\n },\n video: function video() {\n this.quill.theme.tooltip.edit('video');\n }\n }\n }\n }\n});\n\nvar BaseTooltip = function (_Tooltip) {\n _inherits(BaseTooltip, _Tooltip);\n\n function BaseTooltip(quill, boundsContainer) {\n _classCallCheck(this, BaseTooltip);\n\n var _this4 = _possibleConstructorReturn(this, (BaseTooltip.__proto__ || Object.getPrototypeOf(BaseTooltip)).call(this, quill, boundsContainer));\n\n _this4.textbox = _this4.root.querySelector('input[type=\"text\"]');\n _this4.listen();\n return _this4;\n }\n\n _createClass(BaseTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this5 = this;\n\n this.textbox.addEventListener('keydown', function (event) {\n if (_keyboard2.default.match(event, 'enter')) {\n _this5.save();\n event.preventDefault();\n } else if (_keyboard2.default.match(event, 'escape')) {\n _this5.cancel();\n event.preventDefault();\n }\n });\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n this.hide();\n }\n }, {\n key: 'edit',\n value: function edit() {\n var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'link';\n var preview = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n this.root.classList.remove('ql-hidden');\n this.root.classList.add('ql-editing');\n if (preview != null) {\n this.textbox.value = preview;\n } else if (mode !== this.root.getAttribute('data-mode')) {\n this.textbox.value = '';\n }\n this.position(this.quill.getBounds(this.quill.selection.savedRange));\n this.textbox.select();\n this.textbox.setAttribute('placeholder', this.textbox.getAttribute('data-' + mode) || '');\n this.root.setAttribute('data-mode', mode);\n }\n }, {\n key: 'restoreFocus',\n value: function restoreFocus() {\n var scrollTop = this.quill.scrollingContainer.scrollTop;\n this.quill.focus();\n this.quill.scrollingContainer.scrollTop = scrollTop;\n }\n }, {\n key: 'save',\n value: function save() {\n var value = this.textbox.value;\n switch (this.root.getAttribute('data-mode')) {\n case 'link':\n {\n var scrollTop = this.quill.root.scrollTop;\n if (this.linkRange) {\n this.quill.formatText(this.linkRange, 'link', value, _emitter2.default.sources.USER);\n delete this.linkRange;\n } else {\n this.restoreFocus();\n this.quill.format('link', value, _emitter2.default.sources.USER);\n }\n this.quill.root.scrollTop = scrollTop;\n break;\n }\n case 'video':\n {\n value = extractVideoUrl(value);\n } // eslint-disable-next-line no-fallthrough\n case 'formula':\n {\n if (!value) break;\n var range = this.quill.getSelection(true);\n if (range != null) {\n var index = range.index + range.length;\n this.quill.insertEmbed(index, this.root.getAttribute('data-mode'), value, _emitter2.default.sources.USER);\n if (this.root.getAttribute('data-mode') === 'formula') {\n this.quill.insertText(index + 1, ' ', _emitter2.default.sources.USER);\n }\n this.quill.setSelection(index + 2, _emitter2.default.sources.USER);\n }\n break;\n }\n default:\n }\n this.textbox.value = '';\n this.hide();\n }\n }]);\n\n return BaseTooltip;\n}(_tooltip2.default);\n\nfunction extractVideoUrl(url) {\n var match = url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtube\\.com\\/watch.*v=([a-zA-Z0-9_-]+)/) || url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtu\\.be\\/([a-zA-Z0-9_-]+)/);\n if (match) {\n return (match[1] || 'https') + '://www.youtube.com/embed/' + match[2] + '?showinfo=0';\n }\n if (match = url.match(/^(?:(https?):\\/\\/)?(?:www\\.)?vimeo\\.com\\/(\\d+)/)) {\n // eslint-disable-line no-cond-assign\n return (match[1] || 'https') + '://player.vimeo.com/video/' + match[2] + '/';\n }\n return url;\n}\n\nfunction fillSelect(select, values) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n values.forEach(function (value) {\n var option = document.createElement('option');\n if (value === defaultValue) {\n option.setAttribute('selected', 'selected');\n } else {\n option.setAttribute('value', value);\n }\n select.appendChild(option);\n });\n}\n\nexports.BaseTooltip = BaseTooltip;\nexports.default = BaseTheme;\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LinkedList = /** @class */ (function () {\n function LinkedList() {\n this.head = this.tail = null;\n this.length = 0;\n }\n LinkedList.prototype.append = function () {\n var nodes = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nodes[_i] = arguments[_i];\n }\n this.insertBefore(nodes[0], null);\n if (nodes.length > 1) {\n this.append.apply(this, nodes.slice(1));\n }\n };\n LinkedList.prototype.contains = function (node) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n if (cur === node)\n return true;\n }\n return false;\n };\n LinkedList.prototype.insertBefore = function (node, refNode) {\n if (!node)\n return;\n node.next = refNode;\n if (refNode != null) {\n node.prev = refNode.prev;\n if (refNode.prev != null) {\n refNode.prev.next = node;\n }\n refNode.prev = node;\n if (refNode === this.head) {\n this.head = node;\n }\n }\n else if (this.tail != null) {\n this.tail.next = node;\n node.prev = this.tail;\n this.tail = node;\n }\n else {\n node.prev = null;\n this.head = this.tail = node;\n }\n this.length += 1;\n };\n LinkedList.prototype.offset = function (target) {\n var index = 0, cur = this.head;\n while (cur != null) {\n if (cur === target)\n return index;\n index += cur.length();\n cur = cur.next;\n }\n return -1;\n };\n LinkedList.prototype.remove = function (node) {\n if (!this.contains(node))\n return;\n if (node.prev != null)\n node.prev.next = node.next;\n if (node.next != null)\n node.next.prev = node.prev;\n if (node === this.head)\n this.head = node.next;\n if (node === this.tail)\n this.tail = node.prev;\n this.length -= 1;\n };\n LinkedList.prototype.iterator = function (curNode) {\n if (curNode === void 0) { curNode = this.head; }\n // TODO use yield when we can\n return function () {\n var ret = curNode;\n if (curNode != null)\n curNode = curNode.next;\n return ret;\n };\n };\n LinkedList.prototype.find = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var cur, next = this.iterator();\n while ((cur = next())) {\n var length = cur.length();\n if (index < length ||\n (inclusive && index === length && (cur.next == null || cur.next.length() !== 0))) {\n return [cur, index];\n }\n index -= length;\n }\n return [null, 0];\n };\n LinkedList.prototype.forEach = function (callback) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n callback(cur);\n }\n };\n LinkedList.prototype.forEachAt = function (index, length, callback) {\n if (length <= 0)\n return;\n var _a = this.find(index), startNode = _a[0], offset = _a[1];\n var cur, curIndex = index - offset, next = this.iterator(startNode);\n while ((cur = next()) && curIndex < index + length) {\n var curLength = cur.length();\n if (index > curIndex) {\n callback(cur, index - curIndex, Math.min(length, curIndex + curLength - index));\n }\n else {\n callback(cur, 0, Math.min(curLength, index + length - curIndex));\n }\n curIndex += curLength;\n }\n };\n LinkedList.prototype.map = function (callback) {\n return this.reduce(function (memo, cur) {\n memo.push(callback(cur));\n return memo;\n }, []);\n };\n LinkedList.prototype.reduce = function (callback, memo) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n memo = callback(memo, cur);\n }\n return memo;\n };\n return LinkedList;\n}());\nexports.default = LinkedList;\n\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = __webpack_require__(17);\nvar Registry = __webpack_require__(1);\nvar OBSERVER_CONFIG = {\n attributes: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true,\n};\nvar MAX_OPTIMIZE_ITERATIONS = 100;\nvar ScrollBlot = /** @class */ (function (_super) {\n __extends(ScrollBlot, _super);\n function ScrollBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.scroll = _this;\n _this.observer = new MutationObserver(function (mutations) {\n _this.update(mutations);\n });\n _this.observer.observe(_this.domNode, OBSERVER_CONFIG);\n _this.attach();\n return _this;\n }\n ScrollBlot.prototype.detach = function () {\n _super.prototype.detach.call(this);\n this.observer.disconnect();\n };\n ScrollBlot.prototype.deleteAt = function (index, length) {\n this.update();\n if (index === 0 && length === this.length()) {\n this.children.forEach(function (child) {\n child.remove();\n });\n }\n else {\n _super.prototype.deleteAt.call(this, index, length);\n }\n };\n ScrollBlot.prototype.formatAt = function (index, length, name, value) {\n this.update();\n _super.prototype.formatAt.call(this, index, length, name, value);\n };\n ScrollBlot.prototype.insertAt = function (index, value, def) {\n this.update();\n _super.prototype.insertAt.call(this, index, value, def);\n };\n ScrollBlot.prototype.optimize = function (mutations, context) {\n var _this = this;\n if (mutations === void 0) { mutations = []; }\n if (context === void 0) { context = {}; }\n _super.prototype.optimize.call(this, context);\n // We must modify mutations directly, cannot make copy and then modify\n var records = [].slice.call(this.observer.takeRecords());\n // Array.push currently seems to be implemented by a non-tail recursive function\n // so we cannot just mutations.push.apply(mutations, this.observer.takeRecords());\n while (records.length > 0)\n mutations.push(records.pop());\n // TODO use WeakMap\n var mark = function (blot, markParent) {\n if (markParent === void 0) { markParent = true; }\n if (blot == null || blot === _this)\n return;\n if (blot.domNode.parentNode == null)\n return;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [];\n }\n if (markParent)\n mark(blot.parent);\n };\n var optimize = function (blot) {\n // Post-order traversal\n if (\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY] == null ||\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations == null) {\n return;\n }\n if (blot instanceof container_1.default) {\n blot.children.forEach(optimize);\n }\n blot.optimize(context);\n };\n var remaining = mutations;\n for (var i = 0; remaining.length > 0; i += 1) {\n if (i >= MAX_OPTIMIZE_ITERATIONS) {\n throw new Error('[Parchment] Maximum optimize iterations reached');\n }\n remaining.forEach(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return;\n if (blot.domNode === mutation.target) {\n if (mutation.type === 'childList') {\n mark(Registry.find(mutation.previousSibling, false));\n [].forEach.call(mutation.addedNodes, function (node) {\n var child = Registry.find(node, false);\n mark(child, false);\n if (child instanceof container_1.default) {\n child.children.forEach(function (grandChild) {\n mark(grandChild, false);\n });\n }\n });\n }\n else if (mutation.type === 'attributes') {\n mark(blot.prev);\n }\n }\n mark(blot);\n });\n this.children.forEach(optimize);\n remaining = [].slice.call(this.observer.takeRecords());\n records = remaining.slice();\n while (records.length > 0)\n mutations.push(records.pop());\n }\n };\n ScrollBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (context === void 0) { context = {}; }\n mutations = mutations || this.observer.takeRecords();\n // TODO use WeakMap\n mutations\n .map(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return null;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [mutation];\n return blot;\n }\n else {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations.push(mutation);\n return null;\n }\n })\n .forEach(function (blot) {\n if (blot == null ||\n blot === _this ||\n //@ts-ignore\n blot.domNode[Registry.DATA_KEY] == null)\n return;\n // @ts-ignore\n blot.update(blot.domNode[Registry.DATA_KEY].mutations || [], context);\n });\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY].mutations != null) {\n // @ts-ignore\n _super.prototype.update.call(this, this.domNode[Registry.DATA_KEY].mutations, context);\n }\n this.optimize(mutations, context);\n };\n ScrollBlot.blotName = 'scroll';\n ScrollBlot.defaultChild = 'block';\n ScrollBlot.scope = Registry.Scope.BLOCK_BLOT;\n ScrollBlot.tagName = 'DIV';\n return ScrollBlot;\n}(container_1.default));\nexports.default = ScrollBlot;\n\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = __webpack_require__(18);\nvar Registry = __webpack_require__(1);\n// Shallow object comparison\nfunction isEqual(obj1, obj2) {\n if (Object.keys(obj1).length !== Object.keys(obj2).length)\n return false;\n // @ts-ignore\n for (var prop in obj1) {\n // @ts-ignore\n if (obj1[prop] !== obj2[prop])\n return false;\n }\n return true;\n}\nvar InlineBlot = /** @class */ (function (_super) {\n __extends(InlineBlot, _super);\n function InlineBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n InlineBlot.formats = function (domNode) {\n if (domNode.tagName === InlineBlot.tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n InlineBlot.prototype.format = function (name, value) {\n var _this = this;\n if (name === this.statics.blotName && !value) {\n this.children.forEach(function (child) {\n if (!(child instanceof format_1.default)) {\n child = child.wrap(InlineBlot.blotName, true);\n }\n _this.attributes.copy(child);\n });\n this.unwrap();\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n InlineBlot.prototype.formatAt = function (index, length, name, value) {\n if (this.formats()[name] != null || Registry.query(name, Registry.Scope.ATTRIBUTE)) {\n var blot = this.isolate(index, length);\n blot.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n InlineBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n var formats = this.formats();\n if (Object.keys(formats).length === 0) {\n return this.unwrap(); // unformatted span\n }\n var next = this.next;\n if (next instanceof InlineBlot && next.prev === this && isEqual(formats, next.formats())) {\n next.moveChildren(this);\n next.remove();\n }\n };\n InlineBlot.blotName = 'inline';\n InlineBlot.scope = Registry.Scope.INLINE_BLOT;\n InlineBlot.tagName = 'SPAN';\n return InlineBlot;\n}(format_1.default));\nexports.default = InlineBlot;\n\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = __webpack_require__(18);\nvar Registry = __webpack_require__(1);\nvar BlockBlot = /** @class */ (function (_super) {\n __extends(BlockBlot, _super);\n function BlockBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BlockBlot.formats = function (domNode) {\n var tagName = Registry.query(BlockBlot.blotName).tagName;\n if (domNode.tagName === tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n BlockBlot.prototype.format = function (name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) == null) {\n return;\n }\n else if (name === this.statics.blotName && !value) {\n this.replaceWith(BlockBlot.blotName);\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n BlockBlot.prototype.formatAt = function (index, length, name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) != null) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n BlockBlot.prototype.insertAt = function (index, value, def) {\n if (def == null || Registry.query(value, Registry.Scope.INLINE) != null) {\n // Insert text or inline\n _super.prototype.insertAt.call(this, index, value, def);\n }\n else {\n var after = this.split(index);\n var blot = Registry.create(value, def);\n after.parent.insertBefore(blot, after);\n }\n };\n BlockBlot.prototype.update = function (mutations, context) {\n if (navigator.userAgent.match(/Trident/)) {\n this.build();\n }\n else {\n _super.prototype.update.call(this, mutations, context);\n }\n };\n BlockBlot.blotName = 'block';\n BlockBlot.scope = Registry.Scope.BLOCK_BLOT;\n BlockBlot.tagName = 'P';\n return BlockBlot;\n}(format_1.default));\nexports.default = BlockBlot;\n\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = __webpack_require__(19);\nvar EmbedBlot = /** @class */ (function (_super) {\n __extends(EmbedBlot, _super);\n function EmbedBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n EmbedBlot.formats = function (domNode) {\n return undefined;\n };\n EmbedBlot.prototype.format = function (name, value) {\n // super.formatAt wraps, which is what we want in general,\n // but this allows subclasses to overwrite for formats\n // that just apply to particular embeds\n _super.prototype.formatAt.call(this, 0, this.length(), name, value);\n };\n EmbedBlot.prototype.formatAt = function (index, length, name, value) {\n if (index === 0 && length === this.length()) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n EmbedBlot.prototype.formats = function () {\n return this.statics.formats(this.domNode);\n };\n return EmbedBlot;\n}(leaf_1.default));\nexports.default = EmbedBlot;\n\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = __webpack_require__(19);\nvar Registry = __webpack_require__(1);\nvar TextBlot = /** @class */ (function (_super) {\n __extends(TextBlot, _super);\n function TextBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.text = _this.statics.value(_this.domNode);\n return _this;\n }\n TextBlot.create = function (value) {\n return document.createTextNode(value);\n };\n TextBlot.value = function (domNode) {\n var text = domNode.data;\n // @ts-ignore\n if (text['normalize'])\n text = text['normalize']();\n return text;\n };\n TextBlot.prototype.deleteAt = function (index, length) {\n this.domNode.data = this.text = this.text.slice(0, index) + this.text.slice(index + length);\n };\n TextBlot.prototype.index = function (node, offset) {\n if (this.domNode === node) {\n return offset;\n }\n return -1;\n };\n TextBlot.prototype.insertAt = function (index, value, def) {\n if (def == null) {\n this.text = this.text.slice(0, index) + value + this.text.slice(index);\n this.domNode.data = this.text;\n }\n else {\n _super.prototype.insertAt.call(this, index, value, def);\n }\n };\n TextBlot.prototype.length = function () {\n return this.text.length;\n };\n TextBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n this.text = this.statics.value(this.domNode);\n if (this.text.length === 0) {\n this.remove();\n }\n else if (this.next instanceof TextBlot && this.next.prev === this) {\n this.insertAt(this.length(), this.next.value());\n this.next.remove();\n }\n };\n TextBlot.prototype.position = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n return [this.domNode, index];\n };\n TextBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = Registry.create(this.domNode.splitText(index));\n this.parent.insertBefore(after, this.next);\n this.text = this.statics.value(this.domNode);\n return after;\n };\n TextBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this.domNode;\n })) {\n this.text = this.statics.value(this.domNode);\n }\n };\n TextBlot.prototype.value = function () {\n return this.text;\n };\n TextBlot.blotName = 'text';\n TextBlot.scope = Registry.Scope.INLINE_BLOT;\n return TextBlot;\n}(leaf_1.default));\nexports.default = TextBlot;\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar elem = document.createElement('div');\nelem.classList.toggle('test-class', false);\nif (elem.classList.contains('test-class')) {\n var _toggle = DOMTokenList.prototype.toggle;\n DOMTokenList.prototype.toggle = function (token, force) {\n if (arguments.length > 1 && !this.contains(token) === !force) {\n return force;\n } else {\n return _toggle.call(this, token);\n }\n };\n}\n\nif (!String.prototype.startsWith) {\n String.prototype.startsWith = function (searchString, position) {\n position = position || 0;\n return this.substr(position, searchString.length) === searchString;\n };\n}\n\nif (!String.prototype.endsWith) {\n String.prototype.endsWith = function (searchString, position) {\n var subjectString = this.toString();\n if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) {\n position = subjectString.length;\n }\n position -= searchString.length;\n var lastIndex = subjectString.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n };\n}\n\nif (!Array.prototype.find) {\n Object.defineProperty(Array.prototype, \"find\", {\n value: function value(predicate) {\n if (this === null) {\n throw new TypeError('Array.prototype.find called on null or undefined');\n }\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function');\n }\n var list = Object(this);\n var length = list.length >>> 0;\n var thisArg = arguments[1];\n var value;\n\n for (var i = 0; i < length; i++) {\n value = list[i];\n if (predicate.call(thisArg, value, i, list)) {\n return value;\n }\n }\n return undefined;\n }\n });\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n // Disable resizing in Firefox\n document.execCommand(\"enableObjectResizing\", false, false);\n // Disable automatic linkifying in IE11\n document.execCommand(\"autoUrlDetect\", false, false);\n});\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports) {\n\n/**\n * This library modifies the diff-patch-match library by Neil Fraser\n * by removing the patch and match functionality and certain advanced\n * options in the diff function. The original license is as follows:\n *\n * ===\n *\n * Diff Match and Patch\n *\n * Copyright 2006 Google Inc.\n * http://code.google.com/p/google-diff-match-patch/\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n/**\n * The data structure representing a diff is an array of tuples:\n * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']]\n * which means: delete 'Hello', add 'Goodbye' and keep ' world.'\n */\nvar DIFF_DELETE = -1;\nvar DIFF_INSERT = 1;\nvar DIFF_EQUAL = 0;\n\n\n/**\n * Find the differences between two texts. Simplifies the problem by stripping\n * any common prefix or suffix off the texts before diffing.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {Int} cursor_pos Expected edit position in text1 (optional)\n * @return {Array} Array of diff tuples.\n */\nfunction diff_main(text1, text2, cursor_pos) {\n // Check for equality (speedup).\n if (text1 == text2) {\n if (text1) {\n return [[DIFF_EQUAL, text1]];\n }\n return [];\n }\n\n // Check cursor_pos within bounds\n if (cursor_pos < 0 || text1.length < cursor_pos) {\n cursor_pos = null;\n }\n\n // Trim off common prefix (speedup).\n var commonlength = diff_commonPrefix(text1, text2);\n var commonprefix = text1.substring(0, commonlength);\n text1 = text1.substring(commonlength);\n text2 = text2.substring(commonlength);\n\n // Trim off common suffix (speedup).\n commonlength = diff_commonSuffix(text1, text2);\n var commonsuffix = text1.substring(text1.length - commonlength);\n text1 = text1.substring(0, text1.length - commonlength);\n text2 = text2.substring(0, text2.length - commonlength);\n\n // Compute the diff on the middle block.\n var diffs = diff_compute_(text1, text2);\n\n // Restore the prefix and suffix.\n if (commonprefix) {\n diffs.unshift([DIFF_EQUAL, commonprefix]);\n }\n if (commonsuffix) {\n diffs.push([DIFF_EQUAL, commonsuffix]);\n }\n diff_cleanupMerge(diffs);\n if (cursor_pos != null) {\n diffs = fix_cursor(diffs, cursor_pos);\n }\n diffs = fix_emoji(diffs);\n return diffs;\n};\n\n\n/**\n * Find the differences between two texts. Assumes that the texts do not\n * have any common prefix or suffix.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_compute_(text1, text2) {\n var diffs;\n\n if (!text1) {\n // Just add some text (speedup).\n return [[DIFF_INSERT, text2]];\n }\n\n if (!text2) {\n // Just delete some text (speedup).\n return [[DIFF_DELETE, text1]];\n }\n\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n var i = longtext.indexOf(shorttext);\n if (i != -1) {\n // Shorter text is inside the longer text (speedup).\n diffs = [[DIFF_INSERT, longtext.substring(0, i)],\n [DIFF_EQUAL, shorttext],\n [DIFF_INSERT, longtext.substring(i + shorttext.length)]];\n // Swap insertions for deletions if diff is reversed.\n if (text1.length > text2.length) {\n diffs[0][0] = diffs[2][0] = DIFF_DELETE;\n }\n return diffs;\n }\n\n if (shorttext.length == 1) {\n // Single character string.\n // After the previous speedup, the character can't be an equality.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n }\n\n // Check to see if the problem can be split in two.\n var hm = diff_halfMatch_(text1, text2);\n if (hm) {\n // A half-match was found, sort out the return data.\n var text1_a = hm[0];\n var text1_b = hm[1];\n var text2_a = hm[2];\n var text2_b = hm[3];\n var mid_common = hm[4];\n // Send both pairs off for separate processing.\n var diffs_a = diff_main(text1_a, text2_a);\n var diffs_b = diff_main(text1_b, text2_b);\n // Merge the results.\n return diffs_a.concat([[DIFF_EQUAL, mid_common]], diffs_b);\n }\n\n return diff_bisect_(text1, text2);\n};\n\n\n/**\n * Find the 'middle snake' of a diff, split the problem in two\n * and return the recursively constructed diff.\n * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n * @private\n */\nfunction diff_bisect_(text1, text2) {\n // Cache the text lengths to prevent multiple calls.\n var text1_length = text1.length;\n var text2_length = text2.length;\n var max_d = Math.ceil((text1_length + text2_length) / 2);\n var v_offset = max_d;\n var v_length = 2 * max_d;\n var v1 = new Array(v_length);\n var v2 = new Array(v_length);\n // Setting all elements to -1 is faster in Chrome & Firefox than mixing\n // integers and undefined.\n for (var x = 0; x < v_length; x++) {\n v1[x] = -1;\n v2[x] = -1;\n }\n v1[v_offset + 1] = 0;\n v2[v_offset + 1] = 0;\n var delta = text1_length - text2_length;\n // If the total number of characters is odd, then the front path will collide\n // with the reverse path.\n var front = (delta % 2 != 0);\n // Offsets for start and end of k loop.\n // Prevents mapping of space beyond the grid.\n var k1start = 0;\n var k1end = 0;\n var k2start = 0;\n var k2end = 0;\n for (var d = 0; d < max_d; d++) {\n // Walk the front path one step.\n for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) {\n var k1_offset = v_offset + k1;\n var x1;\n if (k1 == -d || (k1 != d && v1[k1_offset - 1] < v1[k1_offset + 1])) {\n x1 = v1[k1_offset + 1];\n } else {\n x1 = v1[k1_offset - 1] + 1;\n }\n var y1 = x1 - k1;\n while (x1 < text1_length && y1 < text2_length &&\n text1.charAt(x1) == text2.charAt(y1)) {\n x1++;\n y1++;\n }\n v1[k1_offset] = x1;\n if (x1 > text1_length) {\n // Ran off the right of the graph.\n k1end += 2;\n } else if (y1 > text2_length) {\n // Ran off the bottom of the graph.\n k1start += 2;\n } else if (front) {\n var k2_offset = v_offset + delta - k1;\n if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] != -1) {\n // Mirror x2 onto top-left coordinate system.\n var x2 = text1_length - v2[k2_offset];\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n\n // Walk the reverse path one step.\n for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) {\n var k2_offset = v_offset + k2;\n var x2;\n if (k2 == -d || (k2 != d && v2[k2_offset - 1] < v2[k2_offset + 1])) {\n x2 = v2[k2_offset + 1];\n } else {\n x2 = v2[k2_offset - 1] + 1;\n }\n var y2 = x2 - k2;\n while (x2 < text1_length && y2 < text2_length &&\n text1.charAt(text1_length - x2 - 1) ==\n text2.charAt(text2_length - y2 - 1)) {\n x2++;\n y2++;\n }\n v2[k2_offset] = x2;\n if (x2 > text1_length) {\n // Ran off the left of the graph.\n k2end += 2;\n } else if (y2 > text2_length) {\n // Ran off the top of the graph.\n k2start += 2;\n } else if (!front) {\n var k1_offset = v_offset + delta - k2;\n if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] != -1) {\n var x1 = v1[k1_offset];\n var y1 = v_offset + x1 - k1_offset;\n // Mirror x2 onto top-left coordinate system.\n x2 = text1_length - x2;\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n }\n // Diff took too long and hit the deadline or\n // number of diffs equals number of characters, no commonality at all.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n};\n\n\n/**\n * Given the location of the 'middle snake', split the diff in two parts\n * and recurse.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {number} x Index of split point in text1.\n * @param {number} y Index of split point in text2.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_bisectSplit_(text1, text2, x, y) {\n var text1a = text1.substring(0, x);\n var text2a = text2.substring(0, y);\n var text1b = text1.substring(x);\n var text2b = text2.substring(y);\n\n // Compute both diffs serially.\n var diffs = diff_main(text1a, text2a);\n var diffsb = diff_main(text1b, text2b);\n\n return diffs.concat(diffsb);\n};\n\n\n/**\n * Determine the common prefix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the start of each\n * string.\n */\nfunction diff_commonPrefix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 || text1.charAt(0) != text2.charAt(0)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerstart = 0;\n while (pointermin < pointermid) {\n if (text1.substring(pointerstart, pointermid) ==\n text2.substring(pointerstart, pointermid)) {\n pointermin = pointermid;\n pointerstart = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Determine the common suffix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the end of each string.\n */\nfunction diff_commonSuffix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 ||\n text1.charAt(text1.length - 1) != text2.charAt(text2.length - 1)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerend = 0;\n while (pointermin < pointermid) {\n if (text1.substring(text1.length - pointermid, text1.length - pointerend) ==\n text2.substring(text2.length - pointermid, text2.length - pointerend)) {\n pointermin = pointermid;\n pointerend = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Do the two texts share a substring which is at least half the length of the\n * longer text?\n * This speedup can produce non-minimal diffs.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {Array.<string>} Five element Array, containing the prefix of\n * text1, the suffix of text1, the prefix of text2, the suffix of\n * text2 and the common middle. Or null if there was no match.\n */\nfunction diff_halfMatch_(text1, text2) {\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n if (longtext.length < 4 || shorttext.length * 2 < longtext.length) {\n return null; // Pointless.\n }\n\n /**\n * Does a substring of shorttext exist within longtext such that the substring\n * is at least half the length of longtext?\n * Closure, but does not reference any external variables.\n * @param {string} longtext Longer string.\n * @param {string} shorttext Shorter string.\n * @param {number} i Start index of quarter length substring within longtext.\n * @return {Array.<string>} Five element Array, containing the prefix of\n * longtext, the suffix of longtext, the prefix of shorttext, the suffix\n * of shorttext and the common middle. Or null if there was no match.\n * @private\n */\n function diff_halfMatchI_(longtext, shorttext, i) {\n // Start with a 1/4 length substring at position i as a seed.\n var seed = longtext.substring(i, i + Math.floor(longtext.length / 4));\n var j = -1;\n var best_common = '';\n var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b;\n while ((j = shorttext.indexOf(seed, j + 1)) != -1) {\n var prefixLength = diff_commonPrefix(longtext.substring(i),\n shorttext.substring(j));\n var suffixLength = diff_commonSuffix(longtext.substring(0, i),\n shorttext.substring(0, j));\n if (best_common.length < suffixLength + prefixLength) {\n best_common = shorttext.substring(j - suffixLength, j) +\n shorttext.substring(j, j + prefixLength);\n best_longtext_a = longtext.substring(0, i - suffixLength);\n best_longtext_b = longtext.substring(i + prefixLength);\n best_shorttext_a = shorttext.substring(0, j - suffixLength);\n best_shorttext_b = shorttext.substring(j + prefixLength);\n }\n }\n if (best_common.length * 2 >= longtext.length) {\n return [best_longtext_a, best_longtext_b,\n best_shorttext_a, best_shorttext_b, best_common];\n } else {\n return null;\n }\n }\n\n // First check if the second quarter is the seed for a half-match.\n var hm1 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 4));\n // Check again based on the third quarter.\n var hm2 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 2));\n var hm;\n if (!hm1 && !hm2) {\n return null;\n } else if (!hm2) {\n hm = hm1;\n } else if (!hm1) {\n hm = hm2;\n } else {\n // Both matched. Select the longest.\n hm = hm1[4].length > hm2[4].length ? hm1 : hm2;\n }\n\n // A half-match was found, sort out the return data.\n var text1_a, text1_b, text2_a, text2_b;\n if (text1.length > text2.length) {\n text1_a = hm[0];\n text1_b = hm[1];\n text2_a = hm[2];\n text2_b = hm[3];\n } else {\n text2_a = hm[0];\n text2_b = hm[1];\n text1_a = hm[2];\n text1_b = hm[3];\n }\n var mid_common = hm[4];\n return [text1_a, text1_b, text2_a, text2_b, mid_common];\n};\n\n\n/**\n * Reorder and merge like edit sections. Merge equalities.\n * Any edit section can move as long as it doesn't cross an equality.\n * @param {Array} diffs Array of diff tuples.\n */\nfunction diff_cleanupMerge(diffs) {\n diffs.push([DIFF_EQUAL, '']); // Add a dummy entry at the end.\n var pointer = 0;\n var count_delete = 0;\n var count_insert = 0;\n var text_delete = '';\n var text_insert = '';\n var commonlength;\n while (pointer < diffs.length) {\n switch (diffs[pointer][0]) {\n case DIFF_INSERT:\n count_insert++;\n text_insert += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_DELETE:\n count_delete++;\n text_delete += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_EQUAL:\n // Upon reaching an equality, check for prior redundancies.\n if (count_delete + count_insert > 1) {\n if (count_delete !== 0 && count_insert !== 0) {\n // Factor out any common prefixies.\n commonlength = diff_commonPrefix(text_insert, text_delete);\n if (commonlength !== 0) {\n if ((pointer - count_delete - count_insert) > 0 &&\n diffs[pointer - count_delete - count_insert - 1][0] ==\n DIFF_EQUAL) {\n diffs[pointer - count_delete - count_insert - 1][1] +=\n text_insert.substring(0, commonlength);\n } else {\n diffs.splice(0, 0, [DIFF_EQUAL,\n text_insert.substring(0, commonlength)]);\n pointer++;\n }\n text_insert = text_insert.substring(commonlength);\n text_delete = text_delete.substring(commonlength);\n }\n // Factor out any common suffixies.\n commonlength = diff_commonSuffix(text_insert, text_delete);\n if (commonlength !== 0) {\n diffs[pointer][1] = text_insert.substring(text_insert.length -\n commonlength) + diffs[pointer][1];\n text_insert = text_insert.substring(0, text_insert.length -\n commonlength);\n text_delete = text_delete.substring(0, text_delete.length -\n commonlength);\n }\n }\n // Delete the offending records and add the merged ones.\n if (count_delete === 0) {\n diffs.splice(pointer - count_insert,\n count_delete + count_insert, [DIFF_INSERT, text_insert]);\n } else if (count_insert === 0) {\n diffs.splice(pointer - count_delete,\n count_delete + count_insert, [DIFF_DELETE, text_delete]);\n } else {\n diffs.splice(pointer - count_delete - count_insert,\n count_delete + count_insert, [DIFF_DELETE, text_delete],\n [DIFF_INSERT, text_insert]);\n }\n pointer = pointer - count_delete - count_insert +\n (count_delete ? 1 : 0) + (count_insert ? 1 : 0) + 1;\n } else if (pointer !== 0 && diffs[pointer - 1][0] == DIFF_EQUAL) {\n // Merge this equality with the previous one.\n diffs[pointer - 1][1] += diffs[pointer][1];\n diffs.splice(pointer, 1);\n } else {\n pointer++;\n }\n count_insert = 0;\n count_delete = 0;\n text_delete = '';\n text_insert = '';\n break;\n }\n }\n if (diffs[diffs.length - 1][1] === '') {\n diffs.pop(); // Remove the dummy entry at the end.\n }\n\n // Second pass: look for single edits surrounded on both sides by equalities\n // which can be shifted sideways to eliminate an equality.\n // e.g: A<ins>BA</ins>C -> <ins>AB</ins>AC\n var changes = false;\n pointer = 1;\n // Intentionally ignore the first and last element (don't need checking).\n while (pointer < diffs.length - 1) {\n if (diffs[pointer - 1][0] == DIFF_EQUAL &&\n diffs[pointer + 1][0] == DIFF_EQUAL) {\n // This is a single edit surrounded by equalities.\n if (diffs[pointer][1].substring(diffs[pointer][1].length -\n diffs[pointer - 1][1].length) == diffs[pointer - 1][1]) {\n // Shift the edit over the previous equality.\n diffs[pointer][1] = diffs[pointer - 1][1] +\n diffs[pointer][1].substring(0, diffs[pointer][1].length -\n diffs[pointer - 1][1].length);\n diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1];\n diffs.splice(pointer - 1, 1);\n changes = true;\n } else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) ==\n diffs[pointer + 1][1]) {\n // Shift the edit over the next equality.\n diffs[pointer - 1][1] += diffs[pointer + 1][1];\n diffs[pointer][1] =\n diffs[pointer][1].substring(diffs[pointer + 1][1].length) +\n diffs[pointer + 1][1];\n diffs.splice(pointer + 1, 1);\n changes = true;\n }\n }\n pointer++;\n }\n // If shifts were made, the diff needs reordering and another shift sweep.\n if (changes) {\n diff_cleanupMerge(diffs);\n }\n};\n\n\nvar diff = diff_main;\ndiff.INSERT = DIFF_INSERT;\ndiff.DELETE = DIFF_DELETE;\ndiff.EQUAL = DIFF_EQUAL;\n\nmodule.exports = diff;\n\n/*\n * Modify a diff such that the cursor position points to the start of a change:\n * E.g.\n * cursor_normalize_diff([[DIFF_EQUAL, 'abc']], 1)\n * => [1, [[DIFF_EQUAL, 'a'], [DIFF_EQUAL, 'bc']]]\n * cursor_normalize_diff([[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xyz']], 2)\n * => [2, [[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xy'], [DIFF_DELETE, 'z']]]\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} A tuple [cursor location in the modified diff, modified diff]\n */\nfunction cursor_normalize_diff (diffs, cursor_pos) {\n if (cursor_pos === 0) {\n return [DIFF_EQUAL, diffs];\n }\n for (var current_pos = 0, i = 0; i < diffs.length; i++) {\n var d = diffs[i];\n if (d[0] === DIFF_DELETE || d[0] === DIFF_EQUAL) {\n var next_pos = current_pos + d[1].length;\n if (cursor_pos === next_pos) {\n return [i + 1, diffs];\n } else if (cursor_pos < next_pos) {\n // copy to prevent side effects\n diffs = diffs.slice();\n // split d into two diff changes\n var split_pos = cursor_pos - current_pos;\n var d_left = [d[0], d[1].slice(0, split_pos)];\n var d_right = [d[0], d[1].slice(split_pos)];\n diffs.splice(i, 1, d_left, d_right);\n return [i + 1, diffs];\n } else {\n current_pos = next_pos;\n }\n }\n }\n throw new Error('cursor_pos is out of bounds!')\n}\n\n/*\n * Modify a diff such that the edit position is \"shifted\" to the proposed edit location (cursor_position).\n *\n * Case 1)\n * Check if a naive shift is possible:\n * [0, X], [ 1, Y] -> [ 1, Y], [0, X] (if X + Y === Y + X)\n * [0, X], [-1, Y] -> [-1, Y], [0, X] (if X + Y === Y + X) - holds same result\n * Case 2)\n * Check if the following shifts are possible:\n * [0, 'pre'], [ 1, 'prefix'] -> [ 1, 'pre'], [0, 'pre'], [ 1, 'fix']\n * [0, 'pre'], [-1, 'prefix'] -> [-1, 'pre'], [0, 'pre'], [-1, 'fix']\n * ^ ^\n * d d_next\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} Array of diff tuples\n */\nfunction fix_cursor (diffs, cursor_pos) {\n var norm = cursor_normalize_diff(diffs, cursor_pos);\n var ndiffs = norm[1];\n var cursor_pointer = norm[0];\n var d = ndiffs[cursor_pointer];\n var d_next = ndiffs[cursor_pointer + 1];\n\n if (d == null) {\n // Text was deleted from end of original string,\n // cursor is now out of bounds in new string\n return diffs;\n } else if (d[0] !== DIFF_EQUAL) {\n // A modification happened at the cursor location.\n // This is the expected outcome, so we can return the original diff.\n return diffs;\n } else {\n if (d_next != null && d[1] + d_next[1] === d_next[1] + d[1]) {\n // Case 1)\n // It is possible to perform a naive shift\n ndiffs.splice(cursor_pointer, 2, d_next, d)\n return merge_tuples(ndiffs, cursor_pointer, 2)\n } else if (d_next != null && d_next[1].indexOf(d[1]) === 0) {\n // Case 2)\n // d[1] is a prefix of d_next[1]\n // We can assume that d_next[0] !== 0, since d[0] === 0\n // Shift edit locations..\n ndiffs.splice(cursor_pointer, 2, [d_next[0], d[1]], [0, d[1]]);\n var suffix = d_next[1].slice(d[1].length);\n if (suffix.length > 0) {\n ndiffs.splice(cursor_pointer + 2, 0, [d_next[0], suffix]);\n }\n return merge_tuples(ndiffs, cursor_pointer, 3)\n } else {\n // Not possible to perform any modification\n return diffs;\n }\n }\n}\n\n/*\n * Check diff did not split surrogate pairs.\n * Ex. [0, '\\uD83D'], [-1, '\\uDC36'], [1, '\\uDC2F'] -> [-1, '\\uD83D\\uDC36'], [1, '\\uD83D\\uDC2F']\n * '\\uD83D\\uDC36' === 'ðŸ¶', '\\uD83D\\uDC2F' === 'ðŸ¯'\n *\n * @param {Array} diffs Array of diff tuples\n * @return {Array} Array of diff tuples\n */\nfunction fix_emoji (diffs) {\n var compact = false;\n var starts_with_pair_end = function(str) {\n return str.charCodeAt(0) >= 0xDC00 && str.charCodeAt(0) <= 0xDFFF;\n }\n var ends_with_pair_start = function(str) {\n return str.charCodeAt(str.length-1) >= 0xD800 && str.charCodeAt(str.length-1) <= 0xDBFF;\n }\n for (var i = 2; i < diffs.length; i += 1) {\n if (diffs[i-2][0] === DIFF_EQUAL && ends_with_pair_start(diffs[i-2][1]) &&\n diffs[i-1][0] === DIFF_DELETE && starts_with_pair_end(diffs[i-1][1]) &&\n diffs[i][0] === DIFF_INSERT && starts_with_pair_end(diffs[i][1])) {\n compact = true;\n\n diffs[i-1][1] = diffs[i-2][1].slice(-1) + diffs[i-1][1];\n diffs[i][1] = diffs[i-2][1].slice(-1) + diffs[i][1];\n\n diffs[i-2][1] = diffs[i-2][1].slice(0, -1);\n }\n }\n if (!compact) {\n return diffs;\n }\n var fixed_diffs = [];\n for (var i = 0; i < diffs.length; i += 1) {\n if (diffs[i][1].length > 0) {\n fixed_diffs.push(diffs[i]);\n }\n }\n return fixed_diffs;\n}\n\n/*\n * Try to merge tuples with their neigbors in a given range.\n * E.g. [0, 'a'], [0, 'b'] -> [0, 'ab']\n *\n * @param {Array} diffs Array of diff tuples.\n * @param {Int} start Position of the first element to merge (diffs[start] is also merged with diffs[start - 1]).\n * @param {Int} length Number of consecutive elements to check.\n * @return {Array} Array of merged diff tuples.\n */\nfunction merge_tuples (diffs, start, length) {\n // Check from (start-1) to (start+length).\n for (var i = start + length - 1; i >= 0 && i >= start - 1; i--) {\n if (i + 1 < diffs.length) {\n var left_d = diffs[i];\n var right_d = diffs[i+1];\n if (left_d[0] === right_d[1]) {\n diffs.splice(i, 2, [left_d[0], left_d[1] + right_d[1]]);\n }\n }\n }\n return diffs;\n}\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports) {\n\nexports = module.exports = typeof Object.keys === 'function'\n ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n}\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports) {\n\nvar supportsArgumentsClass = (function(){\n return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n return object &&\n typeof object == 'object' &&\n typeof object.length == 'number' &&\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n false;\n};\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports) {\n\n'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @api private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {Mixed} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @api private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @api public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @api public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Boolean} exists Only check if there are listeners.\n * @returns {Array|Boolean}\n * @api public\n */\nEventEmitter.prototype.listeners = function listeners(event, exists) {\n var evt = prefix ? prefix + event : event\n , available = this._events[evt];\n\n if (exists) return !!available;\n if (!available) return [];\n if (available.fn) return [available.fn];\n\n for (var i = 0, l = available.length, ee = new Array(l); i < l; i++) {\n ee[i] = available[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @api public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn The listener function.\n * @param {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n var listener = new EE(fn, context || this)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn The listener function.\n * @param {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n var listener = new EE(fn, context || this, true)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {Mixed} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn\n && (!once || listeners.once)\n && (!context || listeners.context === context)\n ) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn\n || (once && !listeners[i].once)\n || (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {String|Symbol} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// This function doesn't apply anymore.\n//\nEventEmitter.prototype.setMaxListeners = function setMaxListeners() {\n return this;\n};\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.matchText = exports.matchSpacing = exports.matchNewline = exports.matchBlot = exports.matchAttributor = exports.default = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend2 = __webpack_require__(3);\n\nvar _extend3 = _interopRequireDefault(_extend2);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _align = __webpack_require__(36);\n\nvar _background = __webpack_require__(37);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _color = __webpack_require__(26);\n\nvar _direction = __webpack_require__(38);\n\nvar _font = __webpack_require__(39);\n\nvar _size = __webpack_require__(40);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:clipboard');\n\nvar DOM_KEY = '__ql-matcher';\n\nvar CLIPBOARD_CONFIG = [[Node.TEXT_NODE, matchText], [Node.TEXT_NODE, matchNewline], ['br', matchBreak], [Node.ELEMENT_NODE, matchNewline], [Node.ELEMENT_NODE, matchBlot], [Node.ELEMENT_NODE, matchSpacing], [Node.ELEMENT_NODE, matchAttributor], [Node.ELEMENT_NODE, matchStyles], ['li', matchIndent], ['b', matchAlias.bind(matchAlias, 'bold')], ['i', matchAlias.bind(matchAlias, 'italic')], ['style', matchIgnore]];\n\nvar ATTRIBUTE_ATTRIBUTORS = [_align.AlignAttribute, _direction.DirectionAttribute].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nvar STYLE_ATTRIBUTORS = [_align.AlignStyle, _background.BackgroundStyle, _color.ColorStyle, _direction.DirectionStyle, _font.FontStyle, _size.SizeStyle].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nvar Clipboard = function (_Module) {\n _inherits(Clipboard, _Module);\n\n function Clipboard(quill, options) {\n _classCallCheck(this, Clipboard);\n\n var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this, quill, options));\n\n _this.quill.root.addEventListener('paste', _this.onPaste.bind(_this));\n _this.container = _this.quill.addContainer('ql-clipboard');\n _this.container.setAttribute('contenteditable', true);\n _this.container.setAttribute('tabindex', -1);\n _this.matchers = [];\n CLIPBOARD_CONFIG.concat(_this.options.matchers).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n selector = _ref2[0],\n matcher = _ref2[1];\n\n if (!options.matchVisual && matcher === matchSpacing) return;\n _this.addMatcher(selector, matcher);\n });\n return _this;\n }\n\n _createClass(Clipboard, [{\n key: 'addMatcher',\n value: function addMatcher(selector, matcher) {\n this.matchers.push([selector, matcher]);\n }\n }, {\n key: 'convert',\n value: function convert(html) {\n if (typeof html === 'string') {\n this.container.innerHTML = html.replace(/\\>\\r?\\n +\\</g, '><'); // Remove spaces between tags\n return this.convert();\n }\n var formats = this.quill.getFormat(this.quill.selection.savedRange.index);\n if (formats[_code2.default.blotName]) {\n var text = this.container.innerText;\n this.container.innerHTML = '';\n return new _quillDelta2.default().insert(text, _defineProperty({}, _code2.default.blotName, formats[_code2.default.blotName]));\n }\n\n var _prepareMatching = this.prepareMatching(),\n _prepareMatching2 = _slicedToArray(_prepareMatching, 2),\n elementMatchers = _prepareMatching2[0],\n textMatchers = _prepareMatching2[1];\n\n var delta = traverse(this.container, elementMatchers, textMatchers);\n // Remove trailing newline\n if (deltaEndsWith(delta, '\\n') && delta.ops[delta.ops.length - 1].attributes == null) {\n delta = delta.compose(new _quillDelta2.default().retain(delta.length() - 1).delete(1));\n }\n debug.log('convert', this.container.innerHTML, delta);\n this.container.innerHTML = '';\n return delta;\n }\n }, {\n key: 'dangerouslyPasteHTML',\n value: function dangerouslyPasteHTML(index, html) {\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _quill2.default.sources.API;\n\n if (typeof index === 'string') {\n this.quill.setContents(this.convert(index), html);\n this.quill.setSelection(0, _quill2.default.sources.SILENT);\n } else {\n var paste = this.convert(html);\n this.quill.updateContents(new _quillDelta2.default().retain(index).concat(paste), source);\n this.quill.setSelection(index + paste.length(), _quill2.default.sources.SILENT);\n }\n }\n }, {\n key: 'onPaste',\n value: function onPaste(e) {\n var _this2 = this;\n\n if (e.defaultPrevented || !this.quill.isEnabled()) return;\n var range = this.quill.getSelection();\n var delta = new _quillDelta2.default().retain(range.index);\n var scrollTop = this.quill.scrollingContainer.scrollTop;\n this.container.focus();\n this.quill.selection.update(_quill2.default.sources.SILENT);\n setTimeout(function () {\n delta = delta.concat(_this2.convert()).delete(range.length);\n _this2.quill.updateContents(delta, _quill2.default.sources.USER);\n // range.length contributes to delta.length()\n _this2.quill.setSelection(delta.length() - range.length, _quill2.default.sources.SILENT);\n _this2.quill.scrollingContainer.scrollTop = scrollTop;\n _this2.quill.focus();\n }, 1);\n }\n }, {\n key: 'prepareMatching',\n value: function prepareMatching() {\n var _this3 = this;\n\n var elementMatchers = [],\n textMatchers = [];\n this.matchers.forEach(function (pair) {\n var _pair = _slicedToArray(pair, 2),\n selector = _pair[0],\n matcher = _pair[1];\n\n switch (selector) {\n case Node.TEXT_NODE:\n textMatchers.push(matcher);\n break;\n case Node.ELEMENT_NODE:\n elementMatchers.push(matcher);\n break;\n default:\n [].forEach.call(_this3.container.querySelectorAll(selector), function (node) {\n // TODO use weakmap\n node[DOM_KEY] = node[DOM_KEY] || [];\n node[DOM_KEY].push(matcher);\n });\n break;\n }\n });\n return [elementMatchers, textMatchers];\n }\n }]);\n\n return Clipboard;\n}(_module2.default);\n\nClipboard.DEFAULTS = {\n matchers: [],\n matchVisual: true\n};\n\nfunction applyFormat(delta, format, value) {\n if ((typeof format === 'undefined' ? 'undefined' : _typeof(format)) === 'object') {\n return Object.keys(format).reduce(function (delta, key) {\n return applyFormat(delta, key, format[key]);\n }, delta);\n } else {\n return delta.reduce(function (delta, op) {\n if (op.attributes && op.attributes[format]) {\n return delta.push(op);\n } else {\n return delta.insert(op.insert, (0, _extend3.default)({}, _defineProperty({}, format, value), op.attributes));\n }\n }, new _quillDelta2.default());\n }\n}\n\nfunction computeStyle(node) {\n if (node.nodeType !== Node.ELEMENT_NODE) return {};\n var DOM_KEY = '__ql-computed-style';\n return node[DOM_KEY] || (node[DOM_KEY] = window.getComputedStyle(node));\n}\n\nfunction deltaEndsWith(delta, text) {\n var endText = \"\";\n for (var i = delta.ops.length - 1; i >= 0 && endText.length < text.length; --i) {\n var op = delta.ops[i];\n if (typeof op.insert !== 'string') break;\n endText = op.insert + endText;\n }\n return endText.slice(-1 * text.length) === text;\n}\n\nfunction isLine(node) {\n if (node.childNodes.length === 0) return false; // Exclude embed blocks\n var style = computeStyle(node);\n return ['block', 'list-item'].indexOf(style.display) > -1;\n}\n\nfunction traverse(node, elementMatchers, textMatchers) {\n // Post-order\n if (node.nodeType === node.TEXT_NODE) {\n return textMatchers.reduce(function (delta, matcher) {\n return matcher(node, delta);\n }, new _quillDelta2.default());\n } else if (node.nodeType === node.ELEMENT_NODE) {\n return [].reduce.call(node.childNodes || [], function (delta, childNode) {\n var childrenDelta = traverse(childNode, elementMatchers, textMatchers);\n if (childNode.nodeType === node.ELEMENT_NODE) {\n childrenDelta = elementMatchers.reduce(function (childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n childrenDelta = (childNode[DOM_KEY] || []).reduce(function (childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n }\n return delta.concat(childrenDelta);\n }, new _quillDelta2.default());\n } else {\n return new _quillDelta2.default();\n }\n}\n\nfunction matchAlias(format, node, delta) {\n return applyFormat(delta, format, true);\n}\n\nfunction matchAttributor(node, delta) {\n var attributes = _parchment2.default.Attributor.Attribute.keys(node);\n var classes = _parchment2.default.Attributor.Class.keys(node);\n var styles = _parchment2.default.Attributor.Style.keys(node);\n var formats = {};\n attributes.concat(classes).concat(styles).forEach(function (name) {\n var attr = _parchment2.default.query(name, _parchment2.default.Scope.ATTRIBUTE);\n if (attr != null) {\n formats[attr.attrName] = attr.value(node);\n if (formats[attr.attrName]) return;\n }\n attr = ATTRIBUTE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n attr = STYLE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n attr = STYLE_ATTRIBUTORS[name];\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n });\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n return delta;\n}\n\nfunction matchBlot(node, delta) {\n var match = _parchment2.default.query(node);\n if (match == null) return delta;\n if (match.prototype instanceof _parchment2.default.Embed) {\n var embed = {};\n var value = match.value(node);\n if (value != null) {\n embed[match.blotName] = value;\n delta = new _quillDelta2.default().insert(embed, match.formats(node));\n }\n } else if (typeof match.formats === 'function') {\n delta = applyFormat(delta, match.blotName, match.formats(node));\n }\n return delta;\n}\n\nfunction matchBreak(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n delta.insert('\\n');\n }\n return delta;\n}\n\nfunction matchIgnore() {\n return new _quillDelta2.default();\n}\n\nfunction matchIndent(node, delta) {\n var match = _parchment2.default.query(node);\n if (match == null || match.blotName !== 'list-item' || !deltaEndsWith(delta, '\\n')) {\n return delta;\n }\n var indent = -1,\n parent = node.parentNode;\n while (!parent.classList.contains('ql-clipboard')) {\n if ((_parchment2.default.query(parent) || {}).blotName === 'list') {\n indent += 1;\n }\n parent = parent.parentNode;\n }\n if (indent <= 0) return delta;\n return delta.compose(new _quillDelta2.default().retain(delta.length() - 1).retain(1, { indent: indent }));\n}\n\nfunction matchNewline(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n if (isLine(node) || delta.length() > 0 && node.nextSibling && isLine(node.nextSibling)) {\n delta.insert('\\n');\n }\n }\n return delta;\n}\n\nfunction matchSpacing(node, delta) {\n if (isLine(node) && node.nextElementSibling != null && !deltaEndsWith(delta, '\\n\\n')) {\n var nodeHeight = node.offsetHeight + parseFloat(computeStyle(node).marginTop) + parseFloat(computeStyle(node).marginBottom);\n if (node.nextElementSibling.offsetTop > node.offsetTop + nodeHeight * 1.5) {\n delta.insert('\\n');\n }\n }\n return delta;\n}\n\nfunction matchStyles(node, delta) {\n var formats = {};\n var style = node.style || {};\n if (style.fontStyle && computeStyle(node).fontStyle === 'italic') {\n formats.italic = true;\n }\n if (style.fontWeight && (computeStyle(node).fontWeight.startsWith('bold') || parseInt(computeStyle(node).fontWeight) >= 700)) {\n formats.bold = true;\n }\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n if (parseFloat(style.textIndent || 0) > 0) {\n // Could be 0.5in\n delta = new _quillDelta2.default().insert('\\t').concat(delta);\n }\n return delta;\n}\n\nfunction matchText(node, delta) {\n var text = node.data;\n // Word represents empty line with <o:p> </o:p>\n if (node.parentNode.tagName === 'O:P') {\n return delta.insert(text.trim());\n }\n if (text.trim().length === 0 && node.parentNode.classList.contains('ql-clipboard')) {\n return delta;\n }\n if (!computeStyle(node.parentNode).whiteSpace.startsWith('pre')) {\n // eslint-disable-next-line func-style\n var replacer = function replacer(collapse, match) {\n match = match.replace(/[^\\u00a0]/g, ''); // \\u00a0 is nbsp;\n return match.length < 1 && collapse ? ' ' : match;\n };\n text = text.replace(/\\r\\n/g, ' ').replace(/\\n/g, ' ');\n text = text.replace(/\\s\\s+/g, replacer.bind(replacer, true)); // collapse whitespace\n if (node.previousSibling == null && isLine(node.parentNode) || node.previousSibling != null && isLine(node.previousSibling)) {\n text = text.replace(/^\\s+/, replacer.bind(replacer, false));\n }\n if (node.nextSibling == null && isLine(node.parentNode) || node.nextSibling != null && isLine(node.nextSibling)) {\n text = text.replace(/\\s+$/, replacer.bind(replacer, false));\n }\n }\n return delta.insert(text);\n}\n\nexports.default = Clipboard;\nexports.matchAttributor = matchAttributor;\nexports.matchBlot = matchBlot;\nexports.matchNewline = matchNewline;\nexports.matchSpacing = matchSpacing;\nexports.matchText = matchText;\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Bold = function (_Inline) {\n _inherits(Bold, _Inline);\n\n function Bold() {\n _classCallCheck(this, Bold);\n\n return _possibleConstructorReturn(this, (Bold.__proto__ || Object.getPrototypeOf(Bold)).apply(this, arguments));\n }\n\n _createClass(Bold, [{\n key: 'optimize',\n value: function optimize(context) {\n _get(Bold.prototype.__proto__ || Object.getPrototypeOf(Bold.prototype), 'optimize', this).call(this, context);\n if (this.domNode.tagName !== this.statics.tagName[0]) {\n this.replaceWith(this.statics.blotName);\n }\n }\n }], [{\n key: 'create',\n value: function create() {\n return _get(Bold.__proto__ || Object.getPrototypeOf(Bold), 'create', this).call(this);\n }\n }, {\n key: 'formats',\n value: function formats() {\n return true;\n }\n }]);\n\n return Bold;\n}(_inline2.default);\n\nBold.blotName = 'bold';\nBold.tagName = ['STRONG', 'B'];\n\nexports.default = Bold;\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addControls = exports.default = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:toolbar');\n\nvar Toolbar = function (_Module) {\n _inherits(Toolbar, _Module);\n\n function Toolbar(quill, options) {\n _classCallCheck(this, Toolbar);\n\n var _this = _possibleConstructorReturn(this, (Toolbar.__proto__ || Object.getPrototypeOf(Toolbar)).call(this, quill, options));\n\n if (Array.isArray(_this.options.container)) {\n var container = document.createElement('div');\n addControls(container, _this.options.container);\n quill.container.parentNode.insertBefore(container, quill.container);\n _this.container = container;\n } else if (typeof _this.options.container === 'string') {\n _this.container = document.querySelector(_this.options.container);\n } else {\n _this.container = _this.options.container;\n }\n if (!(_this.container instanceof HTMLElement)) {\n var _ret;\n\n return _ret = debug.error('Container required for toolbar', _this.options), _possibleConstructorReturn(_this, _ret);\n }\n _this.container.classList.add('ql-toolbar');\n _this.controls = [];\n _this.handlers = {};\n Object.keys(_this.options.handlers).forEach(function (format) {\n _this.addHandler(format, _this.options.handlers[format]);\n });\n [].forEach.call(_this.container.querySelectorAll('button, select'), function (input) {\n _this.attach(input);\n });\n _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (type, range) {\n if (type === _quill2.default.events.SELECTION_CHANGE) {\n _this.update(range);\n }\n });\n _this.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () {\n var _this$quill$selection = _this.quill.selection.getRange(),\n _this$quill$selection2 = _slicedToArray(_this$quill$selection, 1),\n range = _this$quill$selection2[0]; // quill.getSelection triggers update\n\n\n _this.update(range);\n });\n return _this;\n }\n\n _createClass(Toolbar, [{\n key: 'addHandler',\n value: function addHandler(format, handler) {\n this.handlers[format] = handler;\n }\n }, {\n key: 'attach',\n value: function attach(input) {\n var _this2 = this;\n\n var format = [].find.call(input.classList, function (className) {\n return className.indexOf('ql-') === 0;\n });\n if (!format) return;\n format = format.slice('ql-'.length);\n if (input.tagName === 'BUTTON') {\n input.setAttribute('type', 'button');\n }\n if (this.handlers[format] == null) {\n if (this.quill.scroll.whitelist != null && this.quill.scroll.whitelist[format] == null) {\n debug.warn('ignoring attaching to disabled format', format, input);\n return;\n }\n if (_parchment2.default.query(format) == null) {\n debug.warn('ignoring attaching to nonexistent format', format, input);\n return;\n }\n }\n var eventName = input.tagName === 'SELECT' ? 'change' : 'click';\n input.addEventListener(eventName, function (e) {\n var value = void 0;\n if (input.tagName === 'SELECT') {\n if (input.selectedIndex < 0) return;\n var selected = input.options[input.selectedIndex];\n if (selected.hasAttribute('selected')) {\n value = false;\n } else {\n value = selected.value || false;\n }\n } else {\n if (input.classList.contains('ql-active')) {\n value = false;\n } else {\n value = input.value || !input.hasAttribute('value');\n }\n e.preventDefault();\n }\n _this2.quill.focus();\n\n var _quill$selection$getR = _this2.quill.selection.getRange(),\n _quill$selection$getR2 = _slicedToArray(_quill$selection$getR, 1),\n range = _quill$selection$getR2[0];\n\n if (_this2.handlers[format] != null) {\n _this2.handlers[format].call(_this2, value);\n } else if (_parchment2.default.query(format).prototype instanceof _parchment2.default.Embed) {\n value = prompt('Enter ' + format);\n if (!value) return;\n _this2.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert(_defineProperty({}, format, value)), _quill2.default.sources.USER);\n } else {\n _this2.quill.format(format, value, _quill2.default.sources.USER);\n }\n _this2.update(range);\n });\n // TODO use weakmap\n this.controls.push([format, input]);\n }\n }, {\n key: 'update',\n value: function update(range) {\n var formats = range == null ? {} : this.quill.getFormat(range);\n this.controls.forEach(function (pair) {\n var _pair = _slicedToArray(pair, 2),\n format = _pair[0],\n input = _pair[1];\n\n if (input.tagName === 'SELECT') {\n var option = void 0;\n if (range == null) {\n option = null;\n } else if (formats[format] == null) {\n option = input.querySelector('option[selected]');\n } else if (!Array.isArray(formats[format])) {\n var value = formats[format];\n if (typeof value === 'string') {\n value = value.replace(/\\\"/g, '\\\\\"');\n }\n option = input.querySelector('option[value=\"' + value + '\"]');\n }\n if (option == null) {\n input.value = ''; // TODO make configurable?\n input.selectedIndex = -1;\n } else {\n option.selected = true;\n }\n } else {\n if (range == null) {\n input.classList.remove('ql-active');\n } else if (input.hasAttribute('value')) {\n // both being null should match (default values)\n // '1' should match with 1 (headers)\n var isActive = formats[format] === input.getAttribute('value') || formats[format] != null && formats[format].toString() === input.getAttribute('value') || formats[format] == null && !input.getAttribute('value');\n input.classList.toggle('ql-active', isActive);\n } else {\n input.classList.toggle('ql-active', formats[format] != null);\n }\n }\n });\n }\n }]);\n\n return Toolbar;\n}(_module2.default);\n\nToolbar.DEFAULTS = {};\n\nfunction addButton(container, format, value) {\n var input = document.createElement('button');\n input.setAttribute('type', 'button');\n input.classList.add('ql-' + format);\n if (value != null) {\n input.value = value;\n }\n container.appendChild(input);\n}\n\nfunction addControls(container, groups) {\n if (!Array.isArray(groups[0])) {\n groups = [groups];\n }\n groups.forEach(function (controls) {\n var group = document.createElement('span');\n group.classList.add('ql-formats');\n controls.forEach(function (control) {\n if (typeof control === 'string') {\n addButton(group, control);\n } else {\n var format = Object.keys(control)[0];\n var value = control[format];\n if (Array.isArray(value)) {\n addSelect(group, format, value);\n } else {\n addButton(group, format, value);\n }\n }\n });\n container.appendChild(group);\n });\n}\n\nfunction addSelect(container, format, values) {\n var input = document.createElement('select');\n input.classList.add('ql-' + format);\n values.forEach(function (value) {\n var option = document.createElement('option');\n if (value !== false) {\n option.setAttribute('value', value);\n } else {\n option.setAttribute('selected', 'selected');\n }\n input.appendChild(option);\n });\n container.appendChild(input);\n}\n\nToolbar.DEFAULTS = {\n container: null,\n handlers: {\n clean: function clean() {\n var _this3 = this;\n\n var range = this.quill.getSelection();\n if (range == null) return;\n if (range.length == 0) {\n var formats = this.quill.getFormat();\n Object.keys(formats).forEach(function (name) {\n // Clean functionality in existing apps only clean inline formats\n if (_parchment2.default.query(name, _parchment2.default.Scope.INLINE) != null) {\n _this3.quill.format(name, false);\n }\n });\n } else {\n this.quill.removeFormat(range, _quill2.default.sources.USER);\n }\n },\n direction: function direction(value) {\n var align = this.quill.getFormat()['align'];\n if (value === 'rtl' && align == null) {\n this.quill.format('align', 'right', _quill2.default.sources.USER);\n } else if (!value && align === 'right') {\n this.quill.format('align', false, _quill2.default.sources.USER);\n }\n this.quill.format('direction', value, _quill2.default.sources.USER);\n },\n indent: function indent(value) {\n var range = this.quill.getSelection();\n var formats = this.quill.getFormat(range);\n var indent = parseInt(formats.indent || 0);\n if (value === '+1' || value === '-1') {\n var modifier = value === '+1' ? 1 : -1;\n if (formats.direction === 'rtl') modifier *= -1;\n this.quill.format('indent', indent + modifier, _quill2.default.sources.USER);\n }\n },\n link: function link(value) {\n if (value === true) {\n value = prompt('Enter link URL:');\n }\n this.quill.format('link', value, _quill2.default.sources.USER);\n },\n list: function list(value) {\n var range = this.quill.getSelection();\n var formats = this.quill.getFormat(range);\n if (value === 'check') {\n if (formats['list'] === 'checked' || formats['list'] === 'unchecked') {\n this.quill.format('list', false, _quill2.default.sources.USER);\n } else {\n this.quill.format('list', 'unchecked', _quill2.default.sources.USER);\n }\n } else {\n this.quill.format('list', value, _quill2.default.sources.USER);\n }\n }\n }\n};\n\nexports.default = Toolbar;\nexports.addControls = addControls;\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <polyline class=\\\"ql-even ql-stroke\\\" points=\\\"5 7 3 9 5 11\\\"></polyline> <polyline class=\\\"ql-even ql-stroke\\\" points=\\\"13 7 15 9 13 11\\\"></polyline> <line class=ql-stroke x1=10 x2=8 y1=5 y2=13></line> </svg>\";\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ColorPicker = function (_Picker) {\n _inherits(ColorPicker, _Picker);\n\n function ColorPicker(select, label) {\n _classCallCheck(this, ColorPicker);\n\n var _this = _possibleConstructorReturn(this, (ColorPicker.__proto__ || Object.getPrototypeOf(ColorPicker)).call(this, select));\n\n _this.label.innerHTML = label;\n _this.container.classList.add('ql-color-picker');\n [].slice.call(_this.container.querySelectorAll('.ql-picker-item'), 0, 7).forEach(function (item) {\n item.classList.add('ql-primary');\n });\n return _this;\n }\n\n _createClass(ColorPicker, [{\n key: 'buildItem',\n value: function buildItem(option) {\n var item = _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'buildItem', this).call(this, option);\n item.style.backgroundColor = option.getAttribute('value') || '';\n return item;\n }\n }, {\n key: 'selectItem',\n value: function selectItem(item, trigger) {\n _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'selectItem', this).call(this, item, trigger);\n var colorLabel = this.label.querySelector('.ql-color-label');\n var value = item ? item.getAttribute('data-value') || '' : '';\n if (colorLabel) {\n if (colorLabel.tagName === 'line') {\n colorLabel.style.stroke = value;\n } else {\n colorLabel.style.fill = value;\n }\n }\n }\n }]);\n\n return ColorPicker;\n}(_picker2.default);\n\nexports.default = ColorPicker;\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar IconPicker = function (_Picker) {\n _inherits(IconPicker, _Picker);\n\n function IconPicker(select, icons) {\n _classCallCheck(this, IconPicker);\n\n var _this = _possibleConstructorReturn(this, (IconPicker.__proto__ || Object.getPrototypeOf(IconPicker)).call(this, select));\n\n _this.container.classList.add('ql-icon-picker');\n [].forEach.call(_this.container.querySelectorAll('.ql-picker-item'), function (item) {\n item.innerHTML = icons[item.getAttribute('data-value') || ''];\n });\n _this.defaultItem = _this.container.querySelector('.ql-selected');\n _this.selectItem(_this.defaultItem);\n return _this;\n }\n\n _createClass(IconPicker, [{\n key: 'selectItem',\n value: function selectItem(item, trigger) {\n _get(IconPicker.prototype.__proto__ || Object.getPrototypeOf(IconPicker.prototype), 'selectItem', this).call(this, item, trigger);\n item = item || this.defaultItem;\n this.label.innerHTML = item.innerHTML;\n }\n }]);\n\n return IconPicker;\n}(_picker2.default);\n\nexports.default = IconPicker;\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Tooltip = function () {\n function Tooltip(quill, boundsContainer) {\n var _this = this;\n\n _classCallCheck(this, Tooltip);\n\n this.quill = quill;\n this.boundsContainer = boundsContainer || document.body;\n this.root = quill.addContainer('ql-tooltip');\n this.root.innerHTML = this.constructor.TEMPLATE;\n if (this.quill.root === this.quill.scrollingContainer) {\n this.quill.root.addEventListener('scroll', function () {\n _this.root.style.marginTop = -1 * _this.quill.root.scrollTop + 'px';\n });\n }\n this.hide();\n }\n\n _createClass(Tooltip, [{\n key: 'hide',\n value: function hide() {\n this.root.classList.add('ql-hidden');\n }\n }, {\n key: 'position',\n value: function position(reference) {\n var left = reference.left + reference.width / 2 - this.root.offsetWidth / 2;\n // root.scrollTop should be 0 if scrollContainer !== root\n var top = reference.bottom + this.quill.root.scrollTop;\n this.root.style.left = left + 'px';\n this.root.style.top = top + 'px';\n this.root.classList.remove('ql-flip');\n var containerBounds = this.boundsContainer.getBoundingClientRect();\n var rootBounds = this.root.getBoundingClientRect();\n var shift = 0;\n if (rootBounds.right > containerBounds.right) {\n shift = containerBounds.right - rootBounds.right;\n this.root.style.left = left + shift + 'px';\n }\n if (rootBounds.left < containerBounds.left) {\n shift = containerBounds.left - rootBounds.left;\n this.root.style.left = left + shift + 'px';\n }\n if (rootBounds.bottom > containerBounds.bottom) {\n var height = rootBounds.bottom - rootBounds.top;\n var verticalShift = reference.bottom - reference.top + height;\n this.root.style.top = top - verticalShift + 'px';\n this.root.classList.add('ql-flip');\n }\n return shift;\n }\n }, {\n key: 'show',\n value: function show() {\n this.root.classList.remove('ql-editing');\n this.root.classList.remove('ql-hidden');\n }\n }]);\n\n return Tooltip;\n}();\n\nexports.default = Tooltip;\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _base = __webpack_require__(43);\n\nvar _base2 = _interopRequireDefault(_base);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nvar _selection = __webpack_require__(15);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TOOLBAR_CONFIG = [[{ header: ['1', '2', '3', false] }], ['bold', 'italic', 'underline', 'link'], [{ list: 'ordered' }, { list: 'bullet' }], ['clean']];\n\nvar SnowTheme = function (_BaseTheme) {\n _inherits(SnowTheme, _BaseTheme);\n\n function SnowTheme(quill, options) {\n _classCallCheck(this, SnowTheme);\n\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n\n var _this = _possibleConstructorReturn(this, (SnowTheme.__proto__ || Object.getPrototypeOf(SnowTheme)).call(this, quill, options));\n\n _this.quill.container.classList.add('ql-snow');\n return _this;\n }\n\n _createClass(SnowTheme, [{\n key: 'extendToolbar',\n value: function extendToolbar(toolbar) {\n toolbar.container.classList.add('ql-snow');\n this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default);\n this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default);\n this.tooltip = new SnowTooltip(this.quill, this.options.bounds);\n if (toolbar.container.querySelector('.ql-link')) {\n this.quill.keyboard.addBinding({ key: 'K', shortKey: true }, function (range, context) {\n toolbar.handlers['link'].call(toolbar, !context.format.link);\n });\n }\n }\n }]);\n\n return SnowTheme;\n}(_base2.default);\n\nSnowTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link: function link(value) {\n if (value) {\n var range = this.quill.getSelection();\n if (range == null || range.length == 0) return;\n var preview = this.quill.getText(range);\n if (/^\\S+@\\S+\\.\\S+$/.test(preview) && preview.indexOf('mailto:') !== 0) {\n preview = 'mailto:' + preview;\n }\n var tooltip = this.quill.theme.tooltip;\n tooltip.edit('link', preview);\n } else {\n this.quill.format('link', false);\n }\n }\n }\n }\n }\n});\n\nvar SnowTooltip = function (_BaseTooltip) {\n _inherits(SnowTooltip, _BaseTooltip);\n\n function SnowTooltip(quill, bounds) {\n _classCallCheck(this, SnowTooltip);\n\n var _this2 = _possibleConstructorReturn(this, (SnowTooltip.__proto__ || Object.getPrototypeOf(SnowTooltip)).call(this, quill, bounds));\n\n _this2.preview = _this2.root.querySelector('a.ql-preview');\n return _this2;\n }\n\n _createClass(SnowTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this3 = this;\n\n _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'listen', this).call(this);\n this.root.querySelector('a.ql-action').addEventListener('click', function (event) {\n if (_this3.root.classList.contains('ql-editing')) {\n _this3.save();\n } else {\n _this3.edit('link', _this3.preview.textContent);\n }\n event.preventDefault();\n });\n this.root.querySelector('a.ql-remove').addEventListener('click', function (event) {\n if (_this3.linkRange != null) {\n var range = _this3.linkRange;\n _this3.restoreFocus();\n _this3.quill.formatText(range, 'link', false, _emitter2.default.sources.USER);\n delete _this3.linkRange;\n }\n event.preventDefault();\n _this3.hide();\n });\n this.quill.on(_emitter2.default.events.SELECTION_CHANGE, function (range, oldRange, source) {\n if (range == null) return;\n if (range.length === 0 && source === _emitter2.default.sources.USER) {\n var _quill$scroll$descend = _this3.quill.scroll.descendant(_link2.default, range.index),\n _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2),\n link = _quill$scroll$descend2[0],\n offset = _quill$scroll$descend2[1];\n\n if (link != null) {\n _this3.linkRange = new _selection.Range(range.index - offset, link.length());\n var preview = _link2.default.formats(link.domNode);\n _this3.preview.textContent = preview;\n _this3.preview.setAttribute('href', preview);\n _this3.show();\n _this3.position(_this3.quill.getBounds(_this3.linkRange));\n return;\n }\n } else {\n delete _this3.linkRange;\n }\n _this3.hide();\n });\n }\n }, {\n key: 'show',\n value: function show() {\n _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'show', this).call(this);\n this.root.removeAttribute('data-mode');\n }\n }]);\n\n return SnowTooltip;\n}(_base.BaseTooltip);\n\nSnowTooltip.TEMPLATE = ['<a class=\"ql-preview\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"about:blank\"></a>', '<input type=\"text\" data-formula=\"e=mc^2\" data-link=\"https://quilljs.com\" data-video=\"Embed URL\">', '<a class=\"ql-action\"></a>', '<a class=\"ql-remove\"></a>'].join('');\n\nexports.default = SnowTheme;\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core = __webpack_require__(29);\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _align = __webpack_require__(36);\n\nvar _direction = __webpack_require__(38);\n\nvar _indent = __webpack_require__(64);\n\nvar _blockquote = __webpack_require__(65);\n\nvar _blockquote2 = _interopRequireDefault(_blockquote);\n\nvar _header = __webpack_require__(66);\n\nvar _header2 = _interopRequireDefault(_header);\n\nvar _list = __webpack_require__(67);\n\nvar _list2 = _interopRequireDefault(_list);\n\nvar _background = __webpack_require__(37);\n\nvar _color = __webpack_require__(26);\n\nvar _font = __webpack_require__(39);\n\nvar _size = __webpack_require__(40);\n\nvar _bold = __webpack_require__(56);\n\nvar _bold2 = _interopRequireDefault(_bold);\n\nvar _italic = __webpack_require__(68);\n\nvar _italic2 = _interopRequireDefault(_italic);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nvar _script = __webpack_require__(69);\n\nvar _script2 = _interopRequireDefault(_script);\n\nvar _strike = __webpack_require__(70);\n\nvar _strike2 = _interopRequireDefault(_strike);\n\nvar _underline = __webpack_require__(71);\n\nvar _underline2 = _interopRequireDefault(_underline);\n\nvar _image = __webpack_require__(72);\n\nvar _image2 = _interopRequireDefault(_image);\n\nvar _video = __webpack_require__(73);\n\nvar _video2 = _interopRequireDefault(_video);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _formula = __webpack_require__(74);\n\nvar _formula2 = _interopRequireDefault(_formula);\n\nvar _syntax = __webpack_require__(75);\n\nvar _syntax2 = _interopRequireDefault(_syntax);\n\nvar _toolbar = __webpack_require__(57);\n\nvar _toolbar2 = _interopRequireDefault(_toolbar);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nvar _colorPicker = __webpack_require__(59);\n\nvar _colorPicker2 = _interopRequireDefault(_colorPicker);\n\nvar _iconPicker = __webpack_require__(60);\n\nvar _iconPicker2 = _interopRequireDefault(_iconPicker);\n\nvar _tooltip = __webpack_require__(61);\n\nvar _tooltip2 = _interopRequireDefault(_tooltip);\n\nvar _bubble = __webpack_require__(108);\n\nvar _bubble2 = _interopRequireDefault(_bubble);\n\nvar _snow = __webpack_require__(62);\n\nvar _snow2 = _interopRequireDefault(_snow);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_core2.default.register({\n 'attributors/attribute/direction': _direction.DirectionAttribute,\n\n 'attributors/class/align': _align.AlignClass,\n 'attributors/class/background': _background.BackgroundClass,\n 'attributors/class/color': _color.ColorClass,\n 'attributors/class/direction': _direction.DirectionClass,\n 'attributors/class/font': _font.FontClass,\n 'attributors/class/size': _size.SizeClass,\n\n 'attributors/style/align': _align.AlignStyle,\n 'attributors/style/background': _background.BackgroundStyle,\n 'attributors/style/color': _color.ColorStyle,\n 'attributors/style/direction': _direction.DirectionStyle,\n 'attributors/style/font': _font.FontStyle,\n 'attributors/style/size': _size.SizeStyle\n}, true);\n\n_core2.default.register({\n 'formats/align': _align.AlignClass,\n 'formats/direction': _direction.DirectionClass,\n 'formats/indent': _indent.IndentClass,\n\n 'formats/background': _background.BackgroundStyle,\n 'formats/color': _color.ColorStyle,\n 'formats/font': _font.FontClass,\n 'formats/size': _size.SizeClass,\n\n 'formats/blockquote': _blockquote2.default,\n 'formats/code-block': _code2.default,\n 'formats/header': _header2.default,\n 'formats/list': _list2.default,\n\n 'formats/bold': _bold2.default,\n 'formats/code': _code.Code,\n 'formats/italic': _italic2.default,\n 'formats/link': _link2.default,\n 'formats/script': _script2.default,\n 'formats/strike': _strike2.default,\n 'formats/underline': _underline2.default,\n\n 'formats/image': _image2.default,\n 'formats/video': _video2.default,\n\n 'formats/list/item': _list.ListItem,\n\n 'modules/formula': _formula2.default,\n 'modules/syntax': _syntax2.default,\n 'modules/toolbar': _toolbar2.default,\n\n 'themes/bubble': _bubble2.default,\n 'themes/snow': _snow2.default,\n\n 'ui/icons': _icons2.default,\n 'ui/picker': _picker2.default,\n 'ui/icon-picker': _iconPicker2.default,\n 'ui/color-picker': _colorPicker2.default,\n 'ui/tooltip': _tooltip2.default\n}, true);\n\nexports.default = _core2.default;\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.IndentClass = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar IdentAttributor = function (_Parchment$Attributor) {\n _inherits(IdentAttributor, _Parchment$Attributor);\n\n function IdentAttributor() {\n _classCallCheck(this, IdentAttributor);\n\n return _possibleConstructorReturn(this, (IdentAttributor.__proto__ || Object.getPrototypeOf(IdentAttributor)).apply(this, arguments));\n }\n\n _createClass(IdentAttributor, [{\n key: 'add',\n value: function add(node, value) {\n if (value === '+1' || value === '-1') {\n var indent = this.value(node) || 0;\n value = value === '+1' ? indent + 1 : indent - 1;\n }\n if (value === 0) {\n this.remove(node);\n return true;\n } else {\n return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'add', this).call(this, node, value);\n }\n }\n }, {\n key: 'canAdd',\n value: function canAdd(node, value) {\n return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, value) || _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, parseInt(value));\n }\n }, {\n key: 'value',\n value: function value(node) {\n return parseInt(_get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'value', this).call(this, node)) || undefined; // Don't return NaN\n }\n }]);\n\n return IdentAttributor;\n}(_parchment2.default.Attributor.Class);\n\nvar IndentClass = new IdentAttributor('indent', 'ql-indent', {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: [1, 2, 3, 4, 5, 6, 7, 8]\n});\n\nexports.IndentClass = IndentClass;\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Blockquote = function (_Block) {\n _inherits(Blockquote, _Block);\n\n function Blockquote() {\n _classCallCheck(this, Blockquote);\n\n return _possibleConstructorReturn(this, (Blockquote.__proto__ || Object.getPrototypeOf(Blockquote)).apply(this, arguments));\n }\n\n return Blockquote;\n}(_block2.default);\n\nBlockquote.blotName = 'blockquote';\nBlockquote.tagName = 'blockquote';\n\nexports.default = Blockquote;\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Header = function (_Block) {\n _inherits(Header, _Block);\n\n function Header() {\n _classCallCheck(this, Header);\n\n return _possibleConstructorReturn(this, (Header.__proto__ || Object.getPrototypeOf(Header)).apply(this, arguments));\n }\n\n _createClass(Header, null, [{\n key: 'formats',\n value: function formats(domNode) {\n return this.tagName.indexOf(domNode.tagName) + 1;\n }\n }]);\n\n return Header;\n}(_block2.default);\n\nHeader.blotName = 'header';\nHeader.tagName = ['H1', 'H2', 'H3', 'H4', 'H5', 'H6'];\n\nexports.default = Header;\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.ListItem = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ListItem = function (_Block) {\n _inherits(ListItem, _Block);\n\n function ListItem() {\n _classCallCheck(this, ListItem);\n\n return _possibleConstructorReturn(this, (ListItem.__proto__ || Object.getPrototypeOf(ListItem)).apply(this, arguments));\n }\n\n _createClass(ListItem, [{\n key: 'format',\n value: function format(name, value) {\n if (name === List.blotName && !value) {\n this.replaceWith(_parchment2.default.create(this.statics.scope));\n } else {\n _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'format', this).call(this, name, value);\n }\n }\n }, {\n key: 'remove',\n value: function remove() {\n if (this.prev == null && this.next == null) {\n this.parent.remove();\n } else {\n _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'remove', this).call(this);\n }\n }\n }, {\n key: 'replaceWith',\n value: function replaceWith(name, value) {\n this.parent.isolate(this.offset(this.parent), this.length());\n if (name === this.parent.statics.blotName) {\n this.parent.replaceWith(name, value);\n return this;\n } else {\n this.parent.unwrap();\n return _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'replaceWith', this).call(this, name, value);\n }\n }\n }], [{\n key: 'formats',\n value: function formats(domNode) {\n return domNode.tagName === this.tagName ? undefined : _get(ListItem.__proto__ || Object.getPrototypeOf(ListItem), 'formats', this).call(this, domNode);\n }\n }]);\n\n return ListItem;\n}(_block2.default);\n\nListItem.blotName = 'list-item';\nListItem.tagName = 'LI';\n\nvar List = function (_Container) {\n _inherits(List, _Container);\n\n _createClass(List, null, [{\n key: 'create',\n value: function create(value) {\n var tagName = value === 'ordered' ? 'OL' : 'UL';\n var node = _get(List.__proto__ || Object.getPrototypeOf(List), 'create', this).call(this, tagName);\n if (value === 'checked' || value === 'unchecked') {\n node.setAttribute('data-checked', value === 'checked');\n }\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n if (domNode.tagName === 'OL') return 'ordered';\n if (domNode.tagName === 'UL') {\n if (domNode.hasAttribute('data-checked')) {\n return domNode.getAttribute('data-checked') === 'true' ? 'checked' : 'unchecked';\n } else {\n return 'bullet';\n }\n }\n return undefined;\n }\n }]);\n\n function List(domNode) {\n _classCallCheck(this, List);\n\n var _this2 = _possibleConstructorReturn(this, (List.__proto__ || Object.getPrototypeOf(List)).call(this, domNode));\n\n var listEventHandler = function listEventHandler(e) {\n if (e.target.parentNode !== domNode) return;\n var format = _this2.statics.formats(domNode);\n var blot = _parchment2.default.find(e.target);\n if (format === 'checked') {\n blot.format('list', 'unchecked');\n } else if (format === 'unchecked') {\n blot.format('list', 'checked');\n }\n };\n\n domNode.addEventListener('touchstart', listEventHandler);\n domNode.addEventListener('mousedown', listEventHandler);\n return _this2;\n }\n\n _createClass(List, [{\n key: 'format',\n value: function format(name, value) {\n if (this.children.length > 0) {\n this.children.tail.format(name, value);\n }\n }\n }, {\n key: 'formats',\n value: function formats() {\n // We don't inherit from FormatBlot\n return _defineProperty({}, this.statics.blotName, this.statics.formats(this.domNode));\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n if (blot instanceof ListItem) {\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'insertBefore', this).call(this, blot, ref);\n } else {\n var index = ref == null ? this.length() : ref.offset(this);\n var after = this.split(index);\n after.parent.insertBefore(blot, after);\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'optimize', this).call(this, context);\n var next = this.next;\n if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && next.domNode.tagName === this.domNode.tagName && next.domNode.getAttribute('data-checked') === this.domNode.getAttribute('data-checked')) {\n next.moveChildren(this);\n next.remove();\n }\n }\n }, {\n key: 'replace',\n value: function replace(target) {\n if (target.statics.blotName !== this.statics.blotName) {\n var item = _parchment2.default.create(this.statics.defaultChild);\n target.moveChildren(item);\n this.appendChild(item);\n }\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'replace', this).call(this, target);\n }\n }]);\n\n return List;\n}(_container2.default);\n\nList.blotName = 'list';\nList.scope = _parchment2.default.Scope.BLOCK_BLOT;\nList.tagName = ['OL', 'UL'];\nList.defaultChild = 'list-item';\nList.allowedChildren = [ListItem];\n\nexports.ListItem = ListItem;\nexports.default = List;\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _bold = __webpack_require__(56);\n\nvar _bold2 = _interopRequireDefault(_bold);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Italic = function (_Bold) {\n _inherits(Italic, _Bold);\n\n function Italic() {\n _classCallCheck(this, Italic);\n\n return _possibleConstructorReturn(this, (Italic.__proto__ || Object.getPrototypeOf(Italic)).apply(this, arguments));\n }\n\n return Italic;\n}(_bold2.default);\n\nItalic.blotName = 'italic';\nItalic.tagName = ['EM', 'I'];\n\nexports.default = Italic;\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Script = function (_Inline) {\n _inherits(Script, _Inline);\n\n function Script() {\n _classCallCheck(this, Script);\n\n return _possibleConstructorReturn(this, (Script.__proto__ || Object.getPrototypeOf(Script)).apply(this, arguments));\n }\n\n _createClass(Script, null, [{\n key: 'create',\n value: function create(value) {\n if (value === 'super') {\n return document.createElement('sup');\n } else if (value === 'sub') {\n return document.createElement('sub');\n } else {\n return _get(Script.__proto__ || Object.getPrototypeOf(Script), 'create', this).call(this, value);\n }\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n if (domNode.tagName === 'SUB') return 'sub';\n if (domNode.tagName === 'SUP') return 'super';\n return undefined;\n }\n }]);\n\n return Script;\n}(_inline2.default);\n\nScript.blotName = 'script';\nScript.tagName = ['SUB', 'SUP'];\n\nexports.default = Script;\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Strike = function (_Inline) {\n _inherits(Strike, _Inline);\n\n function Strike() {\n _classCallCheck(this, Strike);\n\n return _possibleConstructorReturn(this, (Strike.__proto__ || Object.getPrototypeOf(Strike)).apply(this, arguments));\n }\n\n return Strike;\n}(_inline2.default);\n\nStrike.blotName = 'strike';\nStrike.tagName = 'S';\n\nexports.default = Strike;\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Underline = function (_Inline) {\n _inherits(Underline, _Inline);\n\n function Underline() {\n _classCallCheck(this, Underline);\n\n return _possibleConstructorReturn(this, (Underline.__proto__ || Object.getPrototypeOf(Underline)).apply(this, arguments));\n }\n\n return Underline;\n}(_inline2.default);\n\nUnderline.blotName = 'underline';\nUnderline.tagName = 'U';\n\nexports.default = Underline;\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _link = __webpack_require__(27);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ATTRIBUTES = ['alt', 'height', 'width'];\n\nvar Image = function (_Parchment$Embed) {\n _inherits(Image, _Parchment$Embed);\n\n function Image() {\n _classCallCheck(this, Image);\n\n return _possibleConstructorReturn(this, (Image.__proto__ || Object.getPrototypeOf(Image)).apply(this, arguments));\n }\n\n _createClass(Image, [{\n key: 'format',\n value: function format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n _get(Image.prototype.__proto__ || Object.getPrototypeOf(Image.prototype), 'format', this).call(this, name, value);\n }\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Image.__proto__ || Object.getPrototypeOf(Image), 'create', this).call(this, value);\n if (typeof value === 'string') {\n node.setAttribute('src', this.sanitize(value));\n }\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n }, {\n key: 'match',\n value: function match(url) {\n return (/\\.(jpe?g|gif|png)$/.test(url) || /^data:image\\/.+;base64/.test(url)\n );\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return (0, _link.sanitize)(url, ['http', 'https', 'data']) ? url : '//:0';\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n\n return Image;\n}(_parchment2.default.Embed);\n\nImage.blotName = 'image';\nImage.tagName = 'IMG';\n\nexports.default = Image;\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _block = __webpack_require__(4);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ATTRIBUTES = ['height', 'width'];\n\nvar Video = function (_BlockEmbed) {\n _inherits(Video, _BlockEmbed);\n\n function Video() {\n _classCallCheck(this, Video);\n\n return _possibleConstructorReturn(this, (Video.__proto__ || Object.getPrototypeOf(Video)).apply(this, arguments));\n }\n\n _createClass(Video, [{\n key: 'format',\n value: function format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n _get(Video.prototype.__proto__ || Object.getPrototypeOf(Video.prototype), 'format', this).call(this, name, value);\n }\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Video.__proto__ || Object.getPrototypeOf(Video), 'create', this).call(this, value);\n node.setAttribute('frameborder', '0');\n node.setAttribute('allowfullscreen', true);\n node.setAttribute('src', this.sanitize(value));\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return _link2.default.sanitize(url);\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n\n return Video;\n}(_block.BlockEmbed);\n\nVideo.blotName = 'video';\nVideo.className = 'ql-video';\nVideo.tagName = 'IFRAME';\n\nexports.default = Video;\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.FormulaBlot = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _embed = __webpack_require__(35);\n\nvar _embed2 = _interopRequireDefault(_embed);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar FormulaBlot = function (_Embed) {\n _inherits(FormulaBlot, _Embed);\n\n function FormulaBlot() {\n _classCallCheck(this, FormulaBlot);\n\n return _possibleConstructorReturn(this, (FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot)).apply(this, arguments));\n }\n\n _createClass(FormulaBlot, null, [{\n key: 'create',\n value: function create(value) {\n var node = _get(FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot), 'create', this).call(this, value);\n if (typeof value === 'string') {\n window.katex.render(value, node, {\n throwOnError: false,\n errorColor: '#f00'\n });\n node.setAttribute('data-value', value);\n }\n return node;\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('data-value');\n }\n }]);\n\n return FormulaBlot;\n}(_embed2.default);\n\nFormulaBlot.blotName = 'formula';\nFormulaBlot.className = 'ql-formula';\nFormulaBlot.tagName = 'SPAN';\n\nvar Formula = function (_Module) {\n _inherits(Formula, _Module);\n\n _createClass(Formula, null, [{\n key: 'register',\n value: function register() {\n _quill2.default.register(FormulaBlot, true);\n }\n }]);\n\n function Formula() {\n _classCallCheck(this, Formula);\n\n var _this2 = _possibleConstructorReturn(this, (Formula.__proto__ || Object.getPrototypeOf(Formula)).call(this));\n\n if (window.katex == null) {\n throw new Error('Formula module requires KaTeX.');\n }\n return _this2;\n }\n\n return Formula;\n}(_module2.default);\n\nexports.FormulaBlot = FormulaBlot;\nexports.default = Formula;\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.CodeToken = exports.CodeBlock = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SyntaxCodeBlock = function (_CodeBlock) {\n _inherits(SyntaxCodeBlock, _CodeBlock);\n\n function SyntaxCodeBlock() {\n _classCallCheck(this, SyntaxCodeBlock);\n\n return _possibleConstructorReturn(this, (SyntaxCodeBlock.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock)).apply(this, arguments));\n }\n\n _createClass(SyntaxCodeBlock, [{\n key: 'replaceWith',\n value: function replaceWith(block) {\n this.domNode.textContent = this.domNode.textContent;\n this.attach();\n _get(SyntaxCodeBlock.prototype.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock.prototype), 'replaceWith', this).call(this, block);\n }\n }, {\n key: 'highlight',\n value: function highlight(_highlight) {\n var text = this.domNode.textContent;\n if (this.cachedText !== text) {\n if (text.trim().length > 0 || this.cachedText == null) {\n this.domNode.innerHTML = _highlight(text);\n this.domNode.normalize();\n this.attach();\n }\n this.cachedText = text;\n }\n }\n }]);\n\n return SyntaxCodeBlock;\n}(_code2.default);\n\nSyntaxCodeBlock.className = 'ql-syntax';\n\nvar CodeToken = new _parchment2.default.Attributor.Class('token', 'hljs', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nvar Syntax = function (_Module) {\n _inherits(Syntax, _Module);\n\n _createClass(Syntax, null, [{\n key: 'register',\n value: function register() {\n _quill2.default.register(CodeToken, true);\n _quill2.default.register(SyntaxCodeBlock, true);\n }\n }]);\n\n function Syntax(quill, options) {\n _classCallCheck(this, Syntax);\n\n var _this2 = _possibleConstructorReturn(this, (Syntax.__proto__ || Object.getPrototypeOf(Syntax)).call(this, quill, options));\n\n if (typeof _this2.options.highlight !== 'function') {\n throw new Error('Syntax module requires highlight.js. Please include the library on the page before Quill.');\n }\n var timer = null;\n _this2.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () {\n clearTimeout(timer);\n timer = setTimeout(function () {\n _this2.highlight();\n timer = null;\n }, _this2.options.interval);\n });\n _this2.highlight();\n return _this2;\n }\n\n _createClass(Syntax, [{\n key: 'highlight',\n value: function highlight() {\n var _this3 = this;\n\n if (this.quill.selection.composing) return;\n this.quill.update(_quill2.default.sources.USER);\n var range = this.quill.getSelection();\n this.quill.scroll.descendants(SyntaxCodeBlock).forEach(function (code) {\n code.highlight(_this3.options.highlight);\n });\n this.quill.update(_quill2.default.sources.SILENT);\n if (range != null) {\n this.quill.setSelection(range, _quill2.default.sources.SILENT);\n }\n }\n }]);\n\n return Syntax;\n}(_module2.default);\n\nSyntax.DEFAULTS = {\n highlight: function () {\n if (window.hljs == null) return null;\n return function (text) {\n var result = window.hljs.highlightAuto(text);\n return result.value;\n };\n }(),\n interval: 1000\n};\n\nexports.CodeBlock = SyntaxCodeBlock;\nexports.CodeToken = CodeToken;\nexports.default = Syntax;\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=3 x2=15 y1=9 y2=9></line> <line class=ql-stroke x1=3 x2=13 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=9 y1=4 y2=4></line> </svg>\";\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=15 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=14 x2=4 y1=14 y2=14></line> <line class=ql-stroke x1=12 x2=6 y1=4 y2=4></line> </svg>\";\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=15 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=15 x2=5 y1=14 y2=14></line> <line class=ql-stroke x1=15 x2=9 y1=4 y2=4></line> </svg>\";\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=15 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=15 x2=3 y1=14 y2=14></line> <line class=ql-stroke x1=15 x2=3 y1=4 y2=4></line> </svg>\";\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <g class=\\\"ql-fill ql-color-label\\\"> <polygon points=\\\"6 6.868 6 6 5 6 5 7 5.942 7 6 6.868\\\"></polygon> <rect height=1 width=1 x=4 y=4></rect> <polygon points=\\\"6.817 5 6 5 6 6 6.38 6 6.817 5\\\"></polygon> <rect height=1 width=1 x=2 y=6></rect> <rect height=1 width=1 x=3 y=5></rect> <rect height=1 width=1 x=4 y=7></rect> <polygon points=\\\"4 11.439 4 11 3 11 3 12 3.755 12 4 11.439\\\"></polygon> <rect height=1 width=1 x=2 y=12></rect> <rect height=1 width=1 x=2 y=9></rect> <rect height=1 width=1 x=2 y=15></rect> <polygon points=\\\"4.63 10 4 10 4 11 4.192 11 4.63 10\\\"></polygon> <rect height=1 width=1 x=3 y=8></rect> <path d=M10.832,4.2L11,4.582V4H10.708A1.948,1.948,0,0,1,10.832,4.2Z></path> <path d=M7,4.582L7.168,4.2A1.929,1.929,0,0,1,7.292,4H7V4.582Z></path> <path d=M8,13H7.683l-0.351.8a1.933,1.933,0,0,1-.124.2H8V13Z></path> <rect height=1 width=1 x=12 y=2></rect> <rect height=1 width=1 x=11 y=3></rect> <path d=M9,3H8V3.282A1.985,1.985,0,0,1,9,3Z></path> <rect height=1 width=1 x=2 y=3></rect> <rect height=1 width=1 x=6 y=2></rect> <rect height=1 width=1 x=3 y=2></rect> <rect height=1 width=1 x=5 y=3></rect> <rect height=1 width=1 x=9 y=2></rect> <rect height=1 width=1 x=15 y=14></rect> <polygon points=\\\"13.447 10.174 13.469 10.225 13.472 10.232 13.808 11 14 11 14 10 13.37 10 13.447 10.174\\\"></polygon> <rect height=1 width=1 x=13 y=7></rect> <rect height=1 width=1 x=15 y=5></rect> <rect height=1 width=1 x=14 y=6></rect> <rect height=1 width=1 x=15 y=8></rect> <rect height=1 width=1 x=14 y=9></rect> <path d=M3.775,14H3v1H4V14.314A1.97,1.97,0,0,1,3.775,14Z></path> <rect height=1 width=1 x=14 y=3></rect> <polygon points=\\\"12 6.868 12 6 11.62 6 12 6.868\\\"></polygon> <rect height=1 width=1 x=15 y=2></rect> <rect height=1 width=1 x=12 y=5></rect> <rect height=1 width=1 x=13 y=4></rect> <polygon points=\\\"12.933 9 13 9 13 8 12.495 8 12.933 9\\\"></polygon> <rect height=1 width=1 x=9 y=14></rect> <rect height=1 width=1 x=8 y=15></rect> <path d=M6,14.926V15H7V14.316A1.993,1.993,0,0,1,6,14.926Z></path> <rect height=1 width=1 x=5 y=15></rect> <path d=M10.668,13.8L10.317,13H10v1h0.792A1.947,1.947,0,0,1,10.668,13.8Z></path> <rect height=1 width=1 x=11 y=15></rect> <path d=M14.332,12.2a1.99,1.99,0,0,1,.166.8H15V12H14.245Z></path> <rect height=1 width=1 x=14 y=15></rect> <rect height=1 width=1 x=15 y=11></rect> </g> <polyline class=ql-stroke points=\\\"5.5 13 9 5 12.5 13\\\"></polyline> <line class=ql-stroke x1=11.63 x2=6.38 y1=11 y2=11></line> </svg>\";\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <rect class=\\\"ql-fill ql-stroke\\\" height=3 width=3 x=4 y=5></rect> <rect class=\\\"ql-fill ql-stroke\\\" height=3 width=3 x=11 y=5></rect> <path class=\\\"ql-even ql-fill ql-stroke\\\" d=M7,8c0,4.031-3,5-3,5></path> <path class=\\\"ql-even ql-fill ql-stroke\\\" d=M14,8c0,4.031-3,5-3,5></path> </svg>\";\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-stroke d=M5,4H9.5A2.5,2.5,0,0,1,12,6.5v0A2.5,2.5,0,0,1,9.5,9H5A0,0,0,0,1,5,9V4A0,0,0,0,1,5,4Z></path> <path class=ql-stroke d=M5,9h5.5A2.5,2.5,0,0,1,13,11.5v0A2.5,2.5,0,0,1,10.5,14H5a0,0,0,0,1,0,0V9A0,0,0,0,1,5,9Z></path> </svg>\";\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg class=\\\"\\\" viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=5 x2=13 y1=3 y2=3></line> <line class=ql-stroke x1=6 x2=9.35 y1=12 y2=3></line> <line class=ql-stroke x1=11 x2=15 y1=11 y2=15></line> <line class=ql-stroke x1=15 x2=11 y1=11 y2=15></line> <rect class=ql-fill height=1 rx=0.5 ry=0.5 width=7 x=2 y=14></rect> </svg>\";\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=\\\"ql-color-label ql-stroke ql-transparent\\\" x1=3 x2=15 y1=15 y2=15></line> <polyline class=ql-stroke points=\\\"5.5 11 9 3 12.5 11\\\"></polyline> <line class=ql-stroke x1=11.63 x2=6.38 y1=9 y2=9></line> </svg>\";\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <polygon class=\\\"ql-stroke ql-fill\\\" points=\\\"3 11 5 9 3 7 3 11\\\"></polygon> <line class=\\\"ql-stroke ql-fill\\\" x1=15 x2=11 y1=4 y2=4></line> <path class=ql-fill d=M11,3a3,3,0,0,0,0,6h1V3H11Z></path> <rect class=ql-fill height=11 width=1 x=11 y=4></rect> <rect class=ql-fill height=11 width=1 x=13 y=4></rect> </svg>\";\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <polygon class=\\\"ql-stroke ql-fill\\\" points=\\\"15 12 13 10 15 8 15 12\\\"></polygon> <line class=\\\"ql-stroke ql-fill\\\" x1=9 x2=5 y1=4 y2=4></line> <path class=ql-fill d=M5,3A3,3,0,0,0,5,9H6V3H5Z></path> <rect class=ql-fill height=11 width=1 x=5 y=4></rect> <rect class=ql-fill height=11 width=1 x=7 y=4></rect> </svg>\";\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M14,16H4a1,1,0,0,1,0-2H14A1,1,0,0,1,14,16Z /> <path class=ql-fill d=M14,4H4A1,1,0,0,1,4,2H14A1,1,0,0,1,14,4Z /> <rect class=ql-fill x=3 y=6 width=12 height=6 rx=1 ry=1 /> </svg>\";\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M13,16H5a1,1,0,0,1,0-2h8A1,1,0,0,1,13,16Z /> <path class=ql-fill d=M13,4H5A1,1,0,0,1,5,2h8A1,1,0,0,1,13,4Z /> <rect class=ql-fill x=2 y=6 width=14 height=6 rx=1 ry=1 /> </svg>\";\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M15,8H13a1,1,0,0,1,0-2h2A1,1,0,0,1,15,8Z /> <path class=ql-fill d=M15,12H13a1,1,0,0,1,0-2h2A1,1,0,0,1,15,12Z /> <path class=ql-fill d=M15,16H5a1,1,0,0,1,0-2H15A1,1,0,0,1,15,16Z /> <path class=ql-fill d=M15,4H5A1,1,0,0,1,5,2H15A1,1,0,0,1,15,4Z /> <rect class=ql-fill x=2 y=6 width=8 height=6 rx=1 ry=1 /> </svg>\";\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M5,8H3A1,1,0,0,1,3,6H5A1,1,0,0,1,5,8Z /> <path class=ql-fill d=M5,12H3a1,1,0,0,1,0-2H5A1,1,0,0,1,5,12Z /> <path class=ql-fill d=M13,16H3a1,1,0,0,1,0-2H13A1,1,0,0,1,13,16Z /> <path class=ql-fill d=M13,4H3A1,1,0,0,1,3,2H13A1,1,0,0,1,13,4Z /> <rect class=ql-fill x=8 y=6 width=8 height=6 rx=1 ry=1 transform=\\\"translate(24 18) rotate(-180)\\\"/> </svg>\";\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M11.759,2.482a2.561,2.561,0,0,0-3.53.607A7.656,7.656,0,0,0,6.8,6.2C6.109,9.188,5.275,14.677,4.15,14.927a1.545,1.545,0,0,0-1.3-.933A0.922,0.922,0,0,0,2,15.036S1.954,16,4.119,16s3.091-2.691,3.7-5.553c0.177-.826.36-1.726,0.554-2.6L8.775,6.2c0.381-1.421.807-2.521,1.306-2.676a1.014,1.014,0,0,0,1.02.56A0.966,0.966,0,0,0,11.759,2.482Z></path> <rect class=ql-fill height=1.6 rx=0.8 ry=0.8 width=5 x=5.15 y=6.2></rect> <path class=ql-fill d=M13.663,12.027a1.662,1.662,0,0,1,.266-0.276q0.193,0.069.456,0.138a2.1,2.1,0,0,0,.535.069,1.075,1.075,0,0,0,.767-0.3,1.044,1.044,0,0,0,.314-0.8,0.84,0.84,0,0,0-.238-0.619,0.8,0.8,0,0,0-.594-0.239,1.154,1.154,0,0,0-.781.3,4.607,4.607,0,0,0-.781,1q-0.091.15-.218,0.346l-0.246.38c-0.068-.288-0.137-0.582-0.212-0.885-0.459-1.847-2.494-.984-2.941-0.8-0.482.2-.353,0.647-0.094,0.529a0.869,0.869,0,0,1,1.281.585c0.217,0.751.377,1.436,0.527,2.038a5.688,5.688,0,0,1-.362.467,2.69,2.69,0,0,1-.264.271q-0.221-.08-0.471-0.147a2.029,2.029,0,0,0-.522-0.066,1.079,1.079,0,0,0-.768.3A1.058,1.058,0,0,0,9,15.131a0.82,0.82,0,0,0,.832.852,1.134,1.134,0,0,0,.787-0.3,5.11,5.11,0,0,0,.776-0.993q0.141-.219.215-0.34c0.046-.076.122-0.194,0.223-0.346a2.786,2.786,0,0,0,.918,1.726,2.582,2.582,0,0,0,2.376-.185c0.317-.181.212-0.565,0-0.494A0.807,0.807,0,0,1,14.176,15a5.159,5.159,0,0,1-.913-2.446l0,0Q13.487,12.24,13.663,12.027Z></path> </svg>\";\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewBox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M10,4V14a1,1,0,0,1-2,0V10H3v4a1,1,0,0,1-2,0V4A1,1,0,0,1,3,4V8H8V4a1,1,0,0,1,2,0Zm6.06787,9.209H14.98975V7.59863a.54085.54085,0,0,0-.605-.60547h-.62744a1.01119,1.01119,0,0,0-.748.29688L11.645,8.56641a.5435.5435,0,0,0-.022.8584l.28613.30762a.53861.53861,0,0,0,.84717.0332l.09912-.08789a1.2137,1.2137,0,0,0,.2417-.35254h.02246s-.01123.30859-.01123.60547V13.209H12.041a.54085.54085,0,0,0-.605.60547v.43945a.54085.54085,0,0,0,.605.60547h4.02686a.54085.54085,0,0,0,.605-.60547v-.43945A.54085.54085,0,0,0,16.06787,13.209Z /> </svg>\";\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewBox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M16.73975,13.81445v.43945a.54085.54085,0,0,1-.605.60547H11.855a.58392.58392,0,0,1-.64893-.60547V14.0127c0-2.90527,3.39941-3.42187,3.39941-4.55469a.77675.77675,0,0,0-.84717-.78125,1.17684,1.17684,0,0,0-.83594.38477c-.2749.26367-.561.374-.85791.13184l-.4292-.34082c-.30811-.24219-.38525-.51758-.1543-.81445a2.97155,2.97155,0,0,1,2.45361-1.17676,2.45393,2.45393,0,0,1,2.68408,2.40918c0,2.45312-3.1792,2.92676-3.27832,3.93848h2.79443A.54085.54085,0,0,1,16.73975,13.81445ZM9,3A.99974.99974,0,0,0,8,4V8H3V4A1,1,0,0,0,1,4V14a1,1,0,0,0,2,0V10H8v4a1,1,0,0,0,2,0V4A.99974.99974,0,0,0,9,3Z /> </svg>\";\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=7 x2=13 y1=4 y2=4></line> <line class=ql-stroke x1=5 x2=11 y1=14 y2=14></line> <line class=ql-stroke x1=8 x2=10 y1=14 y2=4></line> </svg>\";\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <rect class=ql-stroke height=10 width=12 x=3 y=4></rect> <circle class=ql-fill cx=6 cy=7 r=1></circle> <polyline class=\\\"ql-even ql-fill\\\" points=\\\"5 12 5 11 7 9 8 10 11 7 13 9 13 12 5 12\\\"></polyline> </svg>\";\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=3 x2=15 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=9 x2=15 y1=9 y2=9></line> <polyline class=\\\"ql-fill ql-stroke\\\" points=\\\"3 7 3 11 5 9 3 7\\\"></polyline> </svg>\";\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=3 x2=15 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=9 x2=15 y1=9 y2=9></line> <polyline class=ql-stroke points=\\\"5 7 5 11 3 9 5 7\\\"></polyline> </svg>\";\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=7 x2=11 y1=7 y2=11></line> <path class=\\\"ql-even ql-stroke\\\" d=M8.9,4.577a3.476,3.476,0,0,1,.36,4.679A3.476,3.476,0,0,1,4.577,8.9C3.185,7.5,2.035,6.4,4.217,4.217S7.5,3.185,8.9,4.577Z></path> <path class=\\\"ql-even ql-stroke\\\" d=M13.423,9.1a3.476,3.476,0,0,0-4.679-.36,3.476,3.476,0,0,0,.36,4.679c1.392,1.392,2.5,2.542,4.679.36S14.815,10.5,13.423,9.1Z></path> </svg>\";\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=7 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=7 x2=15 y1=9 y2=9></line> <line class=ql-stroke x1=7 x2=15 y1=14 y2=14></line> <line class=\\\"ql-stroke ql-thin\\\" x1=2.5 x2=4.5 y1=5.5 y2=5.5></line> <path class=ql-fill d=M3.5,6A0.5,0.5,0,0,1,3,5.5V3.085l-0.276.138A0.5,0.5,0,0,1,2.053,3c-0.124-.247-0.023-0.324.224-0.447l1-.5A0.5,0.5,0,0,1,4,2.5v3A0.5,0.5,0,0,1,3.5,6Z></path> <path class=\\\"ql-stroke ql-thin\\\" d=M4.5,10.5h-2c0-.234,1.85-1.076,1.85-2.234A0.959,0.959,0,0,0,2.5,8.156></path> <path class=\\\"ql-stroke ql-thin\\\" d=M2.5,14.846a0.959,0.959,0,0,0,1.85-.109A0.7,0.7,0,0,0,3.75,14a0.688,0.688,0,0,0,.6-0.736,0.959,0.959,0,0,0-1.85-.109></path> </svg>\";\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=6 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=6 x2=15 y1=9 y2=9></line> <line class=ql-stroke x1=6 x2=15 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=3 y1=4 y2=4></line> <line class=ql-stroke x1=3 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=3 x2=3 y1=14 y2=14></line> </svg>\";\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg class=\\\"\\\" viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=9 x2=15 y1=4 y2=4></line> <polyline class=ql-stroke points=\\\"3 4 4 5 6 3\\\"></polyline> <line class=ql-stroke x1=9 x2=15 y1=14 y2=14></line> <polyline class=ql-stroke points=\\\"3 14 4 15 6 13\\\"></polyline> <line class=ql-stroke x1=9 x2=15 y1=9 y2=9></line> <polyline class=ql-stroke points=\\\"3 9 4 10 6 8\\\"></polyline> </svg>\";\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M15.5,15H13.861a3.858,3.858,0,0,0,1.914-2.975,1.8,1.8,0,0,0-1.6-1.751A1.921,1.921,0,0,0,12.021,11.7a0.50013,0.50013,0,1,0,.957.291h0a0.914,0.914,0,0,1,1.053-.725,0.81,0.81,0,0,1,.744.762c0,1.076-1.16971,1.86982-1.93971,2.43082A1.45639,1.45639,0,0,0,12,15.5a0.5,0.5,0,0,0,.5.5h3A0.5,0.5,0,0,0,15.5,15Z /> <path class=ql-fill d=M9.65,5.241a1,1,0,0,0-1.409.108L6,7.964,3.759,5.349A1,1,0,0,0,2.192,6.59178Q2.21541,6.6213,2.241,6.649L4.684,9.5,2.241,12.35A1,1,0,0,0,3.71,13.70722q0.02557-.02768.049-0.05722L6,11.036,8.241,13.65a1,1,0,1,0,1.567-1.24277Q9.78459,12.3777,9.759,12.35L7.316,9.5,9.759,6.651A1,1,0,0,0,9.65,5.241Z /> </svg>\";\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M15.5,7H13.861a4.015,4.015,0,0,0,1.914-2.975,1.8,1.8,0,0,0-1.6-1.751A1.922,1.922,0,0,0,12.021,3.7a0.5,0.5,0,1,0,.957.291,0.917,0.917,0,0,1,1.053-.725,0.81,0.81,0,0,1,.744.762c0,1.077-1.164,1.925-1.934,2.486A1.423,1.423,0,0,0,12,7.5a0.5,0.5,0,0,0,.5.5h3A0.5,0.5,0,0,0,15.5,7Z /> <path class=ql-fill d=M9.651,5.241a1,1,0,0,0-1.41.108L6,7.964,3.759,5.349a1,1,0,1,0-1.519,1.3L4.683,9.5,2.241,12.35a1,1,0,1,0,1.519,1.3L6,11.036,8.241,13.65a1,1,0,0,0,1.519-1.3L7.317,9.5,9.759,6.651A1,1,0,0,0,9.651,5.241Z /> </svg>\";\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=\\\"ql-stroke ql-thin\\\" x1=15.5 x2=2.5 y1=8.5 y2=9.5></line> <path class=ql-fill d=M9.007,8C6.542,7.791,6,7.519,6,6.5,6,5.792,7.283,5,9,5c1.571,0,2.765.679,2.969,1.309a1,1,0,0,0,1.9-.617C13.356,4.106,11.354,3,9,3,6.2,3,4,4.538,4,6.5a3.2,3.2,0,0,0,.5,1.843Z></path> <path class=ql-fill d=M8.984,10C11.457,10.208,12,10.479,12,11.5c0,0.708-1.283,1.5-3,1.5-1.571,0-2.765-.679-2.969-1.309a1,1,0,1,0-1.9.617C4.644,13.894,6.646,15,9,15c2.8,0,5-1.538,5-3.5a3.2,3.2,0,0,0-.5-1.843Z></path> </svg>\";\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-stroke d=M5,3V9a4.012,4.012,0,0,0,4,4H9a4.012,4.012,0,0,0,4-4V3></path> <rect class=ql-fill height=1 rx=0.5 ry=0.5 width=12 x=3 y=15></rect> </svg>\";\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <rect class=ql-stroke height=12 width=12 x=3 y=3></rect> <rect class=ql-fill height=12 width=1 x=5 y=3></rect> <rect class=ql-fill height=12 width=1 x=12 y=3></rect> <rect class=ql-fill height=2 width=8 x=5 y=8></rect> <rect class=ql-fill height=1 width=3 x=3 y=5></rect> <rect class=ql-fill height=1 width=3 x=3 y=7></rect> <rect class=ql-fill height=1 width=3 x=3 y=10></rect> <rect class=ql-fill height=1 width=3 x=3 y=12></rect> <rect class=ql-fill height=1 width=3 x=12 y=5></rect> <rect class=ql-fill height=1 width=3 x=12 y=7></rect> <rect class=ql-fill height=1 width=3 x=12 y=10></rect> <rect class=ql-fill height=1 width=3 x=12 y=12></rect> </svg>\";\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <polygon class=ql-stroke points=\\\"7 11 9 13 11 11 7 11\\\"></polygon> <polygon class=ql-stroke points=\\\"7 7 9 5 11 7 7 7\\\"></polygon> </svg>\";\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BubbleTooltip = undefined;\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _base = __webpack_require__(43);\n\nvar _base2 = _interopRequireDefault(_base);\n\nvar _selection = __webpack_require__(15);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TOOLBAR_CONFIG = [['bold', 'italic', 'link'], [{ header: 1 }, { header: 2 }, 'blockquote']];\n\nvar BubbleTheme = function (_BaseTheme) {\n _inherits(BubbleTheme, _BaseTheme);\n\n function BubbleTheme(quill, options) {\n _classCallCheck(this, BubbleTheme);\n\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n\n var _this = _possibleConstructorReturn(this, (BubbleTheme.__proto__ || Object.getPrototypeOf(BubbleTheme)).call(this, quill, options));\n\n _this.quill.container.classList.add('ql-bubble');\n return _this;\n }\n\n _createClass(BubbleTheme, [{\n key: 'extendToolbar',\n value: function extendToolbar(toolbar) {\n this.tooltip = new BubbleTooltip(this.quill, this.options.bounds);\n this.tooltip.root.appendChild(toolbar.container);\n this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default);\n this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default);\n }\n }]);\n\n return BubbleTheme;\n}(_base2.default);\n\nBubbleTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link: function link(value) {\n if (!value) {\n this.quill.format('link', false);\n } else {\n this.quill.theme.tooltip.edit();\n }\n }\n }\n }\n }\n});\n\nvar BubbleTooltip = function (_BaseTooltip) {\n _inherits(BubbleTooltip, _BaseTooltip);\n\n function BubbleTooltip(quill, bounds) {\n _classCallCheck(this, BubbleTooltip);\n\n var _this2 = _possibleConstructorReturn(this, (BubbleTooltip.__proto__ || Object.getPrototypeOf(BubbleTooltip)).call(this, quill, bounds));\n\n _this2.quill.on(_emitter2.default.events.EDITOR_CHANGE, function (type, range, oldRange, source) {\n if (type !== _emitter2.default.events.SELECTION_CHANGE) return;\n if (range != null && range.length > 0 && source === _emitter2.default.sources.USER) {\n _this2.show();\n // Lock our width so we will expand beyond our offsetParent boundaries\n _this2.root.style.left = '0px';\n _this2.root.style.width = '';\n _this2.root.style.width = _this2.root.offsetWidth + 'px';\n var lines = _this2.quill.getLines(range.index, range.length);\n if (lines.length === 1) {\n _this2.position(_this2.quill.getBounds(range));\n } else {\n var lastLine = lines[lines.length - 1];\n var index = _this2.quill.getIndex(lastLine);\n var length = Math.min(lastLine.length() - 1, range.index + range.length - index);\n var _bounds = _this2.quill.getBounds(new _selection.Range(index, length));\n _this2.position(_bounds);\n }\n } else if (document.activeElement !== _this2.textbox && _this2.quill.hasFocus()) {\n _this2.hide();\n }\n });\n return _this2;\n }\n\n _createClass(BubbleTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this3 = this;\n\n _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'listen', this).call(this);\n this.root.querySelector('.ql-close').addEventListener('click', function () {\n _this3.root.classList.remove('ql-editing');\n });\n this.quill.on(_emitter2.default.events.SCROLL_OPTIMIZE, function () {\n // Let selection be restored by toolbar handlers before repositioning\n setTimeout(function () {\n if (_this3.root.classList.contains('ql-hidden')) return;\n var range = _this3.quill.getSelection();\n if (range != null) {\n _this3.position(_this3.quill.getBounds(range));\n }\n }, 1);\n });\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n this.show();\n }\n }, {\n key: 'position',\n value: function position(reference) {\n var shift = _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'position', this).call(this, reference);\n var arrow = this.root.querySelector('.ql-tooltip-arrow');\n arrow.style.marginLeft = '';\n if (shift === 0) return shift;\n arrow.style.marginLeft = -1 * shift - arrow.offsetWidth / 2 + 'px';\n }\n }]);\n\n return BubbleTooltip;\n}(_base.BaseTooltip);\n\nBubbleTooltip.TEMPLATE = ['<span class=\"ql-tooltip-arrow\"></span>', '<div class=\"ql-tooltip-editor\">', '<input type=\"text\" data-formula=\"e=mc^2\" data-link=\"https://quilljs.com\" data-video=\"Embed URL\">', '<a class=\"ql-close\"></a>', '</div>'].join('');\n\nexports.BubbleTooltip = BubbleTooltip;\nexports.default = BubbleTheme;\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(63);\n\n\n/***/ })\n/******/ ])[\"default\"];\n});","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n"],"names":["exports","createCommonjsModule","fn","module","sparkMd5","factory","undefined","hex_chr","md5cycle","x","k","a","b","c","d","md5blk","s","i","md5blks","charCodeAt","md5blk_array","md51","length","tail","tmp","lo","hi","n","state","substring","toString","match","parseInt","md51_array","subarray","Uint8Array","rhex","j","hex","join","toUtf8","str","test","unescape","encodeURIComponent","utf8Str2ArrayBuffer","returnUInt8Array","buff","ArrayBuffer","arr","arrayBuffer2Utf8Str","String","fromCharCode","apply","concatenateArrayBuffers","first","second","result","byteLength","set","buffer","hexToBinaryString","bytes","push","substr","SparkMD5","this","reset","prototype","slice","clamp","val","Math","max","min","from","to","num","target","targetArray","sourceArray","begin","end","append","appendBinary","contents","_buff","_length","_hash","raw","ret","_finish","getState","hash","setState","destroy","hashBinary","content","call","classCallCheck","instance","Constructor","TypeError","createClass","defineProperties","props","descriptor","enumerable","configurable","writable","Object","defineProperty","key","protoProps","staticProps","fileSlice","File","mozSlice","webkitSlice","FileChecksum","file","chunkSize","chunkCount","ceil","size","chunkIndex","value","callback","create","_this","md5Buffer","fileReader","FileReader","addEventListener","event","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","name","start","readAsArrayBuffer","getMetaValue","element","findElement","document","head","getAttribute","findElements","root","selector","toArray$1","querySelectorAll","querySelector","dispatchEvent","type","eventInit","arguments","disabled","bubbles","cancelable","detail","createEvent","initEvent","Array","isArray","BlobRecord","checksum","url","attributes","filename","content_type","byte_size","xhr","XMLHttpRequest","open","responseType","setRequestHeader","csrfToken","requestDidLoad","requestDidError","send","JSON","stringify","blob","status","response","direct_upload","directUploadData","toJSON","get","_xhr","parse","BlobUpload","_blob$directUploadDat","headers","id","DirectUpload","delegate","error","notify","upload","object","methodName","_len","messages","_key","DirectUploadController","input","directUpload","dispatch","hiddenInput","createElement","insertAdjacentElement","parentNode","removeChild","dispatchError","signed_id","progress","loaded","total","defaultPrevented","alert","_this2","uploadRequestDidProgress","inputSelector","DirectUploadsController","form","inputs","filter","files","controllers","createDirectUploadControllers","startNextController","controller","shift","forEach","processingAttribute","submitButtonsByForm","WeakMap","started","didClick","didSubmitForm","didSubmitRemoteElement","tagName","handleFormSubmissionEvent","hasAttribute","preventDefault","setAttribute","disable","removeAttribute","enable","submitForm","button","focus","click","style","display","appendChild","delete","autostart","window","ActiveStorage","setTimeout","Rails","linkClickSelector","buttonClickSelector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","nonce","loadCSPNonce","ref","cspNonce","expando","m","Element","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","getData","setData","$","csrfParam","meta","CSRFProtection","token","refreshCSRFTokens","param","CustomEvent","fire","params","evt","initCustomEvent","Event","obj","data","stopEverything","e","stopPropagation","stopImmediatePropagation","eventType","handler","AcceptHeaders","createXHR","prepareOptions","processResponse","text","html","xml","json","script","ajax","options","responseText","getResponseHeader","floor","success","statusText","complete","beforeSend","readyState","OPENED","location","href","toUpperCase","indexOf","dataType","accept","done","crossDomain","withCredentials","onreadystatechange","DONE","parser","DOMParser","replace","parseFromString","isCrossDomain","originAnchor","urlAnchor","protocol","host","toArray","serializeElement","additionalParam","elements","option","selected","checked","map","formElements","el","allowAction","handleConfirm","confirm","message","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","innerHTML","originalText","removeEventListener","handleMethod","formContent","link","method","action","body","isRemote","handleRemote","enctype","FormData","args","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","metaKey","ctrlKey","jQuery","rails","Error","ajaxPrefilter","originalOptions","_rails_loaded","defaultOptions","tagClass","item","itemValue","itemText","itemTitle","freeInput","addOnBlur","maxTags","maxChars","confirmKeys","delimiter","delimiterRegex","cancelConfirmKeysOnEmpty","onTagExists","$tag","hide","fadeIn","trimValue","allowDuplicates","TagsInput","isInit","itemsArray","$element","isSelect","multiple","objectItems","placeholderText","attr","inputSize","$container","$input","appendTo","before","build","makeOptionItemFunction","propertyName","makeOptionFunction","constructor","add","dontPushVal","self","trim","remove","items","split","pushVal","existing","grep","maxInputLength","beforeItemAddEvent","cancel","trigger","htmlEncode","findInputWrapper","after","optionExists","$option","addClass","typeahead","$existingTag","other","beforeItemRemoveEvent","inArray","splice","removeClass","removeAll","pop","refresh","each","nodeType","nodeValue","extend","source","query","process","processItems","texts","isFunction","then","when","updater","matcher","toLowerCase","sorter","sort","highlighter","regex","RegExp","typeaheadjs","typeaheadConfig","typeaheadDatasets","on","proxy","datum","valueKey","removeAttr","$inputWrapper","which","doGetCaretPosition","prev","next","$prevTag","$nextTag","textLength","keyPressEvent","lookupList","found","maxLengthReached","index","keyCombination","alt","hasOwnProperty","altKey","shiftKey","ctrl","closest","off","removeData","show","elt","container","tagsinput","arg1","arg2","arg3","results","retVal","htmlEncodeContainer","oField","iCaretPos","selection","oSel","createRange","moveStart","selectionStart","isCallable","tryToString","$TypeError","argument","$String","isObject","DataView","NAME","Prototype","NATIVE_ARRAY_BUFFER","DESCRIPTORS","global","hasOwn","classof","createNonEnumerableProperty","defineBuiltIn","isPrototypeOf","getPrototypeOf","setPrototypeOf","wellKnownSymbol","uid","InternalStateModule","enforceInternalState","enforce","getInternalState","Int8Array","Int8ArrayPrototype","Uint8ClampedArray","Uint8ClampedArrayPrototype","TypedArray","TypedArrayPrototype","ObjectPrototype","TO_STRING_TAG","TYPED_ARRAY_TAG","TYPED_ARRAY_CONSTRUCTOR","NATIVE_ARRAY_BUFFER_VIEWS","opera","TYPED_ARRAY_TAG_REQUIRED","TypedArrayConstructorsList","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigIntArrayConstructorsList","BigInt64Array","BigUint64Array","getTypedArrayConstructor","it","proto","isTypedArray","klass","Function","aTypedArray","aTypedArrayConstructor","C","exportTypedArrayMethod","KEY","property","forced","ARRAY","TypedArrayConstructor","error2","exportTypedArrayStaticMethod","isView","toIndexedObject","toAbsoluteIndex","lengthOfArrayLike","createMethod","IS_INCLUDES","$this","fromIndex","O","includes","uncurryThis","stringSlice","TO_STRING_TAG_SUPPORT","classofRaw","$Object","CORRECT_ARGUMENTS","tag","tryGet","callee","ownKeys","getOwnPropertyDescriptorModule","definePropertyModule","exceptions","keys","f","getOwnPropertyDescriptor","fails","F","createPropertyDescriptor","bitmap","makeBuiltIn","getter","setter","defineGlobalProperty","simple","unsafe","nonConfigurable","nonWritable","documentAll","all","IS_HTMLDDA","EXISTS","userAgent","getBuiltIn","version","Deno","versions","v8","copyConstructorProperties","isForced","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","sham","exec","NATIVE_BIND","FunctionPrototype","Reflect","bind","aCallable","that","getDescriptor","PROPER","CONFIGURABLE","namespace","isNullOrUndefined","V","P","func","check","globalThis","g","toObject","propertyIsEnumerable","store","functionToString","inspectSource","has","NATIVE_WEAK_MAP","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","wmget","wmhas","wmset","metadata","facade","STATE","getterFor","TYPE","$documentAll","feature","detection","normalize","POLYFILL","NATIVE","string","USE_SYMBOL_AS_UID","$Symbol","toLength","CONFIGURABLE_FUNCTION_NAME","CONFIGURABLE_LENGTH","TEMPLATE","arity","trunc","IE8_DOM_DEFINE","V8_PROTOTYPE_DEFINE_BUG","anObject","toPropertyKey","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","Attributes","current","propertyIsEnumerableModule","internalObjectKeys","concat","getOwnPropertyNames","getOwnPropertySymbols","CORRECT_PROTOTYPE_GETTER","IE_PROTO","names","$propertyIsEnumerable","NASHORN_BUG","aPossiblePrototype","CORRECT_SETTER","__proto__","pref","valueOf","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","hasIndices","ignoreCase","multiline","dotAll","unicode","unicodeSets","sticky","SHARED","IS_PURE","mode","copyright","license","V8_VERSION","symbol","Symbol","defer","channel","port","arraySlice","validateArgumentsLength","IS_IOS","IS_NODE","setImmediate","clear","clearImmediate","Dispatch","MessageChannel","counter","queue","ONREADYSTATECHANGE","run","runner","listener","post","postMessage","nextTick","now","port2","port1","onmessage","importScripts","toIntegerOrInfinity","integer","IndexedObject","requireObjectCoercible","number","toPositiveInteger","$RangeError","RangeError","BYTES","offset","isSymbol","getMethod","ordinaryToPrimitive","TO_PRIMITIVE","exoticToPrim","toPrimitive","postfix","random","NATIVE_SYMBOL","iterator","passed","required","WellKnownSymbolsStore","symbolFor","createWellKnownSymbol","withoutSetter","description","defineBuiltInAccessor","regExpFlags","RegExpPrototype","INDICES_SUPPORT","calls","expected","addGetter","chr","pairs","ArrayBufferViewCore","toOffset","$set","WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS","array","TO_OBJECT_BUG","arrayLike","src","len","___EXPOSE_LOADER_IMPORT___","___EXPOSE_LOADER_GLOBAL_THIS___","w","noGlobal","getProto","flat","class2type","fnToString","ObjectFunctionString","support","isWindow","preservedScriptAttributes","noModule","DOMEval","code","node","doc","toType","context","init","isArrayLike","jquery","pushStack","elems","merge","prevObject","elem","eq","last","even","_elem","odd","copy","copyIsArray","clone","deep","isPlainObject","isReady","msg","noop","Ctor","isEmptyObject","globalEval","makeArray","invert","callbackExpect","arg","guid","_i","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","Date","preferredDoc","dirruns","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","pushNative","list","booleans","whitespace","identifier","pseudos","rwhitespace","rtrim","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","rhtml","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","escape","nonHex","high","rcssescape","fcssescape","ch","asCodePoint","unloadHandler","inDisabledFieldset","addCombinator","nodeName","dir","childNodes","els","seed","nid","groups","newSelector","newContext","ownerDocument","getElementById","getElementsByTagName","getElementsByClassName","qsa","testContext","scope","toSelector","cssSupportsSelector","CSS","supports","qsaError","cache","cacheLength","markFunction","assert","addHandle","attrs","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","matchIndexes","namespaceURI","documentElement","hasCompare","subWindow","defaultView","top","attachEvent","className","createComment","getById","getElementsByName","attrId","find","getAttributeNode","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","specified","sel","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","selectors","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","what","_argument","forward","ofType","_context","uniqueCache","outerCache","nodeIndex","parent","useCache","lastChild","uniqueID","pseudo","setFilters","idx","matched","unmatched","lang","elemLang","activeElement","hasFocus","tabIndex","selectedIndex","_matchIndexes","radio","checkbox","password","image","submit","tokens","combinator","base","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","filters","parseOnly","soFar","preFilters","cached","setMatchers","elementMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","matcherFromGroupMatchers","compiled","_name","defaultValue","unique","isXMLDoc","escapeSelector","until","truncate","is","siblings","rneedsContext","needsContext","rsingleTag","winnow","qualifier","not","rootjQuery","parseHTML","ready","rparentsprev","guaranteedUnique","children","sibling","targets","l","prevAll","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","reverse","rnothtmlwhite","Identity","v","Thrower","ex","adoptValue","resolve","reject","noValue","promise","fail","Callbacks","_","flag","createOptions","firing","memory","fired","locked","firingIndex","once","stopOnFalse","empty","lock","fireWith","Deferred","tuples","always","deferred","pipe","fns","newDefer","tuple","returned","onFulfilled","onRejected","onProgress","maxDepth","depth","special","mightThrow","notifyWith","resolveWith","exceptionHook","stackTrace","rejectWith","getStackHook","stateString","singleValue","remaining","resolveContexts","resolveValues","primary","updateFunc","rerrorNames","stack","console","warn","readyException","readyList","completed","catch","readyWait","wait","doScroll","access","chainable","emptyGet","bulk","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","camelCase","acceptData","owner","Data","prop","hasData","dataPriv","dataUser","rbrace","rmultiDash","dataAttr","_data","_removeData","dequeue","startLength","hooks","_queueHooks","stop","clearQueue","count","pnum","rcssNum","cssExpand","isAttached","composed","getRootNode","isHiddenWithinTree","css","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","unit","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","showHide","values","toggle","div","rcheckableType","rtagName","rscriptType","createDocumentFragment","checkClone","cloneNode","noCloneChecked","wrapMap","thead","col","tr","td","_default","getAll","setGlobalEval","refElements","tbody","tfoot","colgroup","caption","th","optgroup","buildFragment","scripts","ignored","wrap","attached","fragment","nodes","htmlPrefilter","createTextNode","rtypenamespace","returnTrue","returnFalse","expectSync","err","safeActiveElement","types","one","origFn","leverageNative","notAsync","saved","isTrigger","delegateType","handleObjIn","eventHandle","events","t","handleObj","handlers","namespaces","origType","elemData","handle","triggered","bindType","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","postDispatch","matchedHandlers","matchedSelectors","addProp","hook","originalEvent","load","noBubble","beforeunload","returnValue","isDefaultPrevented","relatedTarget","timeStamp","isSimulated","changedTouches","eventPhase","pageX","pageY","view","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","blur","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","udataOld","udataCur","fixInput","domManip","collection","hasScripts","iNoClone","valueIsFunction","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","prepend","insertBefore","replaceWith","replaceChild","prependTo","insertAfter","replaceAll","original","insert","rnumnonpx","rcustomProp","getStyles","opener","getComputedStyle","swap","old","rboxStyle","rtrimCSS","curCSS","computed","width","minWidth","maxWidth","isCustomProp","getPropertyValue","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","marginLeft","right","pixelBoxStylesVal","boxSizingReliableVal","position","scrollboxSizeVal","offsetWidth","measure","round","parseFloat","reliableTrDimensionsVal","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","table","trChild","trStyle","height","borderTopWidth","borderBottomWidth","offsetHeight","cssPrefixes","emptyStyle","vendorProps","finalPropName","final","cssProps","capName","vendorPropName","rdisplayswap","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","subtract","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","extra","delta","getWidthOrHeight","valueIsBorderBox","offsetProp","getClientRects","Tween","easing","cssHooks","opacity","origName","setProperty","isFinite","getBoundingClientRect","scrollboxSizeBuggy","left","margin","padding","border","prefix","suffix","expand","expanded","parts","propHooks","percent","eased","duration","pos","step","fx","scrollTop","scrollLeft","linear","p","swing","cos","PI","fxNow","inProgress","rfxtypes","rrun","schedule","hidden","requestAnimationFrame","interval","tick","createFxNow","genFx","includeWidth","createTween","animation","Animation","tweeners","properties","stopped","prefilters","currentTime","startTime","tweens","opts","specialEasing","originalProperties","gotoEnd","propFilter","timer","anim","tweener","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","overflow","overflowX","overflowY","prefilter","speed","opt","speeds","fadeTo","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeOut","fadeToggle","slow","fast","delay","time","timeout","clearTimeout","checkOn","optSelected","radioValue","boolHook","nType","attrHooks","bool","attrNames","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","classNames","curValue","finalValue","toggleClass","stateVal","isValidValue","hasClass","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","triggerHandler","attaches","rquery","parseXML","parserErrorElem","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","valueOrFunction","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","transports","allTypes","addToPrefiltersOrTransports","structure","dataTypeExpression","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","active","lastModified","etag","isLocal","processData","async","contentType","accepts","responseFields","converters","ajaxSetup","settings","ajaxTransport","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","overrideMimeType","mimeType","abort","finalText","hasContent","ifModified","nativeStatusText","responses","isSuccess","modified","ct","finalDataType","firstDataType","ajaxHandleResponses","conv2","conv","dataFilter","throws","ajaxConvert","getJSON","getScript","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","visible","xhrSuccessStatus","xhrSupported","cors","errorCallback","username","xhrFields","onload","onerror","onabort","ontimeout","binary","scriptAttrs","charset","scriptCharset","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","animated","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","rect","win","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","unbind","undelegate","hover","fnOver","fnOut","holdReady","hold","parseJSON","isNumeric","isNaN","_jQuery","_$","noConflict","modules","installedModules","moduleId","o","__esModule","container_1","format_1","leaf_1","scroll_1","inline_1","block_1","embed_1","text_1","attributor_1","class_1","style_1","store_1","Registry","Parchment","Scope","register","Container","default","Format","Leaf","Embed","Scroll","Block","Inline","Text","Attributor","Attribute","Class","Style","Store","__webpack_require__","extendStatics","__extends","__","ParchmentError","_super","classes","tags","ANY","Node","TEXT_NODE","LEVEL","BLOCK","INLINE","HTMLElement","DATA_KEY","BlotClass","bubble","blot","Definitions","Definition","blotName","attrName","keyName","equal","op","NULL_CHARACTER","Delta","ops","newOp","retain","lastOp","chop","predicate","partition","failed","reduce","changeLength","Infinity","iter","hasNext","nextOp","compose","thisIter","otherIter","firstOther","peek","firstLeft","peekType","peekLength","thisOp","otherOp","rest","strings","diffResult","component","opLength","INSERT","DELETE","EQUAL","eachLine","newline","line","transform","priority","transformPosition","nextType","toStr","gOPD","hasOwnConstructor","hasIsPrototypeOf","newValue","getProperty","BlockEmbed","bubbleFormats","_createClass","_get","receiver","desc","_extend2","_interopRequireDefault","_quillDelta2","_parchment2","_break2","_inline2","_text2","_classCallCheck","_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","_Parchment$Embed","domNode","formats","attribute","BLOCK_ATTRIBUTE","format","def","endsWith","block","insertAt","BLOCK_BLOT","_Parchment$Block","descendants","leaf","lines","child","force","statics","defaultChild","allowedChildren","overload","expandConfig","_typeof","_slicedToArray","_arr","_n","_d","_e","_s","sliceIterator","_editor2","_emitter4","_module2","_selection","_selection2","_logger2","_theme2","_defineProperty","debug","Quill","classList","__quill","addContainer","scrollingContainer","emitter","scroll","whitelist","editor","theme","keyboard","addModule","clipboard","history","EDITOR_CHANGE","TEXT_CHANGE","isBlank","SCROLL_UPDATE","mutations","range","lastRange","modify","update","convert","setContents","placeholder","readOnly","limit","level","imports","path","overwrite","startsWith","refNode","setRange","_this3","_overload","_overload2","deleteText","enabled","scrollIntoView","_this4","sources","API","getSelection","change","formatLine","formatText","setSelection","SILENT","_this5","_overload3","_overload4","_this6","_overload5","_overload6","bounds","getBounds","containerBounds","bottom","getLength","_overload7","_overload8","getContents","getFormat","Number","MAX_VALUE","getRange","_overload9","_overload10","embed","_this7","insertEmbed","_this8","_overload11","_overload12","insertText","dangerouslyPasteHTML","_this9","_overload13","_overload14","removeFormat","_this10","deleted","applied","applyDelta","_overload15","_overload16","Range","USER","_this11","userConfig","DEFAULTS","import","themeConfig","config","moduleConfig","moduleClass","toolbar","modifier","strict","isEnabled","oldDelta","shiftRange","_emitter","_emitter2","emit","_map","_map2","_map3","_map4","_Parchment$Inline","BLOT","isolate","moveChildren","selfIndex","order","otherIndex","_parchment","TextBlot","_Parchment$Text","_eventemitter2","eventName","_node$__quill$emitter","handleDOM","Emitter","_EventEmitter","listeners","log","_len2","_key2","_ref","SCROLL_BEFORE_UPDATE","SCROLL_OPTIMIZE","SELECTION_CHANGE","Module","quill","levels","_console","ns","logger","newLevel","pSlice","objectKeys","isArguments","deepEqual","actual","getTime","isUndefinedOrNull","isBuffer","ka","kb","objEquiv","attributeBit","ATTRIBUTE","canAdd","Code","_block2","_Inline","CodeBlock","_Block","frag","_descendant","descendant","deleteAt","nextNewline","newlineIndex","prevNewline","isolateLength","formatAt","_descendant3","_descendant4","searchIndex","lastIndexOf","optimize","TAB","_op2","_code2","_cursor2","_block","_clone2","_deepEqual2","ASCII","Editor","getDelta","consumeNextNewline","scrollLength","batchStart","bullet","normalizeDelta","_scroll$line","_scroll$line2","_line$descendant","batchEnd","lengthRemaining","lineLength","codeIndex","codeLength","leaves","formatsArr","blots","combineFormats","_scroll$line3","_scroll$line4","suffixLength","cursorIndex","textBlot","oldValue","CONTENTS","oldText","newText","combined","merged","_toConsumableArray","arr2","Selection","composing","mouseDown","cursor","savedRange","handleComposition","handleDragging","listenDOM","native","getNativeRange","textNode","setNativeRange","_context$range","startNode","startOffset","endNode","endOffset","restore","_format","nativeRange","collapsed","attach","_scroll$leaf","_scroll$leaf2","_leaf$position","_leaf$position2","setStart","_scroll$leaf3","_scroll$leaf4","_leaf$position3","_leaf$position4","setEnd","side","rangeCount","getRangeAt","normalizeNative","info","normalized","normalizedToRange","positions","indexes","_position","startContainer","endContainer","_scroll$leaf5","_scroll$leaf6","_leaf$position5","_leaf$position6","scrollBounds","removeAllRanges","addRange","rangeToNative","oldRange","_getRange","_getRange2","Break","linked_list_1","shadow_1","ContainerBlot","makeBlot","forEachAt","criteria","_a","lengthLeft","childBlot","refBlot","some","insertInto","memo","targetParent","inclusive","addedNodes","removedNodes","mutation","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_FOLLOWING","FormatBlot","wrapper","move","LeafBlot","INLINE_BLOT","lib","keepNull","Iterator","retOp","_instanceof","nativeMap","nativeSet","nativePromise","Map","Set","Promise","circular","includeNonEnumerable","allParents","allChildren","useBuffer","Buffer","_clone","__isArray","__isRegExp","__getRegExpFlags","lastIndex","__isDate","allocUnsafe","keyChild","valueChild","entryChild","symbols","allPropertyNames","__objToStr","re","flags","clonePrototype","_container2","isLine","_Parchment$Scroll","batch","_line","_line2","_line3","_newlineIndex","getLines","observer","takeRecords","SHORTKEY","_quill2","navigator","platform","Keyboard","_Module","bindings","addBinding","ENTER","handleEnter","BACKSPACE","handleBackspace","handleDelete","handleDeleteRange","listen","binding","_quill$getLine","getLine","_quill$getLine2","_quill$getLeaf","getLeaf","_quill$getLeaf2","leafStart","offsetStart","_ref2","leafEnd","offsetEnd","prefixText","suffixText","curContext","every","makeEmbedArrowHandler","_ref3","where","LEFT","RIGHT","_quill$getLeaf3","_quill$getLine11","_quill$getLine13","curFormats","prevFormats","nextLength","_quill$getLine15","_quill$getLine17","nextFormats","firstFormats","lastFormats","lineFormats","makeCodeBlockHandler","indent","_quill$scroll$descend","_quill$scroll$descend2","scrollIndex","getIndex","makeFormatHandler","shortKey","ESCAPE","UP","DOWN","cutoff","updateContents","_quill$getLine3","_quill$getLine4","_quill$getLine5","_quill$getLine6","header","_quill$getLine7","_quill$getLine8","_quill$getLine9","_quill$getLine10","Cursor","restoreText","_Parchment$Container","ColorStyle","ColorClass","ColorAttributor","_Parchment$Attributor","sanitize","_inline","Link","_sanitize","PROTOCOL_WHITELIST","SANITIZED_URL","protocols","anchor","_keyboard2","_dropdown2","optionsCounter","toggleAriaAttribute","Picker","buildPicker","label","togglePicker","selectItem","buildItem","buildLabel","buildOptions","close","isActive","_embed2","_scroll2","_clipboard2","_history2","ShadowBlot","parentBlot","refDomNode","AttributorStore","ClassAttributor","camelize","part","StyleAttributor","Theme","themes","GUARD_TEXT","contentNode","childNode","leftGuard","rightGuard","prevLength","AlignStyle","AlignClass","AlignAttribute","BackgroundStyle","BackgroundClass","_color","DirectionStyle","DirectionClass","DirectionAttribute","FontClass","FontStyle","FontStyleAttributor","SizeStyle","SizeClass","getLastChangeIndex","History","lastRecorded","ignoreChange","userOnly","record","undo","redo","changeDelta","undoDelta","timestamp","maxStack","deleteLength","changeIndex","endsWithNewlineChange","BaseTooltip","_colorPicker2","_iconPicker2","_picker2","_tooltip2","ALIGNS","COLORS","FONTS","HEADERS","SIZES","BaseTheme","_Theme","tooltip","textbox","pickers","picker","extendToolbar","icons","selects","fillSelect","align","formula","edit","fileInput","reader","readAsDataURL","video","_Tooltip","boundsContainer","save","preview","linkRange","restoreFocus","LinkedList","curNode","curIndex","curLength","OBSERVER_CONFIG","characterData","characterDataOldValue","childList","subtree","ScrollBlot","MutationObserver","observe","disconnect","records","mark","markParent","previousSibling","grandChild","InlineBlot","obj1","obj2","isEqual","BlockBlot","EmbedBlot","splitText","_toggle","DOMTokenList","searchString","subjectString","thisArg","execCommand","DIFF_DELETE","DIFF_INSERT","DIFF_EQUAL","diff_main","text1","text2","cursor_pos","commonlength","diff_commonPrefix","commonprefix","diff_commonSuffix","commonsuffix","diffs","longtext","shorttext","hm","diff_halfMatchI_","best_longtext_a","best_longtext_b","best_shorttext_a","best_shorttext_b","best_common","prefixLength","text1_a","text1_b","text2_a","text2_b","hm1","hm2","mid_common","diff_halfMatch_","diffs_a","diffs_b","text1_length","text2_length","max_d","v_offset","v_length","v1","v2","front","k1start","k1end","k2start","k2end","k1","k1_offset","y1","x1","charAt","k2_offset","x2","diff_bisectSplit_","k2","y2","diff_bisect_","diff_compute_","diff_cleanupMerge","norm","current_pos","next_pos","split_pos","d_left","d_right","cursor_normalize_diff","ndiffs","cursor_pointer","d_next","merge_tuples","fix_cursor","compact","starts_with_pair_end","ends_with_pair_start","fixed_diffs","fix_emoji","y","text1a","text2a","text1b","text2b","diffsb","pointermin","pointermax","pointermid","pointerstart","pointerend","pointer","count_delete","count_insert","text_delete","text_insert","changes","left_d","right_d","shim","supportsArgumentsClass","supported","unsupported","Events","EE","EventEmitter","_events","_eventsCount","eventNames","exists","available","ee","a1","a2","a3","a4","a5","removeListener","removeAllListeners","addListener","setMaxListeners","prefixed","matchText","matchSpacing","matchNewline","matchBlot","matchAttributor","_extend3","_align","_background","_direction","_font","_size","DOM_KEY","CLIPBOARD_CONFIG","deltaEndsWith","ELEMENT_NODE","fontStyle","computeStyle","italic","bold","applyFormat","textIndent","matchAlias","ATTRIBUTE_ATTRIBUTORS","STYLE_ATTRIBUTORS","Clipboard","onPaste","matchVisual","addMatcher","innerText","_prepareMatching","prepareMatching","_prepareMatching2","textMatchers","traverse","paste","pair","_pair","endText","childrenDelta","nextElementSibling","nodeHeight","marginTop","marginBottom","offsetTop","whiteSpace","replacer","collapse","Bold","addControls","Toolbar","_ret","controls","addHandler","_this$quill$selection","_quill$selection$getR","prompt","addButton","group","control","addSelect","clean","direction","_picker","ColorPicker","_Picker","backgroundColor","colorLabel","stroke","fill","IconPicker","defaultItem","Tooltip","reference","rootBounds","verticalShift","_base","_base2","_link2","_icons2","TOOLBAR_CONFIG","SnowTheme","_BaseTheme","buildButtons","buildPickers","SnowTooltip","_BaseTooltip","_core2","_indent","_blockquote2","_header2","_list","_list2","_bold2","_italic2","_script2","_strike2","_underline2","_image2","_video2","_code","_formula2","_syntax2","_toolbar2","_bubble2","_snow2","IndentClass","ListItem","IdentAttributor","Blockquote","Header","List","_Container","listEventHandler","_bold","Italic","_Bold","Script","Strike","Underline","_link","ATTRIBUTES","Image","Video","_BlockEmbed","FormulaBlot","_Embed","katex","render","throwOnError","errorColor","Formula","CodeToken","SyntaxCodeBlock","_CodeBlock","_highlight","cachedText","Syntax","highlight","hljs","highlightAuto","BubbleTooltip","BubbleTheme","lastLine","_bounds","arrow","runtime","Op","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","displayName","isGeneratorFunction","genFun","ctor","awrap","skipTempReset","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode"],"sourceRoot":""}