@netless/window-manager 1.0.17-beta.1 → 1.0.17-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"app-presentation.mjs","sources":["../node_modules/.pnpm/@netless+app-presentation@0.1.9_jspdf@2.5.2/node_modules/@netless/app-presentation/dist/index.mjs"],"sourcesContent":["var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\n\n// node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/lodash.js\nvar require_lodash = __commonJS({\n \"node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/lodash.js\"(exports, module) {\n (function() {\n var undefined2;\n var VERSION = \"4.17.21\";\n var LARGE_ARRAY_SIZE = 200;\n var CORE_ERROR_TEXT = \"Unsupported core-js use. Try https://npms.io/search?q=ponyfill.\", FUNC_ERROR_TEXT = \"Expected a function\", INVALID_TEMPL_VAR_ERROR_TEXT = \"Invalid `variable` option passed into `_.template`\";\n var HASH_UNDEFINED = \"__lodash_hash_undefined__\";\n var MAX_MEMOIZE_SIZE = 500;\n var PLACEHOLDER = \"__lodash_placeholder__\";\n var CLONE_DEEP_FLAG = 1, CLONE_FLAT_FLAG = 2, CLONE_SYMBOLS_FLAG = 4;\n var COMPARE_PARTIAL_FLAG = 1, COMPARE_UNORDERED_FLAG = 2;\n var WRAP_BIND_FLAG = 1, WRAP_BIND_KEY_FLAG = 2, WRAP_CURRY_BOUND_FLAG = 4, WRAP_CURRY_FLAG = 8, WRAP_CURRY_RIGHT_FLAG = 16, WRAP_PARTIAL_FLAG = 32, WRAP_PARTIAL_RIGHT_FLAG = 64, WRAP_ARY_FLAG = 128, WRAP_REARG_FLAG = 256, WRAP_FLIP_FLAG = 512;\n var DEFAULT_TRUNC_LENGTH = 30, DEFAULT_TRUNC_OMISSION = \"...\";\n var HOT_COUNT = 800, HOT_SPAN = 16;\n var LAZY_FILTER_FLAG = 1, LAZY_MAP_FLAG = 2, LAZY_WHILE_FLAG = 3;\n var INFINITY = 1 / 0, MAX_SAFE_INTEGER = 9007199254740991, MAX_INTEGER = 17976931348623157e292, NAN = 0 / 0;\n var MAX_ARRAY_LENGTH = 4294967295, MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1, HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;\n var wrapFlags = [\n [\"ary\", WRAP_ARY_FLAG],\n [\"bind\", WRAP_BIND_FLAG],\n [\"bindKey\", WRAP_BIND_KEY_FLAG],\n [\"curry\", WRAP_CURRY_FLAG],\n [\"curryRight\", WRAP_CURRY_RIGHT_FLAG],\n [\"flip\", WRAP_FLIP_FLAG],\n [\"partial\", WRAP_PARTIAL_FLAG],\n [\"partialRight\", WRAP_PARTIAL_RIGHT_FLAG],\n [\"rearg\", WRAP_REARG_FLAG]\n ];\n var argsTag = \"[object Arguments]\", arrayTag = \"[object Array]\", asyncTag = \"[object AsyncFunction]\", boolTag = \"[object Boolean]\", dateTag = \"[object Date]\", domExcTag = \"[object DOMException]\", errorTag = \"[object Error]\", funcTag = \"[object Function]\", genTag = \"[object GeneratorFunction]\", mapTag = \"[object Map]\", numberTag = \"[object Number]\", nullTag = \"[object Null]\", objectTag = \"[object Object]\", promiseTag = \"[object Promise]\", proxyTag = \"[object Proxy]\", regexpTag = \"[object RegExp]\", setTag = \"[object Set]\", stringTag = \"[object String]\", symbolTag = \"[object Symbol]\", undefinedTag = \"[object Undefined]\", weakMapTag = \"[object WeakMap]\", weakSetTag = \"[object WeakSet]\";\n var arrayBufferTag = \"[object ArrayBuffer]\", dataViewTag = \"[object DataView]\", float32Tag = \"[object Float32Array]\", float64Tag = \"[object Float64Array]\", int8Tag = \"[object Int8Array]\", int16Tag = \"[object Int16Array]\", int32Tag = \"[object Int32Array]\", uint8Tag = \"[object Uint8Array]\", uint8ClampedTag = \"[object Uint8ClampedArray]\", uint16Tag = \"[object Uint16Array]\", uint32Tag = \"[object Uint32Array]\";\n var reEmptyStringLeading = /\\b__p \\+= '';/g, reEmptyStringMiddle = /\\b(__p \\+=) '' \\+/g, reEmptyStringTrailing = /(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g;\n var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g, reUnescapedHtml = /[&<>\"']/g, reHasEscapedHtml = RegExp(reEscapedHtml.source), reHasUnescapedHtml = RegExp(reUnescapedHtml.source);\n var reEscape = /<%-([\\s\\S]+?)%>/g, reEvaluate = /<%([\\s\\S]+?)%>/g, reInterpolate = /<%=([\\s\\S]+?)%>/g;\n var reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/, reIsPlainProp = /^\\w*$/, rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n var reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g, reHasRegExpChar = RegExp(reRegExpChar.source);\n var reTrimStart = /^\\s+/;\n var reWhitespace = /\\s/;\n var reWrapComment = /\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/, reWrapDetails = /\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/, reSplitDetails = /,? & /;\n var reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n var reForbiddenIdentifierChars = /[()=,{}\\[\\]\\/\\s]/;\n var reEscapeChar = /\\\\(\\\\)?/g;\n var reEsTemplate = /\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g;\n var reFlags = /\\w*$/;\n var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n var reIsBinary = /^0b[01]+$/i;\n var reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n var reIsOctal = /^0o[0-7]+$/i;\n var reIsUint = /^(?:0|[1-9]\\d*)$/;\n var reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n var reNoMatch = /($^)/;\n var reUnescapedString = /['\\n\\r\\u2028\\u2029\\\\]/g;\n var rsAstralRange = \"\\\\ud800-\\\\udfff\", rsComboMarksRange = \"\\\\u0300-\\\\u036f\", reComboHalfMarksRange = \"\\\\ufe20-\\\\ufe2f\", rsComboSymbolsRange = \"\\\\u20d0-\\\\u20ff\", rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, rsDingbatRange = \"\\\\u2700-\\\\u27bf\", rsLowerRange = \"a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff\", rsMathOpRange = \"\\\\xac\\\\xb1\\\\xd7\\\\xf7\", rsNonCharRange = \"\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\", rsPunctuationRange = \"\\\\u2000-\\\\u206f\", rsSpaceRange = \" \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\", rsUpperRange = \"A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde\", rsVarRange = \"\\\\ufe0e\\\\ufe0f\", rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n var rsApos = \"['\\u2019]\", rsAstral = \"[\" + rsAstralRange + \"]\", rsBreak = \"[\" + rsBreakRange + \"]\", rsCombo = \"[\" + rsComboRange + \"]\", rsDigits = \"\\\\d+\", rsDingbat = \"[\" + rsDingbatRange + \"]\", rsLower = \"[\" + rsLowerRange + \"]\", rsMisc = \"[^\" + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + \"]\", rsFitz = \"\\\\ud83c[\\\\udffb-\\\\udfff]\", rsModifier = \"(?:\" + rsCombo + \"|\" + rsFitz + \")\", rsNonAstral = \"[^\" + rsAstralRange + \"]\", rsRegional = \"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\", rsSurrPair = \"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\", rsUpper = \"[\" + rsUpperRange + \"]\", rsZWJ = \"\\\\u200d\";\n var rsMiscLower = \"(?:\" + rsLower + \"|\" + rsMisc + \")\", rsMiscUpper = \"(?:\" + rsUpper + \"|\" + rsMisc + \")\", rsOptContrLower = \"(?:\" + rsApos + \"(?:d|ll|m|re|s|t|ve))?\", rsOptContrUpper = \"(?:\" + rsApos + \"(?:D|LL|M|RE|S|T|VE))?\", reOptMod = rsModifier + \"?\", rsOptVar = \"[\" + rsVarRange + \"]?\", rsOptJoin = \"(?:\" + rsZWJ + \"(?:\" + [rsNonAstral, rsRegional, rsSurrPair].join(\"|\") + \")\" + rsOptVar + reOptMod + \")*\", rsOrdLower = \"\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])\", rsOrdUpper = \"\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])\", rsSeq = rsOptVar + reOptMod + rsOptJoin, rsEmoji = \"(?:\" + [rsDingbat, rsRegional, rsSurrPair].join(\"|\") + \")\" + rsSeq, rsSymbol = \"(?:\" + [rsNonAstral + rsCombo + \"?\", rsCombo, rsRegional, rsSurrPair, rsAstral].join(\"|\") + \")\";\n var reApos = RegExp(rsApos, \"g\");\n var reComboMark = RegExp(rsCombo, \"g\");\n var reUnicode = RegExp(rsFitz + \"(?=\" + rsFitz + \")|\" + rsSymbol + rsSeq, \"g\");\n var reUnicodeWord = RegExp([\n rsUpper + \"?\" + rsLower + \"+\" + rsOptContrLower + \"(?=\" + [rsBreak, rsUpper, \"$\"].join(\"|\") + \")\",\n rsMiscUpper + \"+\" + rsOptContrUpper + \"(?=\" + [rsBreak, rsUpper + rsMiscLower, \"$\"].join(\"|\") + \")\",\n rsUpper + \"?\" + rsMiscLower + \"+\" + rsOptContrLower,\n rsUpper + \"+\" + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n ].join(\"|\"), \"g\");\n var reHasUnicode = RegExp(\"[\" + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + \"]\");\n var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n var contextProps = [\n \"Array\",\n \"Buffer\",\n \"DataView\",\n \"Date\",\n \"Error\",\n \"Float32Array\",\n \"Float64Array\",\n \"Function\",\n \"Int8Array\",\n \"Int16Array\",\n \"Int32Array\",\n \"Map\",\n \"Math\",\n \"Object\",\n \"Promise\",\n \"RegExp\",\n \"Set\",\n \"String\",\n \"Symbol\",\n \"TypeError\",\n \"Uint8Array\",\n \"Uint8ClampedArray\",\n \"Uint16Array\",\n \"Uint32Array\",\n \"WeakMap\",\n \"_\",\n \"clearTimeout\",\n \"isFinite\",\n \"parseInt\",\n \"setTimeout\"\n ];\n var templateCounter = -1;\n var typedArrayTags = {};\n typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true;\n typedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;\n var cloneableTags = {};\n cloneableTags[argsTag] = cloneableTags[arrayTag] = cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = cloneableTags[boolTag] = cloneableTags[dateTag] = cloneableTags[float32Tag] = cloneableTags[float64Tag] = cloneableTags[int8Tag] = cloneableTags[int16Tag] = cloneableTags[int32Tag] = cloneableTags[mapTag] = cloneableTags[numberTag] = cloneableTags[objectTag] = cloneableTags[regexpTag] = cloneableTags[setTag] = cloneableTags[stringTag] = cloneableTags[symbolTag] = cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\n cloneableTags[errorTag] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = false;\n var deburredLetters = {\n // Latin-1 Supplement block.\n \"\\xC0\": \"A\",\n \"\\xC1\": \"A\",\n \"\\xC2\": \"A\",\n \"\\xC3\": \"A\",\n \"\\xC4\": \"A\",\n \"\\xC5\": \"A\",\n \"\\xE0\": \"a\",\n \"\\xE1\": \"a\",\n \"\\xE2\": \"a\",\n \"\\xE3\": \"a\",\n \"\\xE4\": \"a\",\n \"\\xE5\": \"a\",\n \"\\xC7\": \"C\",\n \"\\xE7\": \"c\",\n \"\\xD0\": \"D\",\n \"\\xF0\": \"d\",\n \"\\xC8\": \"E\",\n \"\\xC9\": \"E\",\n \"\\xCA\": \"E\",\n \"\\xCB\": \"E\",\n \"\\xE8\": \"e\",\n \"\\xE9\": \"e\",\n \"\\xEA\": \"e\",\n \"\\xEB\": \"e\",\n \"\\xCC\": \"I\",\n \"\\xCD\": \"I\",\n \"\\xCE\": \"I\",\n \"\\xCF\": \"I\",\n \"\\xEC\": \"i\",\n \"\\xED\": \"i\",\n \"\\xEE\": \"i\",\n \"\\xEF\": \"i\",\n \"\\xD1\": \"N\",\n \"\\xF1\": \"n\",\n \"\\xD2\": \"O\",\n \"\\xD3\": \"O\",\n \"\\xD4\": \"O\",\n \"\\xD5\": \"O\",\n \"\\xD6\": \"O\",\n \"\\xD8\": \"O\",\n \"\\xF2\": \"o\",\n \"\\xF3\": \"o\",\n \"\\xF4\": \"o\",\n \"\\xF5\": \"o\",\n \"\\xF6\": \"o\",\n \"\\xF8\": \"o\",\n \"\\xD9\": \"U\",\n \"\\xDA\": \"U\",\n \"\\xDB\": \"U\",\n \"\\xDC\": \"U\",\n \"\\xF9\": \"u\",\n \"\\xFA\": \"u\",\n \"\\xFB\": \"u\",\n \"\\xFC\": \"u\",\n \"\\xDD\": \"Y\",\n \"\\xFD\": \"y\",\n \"\\xFF\": \"y\",\n \"\\xC6\": \"Ae\",\n \"\\xE6\": \"ae\",\n \"\\xDE\": \"Th\",\n \"\\xFE\": \"th\",\n \"\\xDF\": \"ss\",\n // Latin Extended-A block.\n \"\\u0100\": \"A\",\n \"\\u0102\": \"A\",\n \"\\u0104\": \"A\",\n \"\\u0101\": \"a\",\n \"\\u0103\": \"a\",\n \"\\u0105\": \"a\",\n \"\\u0106\": \"C\",\n \"\\u0108\": \"C\",\n \"\\u010A\": \"C\",\n \"\\u010C\": \"C\",\n \"\\u0107\": \"c\",\n \"\\u0109\": \"c\",\n \"\\u010B\": \"c\",\n \"\\u010D\": \"c\",\n \"\\u010E\": \"D\",\n \"\\u0110\": \"D\",\n \"\\u010F\": \"d\",\n \"\\u0111\": \"d\",\n \"\\u0112\": \"E\",\n \"\\u0114\": \"E\",\n \"\\u0116\": \"E\",\n \"\\u0118\": \"E\",\n \"\\u011A\": \"E\",\n \"\\u0113\": \"e\",\n \"\\u0115\": \"e\",\n \"\\u0117\": \"e\",\n \"\\u0119\": \"e\",\n \"\\u011B\": \"e\",\n \"\\u011C\": \"G\",\n \"\\u011E\": \"G\",\n \"\\u0120\": \"G\",\n \"\\u0122\": \"G\",\n \"\\u011D\": \"g\",\n \"\\u011F\": \"g\",\n \"\\u0121\": \"g\",\n \"\\u0123\": \"g\",\n \"\\u0124\": \"H\",\n \"\\u0126\": \"H\",\n \"\\u0125\": \"h\",\n \"\\u0127\": \"h\",\n \"\\u0128\": \"I\",\n \"\\u012A\": \"I\",\n \"\\u012C\": \"I\",\n \"\\u012E\": \"I\",\n \"\\u0130\": \"I\",\n \"\\u0129\": \"i\",\n \"\\u012B\": \"i\",\n \"\\u012D\": \"i\",\n \"\\u012F\": \"i\",\n \"\\u0131\": \"i\",\n \"\\u0134\": \"J\",\n \"\\u0135\": \"j\",\n \"\\u0136\": \"K\",\n \"\\u0137\": \"k\",\n \"\\u0138\": \"k\",\n \"\\u0139\": \"L\",\n \"\\u013B\": \"L\",\n \"\\u013D\": \"L\",\n \"\\u013F\": \"L\",\n \"\\u0141\": \"L\",\n \"\\u013A\": \"l\",\n \"\\u013C\": \"l\",\n \"\\u013E\": \"l\",\n \"\\u0140\": \"l\",\n \"\\u0142\": \"l\",\n \"\\u0143\": \"N\",\n \"\\u0145\": \"N\",\n \"\\u0147\": \"N\",\n \"\\u014A\": \"N\",\n \"\\u0144\": \"n\",\n \"\\u0146\": \"n\",\n \"\\u0148\": \"n\",\n \"\\u014B\": \"n\",\n \"\\u014C\": \"O\",\n \"\\u014E\": \"O\",\n \"\\u0150\": \"O\",\n \"\\u014D\": \"o\",\n \"\\u014F\": \"o\",\n \"\\u0151\": \"o\",\n \"\\u0154\": \"R\",\n \"\\u0156\": \"R\",\n \"\\u0158\": \"R\",\n \"\\u0155\": \"r\",\n \"\\u0157\": \"r\",\n \"\\u0159\": \"r\",\n \"\\u015A\": \"S\",\n \"\\u015C\": \"S\",\n \"\\u015E\": \"S\",\n \"\\u0160\": \"S\",\n \"\\u015B\": \"s\",\n \"\\u015D\": \"s\",\n \"\\u015F\": \"s\",\n \"\\u0161\": \"s\",\n \"\\u0162\": \"T\",\n \"\\u0164\": \"T\",\n \"\\u0166\": \"T\",\n \"\\u0163\": \"t\",\n \"\\u0165\": \"t\",\n \"\\u0167\": \"t\",\n \"\\u0168\": \"U\",\n \"\\u016A\": \"U\",\n \"\\u016C\": \"U\",\n \"\\u016E\": \"U\",\n \"\\u0170\": \"U\",\n \"\\u0172\": \"U\",\n \"\\u0169\": \"u\",\n \"\\u016B\": \"u\",\n \"\\u016D\": \"u\",\n \"\\u016F\": \"u\",\n \"\\u0171\": \"u\",\n \"\\u0173\": \"u\",\n \"\\u0174\": \"W\",\n \"\\u0175\": \"w\",\n \"\\u0176\": \"Y\",\n \"\\u0177\": \"y\",\n \"\\u0178\": \"Y\",\n \"\\u0179\": \"Z\",\n \"\\u017B\": \"Z\",\n \"\\u017D\": \"Z\",\n \"\\u017A\": \"z\",\n \"\\u017C\": \"z\",\n \"\\u017E\": \"z\",\n \"\\u0132\": \"IJ\",\n \"\\u0133\": \"ij\",\n \"\\u0152\": \"Oe\",\n \"\\u0153\": \"oe\",\n \"\\u0149\": \"'n\",\n \"\\u017F\": \"s\"\n };\n var htmlEscapes = {\n \"&\": \"&amp;\",\n \"<\": \"&lt;\",\n \">\": \"&gt;\",\n '\"': \"&quot;\",\n \"'\": \"&#39;\"\n };\n var htmlUnescapes = {\n \"&amp;\": \"&\",\n \"&lt;\": \"<\",\n \"&gt;\": \">\",\n \"&quot;\": '\"',\n \"&#39;\": \"'\"\n };\n var stringEscapes = {\n \"\\\\\": \"\\\\\",\n \"'\": \"'\",\n \"\\n\": \"n\",\n \"\\r\": \"r\",\n \"\\u2028\": \"u2028\",\n \"\\u2029\": \"u2029\"\n };\n var freeParseFloat = parseFloat, freeParseInt = parseInt;\n var freeGlobal = typeof global == \"object\" && global && global.Object === Object && global;\n var freeSelf = typeof self == \"object\" && self && self.Object === Object && self;\n var root = freeGlobal || freeSelf || Function(\"return this\")();\n var freeExports = typeof exports == \"object\" && exports && !exports.nodeType && exports;\n var freeModule = freeExports && typeof module == \"object\" && module && !module.nodeType && module;\n var moduleExports = freeModule && freeModule.exports === freeExports;\n var freeProcess = moduleExports && freeGlobal.process;\n var nodeUtil = function() {\n try {\n var types = freeModule && freeModule.require && freeModule.require(\"util\").types;\n if (types) {\n return types;\n }\n return freeProcess && freeProcess.binding && freeProcess.binding(\"util\");\n } catch (e) {\n }\n }();\n var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer, nodeIsDate = nodeUtil && nodeUtil.isDate, nodeIsMap = nodeUtil && nodeUtil.isMap, nodeIsRegExp = nodeUtil && nodeUtil.isRegExp, nodeIsSet = nodeUtil && nodeUtil.isSet, nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n function apply(func, thisArg, args) {\n switch (args.length) {\n case 0:\n return func.call(thisArg);\n case 1:\n return func.call(thisArg, args[0]);\n case 2:\n return func.call(thisArg, args[0], args[1]);\n case 3:\n return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n }\n function arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1, length = array == null ? 0 : array.length;\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n }\n function arrayEach(array, iteratee) {\n var index = -1, length = array == null ? 0 : array.length;\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n }\n function arrayEachRight(array, iteratee) {\n var length = array == null ? 0 : array.length;\n while (length--) {\n if (iteratee(array[length], length, array) === false) {\n break;\n }\n }\n return array;\n }\n function arrayEvery(array, predicate) {\n var index = -1, length = array == null ? 0 : array.length;\n while (++index < length) {\n if (!predicate(array[index], index, array)) {\n return false;\n }\n }\n return true;\n }\n function arrayFilter(array, predicate) {\n var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result = [];\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n }\n function arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n }\n function arrayIncludesWith(array, value, comparator) {\n var index = -1, length = array == null ? 0 : array.length;\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n }\n function arrayMap(array, iteratee) {\n var index = -1, length = array == null ? 0 : array.length, result = Array(length);\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n }\n function arrayPush(array, values) {\n var index = -1, length = values.length, offset = array.length;\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n }\n function arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1, length = array == null ? 0 : array.length;\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n }\n function arrayReduceRight(array, iteratee, accumulator, initAccum) {\n var length = array == null ? 0 : array.length;\n if (initAccum && length) {\n accumulator = array[--length];\n }\n while (length--) {\n accumulator = iteratee(accumulator, array[length], length, array);\n }\n return accumulator;\n }\n function arraySome(array, predicate) {\n var index = -1, length = array == null ? 0 : array.length;\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n }\n var asciiSize = baseProperty(\"length\");\n function asciiToArray(string) {\n return string.split(\"\");\n }\n function asciiWords(string) {\n return string.match(reAsciiWord) || [];\n }\n function baseFindKey(collection, predicate, eachFunc) {\n var result;\n eachFunc(collection, function(value, key, collection2) {\n if (predicate(value, key, collection2)) {\n result = key;\n return false;\n }\n });\n return result;\n }\n function baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length, index = fromIndex + (fromRight ? 1 : -1);\n while (fromRight ? index-- : ++index < length) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n }\n function baseIndexOf(array, value, fromIndex) {\n return value === value ? strictIndexOf(array, value, fromIndex) : baseFindIndex(array, baseIsNaN, fromIndex);\n }\n function baseIndexOfWith(array, value, fromIndex, comparator) {\n var index = fromIndex - 1, length = array.length;\n while (++index < length) {\n if (comparator(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n function baseIsNaN(value) {\n return value !== value;\n }\n function baseMean(array, iteratee) {\n var length = array == null ? 0 : array.length;\n return length ? baseSum(array, iteratee) / length : NAN;\n }\n function baseProperty(key) {\n return function(object) {\n return object == null ? undefined2 : object[key];\n };\n }\n function basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined2 : object[key];\n };\n }\n function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection2) {\n accumulator = initAccum ? (initAccum = false, value) : iteratee(accumulator, value, index, collection2);\n });\n return accumulator;\n }\n function baseSortBy(array, comparer) {\n var length = array.length;\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n }\n function baseSum(array, iteratee) {\n var result, index = -1, length = array.length;\n while (++index < length) {\n var current = iteratee(array[index]);\n if (current !== undefined2) {\n result = result === undefined2 ? current : result + current;\n }\n }\n return result;\n }\n function baseTimes(n, iteratee) {\n var index = -1, result = Array(n);\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n }\n function baseToPairs(object, props) {\n return arrayMap(props, function(key) {\n return [key, object[key]];\n });\n }\n function baseTrim(string) {\n return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, \"\") : string;\n }\n function baseUnary(func) {\n return function(value) {\n return func(value);\n };\n }\n function baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n }\n function cacheHas(cache, key) {\n return cache.has(key);\n }\n function charsStartIndex(strSymbols, chrSymbols) {\n var index = -1, length = strSymbols.length;\n while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {\n }\n return index;\n }\n function charsEndIndex(strSymbols, chrSymbols) {\n var index = strSymbols.length;\n while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {\n }\n return index;\n }\n function countHolders(array, placeholder) {\n var length = array.length, result = 0;\n while (length--) {\n if (array[length] === placeholder) {\n ++result;\n }\n }\n return result;\n }\n var deburrLetter = basePropertyOf(deburredLetters);\n var escapeHtmlChar = basePropertyOf(htmlEscapes);\n function escapeStringChar(chr) {\n return \"\\\\\" + stringEscapes[chr];\n }\n function getValue(object, key) {\n return object == null ? undefined2 : object[key];\n }\n function hasUnicode(string) {\n return reHasUnicode.test(string);\n }\n function hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n }\n function iteratorToArray(iterator) {\n var data, result = [];\n while (!(data = iterator.next()).done) {\n result.push(data.value);\n }\n return result;\n }\n function mapToArray(map) {\n var index = -1, result = Array(map.size);\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n }\n function overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n }\n function replaceHolders(array, placeholder) {\n var index = -1, length = array.length, resIndex = 0, result = [];\n while (++index < length) {\n var value = array[index];\n if (value === placeholder || value === PLACEHOLDER) {\n array[index] = PLACEHOLDER;\n result[resIndex++] = index;\n }\n }\n return result;\n }\n function setToArray(set) {\n var index = -1, result = Array(set.size);\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n }\n function setToPairs(set) {\n var index = -1, result = Array(set.size);\n set.forEach(function(value) {\n result[++index] = [value, value];\n });\n return result;\n }\n function strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1, length = array.length;\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n }\n function strictLastIndexOf(array, value, fromIndex) {\n var index = fromIndex + 1;\n while (index--) {\n if (array[index] === value) {\n return index;\n }\n }\n return index;\n }\n function stringSize(string) {\n return hasUnicode(string) ? unicodeSize(string) : asciiSize(string);\n }\n function stringToArray(string) {\n return hasUnicode(string) ? unicodeToArray(string) : asciiToArray(string);\n }\n function trimmedEndIndex(string) {\n var index = string.length;\n while (index-- && reWhitespace.test(string.charAt(index))) {\n }\n return index;\n }\n var unescapeHtmlChar = basePropertyOf(htmlUnescapes);\n function unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n ++result;\n }\n return result;\n }\n function unicodeToArray(string) {\n return string.match(reUnicode) || [];\n }\n function unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n }\n var runInContext = function runInContext2(context) {\n context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps));\n var Array2 = context.Array, Date2 = context.Date, Error2 = context.Error, Function2 = context.Function, Math2 = context.Math, Object2 = context.Object, RegExp2 = context.RegExp, String2 = context.String, TypeError2 = context.TypeError;\n var arrayProto = Array2.prototype, funcProto = Function2.prototype, objectProto = Object2.prototype;\n var coreJsData = context[\"__core-js_shared__\"];\n var funcToString = funcProto.toString;\n var hasOwnProperty = objectProto.hasOwnProperty;\n var idCounter = 0;\n var maskSrcKey = function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || \"\");\n return uid ? \"Symbol(src)_1.\" + uid : \"\";\n }();\n var nativeObjectToString = objectProto.toString;\n var objectCtorString = funcToString.call(Object2);\n var oldDash = root._;\n var reIsNative = RegExp2(\n \"^\" + funcToString.call(hasOwnProperty).replace(reRegExpChar, \"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, \"$1.*?\") + \"$\"\n );\n var Buffer2 = moduleExports ? context.Buffer : undefined2, Symbol2 = context.Symbol, Uint8Array2 = context.Uint8Array, allocUnsafe = Buffer2 ? Buffer2.allocUnsafe : undefined2, getPrototype = overArg(Object2.getPrototypeOf, Object2), objectCreate = Object2.create, propertyIsEnumerable = objectProto.propertyIsEnumerable, splice = arrayProto.splice, spreadableSymbol = Symbol2 ? Symbol2.isConcatSpreadable : undefined2, symIterator = Symbol2 ? Symbol2.iterator : undefined2, symToStringTag = Symbol2 ? Symbol2.toStringTag : undefined2;\n var defineProperty = function() {\n try {\n var func = getNative(Object2, \"defineProperty\");\n func({}, \"\", {});\n return func;\n } catch (e) {\n }\n }();\n var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout, ctxNow = Date2 && Date2.now !== root.Date.now && Date2.now, ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout;\n var nativeCeil = Math2.ceil, nativeFloor = Math2.floor, nativeGetSymbols = Object2.getOwnPropertySymbols, nativeIsBuffer = Buffer2 ? Buffer2.isBuffer : undefined2, nativeIsFinite = context.isFinite, nativeJoin = arrayProto.join, nativeKeys = overArg(Object2.keys, Object2), nativeMax = Math2.max, nativeMin = Math2.min, nativeNow = Date2.now, nativeParseInt = context.parseInt, nativeRandom = Math2.random, nativeReverse = arrayProto.reverse;\n var DataView = getNative(context, \"DataView\"), Map2 = getNative(context, \"Map\"), Promise2 = getNative(context, \"Promise\"), Set2 = getNative(context, \"Set\"), WeakMap = getNative(context, \"WeakMap\"), nativeCreate = getNative(Object2, \"create\");\n var metaMap = WeakMap && new WeakMap();\n var realNames = {};\n var dataViewCtorString = toSource(DataView), mapCtorString = toSource(Map2), promiseCtorString = toSource(Promise2), setCtorString = toSource(Set2), weakMapCtorString = toSource(WeakMap);\n var symbolProto = Symbol2 ? Symbol2.prototype : undefined2, symbolValueOf = symbolProto ? symbolProto.valueOf : undefined2, symbolToString = symbolProto ? symbolProto.toString : undefined2;\n function lodash(value) {\n if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {\n if (value instanceof LodashWrapper) {\n return value;\n }\n if (hasOwnProperty.call(value, \"__wrapped__\")) {\n return wrapperClone(value);\n }\n }\n return new LodashWrapper(value);\n }\n var baseCreate = /* @__PURE__ */ function() {\n function object() {\n }\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result2 = new object();\n object.prototype = undefined2;\n return result2;\n };\n }();\n function baseLodash() {\n }\n function LodashWrapper(value, chainAll) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__chain__ = !!chainAll;\n this.__index__ = 0;\n this.__values__ = undefined2;\n }\n lodash.templateSettings = {\n /**\n * Used to detect `data` property values to be HTML-escaped.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n \"escape\": reEscape,\n /**\n * Used to detect code to be evaluated.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n \"evaluate\": reEvaluate,\n /**\n * Used to detect `data` property values to inject.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n \"interpolate\": reInterpolate,\n /**\n * Used to reference the data object in the template text.\n *\n * @memberOf _.templateSettings\n * @type {string}\n */\n \"variable\": \"\",\n /**\n * Used to import variables into the compiled template.\n *\n * @memberOf _.templateSettings\n * @type {Object}\n */\n \"imports\": {\n /**\n * A reference to the `lodash` function.\n *\n * @memberOf _.templateSettings.imports\n * @type {Function}\n */\n \"_\": lodash\n }\n };\n lodash.prototype = baseLodash.prototype;\n lodash.prototype.constructor = lodash;\n LodashWrapper.prototype = baseCreate(baseLodash.prototype);\n LodashWrapper.prototype.constructor = LodashWrapper;\n function LazyWrapper(value) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__dir__ = 1;\n this.__filtered__ = false;\n this.__iteratees__ = [];\n this.__takeCount__ = MAX_ARRAY_LENGTH;\n this.__views__ = [];\n }\n function lazyClone() {\n var result2 = new LazyWrapper(this.__wrapped__);\n result2.__actions__ = copyArray(this.__actions__);\n result2.__dir__ = this.__dir__;\n result2.__filtered__ = this.__filtered__;\n result2.__iteratees__ = copyArray(this.__iteratees__);\n result2.__takeCount__ = this.__takeCount__;\n result2.__views__ = copyArray(this.__views__);\n return result2;\n }\n function lazyReverse() {\n if (this.__filtered__) {\n var result2 = new LazyWrapper(this);\n result2.__dir__ = -1;\n result2.__filtered__ = true;\n } else {\n result2 = this.clone();\n result2.__dir__ *= -1;\n }\n return result2;\n }\n function lazyValue() {\n var array = this.__wrapped__.value(), dir = this.__dir__, isArr = isArray(array), isRight = dir < 0, arrLength = isArr ? array.length : 0, view = getView(0, arrLength, this.__views__), start = view.start, end = view.end, length = end - start, index = isRight ? end : start - 1, iteratees = this.__iteratees__, iterLength = iteratees.length, resIndex = 0, takeCount = nativeMin(length, this.__takeCount__);\n if (!isArr || !isRight && arrLength == length && takeCount == length) {\n return baseWrapperValue(array, this.__actions__);\n }\n var result2 = [];\n outer:\n while (length-- && resIndex < takeCount) {\n index += dir;\n var iterIndex = -1, value = array[index];\n while (++iterIndex < iterLength) {\n var data = iteratees[iterIndex], iteratee2 = data.iteratee, type = data.type, computed = iteratee2(value);\n if (type == LAZY_MAP_FLAG) {\n value = computed;\n } else if (!computed) {\n if (type == LAZY_FILTER_FLAG) {\n continue outer;\n } else {\n break outer;\n }\n }\n }\n result2[resIndex++] = value;\n }\n return result2;\n }\n LazyWrapper.prototype = baseCreate(baseLodash.prototype);\n LazyWrapper.prototype.constructor = LazyWrapper;\n function Hash(entries) {\n var index = -1, length = entries == null ? 0 : entries.length;\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n function hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n }\n function hashDelete(key) {\n var result2 = this.has(key) && delete this.__data__[key];\n this.size -= result2 ? 1 : 0;\n return result2;\n }\n function hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result2 = data[key];\n return result2 === HASH_UNDEFINED ? undefined2 : result2;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined2;\n }\n function hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined2 : hasOwnProperty.call(data, key);\n }\n function hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = nativeCreate && value === undefined2 ? HASH_UNDEFINED : value;\n return this;\n }\n Hash.prototype.clear = hashClear;\n Hash.prototype[\"delete\"] = hashDelete;\n Hash.prototype.get = hashGet;\n Hash.prototype.has = hashHas;\n Hash.prototype.set = hashSet;\n function ListCache(entries) {\n var index = -1, length = entries == null ? 0 : entries.length;\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n function listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n }\n function listCacheDelete(key) {\n var data = this.__data__, index = assocIndexOf(data, key);\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n }\n function listCacheGet(key) {\n var data = this.__data__, index = assocIndexOf(data, key);\n return index < 0 ? undefined2 : data[index][1];\n }\n function listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n }\n function listCacheSet(key, value) {\n var data = this.__data__, index = assocIndexOf(data, key);\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n }\n ListCache.prototype.clear = listCacheClear;\n ListCache.prototype[\"delete\"] = listCacheDelete;\n ListCache.prototype.get = listCacheGet;\n ListCache.prototype.has = listCacheHas;\n ListCache.prototype.set = listCacheSet;\n function MapCache(entries) {\n var index = -1, length = entries == null ? 0 : entries.length;\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n function mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n \"hash\": new Hash(),\n \"map\": new (Map2 || ListCache)(),\n \"string\": new Hash()\n };\n }\n function mapCacheDelete(key) {\n var result2 = getMapData(this, key)[\"delete\"](key);\n this.size -= result2 ? 1 : 0;\n return result2;\n }\n function mapCacheGet(key) {\n return getMapData(this, key).get(key);\n }\n function mapCacheHas(key) {\n return getMapData(this, key).has(key);\n }\n function mapCacheSet(key, value) {\n var data = getMapData(this, key), size3 = data.size;\n data.set(key, value);\n this.size += data.size == size3 ? 0 : 1;\n return this;\n }\n MapCache.prototype.clear = mapCacheClear;\n MapCache.prototype[\"delete\"] = mapCacheDelete;\n MapCache.prototype.get = mapCacheGet;\n MapCache.prototype.has = mapCacheHas;\n MapCache.prototype.set = mapCacheSet;\n function SetCache(values2) {\n var index = -1, length = values2 == null ? 0 : values2.length;\n this.__data__ = new MapCache();\n while (++index < length) {\n this.add(values2[index]);\n }\n }\n function setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n }\n function setCacheHas(value) {\n return this.__data__.has(value);\n }\n SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\n SetCache.prototype.has = setCacheHas;\n function Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n }\n function stackClear() {\n this.__data__ = new ListCache();\n this.size = 0;\n }\n function stackDelete(key) {\n var data = this.__data__, result2 = data[\"delete\"](key);\n this.size = data.size;\n return result2;\n }\n function stackGet(key) {\n return this.__data__.get(key);\n }\n function stackHas(key) {\n return this.__data__.has(key);\n }\n function stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map2 || pairs.length < LARGE_ARRAY_SIZE - 1) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n }\n Stack.prototype.clear = stackClear;\n Stack.prototype[\"delete\"] = stackDelete;\n Stack.prototype.get = stackGet;\n Stack.prototype.has = stackHas;\n Stack.prototype.set = stackSet;\n function arrayLikeKeys(value, inherited) {\n var isArr = isArray(value), isArg = !isArr && isArguments(value), isBuff = !isArr && !isArg && isBuffer(value), isType = !isArr && !isArg && !isBuff && isTypedArray(value), skipIndexes = isArr || isArg || isBuff || isType, result2 = skipIndexes ? baseTimes(value.length, String2) : [], length = result2.length;\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && // Safari 9 has enumerable `arguments.length` in strict mode.\n (key == \"length\" || // Node.js 0.10 has enumerable non-index properties on buffers.\n isBuff && (key == \"offset\" || key == \"parent\") || // PhantomJS 2 has enumerable non-index properties on typed arrays.\n isType && (key == \"buffer\" || key == \"byteLength\" || key == \"byteOffset\") || // Skip index properties.\n isIndex(key, length)))) {\n result2.push(key);\n }\n }\n return result2;\n }\n function arraySample(array) {\n var length = array.length;\n return length ? array[baseRandom(0, length - 1)] : undefined2;\n }\n function arraySampleSize(array, n) {\n return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length));\n }\n function arrayShuffle(array) {\n return shuffleSelf(copyArray(array));\n }\n function assignMergeValue(object, key, value) {\n if (value !== undefined2 && !eq(object[key], value) || value === undefined2 && !(key in object)) {\n baseAssignValue(object, key, value);\n }\n }\n function assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || value === undefined2 && !(key in object)) {\n baseAssignValue(object, key, value);\n }\n }\n function assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n }\n function baseAggregator(collection, setter, iteratee2, accumulator) {\n baseEach(collection, function(value, key, collection2) {\n setter(accumulator, value, iteratee2(value), collection2);\n });\n return accumulator;\n }\n function baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n }\n function baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n }\n function baseAssignValue(object, key, value) {\n if (key == \"__proto__\" && defineProperty) {\n defineProperty(object, key, {\n \"configurable\": true,\n \"enumerable\": true,\n \"value\": value,\n \"writable\": true\n });\n } else {\n object[key] = value;\n }\n }\n function baseAt(object, paths) {\n var index = -1, length = paths.length, result2 = Array2(length), skip = object == null;\n while (++index < length) {\n result2[index] = skip ? undefined2 : get(object, paths[index]);\n }\n return result2;\n }\n function baseClamp(number, lower, upper) {\n if (number === number) {\n if (upper !== undefined2) {\n number = number <= upper ? number : upper;\n }\n if (lower !== undefined2) {\n number = number >= lower ? number : lower;\n }\n }\n return number;\n }\n function baseClone(value, bitmask, customizer, key, object, stack) {\n var result2, isDeep = bitmask & CLONE_DEEP_FLAG, isFlat = bitmask & CLONE_FLAT_FLAG, isFull = bitmask & CLONE_SYMBOLS_FLAG;\n if (customizer) {\n result2 = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result2 !== undefined2) {\n return result2;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result2 = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result2);\n }\n } else {\n var tag = getTag(value), isFunc = tag == funcTag || tag == genTag;\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || isFunc && !object) {\n result2 = isFlat || isFunc ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat ? copySymbolsIn(value, baseAssignIn(result2, value)) : copySymbols(value, baseAssign(result2, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result2 = initCloneByTag(value, tag, isDeep);\n }\n }\n stack || (stack = new Stack());\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result2);\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result2.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key2) {\n result2.set(key2, baseClone(subValue, bitmask, customizer, key2, value, stack));\n });\n }\n var keysFunc = isFull ? isFlat ? getAllKeysIn : getAllKeys : isFlat ? keysIn : keys;\n var props = isArr ? undefined2 : keysFunc(value);\n arrayEach(props || value, function(subValue, key2) {\n if (props) {\n key2 = subValue;\n subValue = value[key2];\n }\n assignValue(result2, key2, baseClone(subValue, bitmask, customizer, key2, value, stack));\n });\n return result2;\n }\n function baseConforms(source) {\n var props = keys(source);\n return function(object) {\n return baseConformsTo(object, source, props);\n };\n }\n function baseConformsTo(object, source, props) {\n var length = props.length;\n if (object == null) {\n return !length;\n }\n object = Object2(object);\n while (length--) {\n var key = props[length], predicate = source[key], value = object[key];\n if (value === undefined2 && !(key in object) || !predicate(value)) {\n return false;\n }\n }\n return true;\n }\n function baseDelay(func, wait, args) {\n if (typeof func != \"function\") {\n throw new TypeError2(FUNC_ERROR_TEXT);\n }\n return setTimeout2(function() {\n func.apply(undefined2, args);\n }, wait);\n }\n function baseDifference(array, values2, iteratee2, comparator) {\n var index = -1, includes2 = arrayIncludes, isCommon = true, length = array.length, result2 = [], valuesLength = values2.length;\n if (!length) {\n return result2;\n }\n if (iteratee2) {\n values2 = arrayMap(values2, baseUnary(iteratee2));\n }\n if (comparator) {\n includes2 = arrayIncludesWith;\n isCommon = false;\n } else if (values2.length >= LARGE_ARRAY_SIZE) {\n includes2 = cacheHas;\n isCommon = false;\n values2 = new SetCache(values2);\n }\n outer:\n while (++index < length) {\n var value = array[index], computed = iteratee2 == null ? value : iteratee2(value);\n value = comparator || value !== 0 ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values2[valuesIndex] === computed) {\n continue outer;\n }\n }\n result2.push(value);\n } else if (!includes2(values2, computed, comparator)) {\n result2.push(value);\n }\n }\n return result2;\n }\n var baseEach = createBaseEach(baseForOwn);\n var baseEachRight = createBaseEach(baseForOwnRight, true);\n function baseEvery(collection, predicate) {\n var result2 = true;\n baseEach(collection, function(value, index, collection2) {\n result2 = !!predicate(value, index, collection2);\n return result2;\n });\n return result2;\n }\n function baseExtremum(array, iteratee2, comparator) {\n var index = -1, length = array.length;\n while (++index < length) {\n var value = array[index], current = iteratee2(value);\n if (current != null && (computed === undefined2 ? current === current && !isSymbol(current) : comparator(current, computed))) {\n var computed = current, result2 = value;\n }\n }\n return result2;\n }\n function baseFill(array, value, start, end) {\n var length = array.length;\n start = toInteger(start);\n if (start < 0) {\n start = -start > length ? 0 : length + start;\n }\n end = end === undefined2 || end > length ? length : toInteger(end);\n if (end < 0) {\n end += length;\n }\n end = start > end ? 0 : toLength(end);\n while (start < end) {\n array[start++] = value;\n }\n return array;\n }\n function baseFilter(collection, predicate) {\n var result2 = [];\n baseEach(collection, function(value, index, collection2) {\n if (predicate(value, index, collection2)) {\n result2.push(value);\n }\n });\n return result2;\n }\n function baseFlatten(array, depth, predicate, isStrict, result2) {\n var index = -1, length = array.length;\n predicate || (predicate = isFlattenable);\n result2 || (result2 = []);\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n baseFlatten(value, depth - 1, predicate, isStrict, result2);\n } else {\n arrayPush(result2, value);\n }\n } else if (!isStrict) {\n result2[result2.length] = value;\n }\n }\n return result2;\n }\n var baseFor = createBaseFor();\n var baseForRight = createBaseFor(true);\n function baseForOwn(object, iteratee2) {\n return object && baseFor(object, iteratee2, keys);\n }\n function baseForOwnRight(object, iteratee2) {\n return object && baseForRight(object, iteratee2, keys);\n }\n function baseFunctions(object, props) {\n return arrayFilter(props, function(key) {\n return isFunction(object[key]);\n });\n }\n function baseGet(object, path) {\n path = castPath(path, object);\n var index = 0, length = path.length;\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return index && index == length ? object : undefined2;\n }\n function baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result2 = keysFunc(object);\n return isArray(object) ? result2 : arrayPush(result2, symbolsFunc(object));\n }\n function baseGetTag(value) {\n if (value == null) {\n return value === undefined2 ? undefinedTag : nullTag;\n }\n return symToStringTag && symToStringTag in Object2(value) ? getRawTag(value) : objectToString(value);\n }\n function baseGt(value, other) {\n return value > other;\n }\n function baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n }\n function baseHasIn(object, key) {\n return object != null && key in Object2(object);\n }\n function baseInRange(number, start, end) {\n return number >= nativeMin(start, end) && number < nativeMax(start, end);\n }\n function baseIntersection(arrays, iteratee2, comparator) {\n var includes2 = comparator ? arrayIncludesWith : arrayIncludes, length = arrays[0].length, othLength = arrays.length, othIndex = othLength, caches = Array2(othLength), maxLength = Infinity, result2 = [];\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee2) {\n array = arrayMap(array, baseUnary(iteratee2));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee2 || length >= 120 && array.length >= 120) ? new SetCache(othIndex && array) : undefined2;\n }\n array = arrays[0];\n var index = -1, seen = caches[0];\n outer:\n while (++index < length && result2.length < maxLength) {\n var value = array[index], computed = iteratee2 ? iteratee2(value) : value;\n value = comparator || value !== 0 ? value : 0;\n if (!(seen ? cacheHas(seen, computed) : includes2(result2, computed, comparator))) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache ? cacheHas(cache, computed) : includes2(arrays[othIndex], computed, comparator))) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result2.push(value);\n }\n }\n return result2;\n }\n function baseInverter(object, setter, iteratee2, accumulator) {\n baseForOwn(object, function(value, key, object2) {\n setter(accumulator, iteratee2(value), key, object2);\n });\n return accumulator;\n }\n function baseInvoke(object, path, args) {\n path = castPath(path, object);\n object = parent(object, path);\n var func = object == null ? object : object[toKey(last(path))];\n return func == null ? undefined2 : apply(func, object, args);\n }\n function baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n }\n function baseIsArrayBuffer(value) {\n return isObjectLike(value) && baseGetTag(value) == arrayBufferTag;\n }\n function baseIsDate(value) {\n return isObjectLike(value) && baseGetTag(value) == dateTag;\n }\n function baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || !isObjectLike(value) && !isObjectLike(other)) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n }\n function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object), othIsArr = isArray(other), objTag = objIsArr ? arrayTag : getTag(object), othTag = othIsArr ? arrayTag : getTag(other);\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n var objIsObj = objTag == objectTag, othIsObj = othTag == objectTag, isSameTag = objTag == othTag;\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack());\n return objIsArr || isTypedArray(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, \"__wrapped__\"), othIsWrapped = othIsObj && hasOwnProperty.call(other, \"__wrapped__\");\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object, othUnwrapped = othIsWrapped ? other.value() : other;\n stack || (stack = new Stack());\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack());\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n }\n function baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n }\n function baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length, length = index, noCustomizer = !customizer;\n if (object == null) {\n return !length;\n }\n object = Object2(object);\n while (index--) {\n var data = matchData[index];\n if (noCustomizer && data[2] ? data[1] !== object[data[0]] : !(data[0] in object)) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0], objValue = object[key], srcValue = data[1];\n if (noCustomizer && data[2]) {\n if (objValue === undefined2 && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack();\n if (customizer) {\n var result2 = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result2 === undefined2 ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) : result2)) {\n return false;\n }\n }\n }\n return true;\n }\n function baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n }\n function baseIsRegExp(value) {\n return isObjectLike(value) && baseGetTag(value) == regexpTag;\n }\n function baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n }\n function baseIsTypedArray(value) {\n return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n }\n function baseIteratee(value) {\n if (typeof value == \"function\") {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == \"object\") {\n return isArray(value) ? baseMatchesProperty(value[0], value[1]) : baseMatches(value);\n }\n return property(value);\n }\n function baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result2 = [];\n for (var key in Object2(object)) {\n if (hasOwnProperty.call(object, key) && key != \"constructor\") {\n result2.push(key);\n }\n }\n return result2;\n }\n function baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object), result2 = [];\n for (var key in object) {\n if (!(key == \"constructor\" && (isProto || !hasOwnProperty.call(object, key)))) {\n result2.push(key);\n }\n }\n return result2;\n }\n function baseLt(value, other) {\n return value < other;\n }\n function baseMap(collection, iteratee2) {\n var index = -1, result2 = isArrayLike(collection) ? Array2(collection.length) : [];\n baseEach(collection, function(value, key, collection2) {\n result2[++index] = iteratee2(value, key, collection2);\n });\n return result2;\n }\n function baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n }\n function baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return objValue === undefined2 && objValue === srcValue ? hasIn(object, path) : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n }\n function baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack());\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n } else {\n var newValue = customizer ? customizer(safeGet(object, key), srcValue, key + \"\", object, source, stack) : undefined2;\n if (newValue === undefined2) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n }\n function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key), srcValue = safeGet(source, key), stacked = stack.get(srcValue);\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer ? customizer(objValue, srcValue, key + \"\", object, source, stack) : undefined2;\n var isCommon = newValue === undefined2;\n if (isCommon) {\n var isArr = isArray(srcValue), isBuff = !isArr && isBuffer(srcValue), isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n } else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n } else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n } else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n } else {\n newValue = [];\n }\n } else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n } else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n } else {\n isCommon = false;\n }\n }\n if (isCommon) {\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack[\"delete\"](srcValue);\n }\n assignMergeValue(object, key, newValue);\n }\n function baseNth(array, n) {\n var length = array.length;\n if (!length) {\n return;\n }\n n += n < 0 ? length : 0;\n return isIndex(n, length) ? array[n] : undefined2;\n }\n function baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee2) {\n if (isArray(iteratee2)) {\n return function(value) {\n return baseGet(value, iteratee2.length === 1 ? iteratee2[0] : iteratee2);\n };\n }\n return iteratee2;\n });\n } else {\n iteratees = [identity];\n }\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n var result2 = baseMap(collection, function(value, key, collection2) {\n var criteria = arrayMap(iteratees, function(iteratee2) {\n return iteratee2(value);\n });\n return { \"criteria\": criteria, \"index\": ++index, \"value\": value };\n });\n return baseSortBy(result2, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n }\n function basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n }\n function basePickBy(object, paths, predicate) {\n var index = -1, length = paths.length, result2 = {};\n while (++index < length) {\n var path = paths[index], value = baseGet(object, path);\n if (predicate(value, path)) {\n baseSet(result2, castPath(path, object), value);\n }\n }\n return result2;\n }\n function basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n }\n function basePullAll(array, values2, iteratee2, comparator) {\n var indexOf2 = comparator ? baseIndexOfWith : baseIndexOf, index = -1, length = values2.length, seen = array;\n if (array === values2) {\n values2 = copyArray(values2);\n }\n if (iteratee2) {\n seen = arrayMap(array, baseUnary(iteratee2));\n }\n while (++index < length) {\n var fromIndex = 0, value = values2[index], computed = iteratee2 ? iteratee2(value) : value;\n while ((fromIndex = indexOf2(seen, computed, fromIndex, comparator)) > -1) {\n if (seen !== array) {\n splice.call(seen, fromIndex, 1);\n }\n splice.call(array, fromIndex, 1);\n }\n }\n return array;\n }\n function basePullAt(array, indexes) {\n var length = array ? indexes.length : 0, lastIndex = length - 1;\n while (length--) {\n var index = indexes[length];\n if (length == lastIndex || index !== previous) {\n var previous = index;\n if (isIndex(index)) {\n splice.call(array, index, 1);\n } else {\n baseUnset(array, index);\n }\n }\n }\n return array;\n }\n function baseRandom(lower, upper) {\n return lower + nativeFloor(nativeRandom() * (upper - lower + 1));\n }\n function baseRange(start, end, step, fromRight) {\n var index = -1, length = nativeMax(nativeCeil((end - start) / (step || 1)), 0), result2 = Array2(length);\n while (length--) {\n result2[fromRight ? length : ++index] = start;\n start += step;\n }\n return result2;\n }\n function baseRepeat(string, n) {\n var result2 = \"\";\n if (!string || n < 1 || n > MAX_SAFE_INTEGER) {\n return result2;\n }\n do {\n if (n % 2) {\n result2 += string;\n }\n n = nativeFloor(n / 2);\n if (n) {\n string += string;\n }\n } while (n);\n return result2;\n }\n function baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + \"\");\n }\n function baseSample(collection) {\n return arraySample(values(collection));\n }\n function baseSampleSize(collection, n) {\n var array = values(collection);\n return shuffleSelf(array, baseClamp(n, 0, array.length));\n }\n function baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n var index = -1, length = path.length, lastIndex = length - 1, nested = object;\n while (nested != null && ++index < length) {\n var key = toKey(path[index]), newValue = value;\n if (key === \"__proto__\" || key === \"constructor\" || key === \"prototype\") {\n return object;\n }\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined2;\n if (newValue === undefined2) {\n newValue = isObject(objValue) ? objValue : isIndex(path[index + 1]) ? [] : {};\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n }\n var baseSetData = !metaMap ? identity : function(func, data) {\n metaMap.set(func, data);\n return func;\n };\n var baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, \"toString\", {\n \"configurable\": true,\n \"enumerable\": false,\n \"value\": constant(string),\n \"writable\": true\n });\n };\n function baseShuffle(collection) {\n return shuffleSelf(values(collection));\n }\n function baseSlice(array, start, end) {\n var index = -1, length = array.length;\n if (start < 0) {\n start = -start > length ? 0 : length + start;\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : end - start >>> 0;\n start >>>= 0;\n var result2 = Array2(length);\n while (++index < length) {\n result2[index] = array[index + start];\n }\n return result2;\n }\n function baseSome(collection, predicate) {\n var result2;\n baseEach(collection, function(value, index, collection2) {\n result2 = predicate(value, index, collection2);\n return !result2;\n });\n return !!result2;\n }\n function baseSortedIndex(array, value, retHighest) {\n var low = 0, high = array == null ? low : array.length;\n if (typeof value == \"number\" && value === value && high <= HALF_MAX_ARRAY_LENGTH) {\n while (low < high) {\n var mid = low + high >>> 1, computed = array[mid];\n if (computed !== null && !isSymbol(computed) && (retHighest ? computed <= value : computed < value)) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return high;\n }\n return baseSortedIndexBy(array, value, identity, retHighest);\n }\n function baseSortedIndexBy(array, value, iteratee2, retHighest) {\n var low = 0, high = array == null ? 0 : array.length;\n if (high === 0) {\n return 0;\n }\n value = iteratee2(value);\n var valIsNaN = value !== value, valIsNull = value === null, valIsSymbol = isSymbol(value), valIsUndefined = value === undefined2;\n while (low < high) {\n var mid = nativeFloor((low + high) / 2), computed = iteratee2(array[mid]), othIsDefined = computed !== undefined2, othIsNull = computed === null, othIsReflexive = computed === computed, othIsSymbol = isSymbol(computed);\n if (valIsNaN) {\n var setLow = retHighest || othIsReflexive;\n } else if (valIsUndefined) {\n setLow = othIsReflexive && (retHighest || othIsDefined);\n } else if (valIsNull) {\n setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);\n } else if (valIsSymbol) {\n setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);\n } else if (othIsNull || othIsSymbol) {\n setLow = false;\n } else {\n setLow = retHighest ? computed <= value : computed < value;\n }\n if (setLow) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return nativeMin(high, MAX_ARRAY_INDEX);\n }\n function baseSortedUniq(array, iteratee2) {\n var index = -1, length = array.length, resIndex = 0, result2 = [];\n while (++index < length) {\n var value = array[index], computed = iteratee2 ? iteratee2(value) : value;\n if (!index || !eq(computed, seen)) {\n var seen = computed;\n result2[resIndex++] = value === 0 ? 0 : value;\n }\n }\n return result2;\n }\n function baseToNumber(value) {\n if (typeof value == \"number\") {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n return +value;\n }\n function baseToString(value) {\n if (typeof value == \"string\") {\n return value;\n }\n if (isArray(value)) {\n return arrayMap(value, baseToString) + \"\";\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : \"\";\n }\n var result2 = value + \"\";\n return result2 == \"0\" && 1 / value == -INFINITY ? \"-0\" : result2;\n }\n function baseUniq(array, iteratee2, comparator) {\n var index = -1, includes2 = arrayIncludes, length = array.length, isCommon = true, result2 = [], seen = result2;\n if (comparator) {\n isCommon = false;\n includes2 = arrayIncludesWith;\n } else if (length >= LARGE_ARRAY_SIZE) {\n var set2 = iteratee2 ? null : createSet(array);\n if (set2) {\n return setToArray(set2);\n }\n isCommon = false;\n includes2 = cacheHas;\n seen = new SetCache();\n } else {\n seen = iteratee2 ? [] : result2;\n }\n outer:\n while (++index < length) {\n var value = array[index], computed = iteratee2 ? iteratee2(value) : value;\n value = comparator || value !== 0 ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee2) {\n seen.push(computed);\n }\n result2.push(value);\n } else if (!includes2(seen, computed, comparator)) {\n if (seen !== result2) {\n seen.push(computed);\n }\n result2.push(value);\n }\n }\n return result2;\n }\n function baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n }\n function baseUpdate(object, path, updater, customizer) {\n return baseSet(object, path, updater(baseGet(object, path)), customizer);\n }\n function baseWhile(array, predicate, isDrop, fromRight) {\n var length = array.length, index = fromRight ? length : -1;\n while ((fromRight ? index-- : ++index < length) && predicate(array[index], index, array)) {\n }\n return isDrop ? baseSlice(array, fromRight ? 0 : index, fromRight ? index + 1 : length) : baseSlice(array, fromRight ? index + 1 : 0, fromRight ? length : index);\n }\n function baseWrapperValue(value, actions) {\n var result2 = value;\n if (result2 instanceof LazyWrapper) {\n result2 = result2.value();\n }\n return arrayReduce(actions, function(result3, action) {\n return action.func.apply(action.thisArg, arrayPush([result3], action.args));\n }, result2);\n }\n function baseXor(arrays, iteratee2, comparator) {\n var length = arrays.length;\n if (length < 2) {\n return length ? baseUniq(arrays[0]) : [];\n }\n var index = -1, result2 = Array2(length);\n while (++index < length) {\n var array = arrays[index], othIndex = -1;\n while (++othIndex < length) {\n if (othIndex != index) {\n result2[index] = baseDifference(result2[index] || array, arrays[othIndex], iteratee2, comparator);\n }\n }\n }\n return baseUniq(baseFlatten(result2, 1), iteratee2, comparator);\n }\n function baseZipObject(props, values2, assignFunc) {\n var index = -1, length = props.length, valsLength = values2.length, result2 = {};\n while (++index < length) {\n var value = index < valsLength ? values2[index] : undefined2;\n assignFunc(result2, props[index], value);\n }\n return result2;\n }\n function castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n }\n function castFunction(value) {\n return typeof value == \"function\" ? value : identity;\n }\n function castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n }\n var castRest = baseRest;\n function castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined2 ? length : end;\n return !start && end >= length ? array : baseSlice(array, start, end);\n }\n var clearTimeout2 = ctxClearTimeout || function(id) {\n return root.clearTimeout(id);\n };\n function cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length, result2 = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n buffer.copy(result2);\n return result2;\n }\n function cloneArrayBuffer(arrayBuffer) {\n var result2 = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array2(result2).set(new Uint8Array2(arrayBuffer));\n return result2;\n }\n function cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n }\n function cloneRegExp(regexp) {\n var result2 = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result2.lastIndex = regexp.lastIndex;\n return result2;\n }\n function cloneSymbol(symbol) {\n return symbolValueOf ? Object2(symbolValueOf.call(symbol)) : {};\n }\n function cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n }\n function compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined2, valIsNull = value === null, valIsReflexive = value === value, valIsSymbol = isSymbol(value);\n var othIsDefined = other !== undefined2, othIsNull = other === null, othIsReflexive = other === other, othIsSymbol = isSymbol(other);\n if (!othIsNull && !othIsSymbol && !valIsSymbol && value > other || valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol || valIsNull && othIsDefined && othIsReflexive || !valIsDefined && othIsReflexive || !valIsReflexive) {\n return 1;\n }\n if (!valIsNull && !valIsSymbol && !othIsSymbol && value < other || othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol || othIsNull && valIsDefined && valIsReflexive || !othIsDefined && valIsReflexive || !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n }\n function compareMultiple(object, other, orders) {\n var index = -1, objCriteria = object.criteria, othCriteria = other.criteria, length = objCriteria.length, ordersLength = orders.length;\n while (++index < length) {\n var result2 = compareAscending(objCriteria[index], othCriteria[index]);\n if (result2) {\n if (index >= ordersLength) {\n return result2;\n }\n var order = orders[index];\n return result2 * (order == \"desc\" ? -1 : 1);\n }\n }\n return object.index - other.index;\n }\n function composeArgs(args, partials, holders, isCurried) {\n var argsIndex = -1, argsLength = args.length, holdersLength = holders.length, leftIndex = -1, leftLength = partials.length, rangeLength = nativeMax(argsLength - holdersLength, 0), result2 = Array2(leftLength + rangeLength), isUncurried = !isCurried;\n while (++leftIndex < leftLength) {\n result2[leftIndex] = partials[leftIndex];\n }\n while (++argsIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result2[holders[argsIndex]] = args[argsIndex];\n }\n }\n while (rangeLength--) {\n result2[leftIndex++] = args[argsIndex++];\n }\n return result2;\n }\n function composeArgsRight(args, partials, holders, isCurried) {\n var argsIndex = -1, argsLength = args.length, holdersIndex = -1, holdersLength = holders.length, rightIndex = -1, rightLength = partials.length, rangeLength = nativeMax(argsLength - holdersLength, 0), result2 = Array2(rangeLength + rightLength), isUncurried = !isCurried;\n while (++argsIndex < rangeLength) {\n result2[argsIndex] = args[argsIndex];\n }\n var offset = argsIndex;\n while (++rightIndex < rightLength) {\n result2[offset + rightIndex] = partials[rightIndex];\n }\n while (++holdersIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result2[offset + holders[holdersIndex]] = args[argsIndex++];\n }\n }\n return result2;\n }\n function copyArray(source, array) {\n var index = -1, length = source.length;\n array || (array = Array2(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n }\n function copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n var index = -1, length = props.length;\n while (++index < length) {\n var key = props[index];\n var newValue = customizer ? customizer(object[key], source[key], key, object, source) : undefined2;\n if (newValue === undefined2) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n }\n function copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n }\n function copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n }\n function createAggregator(setter, initializer) {\n return function(collection, iteratee2) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator, accumulator = initializer ? initializer() : {};\n return func(collection, setter, getIteratee(iteratee2, 2), accumulator);\n };\n }\n function createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1, length = sources.length, customizer = length > 1 ? sources[length - 1] : undefined2, guard = length > 2 ? sources[2] : undefined2;\n customizer = assigner.length > 3 && typeof customizer == \"function\" ? (length--, customizer) : undefined2;\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined2 : customizer;\n length = 1;\n }\n object = Object2(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n }\n function createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee2) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee2);\n }\n var length = collection.length, index = fromRight ? length : -1, iterable = Object2(collection);\n while (fromRight ? index-- : ++index < length) {\n if (iteratee2(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n }\n function createBaseFor(fromRight) {\n return function(object, iteratee2, keysFunc) {\n var index = -1, iterable = Object2(object), props = keysFunc(object), length = props.length;\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee2(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n }\n function createBind(func, bitmask, thisArg) {\n var isBind = bitmask & WRAP_BIND_FLAG, Ctor = createCtor(func);\n function wrapper() {\n var fn = this && this !== root && this instanceof wrapper ? Ctor : func;\n return fn.apply(isBind ? thisArg : this, arguments);\n }\n return wrapper;\n }\n function createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n var strSymbols = hasUnicode(string) ? stringToArray(string) : undefined2;\n var chr = strSymbols ? strSymbols[0] : string.charAt(0);\n var trailing = strSymbols ? castSlice(strSymbols, 1).join(\"\") : string.slice(1);\n return chr[methodName]() + trailing;\n };\n }\n function createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, \"\")), callback, \"\");\n };\n }\n function createCtor(Ctor) {\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0:\n return new Ctor();\n case 1:\n return new Ctor(args[0]);\n case 2:\n return new Ctor(args[0], args[1]);\n case 3:\n return new Ctor(args[0], args[1], args[2]);\n case 4:\n return new Ctor(args[0], args[1], args[2], args[3]);\n case 5:\n return new Ctor(args[0], args[1], args[2], args[3], args[4]);\n case 6:\n return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);\n case 7:\n return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);\n }\n var thisBinding = baseCreate(Ctor.prototype), result2 = Ctor.apply(thisBinding, args);\n return isObject(result2) ? result2 : thisBinding;\n };\n }\n function createCurry(func, bitmask, arity) {\n var Ctor = createCtor(func);\n function wrapper() {\n var length = arguments.length, args = Array2(length), index = length, placeholder = getHolder(wrapper);\n while (index--) {\n args[index] = arguments[index];\n }\n var holders = length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder ? [] : replaceHolders(args, placeholder);\n length -= holders.length;\n if (length < arity) {\n return createRecurry(\n func,\n bitmask,\n createHybrid,\n wrapper.placeholder,\n undefined2,\n args,\n holders,\n undefined2,\n undefined2,\n arity - length\n );\n }\n var fn = this && this !== root && this instanceof wrapper ? Ctor : func;\n return apply(fn, this, args);\n }\n return wrapper;\n }\n function createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object2(collection);\n if (!isArrayLike(collection)) {\n var iteratee2 = getIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) {\n return iteratee2(iterable[key], key, iterable);\n };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee2 ? collection[index] : index] : undefined2;\n };\n }\n function createFlow(fromRight) {\n return flatRest(function(funcs) {\n var length = funcs.length, index = length, prereq = LodashWrapper.prototype.thru;\n if (fromRight) {\n funcs.reverse();\n }\n while (index--) {\n var func = funcs[index];\n if (typeof func != \"function\") {\n throw new TypeError2(FUNC_ERROR_TEXT);\n }\n if (prereq && !wrapper && getFuncName(func) == \"wrapper\") {\n var wrapper = new LodashWrapper([], true);\n }\n }\n index = wrapper ? index : length;\n while (++index < length) {\n func = funcs[index];\n var funcName = getFuncName(func), data = funcName == \"wrapper\" ? getData2(func) : undefined2;\n if (data && isLaziable(data[0]) && data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) && !data[4].length && data[9] == 1) {\n wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);\n } else {\n wrapper = func.length == 1 && isLaziable(func) ? wrapper[funcName]() : wrapper.thru(func);\n }\n }\n return function() {\n var args = arguments, value = args[0];\n if (wrapper && args.length == 1 && isArray(value)) {\n return wrapper.plant(value).value();\n }\n var index2 = 0, result2 = length ? funcs[index2].apply(this, args) : value;\n while (++index2 < length) {\n result2 = funcs[index2].call(this, result2);\n }\n return result2;\n };\n });\n }\n function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary2, arity) {\n var isAry = bitmask & WRAP_ARY_FLAG, isBind = bitmask & WRAP_BIND_FLAG, isBindKey = bitmask & WRAP_BIND_KEY_FLAG, isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG), isFlip = bitmask & WRAP_FLIP_FLAG, Ctor = isBindKey ? undefined2 : createCtor(func);\n function wrapper() {\n var length = arguments.length, args = Array2(length), index = length;\n while (index--) {\n args[index] = arguments[index];\n }\n if (isCurried) {\n var placeholder = getHolder(wrapper), holdersCount = countHolders(args, placeholder);\n }\n if (partials) {\n args = composeArgs(args, partials, holders, isCurried);\n }\n if (partialsRight) {\n args = composeArgsRight(args, partialsRight, holdersRight, isCurried);\n }\n length -= holdersCount;\n if (isCurried && length < arity) {\n var newHolders = replaceHolders(args, placeholder);\n return createRecurry(\n func,\n bitmask,\n createHybrid,\n wrapper.placeholder,\n thisArg,\n args,\n newHolders,\n argPos,\n ary2,\n arity - length\n );\n }\n var thisBinding = isBind ? thisArg : this, fn = isBindKey ? thisBinding[func] : func;\n length = args.length;\n if (argPos) {\n args = reorder(args, argPos);\n } else if (isFlip && length > 1) {\n args.reverse();\n }\n if (isAry && ary2 < length) {\n args.length = ary2;\n }\n if (this && this !== root && this instanceof wrapper) {\n fn = Ctor || createCtor(fn);\n }\n return fn.apply(thisBinding, args);\n }\n return wrapper;\n }\n function createInverter(setter, toIteratee) {\n return function(object, iteratee2) {\n return baseInverter(object, setter, toIteratee(iteratee2), {});\n };\n }\n function createMathOperation(operator, defaultValue) {\n return function(value, other) {\n var result2;\n if (value === undefined2 && other === undefined2) {\n return defaultValue;\n }\n if (value !== undefined2) {\n result2 = value;\n }\n if (other !== undefined2) {\n if (result2 === undefined2) {\n return other;\n }\n if (typeof value == \"string\" || typeof other == \"string\") {\n value = baseToString(value);\n other = baseToString(other);\n } else {\n value = baseToNumber(value);\n other = baseToNumber(other);\n }\n result2 = operator(value, other);\n }\n return result2;\n };\n }\n function createOver(arrayFunc) {\n return flatRest(function(iteratees) {\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n return baseRest(function(args) {\n var thisArg = this;\n return arrayFunc(iteratees, function(iteratee2) {\n return apply(iteratee2, thisArg, args);\n });\n });\n });\n }\n function createPadding(length, chars) {\n chars = chars === undefined2 ? \" \" : baseToString(chars);\n var charsLength = chars.length;\n if (charsLength < 2) {\n return charsLength ? baseRepeat(chars, length) : chars;\n }\n var result2 = baseRepeat(chars, nativeCeil(length / stringSize(chars)));\n return hasUnicode(chars) ? castSlice(stringToArray(result2), 0, length).join(\"\") : result2.slice(0, length);\n }\n function createPartial(func, bitmask, thisArg, partials) {\n var isBind = bitmask & WRAP_BIND_FLAG, Ctor = createCtor(func);\n function wrapper() {\n var argsIndex = -1, argsLength = arguments.length, leftIndex = -1, leftLength = partials.length, args = Array2(leftLength + argsLength), fn = this && this !== root && this instanceof wrapper ? Ctor : func;\n while (++leftIndex < leftLength) {\n args[leftIndex] = partials[leftIndex];\n }\n while (argsLength--) {\n args[leftIndex++] = arguments[++argsIndex];\n }\n return apply(fn, isBind ? thisArg : this, args);\n }\n return wrapper;\n }\n function createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != \"number\" && isIterateeCall(start, end, step)) {\n end = step = undefined2;\n }\n start = toFinite(start);\n if (end === undefined2) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined2 ? start < end ? 1 : -1 : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n }\n function createRelationalOperation(operator) {\n return function(value, other) {\n if (!(typeof value == \"string\" && typeof other == \"string\")) {\n value = toNumber(value);\n other = toNumber(other);\n }\n return operator(value, other);\n };\n }\n function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary2, arity) {\n var isCurry = bitmask & WRAP_CURRY_FLAG, newHolders = isCurry ? holders : undefined2, newHoldersRight = isCurry ? undefined2 : holders, newPartials = isCurry ? partials : undefined2, newPartialsRight = isCurry ? undefined2 : partials;\n bitmask |= isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG;\n bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);\n if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {\n bitmask &= -4;\n }\n var newData = [\n func,\n bitmask,\n thisArg,\n newPartials,\n newHolders,\n newPartialsRight,\n newHoldersRight,\n argPos,\n ary2,\n arity\n ];\n var result2 = wrapFunc.apply(undefined2, newData);\n if (isLaziable(func)) {\n setData2(result2, newData);\n }\n result2.placeholder = placeholder;\n return setWrapToString(result2, func, bitmask);\n }\n function createRound(methodName) {\n var func = Math2[methodName];\n return function(number, precision) {\n number = toNumber(number);\n precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);\n if (precision && nativeIsFinite(number)) {\n var pair = (toString(number) + \"e\").split(\"e\"), value = func(pair[0] + \"e\" + (+pair[1] + precision));\n pair = (toString(value) + \"e\").split(\"e\");\n return +(pair[0] + \"e\" + (+pair[1] - precision));\n }\n return func(number);\n };\n }\n var createSet = !(Set2 && 1 / setToArray(new Set2([, -0]))[1] == INFINITY) ? noop2 : function(values2) {\n return new Set2(values2);\n };\n function createToPairs(keysFunc) {\n return function(object) {\n var tag = getTag(object);\n if (tag == mapTag) {\n return mapToArray(object);\n }\n if (tag == setTag) {\n return setToPairs(object);\n }\n return baseToPairs(object, keysFunc(object));\n };\n }\n function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary2, arity) {\n var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;\n if (!isBindKey && typeof func != \"function\") {\n throw new TypeError2(FUNC_ERROR_TEXT);\n }\n var length = partials ? partials.length : 0;\n if (!length) {\n bitmask &= -97;\n partials = holders = undefined2;\n }\n ary2 = ary2 === undefined2 ? ary2 : nativeMax(toInteger(ary2), 0);\n arity = arity === undefined2 ? arity : toInteger(arity);\n length -= holders ? holders.length : 0;\n if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {\n var partialsRight = partials, holdersRight = holders;\n partials = holders = undefined2;\n }\n var data = isBindKey ? undefined2 : getData2(func);\n var newData = [\n func,\n bitmask,\n thisArg,\n partials,\n holders,\n partialsRight,\n holdersRight,\n argPos,\n ary2,\n arity\n ];\n if (data) {\n mergeData(newData, data);\n }\n func = newData[0];\n bitmask = newData[1];\n thisArg = newData[2];\n partials = newData[3];\n holders = newData[4];\n arity = newData[9] = newData[9] === undefined2 ? isBindKey ? 0 : func.length : nativeMax(newData[9] - length, 0);\n if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {\n bitmask &= -25;\n }\n if (!bitmask || bitmask == WRAP_BIND_FLAG) {\n var result2 = createBind(func, bitmask, thisArg);\n } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {\n result2 = createCurry(func, bitmask, arity);\n } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {\n result2 = createPartial(func, bitmask, thisArg, partials);\n } else {\n result2 = createHybrid.apply(undefined2, newData);\n }\n var setter = data ? baseSetData : setData2;\n return setWrapToString(setter(result2, newData), func, bitmask);\n }\n function customDefaultsAssignIn(objValue, srcValue, key, object) {\n if (objValue === undefined2 || eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key)) {\n return srcValue;\n }\n return objValue;\n }\n function customDefaultsMerge(objValue, srcValue, key, object, source, stack) {\n if (isObject(objValue) && isObject(srcValue)) {\n stack.set(srcValue, objValue);\n baseMerge(objValue, srcValue, undefined2, customDefaultsMerge, stack);\n stack[\"delete\"](srcValue);\n }\n return objValue;\n }\n function customOmitClone(value) {\n return isPlainObject(value) ? undefined2 : value;\n }\n function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG, arrLength = array.length, othLength = other.length;\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1, result2 = true, seen = bitmask & COMPARE_UNORDERED_FLAG ? new SetCache() : undefined2;\n stack.set(array, other);\n stack.set(other, array);\n while (++index < arrLength) {\n var arrValue = array[index], othValue = other[index];\n if (customizer) {\n var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined2) {\n if (compared) {\n continue;\n }\n result2 = false;\n break;\n }\n if (seen) {\n if (!arraySome(other, function(othValue2, othIndex) {\n if (!cacheHas(seen, othIndex) && (arrValue === othValue2 || equalFunc(arrValue, othValue2, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result2 = false;\n break;\n }\n } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n result2 = false;\n break;\n }\n }\n stack[\"delete\"](array);\n stack[\"delete\"](other);\n return result2;\n }\n function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n case arrayBufferTag:\n if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array2(object), new Uint8Array2(other))) {\n return false;\n }\n return true;\n case boolTag:\n case dateTag:\n case numberTag:\n return eq(+object, +other);\n case errorTag:\n return object.name == other.name && object.message == other.message;\n case regexpTag:\n case stringTag:\n return object == other + \"\";\n case mapTag:\n var convert = mapToArray;\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n if (object.size != other.size && !isPartial) {\n return false;\n }\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n stack.set(object, other);\n var result2 = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack[\"delete\"](object);\n return result2;\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n }\n function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG, objProps = getAllKeys(object), objLength = objProps.length, othProps = getAllKeys(other), othLength = othProps.length;\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result2 = true;\n stack.set(object, other);\n stack.set(other, object);\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key], othValue = other[key];\n if (customizer) {\n var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack);\n }\n if (!(compared === undefined2 ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) {\n result2 = false;\n break;\n }\n skipCtor || (skipCtor = key == \"constructor\");\n }\n if (result2 && !skipCtor) {\n var objCtor = object.constructor, othCtor = other.constructor;\n if (objCtor != othCtor && (\"constructor\" in object && \"constructor\" in other) && !(typeof objCtor == \"function\" && objCtor instanceof objCtor && typeof othCtor == \"function\" && othCtor instanceof othCtor)) {\n result2 = false;\n }\n }\n stack[\"delete\"](object);\n stack[\"delete\"](other);\n return result2;\n }\n function flatRest(func) {\n return setToString(overRest(func, undefined2, flatten), func + \"\");\n }\n function getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n }\n function getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n }\n var getData2 = !metaMap ? noop2 : function(func) {\n return metaMap.get(func);\n };\n function getFuncName(func) {\n var result2 = func.name + \"\", array = realNames[result2], length = hasOwnProperty.call(realNames, result2) ? array.length : 0;\n while (length--) {\n var data = array[length], otherFunc = data.func;\n if (otherFunc == null || otherFunc == func) {\n return data.name;\n }\n }\n return result2;\n }\n function getHolder(func) {\n var object = hasOwnProperty.call(lodash, \"placeholder\") ? lodash : func;\n return object.placeholder;\n }\n function getIteratee() {\n var result2 = lodash.iteratee || iteratee;\n result2 = result2 === iteratee ? baseIteratee : result2;\n return arguments.length ? result2(arguments[0], arguments[1]) : result2;\n }\n function getMapData(map2, key) {\n var data = map2.__data__;\n return isKeyable(key) ? data[typeof key == \"string\" ? \"string\" : \"hash\"] : data.map;\n }\n function getMatchData(object) {\n var result2 = keys(object), length = result2.length;\n while (length--) {\n var key = result2[length], value = object[key];\n result2[length] = [key, value, isStrictComparable(value)];\n }\n return result2;\n }\n function getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined2;\n }\n function getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag];\n try {\n value[symToStringTag] = undefined2;\n var unmasked = true;\n } catch (e) {\n }\n var result2 = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result2;\n }\n var getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object2(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n };\n var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result2 = [];\n while (object) {\n arrayPush(result2, getSymbols(object));\n object = getPrototype(object);\n }\n return result2;\n };\n var getTag = baseGetTag;\n if (DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag || Map2 && getTag(new Map2()) != mapTag || Promise2 && getTag(Promise2.resolve()) != promiseTag || Set2 && getTag(new Set2()) != setTag || WeakMap && getTag(new WeakMap()) != weakMapTag) {\n getTag = function(value) {\n var result2 = baseGetTag(value), Ctor = result2 == objectTag ? value.constructor : undefined2, ctorString = Ctor ? toSource(Ctor) : \"\";\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString:\n return dataViewTag;\n case mapCtorString:\n return mapTag;\n case promiseCtorString:\n return promiseTag;\n case setCtorString:\n return setTag;\n case weakMapCtorString:\n return weakMapTag;\n }\n }\n return result2;\n };\n }\n function getView(start, end, transforms) {\n var index = -1, length = transforms.length;\n while (++index < length) {\n var data = transforms[index], size3 = data.size;\n switch (data.type) {\n case \"drop\":\n start += size3;\n break;\n case \"dropRight\":\n end -= size3;\n break;\n case \"take\":\n end = nativeMin(end, start + size3);\n break;\n case \"takeRight\":\n start = nativeMax(start, end - size3);\n break;\n }\n }\n return { \"start\": start, \"end\": end };\n }\n function getWrapDetails(source) {\n var match = source.match(reWrapDetails);\n return match ? match[1].split(reSplitDetails) : [];\n }\n function hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n var index = -1, length = path.length, result2 = false;\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result2 = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result2 || ++index != length) {\n return result2;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) && (isArray(object) || isArguments(object));\n }\n function initCloneArray(array) {\n var length = array.length, result2 = new array.constructor(length);\n if (length && typeof array[0] == \"string\" && hasOwnProperty.call(array, \"index\")) {\n result2.index = array.index;\n result2.input = array.input;\n }\n return result2;\n }\n function initCloneObject(object) {\n return typeof object.constructor == \"function\" && !isPrototype(object) ? baseCreate(getPrototype(object)) : {};\n }\n function initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n case dataViewTag:\n return cloneDataView(object, isDeep);\n case float32Tag:\n case float64Tag:\n case int8Tag:\n case int16Tag:\n case int32Tag:\n case uint8Tag:\n case uint8ClampedTag:\n case uint16Tag:\n case uint32Tag:\n return cloneTypedArray(object, isDeep);\n case mapTag:\n return new Ctor();\n case numberTag:\n case stringTag:\n return new Ctor(object);\n case regexpTag:\n return cloneRegExp(object);\n case setTag:\n return new Ctor();\n case symbolTag:\n return cloneSymbol(object);\n }\n }\n function insertWrapDetails(source, details) {\n var length = details.length;\n if (!length) {\n return source;\n }\n var lastIndex = length - 1;\n details[lastIndex] = (length > 1 ? \"& \" : \"\") + details[lastIndex];\n details = details.join(length > 2 ? \", \" : \" \");\n return source.replace(reWrapComment, \"{\\n/* [wrapped with \" + details + \"] */\\n\");\n }\n function isFlattenable(value) {\n return isArray(value) || isArguments(value) || !!(spreadableSymbol && value && value[spreadableSymbol]);\n }\n function isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length && (type == \"number\" || type != \"symbol\" && reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length);\n }\n function isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == \"number\" ? isArrayLike(object) && isIndex(index, object.length) : type == \"string\" && index in object) {\n return eq(object[index], value);\n }\n return false;\n }\n function isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == \"number\" || type == \"symbol\" || type == \"boolean\" || value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object2(object);\n }\n function isKeyable(value) {\n var type = typeof value;\n return type == \"string\" || type == \"number\" || type == \"symbol\" || type == \"boolean\" ? value !== \"__proto__\" : value === null;\n }\n function isLaziable(func) {\n var funcName = getFuncName(func), other = lodash[funcName];\n if (typeof other != \"function\" || !(funcName in LazyWrapper.prototype)) {\n return false;\n }\n if (func === other) {\n return true;\n }\n var data = getData2(other);\n return !!data && func === data[0];\n }\n function isMasked(func) {\n return !!maskSrcKey && maskSrcKey in func;\n }\n var isMaskable = coreJsData ? isFunction : stubFalse;\n function isPrototype(value) {\n var Ctor = value && value.constructor, proto = typeof Ctor == \"function\" && Ctor.prototype || objectProto;\n return value === proto;\n }\n function isStrictComparable(value) {\n return value === value && !isObject(value);\n }\n function matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue && (srcValue !== undefined2 || key in Object2(object));\n };\n }\n function memoizeCapped(func) {\n var result2 = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n var cache = result2.cache;\n return result2;\n }\n function mergeData(data, source) {\n var bitmask = data[1], srcBitmask = source[1], newBitmask = bitmask | srcBitmask, isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);\n var isCombo = srcBitmask == WRAP_ARY_FLAG && bitmask == WRAP_CURRY_FLAG || srcBitmask == WRAP_ARY_FLAG && bitmask == WRAP_REARG_FLAG && data[7].length <= source[8] || srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG) && source[7].length <= source[8] && bitmask == WRAP_CURRY_FLAG;\n if (!(isCommon || isCombo)) {\n return data;\n }\n if (srcBitmask & WRAP_BIND_FLAG) {\n data[2] = source[2];\n newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;\n }\n var value = source[3];\n if (value) {\n var partials = data[3];\n data[3] = partials ? composeArgs(partials, value, source[4]) : value;\n data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];\n }\n value = source[5];\n if (value) {\n partials = data[5];\n data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;\n data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];\n }\n value = source[7];\n if (value) {\n data[7] = value;\n }\n if (srcBitmask & WRAP_ARY_FLAG) {\n data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);\n }\n if (data[9] == null) {\n data[9] = source[9];\n }\n data[0] = source[0];\n data[1] = newBitmask;\n return data;\n }\n function nativeKeysIn(object) {\n var result2 = [];\n if (object != null) {\n for (var key in Object2(object)) {\n result2.push(key);\n }\n }\n return result2;\n }\n function objectToString(value) {\n return nativeObjectToString.call(value);\n }\n function overRest(func, start, transform2) {\n start = nativeMax(start === undefined2 ? func.length - 1 : start, 0);\n return function() {\n var args = arguments, index = -1, length = nativeMax(args.length - start, 0), array = Array2(length);\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array2(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform2(array);\n return apply(func, this, otherArgs);\n };\n }\n function parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n }\n function reorder(array, indexes) {\n var arrLength = array.length, length = nativeMin(indexes.length, arrLength), oldArray = copyArray(array);\n while (length--) {\n var index = indexes[length];\n array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined2;\n }\n return array;\n }\n function safeGet(object, key) {\n if (key === \"constructor\" && typeof object[key] === \"function\") {\n return;\n }\n if (key == \"__proto__\") {\n return;\n }\n return object[key];\n }\n var setData2 = shortOut(baseSetData);\n var setTimeout2 = ctxSetTimeout || function(func, wait) {\n return root.setTimeout(func, wait);\n };\n var setToString = shortOut(baseSetToString);\n function setWrapToString(wrapper, reference, bitmask) {\n var source = reference + \"\";\n return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));\n }\n function shortOut(func) {\n var count = 0, lastCalled = 0;\n return function() {\n var stamp = nativeNow(), remaining = HOT_SPAN - (stamp - lastCalled);\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined2, arguments);\n };\n }\n function shuffleSelf(array, size3) {\n var index = -1, length = array.length, lastIndex = length - 1;\n size3 = size3 === undefined2 ? length : size3;\n while (++index < size3) {\n var rand = baseRandom(index, lastIndex), value = array[rand];\n array[rand] = array[index];\n array[index] = value;\n }\n array.length = size3;\n return array;\n }\n var stringToPath = memoizeCapped(function(string) {\n var result2 = [];\n if (string.charCodeAt(0) === 46) {\n result2.push(\"\");\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result2.push(quote ? subString.replace(reEscapeChar, \"$1\") : number || match);\n });\n return result2;\n });\n function toKey(value) {\n if (typeof value == \"string\" || isSymbol(value)) {\n return value;\n }\n var result2 = value + \"\";\n return result2 == \"0\" && 1 / value == -INFINITY ? \"-0\" : result2;\n }\n function toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {\n }\n try {\n return func + \"\";\n } catch (e) {\n }\n }\n return \"\";\n }\n function updateWrapDetails(details, bitmask) {\n arrayEach(wrapFlags, function(pair) {\n var value = \"_.\" + pair[0];\n if (bitmask & pair[1] && !arrayIncludes(details, value)) {\n details.push(value);\n }\n });\n return details.sort();\n }\n function wrapperClone(wrapper) {\n if (wrapper instanceof LazyWrapper) {\n return wrapper.clone();\n }\n var result2 = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);\n result2.__actions__ = copyArray(wrapper.__actions__);\n result2.__index__ = wrapper.__index__;\n result2.__values__ = wrapper.__values__;\n return result2;\n }\n function chunk(array, size3, guard) {\n if (guard ? isIterateeCall(array, size3, guard) : size3 === undefined2) {\n size3 = 1;\n } else {\n size3 = nativeMax(toInteger(size3), 0);\n }\n var length = array == null ? 0 : array.length;\n if (!length || size3 < 1) {\n return [];\n }\n var index = 0, resIndex = 0, result2 = Array2(nativeCeil(length / size3));\n while (index < length) {\n result2[resIndex++] = baseSlice(array, index, index += size3);\n }\n return result2;\n }\n function compact(array) {\n var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result2 = [];\n while (++index < length) {\n var value = array[index];\n if (value) {\n result2[resIndex++] = value;\n }\n }\n return result2;\n }\n function concat() {\n var length = arguments.length;\n if (!length) {\n return [];\n }\n var args = Array2(length - 1), array = arguments[0], index = length;\n while (index--) {\n args[index - 1] = arguments[index];\n }\n return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));\n }\n var difference = baseRest(function(array, values2) {\n return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values2, 1, isArrayLikeObject, true)) : [];\n });\n var differenceBy = baseRest(function(array, values2) {\n var iteratee2 = last(values2);\n if (isArrayLikeObject(iteratee2)) {\n iteratee2 = undefined2;\n }\n return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values2, 1, isArrayLikeObject, true), getIteratee(iteratee2, 2)) : [];\n });\n var differenceWith = baseRest(function(array, values2) {\n var comparator = last(values2);\n if (isArrayLikeObject(comparator)) {\n comparator = undefined2;\n }\n return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values2, 1, isArrayLikeObject, true), undefined2, comparator) : [];\n });\n function drop(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = guard || n === undefined2 ? 1 : toInteger(n);\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n function dropRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = guard || n === undefined2 ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n function dropRightWhile(array, predicate) {\n return array && array.length ? baseWhile(array, getIteratee(predicate, 3), true, true) : [];\n }\n function dropWhile(array, predicate) {\n return array && array.length ? baseWhile(array, getIteratee(predicate, 3), true) : [];\n }\n function fill(array, value, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (start && typeof start != \"number\" && isIterateeCall(array, value, start)) {\n start = 0;\n end = length;\n }\n return baseFill(array, value, start, end);\n }\n function findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index);\n }\n function findLastIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length - 1;\n if (fromIndex !== undefined2) {\n index = toInteger(fromIndex);\n index = fromIndex < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index, true);\n }\n function flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n }\n function flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n }\n function flattenDepth(array, depth) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n depth = depth === undefined2 ? 1 : toInteger(depth);\n return baseFlatten(array, depth);\n }\n function fromPairs(pairs) {\n var index = -1, length = pairs == null ? 0 : pairs.length, result2 = {};\n while (++index < length) {\n var pair = pairs[index];\n result2[pair[0]] = pair[1];\n }\n return result2;\n }\n function head(array) {\n return array && array.length ? array[0] : undefined2;\n }\n function indexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseIndexOf(array, value, index);\n }\n function initial(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 0, -1) : [];\n }\n var intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped) : [];\n });\n var intersectionBy = baseRest(function(arrays) {\n var iteratee2 = last(arrays), mapped = arrayMap(arrays, castArrayLikeObject);\n if (iteratee2 === last(mapped)) {\n iteratee2 = undefined2;\n } else {\n mapped.pop();\n }\n return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped, getIteratee(iteratee2, 2)) : [];\n });\n var intersectionWith = baseRest(function(arrays) {\n var comparator = last(arrays), mapped = arrayMap(arrays, castArrayLikeObject);\n comparator = typeof comparator == \"function\" ? comparator : undefined2;\n if (comparator) {\n mapped.pop();\n }\n return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped, undefined2, comparator) : [];\n });\n function join(array, separator) {\n return array == null ? \"\" : nativeJoin.call(array, separator);\n }\n function last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined2;\n }\n function lastIndexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length;\n if (fromIndex !== undefined2) {\n index = toInteger(fromIndex);\n index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);\n }\n return value === value ? strictLastIndexOf(array, value, index) : baseFindIndex(array, baseIsNaN, index, true);\n }\n function nth(array, n) {\n return array && array.length ? baseNth(array, toInteger(n)) : undefined2;\n }\n var pull = baseRest(pullAll);\n function pullAll(array, values2) {\n return array && array.length && values2 && values2.length ? basePullAll(array, values2) : array;\n }\n function pullAllBy(array, values2, iteratee2) {\n return array && array.length && values2 && values2.length ? basePullAll(array, values2, getIteratee(iteratee2, 2)) : array;\n }\n function pullAllWith(array, values2, comparator) {\n return array && array.length && values2 && values2.length ? basePullAll(array, values2, undefined2, comparator) : array;\n }\n var pullAt = flatRest(function(array, indexes) {\n var length = array == null ? 0 : array.length, result2 = baseAt(array, indexes);\n basePullAt(array, arrayMap(indexes, function(index) {\n return isIndex(index, length) ? +index : index;\n }).sort(compareAscending));\n return result2;\n });\n function remove(array, predicate) {\n var result2 = [];\n if (!(array && array.length)) {\n return result2;\n }\n var index = -1, indexes = [], length = array.length;\n predicate = getIteratee(predicate, 3);\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result2.push(value);\n indexes.push(index);\n }\n }\n basePullAt(array, indexes);\n return result2;\n }\n function reverse(array) {\n return array == null ? array : nativeReverse.call(array);\n }\n function slice(array, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (end && typeof end != \"number\" && isIterateeCall(array, start, end)) {\n start = 0;\n end = length;\n } else {\n start = start == null ? 0 : toInteger(start);\n end = end === undefined2 ? length : toInteger(end);\n }\n return baseSlice(array, start, end);\n }\n function sortedIndex(array, value) {\n return baseSortedIndex(array, value);\n }\n function sortedIndexBy(array, value, iteratee2) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee2, 2));\n }\n function sortedIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value);\n if (index < length && eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n function sortedLastIndex(array, value) {\n return baseSortedIndex(array, value, true);\n }\n function sortedLastIndexBy(array, value, iteratee2) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee2, 2), true);\n }\n function sortedLastIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value, true) - 1;\n if (eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n function sortedUniq(array) {\n return array && array.length ? baseSortedUniq(array) : [];\n }\n function sortedUniqBy(array, iteratee2) {\n return array && array.length ? baseSortedUniq(array, getIteratee(iteratee2, 2)) : [];\n }\n function tail(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 1, length) : [];\n }\n function take(array, n, guard) {\n if (!(array && array.length)) {\n return [];\n }\n n = guard || n === undefined2 ? 1 : toInteger(n);\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n function takeRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = guard || n === undefined2 ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n function takeRightWhile(array, predicate) {\n return array && array.length ? baseWhile(array, getIteratee(predicate, 3), false, true) : [];\n }\n function takeWhile(array, predicate) {\n return array && array.length ? baseWhile(array, getIteratee(predicate, 3)) : [];\n }\n var union = baseRest(function(arrays) {\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n });\n var unionBy = baseRest(function(arrays) {\n var iteratee2 = last(arrays);\n if (isArrayLikeObject(iteratee2)) {\n iteratee2 = undefined2;\n }\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee2, 2));\n });\n var unionWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == \"function\" ? comparator : undefined2;\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined2, comparator);\n });\n function uniq(array) {\n return array && array.length ? baseUniq(array) : [];\n }\n function uniqBy(array, iteratee2) {\n return array && array.length ? baseUniq(array, getIteratee(iteratee2, 2)) : [];\n }\n function uniqWith(array, comparator) {\n comparator = typeof comparator == \"function\" ? comparator : undefined2;\n return array && array.length ? baseUniq(array, undefined2, comparator) : [];\n }\n function unzip(array) {\n if (!(array && array.length)) {\n return [];\n }\n var length = 0;\n array = arrayFilter(array, function(group) {\n if (isArrayLikeObject(group)) {\n length = nativeMax(group.length, length);\n return true;\n }\n });\n return baseTimes(length, function(index) {\n return arrayMap(array, baseProperty(index));\n });\n }\n function unzipWith(array, iteratee2) {\n if (!(array && array.length)) {\n return [];\n }\n var result2 = unzip(array);\n if (iteratee2 == null) {\n return result2;\n }\n return arrayMap(result2, function(group) {\n return apply(iteratee2, undefined2, group);\n });\n }\n var without = baseRest(function(array, values2) {\n return isArrayLikeObject(array) ? baseDifference(array, values2) : [];\n });\n var xor = baseRest(function(arrays) {\n return baseXor(arrayFilter(arrays, isArrayLikeObject));\n });\n var xorBy = baseRest(function(arrays) {\n var iteratee2 = last(arrays);\n if (isArrayLikeObject(iteratee2)) {\n iteratee2 = undefined2;\n }\n return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee2, 2));\n });\n var xorWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == \"function\" ? comparator : undefined2;\n return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined2, comparator);\n });\n var zip = baseRest(unzip);\n function zipObject(props, values2) {\n return baseZipObject(props || [], values2 || [], assignValue);\n }\n function zipObjectDeep(props, values2) {\n return baseZipObject(props || [], values2 || [], baseSet);\n }\n var zipWith = baseRest(function(arrays) {\n var length = arrays.length, iteratee2 = length > 1 ? arrays[length - 1] : undefined2;\n iteratee2 = typeof iteratee2 == \"function\" ? (arrays.pop(), iteratee2) : undefined2;\n return unzipWith(arrays, iteratee2);\n });\n function chain(value) {\n var result2 = lodash(value);\n result2.__chain__ = true;\n return result2;\n }\n function tap(value, interceptor) {\n interceptor(value);\n return value;\n }\n function thru(value, interceptor) {\n return interceptor(value);\n }\n var wrapperAt = flatRest(function(paths) {\n var length = paths.length, start = length ? paths[0] : 0, value = this.__wrapped__, interceptor = function(object) {\n return baseAt(object, paths);\n };\n if (length > 1 || this.__actions__.length || !(value instanceof LazyWrapper) || !isIndex(start)) {\n return this.thru(interceptor);\n }\n value = value.slice(start, +start + (length ? 1 : 0));\n value.__actions__.push({\n \"func\": thru,\n \"args\": [interceptor],\n \"thisArg\": undefined2\n });\n return new LodashWrapper(value, this.__chain__).thru(function(array) {\n if (length && !array.length) {\n array.push(undefined2);\n }\n return array;\n });\n });\n function wrapperChain() {\n return chain(this);\n }\n function wrapperCommit() {\n return new LodashWrapper(this.value(), this.__chain__);\n }\n function wrapperNext() {\n if (this.__values__ === undefined2) {\n this.__values__ = toArray2(this.value());\n }\n var done = this.__index__ >= this.__values__.length, value = done ? undefined2 : this.__values__[this.__index__++];\n return { \"done\": done, \"value\": value };\n }\n function wrapperToIterator() {\n return this;\n }\n function wrapperPlant(value) {\n var result2, parent2 = this;\n while (parent2 instanceof baseLodash) {\n var clone2 = wrapperClone(parent2);\n clone2.__index__ = 0;\n clone2.__values__ = undefined2;\n if (result2) {\n previous.__wrapped__ = clone2;\n } else {\n result2 = clone2;\n }\n var previous = clone2;\n parent2 = parent2.__wrapped__;\n }\n previous.__wrapped__ = value;\n return result2;\n }\n function wrapperReverse() {\n var value = this.__wrapped__;\n if (value instanceof LazyWrapper) {\n var wrapped = value;\n if (this.__actions__.length) {\n wrapped = new LazyWrapper(this);\n }\n wrapped = wrapped.reverse();\n wrapped.__actions__.push({\n \"func\": thru,\n \"args\": [reverse],\n \"thisArg\": undefined2\n });\n return new LodashWrapper(wrapped, this.__chain__);\n }\n return this.thru(reverse);\n }\n function wrapperValue() {\n return baseWrapperValue(this.__wrapped__, this.__actions__);\n }\n var countBy = createAggregator(function(result2, value, key) {\n if (hasOwnProperty.call(result2, key)) {\n ++result2[key];\n } else {\n baseAssignValue(result2, key, 1);\n }\n });\n function every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined2;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n function filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, getIteratee(predicate, 3));\n }\n var find = createFind(findIndex);\n var findLast = createFind(findLastIndex);\n function flatMap(collection, iteratee2) {\n return baseFlatten(map(collection, iteratee2), 1);\n }\n function flatMapDeep(collection, iteratee2) {\n return baseFlatten(map(collection, iteratee2), INFINITY);\n }\n function flatMapDepth(collection, iteratee2, depth) {\n depth = depth === undefined2 ? 1 : toInteger(depth);\n return baseFlatten(map(collection, iteratee2), depth);\n }\n function forEach(collection, iteratee2) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, getIteratee(iteratee2, 3));\n }\n function forEachRight(collection, iteratee2) {\n var func = isArray(collection) ? arrayEachRight : baseEachRight;\n return func(collection, getIteratee(iteratee2, 3));\n }\n var groupBy = createAggregator(function(result2, value, key) {\n if (hasOwnProperty.call(result2, key)) {\n result2[key].push(value);\n } else {\n baseAssignValue(result2, key, [value]);\n }\n });\n function includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = fromIndex && !guard ? toInteger(fromIndex) : 0;\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection) ? fromIndex <= length && collection.indexOf(value, fromIndex) > -1 : !!length && baseIndexOf(collection, value, fromIndex) > -1;\n }\n var invokeMap = baseRest(function(collection, path, args) {\n var index = -1, isFunc = typeof path == \"function\", result2 = isArrayLike(collection) ? Array2(collection.length) : [];\n baseEach(collection, function(value) {\n result2[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args);\n });\n return result2;\n });\n var keyBy = createAggregator(function(result2, value, key) {\n baseAssignValue(result2, key, value);\n });\n function map(collection, iteratee2) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, getIteratee(iteratee2, 3));\n }\n function orderBy(collection, iteratees, orders, guard) {\n if (collection == null) {\n return [];\n }\n if (!isArray(iteratees)) {\n iteratees = iteratees == null ? [] : [iteratees];\n }\n orders = guard ? undefined2 : orders;\n if (!isArray(orders)) {\n orders = orders == null ? [] : [orders];\n }\n return baseOrderBy(collection, iteratees, orders);\n }\n var partition = createAggregator(function(result2, value, key) {\n result2[key ? 0 : 1].push(value);\n }, function() {\n return [[], []];\n });\n function reduce(collection, iteratee2, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce, initAccum = arguments.length < 3;\n return func(collection, getIteratee(iteratee2, 4), accumulator, initAccum, baseEach);\n }\n function reduceRight(collection, iteratee2, accumulator) {\n var func = isArray(collection) ? arrayReduceRight : baseReduce, initAccum = arguments.length < 3;\n return func(collection, getIteratee(iteratee2, 4), accumulator, initAccum, baseEachRight);\n }\n function reject(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, negate(getIteratee(predicate, 3)));\n }\n function sample(collection) {\n var func = isArray(collection) ? arraySample : baseSample;\n return func(collection);\n }\n function sampleSize(collection, n, guard) {\n if (guard ? isIterateeCall(collection, n, guard) : n === undefined2) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n var func = isArray(collection) ? arraySampleSize : baseSampleSize;\n return func(collection, n);\n }\n function shuffle(collection) {\n var func = isArray(collection) ? arrayShuffle : baseShuffle;\n return func(collection);\n }\n function size(collection) {\n if (collection == null) {\n return 0;\n }\n if (isArrayLike(collection)) {\n return isString(collection) ? stringSize(collection) : collection.length;\n }\n var tag = getTag(collection);\n if (tag == mapTag || tag == setTag) {\n return collection.size;\n }\n return baseKeys(collection).length;\n }\n function some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined2;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n var sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n });\n var now = ctxNow || function() {\n return root.Date.now();\n };\n function after(n, func) {\n if (typeof func != \"function\") {\n throw new TypeError2(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n < 1) {\n return func.apply(this, arguments);\n }\n };\n }\n function ary(func, n, guard) {\n n = guard ? undefined2 : n;\n n = func && n == null ? func.length : n;\n return createWrap(func, WRAP_ARY_FLAG, undefined2, undefined2, undefined2, undefined2, n);\n }\n function before(n, func) {\n var result2;\n if (typeof func != \"function\") {\n throw new TypeError2(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n > 0) {\n result2 = func.apply(this, arguments);\n }\n if (n <= 1) {\n func = undefined2;\n }\n return result2;\n };\n }\n var bind = baseRest(function(func, thisArg, partials) {\n var bitmask = WRAP_BIND_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bind));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(func, bitmask, thisArg, partials, holders);\n });\n var bindKey = baseRest(function(object, key, partials) {\n var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bindKey));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(key, bitmask, object, partials, holders);\n });\n function curry(func, arity, guard) {\n arity = guard ? undefined2 : arity;\n var result2 = createWrap(func, WRAP_CURRY_FLAG, undefined2, undefined2, undefined2, undefined2, undefined2, arity);\n result2.placeholder = curry.placeholder;\n return result2;\n }\n function curryRight(func, arity, guard) {\n arity = guard ? undefined2 : arity;\n var result2 = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined2, undefined2, undefined2, undefined2, undefined2, arity);\n result2.placeholder = curryRight.placeholder;\n return result2;\n }\n function debounce3(func, wait, options) {\n var lastArgs, lastThis, maxWait, result2, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true;\n if (typeof func != \"function\") {\n throw new TypeError2(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = \"maxWait\" in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = \"trailing\" in options ? !!options.trailing : trailing;\n }\n function invokeFunc(time) {\n var args = lastArgs, thisArg = lastThis;\n lastArgs = lastThis = undefined2;\n lastInvokeTime = time;\n result2 = func.apply(thisArg, args);\n return result2;\n }\n function leadingEdge(time) {\n lastInvokeTime = time;\n timerId = setTimeout2(timerExpired, wait);\n return leading ? invokeFunc(time) : result2;\n }\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, timeWaiting = wait - timeSinceLastCall;\n return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;\n }\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime;\n return lastCallTime === undefined2 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n }\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n timerId = setTimeout2(timerExpired, remainingWait(time));\n }\n function trailingEdge(time) {\n timerId = undefined2;\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined2;\n return result2;\n }\n function cancel() {\n if (timerId !== undefined2) {\n clearTimeout2(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined2;\n }\n function flush() {\n return timerId === undefined2 ? result2 : trailingEdge(now());\n }\n function debounced() {\n var time = now(), isInvoking = shouldInvoke(time);\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n if (isInvoking) {\n if (timerId === undefined2) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n clearTimeout2(timerId);\n timerId = setTimeout2(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined2) {\n timerId = setTimeout2(timerExpired, wait);\n }\n return result2;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n }\n var defer = baseRest(function(func, args) {\n return baseDelay(func, 1, args);\n });\n var delay = baseRest(function(func, wait, args) {\n return baseDelay(func, toNumber(wait) || 0, args);\n });\n function flip(func) {\n return createWrap(func, WRAP_FLIP_FLAG);\n }\n function memoize(func, resolver) {\n if (typeof func != \"function\" || resolver != null && typeof resolver != \"function\") {\n throw new TypeError2(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments, key = resolver ? resolver.apply(this, args) : args[0], cache = memoized.cache;\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result2 = func.apply(this, args);\n memoized.cache = cache.set(key, result2) || cache;\n return result2;\n };\n memoized.cache = new (memoize.Cache || MapCache)();\n return memoized;\n }\n memoize.Cache = MapCache;\n function negate(predicate) {\n if (typeof predicate != \"function\") {\n throw new TypeError2(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0:\n return !predicate.call(this);\n case 1:\n return !predicate.call(this, args[0]);\n case 2:\n return !predicate.call(this, args[0], args[1]);\n case 3:\n return !predicate.call(this, args[0], args[1], args[2]);\n }\n return !predicate.apply(this, args);\n };\n }\n function once(func) {\n return before(2, func);\n }\n var overArgs = castRest(function(func, transforms) {\n transforms = transforms.length == 1 && isArray(transforms[0]) ? arrayMap(transforms[0], baseUnary(getIteratee())) : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee()));\n var funcsLength = transforms.length;\n return baseRest(function(args) {\n var index = -1, length = nativeMin(args.length, funcsLength);\n while (++index < length) {\n args[index] = transforms[index].call(this, args[index]);\n }\n return apply(func, this, args);\n });\n });\n var partial = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partial));\n return createWrap(func, WRAP_PARTIAL_FLAG, undefined2, partials, holders);\n });\n var partialRight = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partialRight));\n return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined2, partials, holders);\n });\n var rearg = flatRest(function(func, indexes) {\n return createWrap(func, WRAP_REARG_FLAG, undefined2, undefined2, undefined2, indexes);\n });\n function rest(func, start) {\n if (typeof func != \"function\") {\n throw new TypeError2(FUNC_ERROR_TEXT);\n }\n start = start === undefined2 ? start : toInteger(start);\n return baseRest(func, start);\n }\n function spread(func, start) {\n if (typeof func != \"function\") {\n throw new TypeError2(FUNC_ERROR_TEXT);\n }\n start = start == null ? 0 : nativeMax(toInteger(start), 0);\n return baseRest(function(args) {\n var array = args[start], otherArgs = castSlice(args, 0, start);\n if (array) {\n arrayPush(otherArgs, array);\n }\n return apply(func, this, otherArgs);\n });\n }\n function throttle(func, wait, options) {\n var leading = true, trailing = true;\n if (typeof func != \"function\") {\n throw new TypeError2(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = \"leading\" in options ? !!options.leading : leading;\n trailing = \"trailing\" in options ? !!options.trailing : trailing;\n }\n return debounce3(func, wait, {\n \"leading\": leading,\n \"maxWait\": wait,\n \"trailing\": trailing\n });\n }\n function unary(func) {\n return ary(func, 1);\n }\n function wrap(value, wrapper) {\n return partial(castFunction(wrapper), value);\n }\n function castArray() {\n if (!arguments.length) {\n return [];\n }\n var value = arguments[0];\n return isArray(value) ? value : [value];\n }\n function clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n }\n function cloneWith(value, customizer) {\n customizer = typeof customizer == \"function\" ? customizer : undefined2;\n return baseClone(value, CLONE_SYMBOLS_FLAG, customizer);\n }\n function cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n }\n function cloneDeepWith(value, customizer) {\n customizer = typeof customizer == \"function\" ? customizer : undefined2;\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);\n }\n function conformsTo(object, source) {\n return source == null || baseConformsTo(object, source, keys(source));\n }\n function eq(value, other) {\n return value === other || value !== value && other !== other;\n }\n var gt = createRelationalOperation(baseGt);\n var gte = createRelationalOperation(function(value, other) {\n return value >= other;\n });\n var isArguments = baseIsArguments(/* @__PURE__ */ function() {\n return arguments;\n }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, \"callee\") && !propertyIsEnumerable.call(value, \"callee\");\n };\n var isArray = Array2.isArray;\n var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer;\n function isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n }\n function isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n }\n function isBoolean(value) {\n return value === true || value === false || isObjectLike(value) && baseGetTag(value) == boolTag;\n }\n var isBuffer = nativeIsBuffer || stubFalse;\n var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;\n function isElement(value) {\n return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n }\n function isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) && (isArray(value) || typeof value == \"string\" || typeof value.splice == \"function\" || isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n }\n function isEqual(value, other) {\n return baseIsEqual(value, other);\n }\n function isEqualWith(value, other, customizer) {\n customizer = typeof customizer == \"function\" ? customizer : undefined2;\n var result2 = customizer ? customizer(value, other) : undefined2;\n return result2 === undefined2 ? baseIsEqual(value, other, undefined2, customizer) : !!result2;\n }\n function isError(value) {\n if (!isObjectLike(value)) {\n return false;\n }\n var tag = baseGetTag(value);\n return tag == errorTag || tag == domExcTag || typeof value.message == \"string\" && typeof value.name == \"string\" && !isPlainObject(value);\n }\n function isFinite(value) {\n return typeof value == \"number\" && nativeIsFinite(value);\n }\n function isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n }\n function isInteger(value) {\n return typeof value == \"number\" && value == toInteger(value);\n }\n function isLength(value) {\n return typeof value == \"number\" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n }\n function isObject(value) {\n var type = typeof value;\n return value != null && (type == \"object\" || type == \"function\");\n }\n function isObjectLike(value) {\n return value != null && typeof value == \"object\";\n }\n var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n function isMatch(object, source) {\n return object === source || baseIsMatch(object, source, getMatchData(source));\n }\n function isMatchWith(object, source, customizer) {\n customizer = typeof customizer == \"function\" ? customizer : undefined2;\n return baseIsMatch(object, source, getMatchData(source), customizer);\n }\n function isNaN(value) {\n return isNumber2(value) && value != +value;\n }\n function isNative(value) {\n if (isMaskable(value)) {\n throw new Error2(CORE_ERROR_TEXT);\n }\n return baseIsNative(value);\n }\n function isNull(value) {\n return value === null;\n }\n function isNil(value) {\n return value == null;\n }\n function isNumber2(value) {\n return typeof value == \"number\" || isObjectLike(value) && baseGetTag(value) == numberTag;\n }\n function isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n return typeof Ctor == \"function\" && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString;\n }\n var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n function isSafeInteger(value) {\n return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;\n }\n var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n function isString(value) {\n return typeof value == \"string\" || !isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag;\n }\n function isSymbol(value) {\n return typeof value == \"symbol\" || isObjectLike(value) && baseGetTag(value) == symbolTag;\n }\n var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n function isUndefined(value) {\n return value === undefined2;\n }\n function isWeakMap(value) {\n return isObjectLike(value) && getTag(value) == weakMapTag;\n }\n function isWeakSet(value) {\n return isObjectLike(value) && baseGetTag(value) == weakSetTag;\n }\n var lt = createRelationalOperation(baseLt);\n var lte = createRelationalOperation(function(value, other) {\n return value <= other;\n });\n function toArray2(value) {\n if (!value) {\n return [];\n }\n if (isArrayLike(value)) {\n return isString(value) ? stringToArray(value) : copyArray(value);\n }\n if (symIterator && value[symIterator]) {\n return iteratorToArray(value[symIterator]());\n }\n var tag = getTag(value), func = tag == mapTag ? mapToArray : tag == setTag ? setToArray : values;\n return func(value);\n }\n function toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = value < 0 ? -1 : 1;\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n }\n function toInteger(value) {\n var result2 = toFinite(value), remainder = result2 % 1;\n return result2 === result2 ? remainder ? result2 - remainder : result2 : 0;\n }\n function toLength(value) {\n return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0;\n }\n function toNumber(value) {\n if (typeof value == \"number\") {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == \"function\" ? value.valueOf() : value;\n value = isObject(other) ? other + \"\" : other;\n }\n if (typeof value != \"string\") {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;\n }\n function toPlainObject(value) {\n return copyObject(value, keysIn(value));\n }\n function toSafeInteger(value) {\n return value ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER) : value === 0 ? value : 0;\n }\n function toString(value) {\n return value == null ? \"\" : baseToString(value);\n }\n var assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n });\n var assignIn = createAssigner(function(object, source) {\n copyObject(source, keysIn(source), object);\n });\n var assignInWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keysIn(source), object, customizer);\n });\n var assignWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keys(source), object, customizer);\n });\n var at = flatRest(baseAt);\n function create(prototype, properties) {\n var result2 = baseCreate(prototype);\n return properties == null ? result2 : baseAssign(result2, properties);\n }\n var defaults = baseRest(function(object, sources) {\n object = Object2(object);\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined2;\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n if (value === undefined2 || eq(value, objectProto[key]) && !hasOwnProperty.call(object, key)) {\n object[key] = source[key];\n }\n }\n }\n return object;\n });\n var defaultsDeep = baseRest(function(args) {\n args.push(undefined2, customDefaultsMerge);\n return apply(mergeWith, undefined2, args);\n });\n function findKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwn);\n }\n function findLastKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight);\n }\n function forIn(object, iteratee2) {\n return object == null ? object : baseFor(object, getIteratee(iteratee2, 3), keysIn);\n }\n function forInRight(object, iteratee2) {\n return object == null ? object : baseForRight(object, getIteratee(iteratee2, 3), keysIn);\n }\n function forOwn(object, iteratee2) {\n return object && baseForOwn(object, getIteratee(iteratee2, 3));\n }\n function forOwnRight(object, iteratee2) {\n return object && baseForOwnRight(object, getIteratee(iteratee2, 3));\n }\n function functions(object) {\n return object == null ? [] : baseFunctions(object, keys(object));\n }\n function functionsIn(object) {\n return object == null ? [] : baseFunctions(object, keysIn(object));\n }\n function get(object, path, defaultValue) {\n var result2 = object == null ? undefined2 : baseGet(object, path);\n return result2 === undefined2 ? defaultValue : result2;\n }\n function has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n }\n function hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n }\n var invert = createInverter(function(result2, value, key) {\n if (value != null && typeof value.toString != \"function\") {\n value = nativeObjectToString.call(value);\n }\n result2[value] = key;\n }, constant(identity));\n var invertBy = createInverter(function(result2, value, key) {\n if (value != null && typeof value.toString != \"function\") {\n value = nativeObjectToString.call(value);\n }\n if (hasOwnProperty.call(result2, value)) {\n result2[value].push(key);\n } else {\n result2[value] = [key];\n }\n }, getIteratee);\n var invoke = baseRest(baseInvoke);\n function keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n }\n function keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n }\n function mapKeys(object, iteratee2) {\n var result2 = {};\n iteratee2 = getIteratee(iteratee2, 3);\n baseForOwn(object, function(value, key, object2) {\n baseAssignValue(result2, iteratee2(value, key, object2), value);\n });\n return result2;\n }\n function mapValues(object, iteratee2) {\n var result2 = {};\n iteratee2 = getIteratee(iteratee2, 3);\n baseForOwn(object, function(value, key, object2) {\n baseAssignValue(result2, key, iteratee2(value, key, object2));\n });\n return result2;\n }\n var merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n });\n var mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n });\n var omit = flatRest(function(object, paths) {\n var result2 = {};\n if (object == null) {\n return result2;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result2);\n if (isDeep) {\n result2 = baseClone(result2, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result2, paths[length]);\n }\n return result2;\n });\n function omitBy(object, predicate) {\n return pickBy(object, negate(getIteratee(predicate)));\n }\n var pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n });\n function pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = getIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n }\n function result(object, path, defaultValue) {\n path = castPath(path, object);\n var index = -1, length = path.length;\n if (!length) {\n length = 1;\n object = undefined2;\n }\n while (++index < length) {\n var value = object == null ? undefined2 : object[toKey(path[index])];\n if (value === undefined2) {\n index = length;\n value = defaultValue;\n }\n object = isFunction(value) ? value.call(object) : value;\n }\n return object;\n }\n function set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n }\n function setWith(object, path, value, customizer) {\n customizer = typeof customizer == \"function\" ? customizer : undefined2;\n return object == null ? object : baseSet(object, path, value, customizer);\n }\n var toPairs = createToPairs(keys);\n var toPairsIn = createToPairs(keysIn);\n function transform(object, iteratee2, accumulator) {\n var isArr = isArray(object), isArrLike = isArr || isBuffer(object) || isTypedArray(object);\n iteratee2 = getIteratee(iteratee2, 4);\n if (accumulator == null) {\n var Ctor = object && object.constructor;\n if (isArrLike) {\n accumulator = isArr ? new Ctor() : [];\n } else if (isObject(object)) {\n accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};\n } else {\n accumulator = {};\n }\n }\n (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object2) {\n return iteratee2(accumulator, value, index, object2);\n });\n return accumulator;\n }\n function unset(object, path) {\n return object == null ? true : baseUnset(object, path);\n }\n function update(object, path, updater) {\n return object == null ? object : baseUpdate(object, path, castFunction(updater));\n }\n function updateWith(object, path, updater, customizer) {\n customizer = typeof customizer == \"function\" ? customizer : undefined2;\n return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer);\n }\n function values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n }\n function valuesIn(object) {\n return object == null ? [] : baseValues(object, keysIn(object));\n }\n function clamp(number, lower, upper) {\n if (upper === undefined2) {\n upper = lower;\n lower = undefined2;\n }\n if (upper !== undefined2) {\n upper = toNumber(upper);\n upper = upper === upper ? upper : 0;\n }\n if (lower !== undefined2) {\n lower = toNumber(lower);\n lower = lower === lower ? lower : 0;\n }\n return baseClamp(toNumber(number), lower, upper);\n }\n function inRange(number, start, end) {\n start = toFinite(start);\n if (end === undefined2) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n number = toNumber(number);\n return baseInRange(number, start, end);\n }\n function random(lower, upper, floating) {\n if (floating && typeof floating != \"boolean\" && isIterateeCall(lower, upper, floating)) {\n upper = floating = undefined2;\n }\n if (floating === undefined2) {\n if (typeof upper == \"boolean\") {\n floating = upper;\n upper = undefined2;\n } else if (typeof lower == \"boolean\") {\n floating = lower;\n lower = undefined2;\n }\n }\n if (lower === undefined2 && upper === undefined2) {\n lower = 0;\n upper = 1;\n } else {\n lower = toFinite(lower);\n if (upper === undefined2) {\n upper = lower;\n lower = 0;\n } else {\n upper = toFinite(upper);\n }\n }\n if (lower > upper) {\n var temp = lower;\n lower = upper;\n upper = temp;\n }\n if (floating || lower % 1 || upper % 1) {\n var rand = nativeRandom();\n return nativeMin(lower + rand * (upper - lower + freeParseFloat(\"1e-\" + ((rand + \"\").length - 1))), upper);\n }\n return baseRandom(lower, upper);\n }\n var camelCase = createCompounder(function(result2, word, index) {\n word = word.toLowerCase();\n return result2 + (index ? capitalize(word) : word);\n });\n function capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n }\n function deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, \"\");\n }\n function endsWith(string, target, position) {\n string = toString(string);\n target = baseToString(target);\n var length = string.length;\n position = position === undefined2 ? length : baseClamp(toInteger(position), 0, length);\n var end = position;\n position -= target.length;\n return position >= 0 && string.slice(position, end) == target;\n }\n function escape(string) {\n string = toString(string);\n return string && reHasUnescapedHtml.test(string) ? string.replace(reUnescapedHtml, escapeHtmlChar) : string;\n }\n function escapeRegExp(string) {\n string = toString(string);\n return string && reHasRegExpChar.test(string) ? string.replace(reRegExpChar, \"\\\\$&\") : string;\n }\n var kebabCase = createCompounder(function(result2, word, index) {\n return result2 + (index ? \"-\" : \"\") + word.toLowerCase();\n });\n var lowerCase = createCompounder(function(result2, word, index) {\n return result2 + (index ? \" \" : \"\") + word.toLowerCase();\n });\n var lowerFirst = createCaseFirst(\"toLowerCase\");\n function pad(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n var strLength = length ? stringSize(string) : 0;\n if (!length || strLength >= length) {\n return string;\n }\n var mid = (length - strLength) / 2;\n return createPadding(nativeFloor(mid), chars) + string + createPadding(nativeCeil(mid), chars);\n }\n function padEnd(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n var strLength = length ? stringSize(string) : 0;\n return length && strLength < length ? string + createPadding(length - strLength, chars) : string;\n }\n function padStart(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n var strLength = length ? stringSize(string) : 0;\n return length && strLength < length ? createPadding(length - strLength, chars) + string : string;\n }\n function parseInt2(string, radix, guard) {\n if (guard || radix == null) {\n radix = 0;\n } else if (radix) {\n radix = +radix;\n }\n return nativeParseInt(toString(string).replace(reTrimStart, \"\"), radix || 0);\n }\n function repeat(string, n, guard) {\n if (guard ? isIterateeCall(string, n, guard) : n === undefined2) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n return baseRepeat(toString(string), n);\n }\n function replace() {\n var args = arguments, string = toString(args[0]);\n return args.length < 3 ? string : string.replace(args[1], args[2]);\n }\n var snakeCase = createCompounder(function(result2, word, index) {\n return result2 + (index ? \"_\" : \"\") + word.toLowerCase();\n });\n function split(string, separator, limit) {\n if (limit && typeof limit != \"number\" && isIterateeCall(string, separator, limit)) {\n separator = limit = undefined2;\n }\n limit = limit === undefined2 ? MAX_ARRAY_LENGTH : limit >>> 0;\n if (!limit) {\n return [];\n }\n string = toString(string);\n if (string && (typeof separator == \"string\" || separator != null && !isRegExp(separator))) {\n separator = baseToString(separator);\n if (!separator && hasUnicode(string)) {\n return castSlice(stringToArray(string), 0, limit);\n }\n }\n return string.split(separator, limit);\n }\n var startCase = createCompounder(function(result2, word, index) {\n return result2 + (index ? \" \" : \"\") + upperFirst(word);\n });\n function startsWith(string, target, position) {\n string = toString(string);\n position = position == null ? 0 : baseClamp(toInteger(position), 0, string.length);\n target = baseToString(target);\n return string.slice(position, position + target.length) == target;\n }\n function template(string, options, guard) {\n var settings = lodash.templateSettings;\n if (guard && isIterateeCall(string, options, guard)) {\n options = undefined2;\n }\n string = toString(string);\n options = assignInWith({}, options, settings, customDefaultsAssignIn);\n var imports = assignInWith({}, options.imports, settings.imports, customDefaultsAssignIn), importsKeys = keys(imports), importsValues = baseValues(imports, importsKeys);\n var isEscaping, isEvaluating, index = 0, interpolate = options.interpolate || reNoMatch, source = \"__p += '\";\n var reDelimiters = RegExp2(\n (options.escape || reNoMatch).source + \"|\" + interpolate.source + \"|\" + (interpolate === reInterpolate ? reEsTemplate : reNoMatch).source + \"|\" + (options.evaluate || reNoMatch).source + \"|$\",\n \"g\"\n );\n var sourceURL = \"//# sourceURL=\" + (hasOwnProperty.call(options, \"sourceURL\") ? (options.sourceURL + \"\").replace(/\\s/g, \" \") : \"lodash.templateSources[\" + ++templateCounter + \"]\") + \"\\n\";\n string.replace(reDelimiters, function(match, escapeValue, interpolateValue, esTemplateValue, evaluateValue, offset) {\n interpolateValue || (interpolateValue = esTemplateValue);\n source += string.slice(index, offset).replace(reUnescapedString, escapeStringChar);\n if (escapeValue) {\n isEscaping = true;\n source += \"' +\\n__e(\" + escapeValue + \") +\\n'\";\n }\n if (evaluateValue) {\n isEvaluating = true;\n source += \"';\\n\" + evaluateValue + \";\\n__p += '\";\n }\n if (interpolateValue) {\n source += \"' +\\n((__t = (\" + interpolateValue + \")) == null ? '' : __t) +\\n'\";\n }\n index = offset + match.length;\n return match;\n });\n source += \"';\\n\";\n var variable = hasOwnProperty.call(options, \"variable\") && options.variable;\n if (!variable) {\n source = \"with (obj) {\\n\" + source + \"\\n}\\n\";\n } else if (reForbiddenIdentifierChars.test(variable)) {\n throw new Error2(INVALID_TEMPL_VAR_ERROR_TEXT);\n }\n source = (isEvaluating ? source.replace(reEmptyStringLeading, \"\") : source).replace(reEmptyStringMiddle, \"$1\").replace(reEmptyStringTrailing, \"$1;\");\n source = \"function(\" + (variable || \"obj\") + \") {\\n\" + (variable ? \"\" : \"obj || (obj = {});\\n\") + \"var __t, __p = ''\" + (isEscaping ? \", __e = _.escape\" : \"\") + (isEvaluating ? \", __j = Array.prototype.join;\\nfunction print() { __p += __j.call(arguments, '') }\\n\" : \";\\n\") + source + \"return __p\\n}\";\n var result2 = attempt(function() {\n return Function2(importsKeys, sourceURL + \"return \" + source).apply(undefined2, importsValues);\n });\n result2.source = source;\n if (isError(result2)) {\n throw result2;\n }\n return result2;\n }\n function toLower(value) {\n return toString(value).toLowerCase();\n }\n function toUpper(value) {\n return toString(value).toUpperCase();\n }\n function trim(string, chars, guard) {\n string = toString(string);\n if (string && (guard || chars === undefined2)) {\n return baseTrim(string);\n }\n if (!string || !(chars = baseToString(chars))) {\n return string;\n }\n var strSymbols = stringToArray(string), chrSymbols = stringToArray(chars), start = charsStartIndex(strSymbols, chrSymbols), end = charsEndIndex(strSymbols, chrSymbols) + 1;\n return castSlice(strSymbols, start, end).join(\"\");\n }\n function trimEnd(string, chars, guard) {\n string = toString(string);\n if (string && (guard || chars === undefined2)) {\n return string.slice(0, trimmedEndIndex(string) + 1);\n }\n if (!string || !(chars = baseToString(chars))) {\n return string;\n }\n var strSymbols = stringToArray(string), end = charsEndIndex(strSymbols, stringToArray(chars)) + 1;\n return castSlice(strSymbols, 0, end).join(\"\");\n }\n function trimStart(string, chars, guard) {\n string = toString(string);\n if (string && (guard || chars === undefined2)) {\n return string.replace(reTrimStart, \"\");\n }\n if (!string || !(chars = baseToString(chars))) {\n return string;\n }\n var strSymbols = stringToArray(string), start = charsStartIndex(strSymbols, stringToArray(chars));\n return castSlice(strSymbols, start).join(\"\");\n }\n function truncate(string, options) {\n var length = DEFAULT_TRUNC_LENGTH, omission = DEFAULT_TRUNC_OMISSION;\n if (isObject(options)) {\n var separator = \"separator\" in options ? options.separator : separator;\n length = \"length\" in options ? toInteger(options.length) : length;\n omission = \"omission\" in options ? baseToString(options.omission) : omission;\n }\n string = toString(string);\n var strLength = string.length;\n if (hasUnicode(string)) {\n var strSymbols = stringToArray(string);\n strLength = strSymbols.length;\n }\n if (length >= strLength) {\n return string;\n }\n var end = length - stringSize(omission);\n if (end < 1) {\n return omission;\n }\n var result2 = strSymbols ? castSlice(strSymbols, 0, end).join(\"\") : string.slice(0, end);\n if (separator === undefined2) {\n return result2 + omission;\n }\n if (strSymbols) {\n end += result2.length - end;\n }\n if (isRegExp(separator)) {\n if (string.slice(end).search(separator)) {\n var match, substring = result2;\n if (!separator.global) {\n separator = RegExp2(separator.source, toString(reFlags.exec(separator)) + \"g\");\n }\n separator.lastIndex = 0;\n while (match = separator.exec(substring)) {\n var newEnd = match.index;\n }\n result2 = result2.slice(0, newEnd === undefined2 ? end : newEnd);\n }\n } else if (string.indexOf(baseToString(separator), end) != end) {\n var index = result2.lastIndexOf(separator);\n if (index > -1) {\n result2 = result2.slice(0, index);\n }\n }\n return result2 + omission;\n }\n function unescape(string) {\n string = toString(string);\n return string && reHasEscapedHtml.test(string) ? string.replace(reEscapedHtml, unescapeHtmlChar) : string;\n }\n var upperCase = createCompounder(function(result2, word, index) {\n return result2 + (index ? \" \" : \"\") + word.toUpperCase();\n });\n var upperFirst = createCaseFirst(\"toUpperCase\");\n function words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined2 : pattern;\n if (pattern === undefined2) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n }\n var attempt = baseRest(function(func, args) {\n try {\n return apply(func, undefined2, args);\n } catch (e) {\n return isError(e) ? e : new Error2(e);\n }\n });\n var bindAll = flatRest(function(object, methodNames) {\n arrayEach(methodNames, function(key) {\n key = toKey(key);\n baseAssignValue(object, key, bind(object[key], object));\n });\n return object;\n });\n function cond(pairs) {\n var length = pairs == null ? 0 : pairs.length, toIteratee = getIteratee();\n pairs = !length ? [] : arrayMap(pairs, function(pair) {\n if (typeof pair[1] != \"function\") {\n throw new TypeError2(FUNC_ERROR_TEXT);\n }\n return [toIteratee(pair[0]), pair[1]];\n });\n return baseRest(function(args) {\n var index = -1;\n while (++index < length) {\n var pair = pairs[index];\n if (apply(pair[0], this, args)) {\n return apply(pair[1], this, args);\n }\n }\n });\n }\n function conforms(source) {\n return baseConforms(baseClone(source, CLONE_DEEP_FLAG));\n }\n function constant(value) {\n return function() {\n return value;\n };\n }\n function defaultTo(value, defaultValue) {\n return value == null || value !== value ? defaultValue : value;\n }\n var flow = createFlow();\n var flowRight = createFlow(true);\n function identity(value) {\n return value;\n }\n function iteratee(func) {\n return baseIteratee(typeof func == \"function\" ? func : baseClone(func, CLONE_DEEP_FLAG));\n }\n function matches(source) {\n return baseMatches(baseClone(source, CLONE_DEEP_FLAG));\n }\n function matchesProperty(path, srcValue) {\n return baseMatchesProperty(path, baseClone(srcValue, CLONE_DEEP_FLAG));\n }\n var method = baseRest(function(path, args) {\n return function(object) {\n return baseInvoke(object, path, args);\n };\n });\n var methodOf = baseRest(function(object, args) {\n return function(path) {\n return baseInvoke(object, path, args);\n };\n });\n function mixin(object, source, options) {\n var props = keys(source), methodNames = baseFunctions(source, props);\n if (options == null && !(isObject(source) && (methodNames.length || !props.length))) {\n options = source;\n source = object;\n object = this;\n methodNames = baseFunctions(source, keys(source));\n }\n var chain2 = !(isObject(options) && \"chain\" in options) || !!options.chain, isFunc = isFunction(object);\n arrayEach(methodNames, function(methodName) {\n var func = source[methodName];\n object[methodName] = func;\n if (isFunc) {\n object.prototype[methodName] = function() {\n var chainAll = this.__chain__;\n if (chain2 || chainAll) {\n var result2 = object(this.__wrapped__), actions = result2.__actions__ = copyArray(this.__actions__);\n actions.push({ \"func\": func, \"args\": arguments, \"thisArg\": object });\n result2.__chain__ = chainAll;\n return result2;\n }\n return func.apply(object, arrayPush([this.value()], arguments));\n };\n }\n });\n return object;\n }\n function noConflict() {\n if (root._ === this) {\n root._ = oldDash;\n }\n return this;\n }\n function noop2() {\n }\n function nthArg(n) {\n n = toInteger(n);\n return baseRest(function(args) {\n return baseNth(args, n);\n });\n }\n var over = createOver(arrayMap);\n var overEvery = createOver(arrayEvery);\n var overSome = createOver(arraySome);\n function property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n }\n function propertyOf(object) {\n return function(path) {\n return object == null ? undefined2 : baseGet(object, path);\n };\n }\n var range = createRange();\n var rangeRight = createRange(true);\n function stubArray() {\n return [];\n }\n function stubFalse() {\n return false;\n }\n function stubObject() {\n return {};\n }\n function stubString() {\n return \"\";\n }\n function stubTrue() {\n return true;\n }\n function times(n, iteratee2) {\n n = toInteger(n);\n if (n < 1 || n > MAX_SAFE_INTEGER) {\n return [];\n }\n var index = MAX_ARRAY_LENGTH, length = nativeMin(n, MAX_ARRAY_LENGTH);\n iteratee2 = getIteratee(iteratee2);\n n -= MAX_ARRAY_LENGTH;\n var result2 = baseTimes(length, iteratee2);\n while (++index < n) {\n iteratee2(index);\n }\n return result2;\n }\n function toPath(value) {\n if (isArray(value)) {\n return arrayMap(value, toKey);\n }\n return isSymbol(value) ? [value] : copyArray(stringToPath(toString(value)));\n }\n function uniqueId(prefix) {\n var id = ++idCounter;\n return toString(prefix) + id;\n }\n var add2 = createMathOperation(function(augend, addend) {\n return augend + addend;\n }, 0);\n var ceil = createRound(\"ceil\");\n var divide = createMathOperation(function(dividend, divisor) {\n return dividend / divisor;\n }, 1);\n var floor = createRound(\"floor\");\n function max(array) {\n return array && array.length ? baseExtremum(array, identity, baseGt) : undefined2;\n }\n function maxBy(array, iteratee2) {\n return array && array.length ? baseExtremum(array, getIteratee(iteratee2, 2), baseGt) : undefined2;\n }\n function mean(array) {\n return baseMean(array, identity);\n }\n function meanBy(array, iteratee2) {\n return baseMean(array, getIteratee(iteratee2, 2));\n }\n function min(array) {\n return array && array.length ? baseExtremum(array, identity, baseLt) : undefined2;\n }\n function minBy(array, iteratee2) {\n return array && array.length ? baseExtremum(array, getIteratee(iteratee2, 2), baseLt) : undefined2;\n }\n var multiply = createMathOperation(function(multiplier, multiplicand) {\n return multiplier * multiplicand;\n }, 1);\n var round = createRound(\"round\");\n var subtract = createMathOperation(function(minuend, subtrahend) {\n return minuend - subtrahend;\n }, 0);\n function sum(array) {\n return array && array.length ? baseSum(array, identity) : 0;\n }\n function sumBy(array, iteratee2) {\n return array && array.length ? baseSum(array, getIteratee(iteratee2, 2)) : 0;\n }\n lodash.after = after;\n lodash.ary = ary;\n lodash.assign = assign;\n lodash.assignIn = assignIn;\n lodash.assignInWith = assignInWith;\n lodash.assignWith = assignWith;\n lodash.at = at;\n lodash.before = before;\n lodash.bind = bind;\n lodash.bindAll = bindAll;\n lodash.bindKey = bindKey;\n lodash.castArray = castArray;\n lodash.chain = chain;\n lodash.chunk = chunk;\n lodash.compact = compact;\n lodash.concat = concat;\n lodash.cond = cond;\n lodash.conforms = conforms;\n lodash.constant = constant;\n lodash.countBy = countBy;\n lodash.create = create;\n lodash.curry = curry;\n lodash.curryRight = curryRight;\n lodash.debounce = debounce3;\n lodash.defaults = defaults;\n lodash.defaultsDeep = defaultsDeep;\n lodash.defer = defer;\n lodash.delay = delay;\n lodash.difference = difference;\n lodash.differenceBy = differenceBy;\n lodash.differenceWith = differenceWith;\n lodash.drop = drop;\n lodash.dropRight = dropRight;\n lodash.dropRightWhile = dropRightWhile;\n lodash.dropWhile = dropWhile;\n lodash.fill = fill;\n lodash.filter = filter;\n lodash.flatMap = flatMap;\n lodash.flatMapDeep = flatMapDeep;\n lodash.flatMapDepth = flatMapDepth;\n lodash.flatten = flatten;\n lodash.flattenDeep = flattenDeep;\n lodash.flattenDepth = flattenDepth;\n lodash.flip = flip;\n lodash.flow = flow;\n lodash.flowRight = flowRight;\n lodash.fromPairs = fromPairs;\n lodash.functions = functions;\n lodash.functionsIn = functionsIn;\n lodash.groupBy = groupBy;\n lodash.initial = initial;\n lodash.intersection = intersection;\n lodash.intersectionBy = intersectionBy;\n lodash.intersectionWith = intersectionWith;\n lodash.invert = invert;\n lodash.invertBy = invertBy;\n lodash.invokeMap = invokeMap;\n lodash.iteratee = iteratee;\n lodash.keyBy = keyBy;\n lodash.keys = keys;\n lodash.keysIn = keysIn;\n lodash.map = map;\n lodash.mapKeys = mapKeys;\n lodash.mapValues = mapValues;\n lodash.matches = matches;\n lodash.matchesProperty = matchesProperty;\n lodash.memoize = memoize;\n lodash.merge = merge;\n lodash.mergeWith = mergeWith;\n lodash.method = method;\n lodash.methodOf = methodOf;\n lodash.mixin = mixin;\n lodash.negate = negate;\n lodash.nthArg = nthArg;\n lodash.omit = omit;\n lodash.omitBy = omitBy;\n lodash.once = once;\n lodash.orderBy = orderBy;\n lodash.over = over;\n lodash.overArgs = overArgs;\n lodash.overEvery = overEvery;\n lodash.overSome = overSome;\n lodash.partial = partial;\n lodash.partialRight = partialRight;\n lodash.partition = partition;\n lodash.pick = pick;\n lodash.pickBy = pickBy;\n lodash.property = property;\n lodash.propertyOf = propertyOf;\n lodash.pull = pull;\n lodash.pullAll = pullAll;\n lodash.pullAllBy = pullAllBy;\n lodash.pullAllWith = pullAllWith;\n lodash.pullAt = pullAt;\n lodash.range = range;\n lodash.rangeRight = rangeRight;\n lodash.rearg = rearg;\n lodash.reject = reject;\n lodash.remove = remove;\n lodash.rest = rest;\n lodash.reverse = reverse;\n lodash.sampleSize = sampleSize;\n lodash.set = set;\n lodash.setWith = setWith;\n lodash.shuffle = shuffle;\n lodash.slice = slice;\n lodash.sortBy = sortBy;\n lodash.sortedUniq = sortedUniq;\n lodash.sortedUniqBy = sortedUniqBy;\n lodash.split = split;\n lodash.spread = spread;\n lodash.tail = tail;\n lodash.take = take;\n lodash.takeRight = takeRight;\n lodash.takeRightWhile = takeRightWhile;\n lodash.takeWhile = takeWhile;\n lodash.tap = tap;\n lodash.throttle = throttle;\n lodash.thru = thru;\n lodash.toArray = toArray2;\n lodash.toPairs = toPairs;\n lodash.toPairsIn = toPairsIn;\n lodash.toPath = toPath;\n lodash.toPlainObject = toPlainObject;\n lodash.transform = transform;\n lodash.unary = unary;\n lodash.union = union;\n lodash.unionBy = unionBy;\n lodash.unionWith = unionWith;\n lodash.uniq = uniq;\n lodash.uniqBy = uniqBy;\n lodash.uniqWith = uniqWith;\n lodash.unset = unset;\n lodash.unzip = unzip;\n lodash.unzipWith = unzipWith;\n lodash.update = update;\n lodash.updateWith = updateWith;\n lodash.values = values;\n lodash.valuesIn = valuesIn;\n lodash.without = without;\n lodash.words = words;\n lodash.wrap = wrap;\n lodash.xor = xor;\n lodash.xorBy = xorBy;\n lodash.xorWith = xorWith;\n lodash.zip = zip;\n lodash.zipObject = zipObject;\n lodash.zipObjectDeep = zipObjectDeep;\n lodash.zipWith = zipWith;\n lodash.entries = toPairs;\n lodash.entriesIn = toPairsIn;\n lodash.extend = assignIn;\n lodash.extendWith = assignInWith;\n mixin(lodash, lodash);\n lodash.add = add2;\n lodash.attempt = attempt;\n lodash.camelCase = camelCase;\n lodash.capitalize = capitalize;\n lodash.ceil = ceil;\n lodash.clamp = clamp;\n lodash.clone = clone;\n lodash.cloneDeep = cloneDeep;\n lodash.cloneDeepWith = cloneDeepWith;\n lodash.cloneWith = cloneWith;\n lodash.conformsTo = conformsTo;\n lodash.deburr = deburr;\n lodash.defaultTo = defaultTo;\n lodash.divide = divide;\n lodash.endsWith = endsWith;\n lodash.eq = eq;\n lodash.escape = escape;\n lodash.escapeRegExp = escapeRegExp;\n lodash.every = every;\n lodash.find = find;\n lodash.findIndex = findIndex;\n lodash.findKey = findKey;\n lodash.findLast = findLast;\n lodash.findLastIndex = findLastIndex;\n lodash.findLastKey = findLastKey;\n lodash.floor = floor;\n lodash.forEach = forEach;\n lodash.forEachRight = forEachRight;\n lodash.forIn = forIn;\n lodash.forInRight = forInRight;\n lodash.forOwn = forOwn;\n lodash.forOwnRight = forOwnRight;\n lodash.get = get;\n lodash.gt = gt;\n lodash.gte = gte;\n lodash.has = has;\n lodash.hasIn = hasIn;\n lodash.head = head;\n lodash.identity = identity;\n lodash.includes = includes;\n lodash.indexOf = indexOf;\n lodash.inRange = inRange;\n lodash.invoke = invoke;\n lodash.isArguments = isArguments;\n lodash.isArray = isArray;\n lodash.isArrayBuffer = isArrayBuffer;\n lodash.isArrayLike = isArrayLike;\n lodash.isArrayLikeObject = isArrayLikeObject;\n lodash.isBoolean = isBoolean;\n lodash.isBuffer = isBuffer;\n lodash.isDate = isDate;\n lodash.isElement = isElement;\n lodash.isEmpty = isEmpty;\n lodash.isEqual = isEqual;\n lodash.isEqualWith = isEqualWith;\n lodash.isError = isError;\n lodash.isFinite = isFinite;\n lodash.isFunction = isFunction;\n lodash.isInteger = isInteger;\n lodash.isLength = isLength;\n lodash.isMap = isMap;\n lodash.isMatch = isMatch;\n lodash.isMatchWith = isMatchWith;\n lodash.isNaN = isNaN;\n lodash.isNative = isNative;\n lodash.isNil = isNil;\n lodash.isNull = isNull;\n lodash.isNumber = isNumber2;\n lodash.isObject = isObject;\n lodash.isObjectLike = isObjectLike;\n lodash.isPlainObject = isPlainObject;\n lodash.isRegExp = isRegExp;\n lodash.isSafeInteger = isSafeInteger;\n lodash.isSet = isSet;\n lodash.isString = isString;\n lodash.isSymbol = isSymbol;\n lodash.isTypedArray = isTypedArray;\n lodash.isUndefined = isUndefined;\n lodash.isWeakMap = isWeakMap;\n lodash.isWeakSet = isWeakSet;\n lodash.join = join;\n lodash.kebabCase = kebabCase;\n lodash.last = last;\n lodash.lastIndexOf = lastIndexOf;\n lodash.lowerCase = lowerCase;\n lodash.lowerFirst = lowerFirst;\n lodash.lt = lt;\n lodash.lte = lte;\n lodash.max = max;\n lodash.maxBy = maxBy;\n lodash.mean = mean;\n lodash.meanBy = meanBy;\n lodash.min = min;\n lodash.minBy = minBy;\n lodash.stubArray = stubArray;\n lodash.stubFalse = stubFalse;\n lodash.stubObject = stubObject;\n lodash.stubString = stubString;\n lodash.stubTrue = stubTrue;\n lodash.multiply = multiply;\n lodash.nth = nth;\n lodash.noConflict = noConflict;\n lodash.noop = noop2;\n lodash.now = now;\n lodash.pad = pad;\n lodash.padEnd = padEnd;\n lodash.padStart = padStart;\n lodash.parseInt = parseInt2;\n lodash.random = random;\n lodash.reduce = reduce;\n lodash.reduceRight = reduceRight;\n lodash.repeat = repeat;\n lodash.replace = replace;\n lodash.result = result;\n lodash.round = round;\n lodash.runInContext = runInContext2;\n lodash.sample = sample;\n lodash.size = size;\n lodash.snakeCase = snakeCase;\n lodash.some = some;\n lodash.sortedIndex = sortedIndex;\n lodash.sortedIndexBy = sortedIndexBy;\n lodash.sortedIndexOf = sortedIndexOf;\n lodash.sortedLastIndex = sortedLastIndex;\n lodash.sortedLastIndexBy = sortedLastIndexBy;\n lodash.sortedLastIndexOf = sortedLastIndexOf;\n lodash.startCase = startCase;\n lodash.startsWith = startsWith;\n lodash.subtract = subtract;\n lodash.sum = sum;\n lodash.sumBy = sumBy;\n lodash.template = template;\n lodash.times = times;\n lodash.toFinite = toFinite;\n lodash.toInteger = toInteger;\n lodash.toLength = toLength;\n lodash.toLower = toLower;\n lodash.toNumber = toNumber;\n lodash.toSafeInteger = toSafeInteger;\n lodash.toString = toString;\n lodash.toUpper = toUpper;\n lodash.trim = trim;\n lodash.trimEnd = trimEnd;\n lodash.trimStart = trimStart;\n lodash.truncate = truncate;\n lodash.unescape = unescape;\n lodash.uniqueId = uniqueId;\n lodash.upperCase = upperCase;\n lodash.upperFirst = upperFirst;\n lodash.each = forEach;\n lodash.eachRight = forEachRight;\n lodash.first = head;\n mixin(lodash, function() {\n var source = {};\n baseForOwn(lodash, function(func, methodName) {\n if (!hasOwnProperty.call(lodash.prototype, methodName)) {\n source[methodName] = func;\n }\n });\n return source;\n }(), { \"chain\": false });\n lodash.VERSION = VERSION;\n arrayEach([\"bind\", \"bindKey\", \"curry\", \"curryRight\", \"partial\", \"partialRight\"], function(methodName) {\n lodash[methodName].placeholder = lodash;\n });\n arrayEach([\"drop\", \"take\"], function(methodName, index) {\n LazyWrapper.prototype[methodName] = function(n) {\n n = n === undefined2 ? 1 : nativeMax(toInteger(n), 0);\n var result2 = this.__filtered__ && !index ? new LazyWrapper(this) : this.clone();\n if (result2.__filtered__) {\n result2.__takeCount__ = nativeMin(n, result2.__takeCount__);\n } else {\n result2.__views__.push({\n \"size\": nativeMin(n, MAX_ARRAY_LENGTH),\n \"type\": methodName + (result2.__dir__ < 0 ? \"Right\" : \"\")\n });\n }\n return result2;\n };\n LazyWrapper.prototype[methodName + \"Right\"] = function(n) {\n return this.reverse()[methodName](n).reverse();\n };\n });\n arrayEach([\"filter\", \"map\", \"takeWhile\"], function(methodName, index) {\n var type = index + 1, isFilter = type == LAZY_FILTER_FLAG || type == LAZY_WHILE_FLAG;\n LazyWrapper.prototype[methodName] = function(iteratee2) {\n var result2 = this.clone();\n result2.__iteratees__.push({\n \"iteratee\": getIteratee(iteratee2, 3),\n \"type\": type\n });\n result2.__filtered__ = result2.__filtered__ || isFilter;\n return result2;\n };\n });\n arrayEach([\"head\", \"last\"], function(methodName, index) {\n var takeName = \"take\" + (index ? \"Right\" : \"\");\n LazyWrapper.prototype[methodName] = function() {\n return this[takeName](1).value()[0];\n };\n });\n arrayEach([\"initial\", \"tail\"], function(methodName, index) {\n var dropName = \"drop\" + (index ? \"\" : \"Right\");\n LazyWrapper.prototype[methodName] = function() {\n return this.__filtered__ ? new LazyWrapper(this) : this[dropName](1);\n };\n });\n LazyWrapper.prototype.compact = function() {\n return this.filter(identity);\n };\n LazyWrapper.prototype.find = function(predicate) {\n return this.filter(predicate).head();\n };\n LazyWrapper.prototype.findLast = function(predicate) {\n return this.reverse().find(predicate);\n };\n LazyWrapper.prototype.invokeMap = baseRest(function(path, args) {\n if (typeof path == \"function\") {\n return new LazyWrapper(this);\n }\n return this.map(function(value) {\n return baseInvoke(value, path, args);\n });\n });\n LazyWrapper.prototype.reject = function(predicate) {\n return this.filter(negate(getIteratee(predicate)));\n };\n LazyWrapper.prototype.slice = function(start, end) {\n start = toInteger(start);\n var result2 = this;\n if (result2.__filtered__ && (start > 0 || end < 0)) {\n return new LazyWrapper(result2);\n }\n if (start < 0) {\n result2 = result2.takeRight(-start);\n } else if (start) {\n result2 = result2.drop(start);\n }\n if (end !== undefined2) {\n end = toInteger(end);\n result2 = end < 0 ? result2.dropRight(-end) : result2.take(end - start);\n }\n return result2;\n };\n LazyWrapper.prototype.takeRightWhile = function(predicate) {\n return this.reverse().takeWhile(predicate).reverse();\n };\n LazyWrapper.prototype.toArray = function() {\n return this.take(MAX_ARRAY_LENGTH);\n };\n baseForOwn(LazyWrapper.prototype, function(func, methodName) {\n var checkIteratee = /^(?:filter|find|map|reject)|While$/.test(methodName), isTaker = /^(?:head|last)$/.test(methodName), lodashFunc = lodash[isTaker ? \"take\" + (methodName == \"last\" ? \"Right\" : \"\") : methodName], retUnwrapped = isTaker || /^find/.test(methodName);\n if (!lodashFunc) {\n return;\n }\n lodash.prototype[methodName] = function() {\n var value = this.__wrapped__, args = isTaker ? [1] : arguments, isLazy = value instanceof LazyWrapper, iteratee2 = args[0], useLazy = isLazy || isArray(value);\n var interceptor = function(value2) {\n var result3 = lodashFunc.apply(lodash, arrayPush([value2], args));\n return isTaker && chainAll ? result3[0] : result3;\n };\n if (useLazy && checkIteratee && typeof iteratee2 == \"function\" && iteratee2.length != 1) {\n isLazy = useLazy = false;\n }\n var chainAll = this.__chain__, isHybrid = !!this.__actions__.length, isUnwrapped = retUnwrapped && !chainAll, onlyLazy = isLazy && !isHybrid;\n if (!retUnwrapped && useLazy) {\n value = onlyLazy ? value : new LazyWrapper(this);\n var result2 = func.apply(value, args);\n result2.__actions__.push({ \"func\": thru, \"args\": [interceptor], \"thisArg\": undefined2 });\n return new LodashWrapper(result2, chainAll);\n }\n if (isUnwrapped && onlyLazy) {\n return func.apply(this, args);\n }\n result2 = this.thru(interceptor);\n return isUnwrapped ? isTaker ? result2.value()[0] : result2.value() : result2;\n };\n });\n arrayEach([\"pop\", \"push\", \"shift\", \"sort\", \"splice\", \"unshift\"], function(methodName) {\n var func = arrayProto[methodName], chainName = /^(?:push|sort|unshift)$/.test(methodName) ? \"tap\" : \"thru\", retUnwrapped = /^(?:pop|shift)$/.test(methodName);\n lodash.prototype[methodName] = function() {\n var args = arguments;\n if (retUnwrapped && !this.__chain__) {\n var value = this.value();\n return func.apply(isArray(value) ? value : [], args);\n }\n return this[chainName](function(value2) {\n return func.apply(isArray(value2) ? value2 : [], args);\n });\n };\n });\n baseForOwn(LazyWrapper.prototype, function(func, methodName) {\n var lodashFunc = lodash[methodName];\n if (lodashFunc) {\n var key = lodashFunc.name + \"\";\n if (!hasOwnProperty.call(realNames, key)) {\n realNames[key] = [];\n }\n realNames[key].push({ \"name\": methodName, \"func\": lodashFunc });\n }\n });\n realNames[createHybrid(undefined2, WRAP_BIND_KEY_FLAG).name] = [{\n \"name\": \"wrapper\",\n \"func\": undefined2\n }];\n LazyWrapper.prototype.clone = lazyClone;\n LazyWrapper.prototype.reverse = lazyReverse;\n LazyWrapper.prototype.value = lazyValue;\n lodash.prototype.at = wrapperAt;\n lodash.prototype.chain = wrapperChain;\n lodash.prototype.commit = wrapperCommit;\n lodash.prototype.next = wrapperNext;\n lodash.prototype.plant = wrapperPlant;\n lodash.prototype.reverse = wrapperReverse;\n lodash.prototype.toJSON = lodash.prototype.valueOf = lodash.prototype.value = wrapperValue;\n lodash.prototype.first = lodash.prototype.head;\n if (symIterator) {\n lodash.prototype[symIterator] = wrapperToIterator;\n }\n return lodash;\n };\n var _ = runInContext();\n if (typeof define == \"function\" && typeof define.amd == \"object\" && define.amd) {\n root._ = _;\n define(function() {\n return _;\n });\n } else if (freeModule) {\n (freeModule.exports = _)._ = _;\n freeExports._ = _;\n } else {\n root._ = _;\n }\n }).call(exports);\n }\n});\n\n// node_modules/.pnpm/@wopjs+disposable@0.1.19/node_modules/@wopjs/disposable/dist/index.mjs\nvar isFn = (value) => !!(value && value.constructor && value.call && value.apply);\nvar isDisposable = (value) => isFn(value) || isFn(value == null ? void 0 : value.dispose);\nfunction dispose(disposable) {\n try {\n if (disposable) {\n if (isFn(disposable.dispose)) {\n disposable.dispose();\n } else if (isFn(disposable)) {\n disposable();\n }\n }\n } catch (e) {\n console.error(e);\n }\n}\nvar isAbortable = (disposable) => isDisposable(disposable) && isFn(disposable.abortable);\nfunction disposableStore(disposables) {\n function disposableStore2() {\n var _a, _b;\n if (disposableStore2._i)\n return;\n disposableStore2._i = 1;\n (_a = disposableStore2._d) == null ? void 0 : _a.forEach(dispose);\n (_b = disposableStore2._d) == null ? void 0 : _b.clear();\n disposableStore2._i = 0;\n }\n disposableStore2._i = 0;\n disposableStore2.dispose = disposableStore2;\n disposableStore2.size = size2;\n disposableStore2.has = has2;\n disposableStore2.add = add;\n disposableStore2.make = make3;\n disposableStore2.remove = remove3;\n disposableStore2.flush = flush2;\n return disposableStore2;\n}\nfunction _addOne(disposable) {\n var _a, _b;\n if (!((_a = this._d) == null ? void 0 : _a.has(disposable))) {\n ((_b = this._d) != null ? _b : this._d = /* @__PURE__ */ new Set()).add(disposable);\n if (isAbortable(disposable)) {\n disposable.abortable(() => this.remove(disposable));\n }\n }\n}\nfunction add(disposables) {\n Array.isArray(disposables) ? disposables.forEach(_addOne, this) : _addOne.call(this, disposables);\n return disposables;\n}\nfunction flush2(disposable) {\n if (disposable) {\n if (this.remove(disposable)) {\n dispose(disposable);\n }\n } else {\n this.dispose();\n }\n}\nfunction has2(disposable) {\n var _a;\n return ((_a = this._d) == null ? void 0 : _a.has(disposable)) || false;\n}\nfunction make3(executor) {\n const disposable = executor();\n return disposable && this.add(disposable);\n}\nfunction remove3(disposable) {\n var _a;\n return ((_a = this._d) == null ? void 0 : _a.delete(disposable)) || false;\n}\nfunction size2() {\n var _a;\n return ((_a = this._d) == null ? void 0 : _a.size) || 0;\n}\n\n// node_modules/.pnpm/@wopjs+dom@0.1.3/node_modules/@wopjs/dom/dist/index.js\nfunction addEventListener(target, type, listener, options) {\n target.addEventListener(type, listener, options);\n return () => target.removeEventListener(type, listener, options);\n}\nvar listen = addEventListener;\n\n// node_modules/.pnpm/vanilla-lazyload@18.0.0/node_modules/vanilla-lazyload/dist/lazyload.esm.js\nvar runningOnBrowser = typeof window !== \"undefined\";\nvar isBot = runningOnBrowser && !(\"onscroll\" in window) || typeof navigator !== \"undefined\" && /(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent);\nvar isHiDpi = runningOnBrowser && window.devicePixelRatio > 1;\nvar defaultSettings = {\n elements_selector: \".lazy\",\n container: isBot || runningOnBrowser ? document : null,\n threshold: 300,\n thresholds: null,\n data_src: \"src\",\n data_srcset: \"srcset\",\n data_sizes: \"sizes\",\n data_bg: \"bg\",\n data_bg_hidpi: \"bg-hidpi\",\n data_bg_multi: \"bg-multi\",\n data_bg_multi_hidpi: \"bg-multi-hidpi\",\n data_bg_set: \"bg-set\",\n data_poster: \"poster\",\n class_applied: \"applied\",\n class_loading: \"loading\",\n class_loaded: \"loaded\",\n class_error: \"error\",\n class_entered: \"entered\",\n class_exited: \"exited\",\n unobserve_completed: true,\n unobserve_entered: false,\n cancel_on_exit: true,\n callback_enter: null,\n callback_exit: null,\n callback_applied: null,\n callback_loading: null,\n callback_loaded: null,\n callback_error: null,\n callback_finish: null,\n callback_cancel: null,\n use_native: false,\n restore_on_error: false\n};\nvar getExtendedSettings = (customSettings) => {\n return Object.assign({}, defaultSettings, customSettings);\n};\nvar createInstance = function(classObj, options) {\n let event;\n const eventString = \"LazyLoad::Initialized\";\n const instance = new classObj(options);\n try {\n event = new CustomEvent(eventString, { detail: { instance } });\n } catch (err) {\n event = document.createEvent(\"CustomEvent\");\n event.initCustomEvent(eventString, false, false, { instance });\n }\n window.dispatchEvent(event);\n};\nvar autoInitialize = (classObj, options) => {\n if (!options) {\n return;\n }\n if (!options.length) {\n createInstance(classObj, options);\n } else {\n for (let i = 0, optionsItem; optionsItem = options[i]; i += 1) {\n createInstance(classObj, optionsItem);\n }\n }\n};\nvar SRC = \"src\";\nvar SRCSET = \"srcset\";\nvar SIZES = \"sizes\";\nvar POSTER = \"poster\";\nvar ORIGINALS = \"llOriginalAttrs\";\nvar DATA = \"data\";\nvar statusLoading = \"loading\";\nvar statusLoaded = \"loaded\";\nvar statusApplied = \"applied\";\nvar statusEntered = \"entered\";\nvar statusError = \"error\";\nvar statusNative = \"native\";\nvar dataPrefix = \"data-\";\nvar statusDataName = \"ll-status\";\nvar getData = (element, attribute) => {\n return element.getAttribute(dataPrefix + attribute);\n};\nvar setData = (element, attribute, value) => {\n const attrName = dataPrefix + attribute;\n if (value === null) {\n element.removeAttribute(attrName);\n return;\n }\n element.setAttribute(attrName, value);\n};\nvar getStatus = (element) => getData(element, statusDataName);\nvar setStatus = (element, status) => setData(element, statusDataName, status);\nvar resetStatus = (element) => setStatus(element, null);\nvar hasEmptyStatus = (element) => getStatus(element) === null;\nvar hasStatusLoading = (element) => getStatus(element) === statusLoading;\nvar hasStatusError = (element) => getStatus(element) === statusError;\nvar hasStatusNative = (element) => getStatus(element) === statusNative;\nvar statusesAfterLoading = [statusLoading, statusLoaded, statusApplied, statusError];\nvar hadStartedLoading = (element) => statusesAfterLoading.indexOf(getStatus(element)) >= 0;\nvar safeCallback = (callback, arg1, arg2, arg3) => {\n if (!callback || typeof callback !== \"function\") {\n return;\n }\n if (arg3 !== void 0) {\n callback(arg1, arg2, arg3);\n return;\n }\n if (arg2 !== void 0) {\n callback(arg1, arg2);\n return;\n }\n callback(arg1);\n};\nvar addClass = (element, className) => {\n if (!runningOnBrowser) {\n return;\n }\n if (className === \"\") {\n return;\n }\n element.classList.add(className);\n};\nvar removeClass = (element, className) => {\n if (!runningOnBrowser) {\n return;\n }\n if (className === \"\") {\n return;\n }\n element.classList.remove(className);\n};\nvar addTempImage = (element) => {\n element.llTempImage = document.createElement(\"IMG\");\n};\nvar deleteTempImage = (element) => {\n delete element.llTempImage;\n};\nvar getTempImage = (element) => element.llTempImage;\nvar unobserve = (element, instance) => {\n if (!instance)\n return;\n const observer = instance._observer;\n if (!observer)\n return;\n observer.unobserve(element);\n};\nvar resetObserver = (observer) => {\n observer.disconnect();\n};\nvar unobserveEntered = (element, settings, instance) => {\n if (settings.unobserve_entered)\n unobserve(element, instance);\n};\nvar updateLoadingCount = (instance, delta) => {\n if (!instance)\n return;\n instance.loadingCount += delta;\n};\nvar decreaseToLoadCount = (instance) => {\n if (!instance)\n return;\n instance.toLoadCount -= 1;\n};\nvar setToLoadCount = (instance, value) => {\n if (!instance)\n return;\n instance.toLoadCount = value;\n};\nvar isSomethingLoading = (instance) => instance.loadingCount > 0;\nvar haveElementsToLoad = (instance) => instance.toLoadCount > 0;\nvar getSourceTags = (parentTag) => {\n let sourceTags = [];\n for (let i = 0, childTag; childTag = parentTag.children[i]; i += 1) {\n if (childTag.tagName === \"SOURCE\") {\n sourceTags.push(childTag);\n }\n }\n return sourceTags;\n};\nvar forEachPictureSource = (element, fn) => {\n const parent = element.parentNode;\n if (!parent || parent.tagName !== \"PICTURE\") {\n return;\n }\n let sourceTags = getSourceTags(parent);\n sourceTags.forEach(fn);\n};\nvar forEachVideoSource = (element, fn) => {\n let sourceTags = getSourceTags(element);\n sourceTags.forEach(fn);\n};\nvar attrsSrc = [SRC];\nvar attrsSrcPoster = [SRC, POSTER];\nvar attrsSrcSrcsetSizes = [SRC, SRCSET, SIZES];\nvar attrsData = [DATA];\nvar hasOriginalAttrs = (element) => !!element[ORIGINALS];\nvar getOriginalAttrs = (element) => element[ORIGINALS];\nvar deleteOriginalAttrs = (element) => delete element[ORIGINALS];\nvar setOriginalsObject = (element, attributes) => {\n if (hasOriginalAttrs(element)) {\n return;\n }\n const originals = {};\n attributes.forEach((attribute) => {\n originals[attribute] = element.getAttribute(attribute);\n });\n element[ORIGINALS] = originals;\n};\nvar saveOriginalBackgroundStyle = (element) => {\n if (hasOriginalAttrs(element)) {\n return;\n }\n element[ORIGINALS] = { backgroundImage: element.style.backgroundImage };\n};\nvar setOrResetAttribute = (element, attrName, value) => {\n if (!value) {\n element.removeAttribute(attrName);\n return;\n }\n element.setAttribute(attrName, value);\n};\nvar restoreOriginalAttrs = (element, attributes) => {\n if (!hasOriginalAttrs(element)) {\n return;\n }\n const originals = getOriginalAttrs(element);\n attributes.forEach((attribute) => {\n setOrResetAttribute(element, attribute, originals[attribute]);\n });\n};\nvar restoreOriginalBgImage = (element) => {\n if (!hasOriginalAttrs(element)) {\n return;\n }\n const originals = getOriginalAttrs(element);\n element.style.backgroundImage = originals.backgroundImage;\n};\nvar manageApplied = (element, settings, instance) => {\n addClass(element, settings.class_applied);\n setStatus(element, statusApplied);\n if (!instance)\n return;\n if (settings.unobserve_completed) {\n unobserve(element, settings);\n }\n safeCallback(settings.callback_applied, element, instance);\n};\nvar manageLoading = (element, settings, instance) => {\n addClass(element, settings.class_loading);\n setStatus(element, statusLoading);\n if (!instance)\n return;\n updateLoadingCount(instance, 1);\n safeCallback(settings.callback_loading, element, instance);\n};\nvar setAttributeIfValue = (element, attrName, value) => {\n if (!value) {\n return;\n }\n element.setAttribute(attrName, value);\n};\nvar setImageAttributes = (element, settings) => {\n setAttributeIfValue(element, SIZES, getData(element, settings.data_sizes));\n setAttributeIfValue(element, SRCSET, getData(element, settings.data_srcset));\n setAttributeIfValue(element, SRC, getData(element, settings.data_src));\n};\nvar setSourcesImg = (imgEl, settings) => {\n forEachPictureSource(imgEl, (sourceTag) => {\n setOriginalsObject(sourceTag, attrsSrcSrcsetSizes);\n setImageAttributes(sourceTag, settings);\n });\n setOriginalsObject(imgEl, attrsSrcSrcsetSizes);\n setImageAttributes(imgEl, settings);\n};\nvar setSourcesIframe = (iframe, settings) => {\n setOriginalsObject(iframe, attrsSrc);\n setAttributeIfValue(iframe, SRC, getData(iframe, settings.data_src));\n};\nvar setSourcesVideo = (videoEl, settings) => {\n forEachVideoSource(videoEl, (sourceEl) => {\n setOriginalsObject(sourceEl, attrsSrc);\n setAttributeIfValue(sourceEl, SRC, getData(sourceEl, settings.data_src));\n });\n setOriginalsObject(videoEl, attrsSrcPoster);\n setAttributeIfValue(videoEl, POSTER, getData(videoEl, settings.data_poster));\n setAttributeIfValue(videoEl, SRC, getData(videoEl, settings.data_src));\n videoEl.load();\n};\nvar setSourcesObject = (object, settings) => {\n setOriginalsObject(object, attrsData);\n setAttributeIfValue(object, DATA, getData(object, settings.data_src));\n};\nvar setBackground = (element, settings, instance) => {\n const bg1xValue = getData(element, settings.data_bg);\n const bgHiDpiValue = getData(element, settings.data_bg_hidpi);\n const bgDataValue = isHiDpi && bgHiDpiValue ? bgHiDpiValue : bg1xValue;\n if (!bgDataValue)\n return;\n element.style.backgroundImage = `url(\"${bgDataValue}\")`;\n getTempImage(element).setAttribute(SRC, bgDataValue);\n manageLoading(element, settings, instance);\n};\nvar setMultiBackground = (element, settings, instance) => {\n const bg1xValue = getData(element, settings.data_bg_multi);\n const bgHiDpiValue = getData(element, settings.data_bg_multi_hidpi);\n const bgDataValue = isHiDpi && bgHiDpiValue ? bgHiDpiValue : bg1xValue;\n if (!bgDataValue) {\n return;\n }\n element.style.backgroundImage = bgDataValue;\n manageApplied(element, settings, instance);\n};\nvar setImgsetBackground = (element, settings, instance) => {\n const bgImgSetDataValue = getData(element, settings.data_bg_set);\n if (!bgImgSetDataValue) {\n return;\n }\n const imgSetValues = bgImgSetDataValue.split(\"|\");\n let bgImageValues = imgSetValues.map((value) => `image-set(${value})`);\n element.style.backgroundImage = bgImageValues.join();\n if (element.style.backgroundImage === \"\") {\n bgImageValues = imgSetValues.map((value) => `-webkit-image-set(${value})`);\n element.style.backgroundImage = bgImageValues.join();\n }\n manageApplied(element, settings, instance);\n};\nvar setSourcesFunctions = {\n IMG: setSourcesImg,\n IFRAME: setSourcesIframe,\n VIDEO: setSourcesVideo,\n OBJECT: setSourcesObject\n};\nvar setSourcesNative = (element, settings) => {\n const setSourcesFunction = setSourcesFunctions[element.tagName];\n if (!setSourcesFunction) {\n return;\n }\n setSourcesFunction(element, settings);\n};\nvar setSources = (element, settings, instance) => {\n const setSourcesFunction = setSourcesFunctions[element.tagName];\n if (!setSourcesFunction) {\n return;\n }\n setSourcesFunction(element, settings);\n manageLoading(element, settings, instance);\n};\nvar elementsWithLoadEvent = [\"IMG\", \"IFRAME\", \"VIDEO\", \"OBJECT\"];\nvar hasLoadEvent = (element) => elementsWithLoadEvent.indexOf(element.tagName) > -1;\nvar checkFinish = (settings, instance) => {\n if (instance && !isSomethingLoading(instance) && !haveElementsToLoad(instance)) {\n safeCallback(settings.callback_finish, instance);\n }\n};\nvar addEventListener2 = (element, eventName, handler) => {\n element.addEventListener(eventName, handler);\n element.llEvLisnrs[eventName] = handler;\n};\nvar removeEventListener = (element, eventName, handler) => {\n element.removeEventListener(eventName, handler);\n};\nvar hasEventListeners = (element) => {\n return !!element.llEvLisnrs;\n};\nvar addEventListeners = (element, loadHandler2, errorHandler2) => {\n if (!hasEventListeners(element))\n element.llEvLisnrs = {};\n const loadEventName = element.tagName === \"VIDEO\" ? \"loadeddata\" : \"load\";\n addEventListener2(element, loadEventName, loadHandler2);\n addEventListener2(element, \"error\", errorHandler2);\n};\nvar removeEventListeners = (element) => {\n if (!hasEventListeners(element)) {\n return;\n }\n const eventListeners = element.llEvLisnrs;\n for (let eventName in eventListeners) {\n const handler = eventListeners[eventName];\n removeEventListener(element, eventName, handler);\n }\n delete element.llEvLisnrs;\n};\nvar doneHandler = (element, settings, instance) => {\n deleteTempImage(element);\n updateLoadingCount(instance, -1);\n decreaseToLoadCount(instance);\n removeClass(element, settings.class_loading);\n if (settings.unobserve_completed) {\n unobserve(element, instance);\n }\n};\nvar loadHandler = (event, element, settings, instance) => {\n const goingNative = hasStatusNative(element);\n doneHandler(element, settings, instance);\n addClass(element, settings.class_loaded);\n setStatus(element, statusLoaded);\n safeCallback(settings.callback_loaded, element, instance);\n if (!goingNative)\n checkFinish(settings, instance);\n};\nvar errorHandler = (event, element, settings, instance) => {\n const goingNative = hasStatusNative(element);\n doneHandler(element, settings, instance);\n addClass(element, settings.class_error);\n setStatus(element, statusError);\n safeCallback(settings.callback_error, element, instance);\n if (settings.restore_on_error)\n restoreOriginalAttrs(element, attrsSrcSrcsetSizes);\n if (!goingNative)\n checkFinish(settings, instance);\n};\nvar addOneShotEventListeners = (element, settings, instance) => {\n const elementToListenTo = getTempImage(element) || element;\n if (hasEventListeners(elementToListenTo)) {\n return;\n }\n const _loadHandler = (event) => {\n loadHandler(event, element, settings, instance);\n removeEventListeners(elementToListenTo);\n };\n const _errorHandler = (event) => {\n errorHandler(event, element, settings, instance);\n removeEventListeners(elementToListenTo);\n };\n addEventListeners(elementToListenTo, _loadHandler, _errorHandler);\n};\nvar loadBackground = (element, settings, instance) => {\n addTempImage(element);\n addOneShotEventListeners(element, settings, instance);\n saveOriginalBackgroundStyle(element);\n setBackground(element, settings, instance);\n setMultiBackground(element, settings, instance);\n setImgsetBackground(element, settings, instance);\n};\nvar loadRegular = (element, settings, instance) => {\n addOneShotEventListeners(element, settings, instance);\n setSources(element, settings, instance);\n};\nvar load = (element, settings, instance) => {\n if (hasLoadEvent(element)) {\n loadRegular(element, settings, instance);\n } else {\n loadBackground(element, settings, instance);\n }\n};\nvar loadNative = (element, settings, instance) => {\n element.setAttribute(\"loading\", \"lazy\");\n addOneShotEventListeners(element, settings, instance);\n setSourcesNative(element, settings);\n setStatus(element, statusNative);\n};\nvar removeImageAttributes = (element) => {\n element.removeAttribute(SRC);\n element.removeAttribute(SRCSET);\n element.removeAttribute(SIZES);\n};\nvar resetSourcesImg = (element) => {\n forEachPictureSource(element, (sourceTag) => {\n removeImageAttributes(sourceTag);\n });\n removeImageAttributes(element);\n};\nvar restoreImg = (imgEl) => {\n forEachPictureSource(imgEl, (sourceEl) => {\n restoreOriginalAttrs(sourceEl, attrsSrcSrcsetSizes);\n });\n restoreOriginalAttrs(imgEl, attrsSrcSrcsetSizes);\n};\nvar restoreVideo = (videoEl) => {\n forEachVideoSource(videoEl, (sourceEl) => {\n restoreOriginalAttrs(sourceEl, attrsSrc);\n });\n restoreOriginalAttrs(videoEl, attrsSrcPoster);\n videoEl.load();\n};\nvar restoreIframe = (iframeEl) => {\n restoreOriginalAttrs(iframeEl, attrsSrc);\n};\nvar restoreObject = (objectEl) => {\n restoreOriginalAttrs(objectEl, attrsData);\n};\nvar restoreFunctions = {\n IMG: restoreImg,\n IFRAME: restoreIframe,\n VIDEO: restoreVideo,\n OBJECT: restoreObject\n};\nvar restoreAttributes = (element) => {\n const restoreFunction = restoreFunctions[element.tagName];\n if (!restoreFunction) {\n restoreOriginalBgImage(element);\n return;\n }\n restoreFunction(element);\n};\nvar resetClasses = (element, settings) => {\n if (hasEmptyStatus(element) || hasStatusNative(element)) {\n return;\n }\n removeClass(element, settings.class_entered);\n removeClass(element, settings.class_exited);\n removeClass(element, settings.class_applied);\n removeClass(element, settings.class_loading);\n removeClass(element, settings.class_loaded);\n removeClass(element, settings.class_error);\n};\nvar restore = (element, settings) => {\n restoreAttributes(element);\n resetClasses(element, settings);\n resetStatus(element);\n deleteOriginalAttrs(element);\n};\nvar cancelLoading = (element, entry, settings, instance) => {\n if (!settings.cancel_on_exit)\n return;\n if (!hasStatusLoading(element))\n return;\n if (element.tagName !== \"IMG\")\n return;\n removeEventListeners(element);\n resetSourcesImg(element);\n restoreImg(element);\n removeClass(element, settings.class_loading);\n updateLoadingCount(instance, -1);\n resetStatus(element);\n safeCallback(settings.callback_cancel, element, entry, instance);\n};\nvar onEnter = (element, entry, settings, instance) => {\n const dontLoad = hadStartedLoading(element);\n setStatus(element, statusEntered);\n addClass(element, settings.class_entered);\n removeClass(element, settings.class_exited);\n unobserveEntered(element, settings, instance);\n safeCallback(settings.callback_enter, element, entry, instance);\n if (dontLoad)\n return;\n load(element, settings, instance);\n};\nvar onExit = (element, entry, settings, instance) => {\n if (hasEmptyStatus(element))\n return;\n addClass(element, settings.class_exited);\n cancelLoading(element, entry, settings, instance);\n safeCallback(settings.callback_exit, element, entry, instance);\n};\nvar tagsWithNativeLazy = [\"IMG\", \"IFRAME\", \"VIDEO\"];\nvar shouldUseNative = (settings) => settings.use_native && \"loading\" in HTMLImageElement.prototype;\nvar loadAllNative = (elements, settings, instance) => {\n elements.forEach((element) => {\n if (tagsWithNativeLazy.indexOf(element.tagName) === -1) {\n return;\n }\n loadNative(element, settings, instance);\n });\n setToLoadCount(instance, 0);\n};\nvar isIntersecting = (entry) => entry.isIntersecting || entry.intersectionRatio > 0;\nvar getObserverSettings = (settings) => ({\n root: settings.container === document ? null : settings.container,\n rootMargin: settings.thresholds || settings.threshold + \"px\"\n});\nvar intersectionHandler = (entries, settings, instance) => {\n entries.forEach(\n (entry) => isIntersecting(entry) ? onEnter(entry.target, entry, settings, instance) : onExit(entry.target, entry, settings, instance)\n );\n};\nvar observeElements = (observer, elements) => {\n elements.forEach((element) => {\n observer.observe(element);\n });\n};\nvar updateObserver = (observer, elementsToObserve) => {\n resetObserver(observer);\n observeElements(observer, elementsToObserve);\n};\nvar setObserver = (settings, instance) => {\n if (shouldUseNative(settings)) {\n return;\n }\n instance._observer = new IntersectionObserver((entries) => {\n intersectionHandler(entries, settings, instance);\n }, getObserverSettings(settings));\n};\nvar toArray = (nodeSet) => Array.prototype.slice.call(nodeSet);\nvar queryElements = (settings) => settings.container.querySelectorAll(settings.elements_selector);\nvar excludeManagedElements = (elements) => toArray(elements).filter(hasEmptyStatus);\nvar hasError = (element) => hasStatusError(element);\nvar filterErrorElements = (elements) => toArray(elements).filter(hasError);\nvar getElementsToLoad = (elements, settings) => excludeManagedElements(elements || queryElements(settings));\nvar retryLazyLoad = (settings, instance) => {\n const errorElements = filterErrorElements(queryElements(settings));\n errorElements.forEach((element) => {\n removeClass(element, settings.class_error);\n resetStatus(element);\n });\n instance.update();\n};\nvar setOnlineCheck = (settings, instance) => {\n if (!runningOnBrowser) {\n return;\n }\n instance._onlineHandler = () => {\n retryLazyLoad(settings, instance);\n };\n window.addEventListener(\"online\", instance._onlineHandler);\n};\nvar resetOnlineCheck = (instance) => {\n if (!runningOnBrowser) {\n return;\n }\n window.removeEventListener(\"online\", instance._onlineHandler);\n};\nvar LazyLoad = function(customSettings, elements) {\n const settings = getExtendedSettings(customSettings);\n this._settings = settings;\n this.loadingCount = 0;\n setObserver(settings, this);\n setOnlineCheck(settings, this);\n this.update(elements);\n};\nLazyLoad.prototype = {\n update: function(givenNodeset) {\n const settings = this._settings;\n const elementsToLoad = getElementsToLoad(givenNodeset, settings);\n setToLoadCount(this, elementsToLoad.length);\n if (isBot) {\n this.loadAll(elementsToLoad);\n return;\n }\n if (shouldUseNative(settings)) {\n loadAllNative(elementsToLoad, settings, this);\n return;\n }\n updateObserver(this._observer, elementsToLoad);\n },\n destroy: function() {\n if (this._observer) {\n this._observer.disconnect();\n }\n resetOnlineCheck(this);\n queryElements(this._settings).forEach((element) => {\n deleteOriginalAttrs(element);\n });\n delete this._observer;\n delete this._settings;\n delete this._onlineHandler;\n delete this.loadingCount;\n delete this.toLoadCount;\n },\n loadAll: function(elements) {\n const settings = this._settings;\n const elementsToLoad = getElementsToLoad(elements, settings);\n elementsToLoad.forEach((element) => {\n unobserve(element, this);\n load(element, settings, this);\n });\n },\n restoreAll: function() {\n const settings = this._settings;\n queryElements(settings).forEach((element) => {\n restore(element, settings);\n });\n }\n};\nLazyLoad.load = (element, customSettings) => {\n const settings = getExtendedSettings(customSettings);\n load(element, settings);\n};\nLazyLoad.resetStatus = (element) => {\n resetStatus(element);\n};\nif (runningOnBrowser) {\n autoInitialize(LazyLoad, window.lazyLoadOptions);\n}\n\n// src/icons/sidebar.ts\nfunction sidebarSVG(namespace) {\n const NS = \"http://www.w3.org/2000/svg\";\n const $svg = document.createElementNS(NS, \"svg\");\n $svg.setAttribute(\"class\", `${namespace}-footer-icon-sidebar`);\n $svg.setAttribute(\"viewBox\", \"0 0 64 64\");\n const $path = document.createElementNS(NS, \"path\");\n $path.setAttribute(\"fill\", \"currentColor\");\n $path.setAttribute(\"d\", \"M50 8H14c-3.309 0-6 2.691-6 6v36c0 3.309 2.691 6 6 6h36c3.309 0 6-2.691 6-6V14c0-3.309-2.691-6-6-6zM12 50V14c0-1.103.897-2 2-2h8v40h-8c-1.103 0-2-.897-2-2zm40 0c0 1.103-.897 2-2 2H26V12h24c1.103 0 2 .897 2 2z\");\n $svg.appendChild($path);\n return $svg;\n}\n\n// src/icons/arrow-left.ts\nfunction arrowLeftSVG(namespace) {\n const NS = \"http://www.w3.org/2000/svg\";\n const $svg = document.createElementNS(NS, \"svg\");\n $svg.setAttribute(\"class\", `${namespace}-footer-icon-arrow-left`);\n $svg.setAttribute(\"viewBox\", \"0 0 500 500\");\n const $path = document.createElementNS(NS, \"path\");\n $path.setAttribute(\"fill\", \"currentColor\");\n $path.setAttribute(\"d\", \"M177.81 249.959L337.473 90.295c2.722-2.865 2.651-7.378-.143-10.1-2.793-2.65-7.163-2.65-9.956 0l-164.75 164.75c-2.793 2.793-2.793 7.306 0 10.1l164.75 164.75c2.865 2.722 7.378 2.65 10.099-.143 2.651-2.794 2.651-7.163 0-9.957L177.809 249.959z\");\n $svg.appendChild($path);\n return $svg;\n}\n\n// src/icons/arrow-right.ts\nfunction arrowRightSVG(namespace) {\n const NS = \"http://www.w3.org/2000/svg\";\n const $svg = document.createElementNS(NS, \"svg\");\n $svg.setAttribute(\"class\", `${namespace}-footer-icon-arrow-right`);\n $svg.setAttribute(\"viewBox\", \"0 0 500 500\");\n const $path = document.createElementNS(NS, \"path\");\n $path.setAttribute(\"fill\", \"currentColor\");\n $path.setAttribute(\"d\", \"M322.19 250.041L162.527 409.705c-2.722 2.865-2.651 7.378.143 10.1 2.793 2.65 7.163 2.65 9.956 0l164.75-164.75c2.793-2.793 2.793-7.306 0-10.1l-164.75-164.75c-2.865-2.722-7.378-2.65-10.099.143-2.651 2.794-2.651 7.163 0 9.957l159.664 159.736z\");\n $svg.appendChild($path);\n return $svg;\n}\n\n// src/preload.ts\nvar _Preload = class _Preload {\n constructor(pages) {\n this.pages = pages;\n // 正在加载的链接\n this.loadingLinks = /* @__PURE__ */ new Map();\n // 需要预加载的链接集合\n this.preloadMap = /* @__PURE__ */ new Map();\n // 当前触摸的索引\n this.touchIndex = 0;\n this.preloadSize = 0;\n this.preloadMap = new Map(pages.map((e, index) => [index, {\n src: e.src,\n state: 0 /* unloaded */\n }]));\n this.preloadSize = this.preloadMap.size;\n this.touch(0, true);\n }\n touch(index, force = false) {\n if (index >= this.preloadSize) {\n this.touchIndex = 0;\n } else {\n this.touchIndex = index;\n }\n const value = this.preloadMap.get(this.touchIndex);\n if (value && value.state === 0 /* unloaded */) {\n this.createLink(this.touchIndex, force);\n }\n if (this.loadingLinks.size < _Preload.maxLinks) {\n const willLoad = [...this.preloadMap.entries()].find(([i, e]) => i > this.touchIndex && e.state !== 1 /* loaded */);\n if (willLoad) {\n this.requestAsyncCallBack(() => {\n this.touch(willLoad[0], false);\n }, 100);\n }\n }\n }\n createLink(index, force = false) {\n const value = this.preloadMap.get(index);\n if (force) {\n this.destroySomeLink(index);\n }\n if (value) {\n if (value.state === 1 /* loaded */) {\n return 1 /* loaded */;\n }\n const curlink = this.loadingLinks.get(index);\n if (curlink) {\n if (curlink.isForce !== force) {\n curlink.isForce = force;\n this.loadingLinks.set(index, curlink);\n }\n return 0 /* unloaded */;\n }\n if (this.loadingLinks.size > _Preload.maxLinks) {\n return 0 /* unloaded */;\n }\n const linkDom = document.createElement(\"link\");\n linkDom.rel = \"preload\";\n linkDom.as = \"image\";\n linkDom.href = value.src;\n linkDom.dataset.order = index + \"\";\n document.head.appendChild(linkDom);\n linkDom.onload = () => {\n const value2 = this.preloadMap.get(index);\n if (value2) {\n value2.state = 1 /* loaded */;\n this.preloadMap.set(index, value2);\n document.head.contains(linkDom) && document.head.removeChild(linkDom);\n this.loadingLinks.delete(index);\n this.touch(this.touchIndex + 1, false);\n }\n };\n linkDom.onerror = () => {\n const value2 = this.preloadMap.get(index);\n if (value2 == null ? void 0 : value2.src) {\n linkDom.href = value2.src;\n }\n };\n this.loadingLinks.set(index, {\n link: linkDom,\n isForce: force\n });\n value.state = 0 /* unloaded */;\n this.preloadMap.set(index, value);\n return 0 /* unloaded */;\n }\n return 2 /* error */;\n }\n destroySomeLink(excludeIndex) {\n for (const [index, { link }] of this.loadingLinks) {\n if (excludeIndex !== void 0 && index === excludeIndex) {\n continue;\n }\n document.head.contains(link) && document.head.removeChild(link);\n this.loadingLinks.delete(index);\n }\n }\n async requestAsyncCallBack(callBack, timeout) {\n await new Promise(function(resolve) {\n if (window.requestIdleCallback) {\n requestIdleCallback(() => {\n resolve(1);\n }, { timeout });\n } else {\n setTimeout(() => {\n resolve(2);\n }, timeout);\n }\n });\n callBack();\n }\n dispose() {\n this.destroySomeLink();\n this.preloadMap.clear();\n }\n};\n_Preload.maxLinks = 5;\nvar Preload = _Preload;\n\n// src/presentation.ts\nvar Presentation = class {\n constructor(config) {\n this.namespace = \"netless-app-presentation\";\n this.dispose = disposableStore();\n this.initialized = false;\n this.showPreview = false;\n this.pageIndex = 0;\n this.previewLazyload = null;\n this.timer = null;\n this.justDocsViewReadonly = false;\n var _a;\n this.pages = config.pages;\n this.preload = new Preload(this.pages);\n if (config.thumbnail)\n this.thumbnail = config.thumbnail;\n this.dispose.add(this.preload);\n this.readonly = (_a = config.readonly) != null ? _a : false;\n this.dom = document.createElement(\"div\");\n this.dom.className = this.namespace;\n this.contentDOM = document.createElement(\"div\");\n this.contentDOM.className = this.c(\"content\");\n this.previewDOM = document.createElement(\"div\");\n this.previewDOM.className = this.c(\"preview\");\n this.whiteboardDOM = document.createElement(\"div\");\n this.whiteboardDOM.className = this.c(\"wb-view\");\n this.footerDOM = document.createElement(\"div\");\n this.footerDOM.className = this.c(\"footer\");\n this.pageNumberInputDOM = document.createElement(\"input\");\n this.pageNumberInputDOM.className = this.c(\"page-number-input\");\n this.initialize();\n }\n setDocsViewReadonly(readonly) {\n this.justDocsViewReadonly = readonly;\n }\n initialize() {\n var _a;\n if (this.initialized)\n return;\n this.initialized = true;\n this.dispose.add(() => {\n var _a2;\n return (_a2 = this.previewLazyload) == null ? void 0 : _a2.destroy();\n });\n this.contentDOM.classList.toggle(this.c(\"readonly\"), this.readonly);\n this.dom.appendChild(this.contentDOM);\n const previewMask = this.contentDOM.appendChild(document.createElement(\"div\"));\n previewMask.className = this.c(\"preview-mask\");\n this.dispose.add(listen(previewMask, \"click\", (ev) => {\n if (this.readonly)\n return;\n if (ev.target == previewMask) {\n this.togglePreview(false);\n }\n }));\n this.contentDOM.appendChild(this.previewDOM);\n this.previewDOM.classList.add(\"tele-fancy-scrollbar\");\n const c_previewPage = this.c(\"preview-page\");\n const c_previewPageName = this.c(\"preview-page-name\");\n for (let index = 0; index < this.pages.length; ++index) {\n const page = this.pages[index];\n const previewSRC = page.thumbnail || this.thumbnail(page.src);\n const previewPage = document.createElement(\"a\");\n previewPage.className = `${c_previewPage} ${this.c(`preview-page-${index}`)}`;\n previewPage.setAttribute(\"href\", \"#\");\n previewPage.dataset.pageIndex = String(index);\n const img = document.createElement(\"img\");\n img.width = page.width;\n img.height = page.height;\n img.dataset.src = previewSRC;\n img.dataset.pageIndex = String(index);\n const name = document.createElement(\"span\");\n name.className = c_previewPageName;\n name.textContent = String(index + 1);\n name.dataset.pageIndex = String(index);\n previewPage.appendChild(img);\n previewPage.appendChild(name);\n this.previewDOM.appendChild(previewPage);\n }\n (_a = this.previewLazyload) == null ? void 0 : _a.update();\n this.dispose.add(listen(this.previewDOM, \"click\", (ev) => {\n var _a2;\n if (this.readonly)\n return;\n const pageIndex = (_a2 = ev.target.dataset) == null ? void 0 : _a2.pageIndex;\n if (pageIndex) {\n ev.preventDefault();\n ev.stopPropagation();\n ev.stopImmediatePropagation();\n this.onNewPageIndex(Number(pageIndex), \"preview\");\n this.togglePreview(false);\n }\n }));\n this.updateImage();\n this.contentDOM.appendChild(this.whiteboardDOM);\n this.footerDOM.classList.toggle(this.c(\"readonly\"), this.readonly);\n this.dom.appendChild(this.footerDOM);\n const btnSidebar = document.createElement(\"button\");\n btnSidebar.className = `${this.c(\"footer-btn\")} ${this.c(\"btn-sidebar\")}`;\n btnSidebar.appendChild(sidebarSVG(this.namespace));\n this.footerDOM.appendChild(btnSidebar);\n this.dispose.add(listen(btnSidebar, \"click\", () => {\n if (this.readonly)\n return;\n this.togglePreview();\n }));\n const pageJumps = document.createElement(\"div\");\n pageJumps.className = this.c(\"page-jumps\");\n this.footerDOM.appendChild(pageJumps);\n const btnPageBack = document.createElement(\"button\");\n btnPageBack.className = `${this.c(\"footer-btn\")} ${this.c(\"btn-page-back\")}`;\n btnPageBack.appendChild(arrowLeftSVG(this.namespace));\n pageJumps.appendChild(btnPageBack);\n this.dispose.add(listen(btnPageBack, \"click\", () => {\n if (this.readonly)\n return;\n if (this.pageIndex > 0)\n this.onNewPageIndex(this.pageIndex - 1, \"navigation\");\n }));\n const btnPageNext = document.createElement(\"button\");\n btnPageNext.className = `${this.c(\"footer-btn\")} ${this.c(\"btn-page-next\")}`;\n btnPageNext.appendChild(arrowRightSVG(this.namespace));\n pageJumps.appendChild(btnPageNext);\n this.dispose.add(listen(btnPageNext, \"click\", () => {\n if (this.readonly)\n return;\n if (this.pageIndex < this.pages.length - 1)\n this.onNewPageIndex(this.pageIndex + 1, \"navigation\");\n }));\n const pageNumber = document.createElement(\"div\");\n pageNumber.className = this.c(\"page-number\");\n this.footerDOM.appendChild(pageNumber);\n pageNumber.appendChild(this.pageNumberInputDOM);\n this.pageNumberInputDOM.value = String(this.pageIndex + 1);\n this.pageNumberInputDOM.disabled = this.readonly;\n this.dispose.add(listen(this.pageNumberInputDOM, \"focus\", () => {\n if (this.readonly)\n return;\n this.pageNumberInputDOM.select();\n }));\n this.dispose.add(listen(this.pageNumberInputDOM, \"change\", () => {\n if (this.readonly)\n return;\n if (this.pageNumberInputDOM.value) {\n this.onNewPageIndex(Number(this.pageNumberInputDOM.value) - 1, \"input\");\n }\n }));\n const totalPage = document.createElement(\"span\");\n totalPage.textContent = ` / ${this.pages.length}`;\n pageNumber.appendChild(totalPage);\n this.dispose.add(listen(window, \"keydown\", (ev) => {\n if (this.readonly || this.isEditable(ev.target) || this.justDocsViewReadonly)\n return;\n if ((ev.key == \"ArrowUp\" || ev.key == \"ArrowLeft\") && this.pageIndex > 0)\n this.onNewPageIndex(this.pageIndex - 1, \"keydown\");\n else if ((ev.key == \"ArrowDown\" || ev.key == \"ArrowRight\") && this.pageIndex < this.pages.length - 1)\n this.onNewPageIndex(this.pageIndex + 1, \"keydown\");\n }));\n }\n setDOM(dom) {\n if (this.dom == dom)\n return;\n dom.appendChild(this.contentDOM);\n dom.appendChild(this.footerDOM);\n this.dom = dom;\n }\n setReadonly(readonly) {\n if (this.readonly == readonly)\n return;\n this.contentDOM.classList.toggle(this.c(\"readonly\"), readonly);\n this.footerDOM.classList.toggle(this.c(\"readonly\"), readonly);\n this.pageNumberInputDOM.disabled = readonly;\n this.togglePreview(false);\n this.readonly = readonly;\n }\n setPageIndex(pageIndex) {\n if (Number.isSafeInteger(pageIndex)) {\n this.pageIndex = pageIndex;\n this.pageNumberInputDOM.value = String(pageIndex + 1);\n this.updateImage();\n }\n }\n togglePreview(showPreview) {\n this.showPreview = showPreview != null ? showPreview : !this.showPreview;\n this.contentDOM.classList.toggle(this.c(\"preview-active\"), this.showPreview);\n if (this.showPreview) {\n const previewPageDOM = this.previewDOM.querySelector(\".\" + this.c(`preview-page-${this.pageIndex}`));\n if (previewPageDOM) {\n this.previewLazyload || (this.previewLazyload = new LazyLoad({\n container: this.previewDOM,\n elements_selector: `.${this.c(\"preview-page>img\")}`\n }));\n this.previewDOM.scrollTo({ top: previewPageDOM.offsetTop - 16 });\n }\n }\n }\n // [origin] means the cause:\n // - navigation: user clicked on the left / right button on footer\n // - input: user filled the bottom-right page number input box\n // - preview: user clicked on the left preview menu's item\n // - keydown: this navigation is caused by user press left or right\n // Fastboard dispatchDocsEvent() triggers the \"navigation\" and \"input\" cause\n onNewPageIndex(index, _origin) {\n if (0 <= index && index < this.pages.length) {\n this.setPageIndex(index);\n }\n }\n page() {\n return this.pages[this.pageIndex];\n }\n updateImage() {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n this.timer = setTimeout(() => {\n this.timer = null;\n this.preload.touch(this.pageIndex, true);\n }, 200);\n }\n /** Returns a modified URL that points to the thumbnail image. */\n thumbnail(src) {\n try {\n const url = new URL(src);\n url.searchParams.set(\"x-oss-process\", \"image/resize,l_50\");\n return url.toString();\n } catch (err) {\n console.error(err);\n return src;\n }\n }\n c(className) {\n return `${this.namespace}-${className}`;\n }\n isEditable(el) {\n if (!el)\n return false;\n const { tagName } = el;\n return tagName == \"INPUT\" || tagName == \"TEXTAREA\" || tagName == \"SELECT\";\n }\n};\n\n// src/style.scss?inline\nvar style_default = \".netless-app-presentation{height:100%;display:flex;flex-flow:column nowrap}.netless-app-presentation-content{position:relative;height:100%;overflow:hidden}.netless-app-presentation-preview-mask{display:none;position:absolute;z-index:200;top:0;left:0;width:100%;height:100%}.netless-app-presentation-preview{display:flex;flex-direction:column;align-items:center;position:absolute;z-index:300;top:0;left:0;width:33%;max-width:200px;height:100%;padding-top:10px;transform:translate(-100%);background:#ededf0e6;box-shadow:inset -1px 0 #0000001c;transition:transform .4s;overflow:auto;overflow-y:scroll}.netless-app-presentation-preview-active .netless-app-presentation-preview-mask{display:block}.netless-app-presentation-preview-active .netless-app-presentation-preview{transform:translate(0)}.netless-app-presentation-preview-page{position:relative;display:block;width:55%;margin-bottom:10px;font-size:0;color:#0000;outline:none;border:7px solid rgba(0,0,0,0);border-radius:4px;transition:border-color .3s;user-select:none}.netless-app-presentation-preview-page:hover,.netless-app-presentation-preview-page.netless-app-presentation-preview-page-active{border-color:#444e601a}.netless-app-presentation-preview-page>img{width:100%;height:auto;box-sizing:border-box;border:1px solid rgba(0,0,0,.5);border-radius:1px;background-color:#fff;box-shadow:0 2px 8px #0000004d}.netless-app-presentation-preview-page-name{position:absolute;top:1px;left:-10px;transform:translate(-100%);text-align:right;font-size:12px;color:#5f5f5f;user-select:none}.netless-app-presentation-footer{box-sizing:border-box;height:26px;display:flex;align-items:center;padding:0 16px;border-top:1px solid #eeeef7;color:#191919}.netless-app-presentation-float-footer{width:100%;min-height:26px;position:absolute;left:0;bottom:0;z-index:2000;background:#f9f9fce6;transition:opacity .4s}.netless-app-presentation-footer-btn{box-sizing:border-box;width:26px;height:26px;font-size:0;margin:0;padding:3px;border:none;border-radius:1px;outline:none;color:currentColor;background:#0000;transition:background .4s;cursor:pointer;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.netless-app-presentation-footer-btn:hover{background:#ededf0e6}@media (hover: none){.netless-app-presentation-footer-btn:hover{background:#0000!important}}.netless-app-presentation-footer-btn>svg{width:100%;height:100%}.netless-app-presentation-footer-btn>svg:nth-of-type(2){display:none}.netless-app-presentation-footer-btn.netless-app-presentation-footer-btn-playing>svg:nth-of-type(1){display:none}.netless-app-presentation-footer-btn.netless-app-presentation-footer-btn-playing>svg:nth-of-type(2){display:initial}.netless-app-presentation-footer-btn~.netless-app-presentation-footer-btn{margin-left:15px}.netless-app-presentation-page-jumps{flex:1;display:flex;justify-content:center;align-items:center}.netless-app-presentation-page-number{margin-left:auto;font-size:13px;user-select:none;white-space:nowrap;word-break:keep-all}.netless-app-presentation-page-number-input{border:none;outline:none;width:3em;margin:0;padding:0 2px;text-align:right;font-size:13px;line-height:1;font-weight:400;font-family:inherit;border-radius:2px;color:currentColor;background:#0000;transition:background .4s;user-select:text;-webkit-tap-highlight-color:rgba(0,0,0,0)}.netless-app-presentation-page-number-input:hover,.netless-app-presentation-page-number-input:focus,.netless-app-presentation-page-number-input:active{background:#fff;box-shadow:#63636333 0 2px 8px}.netless-app-presentation-readonly.netless-app-presentation-footer{display:none}.netless-app-presentation-wb-view{position:absolute;top:0;left:0;width:100%;height:100%;z-index:100;overflow:hidden;transition:opacity .2s}.netless-app-presentation-image{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.netless-app-presentation-image>img{max-width:100%;max-height:100%;object-fit:contain}.telebox-color-scheme-dark .netless-app-presentation-page-number-input{color:#a6a6a8}.telebox-color-scheme-dark .netless-app-presentation-page-number-input:active,.telebox-color-scheme-dark .netless-app-presentation-page-number-input:focus,.telebox-color-scheme-dark .netless-app-presentation-page-number-input:hover{color:#222}.telebox-color-scheme-dark .netless-app-presentation-footer{color:#a6a6a8;background:#2d2d33;border-top:none}.telebox-color-scheme-dark .netless-app-presentation-footer-btn:hover{background:#212126}.telebox-color-scheme-dark .netless-app-presentation-preview{background:#323232e6}.netless-app-presentation-scrollbar-container{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:101}.netless-app-presentation-scrollbar-container-x,.netless-app-presentation-scrollbar-container-y{position:absolute;pointer-events:none;display:flex;justify-content:center;box-sizing:border-box;padding:0}.netless-app-presentation-scrollbar-container-x{bottom:0;left:0;height:6px;width:100%;padding-right:6px}.netless-app-presentation-scrollbar-container-y{top:0;right:0;width:6px;height:100%;flex-direction:column;padding-bottom:6px}.netless-app-presentation-scrollbar-x,.netless-app-presentation-scrollbar-y{border-radius:2px;background-color:#1b1f4d4d;pointer-events:auto;cursor:default}.netless-app-presentation-scrollbar-x{height:6px}.netless-app-presentation-scrollbar-y{width:6px}\";\n\n// src/store.ts\nfunction noop() {\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || a && typeof a === \"object\" || typeof a === \"function\";\n}\nfunction readable(value, start = noop) {\n let stop;\n const subscribers = /* @__PURE__ */ new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) {\n for (const run of subscribers) {\n run(value);\n }\n }\n }\n }\n function subscribe(run) {\n subscribers.add(run);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run(value);\n return () => {\n subscribers.delete(run);\n if (subscribers.size === 0) {\n stop && stop();\n stop = void 0;\n }\n };\n }\n function reaction(run) {\n subscribers.add(run);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n return () => {\n subscribers.delete(run);\n if (subscribers.size === 0) {\n stop && stop();\n stop = void 0;\n }\n };\n }\n function dispose2(new_value) {\n if (new_value !== void 0) {\n set(new_value);\n }\n subscribers.clear();\n stop && stop();\n stop = void 0;\n }\n return {\n get value() {\n if (subscribers.size === 0) {\n stop = start(set) || noop;\n stop();\n stop = void 0;\n }\n return value;\n },\n subscribe,\n reaction,\n dispose: dispose2\n };\n}\n\n// src/scrollbar/Draggable.ts\nfunction makeDraggable(element, options) {\n let currentDragger = null;\n let originalMouseX = 0;\n let originalMouseY = 0;\n const { onDragEnd, onDrag, onDragStart, direction = \"xy\" } = options;\n const drag = (e, state) => {\n e.stopPropagation();\n if (!currentDragger)\n return;\n let transformedDragX = 0;\n let transformedDragY = 0;\n if (direction === \"x\") {\n transformedDragX = Math.round(e.pageX - originalMouseX);\n } else if (direction === \"y\") {\n transformedDragY = Math.round(e.pageY - originalMouseY);\n } else {\n transformedDragX = Math.round(e.pageX - originalMouseX);\n transformedDragY = Math.round(e.pageY - originalMouseY);\n }\n if (state === 3 /* END */) {\n onDragEnd == null ? void 0 : onDragEnd({ x: transformedDragX, y: transformedDragY });\n } else {\n onDrag == null ? void 0 : onDrag({ x: transformedDragX, y: transformedDragY });\n }\n };\n element.addEventListener(\"pointerdown\", bindDrag);\n function bindDrag(e) {\n currentDragger = e.target;\n e.stopPropagation();\n if (currentDragger !== element) {\n return;\n }\n originalMouseX = e.pageX;\n originalMouseY = e.pageY;\n element.addEventListener(\"pointermove\", drag);\n document.body.addEventListener(\"pointerup\", stopDrag);\n document.body.addEventListener(\"pointercancel\", stopDrag);\n element.setPointerCapture(e.pointerId);\n onDragStart == null ? void 0 : onDragStart();\n }\n function removeEventListener2() {\n currentDragger = null;\n element.removeEventListener(\"pointermove\", drag);\n document.body.removeEventListener(\"pointerup\", stopDrag);\n document.body.removeEventListener(\"pointercancel\", stopDrag);\n }\n function stopDrag(e) {\n if (!currentDragger)\n return;\n e.stopPropagation();\n drag(e, 3 /* END */);\n removeEventListener2();\n }\n function destroy() {\n stop();\n element.removeEventListener(\"pointerdown\", bindDrag);\n }\n function stop() {\n removeEventListener2();\n }\n return { destroy };\n}\n\n// src/scrollbar/index.ts\nvar import_lodash = __toESM(require_lodash());\nvar Scrollbar = class {\n constructor(container, option, view) {\n this.namespace = \"netless-app-presentation\";\n this.scrollContainer = document.createElement(\"div\");\n this.option = {\n appId: \"\",\n getPageSize: () => {\n return {\n width: 0,\n height: 0\n };\n },\n getWritable: () => false,\n getOriginScale: () => 1,\n syncView: () => void 0\n };\n this.onCameraUpdated = (0, import_lodash.debounce)(() => {\n var _a, _b;\n if (this.readonly)\n return;\n const { scale, centerX, centerY } = this.view.camera;\n const originScale = this.option.getOriginScale();\n const { width: pageWidth, height: pageHeight } = this.option.getPageSize();\n const { width: viewWidth, height: viewHeight } = this.view.size;\n const originScaleX = viewWidth / pageWidth;\n const originScaleY = viewHeight / pageHeight;\n const ratioX = Math.min(Math.round(originScaleX / scale * 100) / 100, 1);\n const ratioY = Math.min(Math.round(originScaleY / scale * 100) / 100, 1);\n const scrollX = Math.round(centerX * originScaleX);\n const scrollY = Math.round(centerY * originScaleY);\n if (this.scrollbarX) {\n this.scrollbarX.style.width = `${ratioX * 100}%`;\n this.scrollbarX.style.display = ratioX === 1 ? \"none\" : \"block\";\n this.scrollbarX.style.transform = `translateX(${scrollX}px)`;\n }\n if (this.scrollbarY) {\n this.scrollbarY.style.height = `${ratioY * 100}%`;\n this.scrollbarY.style.display = ratioY === 1 ? \"none\" : \"block\";\n this.scrollbarY.style.transform = `translateY(${scrollY}px)`;\n }\n (_b = (_a = this.option.scrollbarEventCallback) == null ? void 0 : _a.onScrollCameraUpdated) == null ? void 0 : _b.call(_a, this.appId, originScale, scale);\n }, 50);\n this.onDragStart = () => {\n var _a, _b;\n const camera = this.view.camera;\n this.cameraCache = {\n centerX: camera.centerX,\n centerY: camera.centerY,\n scale: camera.scale\n };\n (_b = (_a = this.option.scrollbarEventCallback) == null ? void 0 : _a.onScrollbarDragStart) == null ? void 0 : _b.call(_a);\n };\n this.onDragX = (transformedDrag) => {\n var _a, _b;\n if (this.cameraCache) {\n const { x } = transformedDrag;\n const { width: pageWidth } = this.option.getPageSize();\n const { width: viewWidth } = this.view.size;\n const originScaleX = viewWidth / pageWidth;\n const { minX, maxX } = this.getScrollXRange(this.cameraCache);\n const scrollX = Math.round(x / originScaleX);\n let centerX = scrollX + this.cameraCache.centerX;\n if (centerX < minX) {\n centerX = minX;\n } else if (centerX > maxX) {\n centerX = maxX;\n }\n this.view.moveCamera({\n centerX,\n animationMode: \"immediately\"\n });\n (_b = (_a = this.option.scrollbarEventCallback) == null ? void 0 : _a.onScrollbarDragY) == null ? void 0 : _b.call(_a, centerX);\n }\n };\n this.onDragY = (transformedDrag) => {\n var _a, _b;\n if (this.cameraCache) {\n const { y } = transformedDrag;\n const { height: pageHeight } = this.option.getPageSize();\n const { height: viewHeight } = this.view.size;\n const originScaleY = viewHeight / pageHeight;\n const { minY, maxY } = this.getScrollYRange(this.cameraCache);\n const scrollY = Math.round(y / originScaleY);\n let centerY = scrollY + this.cameraCache.centerY;\n if (centerY < minY) {\n centerY = minY;\n } else if (centerY > maxY) {\n centerY = maxY;\n }\n this.view.moveCamera({\n centerY,\n animationMode: \"immediately\"\n });\n (_b = (_a = this.option.scrollbarEventCallback) == null ? void 0 : _a.onScrollbarDragY) == null ? void 0 : _b.call(_a, centerY);\n }\n };\n this.onDragEnd = () => {\n var _a, _b;\n this.cameraCache = void 0;\n this.option.syncView();\n (_b = (_a = this.option.scrollbarEventCallback) == null ? void 0 : _a.onScrollbarDragEnd) == null ? void 0 : _b.call(_a);\n };\n this.moveCamera = (camera) => {\n const { centerX, centerY, scale } = camera;\n const cacheCamera = this.view.camera;\n const _camera = {};\n if ((0, import_lodash.isNumber)(centerX)) {\n const { minX, maxX } = this.getScrollXRange(cacheCamera);\n let newCenterX = centerX;\n if (centerX < minX) {\n newCenterX = minX;\n } else if (centerX > maxX) {\n newCenterX = maxX;\n }\n _camera.centerX = newCenterX;\n }\n if ((0, import_lodash.isNumber)(centerY)) {\n const { minY, maxY } = this.getScrollYRange(cacheCamera);\n let newCenterY = centerY;\n if (centerY < minY) {\n newCenterY = minY;\n } else if (centerY > maxY) {\n newCenterY = maxY;\n }\n _camera.centerY = newCenterY;\n }\n if ((0, import_lodash.isNumber)(scale)) {\n let newScale = scale;\n const originScale = this.option.getOriginScale();\n if (scale < originScale) {\n newScale = originScale;\n }\n _camera.scale = newScale;\n }\n this.view.moveCamera(__spreadProps(__spreadValues({}, _camera), {\n animationMode: \"immediately\"\n }));\n this.option.syncView();\n };\n this.scrollContainer.className = this.c(\"scrollbar-container\");\n this.container = container;\n this.option = option;\n this.appId = option.appId;\n this.readonly = option.readonly || false;\n this.view = view;\n this.init();\n }\n c(className) {\n return `${this.namespace}-${className}`;\n }\n setReadonly(bol) {\n this.readonly = bol;\n this.destroy();\n if (!this.readonly) {\n this.init();\n }\n }\n getScrollXRange(camera) {\n const { width: pageWidth } = this.option.getPageSize();\n const { width: viewWidth } = this.view.size;\n const originScaleX = viewWidth / pageWidth;\n const scale = camera.scale;\n const ratio = Math.min(Math.round(originScaleX / scale * 100) / 100, 1);\n const scrollWidth = pageWidth * (1 - ratio);\n const minX = -scrollWidth / 2;\n const maxX = scrollWidth / 2;\n return { minX, maxX };\n }\n getScrollYRange(camera) {\n const { height: pageHeight } = this.option.getPageSize();\n const { height: viewHeight } = this.view.size;\n const originScaleY = viewHeight / pageHeight;\n const scale = camera.scale;\n const ratio = Math.min(Math.round(originScaleY / scale * 100) / 100, 1);\n const scrollHeight = pageHeight * (1 - ratio);\n const minY = -scrollHeight / 2;\n const maxY = scrollHeight / 2;\n return { minY, maxY };\n }\n init() {\n this.scrollbarX = document.createElement(\"div\");\n this.scrollbarX.classList.add(this.c(\"scrollbar-x\"));\n if (this.option.getWritable()) {\n this.draggableX = makeDraggable(this.scrollbarX, {\n direction: \"x\",\n onDrag: this.onDragX,\n onDragEnd: this.onDragEnd,\n onDragStart: this.onDragStart\n });\n }\n Object.assign(this.scrollbarX.style, {\n width: \"100%\",\n display: \"none\"\n });\n this.scrollbarContainerX = document.createElement(\"div\");\n this.scrollbarContainerX.classList.add(this.c(\"scrollbar-container-x\"));\n this.scrollbarContainerX.appendChild(this.scrollbarX);\n this.scrollbarY = document.createElement(\"div\");\n this.scrollbarY.classList.add(this.c(\"scrollbar-y\"));\n if (this.option.getWritable()) {\n this.draggableY = makeDraggable(this.scrollbarY, {\n direction: \"y\",\n onDrag: this.onDragY,\n onDragEnd: this.onDragEnd,\n onDragStart: this.onDragStart\n });\n }\n Object.assign(this.scrollbarY.style, {\n height: \"100%\",\n display: \"none\"\n });\n this.scrollbarContainerY = document.createElement(\"div\");\n this.scrollbarContainerY.classList.add(this.c(\"scrollbar-container-y\"));\n this.scrollbarContainerY.appendChild(this.scrollbarY);\n this.scrollContainer.append(this.scrollbarContainerX, this.scrollbarContainerY);\n this.container.appendChild(this.scrollContainer);\n this.view.callbacks.on(\"onCameraUpdated\", this.onCameraUpdated);\n this.onCameraUpdated();\n }\n destroy() {\n this.view.callbacks.off(\"onCameraUpdated\", this.onCameraUpdated);\n if (this.scrollbarX && this.scrollbarContainerX) {\n this.scrollbarContainerX.removeChild(this.scrollbarX);\n this.scrollbarX.remove();\n this.scrollbarContainerX.remove();\n this.scrollbarX = void 0;\n }\n if (this.scrollbarY && this.scrollbarContainerY) {\n this.scrollbarContainerY.removeChild(this.scrollbarY);\n this.scrollbarY.remove();\n this.scrollbarContainerY.remove();\n this.scrollbarY = void 0;\n }\n if (this.draggableX) {\n this.draggableX.destroy();\n this.draggableX = void 0;\n }\n if (this.draggableY) {\n this.draggableY.destroy();\n this.draggableY = void 0;\n }\n }\n};\n\n// src/app-presentation.ts\nvar import_lodash2 = __toESM(require_lodash());\nvar emptySceneName = \"$$empty$$\";\nvar ppt2page = (ppt, name) => ppt ? { width: ppt.width, height: ppt.height, src: ppt.src, thumbnail: ppt.previewURL, name } : null;\nvar createLogger = (room) => {\n if (room && room.logger) {\n return (...args) => room.logger.info(...args);\n } else {\n return (...args) => console.log(...args);\n }\n};\nvar scenesEqual = (scenes1, scenes2) => {\n if (!scenes1 || !scenes2) {\n return false;\n }\n if (scenes1.length !== scenes2.length)\n return false;\n return scenes1.every((scene, index) => {\n var _a, _b, _c, _d, _e, _f;\n const scene2 = scenes2[index];\n return scene.name === scene2.name && ((_a = scene.ppt) == null ? void 0 : _a.width) === ((_b = scene2.ppt) == null ? void 0 : _b.width) && ((_c = scene.ppt) == null ? void 0 : _c.height) === ((_d = scene2.ppt) == null ? void 0 : _d.height) && ((_e = scene.ppt) == null ? void 0 : _e.src) === ((_f = scene2.ppt) == null ? void 0 : _f.src);\n });\n};\nvar NetlessAppPresentation = {\n kind: \"Presentation\",\n setup(context) {\n var _a, _b, _c;\n const view = context.getView();\n if (!view)\n throw new Error(\"[Presentation]: no whiteboard view, make sure you have added options.scenePath in addApp()\");\n const pages = (_a = context.getScenes()) == null ? void 0 : _a.map(({ ppt, name }) => ppt2page(ppt, name)).filter(Boolean);\n if (!pages || pages.length === 0)\n throw new Error(\"[Presentation]: empty scenes, make sure you have added options.scenes in addApp()\");\n if (pages[0].src.startsWith(\"ppt\"))\n throw new Error(\"[Presentation]: legacy dynamic PPT is unsupported, please use the projector converter and @netless/slide to render it\");\n const scenePath = context.getInitScenePath();\n const options = context.getAppOptions() || {};\n let maxCameraScale = (_b = options.maxCameraScale) != null ? _b : 3;\n if (!(Number.isFinite(maxCameraScale) && maxCameraScale > 0)) {\n console.warn(`[Presentation] maxCameraScale should be a positive number, got ${options.maxCameraScale}`);\n maxCameraScale = 3;\n }\n const log = options.log || createLogger(context.getRoom());\n log(`[Presentation] new ${context.appId}`);\n const dispose2 = disposableStore();\n dispose2.add(() => log(`[Presentation] dispose ${context.appId}`));\n const view$$ = context.createStorage(\"view\", { uid: \"\", originX: 0, originY: 0, width: 0, height: 0 });\n const _addScenePathListener = (name, listener) => {\n const windowManger = context.manager.windowManger;\n windowManger.emitter.on(name, listener);\n return () => windowManger == null ? void 0 : windowManger.emitter.off(name, listener);\n };\n const getPageIndex = (view2) => {\n const focusScenePath = view2.focusScenePath;\n const name = focusScenePath == null ? void 0 : focusScenePath.split(\"/\").pop();\n let _pageIndex = pages.findIndex((page, index) => {\n var _a2;\n const n = (_a2 = page.name) != null ? _a2 : String(index + 1);\n return n === name;\n });\n if (_pageIndex === -1) {\n _pageIndex = 0;\n }\n return _pageIndex;\n };\n let pageIndex = getPageIndex(view);\n const pageIndex$ = readable(pageIndex, (set) => {\n set(pageIndex);\n return _addScenePathListener(\"onAppScenePathChange\", (payload) => {\n const { appId } = payload;\n if (appId === context.appId) {\n const _pageIndex = getPageIndex(payload.view);\n set(_pageIndex);\n }\n });\n });\n dispose2.add(() => {\n pageIndex$.dispose();\n });\n if (context.isAddApp) {\n if (pages.length > 100)\n console.warn(`[Presentation]: too many pages (${pages.length}), may cause performance issues`);\n let redirectResolve = void 0;\n const room2 = context.getRoom();\n if (room2 && room2.isWritable) {\n const scenes = room2.entireScenes()[scenePath];\n if (pageIndex$.value < 0 || pageIndex$.value >= pages.length) {\n throw new Error(`[Presentation] Invalid page index: ${pageIndex$.value}, scenes length: ${pages.length}`);\n }\n new Promise((resolve) => {\n const { name, ppt } = scenes[pageIndex$.value];\n redirectResolve = resolve;\n const _scenes = pages.map((p, index) => {\n var _a2;\n return {\n name: (_a2 = p.name) != null ? _a2 : String(index + 1),\n ppt: { width: p.width, height: p.height, src: p.src }\n };\n });\n if (!scenesEqual(scenes, _scenes)) {\n room2.removeScenes(scenePath);\n room2.putScenes(scenePath, _scenes);\n }\n if (name === _scenes[pageIndex$.value].name && !ppt) {\n context.addPage({ scene: { name: emptySceneName } }).then(() => {\n log(`[Presentation] setup setScenePath ${scenePath}/${emptySceneName}`);\n context.setScenePath(`${scenePath}/${emptySceneName}`).then(() => {\n redirectResolve && redirectResolve(true);\n });\n });\n } else {\n redirectResolve && redirectResolve(false);\n }\n }).then(async (bol) => {\n await syncPage(pageIndex$.value, room2.logger);\n if (bol) {\n log(`[Presentation] setup removeScenes ${scenePath}/${emptySceneName}`);\n room2.removeScenes(`${scenePath}/${emptySceneName}`);\n }\n });\n }\n }\n const me = ((_c = context.getRoom()) == null ? void 0 : _c.uid) || context.getDisplayer().observerId + \"\";\n let throttleSyncView = 0;\n const syncPage = async (index, logger) => {\n var _a2;\n if (!context.getIsWritable())\n return;\n const scenes = context.getDisplayer().entireScenes()[scenePath];\n if (!scenes)\n return;\n const p = pages[index];\n const name = (_a2 = p.name) != null ? _a2 : String(index + 1);\n if (!scenes.some((scene) => scene.name === name)) {\n await context.addPage({ scene: { name, ppt: { width: p.width, height: p.height, src: p.src } } });\n }\n if (logger) {\n logger.info(`[Presentation] syncPage ${scenePath}/${name}`);\n }\n await context.setScenePath(`${scenePath}/${name}`);\n };\n const jumpPage = (index) => {\n var _a2;\n if (!context.getIsWritable()) {\n console.warn(\"[Presentation]: no permission, make sure you have test room.isWritable\");\n return false;\n }\n if (!(0 <= index && index < pages.length)) {\n console.warn(`[Presentation]: page ${index + 1} out of bounds [1, ${pages.length}]`);\n return false;\n }\n const scenes = context.getDisplayer().entireScenes()[scenePath];\n if (!scenes) {\n console.warn(`[Presentation]: no scenes found at ${scenePath}, make sure you have added options.scenePath in addApp()`);\n return false;\n }\n const p = pages[index];\n const name = (_a2 = p.name) != null ? _a2 : String(index + 1);\n if (!scenes.some((scene) => scene.name === name)) {\n context.addPage({ scene: { name, ppt: { width: p.width, height: p.height, src: p.src } } });\n }\n syncPage(index);\n return true;\n };\n const prevPage = () => jumpPage(pageIndex$.value - 1);\n const nextPage = () => jumpPage(pageIndex$.value + 1);\n const pageState = () => ({ index: pageIndex$.value, length: pages.length });\n const scaleDocsToFit = () => {\n const { width, height } = app.page() || {};\n if (width && height) {\n view.moveCameraToContain({\n originX: -width / 2,\n originY: -height / 2,\n width,\n height,\n animationMode: \"immediately\"\n });\n const maxScale = view.camera.scale * (options.disableCameraTransform ? 1 : maxCameraScale);\n const minScale = view.camera.scale;\n view.setCameraBound({\n damping: 1,\n maxContentMode: () => maxScale,\n minContentMode: () => minScale,\n centerX: 0,\n centerY: 0,\n width,\n height\n });\n syncViewFromRemote(true);\n }\n };\n const syncView = () => {\n if (context.getIsWritable()) {\n if (options.debounceSync) {\n clearTimeout(throttleSyncView);\n throttleSyncView = 0;\n }\n if (throttleSyncView > 0)\n return;\n const { width, height } = app.page() || {};\n if (width && height) {\n throttleSyncView = setTimeout(() => {\n throttleSyncView = 0;\n const { camera, size } = view;\n const fixedW = Math.min(size.width, size.height * width / height);\n const fixedH = Math.min(size.height, size.width * height / width);\n const w = fixedW / camera.scale;\n const h = fixedH / camera.scale;\n const x = camera.centerX - w / 2;\n const y = camera.centerY - h / 2;\n view$$.setState({ uid: me, originX: x, originY: y, width: w, height: h });\n }, 50);\n }\n }\n };\n dispose2.add(() => {\n clearTimeout(throttleSyncView);\n throttleSyncView = 0;\n });\n const syncViewFromRemote = (force = false, animate = false) => {\n const { uid, originX, originY, width, height } = view$$.state;\n if ((force || uid !== me) && width > 0 && height > 0) {\n view.moveCameraToContain({\n originX,\n originY,\n width,\n height,\n animationMode: animate ? \"continuous\" : \"immediately\"\n });\n }\n };\n dispose2.add(view$$.addStateChangedListener(() => syncViewFromRemote(false, true)));\n const getPageSize = () => {\n const { width, height } = app.page() || {};\n return { width: width || 0, height: height || 0 };\n };\n const box = context.getBox();\n const app = dispose2.add(createPresentation(box, pages, jumpPage, pageIndex$, view, options.thumbnail, options.useClipView));\n app.contentDOM.dataset.appPresentationVersion = \"0.1.9\";\n app.scaleDocsToFit = scaleDocsToFit;\n app.log = log;\n if (options.justDocsViewReadonly) {\n app.setDocsViewReadonly(true);\n }\n const room = context.getRoom();\n const goToPageByClick = () => {\n var _a2, _b2, _c2, _d;\n const currentApplianceName = (_d = (_c2 = (_b2 = (_a2 = context.getRoom()) == null ? void 0 : _a2.state) == null ? void 0 : _b2.memberState) == null ? void 0 : _c2.currentApplianceName) != null ? _d : \"\";\n if (!app.readonly && currentApplianceName === \"clicker\") {\n nextPage();\n }\n };\n if (room && options.goToPageByClick && app.whiteboardDOM) {\n dispose2.make(() => {\n app.whiteboardDOM.addEventListener(\"click\", goToPageByClick);\n return () => app.whiteboardDOM.removeEventListener(\"click\", goToPageByClick);\n });\n }\n context.mountView(app.whiteboardDOM);\n if (options.disableCameraTransform) {\n view.disableCameraTransform = true;\n }\n scaleDocsToFit();\n dispose2.make(() => {\n view.callbacks.on(\"onSizeUpdated\", scaleDocsToFit);\n return () => view.callbacks.off(\"onSizeUpdated\", scaleDocsToFit);\n });\n if (options.viewport && context.isAddApp && app.page()) {\n const page = app.page();\n const viewport = typeof options.viewport === \"function\" ? options.viewport(page) : options.viewport;\n const fix = (i, x) => i == 0 ? i : i <= 1 ? i * x : i;\n view$$.setState({\n uid: me,\n originX: fix(viewport.x, page.width) - page.width / 2,\n originY: fix(viewport.y, page.height) - page.height / 2,\n width: fix(viewport.width, page.width),\n height: fix(viewport.height, page.height)\n });\n }\n dispose2.make(() => {\n view.callbacks.on(\"onCameraUpdatedByDevice\", syncView);\n return () => view.callbacks.off(\"onCameraUpdatedByDevice\", syncView);\n });\n syncViewFromRemote(true);\n dispose2.add(context.emitter.on(\"writableChange\", (isWritable) => {\n app.setReadonly(!isWritable);\n }));\n const getOriginScale = () => {\n const { size } = view;\n const { width, height } = getPageSize();\n return Math.min(size.height / height, size.width / width);\n };\n const getScale = () => {\n return view.camera.scale;\n };\n const screenshotCurrentPageAsync = async (_context, _width, _height) => {\n var _a2, _b2;\n (_b2 = (_a2 = room == null ? void 0 : room.calibrationTimestamp) == null ? void 0 : _a2.toString()) != null ? _b2 : Date.now().toString();\n const currentPage = pages[pageIndex$.value];\n if (!currentPage) {\n throw new Error(\"[Presentation]: current page not found\");\n }\n const { width, height, src } = currentPage;\n const img = document.createElement(\"img\");\n img.width = width;\n img.height = height;\n img.crossOrigin = \"Anonymous\";\n await new Promise((resolve) => {\n img.onload = resolve;\n img.src = src;\n });\n _context.drawImage(img, 0, 0, width, height, 0, 0, _width || width, _height || height);\n const currentScenePath = view.focusScenePath;\n if (!currentScenePath) {\n throw new Error(\"[Presentation]: current scene path not found\");\n }\n const windowManger = context.getWindowManager();\n if (windowManger._appliancePlugin) {\n await windowManger._appliancePlugin.screenshotToCanvasAsync(_context, currentScenePath, _width || width, _height || height, {\n centerX: 0,\n centerY: 0,\n scale: _width && _height ? Math.min(_width / width, _height / height) : 1\n });\n } else {\n await view.screenshotToCanvasAsync(_context, currentScenePath, _width || width, _height || height, {\n centerX: 0,\n centerY: 0,\n scale: _width && _height ? Math.min(_width / width, _height / height) : 1\n });\n }\n };\n let scrollbar;\n if (options.useScrollbar) {\n dispose2.make(() => {\n scrollbar = new Scrollbar(app.contentDOM, {\n appId: context.appId,\n getPageSize,\n getOriginScale,\n syncView,\n getWritable: () => context.getIsWritable(),\n scrollbarEventCallback: options.scrollbarEventCallback\n }, view);\n return () => scrollbar == null ? void 0 : scrollbar.destroy();\n });\n }\n const moveCamera = (camera) => {\n if (context.getIsWritable() && scrollbar) {\n if (!scrollbar) {\n throw new Error(\"[Presentation]: moveCamera must be called when appOptions: useScrollbar is true\");\n }\n scrollbar.moveCamera(camera);\n return;\n }\n throw new Error(\"[Presentation]: moveCamera must be called in writable room\");\n };\n context.emitter.on(\"destroy\", () => dispose2());\n const reportProgress = (progress, result) => {\n window.postMessage({ type: \"@netless/_result_save_pdf_\", appId: context.appId, progress, result }, \"*\");\n return result;\n };\n const base64url = async (url) => {\n try {\n const a = new URL(url);\n a.searchParams.set(\"t\", Date.now().toString());\n url = a.toString();\n } catch (e) {\n }\n const data = await fetch(url);\n if (!data.ok)\n throw new Error(`[Presentation]: failed to fetch ${url} - ${await data.text()}`);\n const blob = await data.blob();\n const reader = new FileReader();\n return new Promise((resolve, reject) => {\n reader.onload = () => resolve(reader.result);\n reader.onerror = () => reject(reader.error);\n reader.readAsDataURL(blob);\n });\n };\n const toPdf = async () => {\n var _a2;\n const MAX = 1920;\n const firstPage = pages[0];\n const { width, height } = firstPage;\n let pdfWidth = Math.floor(width), pdfHeight = Math.floor(height);\n if (pdfWidth > MAX) {\n pdfWidth = MAX;\n pdfHeight = Math.floor(height * pdfWidth / width);\n }\n if (pdfHeight > MAX) {\n pdfHeight = MAX;\n pdfWidth = Math.floor(width * pdfHeight / height);\n }\n const scenes = context.getDisplayer().entireScenes()[scenePath];\n const stage_canvas = document.createElement(\"canvas\");\n stage_canvas.width = pdfWidth;\n stage_canvas.height = pdfHeight;\n const stage = stage_canvas.getContext(\"2d\");\n const wb_canvas = document.createElement(\"canvas\");\n wb_canvas.width = pdfWidth;\n wb_canvas.height = pdfHeight;\n const wb = wb_canvas.getContext(\"2d\");\n if (!wb || !stage)\n return reportProgress(100, null);\n const { jsPDF } = await import('jspdf');\n const pdf = new jsPDF({\n format: [firstPage.width, firstPage.height],\n orientation: firstPage.width > firstPage.height ? \"l\" : \"p\",\n compress: true\n });\n for (let index = 0; index < pages.length; ++index) {\n const p = pages[index];\n const { width: width2, height: height2, src } = p;\n const url = await base64url(src);\n const img = document.createElement(\"img\");\n await new Promise((resolve) => {\n img.onload = resolve;\n img.src = url;\n });\n stage.drawImage(img, 0, 0);\n wb.clearRect(0, 0, pdfWidth, pdfHeight);\n const name = (_a2 = p.name) != null ? _a2 : String(index + 1);\n if (scenes.some((scene) => scene.name == name)) {\n const camera = { centerX: 0, centerY: 0, scale: Math.min(wb_canvas.width / width2, wb_canvas.height / height2) };\n const sPath = `${scenePath}/${name}`;\n const windowManger = context.getWindowManager();\n if (windowManger._appliancePlugin) {\n await windowManger._appliancePlugin.screenshotToCanvasAsync(wb, sPath, wb_canvas.width, wb_canvas.height, camera);\n } else {\n await view.screenshotToCanvasAsync(\n wb,\n sPath,\n wb_canvas.width,\n wb_canvas.height,\n camera\n );\n }\n try {\n const wb_url = wb_canvas.toDataURL(\"image/png\");\n const wb_img = document.createElement(\"img\");\n await new Promise((resolve) => {\n wb_img.onload = resolve;\n wb_img.src = wb_url;\n });\n stage.drawImage(wb_img, 0, 0, pdfWidth, pdfHeight);\n } catch (err) {\n console.warn(err);\n }\n }\n const output = stage_canvas.toDataURL(\"image/jpeg\", 0.6);\n if (index > 0)\n pdf.addPage();\n pdf.addImage(output, \"JPEG\", 0, 0, pdfWidth, pdfHeight, \"\", \"FAST\");\n stage.clearRect(0, 0, pdfWidth, pdfHeight);\n const progress = Math.ceil((index + 1) / pages.length * 100);\n if (progress < 100)\n reportProgress(progress, null);\n }\n const data = pdf.output(\"arraybuffer\");\n const title = box.title;\n return reportProgress(100, { pdf: data, title });\n };\n dispose2.add(listen(window, \"message\", (ev) => {\n if (ev.data && ev.data.type == \"@netless/_request_save_pdf_\" && ev.data.appId == context.appId) {\n toPdf().catch((err) => {\n console.warn(err);\n reportProgress(100, null);\n });\n }\n }));\n const setDocsViewReadonly = (bol) => {\n app.setDocsViewReadonly(bol);\n };\n const setReadonly = (bol) => {\n app.setReadonly(bol);\n if (options.goToPageByClick) ;\n if (scrollbar) {\n scrollbar.setReadonly(bol);\n }\n };\n const controller = { app, view, context, jumpPage, prevPage, nextPage, pageState, toPdf, log, setDocsViewReadonly, setReadonly, moveCamera, getOriginScale, getScale, getPageSize, screenshotCurrentPageAsync };\n dispose2.add(listen(window, \"message\", (ev) => {\n if (ev.data === \"@netless/_presentation_\") {\n if (typeof window !== \"undefined\")\n dispose2.make(() => {\n const debug = window._presentation_ || (window._presentation_ = /* @__PURE__ */ new Set());\n debug.add(controller);\n return () => debug.delete(controller);\n });\n console.log(controller);\n }\n }));\n return controller;\n }\n};\nvar AppPresentation = class extends Presentation {\n constructor(config) {\n super(config);\n this.jumpPage = config.jumpPage;\n }\n updateImage() {\n super.updateImage();\n }\n onNewPageIndex(index, origin) {\n if (origin === \"keydown\" && this.box && !this.box.focus)\n return;\n if (this.log)\n this.log(\"[Presentation] user navigate to\", index + 1, `(${origin})`);\n if (0 <= index && index < this.pages.length) {\n this.jumpPage(index);\n } else {\n console.warn(`[Presentation]: page index ${index} out of bounds [0, ${this.pages.length - 1}]`);\n }\n }\n};\nfunction createPresentation(box, pages, jumpPage, pageIndex$, view, thumbnail, useClipView) {\n box.mountStyles(style_default);\n const app = new AppPresentation({ pages, readonly: box.readonly, jumpPage, thumbnail });\n app.box = box;\n box.mountContent(app.contentDOM);\n box.mountFooter(app.footerDOM);\n app.dispose.add(pageIndex$.subscribe((pageIndex) => {\n app.setPageIndex(pageIndex);\n }));\n if (useClipView && view) {\n const onCameraUpdatedEffectForMaskView = (0, import_lodash2.debounce)(() => {\n const { width: pageWidth, height: pageHeight } = app.page() || {};\n if (!pageWidth || !pageHeight) {\n return;\n }\n const { scale } = view.camera;\n const { width, height } = view.size;\n const pageRatioX = Math.round((1 - pageWidth * scale / width) / 2 * 100);\n const pageRatioY = Math.round((1 - pageHeight * scale / height) / 2 * 100);\n app.whiteboardDOM.style.clipPath = `inset(${pageRatioY}% ${pageRatioX}%)`;\n }, 50);\n onCameraUpdatedEffectForMaskView();\n const onCameraUpdatedEffect = () => {\n view.callbacks.on(\"onSizeUpdated\", onCameraUpdatedEffectForMaskView);\n view.callbacks.on(\"onCameraUpdated\", onCameraUpdatedEffectForMaskView);\n return () => {\n view.callbacks.off(\"onCameraUpdated\", onCameraUpdatedEffectForMaskView);\n view.callbacks.off(\"onSizeUpdated\", onCameraUpdatedEffectForMaskView);\n };\n };\n app.dispose.make(onCameraUpdatedEffect);\n }\n return app;\n}\nvar install = (register, options = {}) => {\n let app = NetlessAppPresentation;\n if (options.as) {\n app = Object.assign({}, app, { kind: options.as });\n }\n return register({ kind: app.kind, src: app, appOptions: options.appOptions });\n};\n\n// src/index.ts\nvar version = \"0.1.9\";\n/*! Bundled license information:\n\nlodash/lodash.js:\n (**\n * @license\n * Lodash <https://lodash.com/>\n * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n *)\n*/\n\nexport { NetlessAppPresentation, Presentation, Scrollbar, NetlessAppPresentation as default, install, version };\n//# sourceMappingURL=index.mjs.map\n"],"names":["_Preload"],"mappings":"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,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,QAER,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV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"}
1
+ {"version":3,"file":"app-presentation.mjs","sources":["../node_modules/.pnpm/@netless+app-presentation@0.1.10_jspdf@2.5.2/node_modules/@netless/app-presentation/dist/index.mjs"],"sourcesContent":["var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\n\n// node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObject.js\nvar require_isObject = __commonJS({\n \"node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObject.js\"(exports, module) {\n function isObject(value) {\n var type = typeof value;\n return value != null && (type == \"object\" || type == \"function\");\n }\n module.exports = isObject;\n }\n});\n\n// node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_freeGlobal.js\nvar require_freeGlobal = __commonJS({\n \"node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_freeGlobal.js\"(exports, module) {\n var freeGlobal = typeof global == \"object\" && global && global.Object === Object && global;\n module.exports = freeGlobal;\n }\n});\n\n// node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_root.js\nvar require_root = __commonJS({\n \"node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_root.js\"(exports, module) {\n var freeGlobal = require_freeGlobal();\n var freeSelf = typeof self == \"object\" && self && self.Object === Object && self;\n var root = freeGlobal || freeSelf || Function(\"return this\")();\n module.exports = root;\n }\n});\n\n// node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/now.js\nvar require_now = __commonJS({\n \"node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/now.js\"(exports, module) {\n var root = require_root();\n var now = function() {\n return root.Date.now();\n };\n module.exports = now;\n }\n});\n\n// node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_trimmedEndIndex.js\nvar require_trimmedEndIndex = __commonJS({\n \"node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_trimmedEndIndex.js\"(exports, module) {\n var reWhitespace = /\\s/;\n function trimmedEndIndex(string) {\n var index = string.length;\n while (index-- && reWhitespace.test(string.charAt(index))) {\n }\n return index;\n }\n module.exports = trimmedEndIndex;\n }\n});\n\n// node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseTrim.js\nvar require_baseTrim = __commonJS({\n \"node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseTrim.js\"(exports, module) {\n var trimmedEndIndex = require_trimmedEndIndex();\n var reTrimStart = /^\\s+/;\n function baseTrim(string) {\n return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, \"\") : string;\n }\n module.exports = baseTrim;\n }\n});\n\n// node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Symbol.js\nvar require_Symbol = __commonJS({\n \"node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Symbol.js\"(exports, module) {\n var root = require_root();\n var Symbol2 = root.Symbol;\n module.exports = Symbol2;\n }\n});\n\n// node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getRawTag.js\nvar require_getRawTag = __commonJS({\n \"node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getRawTag.js\"(exports, module) {\n var Symbol2 = require_Symbol();\n var objectProto = Object.prototype;\n var hasOwnProperty = objectProto.hasOwnProperty;\n var nativeObjectToString = objectProto.toString;\n var symToStringTag = Symbol2 ? Symbol2.toStringTag : void 0;\n function getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag];\n try {\n value[symToStringTag] = void 0;\n var unmasked = true;\n } catch (e) {\n }\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n }\n module.exports = getRawTag;\n }\n});\n\n// node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_objectToString.js\nvar require_objectToString = __commonJS({\n \"node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_objectToString.js\"(exports, module) {\n var objectProto = Object.prototype;\n var nativeObjectToString = objectProto.toString;\n function objectToString(value) {\n return nativeObjectToString.call(value);\n }\n module.exports = objectToString;\n }\n});\n\n// node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGetTag.js\nvar require_baseGetTag = __commonJS({\n \"node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGetTag.js\"(exports, module) {\n var Symbol2 = require_Symbol();\n var getRawTag = require_getRawTag();\n var objectToString = require_objectToString();\n var nullTag = \"[object Null]\";\n var undefinedTag = \"[object Undefined]\";\n var symToStringTag = Symbol2 ? Symbol2.toStringTag : void 0;\n function baseGetTag(value) {\n if (value == null) {\n return value === void 0 ? undefinedTag : nullTag;\n }\n return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);\n }\n module.exports = baseGetTag;\n }\n});\n\n// node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObjectLike.js\nvar require_isObjectLike = __commonJS({\n \"node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObjectLike.js\"(exports, module) {\n function isObjectLike(value) {\n return value != null && typeof value == \"object\";\n }\n module.exports = isObjectLike;\n }\n});\n\n// node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isSymbol.js\nvar require_isSymbol = __commonJS({\n \"node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isSymbol.js\"(exports, module) {\n var baseGetTag = require_baseGetTag();\n var isObjectLike = require_isObjectLike();\n var symbolTag = \"[object Symbol]\";\n function isSymbol(value) {\n return typeof value == \"symbol\" || isObjectLike(value) && baseGetTag(value) == symbolTag;\n }\n module.exports = isSymbol;\n }\n});\n\n// node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toNumber.js\nvar require_toNumber = __commonJS({\n \"node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toNumber.js\"(exports, module) {\n var baseTrim = require_baseTrim();\n var isObject = require_isObject();\n var isSymbol = require_isSymbol();\n var NAN = 0 / 0;\n var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n var reIsBinary = /^0b[01]+$/i;\n var reIsOctal = /^0o[0-7]+$/i;\n var freeParseInt = parseInt;\n function toNumber(value) {\n if (typeof value == \"number\") {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == \"function\" ? value.valueOf() : value;\n value = isObject(other) ? other + \"\" : other;\n }\n if (typeof value != \"string\") {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;\n }\n module.exports = toNumber;\n }\n});\n\n// node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/debounce.js\nvar require_debounce = __commonJS({\n \"node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/debounce.js\"(exports, module) {\n var isObject = require_isObject();\n var now = require_now();\n var toNumber = require_toNumber();\n var FUNC_ERROR_TEXT = \"Expected a function\";\n var nativeMax = Math.max;\n var nativeMin = Math.min;\n function debounce3(func, wait, options) {\n var lastArgs, lastThis, maxWait, result, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true;\n if (typeof func != \"function\") {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = \"maxWait\" in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = \"trailing\" in options ? !!options.trailing : trailing;\n }\n function invokeFunc(time) {\n var args = lastArgs, thisArg = lastThis;\n lastArgs = lastThis = void 0;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n function leadingEdge(time) {\n lastInvokeTime = time;\n timerId = setTimeout(timerExpired, wait);\n return leading ? invokeFunc(time) : result;\n }\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, timeWaiting = wait - timeSinceLastCall;\n return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;\n }\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime;\n return lastCallTime === void 0 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n }\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n function trailingEdge(time) {\n timerId = void 0;\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = void 0;\n return result;\n }\n function cancel() {\n if (timerId !== void 0) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = void 0;\n }\n function flush() {\n return timerId === void 0 ? result : trailingEdge(now());\n }\n function debounced() {\n var time = now(), isInvoking = shouldInvoke(time);\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n if (isInvoking) {\n if (timerId === void 0) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === void 0) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n }\n module.exports = debounce3;\n }\n});\n\n// node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isNumber.js\nvar require_isNumber = __commonJS({\n \"node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isNumber.js\"(exports, module) {\n var baseGetTag = require_baseGetTag();\n var isObjectLike = require_isObjectLike();\n var numberTag = \"[object Number]\";\n function isNumber2(value) {\n return typeof value == \"number\" || isObjectLike(value) && baseGetTag(value) == numberTag;\n }\n module.exports = isNumber2;\n }\n});\n\n// node_modules/.pnpm/@wopjs+disposable@0.1.19/node_modules/@wopjs/disposable/dist/index.mjs\nvar isFn = (value) => !!(value && value.constructor && value.call && value.apply);\nvar isDisposable = (value) => isFn(value) || isFn(value == null ? void 0 : value.dispose);\nfunction dispose(disposable) {\n try {\n if (disposable) {\n if (isFn(disposable.dispose)) {\n disposable.dispose();\n } else if (isFn(disposable)) {\n disposable();\n }\n }\n } catch (e) {\n console.error(e);\n }\n}\nvar isAbortable = (disposable) => isDisposable(disposable) && isFn(disposable.abortable);\nfunction disposableStore(disposables) {\n function disposableStore2() {\n var _a, _b;\n if (disposableStore2._i)\n return;\n disposableStore2._i = 1;\n (_a = disposableStore2._d) == null ? void 0 : _a.forEach(dispose);\n (_b = disposableStore2._d) == null ? void 0 : _b.clear();\n disposableStore2._i = 0;\n }\n disposableStore2._i = 0;\n disposableStore2.dispose = disposableStore2;\n disposableStore2.size = size2;\n disposableStore2.has = has2;\n disposableStore2.add = add;\n disposableStore2.make = make3;\n disposableStore2.remove = remove3;\n disposableStore2.flush = flush2;\n return disposableStore2;\n}\nfunction _addOne(disposable) {\n var _a, _b;\n if (!((_a = this._d) == null ? void 0 : _a.has(disposable))) {\n ((_b = this._d) != null ? _b : this._d = /* @__PURE__ */ new Set()).add(disposable);\n if (isAbortable(disposable)) {\n disposable.abortable(() => this.remove(disposable));\n }\n }\n}\nfunction add(disposables) {\n Array.isArray(disposables) ? disposables.forEach(_addOne, this) : _addOne.call(this, disposables);\n return disposables;\n}\nfunction flush2(disposable) {\n if (disposable) {\n if (this.remove(disposable)) {\n dispose(disposable);\n }\n } else {\n this.dispose();\n }\n}\nfunction has2(disposable) {\n var _a;\n return ((_a = this._d) == null ? void 0 : _a.has(disposable)) || false;\n}\nfunction make3(executor) {\n const disposable = executor();\n return disposable && this.add(disposable);\n}\nfunction remove3(disposable) {\n var _a;\n return ((_a = this._d) == null ? void 0 : _a.delete(disposable)) || false;\n}\nfunction size2() {\n var _a;\n return ((_a = this._d) == null ? void 0 : _a.size) || 0;\n}\n\n// node_modules/.pnpm/@wopjs+dom@0.1.3/node_modules/@wopjs/dom/dist/index.js\nfunction addEventListener(target, type, listener, options) {\n target.addEventListener(type, listener, options);\n return () => target.removeEventListener(type, listener, options);\n}\nvar listen = addEventListener;\n\n// node_modules/.pnpm/vanilla-lazyload@18.0.0/node_modules/vanilla-lazyload/dist/lazyload.esm.js\nvar runningOnBrowser = typeof window !== \"undefined\";\nvar isBot = runningOnBrowser && !(\"onscroll\" in window) || typeof navigator !== \"undefined\" && /(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent);\nvar isHiDpi = runningOnBrowser && window.devicePixelRatio > 1;\nvar defaultSettings = {\n elements_selector: \".lazy\",\n container: isBot || runningOnBrowser ? document : null,\n threshold: 300,\n thresholds: null,\n data_src: \"src\",\n data_srcset: \"srcset\",\n data_sizes: \"sizes\",\n data_bg: \"bg\",\n data_bg_hidpi: \"bg-hidpi\",\n data_bg_multi: \"bg-multi\",\n data_bg_multi_hidpi: \"bg-multi-hidpi\",\n data_bg_set: \"bg-set\",\n data_poster: \"poster\",\n class_applied: \"applied\",\n class_loading: \"loading\",\n class_loaded: \"loaded\",\n class_error: \"error\",\n class_entered: \"entered\",\n class_exited: \"exited\",\n unobserve_completed: true,\n unobserve_entered: false,\n cancel_on_exit: true,\n callback_enter: null,\n callback_exit: null,\n callback_applied: null,\n callback_loading: null,\n callback_loaded: null,\n callback_error: null,\n callback_finish: null,\n callback_cancel: null,\n use_native: false,\n restore_on_error: false\n};\nvar getExtendedSettings = (customSettings) => {\n return Object.assign({}, defaultSettings, customSettings);\n};\nvar createInstance = function(classObj, options) {\n let event;\n const eventString = \"LazyLoad::Initialized\";\n const instance = new classObj(options);\n try {\n event = new CustomEvent(eventString, { detail: { instance } });\n } catch (err) {\n event = document.createEvent(\"CustomEvent\");\n event.initCustomEvent(eventString, false, false, { instance });\n }\n window.dispatchEvent(event);\n};\nvar autoInitialize = (classObj, options) => {\n if (!options) {\n return;\n }\n if (!options.length) {\n createInstance(classObj, options);\n } else {\n for (let i = 0, optionsItem; optionsItem = options[i]; i += 1) {\n createInstance(classObj, optionsItem);\n }\n }\n};\nvar SRC = \"src\";\nvar SRCSET = \"srcset\";\nvar SIZES = \"sizes\";\nvar POSTER = \"poster\";\nvar ORIGINALS = \"llOriginalAttrs\";\nvar DATA = \"data\";\nvar statusLoading = \"loading\";\nvar statusLoaded = \"loaded\";\nvar statusApplied = \"applied\";\nvar statusEntered = \"entered\";\nvar statusError = \"error\";\nvar statusNative = \"native\";\nvar dataPrefix = \"data-\";\nvar statusDataName = \"ll-status\";\nvar getData = (element, attribute) => {\n return element.getAttribute(dataPrefix + attribute);\n};\nvar setData = (element, attribute, value) => {\n const attrName = dataPrefix + attribute;\n if (value === null) {\n element.removeAttribute(attrName);\n return;\n }\n element.setAttribute(attrName, value);\n};\nvar getStatus = (element) => getData(element, statusDataName);\nvar setStatus = (element, status) => setData(element, statusDataName, status);\nvar resetStatus = (element) => setStatus(element, null);\nvar hasEmptyStatus = (element) => getStatus(element) === null;\nvar hasStatusLoading = (element) => getStatus(element) === statusLoading;\nvar hasStatusError = (element) => getStatus(element) === statusError;\nvar hasStatusNative = (element) => getStatus(element) === statusNative;\nvar statusesAfterLoading = [statusLoading, statusLoaded, statusApplied, statusError];\nvar hadStartedLoading = (element) => statusesAfterLoading.indexOf(getStatus(element)) >= 0;\nvar safeCallback = (callback, arg1, arg2, arg3) => {\n if (!callback || typeof callback !== \"function\") {\n return;\n }\n if (arg3 !== void 0) {\n callback(arg1, arg2, arg3);\n return;\n }\n if (arg2 !== void 0) {\n callback(arg1, arg2);\n return;\n }\n callback(arg1);\n};\nvar addClass = (element, className) => {\n if (!runningOnBrowser) {\n return;\n }\n if (className === \"\") {\n return;\n }\n element.classList.add(className);\n};\nvar removeClass = (element, className) => {\n if (!runningOnBrowser) {\n return;\n }\n if (className === \"\") {\n return;\n }\n element.classList.remove(className);\n};\nvar addTempImage = (element) => {\n element.llTempImage = document.createElement(\"IMG\");\n};\nvar deleteTempImage = (element) => {\n delete element.llTempImage;\n};\nvar getTempImage = (element) => element.llTempImage;\nvar unobserve = (element, instance) => {\n if (!instance)\n return;\n const observer = instance._observer;\n if (!observer)\n return;\n observer.unobserve(element);\n};\nvar resetObserver = (observer) => {\n observer.disconnect();\n};\nvar unobserveEntered = (element, settings, instance) => {\n if (settings.unobserve_entered)\n unobserve(element, instance);\n};\nvar updateLoadingCount = (instance, delta) => {\n if (!instance)\n return;\n instance.loadingCount += delta;\n};\nvar decreaseToLoadCount = (instance) => {\n if (!instance)\n return;\n instance.toLoadCount -= 1;\n};\nvar setToLoadCount = (instance, value) => {\n if (!instance)\n return;\n instance.toLoadCount = value;\n};\nvar isSomethingLoading = (instance) => instance.loadingCount > 0;\nvar haveElementsToLoad = (instance) => instance.toLoadCount > 0;\nvar getSourceTags = (parentTag) => {\n let sourceTags = [];\n for (let i = 0, childTag; childTag = parentTag.children[i]; i += 1) {\n if (childTag.tagName === \"SOURCE\") {\n sourceTags.push(childTag);\n }\n }\n return sourceTags;\n};\nvar forEachPictureSource = (element, fn) => {\n const parent = element.parentNode;\n if (!parent || parent.tagName !== \"PICTURE\") {\n return;\n }\n let sourceTags = getSourceTags(parent);\n sourceTags.forEach(fn);\n};\nvar forEachVideoSource = (element, fn) => {\n let sourceTags = getSourceTags(element);\n sourceTags.forEach(fn);\n};\nvar attrsSrc = [SRC];\nvar attrsSrcPoster = [SRC, POSTER];\nvar attrsSrcSrcsetSizes = [SRC, SRCSET, SIZES];\nvar attrsData = [DATA];\nvar hasOriginalAttrs = (element) => !!element[ORIGINALS];\nvar getOriginalAttrs = (element) => element[ORIGINALS];\nvar deleteOriginalAttrs = (element) => delete element[ORIGINALS];\nvar setOriginalsObject = (element, attributes) => {\n if (hasOriginalAttrs(element)) {\n return;\n }\n const originals = {};\n attributes.forEach((attribute) => {\n originals[attribute] = element.getAttribute(attribute);\n });\n element[ORIGINALS] = originals;\n};\nvar saveOriginalBackgroundStyle = (element) => {\n if (hasOriginalAttrs(element)) {\n return;\n }\n element[ORIGINALS] = { backgroundImage: element.style.backgroundImage };\n};\nvar setOrResetAttribute = (element, attrName, value) => {\n if (!value) {\n element.removeAttribute(attrName);\n return;\n }\n element.setAttribute(attrName, value);\n};\nvar restoreOriginalAttrs = (element, attributes) => {\n if (!hasOriginalAttrs(element)) {\n return;\n }\n const originals = getOriginalAttrs(element);\n attributes.forEach((attribute) => {\n setOrResetAttribute(element, attribute, originals[attribute]);\n });\n};\nvar restoreOriginalBgImage = (element) => {\n if (!hasOriginalAttrs(element)) {\n return;\n }\n const originals = getOriginalAttrs(element);\n element.style.backgroundImage = originals.backgroundImage;\n};\nvar manageApplied = (element, settings, instance) => {\n addClass(element, settings.class_applied);\n setStatus(element, statusApplied);\n if (!instance)\n return;\n if (settings.unobserve_completed) {\n unobserve(element, settings);\n }\n safeCallback(settings.callback_applied, element, instance);\n};\nvar manageLoading = (element, settings, instance) => {\n addClass(element, settings.class_loading);\n setStatus(element, statusLoading);\n if (!instance)\n return;\n updateLoadingCount(instance, 1);\n safeCallback(settings.callback_loading, element, instance);\n};\nvar setAttributeIfValue = (element, attrName, value) => {\n if (!value) {\n return;\n }\n element.setAttribute(attrName, value);\n};\nvar setImageAttributes = (element, settings) => {\n setAttributeIfValue(element, SIZES, getData(element, settings.data_sizes));\n setAttributeIfValue(element, SRCSET, getData(element, settings.data_srcset));\n setAttributeIfValue(element, SRC, getData(element, settings.data_src));\n};\nvar setSourcesImg = (imgEl, settings) => {\n forEachPictureSource(imgEl, (sourceTag) => {\n setOriginalsObject(sourceTag, attrsSrcSrcsetSizes);\n setImageAttributes(sourceTag, settings);\n });\n setOriginalsObject(imgEl, attrsSrcSrcsetSizes);\n setImageAttributes(imgEl, settings);\n};\nvar setSourcesIframe = (iframe, settings) => {\n setOriginalsObject(iframe, attrsSrc);\n setAttributeIfValue(iframe, SRC, getData(iframe, settings.data_src));\n};\nvar setSourcesVideo = (videoEl, settings) => {\n forEachVideoSource(videoEl, (sourceEl) => {\n setOriginalsObject(sourceEl, attrsSrc);\n setAttributeIfValue(sourceEl, SRC, getData(sourceEl, settings.data_src));\n });\n setOriginalsObject(videoEl, attrsSrcPoster);\n setAttributeIfValue(videoEl, POSTER, getData(videoEl, settings.data_poster));\n setAttributeIfValue(videoEl, SRC, getData(videoEl, settings.data_src));\n videoEl.load();\n};\nvar setSourcesObject = (object, settings) => {\n setOriginalsObject(object, attrsData);\n setAttributeIfValue(object, DATA, getData(object, settings.data_src));\n};\nvar setBackground = (element, settings, instance) => {\n const bg1xValue = getData(element, settings.data_bg);\n const bgHiDpiValue = getData(element, settings.data_bg_hidpi);\n const bgDataValue = isHiDpi && bgHiDpiValue ? bgHiDpiValue : bg1xValue;\n if (!bgDataValue)\n return;\n element.style.backgroundImage = `url(\"${bgDataValue}\")`;\n getTempImage(element).setAttribute(SRC, bgDataValue);\n manageLoading(element, settings, instance);\n};\nvar setMultiBackground = (element, settings, instance) => {\n const bg1xValue = getData(element, settings.data_bg_multi);\n const bgHiDpiValue = getData(element, settings.data_bg_multi_hidpi);\n const bgDataValue = isHiDpi && bgHiDpiValue ? bgHiDpiValue : bg1xValue;\n if (!bgDataValue) {\n return;\n }\n element.style.backgroundImage = bgDataValue;\n manageApplied(element, settings, instance);\n};\nvar setImgsetBackground = (element, settings, instance) => {\n const bgImgSetDataValue = getData(element, settings.data_bg_set);\n if (!bgImgSetDataValue) {\n return;\n }\n const imgSetValues = bgImgSetDataValue.split(\"|\");\n let bgImageValues = imgSetValues.map((value) => `image-set(${value})`);\n element.style.backgroundImage = bgImageValues.join();\n if (element.style.backgroundImage === \"\") {\n bgImageValues = imgSetValues.map((value) => `-webkit-image-set(${value})`);\n element.style.backgroundImage = bgImageValues.join();\n }\n manageApplied(element, settings, instance);\n};\nvar setSourcesFunctions = {\n IMG: setSourcesImg,\n IFRAME: setSourcesIframe,\n VIDEO: setSourcesVideo,\n OBJECT: setSourcesObject\n};\nvar setSourcesNative = (element, settings) => {\n const setSourcesFunction = setSourcesFunctions[element.tagName];\n if (!setSourcesFunction) {\n return;\n }\n setSourcesFunction(element, settings);\n};\nvar setSources = (element, settings, instance) => {\n const setSourcesFunction = setSourcesFunctions[element.tagName];\n if (!setSourcesFunction) {\n return;\n }\n setSourcesFunction(element, settings);\n manageLoading(element, settings, instance);\n};\nvar elementsWithLoadEvent = [\"IMG\", \"IFRAME\", \"VIDEO\", \"OBJECT\"];\nvar hasLoadEvent = (element) => elementsWithLoadEvent.indexOf(element.tagName) > -1;\nvar checkFinish = (settings, instance) => {\n if (instance && !isSomethingLoading(instance) && !haveElementsToLoad(instance)) {\n safeCallback(settings.callback_finish, instance);\n }\n};\nvar addEventListener2 = (element, eventName, handler) => {\n element.addEventListener(eventName, handler);\n element.llEvLisnrs[eventName] = handler;\n};\nvar removeEventListener = (element, eventName, handler) => {\n element.removeEventListener(eventName, handler);\n};\nvar hasEventListeners = (element) => {\n return !!element.llEvLisnrs;\n};\nvar addEventListeners = (element, loadHandler2, errorHandler2) => {\n if (!hasEventListeners(element))\n element.llEvLisnrs = {};\n const loadEventName = element.tagName === \"VIDEO\" ? \"loadeddata\" : \"load\";\n addEventListener2(element, loadEventName, loadHandler2);\n addEventListener2(element, \"error\", errorHandler2);\n};\nvar removeEventListeners = (element) => {\n if (!hasEventListeners(element)) {\n return;\n }\n const eventListeners = element.llEvLisnrs;\n for (let eventName in eventListeners) {\n const handler = eventListeners[eventName];\n removeEventListener(element, eventName, handler);\n }\n delete element.llEvLisnrs;\n};\nvar doneHandler = (element, settings, instance) => {\n deleteTempImage(element);\n updateLoadingCount(instance, -1);\n decreaseToLoadCount(instance);\n removeClass(element, settings.class_loading);\n if (settings.unobserve_completed) {\n unobserve(element, instance);\n }\n};\nvar loadHandler = (event, element, settings, instance) => {\n const goingNative = hasStatusNative(element);\n doneHandler(element, settings, instance);\n addClass(element, settings.class_loaded);\n setStatus(element, statusLoaded);\n safeCallback(settings.callback_loaded, element, instance);\n if (!goingNative)\n checkFinish(settings, instance);\n};\nvar errorHandler = (event, element, settings, instance) => {\n const goingNative = hasStatusNative(element);\n doneHandler(element, settings, instance);\n addClass(element, settings.class_error);\n setStatus(element, statusError);\n safeCallback(settings.callback_error, element, instance);\n if (settings.restore_on_error)\n restoreOriginalAttrs(element, attrsSrcSrcsetSizes);\n if (!goingNative)\n checkFinish(settings, instance);\n};\nvar addOneShotEventListeners = (element, settings, instance) => {\n const elementToListenTo = getTempImage(element) || element;\n if (hasEventListeners(elementToListenTo)) {\n return;\n }\n const _loadHandler = (event) => {\n loadHandler(event, element, settings, instance);\n removeEventListeners(elementToListenTo);\n };\n const _errorHandler = (event) => {\n errorHandler(event, element, settings, instance);\n removeEventListeners(elementToListenTo);\n };\n addEventListeners(elementToListenTo, _loadHandler, _errorHandler);\n};\nvar loadBackground = (element, settings, instance) => {\n addTempImage(element);\n addOneShotEventListeners(element, settings, instance);\n saveOriginalBackgroundStyle(element);\n setBackground(element, settings, instance);\n setMultiBackground(element, settings, instance);\n setImgsetBackground(element, settings, instance);\n};\nvar loadRegular = (element, settings, instance) => {\n addOneShotEventListeners(element, settings, instance);\n setSources(element, settings, instance);\n};\nvar load = (element, settings, instance) => {\n if (hasLoadEvent(element)) {\n loadRegular(element, settings, instance);\n } else {\n loadBackground(element, settings, instance);\n }\n};\nvar loadNative = (element, settings, instance) => {\n element.setAttribute(\"loading\", \"lazy\");\n addOneShotEventListeners(element, settings, instance);\n setSourcesNative(element, settings);\n setStatus(element, statusNative);\n};\nvar removeImageAttributes = (element) => {\n element.removeAttribute(SRC);\n element.removeAttribute(SRCSET);\n element.removeAttribute(SIZES);\n};\nvar resetSourcesImg = (element) => {\n forEachPictureSource(element, (sourceTag) => {\n removeImageAttributes(sourceTag);\n });\n removeImageAttributes(element);\n};\nvar restoreImg = (imgEl) => {\n forEachPictureSource(imgEl, (sourceEl) => {\n restoreOriginalAttrs(sourceEl, attrsSrcSrcsetSizes);\n });\n restoreOriginalAttrs(imgEl, attrsSrcSrcsetSizes);\n};\nvar restoreVideo = (videoEl) => {\n forEachVideoSource(videoEl, (sourceEl) => {\n restoreOriginalAttrs(sourceEl, attrsSrc);\n });\n restoreOriginalAttrs(videoEl, attrsSrcPoster);\n videoEl.load();\n};\nvar restoreIframe = (iframeEl) => {\n restoreOriginalAttrs(iframeEl, attrsSrc);\n};\nvar restoreObject = (objectEl) => {\n restoreOriginalAttrs(objectEl, attrsData);\n};\nvar restoreFunctions = {\n IMG: restoreImg,\n IFRAME: restoreIframe,\n VIDEO: restoreVideo,\n OBJECT: restoreObject\n};\nvar restoreAttributes = (element) => {\n const restoreFunction = restoreFunctions[element.tagName];\n if (!restoreFunction) {\n restoreOriginalBgImage(element);\n return;\n }\n restoreFunction(element);\n};\nvar resetClasses = (element, settings) => {\n if (hasEmptyStatus(element) || hasStatusNative(element)) {\n return;\n }\n removeClass(element, settings.class_entered);\n removeClass(element, settings.class_exited);\n removeClass(element, settings.class_applied);\n removeClass(element, settings.class_loading);\n removeClass(element, settings.class_loaded);\n removeClass(element, settings.class_error);\n};\nvar restore = (element, settings) => {\n restoreAttributes(element);\n resetClasses(element, settings);\n resetStatus(element);\n deleteOriginalAttrs(element);\n};\nvar cancelLoading = (element, entry, settings, instance) => {\n if (!settings.cancel_on_exit)\n return;\n if (!hasStatusLoading(element))\n return;\n if (element.tagName !== \"IMG\")\n return;\n removeEventListeners(element);\n resetSourcesImg(element);\n restoreImg(element);\n removeClass(element, settings.class_loading);\n updateLoadingCount(instance, -1);\n resetStatus(element);\n safeCallback(settings.callback_cancel, element, entry, instance);\n};\nvar onEnter = (element, entry, settings, instance) => {\n const dontLoad = hadStartedLoading(element);\n setStatus(element, statusEntered);\n addClass(element, settings.class_entered);\n removeClass(element, settings.class_exited);\n unobserveEntered(element, settings, instance);\n safeCallback(settings.callback_enter, element, entry, instance);\n if (dontLoad)\n return;\n load(element, settings, instance);\n};\nvar onExit = (element, entry, settings, instance) => {\n if (hasEmptyStatus(element))\n return;\n addClass(element, settings.class_exited);\n cancelLoading(element, entry, settings, instance);\n safeCallback(settings.callback_exit, element, entry, instance);\n};\nvar tagsWithNativeLazy = [\"IMG\", \"IFRAME\", \"VIDEO\"];\nvar shouldUseNative = (settings) => settings.use_native && \"loading\" in HTMLImageElement.prototype;\nvar loadAllNative = (elements, settings, instance) => {\n elements.forEach((element) => {\n if (tagsWithNativeLazy.indexOf(element.tagName) === -1) {\n return;\n }\n loadNative(element, settings, instance);\n });\n setToLoadCount(instance, 0);\n};\nvar isIntersecting = (entry) => entry.isIntersecting || entry.intersectionRatio > 0;\nvar getObserverSettings = (settings) => ({\n root: settings.container === document ? null : settings.container,\n rootMargin: settings.thresholds || settings.threshold + \"px\"\n});\nvar intersectionHandler = (entries, settings, instance) => {\n entries.forEach(\n (entry) => isIntersecting(entry) ? onEnter(entry.target, entry, settings, instance) : onExit(entry.target, entry, settings, instance)\n );\n};\nvar observeElements = (observer, elements) => {\n elements.forEach((element) => {\n observer.observe(element);\n });\n};\nvar updateObserver = (observer, elementsToObserve) => {\n resetObserver(observer);\n observeElements(observer, elementsToObserve);\n};\nvar setObserver = (settings, instance) => {\n if (shouldUseNative(settings)) {\n return;\n }\n instance._observer = new IntersectionObserver((entries) => {\n intersectionHandler(entries, settings, instance);\n }, getObserverSettings(settings));\n};\nvar toArray = (nodeSet) => Array.prototype.slice.call(nodeSet);\nvar queryElements = (settings) => settings.container.querySelectorAll(settings.elements_selector);\nvar excludeManagedElements = (elements) => toArray(elements).filter(hasEmptyStatus);\nvar hasError = (element) => hasStatusError(element);\nvar filterErrorElements = (elements) => toArray(elements).filter(hasError);\nvar getElementsToLoad = (elements, settings) => excludeManagedElements(elements || queryElements(settings));\nvar retryLazyLoad = (settings, instance) => {\n const errorElements = filterErrorElements(queryElements(settings));\n errorElements.forEach((element) => {\n removeClass(element, settings.class_error);\n resetStatus(element);\n });\n instance.update();\n};\nvar setOnlineCheck = (settings, instance) => {\n if (!runningOnBrowser) {\n return;\n }\n instance._onlineHandler = () => {\n retryLazyLoad(settings, instance);\n };\n window.addEventListener(\"online\", instance._onlineHandler);\n};\nvar resetOnlineCheck = (instance) => {\n if (!runningOnBrowser) {\n return;\n }\n window.removeEventListener(\"online\", instance._onlineHandler);\n};\nvar LazyLoad = function(customSettings, elements) {\n const settings = getExtendedSettings(customSettings);\n this._settings = settings;\n this.loadingCount = 0;\n setObserver(settings, this);\n setOnlineCheck(settings, this);\n this.update(elements);\n};\nLazyLoad.prototype = {\n update: function(givenNodeset) {\n const settings = this._settings;\n const elementsToLoad = getElementsToLoad(givenNodeset, settings);\n setToLoadCount(this, elementsToLoad.length);\n if (isBot) {\n this.loadAll(elementsToLoad);\n return;\n }\n if (shouldUseNative(settings)) {\n loadAllNative(elementsToLoad, settings, this);\n return;\n }\n updateObserver(this._observer, elementsToLoad);\n },\n destroy: function() {\n if (this._observer) {\n this._observer.disconnect();\n }\n resetOnlineCheck(this);\n queryElements(this._settings).forEach((element) => {\n deleteOriginalAttrs(element);\n });\n delete this._observer;\n delete this._settings;\n delete this._onlineHandler;\n delete this.loadingCount;\n delete this.toLoadCount;\n },\n loadAll: function(elements) {\n const settings = this._settings;\n const elementsToLoad = getElementsToLoad(elements, settings);\n elementsToLoad.forEach((element) => {\n unobserve(element, this);\n load(element, settings, this);\n });\n },\n restoreAll: function() {\n const settings = this._settings;\n queryElements(settings).forEach((element) => {\n restore(element, settings);\n });\n }\n};\nLazyLoad.load = (element, customSettings) => {\n const settings = getExtendedSettings(customSettings);\n load(element, settings);\n};\nLazyLoad.resetStatus = (element) => {\n resetStatus(element);\n};\nif (runningOnBrowser) {\n autoInitialize(LazyLoad, window.lazyLoadOptions);\n}\n\n// src/icons/sidebar.ts\nfunction sidebarSVG(namespace) {\n const NS = \"http://www.w3.org/2000/svg\";\n const $svg = document.createElementNS(NS, \"svg\");\n $svg.setAttribute(\"class\", `${namespace}-footer-icon-sidebar`);\n $svg.setAttribute(\"viewBox\", \"0 0 64 64\");\n const $path = document.createElementNS(NS, \"path\");\n $path.setAttribute(\"fill\", \"currentColor\");\n $path.setAttribute(\"d\", \"M50 8H14c-3.309 0-6 2.691-6 6v36c0 3.309 2.691 6 6 6h36c3.309 0 6-2.691 6-6V14c0-3.309-2.691-6-6-6zM12 50V14c0-1.103.897-2 2-2h8v40h-8c-1.103 0-2-.897-2-2zm40 0c0 1.103-.897 2-2 2H26V12h24c1.103 0 2 .897 2 2z\");\n $svg.appendChild($path);\n return $svg;\n}\n\n// src/icons/arrow-left.ts\nfunction arrowLeftSVG(namespace) {\n const NS = \"http://www.w3.org/2000/svg\";\n const $svg = document.createElementNS(NS, \"svg\");\n $svg.setAttribute(\"class\", `${namespace}-footer-icon-arrow-left`);\n $svg.setAttribute(\"viewBox\", \"0 0 500 500\");\n const $path = document.createElementNS(NS, \"path\");\n $path.setAttribute(\"fill\", \"currentColor\");\n $path.setAttribute(\"d\", \"M177.81 249.959L337.473 90.295c2.722-2.865 2.651-7.378-.143-10.1-2.793-2.65-7.163-2.65-9.956 0l-164.75 164.75c-2.793 2.793-2.793 7.306 0 10.1l164.75 164.75c2.865 2.722 7.378 2.65 10.099-.143 2.651-2.794 2.651-7.163 0-9.957L177.809 249.959z\");\n $svg.appendChild($path);\n return $svg;\n}\n\n// src/icons/arrow-right.ts\nfunction arrowRightSVG(namespace) {\n const NS = \"http://www.w3.org/2000/svg\";\n const $svg = document.createElementNS(NS, \"svg\");\n $svg.setAttribute(\"class\", `${namespace}-footer-icon-arrow-right`);\n $svg.setAttribute(\"viewBox\", \"0 0 500 500\");\n const $path = document.createElementNS(NS, \"path\");\n $path.setAttribute(\"fill\", \"currentColor\");\n $path.setAttribute(\"d\", \"M322.19 250.041L162.527 409.705c-2.722 2.865-2.651 7.378.143 10.1 2.793 2.65 7.163 2.65 9.956 0l164.75-164.75c2.793-2.793 2.793-7.306 0-10.1l-164.75-164.75c-2.865-2.722-7.378-2.65-10.099.143-2.651 2.794-2.651 7.163 0 9.957l159.664 159.736z\");\n $svg.appendChild($path);\n return $svg;\n}\n\n// src/preload.ts\nvar _Preload = class _Preload {\n constructor(pages) {\n this.pages = pages;\n // 正在加载的链接\n this.loadingLinks = /* @__PURE__ */ new Map();\n // 需要预加载的链接集合\n this.preloadMap = /* @__PURE__ */ new Map();\n // 当前触摸的索引\n this.touchIndex = 0;\n this.preloadSize = 0;\n this.preloadMap = new Map(pages.map((e, index) => [index, {\n src: e.src,\n state: 0 /* unloaded */\n }]));\n this.preloadSize = this.preloadMap.size;\n this.touch(0, true);\n }\n touch(index, force = false) {\n if (index >= this.preloadSize) {\n this.touchIndex = 0;\n } else {\n this.touchIndex = index;\n }\n const value = this.preloadMap.get(this.touchIndex);\n if (value && value.state === 0 /* unloaded */) {\n this.createLink(this.touchIndex, force);\n }\n if (this.loadingLinks.size < _Preload.maxLinks) {\n const willLoad = [...this.preloadMap.entries()].find(([i, e]) => i > this.touchIndex && e.state !== 1 /* loaded */);\n if (willLoad) {\n this.requestAsyncCallBack(() => {\n this.touch(willLoad[0], false);\n }, 100);\n }\n }\n }\n createLink(index, force = false) {\n const value = this.preloadMap.get(index);\n if (force) {\n this.destroySomeLink(index);\n }\n if (value) {\n if (value.state === 1 /* loaded */) {\n return 1 /* loaded */;\n }\n const curlink = this.loadingLinks.get(index);\n if (curlink) {\n if (curlink.isForce !== force) {\n curlink.isForce = force;\n this.loadingLinks.set(index, curlink);\n }\n return 0 /* unloaded */;\n }\n if (this.loadingLinks.size > _Preload.maxLinks) {\n return 0 /* unloaded */;\n }\n const linkDom = document.createElement(\"link\");\n linkDom.rel = \"preload\";\n linkDom.as = \"image\";\n linkDom.href = value.src;\n linkDom.dataset.order = index + \"\";\n document.head.appendChild(linkDom);\n linkDom.onload = () => {\n const value2 = this.preloadMap.get(index);\n if (value2) {\n value2.state = 1 /* loaded */;\n this.preloadMap.set(index, value2);\n document.head.contains(linkDom) && document.head.removeChild(linkDom);\n this.loadingLinks.delete(index);\n this.touch(this.touchIndex + 1, false);\n }\n };\n linkDom.onerror = () => {\n const value2 = this.preloadMap.get(index);\n if (value2 == null ? void 0 : value2.src) {\n linkDom.href = value2.src;\n }\n };\n this.loadingLinks.set(index, {\n link: linkDom,\n isForce: force\n });\n value.state = 0 /* unloaded */;\n this.preloadMap.set(index, value);\n return 0 /* unloaded */;\n }\n return 2 /* error */;\n }\n destroySomeLink(excludeIndex) {\n for (const [index, { link }] of this.loadingLinks) {\n if (excludeIndex !== void 0 && index === excludeIndex) {\n continue;\n }\n document.head.contains(link) && document.head.removeChild(link);\n this.loadingLinks.delete(index);\n }\n }\n async requestAsyncCallBack(callBack, timeout) {\n await new Promise(function(resolve) {\n if (window.requestIdleCallback) {\n requestIdleCallback(() => {\n resolve(1);\n }, { timeout });\n } else {\n setTimeout(() => {\n resolve(2);\n }, timeout);\n }\n });\n callBack();\n }\n dispose() {\n this.destroySomeLink();\n this.preloadMap.clear();\n }\n};\n_Preload.maxLinks = 5;\nvar Preload = _Preload;\n\n// src/presentation.ts\nvar Presentation = class {\n constructor(config) {\n this.namespace = \"netless-app-presentation\";\n this.dispose = disposableStore();\n this.initialized = false;\n this.showPreview = false;\n this.pageIndex = 0;\n this.previewLazyload = null;\n this.timer = null;\n this.justDocsViewReadonly = false;\n var _a;\n this.pages = config.pages;\n this.preload = new Preload(this.pages);\n if (config.thumbnail)\n this.thumbnail = config.thumbnail;\n this.dispose.add(this.preload);\n this.readonly = (_a = config.readonly) != null ? _a : false;\n this.dom = document.createElement(\"div\");\n this.dom.className = this.namespace;\n this.contentDOM = document.createElement(\"div\");\n this.contentDOM.className = this.c(\"content\");\n this.previewDOM = document.createElement(\"div\");\n this.previewDOM.className = this.c(\"preview\");\n this.whiteboardDOM = document.createElement(\"div\");\n this.whiteboardDOM.className = this.c(\"wb-view\");\n this.footerDOM = document.createElement(\"div\");\n this.footerDOM.className = this.c(\"footer\");\n this.pageNumberInputDOM = document.createElement(\"input\");\n this.pageNumberInputDOM.className = this.c(\"page-number-input\");\n this.initialize();\n }\n setDocsViewReadonly(readonly) {\n this.justDocsViewReadonly = readonly;\n }\n initialize() {\n var _a;\n if (this.initialized)\n return;\n this.initialized = true;\n this.dispose.add(() => {\n var _a2;\n return (_a2 = this.previewLazyload) == null ? void 0 : _a2.destroy();\n });\n this.contentDOM.classList.toggle(this.c(\"readonly\"), this.readonly);\n this.dom.appendChild(this.contentDOM);\n const previewMask = this.contentDOM.appendChild(document.createElement(\"div\"));\n previewMask.className = this.c(\"preview-mask\");\n this.dispose.add(listen(previewMask, \"click\", (ev) => {\n if (this.readonly)\n return;\n if (ev.target == previewMask) {\n this.togglePreview(false);\n }\n }));\n this.contentDOM.appendChild(this.previewDOM);\n this.previewDOM.classList.add(\"tele-fancy-scrollbar\");\n const c_previewPage = this.c(\"preview-page\");\n const c_previewPageName = this.c(\"preview-page-name\");\n for (let index = 0; index < this.pages.length; ++index) {\n const page = this.pages[index];\n const previewSRC = page.thumbnail || this.thumbnail(page.src);\n const previewPage = document.createElement(\"a\");\n previewPage.className = `${c_previewPage} ${this.c(`preview-page-${index}`)}`;\n previewPage.setAttribute(\"href\", \"#\");\n previewPage.dataset.pageIndex = String(index);\n const img = document.createElement(\"img\");\n img.width = page.width;\n img.height = page.height;\n img.dataset.src = previewSRC;\n img.dataset.pageIndex = String(index);\n const name = document.createElement(\"span\");\n name.className = c_previewPageName;\n name.textContent = String(index + 1);\n name.dataset.pageIndex = String(index);\n previewPage.appendChild(img);\n previewPage.appendChild(name);\n this.previewDOM.appendChild(previewPage);\n }\n (_a = this.previewLazyload) == null ? void 0 : _a.update();\n this.dispose.add(listen(this.previewDOM, \"click\", (ev) => {\n var _a2;\n if (this.readonly)\n return;\n const pageIndex = (_a2 = ev.target.dataset) == null ? void 0 : _a2.pageIndex;\n if (pageIndex) {\n ev.preventDefault();\n ev.stopPropagation();\n ev.stopImmediatePropagation();\n this.onNewPageIndex(Number(pageIndex), \"preview\");\n this.togglePreview(false);\n }\n }));\n this.updateImage();\n this.contentDOM.appendChild(this.whiteboardDOM);\n this.footerDOM.classList.toggle(this.c(\"readonly\"), this.readonly);\n this.dom.appendChild(this.footerDOM);\n const btnSidebar = document.createElement(\"button\");\n btnSidebar.className = `${this.c(\"footer-btn\")} ${this.c(\"btn-sidebar\")}`;\n btnSidebar.appendChild(sidebarSVG(this.namespace));\n this.footerDOM.appendChild(btnSidebar);\n this.dispose.add(listen(btnSidebar, \"click\", () => {\n if (this.readonly)\n return;\n this.togglePreview();\n }));\n const pageJumps = document.createElement(\"div\");\n pageJumps.className = this.c(\"page-jumps\");\n this.footerDOM.appendChild(pageJumps);\n const btnPageBack = document.createElement(\"button\");\n btnPageBack.className = `${this.c(\"footer-btn\")} ${this.c(\"btn-page-back\")}`;\n btnPageBack.appendChild(arrowLeftSVG(this.namespace));\n pageJumps.appendChild(btnPageBack);\n this.dispose.add(listen(btnPageBack, \"click\", () => {\n if (this.readonly)\n return;\n if (this.pageIndex > 0)\n this.onNewPageIndex(this.pageIndex - 1, \"navigation\");\n }));\n const btnPageNext = document.createElement(\"button\");\n btnPageNext.className = `${this.c(\"footer-btn\")} ${this.c(\"btn-page-next\")}`;\n btnPageNext.appendChild(arrowRightSVG(this.namespace));\n pageJumps.appendChild(btnPageNext);\n this.dispose.add(listen(btnPageNext, \"click\", () => {\n if (this.readonly)\n return;\n if (this.pageIndex < this.pages.length - 1)\n this.onNewPageIndex(this.pageIndex + 1, \"navigation\");\n }));\n const pageNumber = document.createElement(\"div\");\n pageNumber.className = this.c(\"page-number\");\n this.footerDOM.appendChild(pageNumber);\n pageNumber.appendChild(this.pageNumberInputDOM);\n this.pageNumberInputDOM.value = String(this.pageIndex + 1);\n this.pageNumberInputDOM.disabled = this.readonly;\n this.dispose.add(listen(this.pageNumberInputDOM, \"focus\", () => {\n if (this.readonly)\n return;\n this.pageNumberInputDOM.select();\n }));\n this.dispose.add(listen(this.pageNumberInputDOM, \"change\", () => {\n if (this.readonly)\n return;\n if (this.pageNumberInputDOM.value) {\n this.onNewPageIndex(Number(this.pageNumberInputDOM.value) - 1, \"input\");\n }\n }));\n const totalPage = document.createElement(\"span\");\n totalPage.textContent = ` / ${this.pages.length}`;\n pageNumber.appendChild(totalPage);\n this.dispose.add(listen(window, \"keydown\", (ev) => {\n if (this.readonly || this.isEditable(ev.target) || this.justDocsViewReadonly)\n return;\n if ((ev.key == \"ArrowUp\" || ev.key == \"ArrowLeft\") && this.pageIndex > 0)\n this.onNewPageIndex(this.pageIndex - 1, \"keydown\");\n else if ((ev.key == \"ArrowDown\" || ev.key == \"ArrowRight\") && this.pageIndex < this.pages.length - 1)\n this.onNewPageIndex(this.pageIndex + 1, \"keydown\");\n }));\n }\n setDOM(dom) {\n if (this.dom == dom)\n return;\n dom.appendChild(this.contentDOM);\n dom.appendChild(this.footerDOM);\n this.dom = dom;\n }\n setReadonly(readonly) {\n if (this.readonly == readonly)\n return;\n this.contentDOM.classList.toggle(this.c(\"readonly\"), readonly);\n this.footerDOM.classList.toggle(this.c(\"readonly\"), readonly);\n this.pageNumberInputDOM.disabled = readonly;\n this.togglePreview(false);\n this.readonly = readonly;\n }\n setPageIndex(pageIndex) {\n if (Number.isSafeInteger(pageIndex)) {\n this.pageIndex = pageIndex;\n this.pageNumberInputDOM.value = String(pageIndex + 1);\n this.updateImage();\n }\n }\n togglePreview(showPreview) {\n this.showPreview = showPreview != null ? showPreview : !this.showPreview;\n this.contentDOM.classList.toggle(this.c(\"preview-active\"), this.showPreview);\n if (this.showPreview) {\n const previewPageDOM = this.previewDOM.querySelector(\".\" + this.c(`preview-page-${this.pageIndex}`));\n if (previewPageDOM) {\n this.previewLazyload || (this.previewLazyload = new LazyLoad({\n container: this.previewDOM,\n elements_selector: `.${this.c(\"preview-page>img\")}`\n }));\n this.previewDOM.scrollTo({ top: previewPageDOM.offsetTop - 16 });\n }\n }\n }\n // [origin] means the cause:\n // - navigation: user clicked on the left / right button on footer\n // - input: user filled the bottom-right page number input box\n // - preview: user clicked on the left preview menu's item\n // - keydown: this navigation is caused by user press left or right\n // Fastboard dispatchDocsEvent() triggers the \"navigation\" and \"input\" cause\n onNewPageIndex(index, _origin) {\n if (0 <= index && index < this.pages.length) {\n this.setPageIndex(index);\n }\n }\n page() {\n return this.pages[this.pageIndex];\n }\n updateImage() {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n this.timer = setTimeout(() => {\n this.timer = null;\n this.preload.touch(this.pageIndex, true);\n }, 200);\n }\n /** Returns a modified URL that points to the thumbnail image. */\n thumbnail(src) {\n try {\n const url = new URL(src);\n url.searchParams.set(\"x-oss-process\", \"image/resize,l_50\");\n return url.toString();\n } catch (err) {\n console.error(err);\n return src;\n }\n }\n c(className) {\n return `${this.namespace}-${className}`;\n }\n isEditable(el) {\n if (!el)\n return false;\n const { tagName } = el;\n return tagName == \"INPUT\" || tagName == \"TEXTAREA\" || tagName == \"SELECT\";\n }\n};\n\n// src/style.scss?inline\nvar style_default = \".netless-app-presentation{height:100%;display:flex;flex-flow:column nowrap}.netless-app-presentation-content{position:relative;height:100%;overflow:hidden}.netless-app-presentation-preview-mask{display:none;position:absolute;z-index:200;top:0;left:0;width:100%;height:100%}.netless-app-presentation-preview{display:flex;flex-direction:column;align-items:center;position:absolute;z-index:300;top:0;left:0;width:33%;max-width:200px;height:100%;padding-top:10px;transform:translate(-100%);background:#ededf0e6;box-shadow:inset -1px 0 #0000001c;transition:transform .4s;overflow:auto;overflow-y:scroll}.netless-app-presentation-preview-active .netless-app-presentation-preview-mask{display:block}.netless-app-presentation-preview-active .netless-app-presentation-preview{transform:translate(0)}.netless-app-presentation-preview-page{position:relative;display:block;width:55%;margin-bottom:10px;font-size:0;color:#0000;outline:none;border:7px solid rgba(0,0,0,0);border-radius:4px;transition:border-color .3s;user-select:none}.netless-app-presentation-preview-page:hover,.netless-app-presentation-preview-page.netless-app-presentation-preview-page-active{border-color:#444e601a}.netless-app-presentation-preview-page>img{width:100%;height:auto;box-sizing:border-box;border:1px solid rgba(0,0,0,.5);border-radius:1px;background-color:#fff;box-shadow:0 2px 8px #0000004d}.netless-app-presentation-preview-page-name{position:absolute;top:1px;left:-10px;transform:translate(-100%);text-align:right;font-size:12px;color:#5f5f5f;user-select:none}.netless-app-presentation-footer{box-sizing:border-box;height:26px;display:flex;align-items:center;padding:0 16px;border-top:1px solid #eeeef7;color:#191919}.netless-app-presentation-float-footer{width:100%;min-height:26px;position:absolute;left:0;bottom:0;z-index:2000;background:#f9f9fce6;transition:opacity .4s}.netless-app-presentation-footer-btn{box-sizing:border-box;width:26px;height:26px;font-size:0;margin:0;padding:3px;border:none;border-radius:1px;outline:none;color:currentColor;background:#0000;transition:background .4s;cursor:pointer;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.netless-app-presentation-footer-btn:hover{background:#ededf0e6}@media (hover: none){.netless-app-presentation-footer-btn:hover{background:#0000!important}}.netless-app-presentation-footer-btn>svg{width:100%;height:100%}.netless-app-presentation-footer-btn>svg:nth-of-type(2){display:none}.netless-app-presentation-footer-btn.netless-app-presentation-footer-btn-playing>svg:nth-of-type(1){display:none}.netless-app-presentation-footer-btn.netless-app-presentation-footer-btn-playing>svg:nth-of-type(2){display:initial}.netless-app-presentation-footer-btn~.netless-app-presentation-footer-btn{margin-left:15px}.netless-app-presentation-page-jumps{flex:1;display:flex;justify-content:center;align-items:center}.netless-app-presentation-page-number{margin-left:auto;font-size:13px;user-select:none;white-space:nowrap;word-break:keep-all}.netless-app-presentation-page-number-input{border:none;outline:none;width:3em;margin:0;padding:0 2px;text-align:right;font-size:13px;line-height:1;font-weight:400;font-family:inherit;border-radius:2px;color:currentColor;background:#0000;transition:background .4s;user-select:text;-webkit-tap-highlight-color:rgba(0,0,0,0)}.netless-app-presentation-page-number-input:hover,.netless-app-presentation-page-number-input:focus,.netless-app-presentation-page-number-input:active{background:#fff;box-shadow:#63636333 0 2px 8px}.netless-app-presentation-readonly.netless-app-presentation-footer{display:none}.netless-app-presentation-wb-view{position:absolute;top:0;left:0;width:100%;height:100%;z-index:100;overflow:hidden;transition:opacity .2s}.netless-app-presentation-image{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.netless-app-presentation-image>img{max-width:100%;max-height:100%;object-fit:contain}.telebox-color-scheme-dark .netless-app-presentation-page-number-input{color:#a6a6a8}.telebox-color-scheme-dark .netless-app-presentation-page-number-input:active,.telebox-color-scheme-dark .netless-app-presentation-page-number-input:focus,.telebox-color-scheme-dark .netless-app-presentation-page-number-input:hover{color:#222}.telebox-color-scheme-dark .netless-app-presentation-footer{color:#a6a6a8;background:#2d2d33;border-top:none}.telebox-color-scheme-dark .netless-app-presentation-footer-btn:hover{background:#212126}.telebox-color-scheme-dark .netless-app-presentation-preview{background:#323232e6}.netless-app-presentation-scrollbar-container{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:101}.netless-app-presentation-scrollbar-container-x,.netless-app-presentation-scrollbar-container-y{position:absolute;pointer-events:none;display:flex;justify-content:center;box-sizing:border-box;padding:0}.netless-app-presentation-scrollbar-container-x{bottom:0;left:0;height:6px;width:100%;padding-right:6px}.netless-app-presentation-scrollbar-container-y{top:0;right:0;width:6px;height:100%;flex-direction:column;padding-bottom:6px}.netless-app-presentation-scrollbar-x,.netless-app-presentation-scrollbar-y{border-radius:2px;background-color:#1b1f4d4d;pointer-events:auto;cursor:default}.netless-app-presentation-scrollbar-x{height:6px}.netless-app-presentation-scrollbar-y{width:6px}\";\n\n// src/store.ts\nfunction noop() {\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || a && typeof a === \"object\" || typeof a === \"function\";\n}\nfunction readable(value, start = noop) {\n let stop;\n const subscribers = /* @__PURE__ */ new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) {\n for (const run of subscribers) {\n run(value);\n }\n }\n }\n }\n function subscribe(run) {\n subscribers.add(run);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run(value);\n return () => {\n subscribers.delete(run);\n if (subscribers.size === 0) {\n stop && stop();\n stop = void 0;\n }\n };\n }\n function reaction(run) {\n subscribers.add(run);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n return () => {\n subscribers.delete(run);\n if (subscribers.size === 0) {\n stop && stop();\n stop = void 0;\n }\n };\n }\n function dispose2(new_value) {\n if (new_value !== void 0) {\n set(new_value);\n }\n subscribers.clear();\n stop && stop();\n stop = void 0;\n }\n return {\n get value() {\n if (subscribers.size === 0) {\n stop = start(set) || noop;\n stop();\n stop = void 0;\n }\n return value;\n },\n subscribe,\n reaction,\n dispose: dispose2\n };\n}\n\n// src/scrollbar/Draggable.ts\nfunction makeDraggable(element, options) {\n let currentDragger = null;\n let originalMouseX = 0;\n let originalMouseY = 0;\n const { onDragEnd, onDrag, onDragStart, direction = \"xy\" } = options;\n const drag = (e, state) => {\n e.stopPropagation();\n if (!currentDragger)\n return;\n let transformedDragX = 0;\n let transformedDragY = 0;\n if (direction === \"x\") {\n transformedDragX = Math.round(e.pageX - originalMouseX);\n } else if (direction === \"y\") {\n transformedDragY = Math.round(e.pageY - originalMouseY);\n } else {\n transformedDragX = Math.round(e.pageX - originalMouseX);\n transformedDragY = Math.round(e.pageY - originalMouseY);\n }\n if (state === 3 /* END */) {\n onDragEnd == null ? void 0 : onDragEnd({ x: transformedDragX, y: transformedDragY });\n } else {\n onDrag == null ? void 0 : onDrag({ x: transformedDragX, y: transformedDragY });\n }\n };\n element.addEventListener(\"pointerdown\", bindDrag);\n function bindDrag(e) {\n currentDragger = e.target;\n e.stopPropagation();\n if (currentDragger !== element) {\n return;\n }\n originalMouseX = e.pageX;\n originalMouseY = e.pageY;\n element.addEventListener(\"pointermove\", drag);\n document.body.addEventListener(\"pointerup\", stopDrag);\n document.body.addEventListener(\"pointercancel\", stopDrag);\n element.setPointerCapture(e.pointerId);\n onDragStart == null ? void 0 : onDragStart();\n }\n function removeEventListener2() {\n currentDragger = null;\n element.removeEventListener(\"pointermove\", drag);\n document.body.removeEventListener(\"pointerup\", stopDrag);\n document.body.removeEventListener(\"pointercancel\", stopDrag);\n }\n function stopDrag(e) {\n if (!currentDragger)\n return;\n e.stopPropagation();\n drag(e, 3 /* END */);\n removeEventListener2();\n }\n function destroy() {\n stop();\n element.removeEventListener(\"pointerdown\", bindDrag);\n }\n function stop() {\n removeEventListener2();\n }\n return { destroy };\n}\n\n// src/scrollbar/index.ts\nvar import_debounce = __toESM(require_debounce());\nvar import_isNumber = __toESM(require_isNumber());\nvar Scrollbar = class {\n constructor(container, option, view) {\n this.namespace = \"netless-app-presentation\";\n this.scrollContainer = document.createElement(\"div\");\n this.option = {\n appId: \"\",\n getPageSize: () => {\n return {\n width: 0,\n height: 0\n };\n },\n getWritable: () => false,\n getOriginScale: () => 1,\n syncView: () => void 0\n };\n this.onCameraUpdated = (0, import_debounce.default)(() => {\n var _a, _b;\n if (this.readonly)\n return;\n const { scale, centerX, centerY } = this.view.camera;\n const originScale = this.option.getOriginScale();\n const { width: pageWidth, height: pageHeight } = this.option.getPageSize();\n const { width: viewWidth, height: viewHeight } = this.view.size;\n const originScaleX = viewWidth / pageWidth;\n const originScaleY = viewHeight / pageHeight;\n const ratioX = Math.min(Math.round(originScaleX / scale * 100) / 100, 1);\n const ratioY = Math.min(Math.round(originScaleY / scale * 100) / 100, 1);\n const scrollX = Math.round(centerX * originScaleX);\n const scrollY = Math.round(centerY * originScaleY);\n if (this.scrollbarX) {\n this.scrollbarX.style.width = `${ratioX * 100}%`;\n this.scrollbarX.style.display = ratioX === 1 ? \"none\" : \"block\";\n this.scrollbarX.style.transform = `translateX(${scrollX}px)`;\n }\n if (this.scrollbarY) {\n this.scrollbarY.style.height = `${ratioY * 100}%`;\n this.scrollbarY.style.display = ratioY === 1 ? \"none\" : \"block\";\n this.scrollbarY.style.transform = `translateY(${scrollY}px)`;\n }\n (_b = (_a = this.option.scrollbarEventCallback) == null ? void 0 : _a.onScrollCameraUpdated) == null ? void 0 : _b.call(_a, this.appId, originScale, scale);\n }, 50);\n this.onDragStart = () => {\n var _a, _b;\n const camera = this.view.camera;\n this.cameraCache = {\n centerX: camera.centerX,\n centerY: camera.centerY,\n scale: camera.scale\n };\n (_b = (_a = this.option.scrollbarEventCallback) == null ? void 0 : _a.onScrollbarDragStart) == null ? void 0 : _b.call(_a);\n };\n this.onDragX = (transformedDrag) => {\n var _a, _b;\n if (this.cameraCache) {\n const { x } = transformedDrag;\n const { width: pageWidth } = this.option.getPageSize();\n const { width: viewWidth } = this.view.size;\n const originScaleX = viewWidth / pageWidth;\n const { minX, maxX } = this.getScrollXRange(this.cameraCache);\n const scrollX = Math.round(x / originScaleX);\n let centerX = scrollX + this.cameraCache.centerX;\n if (centerX < minX) {\n centerX = minX;\n } else if (centerX > maxX) {\n centerX = maxX;\n }\n this.view.moveCamera({\n centerX,\n animationMode: \"immediately\"\n });\n (_b = (_a = this.option.scrollbarEventCallback) == null ? void 0 : _a.onScrollbarDragY) == null ? void 0 : _b.call(_a, centerX);\n }\n };\n this.onDragY = (transformedDrag) => {\n var _a, _b;\n if (this.cameraCache) {\n const { y } = transformedDrag;\n const { height: pageHeight } = this.option.getPageSize();\n const { height: viewHeight } = this.view.size;\n const originScaleY = viewHeight / pageHeight;\n const { minY, maxY } = this.getScrollYRange(this.cameraCache);\n const scrollY = Math.round(y / originScaleY);\n let centerY = scrollY + this.cameraCache.centerY;\n if (centerY < minY) {\n centerY = minY;\n } else if (centerY > maxY) {\n centerY = maxY;\n }\n this.view.moveCamera({\n centerY,\n animationMode: \"immediately\"\n });\n (_b = (_a = this.option.scrollbarEventCallback) == null ? void 0 : _a.onScrollbarDragY) == null ? void 0 : _b.call(_a, centerY);\n }\n };\n this.onDragEnd = () => {\n var _a, _b;\n this.cameraCache = void 0;\n this.option.syncView();\n (_b = (_a = this.option.scrollbarEventCallback) == null ? void 0 : _a.onScrollbarDragEnd) == null ? void 0 : _b.call(_a);\n };\n this.moveCamera = (camera) => {\n const { centerX, centerY, scale } = camera;\n const cacheCamera = this.view.camera;\n const _camera = {};\n if ((0, import_isNumber.default)(centerX)) {\n const { minX, maxX } = this.getScrollXRange(cacheCamera);\n let newCenterX = centerX;\n if (centerX < minX) {\n newCenterX = minX;\n } else if (centerX > maxX) {\n newCenterX = maxX;\n }\n _camera.centerX = newCenterX;\n }\n if ((0, import_isNumber.default)(centerY)) {\n const { minY, maxY } = this.getScrollYRange(cacheCamera);\n let newCenterY = centerY;\n if (centerY < minY) {\n newCenterY = minY;\n } else if (centerY > maxY) {\n newCenterY = maxY;\n }\n _camera.centerY = newCenterY;\n }\n if ((0, import_isNumber.default)(scale)) {\n let newScale = scale;\n const originScale = this.option.getOriginScale();\n if (scale < originScale) {\n newScale = originScale;\n }\n _camera.scale = newScale;\n }\n this.view.moveCamera(__spreadProps(__spreadValues({}, _camera), {\n animationMode: \"immediately\"\n }));\n this.option.syncView();\n };\n this.scrollContainer.className = this.c(\"scrollbar-container\");\n this.container = container;\n this.option = option;\n this.appId = option.appId;\n this.readonly = option.readonly || false;\n this.view = view;\n this.init();\n }\n c(className) {\n return `${this.namespace}-${className}`;\n }\n setReadonly(bol) {\n this.readonly = bol;\n this.destroy();\n if (!this.readonly) {\n this.init();\n }\n }\n getScrollXRange(camera) {\n const { width: pageWidth } = this.option.getPageSize();\n const { width: viewWidth } = this.view.size;\n const originScaleX = viewWidth / pageWidth;\n const scale = camera.scale;\n const ratio = Math.min(Math.round(originScaleX / scale * 100) / 100, 1);\n const scrollWidth = pageWidth * (1 - ratio);\n const minX = -scrollWidth / 2;\n const maxX = scrollWidth / 2;\n return { minX, maxX };\n }\n getScrollYRange(camera) {\n const { height: pageHeight } = this.option.getPageSize();\n const { height: viewHeight } = this.view.size;\n const originScaleY = viewHeight / pageHeight;\n const scale = camera.scale;\n const ratio = Math.min(Math.round(originScaleY / scale * 100) / 100, 1);\n const scrollHeight = pageHeight * (1 - ratio);\n const minY = -scrollHeight / 2;\n const maxY = scrollHeight / 2;\n return { minY, maxY };\n }\n init() {\n this.scrollbarX = document.createElement(\"div\");\n this.scrollbarX.classList.add(this.c(\"scrollbar-x\"));\n if (this.option.getWritable()) {\n this.draggableX = makeDraggable(this.scrollbarX, {\n direction: \"x\",\n onDrag: this.onDragX,\n onDragEnd: this.onDragEnd,\n onDragStart: this.onDragStart\n });\n }\n Object.assign(this.scrollbarX.style, {\n width: \"100%\",\n display: \"none\"\n });\n this.scrollbarContainerX = document.createElement(\"div\");\n this.scrollbarContainerX.classList.add(this.c(\"scrollbar-container-x\"));\n this.scrollbarContainerX.appendChild(this.scrollbarX);\n this.scrollbarY = document.createElement(\"div\");\n this.scrollbarY.classList.add(this.c(\"scrollbar-y\"));\n if (this.option.getWritable()) {\n this.draggableY = makeDraggable(this.scrollbarY, {\n direction: \"y\",\n onDrag: this.onDragY,\n onDragEnd: this.onDragEnd,\n onDragStart: this.onDragStart\n });\n }\n Object.assign(this.scrollbarY.style, {\n height: \"100%\",\n display: \"none\"\n });\n this.scrollbarContainerY = document.createElement(\"div\");\n this.scrollbarContainerY.classList.add(this.c(\"scrollbar-container-y\"));\n this.scrollbarContainerY.appendChild(this.scrollbarY);\n this.scrollContainer.append(this.scrollbarContainerX, this.scrollbarContainerY);\n this.container.appendChild(this.scrollContainer);\n this.view.callbacks.on(\"onCameraUpdated\", this.onCameraUpdated);\n this.onCameraUpdated();\n }\n destroy() {\n this.view.callbacks.off(\"onCameraUpdated\", this.onCameraUpdated);\n if (this.scrollbarX && this.scrollbarContainerX) {\n this.scrollbarContainerX.removeChild(this.scrollbarX);\n this.scrollbarX.remove();\n this.scrollbarContainerX.remove();\n this.scrollbarX = void 0;\n }\n if (this.scrollbarY && this.scrollbarContainerY) {\n this.scrollbarContainerY.removeChild(this.scrollbarY);\n this.scrollbarY.remove();\n this.scrollbarContainerY.remove();\n this.scrollbarY = void 0;\n }\n if (this.draggableX) {\n this.draggableX.destroy();\n this.draggableX = void 0;\n }\n if (this.draggableY) {\n this.draggableY.destroy();\n this.draggableY = void 0;\n }\n }\n};\n\n// src/app-presentation.ts\nvar import_debounce2 = __toESM(require_debounce());\nvar emptySceneName = \"$$empty$$\";\nvar ppt2page = (ppt, name) => ppt ? { width: ppt.width, height: ppt.height, src: ppt.src, thumbnail: ppt.previewURL, name } : null;\nvar createLogger = (room) => {\n if (room && room.logger) {\n return (...args) => room.logger.info(...args);\n } else {\n return (...args) => console.log(...args);\n }\n};\nvar scenesEqual = (scenes1, scenes2) => {\n if (!scenes1 || !scenes2) {\n return false;\n }\n if (scenes1.length !== scenes2.length)\n return false;\n return scenes1.every((scene, index) => {\n var _a, _b, _c, _d, _e, _f;\n const scene2 = scenes2[index];\n return scene.name === scene2.name && ((_a = scene.ppt) == null ? void 0 : _a.width) === ((_b = scene2.ppt) == null ? void 0 : _b.width) && ((_c = scene.ppt) == null ? void 0 : _c.height) === ((_d = scene2.ppt) == null ? void 0 : _d.height) && ((_e = scene.ppt) == null ? void 0 : _e.src) === ((_f = scene2.ppt) == null ? void 0 : _f.src);\n });\n};\nvar NetlessAppPresentation = {\n kind: \"Presentation\",\n setup(context) {\n var _a, _b, _c;\n const view = context.getView();\n if (!view)\n throw new Error(\"[Presentation]: no whiteboard view, make sure you have added options.scenePath in addApp()\");\n const pages = (_a = context.getScenes()) == null ? void 0 : _a.map(({ ppt, name }) => ppt2page(ppt, name)).filter(Boolean);\n if (!pages || pages.length === 0)\n throw new Error(\"[Presentation]: empty scenes, make sure you have added options.scenes in addApp()\");\n if (pages[0].src.startsWith(\"ppt\"))\n throw new Error(\"[Presentation]: legacy dynamic PPT is unsupported, please use the projector converter and @netless/slide to render it\");\n const scenePath = context.getInitScenePath();\n const options = context.getAppOptions() || {};\n let maxCameraScale = (_b = options.maxCameraScale) != null ? _b : 3;\n if (!(Number.isFinite(maxCameraScale) && maxCameraScale > 0)) {\n console.warn(`[Presentation] maxCameraScale should be a positive number, got ${options.maxCameraScale}`);\n maxCameraScale = 3;\n }\n const log = options.log || createLogger(context.getRoom());\n log(`[Presentation] new ${context.appId}`);\n const dispose2 = disposableStore();\n dispose2.add(() => log(`[Presentation] dispose ${context.appId}`));\n const view$$ = context.createStorage(\"view\", { uid: \"\", originX: 0, originY: 0, width: 0, height: 0 });\n const _addScenePathListener = (name, listener) => {\n const windowManger = context.manager.windowManger;\n windowManger.emitter.on(name, listener);\n return () => windowManger == null ? void 0 : windowManger.emitter.off(name, listener);\n };\n const getPageIndex = (view2) => {\n const focusScenePath = view2.focusScenePath;\n const name = focusScenePath == null ? void 0 : focusScenePath.split(\"/\").pop();\n let _pageIndex = pages.findIndex((page, index) => {\n var _a2;\n const n = (_a2 = page.name) != null ? _a2 : String(index + 1);\n return n === name;\n });\n if (_pageIndex === -1) {\n _pageIndex = 0;\n }\n return _pageIndex;\n };\n let pageIndex = getPageIndex(view);\n const pageIndex$ = readable(pageIndex, (set) => {\n set(pageIndex);\n return _addScenePathListener(\"onAppScenePathChange\", (payload) => {\n const { appId } = payload;\n if (appId === context.appId) {\n const _pageIndex = getPageIndex(payload.view);\n set(_pageIndex);\n }\n });\n });\n dispose2.add(() => {\n pageIndex$.dispose();\n });\n if (context.isAddApp) {\n if (pages.length > 100)\n console.warn(`[Presentation]: too many pages (${pages.length}), may cause performance issues`);\n let redirectResolve = void 0;\n const room2 = context.getRoom();\n if (room2 && room2.isWritable) {\n const scenes = room2.entireScenes()[scenePath];\n if (pageIndex$.value < 0 || pageIndex$.value >= pages.length) {\n throw new Error(`[Presentation] Invalid page index: ${pageIndex$.value}, scenes length: ${pages.length}`);\n }\n new Promise((resolve) => {\n const { name, ppt } = scenes[pageIndex$.value];\n redirectResolve = resolve;\n const _scenes = pages.map((p, index) => {\n var _a2;\n return {\n name: (_a2 = p.name) != null ? _a2 : String(index + 1),\n ppt: { width: p.width, height: p.height, src: p.src }\n };\n });\n if (!scenesEqual(scenes, _scenes)) {\n room2.removeScenes(scenePath);\n room2.putScenes(scenePath, _scenes);\n }\n if (name === _scenes[pageIndex$.value].name && !ppt) {\n context.addPage({ scene: { name: emptySceneName } }).then(() => {\n log(`[Presentation] setup setScenePath ${scenePath}/${emptySceneName}`);\n context.setScenePath(`${scenePath}/${emptySceneName}`).then(() => {\n redirectResolve && redirectResolve(true);\n });\n });\n } else {\n redirectResolve && redirectResolve(false);\n }\n }).then(async (bol) => {\n await syncPage(pageIndex$.value, room2.logger);\n if (bol) {\n log(`[Presentation] setup removeScenes ${scenePath}/${emptySceneName}`);\n room2.removeScenes(`${scenePath}/${emptySceneName}`);\n }\n });\n }\n }\n const me = ((_c = context.getRoom()) == null ? void 0 : _c.uid) || context.getDisplayer().observerId + \"\";\n let throttleSyncView = 0;\n const syncPage = async (index, logger) => {\n var _a2;\n if (!context.getIsWritable())\n return;\n const scenes = context.getDisplayer().entireScenes()[scenePath];\n if (!scenes)\n return;\n const p = pages[index];\n const name = (_a2 = p.name) != null ? _a2 : String(index + 1);\n if (!scenes.some((scene) => scene.name === name)) {\n await context.addPage({ scene: { name, ppt: { width: p.width, height: p.height, src: p.src } } });\n }\n if (logger) {\n logger.info(`[Presentation] syncPage ${scenePath}/${name}`);\n }\n await context.setScenePath(`${scenePath}/${name}`);\n };\n const jumpPage = (index) => {\n var _a2;\n if (!context.getIsWritable()) {\n console.warn(\"[Presentation]: no permission, make sure you have test room.isWritable\");\n return false;\n }\n if (!(0 <= index && index < pages.length)) {\n console.warn(`[Presentation]: page ${index + 1} out of bounds [1, ${pages.length}]`);\n return false;\n }\n const scenes = context.getDisplayer().entireScenes()[scenePath];\n if (!scenes) {\n console.warn(`[Presentation]: no scenes found at ${scenePath}, make sure you have added options.scenePath in addApp()`);\n return false;\n }\n const p = pages[index];\n const name = (_a2 = p.name) != null ? _a2 : String(index + 1);\n if (!scenes.some((scene) => scene.name === name)) {\n context.addPage({ scene: { name, ppt: { width: p.width, height: p.height, src: p.src } } });\n }\n syncPage(index);\n return true;\n };\n const prevPage = () => jumpPage(pageIndex$.value - 1);\n const nextPage = () => jumpPage(pageIndex$.value + 1);\n const pageState = () => ({ index: pageIndex$.value, length: pages.length });\n const scaleDocsToFit = () => {\n const { width, height } = app.page() || {};\n if (width && height) {\n view.moveCameraToContain({\n originX: -width / 2,\n originY: -height / 2,\n width,\n height,\n animationMode: \"immediately\"\n });\n const maxScale = view.camera.scale * (options.disableCameraTransform ? 1 : maxCameraScale);\n const minScale = view.camera.scale;\n view.setCameraBound({\n damping: 1,\n maxContentMode: () => maxScale,\n minContentMode: () => minScale,\n centerX: 0,\n centerY: 0,\n width,\n height\n });\n syncViewFromRemote(true);\n }\n };\n const syncView = () => {\n if (context.getIsWritable()) {\n if (options.debounceSync) {\n clearTimeout(throttleSyncView);\n throttleSyncView = 0;\n }\n if (throttleSyncView > 0)\n return;\n const { width, height } = app.page() || {};\n if (width && height) {\n throttleSyncView = setTimeout(() => {\n throttleSyncView = 0;\n const { camera, size } = view;\n const fixedW = Math.min(size.width, size.height * width / height);\n const fixedH = Math.min(size.height, size.width * height / width);\n const w = fixedW / camera.scale;\n const h = fixedH / camera.scale;\n const x = camera.centerX - w / 2;\n const y = camera.centerY - h / 2;\n view$$.setState({ uid: me, originX: x, originY: y, width: w, height: h });\n }, 50);\n }\n }\n };\n dispose2.add(() => {\n clearTimeout(throttleSyncView);\n throttleSyncView = 0;\n });\n const syncViewFromRemote = (force = false, animate = false) => {\n const { uid, originX, originY, width, height } = view$$.state;\n if ((force || uid !== me) && width > 0 && height > 0) {\n view.moveCameraToContain({\n originX,\n originY,\n width,\n height,\n animationMode: animate ? \"continuous\" : \"immediately\"\n });\n }\n };\n dispose2.add(view$$.addStateChangedListener(() => syncViewFromRemote(false, true)));\n const getPageSize = () => {\n const { width, height } = app.page() || {};\n return { width: width || 0, height: height || 0 };\n };\n const box = context.getBox();\n const app = dispose2.add(createPresentation(box, pages, jumpPage, pageIndex$, view, options.thumbnail, options.useClipView));\n app.contentDOM.dataset.appPresentationVersion = \"0.1.10\";\n app.scaleDocsToFit = scaleDocsToFit;\n app.log = log;\n if (options.justDocsViewReadonly) {\n app.setDocsViewReadonly(true);\n }\n const room = context.getRoom();\n const goToPageByClick = () => {\n var _a2, _b2, _c2, _d;\n const currentApplianceName = (_d = (_c2 = (_b2 = (_a2 = context.getRoom()) == null ? void 0 : _a2.state) == null ? void 0 : _b2.memberState) == null ? void 0 : _c2.currentApplianceName) != null ? _d : \"\";\n if (!app.readonly && currentApplianceName === \"clicker\") {\n nextPage();\n }\n };\n if (room && options.goToPageByClick && app.whiteboardDOM) {\n dispose2.make(() => {\n app.whiteboardDOM.addEventListener(\"click\", goToPageByClick);\n return () => app.whiteboardDOM.removeEventListener(\"click\", goToPageByClick);\n });\n }\n context.mountView(app.whiteboardDOM);\n if (options.disableCameraTransform) {\n view.disableCameraTransform = true;\n }\n scaleDocsToFit();\n dispose2.make(() => {\n view.callbacks.on(\"onSizeUpdated\", scaleDocsToFit);\n return () => view.callbacks.off(\"onSizeUpdated\", scaleDocsToFit);\n });\n if (options.viewport && context.isAddApp && app.page()) {\n const page = app.page();\n const viewport = typeof options.viewport === \"function\" ? options.viewport(page) : options.viewport;\n const fix = (i, x) => i == 0 ? i : i <= 1 ? i * x : i;\n view$$.setState({\n uid: me,\n originX: fix(viewport.x, page.width) - page.width / 2,\n originY: fix(viewport.y, page.height) - page.height / 2,\n width: fix(viewport.width, page.width),\n height: fix(viewport.height, page.height)\n });\n }\n dispose2.make(() => {\n view.callbacks.on(\"onCameraUpdatedByDevice\", syncView);\n return () => view.callbacks.off(\"onCameraUpdatedByDevice\", syncView);\n });\n syncViewFromRemote(true);\n dispose2.add(context.emitter.on(\"writableChange\", (isWritable) => {\n app.setReadonly(!isWritable);\n }));\n const getOriginScale = () => {\n const { size } = view;\n const { width, height } = getPageSize();\n return Math.min(size.height / height, size.width / width);\n };\n const getScale = () => {\n return view.camera.scale;\n };\n const screenshotCurrentPageAsync = async (_context, _width, _height) => {\n var _a2, _b2;\n (_b2 = (_a2 = room == null ? void 0 : room.calibrationTimestamp) == null ? void 0 : _a2.toString()) != null ? _b2 : Date.now().toString();\n const currentPage = pages[pageIndex$.value];\n if (!currentPage) {\n throw new Error(\"[Presentation]: current page not found\");\n }\n const { width, height, src } = currentPage;\n const img = document.createElement(\"img\");\n img.width = width;\n img.height = height;\n img.crossOrigin = \"Anonymous\";\n await new Promise((resolve) => {\n img.onload = resolve;\n img.src = src;\n });\n _context.drawImage(img, 0, 0, width, height, 0, 0, _width || width, _height || height);\n const currentScenePath = view.focusScenePath;\n if (!currentScenePath) {\n throw new Error(\"[Presentation]: current scene path not found\");\n }\n const windowManger = context.getWindowManager();\n if (windowManger._appliancePlugin) {\n await windowManger._appliancePlugin.screenshotToCanvasAsync(_context, currentScenePath, _width || width, _height || height, {\n centerX: 0,\n centerY: 0,\n scale: _width && _height ? Math.min(_width / width, _height / height) : 1\n });\n } else {\n await view.screenshotToCanvasAsync(_context, currentScenePath, _width || width, _height || height, {\n centerX: 0,\n centerY: 0,\n scale: _width && _height ? Math.min(_width / width, _height / height) : 1\n });\n }\n };\n let scrollbar;\n if (options.useScrollbar) {\n dispose2.make(() => {\n scrollbar = new Scrollbar(app.contentDOM, {\n appId: context.appId,\n getPageSize,\n getOriginScale,\n syncView,\n getWritable: () => context.getIsWritable(),\n scrollbarEventCallback: options.scrollbarEventCallback\n }, view);\n return () => scrollbar == null ? void 0 : scrollbar.destroy();\n });\n }\n const moveCamera = (camera) => {\n if (context.getIsWritable() && scrollbar) {\n if (!scrollbar) {\n throw new Error(\"[Presentation]: moveCamera must be called when appOptions: useScrollbar is true\");\n }\n scrollbar.moveCamera(camera);\n return;\n }\n throw new Error(\"[Presentation]: moveCamera must be called in writable room\");\n };\n context.emitter.on(\"destroy\", () => dispose2());\n const reportProgress = (progress, result) => {\n window.postMessage({ type: \"@netless/_result_save_pdf_\", appId: context.appId, progress, result }, \"*\");\n return result;\n };\n const base64url = async (url) => {\n try {\n const a = new URL(url);\n a.searchParams.set(\"t\", Date.now().toString());\n url = a.toString();\n } catch (e) {\n }\n const data = await fetch(url);\n if (!data.ok)\n throw new Error(`[Presentation]: failed to fetch ${url} - ${await data.text()}`);\n const blob = await data.blob();\n const reader = new FileReader();\n return new Promise((resolve, reject) => {\n reader.onload = () => resolve(reader.result);\n reader.onerror = () => reject(reader.error);\n reader.readAsDataURL(blob);\n });\n };\n const toPdf = async () => {\n var _a2;\n const MAX = 1920;\n const firstPage = pages[0];\n const { width, height } = firstPage;\n let pdfWidth = Math.floor(width), pdfHeight = Math.floor(height);\n if (pdfWidth > MAX) {\n pdfWidth = MAX;\n pdfHeight = Math.floor(height * pdfWidth / width);\n }\n if (pdfHeight > MAX) {\n pdfHeight = MAX;\n pdfWidth = Math.floor(width * pdfHeight / height);\n }\n const scenes = context.getDisplayer().entireScenes()[scenePath];\n const stage_canvas = document.createElement(\"canvas\");\n stage_canvas.width = pdfWidth;\n stage_canvas.height = pdfHeight;\n const stage = stage_canvas.getContext(\"2d\");\n const wb_canvas = document.createElement(\"canvas\");\n wb_canvas.width = pdfWidth;\n wb_canvas.height = pdfHeight;\n const wb = wb_canvas.getContext(\"2d\");\n if (!wb || !stage)\n return reportProgress(100, null);\n const { jsPDF } = await import('jspdf');\n const pdf = new jsPDF({\n format: [firstPage.width, firstPage.height],\n orientation: firstPage.width > firstPage.height ? \"l\" : \"p\",\n compress: true\n });\n for (let index = 0; index < pages.length; ++index) {\n const p = pages[index];\n const { width: width2, height: height2, src } = p;\n const url = await base64url(src);\n const img = document.createElement(\"img\");\n await new Promise((resolve) => {\n img.onload = resolve;\n img.src = url;\n });\n stage.drawImage(img, 0, 0);\n wb.clearRect(0, 0, pdfWidth, pdfHeight);\n const name = (_a2 = p.name) != null ? _a2 : String(index + 1);\n if (scenes.some((scene) => scene.name == name)) {\n const camera = { centerX: 0, centerY: 0, scale: Math.min(wb_canvas.width / width2, wb_canvas.height / height2) };\n const sPath = `${scenePath}/${name}`;\n const windowManger = context.getWindowManager();\n if (windowManger._appliancePlugin) {\n await windowManger._appliancePlugin.screenshotToCanvasAsync(wb, sPath, wb_canvas.width, wb_canvas.height, camera);\n } else {\n await view.screenshotToCanvasAsync(\n wb,\n sPath,\n wb_canvas.width,\n wb_canvas.height,\n camera\n );\n }\n try {\n const wb_url = wb_canvas.toDataURL(\"image/png\");\n const wb_img = document.createElement(\"img\");\n await new Promise((resolve) => {\n wb_img.onload = resolve;\n wb_img.src = wb_url;\n });\n stage.drawImage(wb_img, 0, 0, pdfWidth, pdfHeight);\n } catch (err) {\n console.warn(err);\n }\n }\n const output = stage_canvas.toDataURL(\"image/jpeg\", 0.6);\n if (index > 0)\n pdf.addPage();\n pdf.addImage(output, \"JPEG\", 0, 0, pdfWidth, pdfHeight, \"\", \"FAST\");\n stage.clearRect(0, 0, pdfWidth, pdfHeight);\n const progress = Math.ceil((index + 1) / pages.length * 100);\n if (progress < 100)\n reportProgress(progress, null);\n }\n const data = pdf.output(\"arraybuffer\");\n const title = box.title;\n return reportProgress(100, { pdf: data, title });\n };\n dispose2.add(listen(window, \"message\", (ev) => {\n if (ev.data && ev.data.type == \"@netless/_request_save_pdf_\" && ev.data.appId == context.appId) {\n toPdf().catch((err) => {\n console.warn(err);\n reportProgress(100, null);\n });\n }\n }));\n const setDocsViewReadonly = (bol) => {\n app.setDocsViewReadonly(bol);\n };\n const setReadonly = (bol) => {\n app.setReadonly(bol);\n if (options.goToPageByClick) ;\n if (scrollbar) {\n scrollbar.setReadonly(bol);\n }\n };\n const controller = { app, view, context, jumpPage, prevPage, nextPage, pageState, toPdf, log, setDocsViewReadonly, setReadonly, moveCamera, getOriginScale, getScale, getPageSize, screenshotCurrentPageAsync };\n dispose2.add(listen(window, \"message\", (ev) => {\n if (ev.data === \"@netless/_presentation_\") {\n if (typeof window !== \"undefined\")\n dispose2.make(() => {\n const debug = window._presentation_ || (window._presentation_ = /* @__PURE__ */ new Set());\n debug.add(controller);\n return () => debug.delete(controller);\n });\n console.log(controller);\n }\n }));\n return controller;\n }\n};\nvar AppPresentation = class extends Presentation {\n constructor(config) {\n super(config);\n this.jumpPage = config.jumpPage;\n }\n updateImage() {\n super.updateImage();\n }\n onNewPageIndex(index, origin) {\n if (origin === \"keydown\" && this.box && !this.box.focus)\n return;\n if (this.log)\n this.log(\"[Presentation] user navigate to\", index + 1, `(${origin})`);\n if (0 <= index && index < this.pages.length) {\n this.jumpPage(index);\n } else {\n console.warn(`[Presentation]: page index ${index} out of bounds [0, ${this.pages.length - 1}]`);\n }\n }\n};\nfunction createPresentation(box, pages, jumpPage, pageIndex$, view, thumbnail, useClipView) {\n box.mountStyles(style_default);\n const app = new AppPresentation({ pages, readonly: box.readonly, jumpPage, thumbnail });\n app.box = box;\n box.mountContent(app.contentDOM);\n box.mountFooter(app.footerDOM);\n app.dispose.add(pageIndex$.subscribe((pageIndex) => {\n app.setPageIndex(pageIndex);\n }));\n if (useClipView && view) {\n const onCameraUpdatedEffectForMaskView = (0, import_debounce2.default)(() => {\n const { width: pageWidth, height: pageHeight } = app.page() || {};\n if (!pageWidth || !pageHeight) {\n return;\n }\n const { scale } = view.camera;\n const { width, height } = view.size;\n const pageRatioX = Math.round((1 - pageWidth * scale / width) / 2 * 100);\n const pageRatioY = Math.round((1 - pageHeight * scale / height) / 2 * 100);\n app.whiteboardDOM.style.clipPath = `inset(${pageRatioY}% ${pageRatioX}%)`;\n }, 50);\n onCameraUpdatedEffectForMaskView();\n const onCameraUpdatedEffect = () => {\n view.callbacks.on(\"onSizeUpdated\", onCameraUpdatedEffectForMaskView);\n view.callbacks.on(\"onCameraUpdated\", onCameraUpdatedEffectForMaskView);\n return () => {\n view.callbacks.off(\"onCameraUpdated\", onCameraUpdatedEffectForMaskView);\n view.callbacks.off(\"onSizeUpdated\", onCameraUpdatedEffectForMaskView);\n };\n };\n app.dispose.make(onCameraUpdatedEffect);\n }\n return app;\n}\nvar install = (register, options = {}) => {\n let app = NetlessAppPresentation;\n if (options.as) {\n app = Object.assign({}, app, { kind: options.as });\n }\n return register({ kind: app.kind, src: app, appOptions: options.appOptions });\n};\n\n// src/index.ts\nvar version = \"0.1.10\";\n\nexport { NetlessAppPresentation, Presentation, Scrollbar, NetlessAppPresentation as default, install, version };\n//# sourceMappingURL=index.mjs.map\n"],"names":["_Preload"],"mappings":"AAAA,IAAI,WAAW,OAAO;AACtB,IAAI,YAAY,OAAO;AACvB,IAAI,aAAa,OAAO;AACxB,IAAI,mBAAmB,OAAO;AAC9B,IAAI,oBAAoB,OAAO;AAC/B,IAAI,oBAAoB,OAAO;AAC/B,IAAI,sBAAsB,OAAO;AACjC,IAAI,eAAe,OAAO;AAC1B,IAAI,eAAe,OAAO,UAAU;AACpC,IAAI,eAAe,OAAO,UAAU;AACpC,IAAI,kBAAkB,CAAC,KAAK,KAAK,UAAU,OAAO,MAAM,UAAU,KAAK,KAAK,EAAE,YAAY,MAAM,cAAc,MAAM,UAAU,MAAM,MAAO,CAAA,IAAI,IAAI,OAAO;AAC1J,IAAI,iBAAiB,CAAC,GAAG,MAAM;AAC7B,WAAS,QAAQ,MAAM,IAAI,CAAA;AACzB,QAAI,aAAa,KAAK,GAAG,IAAI;AAC3B,sBAAgB,GAAG,MAAM,EAAE,KAAK;AACpC,MAAI;AACF,aAAS,QAAQ,oBAAoB,CAAC,GAAG;AACvC,UAAI,aAAa,KAAK,GAAG,IAAI;AAC3B,wBAAgB,GAAG,MAAM,EAAE,KAAK;AAAA,IACnC;AACH,SAAO;AACT;AACA,IAAI,gBAAgB,CAAC,GAAG,MAAM,WAAW,GAAG,kBAAkB,CAAC,CAAC;AAChE,IAAI,aAAa,CAAC,IAAI,QAAQ,SAAS,YAAY;AACjD,SAAO,QAAO,GAAI,GAAG,kBAAkB,EAAE,EAAE,MAAM,MAAM,EAAE,SAAS,CAAA,KAAM,SAAS,GAAG,GAAG,IAAI;AAC7F;AACA,IAAI,cAAc,CAAC,IAAI,MAAM,QAAQ,SAAS;AAC5C,MAAI,QAAQ,OAAO,SAAS,YAAY,OAAO,SAAS,YAAY;AAClE,aAAS,OAAO,kBAAkB,IAAI;AACpC,UAAI,CAAC,aAAa,KAAK,IAAI,GAAG,KAAK,QAAQ;AACzC,kBAAU,IAAI,KAAK,EAAE,KAAK,MAAM,KAAK,MAAM,YAAY,EAAE,OAAO,iBAAiB,MAAM,GAAG,MAAM,KAAK,WAAU,CAAE;AAAA,EACtH;AACD,SAAO;AACT;AACA,IAAI,UAAU,CAAC,KAAK,YAAY,YAAY,SAAS,OAAO,OAAO,SAAS,aAAa,GAAG,CAAC,IAAI,CAAE,GAAE;AAAA,EAKnG,CAAC,OAAO,CAAC,IAAI,aAAa,UAAU,QAAQ,WAAW,EAAE,OAAO,KAAK,YAAY,KAAI,CAAE,IAAI;AAAA,EAC3F;AACF;AAGA,IAAI,mBAAmB,WAAW;AAAA,EAChC,oEAAoE,SAAS,QAAQ;AACnF,aAAS,SAAS,OAAO;AACvB,UAAI,OAAO,OAAO;AAClB,aAAO,SAAS,SAAS,QAAQ,YAAY,QAAQ;AAAA,IACtD;AACD,WAAO,UAAU;AAAA,EAClB;AACH,CAAC;AAGD,IAAI,qBAAqB,WAAW;AAAA,EAClC,uEAAuE,SAAS,QAAQ;AACtF,QAAI,aAAa,OAAO,UAAU,YAAY,UAAU,OAAO,WAAW,UAAU;AACpF,WAAO,UAAU;AAAA,EAClB;AACH,CAAC;AAGD,IAAI,eAAe,WAAW;AAAA,EAC5B,iEAAiE,SAAS,QAAQ;AAChF,QAAI,aAAa;AACjB,QAAI,WAAW,OAAO,QAAQ,YAAY,QAAQ,KAAK,WAAW,UAAU;AAC5E,QAAI,OAAO,cAAc,YAAY,SAAS,aAAa,EAAC;AAC5D,WAAO,UAAU;AAAA,EAClB;AACH,CAAC;AAGD,IAAI,cAAc,WAAW;AAAA,EAC3B,+DAA+D,SAAS,QAAQ;AAC9E,QAAI,OAAO;AACX,QAAI,MAAM,WAAW;AACnB,aAAO,KAAK,KAAK;IACvB;AACI,WAAO,UAAU;AAAA,EAClB;AACH,CAAC;AAGD,IAAI,0BAA0B,WAAW;AAAA,EACvC,4EAA4E,SAAS,QAAQ;AAC3F,QAAI,eAAe;AACnB,aAAS,gBAAgB,QAAQ;AAC/B,UAAI,QAAQ,OAAO;AACnB,aAAO,WAAW,aAAa,KAAK,OAAO,OAAO,KAAK,CAAC,GAAG;AAAA,MAC1D;AACD,aAAO;AAAA,IACR;AACD,WAAO,UAAU;AAAA,EAClB;AACH,CAAC;AAGD,IAAI,mBAAmB,WAAW;AAAA,EAChC,qEAAqE,SAAS,QAAQ;AACpF,QAAI,kBAAkB;AACtB,QAAI,cAAc;AAClB,aAAS,SAAS,QAAQ;AACxB,aAAO,SAAS,OAAO,MAAM,GAAG,gBAAgB,MAAM,IAAI,CAAC,EAAE,QAAQ,aAAa,EAAE,IAAI;AAAA,IACzF;AACD,WAAO,UAAU;AAAA,EAClB;AACH,CAAC;AAGD,IAAI,iBAAiB,WAAW;AAAA,EAC9B,mEAAmE,SAAS,QAAQ;AAClF,QAAI,OAAO;AACX,QAAI,UAAU,KAAK;AACnB,WAAO,UAAU;AAAA,EAClB;AACH,CAAC;AAGD,IAAI,oBAAoB,WAAW;AAAA,EACjC,sEAAsE,SAAS,QAAQ;AACrF,QAAI,UAAU;AACd,QAAI,cAAc,OAAO;AACzB,QAAI,iBAAiB,YAAY;AACjC,QAAI,uBAAuB,YAAY;AACvC,QAAI,iBAAiB,UAAU,QAAQ,cAAc;AACrD,aAAS,UAAU,OAAO;AACxB,UAAI,QAAQ,eAAe,KAAK,OAAO,cAAc,GAAG,MAAM,MAAM;AACpE,UAAI;AACF,cAAM,kBAAkB;AACxB,YAAI,WAAW;AAAA,MAChB,SAAQ,GAAP;AAAA,MACD;AACD,UAAI,SAAS,qBAAqB,KAAK,KAAK;AAC5C,UAAI,UAAU;AACZ,YAAI,OAAO;AACT,gBAAM,kBAAkB;AAAA,QAClC,OAAe;AACL,iBAAO,MAAM;AAAA,QACd;AAAA,MACF;AACD,aAAO;AAAA,IACR;AACD,WAAO,UAAU;AAAA,EAClB;AACH,CAAC;AAGD,IAAI,yBAAyB,WAAW;AAAA,EACtC,2EAA2E,SAAS,QAAQ;AAC1F,QAAI,cAAc,OAAO;AACzB,QAAI,uBAAuB,YAAY;AACvC,aAAS,eAAe,OAAO;AAC7B,aAAO,qBAAqB,KAAK,KAAK;AAAA,IACvC;AACD,WAAO,UAAU;AAAA,EAClB;AACH,CAAC;AAGD,IAAI,qBAAqB,WAAW;AAAA,EAClC,uEAAuE,SAAS,QAAQ;AACtF,QAAI,UAAU;AACd,QAAI,YAAY;AAChB,QAAI,iBAAiB;AACrB,QAAI,UAAU;AACd,QAAI,eAAe;AACnB,QAAI,iBAAiB,UAAU,QAAQ,cAAc;AACrD,aAAS,WAAW,OAAO;AACzB,UAAI,SAAS,MAAM;AACjB,eAAO,UAAU,SAAS,eAAe;AAAA,MAC1C;AACD,aAAO,kBAAkB,kBAAkB,OAAO,KAAK,IAAI,UAAU,KAAK,IAAI,eAAe,KAAK;AAAA,IACnG;AACD,WAAO,UAAU;AAAA,EAClB;AACH,CAAC;AAGD,IAAI,uBAAuB,WAAW;AAAA,EACpC,wEAAwE,SAAS,QAAQ;AACvF,aAAS,aAAa,OAAO;AAC3B,aAAO,SAAS,QAAQ,OAAO,SAAS;AAAA,IACzC;AACD,WAAO,UAAU;AAAA,EAClB;AACH,CAAC;AAGD,IAAI,mBAAmB,WAAW;AAAA,EAChC,oEAAoE,SAAS,QAAQ;AACnF,QAAI,aAAa;AACjB,QAAI,eAAe;AACnB,QAAI,YAAY;AAChB,aAAS,SAAS,OAAO;AACvB,aAAO,OAAO,SAAS,YAAY,aAAa,KAAK,KAAK,WAAW,KAAK,KAAK;AAAA,IAChF;AACD,WAAO,UAAU;AAAA,EAClB;AACH,CAAC;AAGD,IAAI,mBAAmB,WAAW;AAAA,EAChC,oEAAoE,SAAS,QAAQ;AACnF,QAAI,WAAW;AACf,QAAI,WAAW;AACf,QAAI,WAAW;AACf,QAAI,MAAM,IAAI;AACd,QAAI,aAAa;AACjB,QAAI,aAAa;AACjB,QAAI,YAAY;AAChB,QAAI,eAAe;AACnB,aAAS,SAAS,OAAO;AACvB,UAAI,OAAO,SAAS,UAAU;AAC5B,eAAO;AAAA,MACR;AACD,UAAI,SAAS,KAAK,GAAG;AACnB,eAAO;AAAA,MACR;AACD,UAAI,SAAS,KAAK,GAAG;AACnB,YAAI,QAAQ,OAAO,MAAM,WAAW,aAAa,MAAM,QAAS,IAAG;AACnE,gBAAQ,SAAS,KAAK,IAAI,QAAQ,KAAK;AAAA,MACxC;AACD,UAAI,OAAO,SAAS,UAAU;AAC5B,eAAO,UAAU,IAAI,QAAQ,CAAC;AAAA,MAC/B;AACD,cAAQ,SAAS,KAAK;AACtB,UAAI,WAAW,WAAW,KAAK,KAAK;AACpC,aAAO,YAAY,UAAU,KAAK,KAAK,IAAI,aAAa,MAAM,MAAM,CAAC,GAAG,WAAW,IAAI,CAAC,IAAI,WAAW,KAAK,KAAK,IAAI,MAAM,CAAC;AAAA,IAC7H;AACD,WAAO,UAAU;AAAA,EAClB;AACH,CAAC;AAGD,IAAI,mBAAmB,WAAW;AAAA,EAChC,oEAAoE,SAAS,QAAQ;AACnF,QAAI,WAAW;AACf,QAAI,MAAM;AACV,QAAI,WAAW;AACf,QAAI,kBAAkB;AACtB,QAAI,YAAY,KAAK;AACrB,QAAI,YAAY,KAAK;AACrB,aAAS,UAAU,MAAM,MAAM,SAAS;AACtC,UAAI,UAAU,UAAU,SAAS,QAAQ,SAAS,cAAc,iBAAiB,GAAG,UAAU,OAAO,SAAS,OAAO,WAAW;AAChI,UAAI,OAAO,QAAQ,YAAY;AAC7B,cAAM,IAAI,UAAU,eAAe;AAAA,MACpC;AACD,aAAO,SAAS,IAAI,KAAK;AACzB,UAAI,SAAS,OAAO,GAAG;AACrB,kBAAU,CAAC,CAAC,QAAQ;AACpB,iBAAS,aAAa;AACtB,kBAAU,SAAS,UAAU,SAAS,QAAQ,OAAO,KAAK,GAAG,IAAI,IAAI;AACrE,mBAAW,cAAc,UAAU,CAAC,CAAC,QAAQ,WAAW;AAAA,MACzD;AACD,eAAS,WAAW,MAAM;AACxB,YAAI,OAAO,UAAU,UAAU;AAC/B,mBAAW,WAAW;AACtB,yBAAiB;AACjB,iBAAS,KAAK,MAAM,SAAS,IAAI;AACjC,eAAO;AAAA,MACR;AACD,eAAS,YAAY,MAAM;AACzB,yBAAiB;AACjB,kBAAU,WAAW,cAAc,IAAI;AACvC,eAAO,UAAU,WAAW,IAAI,IAAI;AAAA,MACrC;AACD,eAAS,cAAc,MAAM;AAC3B,YAAI,oBAAoB,OAAO,cAAc,sBAAsB,OAAO,gBAAgB,cAAc,OAAO;AAC/G,eAAO,SAAS,UAAU,aAAa,UAAU,mBAAmB,IAAI;AAAA,MACzE;AACD,eAAS,aAAa,MAAM;AAC1B,YAAI,oBAAoB,OAAO,cAAc,sBAAsB,OAAO;AAC1E,eAAO,iBAAiB,UAAU,qBAAqB,QAAQ,oBAAoB,KAAK,UAAU,uBAAuB;AAAA,MAC1H;AACD,eAAS,eAAe;AACtB,YAAI,OAAO;AACX,YAAI,aAAa,IAAI,GAAG;AACtB,iBAAO,aAAa,IAAI;AAAA,QACzB;AACD,kBAAU,WAAW,cAAc,cAAc,IAAI,CAAC;AAAA,MACvD;AACD,eAAS,aAAa,MAAM;AAC1B,kBAAU;AACV,YAAI,YAAY,UAAU;AACxB,iBAAO,WAAW,IAAI;AAAA,QACvB;AACD,mBAAW,WAAW;AACtB,eAAO;AAAA,MACR;AACD,eAAS,SAAS;AAChB,YAAI,YAAY,QAAQ;AACtB,uBAAa,OAAO;AAAA,QACrB;AACD,yBAAiB;AACjB,mBAAW,eAAe,WAAW,UAAU;AAAA,MAChD;AACD,eAAS,QAAQ;AACf,eAAO,YAAY,SAAS,SAAS,aAAa,IAAG,CAAE;AAAA,MACxD;AACD,eAAS,YAAY;AACnB,YAAI,OAAO,IAAK,GAAE,aAAa,aAAa,IAAI;AAChD,mBAAW;AACX,mBAAW;AACX,uBAAe;AACf,YAAI,YAAY;AACd,cAAI,YAAY,QAAQ;AACtB,mBAAO,YAAY,YAAY;AAAA,UAChC;AACD,cAAI,QAAQ;AACV,yBAAa,OAAO;AACpB,sBAAU,WAAW,cAAc,IAAI;AACvC,mBAAO,WAAW,YAAY;AAAA,UAC/B;AAAA,QACF;AACD,YAAI,YAAY,QAAQ;AACtB,oBAAU,WAAW,cAAc,IAAI;AAAA,QACxC;AACD,eAAO;AAAA,MACR;AACD,gBAAU,SAAS;AACnB,gBAAU,QAAQ;AAClB,aAAO;AAAA,IACR;AACD,WAAO,UAAU;AAAA,EAClB;AACH,CAAC;AAGD,IAAI,mBAAmB,WAAW;AAAA,EAChC,oEAAoE,SAAS,QAAQ;AACnF,QAAI,aAAa;AACjB,QAAI,eAAe;AACnB,QAAI,YAAY;AAChB,aAAS,UAAU,OAAO;AACxB,aAAO,OAAO,SAAS,YAAY,aAAa,KAAK,KAAK,WAAW,KAAK,KAAK;AAAA,IAChF;AACD,WAAO,UAAU;AAAA,EAClB;AACH,CAAC;AAGD,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,eAAe,MAAM,QAAQ,MAAM;AAC3E,IAAI,eAAe,CAAC,UAAU,KAAK,KAAK,KAAK,KAAK,SAAS,OAAO,SAAS,MAAM,OAAO;AACxF,SAAS,QAAQ,YAAY;AAC3B,MAAI;AACF,QAAI,YAAY;AACd,UAAI,KAAK,WAAW,OAAO,GAAG;AAC5B,mBAAW,QAAO;AAAA,MAC1B,WAAiB,KAAK,UAAU,GAAG;AAC3B;MACD;AAAA,IACF;AAAA,EACF,SAAQ,GAAP;AACA,YAAQ,MAAM,CAAC;AAAA,EAChB;AACH;AACA,IAAI,cAAc,CAAC,eAAe,aAAa,UAAU,KAAK,KAAK,WAAW,SAAS;AACvF,SAAS,gBAAgB,aAAa;AACpC,WAAS,mBAAmB;AAC1B,QAAI,IAAI;AACR,QAAI,iBAAiB;AACnB;AACF,qBAAiB,KAAK;AACtB,KAAC,KAAK,iBAAiB,OAAO,OAAO,SAAS,GAAG,QAAQ,OAAO;AAChE,KAAC,KAAK,iBAAiB,OAAO,OAAO,SAAS,GAAG;AACjD,qBAAiB,KAAK;AAAA,EACvB;AACD,mBAAiB,KAAK;AACtB,mBAAiB,UAAU;AAC3B,mBAAiB,OAAO;AACxB,mBAAiB,MAAM;AACvB,mBAAiB,MAAM;AACvB,mBAAiB,OAAO;AACxB,mBAAiB,SAAS;AAC1B,mBAAiB,QAAQ;AACzB,SAAO;AACT;AACA,SAAS,QAAQ,YAAY;AAC3B,MAAI,IAAI;AACR,MAAI,GAAG,KAAK,KAAK,OAAO,OAAO,SAAS,GAAG,IAAI,UAAU,IAAI;AAC3D,MAAE,KAAK,KAAK,OAAO,OAAO,KAAK,KAAK,KAAqB,oBAAI,IAAG,GAAI,IAAI,UAAU;AAClF,QAAI,YAAY,UAAU,GAAG;AAC3B,iBAAW,UAAU,MAAM,KAAK,OAAO,UAAU,CAAC;AAAA,IACnD;AAAA,EACF;AACH;AACA,SAAS,IAAI,aAAa;AACxB,QAAM,QAAQ,WAAW,IAAI,YAAY,QAAQ,SAAS,IAAI,IAAI,QAAQ,KAAK,MAAM,WAAW;AAChG,SAAO;AACT;AACA,SAAS,OAAO,YAAY;AAC1B,MAAI,YAAY;AACd,QAAI,KAAK,OAAO,UAAU,GAAG;AAC3B,cAAQ,UAAU;AAAA,IACnB;AAAA,EACL,OAAS;AACL,SAAK,QAAO;AAAA,EACb;AACH;AACA,SAAS,KAAK,YAAY;AACxB,MAAI;AACJ,WAAS,KAAK,KAAK,OAAO,OAAO,SAAS,GAAG,IAAI,UAAU,MAAM;AACnE;AACA,SAAS,MAAM,UAAU;AACvB,QAAM,aAAa;AACnB,SAAO,cAAc,KAAK,IAAI,UAAU;AAC1C;AACA,SAAS,QAAQ,YAAY;AAC3B,MAAI;AACJ,WAAS,KAAK,KAAK,OAAO,OAAO,SAAS,GAAG,OAAO,UAAU,MAAM;AACtE;AACA,SAAS,QAAQ;AACf,MAAI;AACJ,WAAS,KAAK,KAAK,OAAO,OAAO,SAAS,GAAG,SAAS;AACxD;AAGA,SAAS,iBAAiB,QAAQ,MAAM,UAAU,SAAS;AACzD,SAAO,iBAAiB,MAAM,UAAU,OAAO;AAC/C,SAAO,MAAM,OAAO,oBAAoB,MAAM,UAAU,OAAO;AACjE;AACA,IAAI,SAAS;AAGb,IAAI,mBAAmB,OAAO,WAAW;AACzC,IAAI,QAAQ,oBAAoB,EAAE,cAAc,WAAW,OAAO,cAAc,eAAe,gCAAgC,KAAK,UAAU,SAAS;AACvJ,IAAI,UAAU,oBAAoB,OAAO,mBAAmB;AAC5D,IAAI,kBAAkB;AAAA,EACpB,mBAAmB;AAAA,EACnB,WAAW,SAAS,mBAAmB,WAAW;AAAA,EAClD,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,eAAe;AAAA,EACf,eAAe;AAAA,EACf,qBAAqB;AAAA,EACrB,aAAa;AAAA,EACb,aAAa;AAAA,EACb,eAAe;AAAA,EACf,eAAe;AAAA,EACf,cAAc;AAAA,EACd,aAAa;AAAA,EACb,eAAe;AAAA,EACf,cAAc;AAAA,EACd,qBAAqB;AAAA,EACrB,mBAAmB;AAAA,EACnB,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf,kBAAkB;AAAA,EAClB,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,YAAY;AAAA,EACZ,kBAAkB;AACpB;AACA,IAAI,sBAAsB,CAAC,mBAAmB;AAC5C,SAAO,OAAO,OAAO,CAAE,GAAE,iBAAiB,cAAc;AAC1D;AACA,IAAI,iBAAiB,SAAS,UAAU,SAAS;AAC/C,MAAI;AACJ,QAAM,cAAc;AACpB,QAAM,WAAW,IAAI,SAAS,OAAO;AACrC,MAAI;AACF,YAAQ,IAAI,YAAY,aAAa,EAAE,QAAQ,EAAE,SAAU,EAAA,CAAE;AAAA,EAC9D,SAAQ,KAAP;AACA,YAAQ,SAAS,YAAY,aAAa;AAC1C,UAAM,gBAAgB,aAAa,OAAO,OAAO,EAAE,SAAQ,CAAE;AAAA,EAC9D;AACD,SAAO,cAAc,KAAK;AAC5B;AACA,IAAI,iBAAiB,CAAC,UAAU,YAAY;AAC1C,MAAI,CAAC,SAAS;AACZ;AAAA,EACD;AACD,MAAI,CAAC,QAAQ,QAAQ;AACnB,mBAAe,UAAU,OAAO;AAAA,EACpC,OAAS;AACL,aAAS,IAAI,GAAG,aAAa,cAAc,QAAQ,IAAI,KAAK,GAAG;AAC7D,qBAAe,UAAU,WAAW;AAAA,IACrC;AAAA,EACF;AACH;AACA,IAAI,MAAM;AACV,IAAI,SAAS;AACb,IAAI,QAAQ;AACZ,IAAI,SAAS;AACb,IAAI,YAAY;AAChB,IAAI,OAAO;AACX,IAAI,gBAAgB;AACpB,IAAI,eAAe;AACnB,IAAI,gBAAgB;AACpB,IAAI,gBAAgB;AACpB,IAAI,cAAc;AAClB,IAAI,eAAe;AACnB,IAAI,aAAa;AACjB,IAAI,iBAAiB;AACrB,IAAI,UAAU,CAAC,SAAS,cAAc;AACpC,SAAO,QAAQ,aAAa,aAAa,SAAS;AACpD;AACA,IAAI,UAAU,CAAC,SAAS,WAAW,UAAU;AAC3C,QAAM,WAAW,aAAa;AAC9B,MAAI,UAAU,MAAM;AAClB,YAAQ,gBAAgB,QAAQ;AAChC;AAAA,EACD;AACD,UAAQ,aAAa,UAAU,KAAK;AACtC;AACA,IAAI,YAAY,CAAC,YAAY,QAAQ,SAAS,cAAc;AAC5D,IAAI,YAAY,CAAC,SAAS,WAAW,QAAQ,SAAS,gBAAgB,MAAM;AAC5E,IAAI,cAAc,CAAC,YAAY,UAAU,SAAS,IAAI;AACtD,IAAI,iBAAiB,CAAC,YAAY,UAAU,OAAO,MAAM;AACzD,IAAI,mBAAmB,CAAC,YAAY,UAAU,OAAO,MAAM;AAC3D,IAAI,iBAAiB,CAAC,YAAY,UAAU,OAAO,MAAM;AACzD,IAAI,kBAAkB,CAAC,YAAY,UAAU,OAAO,MAAM;AAC1D,IAAI,uBAAuB,CAAC,eAAe,cAAc,eAAe,WAAW;AACnF,IAAI,oBAAoB,CAAC,YAAY,qBAAqB,QAAQ,UAAU,OAAO,CAAC,KAAK;AACzF,IAAI,eAAe,CAAC,UAAU,MAAM,MAAM,SAAS;AACjD,MAAI,CAAC,YAAY,OAAO,aAAa,YAAY;AAC/C;AAAA,EACD;AACD,MAAI,SAAS,QAAQ;AACnB,aAAS,MAAM,MAAM,IAAI;AACzB;AAAA,EACD;AACD,MAAI,SAAS,QAAQ;AACnB,aAAS,MAAM,IAAI;AACnB;AAAA,EACD;AACD,WAAS,IAAI;AACf;AACA,IAAI,WAAW,CAAC,SAAS,cAAc;AACrC,MAAI,CAAC,kBAAkB;AACrB;AAAA,EACD;AACD,MAAI,cAAc,IAAI;AACpB;AAAA,EACD;AACD,UAAQ,UAAU,IAAI,SAAS;AACjC;AACA,IAAI,cAAc,CAAC,SAAS,cAAc;AACxC,MAAI,CAAC,kBAAkB;AACrB;AAAA,EACD;AACD,MAAI,cAAc,IAAI;AACpB;AAAA,EACD;AACD,UAAQ,UAAU,OAAO,SAAS;AACpC;AACA,IAAI,eAAe,CAAC,YAAY;AAC9B,UAAQ,cAAc,SAAS,cAAc,KAAK;AACpD;AACA,IAAI,kBAAkB,CAAC,YAAY;AACjC,SAAO,QAAQ;AACjB;AACA,IAAI,eAAe,CAAC,YAAY,QAAQ;AACxC,IAAI,YAAY,CAAC,SAAS,aAAa;AACrC,MAAI,CAAC;AACH;AACF,QAAM,WAAW,SAAS;AAC1B,MAAI,CAAC;AACH;AACF,WAAS,UAAU,OAAO;AAC5B;AACA,IAAI,gBAAgB,CAAC,aAAa;AAChC,WAAS,WAAU;AACrB;AACA,IAAI,mBAAmB,CAAC,SAAS,UAAU,aAAa;AACtD,MAAI,SAAS;AACX,cAAU,SAAS,QAAQ;AAC/B;AACA,IAAI,qBAAqB,CAAC,UAAU,UAAU;AAC5C,MAAI,CAAC;AACH;AACF,WAAS,gBAAgB;AAC3B;AACA,IAAI,sBAAsB,CAAC,aAAa;AACtC,MAAI,CAAC;AACH;AACF,WAAS,eAAe;AAC1B;AACA,IAAI,iBAAiB,CAAC,UAAU,UAAU;AACxC,MAAI,CAAC;AACH;AACF,WAAS,cAAc;AACzB;AACA,IAAI,qBAAqB,CAAC,aAAa,SAAS,eAAe;AAC/D,IAAI,qBAAqB,CAAC,aAAa,SAAS,cAAc;AAC9D,IAAI,gBAAgB,CAAC,cAAc;AACjC,MAAI,aAAa,CAAA;AACjB,WAAS,IAAI,GAAG,UAAU,WAAW,UAAU,SAAS,IAAI,KAAK,GAAG;AAClE,QAAI,SAAS,YAAY,UAAU;AACjC,iBAAW,KAAK,QAAQ;AAAA,IACzB;AAAA,EACF;AACD,SAAO;AACT;AACA,IAAI,uBAAuB,CAAC,SAAS,OAAO;AAC1C,QAAM,SAAS,QAAQ;AACvB,MAAI,CAAC,UAAU,OAAO,YAAY,WAAW;AAC3C;AAAA,EACD;AACD,MAAI,aAAa,cAAc,MAAM;AACrC,aAAW,QAAQ,EAAE;AACvB;AACA,IAAI,qBAAqB,CAAC,SAAS,OAAO;AACxC,MAAI,aAAa,cAAc,OAAO;AACtC,aAAW,QAAQ,EAAE;AACvB;AACA,IAAI,WAAW,CAAC,GAAG;AACnB,IAAI,iBAAiB,CAAC,KAAK,MAAM;AACjC,IAAI,sBAAsB,CAAC,KAAK,QAAQ,KAAK;AAC7C,IAAI,YAAY,CAAC,IAAI;AACrB,IAAI,mBAAmB,CAAC,YAAY,CAAC,CAAC,QAAQ;AAC9C,IAAI,mBAAmB,CAAC,YAAY,QAAQ;AAC5C,IAAI,sBAAsB,CAAC,YAAY,OAAO,QAAQ;AACtD,IAAI,qBAAqB,CAAC,SAAS,eAAe;AAChD,MAAI,iBAAiB,OAAO,GAAG;AAC7B;AAAA,EACD;AACD,QAAM,YAAY,CAAA;AAClB,aAAW,QAAQ,CAAC,cAAc;AAChC,cAAU,aAAa,QAAQ,aAAa,SAAS;AAAA,EACzD,CAAG;AACD,UAAQ,aAAa;AACvB;AACA,IAAI,8BAA8B,CAAC,YAAY;AAC7C,MAAI,iBAAiB,OAAO,GAAG;AAC7B;AAAA,EACD;AACD,UAAQ,aAAa,EAAE,iBAAiB,QAAQ,MAAM;AACxD;AACA,IAAI,sBAAsB,CAAC,SAAS,UAAU,UAAU;AACtD,MAAI,CAAC,OAAO;AACV,YAAQ,gBAAgB,QAAQ;AAChC;AAAA,EACD;AACD,UAAQ,aAAa,UAAU,KAAK;AACtC;AACA,IAAI,uBAAuB,CAAC,SAAS,eAAe;AAClD,MAAI,CAAC,iBAAiB,OAAO,GAAG;AAC9B;AAAA,EACD;AACD,QAAM,YAAY,iBAAiB,OAAO;AAC1C,aAAW,QAAQ,CAAC,cAAc;AAChC,wBAAoB,SAAS,WAAW,UAAU,UAAU;AAAA,EAChE,CAAG;AACH;AACA,IAAI,yBAAyB,CAAC,YAAY;AACxC,MAAI,CAAC,iBAAiB,OAAO,GAAG;AAC9B;AAAA,EACD;AACD,QAAM,YAAY,iBAAiB,OAAO;AAC1C,UAAQ,MAAM,kBAAkB,UAAU;AAC5C;AACA,IAAI,gBAAgB,CAAC,SAAS,UAAU,aAAa;AACnD,WAAS,SAAS,SAAS,aAAa;AACxC,YAAU,SAAS,aAAa;AAChC,MAAI,CAAC;AACH;AACF,MAAI,SAAS,qBAAqB;AAChC,cAAU,SAAS,QAAQ;AAAA,EAC5B;AACD,eAAa,SAAS,kBAAkB,SAAS,QAAQ;AAC3D;AACA,IAAI,gBAAgB,CAAC,SAAS,UAAU,aAAa;AACnD,WAAS,SAAS,SAAS,aAAa;AACxC,YAAU,SAAS,aAAa;AAChC,MAAI,CAAC;AACH;AACF,qBAAmB,UAAU,CAAC;AAC9B,eAAa,SAAS,kBAAkB,SAAS,QAAQ;AAC3D;AACA,IAAI,sBAAsB,CAAC,SAAS,UAAU,UAAU;AACtD,MAAI,CAAC,OAAO;AACV;AAAA,EACD;AACD,UAAQ,aAAa,UAAU,KAAK;AACtC;AACA,IAAI,qBAAqB,CAAC,SAAS,aAAa;AAC9C,sBAAoB,SAAS,OAAO,QAAQ,SAAS,SAAS,UAAU,CAAC;AACzE,sBAAoB,SAAS,QAAQ,QAAQ,SAAS,SAAS,WAAW,CAAC;AAC3E,sBAAoB,SAAS,KAAK,QAAQ,SAAS,SAAS,QAAQ,CAAC;AACvE;AACA,IAAI,gBAAgB,CAAC,OAAO,aAAa;AACvC,uBAAqB,OAAO,CAAC,cAAc;AACzC,uBAAmB,WAAW,mBAAmB;AACjD,uBAAmB,WAAW,QAAQ;AAAA,EAC1C,CAAG;AACD,qBAAmB,OAAO,mBAAmB;AAC7C,qBAAmB,OAAO,QAAQ;AACpC;AACA,IAAI,mBAAmB,CAAC,QAAQ,aAAa;AAC3C,qBAAmB,QAAQ,QAAQ;AACnC,sBAAoB,QAAQ,KAAK,QAAQ,QAAQ,SAAS,QAAQ,CAAC;AACrE;AACA,IAAI,kBAAkB,CAAC,SAAS,aAAa;AAC3C,qBAAmB,SAAS,CAAC,aAAa;AACxC,uBAAmB,UAAU,QAAQ;AACrC,wBAAoB,UAAU,KAAK,QAAQ,UAAU,SAAS,QAAQ,CAAC;AAAA,EAC3E,CAAG;AACD,qBAAmB,SAAS,cAAc;AAC1C,sBAAoB,SAAS,QAAQ,QAAQ,SAAS,SAAS,WAAW,CAAC;AAC3E,sBAAoB,SAAS,KAAK,QAAQ,SAAS,SAAS,QAAQ,CAAC;AACrE,UAAQ,KAAI;AACd;AACA,IAAI,mBAAmB,CAAC,QAAQ,aAAa;AAC3C,qBAAmB,QAAQ,SAAS;AACpC,sBAAoB,QAAQ,MAAM,QAAQ,QAAQ,SAAS,QAAQ,CAAC;AACtE;AACA,IAAI,gBAAgB,CAAC,SAAS,UAAU,aAAa;AACnD,QAAM,YAAY,QAAQ,SAAS,SAAS,OAAO;AACnD,QAAM,eAAe,QAAQ,SAAS,SAAS,aAAa;AAC5D,QAAM,cAAc,WAAW,eAAe,eAAe;AAC7D,MAAI,CAAC;AACH;AACF,UAAQ,MAAM,kBAAkB,QAAQ;AACxC,eAAa,OAAO,EAAE,aAAa,KAAK,WAAW;AACnD,gBAAc,SAAS,UAAU,QAAQ;AAC3C;AACA,IAAI,qBAAqB,CAAC,SAAS,UAAU,aAAa;AACxD,QAAM,YAAY,QAAQ,SAAS,SAAS,aAAa;AACzD,QAAM,eAAe,QAAQ,SAAS,SAAS,mBAAmB;AAClE,QAAM,cAAc,WAAW,eAAe,eAAe;AAC7D,MAAI,CAAC,aAAa;AAChB;AAAA,EACD;AACD,UAAQ,MAAM,kBAAkB;AAChC,gBAAc,SAAS,UAAU,QAAQ;AAC3C;AACA,IAAI,sBAAsB,CAAC,SAAS,UAAU,aAAa;AACzD,QAAM,oBAAoB,QAAQ,SAAS,SAAS,WAAW;AAC/D,MAAI,CAAC,mBAAmB;AACtB;AAAA,EACD;AACD,QAAM,eAAe,kBAAkB,MAAM,GAAG;AAChD,MAAI,gBAAgB,aAAa,IAAI,CAAC,UAAU,aAAa,QAAQ;AACrE,UAAQ,MAAM,kBAAkB,cAAc,KAAI;AAClD,MAAI,QAAQ,MAAM,oBAAoB,IAAI;AACxC,oBAAgB,aAAa,IAAI,CAAC,UAAU,qBAAqB,QAAQ;AACzE,YAAQ,MAAM,kBAAkB,cAAc,KAAI;AAAA,EACnD;AACD,gBAAc,SAAS,UAAU,QAAQ;AAC3C;AACA,IAAI,sBAAsB;AAAA,EACxB,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AACV;AACA,IAAI,mBAAmB,CAAC,SAAS,aAAa;AAC5C,QAAM,qBAAqB,oBAAoB,QAAQ;AACvD,MAAI,CAAC,oBAAoB;AACvB;AAAA,EACD;AACD,qBAAmB,SAAS,QAAQ;AACtC;AACA,IAAI,aAAa,CAAC,SAAS,UAAU,aAAa;AAChD,QAAM,qBAAqB,oBAAoB,QAAQ;AACvD,MAAI,CAAC,oBAAoB;AACvB;AAAA,EACD;AACD,qBAAmB,SAAS,QAAQ;AACpC,gBAAc,SAAS,UAAU,QAAQ;AAC3C;AACA,IAAI,wBAAwB,CAAC,OAAO,UAAU,SAAS,QAAQ;AAC/D,IAAI,eAAe,CAAC,YAAY,sBAAsB,QAAQ,QAAQ,OAAO,IAAI;AACjF,IAAI,cAAc,CAAC,UAAU,aAAa;AACxC,MAAI,YAAY,CAAC,mBAAmB,QAAQ,KAAK,CAAC,mBAAmB,QAAQ,GAAG;AAC9E,iBAAa,SAAS,iBAAiB,QAAQ;AAAA,EAChD;AACH;AACA,IAAI,oBAAoB,CAAC,SAAS,WAAW,YAAY;AACvD,UAAQ,iBAAiB,WAAW,OAAO;AAC3C,UAAQ,WAAW,aAAa;AAClC;AACA,IAAI,sBAAsB,CAAC,SAAS,WAAW,YAAY;AACzD,UAAQ,oBAAoB,WAAW,OAAO;AAChD;AACA,IAAI,oBAAoB,CAAC,YAAY;AACnC,SAAO,CAAC,CAAC,QAAQ;AACnB;AACA,IAAI,oBAAoB,CAAC,SAAS,cAAc,kBAAkB;AAChE,MAAI,CAAC,kBAAkB,OAAO;AAC5B,YAAQ,aAAa;AACvB,QAAM,gBAAgB,QAAQ,YAAY,UAAU,eAAe;AACnE,oBAAkB,SAAS,eAAe,YAAY;AACtD,oBAAkB,SAAS,SAAS,aAAa;AACnD;AACA,IAAI,uBAAuB,CAAC,YAAY;AACtC,MAAI,CAAC,kBAAkB,OAAO,GAAG;AAC/B;AAAA,EACD;AACD,QAAM,iBAAiB,QAAQ;AAC/B,WAAS,aAAa,gBAAgB;AACpC,UAAM,UAAU,eAAe;AAC/B,wBAAoB,SAAS,WAAW,OAAO;AAAA,EAChD;AACD,SAAO,QAAQ;AACjB;AACA,IAAI,cAAc,CAAC,SAAS,UAAU,aAAa;AACjD,kBAAgB,OAAO;AACvB,qBAAmB,UAAU,EAAE;AAC/B,sBAAoB,QAAQ;AAC5B,cAAY,SAAS,SAAS,aAAa;AAC3C,MAAI,SAAS,qBAAqB;AAChC,cAAU,SAAS,QAAQ;AAAA,EAC5B;AACH;AACA,IAAI,cAAc,CAAC,OAAO,SAAS,UAAU,aAAa;AACxD,QAAM,cAAc,gBAAgB,OAAO;AAC3C,cAAY,SAAS,UAAU,QAAQ;AACvC,WAAS,SAAS,SAAS,YAAY;AACvC,YAAU,SAAS,YAAY;AAC/B,eAAa,SAAS,iBAAiB,SAAS,QAAQ;AACxD,MAAI,CAAC;AACH,gBAAY,UAAU,QAAQ;AAClC;AACA,IAAI,eAAe,CAAC,OAAO,SAAS,UAAU,aAAa;AACzD,QAAM,cAAc,gBAAgB,OAAO;AAC3C,cAAY,SAAS,UAAU,QAAQ;AACvC,WAAS,SAAS,SAAS,WAAW;AACtC,YAAU,SAAS,WAAW;AAC9B,eAAa,SAAS,gBAAgB,SAAS,QAAQ;AACvD,MAAI,SAAS;AACX,yBAAqB,SAAS,mBAAmB;AACnD,MAAI,CAAC;AACH,gBAAY,UAAU,QAAQ;AAClC;AACA,IAAI,2BAA2B,CAAC,SAAS,UAAU,aAAa;AAC9D,QAAM,oBAAoB,aAAa,OAAO,KAAK;AACnD,MAAI,kBAAkB,iBAAiB,GAAG;AACxC;AAAA,EACD;AACD,QAAM,eAAe,CAAC,UAAU;AAC9B,gBAAY,OAAO,SAAS,UAAU,QAAQ;AAC9C,yBAAqB,iBAAiB;AAAA,EAC1C;AACE,QAAM,gBAAgB,CAAC,UAAU;AAC/B,iBAAa,OAAO,SAAS,UAAU,QAAQ;AAC/C,yBAAqB,iBAAiB;AAAA,EAC1C;AACE,oBAAkB,mBAAmB,cAAc,aAAa;AAClE;AACA,IAAI,iBAAiB,CAAC,SAAS,UAAU,aAAa;AACpD,eAAa,OAAO;AACpB,2BAAyB,SAAS,UAAU,QAAQ;AACpD,8BAA4B,OAAO;AACnC,gBAAc,SAAS,UAAU,QAAQ;AACzC,qBAAmB,SAAS,UAAU,QAAQ;AAC9C,sBAAoB,SAAS,UAAU,QAAQ;AACjD;AACA,IAAI,cAAc,CAAC,SAAS,UAAU,aAAa;AACjD,2BAAyB,SAAS,UAAU,QAAQ;AACpD,aAAW,SAAS,UAAU,QAAQ;AACxC;AACA,IAAI,OAAO,CAAC,SAAS,UAAU,aAAa;AAC1C,MAAI,aAAa,OAAO,GAAG;AACzB,gBAAY,SAAS,UAAU,QAAQ;AAAA,EAC3C,OAAS;AACL,mBAAe,SAAS,UAAU,QAAQ;AAAA,EAC3C;AACH;AACA,IAAI,aAAa,CAAC,SAAS,UAAU,aAAa;AAChD,UAAQ,aAAa,WAAW,MAAM;AACtC,2BAAyB,SAAS,UAAU,QAAQ;AACpD,mBAAiB,SAAS,QAAQ;AAClC,YAAU,SAAS,YAAY;AACjC;AACA,IAAI,wBAAwB,CAAC,YAAY;AACvC,UAAQ,gBAAgB,GAAG;AAC3B,UAAQ,gBAAgB,MAAM;AAC9B,UAAQ,gBAAgB,KAAK;AAC/B;AACA,IAAI,kBAAkB,CAAC,YAAY;AACjC,uBAAqB,SAAS,CAAC,cAAc;AAC3C,0BAAsB,SAAS;AAAA,EACnC,CAAG;AACD,wBAAsB,OAAO;AAC/B;AACA,IAAI,aAAa,CAAC,UAAU;AAC1B,uBAAqB,OAAO,CAAC,aAAa;AACxC,yBAAqB,UAAU,mBAAmB;AAAA,EACtD,CAAG;AACD,uBAAqB,OAAO,mBAAmB;AACjD;AACA,IAAI,eAAe,CAAC,YAAY;AAC9B,qBAAmB,SAAS,CAAC,aAAa;AACxC,yBAAqB,UAAU,QAAQ;AAAA,EAC3C,CAAG;AACD,uBAAqB,SAAS,cAAc;AAC5C,UAAQ,KAAI;AACd;AACA,IAAI,gBAAgB,CAAC,aAAa;AAChC,uBAAqB,UAAU,QAAQ;AACzC;AACA,IAAI,gBAAgB,CAAC,aAAa;AAChC,uBAAqB,UAAU,SAAS;AAC1C;AACA,IAAI,mBAAmB;AAAA,EACrB,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AACV;AACA,IAAI,oBAAoB,CAAC,YAAY;AACnC,QAAM,kBAAkB,iBAAiB,QAAQ;AACjD,MAAI,CAAC,iBAAiB;AACpB,2BAAuB,OAAO;AAC9B;AAAA,EACD;AACD,kBAAgB,OAAO;AACzB;AACA,IAAI,eAAe,CAAC,SAAS,aAAa;AACxC,MAAI,eAAe,OAAO,KAAK,gBAAgB,OAAO,GAAG;AACvD;AAAA,EACD;AACD,cAAY,SAAS,SAAS,aAAa;AAC3C,cAAY,SAAS,SAAS,YAAY;AAC1C,cAAY,SAAS,SAAS,aAAa;AAC3C,cAAY,SAAS,SAAS,aAAa;AAC3C,cAAY,SAAS,SAAS,YAAY;AAC1C,cAAY,SAAS,SAAS,WAAW;AAC3C;AACA,IAAI,UAAU,CAAC,SAAS,aAAa;AACnC,oBAAkB,OAAO;AACzB,eAAa,SAAS,QAAQ;AAC9B,cAAY,OAAO;AACnB,sBAAoB,OAAO;AAC7B;AACA,IAAI,gBAAgB,CAAC,SAAS,OAAO,UAAU,aAAa;AAC1D,MAAI,CAAC,SAAS;AACZ;AACF,MAAI,CAAC,iBAAiB,OAAO;AAC3B;AACF,MAAI,QAAQ,YAAY;AACtB;AACF,uBAAqB,OAAO;AAC5B,kBAAgB,OAAO;AACvB,aAAW,OAAO;AAClB,cAAY,SAAS,SAAS,aAAa;AAC3C,qBAAmB,UAAU,EAAE;AAC/B,cAAY,OAAO;AACnB,eAAa,SAAS,iBAAiB,SAAS,OAAO,QAAQ;AACjE;AACA,IAAI,UAAU,CAAC,SAAS,OAAO,UAAU,aAAa;AACpD,QAAM,WAAW,kBAAkB,OAAO;AAC1C,YAAU,SAAS,aAAa;AAChC,WAAS,SAAS,SAAS,aAAa;AACxC,cAAY,SAAS,SAAS,YAAY;AAC1C,mBAAiB,SAAS,UAAU,QAAQ;AAC5C,eAAa,SAAS,gBAAgB,SAAS,OAAO,QAAQ;AAC9D,MAAI;AACF;AACF,OAAK,SAAS,UAAU,QAAQ;AAClC;AACA,IAAI,SAAS,CAAC,SAAS,OAAO,UAAU,aAAa;AACnD,MAAI,eAAe,OAAO;AACxB;AACF,WAAS,SAAS,SAAS,YAAY;AACvC,gBAAc,SAAS,OAAO,UAAU,QAAQ;AAChD,eAAa,SAAS,eAAe,SAAS,OAAO,QAAQ;AAC/D;AACA,IAAI,qBAAqB,CAAC,OAAO,UAAU,OAAO;AAClD,IAAI,kBAAkB,CAAC,aAAa,SAAS,cAAc,aAAa,iBAAiB;AACzF,IAAI,gBAAgB,CAAC,UAAU,UAAU,aAAa;AACpD,WAAS,QAAQ,CAAC,YAAY;AAC5B,QAAI,mBAAmB,QAAQ,QAAQ,OAAO,MAAM,IAAI;AACtD;AAAA,IACD;AACD,eAAW,SAAS,UAAU,QAAQ;AAAA,EAC1C,CAAG;AACD,iBAAe,UAAU,CAAC;AAC5B;AACA,IAAI,iBAAiB,CAAC,UAAU,MAAM,kBAAkB,MAAM,oBAAoB;AAClF,IAAI,sBAAsB,CAAC,cAAc;AAAA,EACvC,MAAM,SAAS,cAAc,WAAW,OAAO,SAAS;AAAA,EACxD,YAAY,SAAS,cAAc,SAAS,YAAY;AAC1D;AACA,IAAI,sBAAsB,CAAC,SAAS,UAAU,aAAa;AACzD,UAAQ;AAAA,IACN,CAAC,UAAU,eAAe,KAAK,IAAI,QAAQ,MAAM,QAAQ,OAAO,UAAU,QAAQ,IAAI,OAAO,MAAM,QAAQ,OAAO,UAAU,QAAQ;AAAA,EACxI;AACA;AACA,IAAI,kBAAkB,CAAC,UAAU,aAAa;AAC5C,WAAS,QAAQ,CAAC,YAAY;AAC5B,aAAS,QAAQ,OAAO;AAAA,EAC5B,CAAG;AACH;AACA,IAAI,iBAAiB,CAAC,UAAU,sBAAsB;AACpD,gBAAc,QAAQ;AACtB,kBAAgB,UAAU,iBAAiB;AAC7C;AACA,IAAI,cAAc,CAAC,UAAU,aAAa;AACxC,MAAI,gBAAgB,QAAQ,GAAG;AAC7B;AAAA,EACD;AACD,WAAS,YAAY,IAAI,qBAAqB,CAAC,YAAY;AACzD,wBAAoB,SAAS,UAAU,QAAQ;AAAA,EACnD,GAAK,oBAAoB,QAAQ,CAAC;AAClC;AACA,IAAI,UAAU,CAAC,YAAY,MAAM,UAAU,MAAM,KAAK,OAAO;AAC7D,IAAI,gBAAgB,CAAC,aAAa,SAAS,UAAU,iBAAiB,SAAS,iBAAiB;AAChG,IAAI,yBAAyB,CAAC,aAAa,QAAQ,QAAQ,EAAE,OAAO,cAAc;AAClF,IAAI,WAAW,CAAC,YAAY,eAAe,OAAO;AAClD,IAAI,sBAAsB,CAAC,aAAa,QAAQ,QAAQ,EAAE,OAAO,QAAQ;AACzE,IAAI,oBAAoB,CAAC,UAAU,aAAa,uBAAuB,YAAY,cAAc,QAAQ,CAAC;AAC1G,IAAI,gBAAgB,CAAC,UAAU,aAAa;AAC1C,QAAM,gBAAgB,oBAAoB,cAAc,QAAQ,CAAC;AACjE,gBAAc,QAAQ,CAAC,YAAY;AACjC,gBAAY,SAAS,SAAS,WAAW;AACzC,gBAAY,OAAO;AAAA,EACvB,CAAG;AACD,WAAS,OAAM;AACjB;AACA,IAAI,iBAAiB,CAAC,UAAU,aAAa;AAC3C,MAAI,CAAC,kBAAkB;AACrB;AAAA,EACD;AACD,WAAS,iBAAiB,MAAM;AAC9B,kBAAc,UAAU,QAAQ;AAAA,EACpC;AACE,SAAO,iBAAiB,UAAU,SAAS,cAAc;AAC3D;AACA,IAAI,mBAAmB,CAAC,aAAa;AACnC,MAAI,CAAC,kBAAkB;AACrB;AAAA,EACD;AACD,SAAO,oBAAoB,UAAU,SAAS,cAAc;AAC9D;AACA,IAAI,WAAW,SAAS,gBAAgB,UAAU;AAChD,QAAM,WAAW,oBAAoB,cAAc;AACnD,OAAK,YAAY;AACjB,OAAK,eAAe;AACpB,cAAY,UAAU,IAAI;AAC1B,iBAAe,UAAU,IAAI;AAC7B,OAAK,OAAO,QAAQ;AACtB;AACA,SAAS,YAAY;AAAA,EACnB,QAAQ,SAAS,cAAc;AAC7B,UAAM,WAAW,KAAK;AACtB,UAAM,iBAAiB,kBAAkB,cAAc,QAAQ;AAC/D,mBAAe,MAAM,eAAe,MAAM;AAC1C,QAAI,OAAO;AACT,WAAK,QAAQ,cAAc;AAC3B;AAAA,IACD;AACD,QAAI,gBAAgB,QAAQ,GAAG;AAC7B,oBAAc,gBAAgB,UAAU,IAAI;AAC5C;AAAA,IACD;AACD,mBAAe,KAAK,WAAW,cAAc;AAAA,EAC9C;AAAA,EACD,SAAS,WAAW;AAClB,QAAI,KAAK,WAAW;AAClB,WAAK,UAAU;IAChB;AACD,qBAAiB,IAAI;AACrB,kBAAc,KAAK,SAAS,EAAE,QAAQ,CAAC,YAAY;AACjD,0BAAoB,OAAO;AAAA,IACjC,CAAK;AACD,WAAO,KAAK;AACZ,WAAO,KAAK;AACZ,WAAO,KAAK;AACZ,WAAO,KAAK;AACZ,WAAO,KAAK;AAAA,EACb;AAAA,EACD,SAAS,SAAS,UAAU;AAC1B,UAAM,WAAW,KAAK;AACtB,UAAM,iBAAiB,kBAAkB,UAAU,QAAQ;AAC3D,mBAAe,QAAQ,CAAC,YAAY;AAClC,gBAAU,SAAS,IAAI;AACvB,WAAK,SAAS,UAAU,IAAI;AAAA,IAClC,CAAK;AAAA,EACF;AAAA,EACD,YAAY,WAAW;AACrB,UAAM,WAAW,KAAK;AACtB,kBAAc,QAAQ,EAAE,QAAQ,CAAC,YAAY;AAC3C,cAAQ,SAAS,QAAQ;AAAA,IAC/B,CAAK;AAAA,EACF;AACH;AACA,SAAS,OAAO,CAAC,SAAS,mBAAmB;AAC3C,QAAM,WAAW,oBAAoB,cAAc;AACnD,OAAK,SAAS,QAAQ;AACxB;AACA,SAAS,cAAc,CAAC,YAAY;AAClC,cAAY,OAAO;AACrB;AACA,IAAI,kBAAkB;AACpB,iBAAe,UAAU,OAAO,eAAe;AACjD;AAGA,SAAS,WAAW,WAAW;AAC7B,QAAM,KAAK;AACX,QAAM,OAAO,SAAS,gBAAgB,IAAI,KAAK;AAC/C,OAAK,aAAa,SAAS,GAAG,+BAA+B;AAC7D,OAAK,aAAa,WAAW,WAAW;AACxC,QAAM,QAAQ,SAAS,gBAAgB,IAAI,MAAM;AACjD,QAAM,aAAa,QAAQ,cAAc;AACzC,QAAM,aAAa,KAAK,kNAAkN;AAC1O,OAAK,YAAY,KAAK;AACtB,SAAO;AACT;AAGA,SAAS,aAAa,WAAW;AAC/B,QAAM,KAAK;AACX,QAAM,OAAO,SAAS,gBAAgB,IAAI,KAAK;AAC/C,OAAK,aAAa,SAAS,GAAG,kCAAkC;AAChE,OAAK,aAAa,WAAW,aAAa;AAC1C,QAAM,QAAQ,SAAS,gBAAgB,IAAI,MAAM;AACjD,QAAM,aAAa,QAAQ,cAAc;AACzC,QAAM,aAAa,KAAK,iPAAiP;AACzQ,OAAK,YAAY,KAAK;AACtB,SAAO;AACT;AAGA,SAAS,cAAc,WAAW;AAChC,QAAM,KAAK;AACX,QAAM,OAAO,SAAS,gBAAgB,IAAI,KAAK;AAC/C,OAAK,aAAa,SAAS,GAAG,mCAAmC;AACjE,OAAK,aAAa,WAAW,aAAa;AAC1C,QAAM,QAAQ,SAAS,gBAAgB,IAAI,MAAM;AACjD,QAAM,aAAa,QAAQ,cAAc;AACzC,QAAM,aAAa,KAAK,iPAAiP;AACzQ,OAAK,YAAY,KAAK;AACtB,SAAO;AACT;AAGA,IAAI,WAAW,MAAMA,UAAS;AAAA,EAC5B,YAAY,OAAO;AACjB,SAAK,QAAQ;AAEb,SAAK,eAA+B,oBAAI;AAExC,SAAK,aAA6B,oBAAI;AAEtC,SAAK,aAAa;AAClB,SAAK,cAAc;AACnB,SAAK,aAAa,IAAI,IAAI,MAAM,IAAI,CAAC,GAAG,UAAU,CAAC,OAAO;AAAA,MACxD,KAAK,EAAE;AAAA,MACP,OAAO;AAAA,IACR,CAAA,CAAC,CAAC;AACH,SAAK,cAAc,KAAK,WAAW;AACnC,SAAK,MAAM,GAAG,IAAI;AAAA,EACnB;AAAA,EACD,MAAM,OAAO,QAAQ,OAAO;AAC1B,QAAI,SAAS,KAAK,aAAa;AAC7B,WAAK,aAAa;AAAA,IACxB,OAAW;AACL,WAAK,aAAa;AAAA,IACnB;AACD,UAAM,QAAQ,KAAK,WAAW,IAAI,KAAK,UAAU;AACjD,QAAI,SAAS,MAAM,UAAU,GAAkB;AAC7C,WAAK,WAAW,KAAK,YAAY,KAAK;AAAA,IACvC;AACD,QAAI,KAAK,aAAa,OAAOA,UAAS,UAAU;AAC9C,YAAM,WAAW,CAAC,GAAG,KAAK,WAAW,QAAS,CAAA,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,KAAK,cAAc,EAAE,UAAU;AACpG,UAAI,UAAU;AACZ,aAAK,qBAAqB,MAAM;AAC9B,eAAK,MAAM,SAAS,IAAI,KAAK;AAAA,QAC9B,GAAE,GAAG;AAAA,MACP;AAAA,IACF;AAAA,EACF;AAAA,EACD,WAAW,OAAO,QAAQ,OAAO;AAC/B,UAAM,QAAQ,KAAK,WAAW,IAAI,KAAK;AACvC,QAAI,OAAO;AACT,WAAK,gBAAgB,KAAK;AAAA,IAC3B;AACD,QAAI,OAAO;AACT,UAAI,MAAM,UAAU,GAAgB;AAClC,eAAO;AAAA,MACR;AACD,YAAM,UAAU,KAAK,aAAa,IAAI,KAAK;AAC3C,UAAI,SAAS;AACX,YAAI,QAAQ,YAAY,OAAO;AAC7B,kBAAQ,UAAU;AAClB,eAAK,aAAa,IAAI,OAAO,OAAO;AAAA,QACrC;AACD,eAAO;AAAA,MACR;AACD,UAAI,KAAK,aAAa,OAAOA,UAAS,UAAU;AAC9C,eAAO;AAAA,MACR;AACD,YAAM,UAAU,SAAS,cAAc,MAAM;AAC7C,cAAQ,MAAM;AACd,cAAQ,KAAK;AACb,cAAQ,OAAO,MAAM;AACrB,cAAQ,QAAQ,QAAQ,QAAQ;AAChC,eAAS,KAAK,YAAY,OAAO;AACjC,cAAQ,SAAS,MAAM;AACrB,cAAM,SAAS,KAAK,WAAW,IAAI,KAAK;AACxC,YAAI,QAAQ;AACV,iBAAO,QAAQ;AACf,eAAK,WAAW,IAAI,OAAO,MAAM;AACjC,mBAAS,KAAK,SAAS,OAAO,KAAK,SAAS,KAAK,YAAY,OAAO;AACpE,eAAK,aAAa,OAAO,KAAK;AAC9B,eAAK,MAAM,KAAK,aAAa,GAAG,KAAK;AAAA,QACtC;AAAA,MACT;AACM,cAAQ,UAAU,MAAM;AACtB,cAAM,SAAS,KAAK,WAAW,IAAI,KAAK;AACxC,YAAI,UAAU,OAAO,SAAS,OAAO,KAAK;AACxC,kBAAQ,OAAO,OAAO;AAAA,QACvB;AAAA,MACT;AACM,WAAK,aAAa,IAAI,OAAO;AAAA,QAC3B,MAAM;AAAA,QACN,SAAS;AAAA,MACjB,CAAO;AACD,YAAM,QAAQ;AACd,WAAK,WAAW,IAAI,OAAO,KAAK;AAChC,aAAO;AAAA,IACR;AACD,WAAO;AAAA,EACR;AAAA,EACD,gBAAgB,cAAc;AAC5B,eAAW,CAAC,OAAO,EAAE,KAAI,CAAE,KAAK,KAAK,cAAc;AACjD,UAAI,iBAAiB,UAAU,UAAU,cAAc;AACrD;AAAA,MACD;AACD,eAAS,KAAK,SAAS,IAAI,KAAK,SAAS,KAAK,YAAY,IAAI;AAC9D,WAAK,aAAa,OAAO,KAAK;AAAA,IAC/B;AAAA,EACF;AAAA,EACD,MAAM,qBAAqB,UAAU,SAAS;AAC5C,UAAM,IAAI,QAAQ,SAAS,SAAS;AAClC,UAAI,OAAO,qBAAqB;AAC9B,4BAAoB,MAAM;AACxB,kBAAQ,CAAC;AAAA,QACnB,GAAW,EAAE,QAAO,CAAE;AAAA,MACtB,OAAa;AACL,mBAAW,MAAM;AACf,kBAAQ,CAAC;AAAA,QACV,GAAE,OAAO;AAAA,MACX;AAAA,IACP,CAAK;AACD;EACD;AAAA,EACD,UAAU;AACR,SAAK,gBAAe;AACpB,SAAK,WAAW;EACjB;AACH;AACA,SAAS,WAAW;AACpB,IAAI,UAAU;AAGX,IAAC,eAAe,MAAM;AAAA,EACvB,YAAY,QAAQ;AAClB,SAAK,YAAY;AACjB,SAAK,UAAU;AACf,SAAK,cAAc;AACnB,SAAK,cAAc;AACnB,SAAK,YAAY;AACjB,SAAK,kBAAkB;AACvB,SAAK,QAAQ;AACb,SAAK,uBAAuB;AAC5B,QAAI;AACJ,SAAK,QAAQ,OAAO;AACpB,SAAK,UAAU,IAAI,QAAQ,KAAK,KAAK;AACrC,QAAI,OAAO;AACT,WAAK,YAAY,OAAO;AAC1B,SAAK,QAAQ,IAAI,KAAK,OAAO;AAC7B,SAAK,YAAY,KAAK,OAAO,aAAa,OAAO,KAAK;AACtD,SAAK,MAAM,SAAS,cAAc,KAAK;AACvC,SAAK,IAAI,YAAY,KAAK;AAC1B,SAAK,aAAa,SAAS,cAAc,KAAK;AAC9C,SAAK,WAAW,YAAY,KAAK,EAAE,SAAS;AAC5C,SAAK,aAAa,SAAS,cAAc,KAAK;AAC9C,SAAK,WAAW,YAAY,KAAK,EAAE,SAAS;AAC5C,SAAK,gBAAgB,SAAS,cAAc,KAAK;AACjD,SAAK,cAAc,YAAY,KAAK,EAAE,SAAS;AAC/C,SAAK,YAAY,SAAS,cAAc,KAAK;AAC7C,SAAK,UAAU,YAAY,KAAK,EAAE,QAAQ;AAC1C,SAAK,qBAAqB,SAAS,cAAc,OAAO;AACxD,SAAK,mBAAmB,YAAY,KAAK,EAAE,mBAAmB;AAC9D,SAAK,WAAU;AAAA,EAChB;AAAA,EACD,oBAAoB,UAAU;AAC5B,SAAK,uBAAuB;AAAA,EAC7B;AAAA,EACD,aAAa;AACX,QAAI;AACJ,QAAI,KAAK;AACP;AACF,SAAK,cAAc;AACnB,SAAK,QAAQ,IAAI,MAAM;AACrB,UAAI;AACJ,cAAQ,MAAM,KAAK,oBAAoB,OAAO,SAAS,IAAI;IACjE,CAAK;AACD,SAAK,WAAW,UAAU,OAAO,KAAK,EAAE,UAAU,GAAG,KAAK,QAAQ;AAClE,SAAK,IAAI,YAAY,KAAK,UAAU;AACpC,UAAM,cAAc,KAAK,WAAW,YAAY,SAAS,cAAc,KAAK,CAAC;AAC7E,gBAAY,YAAY,KAAK,EAAE,cAAc;AAC7C,SAAK,QAAQ,IAAI,OAAO,aAAa,SAAS,CAAC,OAAO;AACpD,UAAI,KAAK;AACP;AACF,UAAI,GAAG,UAAU,aAAa;AAC5B,aAAK,cAAc,KAAK;AAAA,MACzB;AAAA,IACF,CAAA,CAAC;AACF,SAAK,WAAW,YAAY,KAAK,UAAU;AAC3C,SAAK,WAAW,UAAU,IAAI,sBAAsB;AACpD,UAAM,gBAAgB,KAAK,EAAE,cAAc;AAC3C,UAAM,oBAAoB,KAAK,EAAE,mBAAmB;AACpD,aAAS,QAAQ,GAAG,QAAQ,KAAK,MAAM,QAAQ,EAAE,OAAO;AACtD,YAAM,OAAO,KAAK,MAAM;AACxB,YAAM,aAAa,KAAK,aAAa,KAAK,UAAU,KAAK,GAAG;AAC5D,YAAM,cAAc,SAAS,cAAc,GAAG;AAC9C,kBAAY,YAAY,GAAG,iBAAiB,KAAK,EAAE,gBAAgB,OAAO;AAC1E,kBAAY,aAAa,QAAQ,GAAG;AACpC,kBAAY,QAAQ,YAAY,OAAO,KAAK;AAC5C,YAAM,MAAM,SAAS,cAAc,KAAK;AACxC,UAAI,QAAQ,KAAK;AACjB,UAAI,SAAS,KAAK;AAClB,UAAI,QAAQ,MAAM;AAClB,UAAI,QAAQ,YAAY,OAAO,KAAK;AACpC,YAAM,OAAO,SAAS,cAAc,MAAM;AAC1C,WAAK,YAAY;AACjB,WAAK,cAAc,OAAO,QAAQ,CAAC;AACnC,WAAK,QAAQ,YAAY,OAAO,KAAK;AACrC,kBAAY,YAAY,GAAG;AAC3B,kBAAY,YAAY,IAAI;AAC5B,WAAK,WAAW,YAAY,WAAW;AAAA,IACxC;AACD,KAAC,KAAK,KAAK,oBAAoB,OAAO,SAAS,GAAG;AAClD,SAAK,QAAQ,IAAI,OAAO,KAAK,YAAY,SAAS,CAAC,OAAO;AACxD,UAAI;AACJ,UAAI,KAAK;AACP;AACF,YAAM,aAAa,MAAM,GAAG,OAAO,YAAY,OAAO,SAAS,IAAI;AACnE,UAAI,WAAW;AACb,WAAG,eAAc;AACjB,WAAG,gBAAe;AAClB,WAAG,yBAAwB;AAC3B,aAAK,eAAe,OAAO,SAAS,GAAG,SAAS;AAChD,aAAK,cAAc,KAAK;AAAA,MACzB;AAAA,IACF,CAAA,CAAC;AACF,SAAK,YAAW;AAChB,SAAK,WAAW,YAAY,KAAK,aAAa;AAC9C,SAAK,UAAU,UAAU,OAAO,KAAK,EAAE,UAAU,GAAG,KAAK,QAAQ;AACjE,SAAK,IAAI,YAAY,KAAK,SAAS;AACnC,UAAM,aAAa,SAAS,cAAc,QAAQ;AAClD,eAAW,YAAY,GAAG,KAAK,EAAE,YAAY,KAAK,KAAK,EAAE,aAAa;AACtE,eAAW,YAAY,WAAW,KAAK,SAAS,CAAC;AACjD,SAAK,UAAU,YAAY,UAAU;AACrC,SAAK,QAAQ,IAAI,OAAO,YAAY,SAAS,MAAM;AACjD,UAAI,KAAK;AACP;AACF,WAAK,cAAa;AAAA,IACnB,CAAA,CAAC;AACF,UAAM,YAAY,SAAS,cAAc,KAAK;AAC9C,cAAU,YAAY,KAAK,EAAE,YAAY;AACzC,SAAK,UAAU,YAAY,SAAS;AACpC,UAAM,cAAc,SAAS,cAAc,QAAQ;AACnD,gBAAY,YAAY,GAAG,KAAK,EAAE,YAAY,KAAK,KAAK,EAAE,eAAe;AACzE,gBAAY,YAAY,aAAa,KAAK,SAAS,CAAC;AACpD,cAAU,YAAY,WAAW;AACjC,SAAK,QAAQ,IAAI,OAAO,aAAa,SAAS,MAAM;AAClD,UAAI,KAAK;AACP;AACF,UAAI,KAAK,YAAY;AACnB,aAAK,eAAe,KAAK,YAAY,GAAG,YAAY;AAAA,IACvD,CAAA,CAAC;AACF,UAAM,cAAc,SAAS,cAAc,QAAQ;AACnD,gBAAY,YAAY,GAAG,KAAK,EAAE,YAAY,KAAK,KAAK,EAAE,eAAe;AACzE,gBAAY,YAAY,cAAc,KAAK,SAAS,CAAC;AACrD,cAAU,YAAY,WAAW;AACjC,SAAK,QAAQ,IAAI,OAAO,aAAa,SAAS,MAAM;AAClD,UAAI,KAAK;AACP;AACF,UAAI,KAAK,YAAY,KAAK,MAAM,SAAS;AACvC,aAAK,eAAe,KAAK,YAAY,GAAG,YAAY;AAAA,IACvD,CAAA,CAAC;AACF,UAAM,aAAa,SAAS,cAAc,KAAK;AAC/C,eAAW,YAAY,KAAK,EAAE,aAAa;AAC3C,SAAK,UAAU,YAAY,UAAU;AACrC,eAAW,YAAY,KAAK,kBAAkB;AAC9C,SAAK,mBAAmB,QAAQ,OAAO,KAAK,YAAY,CAAC;AACzD,SAAK,mBAAmB,WAAW,KAAK;AACxC,SAAK,QAAQ,IAAI,OAAO,KAAK,oBAAoB,SAAS,MAAM;AAC9D,UAAI,KAAK;AACP;AACF,WAAK,mBAAmB;IACzB,CAAA,CAAC;AACF,SAAK,QAAQ,IAAI,OAAO,KAAK,oBAAoB,UAAU,MAAM;AAC/D,UAAI,KAAK;AACP;AACF,UAAI,KAAK,mBAAmB,OAAO;AACjC,aAAK,eAAe,OAAO,KAAK,mBAAmB,KAAK,IAAI,GAAG,OAAO;AAAA,MACvE;AAAA,IACF,CAAA,CAAC;AACF,UAAM,YAAY,SAAS,cAAc,MAAM;AAC/C,cAAU,cAAc,MAAM,KAAK,MAAM;AACzC,eAAW,YAAY,SAAS;AAChC,SAAK,QAAQ,IAAI,OAAO,QAAQ,WAAW,CAAC,OAAO;AACjD,UAAI,KAAK,YAAY,KAAK,WAAW,GAAG,MAAM,KAAK,KAAK;AACtD;AACF,WAAK,GAAG,OAAO,aAAa,GAAG,OAAO,gBAAgB,KAAK,YAAY;AACrE,aAAK,eAAe,KAAK,YAAY,GAAG,SAAS;AAAA,gBACzC,GAAG,OAAO,eAAe,GAAG,OAAO,iBAAiB,KAAK,YAAY,KAAK,MAAM,SAAS;AACjG,aAAK,eAAe,KAAK,YAAY,GAAG,SAAS;AAAA,IACpD,CAAA,CAAC;AAAA,EACH;AAAA,EACD,OAAO,KAAK;AACV,QAAI,KAAK,OAAO;AACd;AACF,QAAI,YAAY,KAAK,UAAU;AAC/B,QAAI,YAAY,KAAK,SAAS;AAC9B,SAAK,MAAM;AAAA,EACZ;AAAA,EACD,YAAY,UAAU;AACpB,QAAI,KAAK,YAAY;AACnB;AACF,SAAK,WAAW,UAAU,OAAO,KAAK,EAAE,UAAU,GAAG,QAAQ;AAC7D,SAAK,UAAU,UAAU,OAAO,KAAK,EAAE,UAAU,GAAG,QAAQ;AAC5D,SAAK,mBAAmB,WAAW;AACnC,SAAK,cAAc,KAAK;AACxB,SAAK,WAAW;AAAA,EACjB;AAAA,EACD,aAAa,WAAW;AACtB,QAAI,OAAO,cAAc,SAAS,GAAG;AACnC,WAAK,YAAY;AACjB,WAAK,mBAAmB,QAAQ,OAAO,YAAY,CAAC;AACpD,WAAK,YAAW;AAAA,IACjB;AAAA,EACF;AAAA,EACD,cAAc,aAAa;AACzB,SAAK,cAAc,eAAe,OAAO,cAAc,CAAC,KAAK;AAC7D,SAAK,WAAW,UAAU,OAAO,KAAK,EAAE,gBAAgB,GAAG,KAAK,WAAW;AAC3E,QAAI,KAAK,aAAa;AACpB,YAAM,iBAAiB,KAAK,WAAW,cAAc,MAAM,KAAK,EAAE,gBAAgB,KAAK,WAAW,CAAC;AACnG,UAAI,gBAAgB;AAClB,aAAK,oBAAoB,KAAK,kBAAkB,IAAI,SAAS;AAAA,UAC3D,WAAW,KAAK;AAAA,UAChB,mBAAmB,IAAI,KAAK,EAAE,kBAAkB;AAAA,QACjD,CAAA;AACD,aAAK,WAAW,SAAS,EAAE,KAAK,eAAe,YAAY,GAAE,CAAE;AAAA,MAChE;AAAA,IACF;AAAA,EACF;AAAA,EAOD,eAAe,OAAO,SAAS;AAC7B,QAAI,KAAK,SAAS,QAAQ,KAAK,MAAM,QAAQ;AAC3C,WAAK,aAAa,KAAK;AAAA,IACxB;AAAA,EACF;AAAA,EACD,OAAO;AACL,WAAO,KAAK,MAAM,KAAK;AAAA,EACxB;AAAA,EACD,cAAc;AACZ,QAAI,KAAK,OAAO;AACd,mBAAa,KAAK,KAAK;AAAA,IACxB;AACD,SAAK,QAAQ,WAAW,MAAM;AAC5B,WAAK,QAAQ;AACb,WAAK,QAAQ,MAAM,KAAK,WAAW,IAAI;AAAA,IACxC,GAAE,GAAG;AAAA,EACP;AAAA,EAED,UAAU,KAAK;AACb,QAAI;AACF,YAAM,MAAM,IAAI,IAAI,GAAG;AACvB,UAAI,aAAa,IAAI,iBAAiB,mBAAmB;AACzD,aAAO,IAAI;IACZ,SAAQ,KAAP;AACA,cAAQ,MAAM,GAAG;AACjB,aAAO;AAAA,IACR;AAAA,EACF;AAAA,EACD,EAAE,WAAW;AACX,WAAO,GAAG,KAAK,aAAa;AAAA,EAC7B;AAAA,EACD,WAAW,IAAI;AACb,QAAI,CAAC;AACH,aAAO;AACT,UAAM,EAAE,QAAS,IAAG;AACpB,WAAO,WAAW,WAAW,WAAW,cAAc,WAAW;AAAA,EAClE;AACH;AAGA,IAAI,gBAAgB;AAGpB,SAAS,OAAO;AAChB;AACA,SAAS,eAAe,GAAG,GAAG;AAC5B,SAAO,KAAK,IAAI,KAAK,IAAI,MAAM,KAAK,KAAK,OAAO,MAAM,YAAY,OAAO,MAAM;AACjF;AACA,SAAS,SAAS,OAAO,QAAQ,MAAM;AACrC,MAAI;AACJ,QAAM,cAA8B,oBAAI;AACxC,WAAS,IAAI,WAAW;AACtB,QAAI,eAAe,OAAO,SAAS,GAAG;AACpC,cAAQ;AACR,UAAI,MAAM;AACR,mBAAW,OAAO,aAAa;AAC7B,cAAI,KAAK;AAAA,QACV;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACD,WAAS,UAAU,KAAK;AACtB,gBAAY,IAAI,GAAG;AACnB,QAAI,YAAY,SAAS,GAAG;AAC1B,aAAO,MAAM,GAAG,KAAK;AAAA,IACtB;AACD,QAAI,KAAK;AACT,WAAO,MAAM;AACX,kBAAY,OAAO,GAAG;AACtB,UAAI,YAAY,SAAS,GAAG;AAC1B,gBAAQ,KAAI;AACZ,eAAO;AAAA,MACR;AAAA,IACP;AAAA,EACG;AACD,WAAS,SAAS,KAAK;AACrB,gBAAY,IAAI,GAAG;AACnB,QAAI,YAAY,SAAS,GAAG;AAC1B,aAAO,MAAM,GAAG,KAAK;AAAA,IACtB;AACD,WAAO,MAAM;AACX,kBAAY,OAAO,GAAG;AACtB,UAAI,YAAY,SAAS,GAAG;AAC1B,gBAAQ,KAAI;AACZ,eAAO;AAAA,MACR;AAAA,IACP;AAAA,EACG;AACD,WAAS,SAAS,WAAW;AAC3B,QAAI,cAAc,QAAQ;AACxB,UAAI,SAAS;AAAA,IACd;AACD,gBAAY,MAAK;AACjB,YAAQ,KAAI;AACZ,WAAO;AAAA,EACR;AACD,SAAO;AAAA,IACL,IAAI,QAAQ;AACV,UAAI,YAAY,SAAS,GAAG;AAC1B,eAAO,MAAM,GAAG,KAAK;AACrB;AACA,eAAO;AAAA,MACR;AACD,aAAO;AAAA,IACR;AAAA,IACD;AAAA,IACA;AAAA,IACA,SAAS;AAAA,EACb;AACA;AAGA,SAAS,cAAc,SAAS,SAAS;AACvC,MAAI,iBAAiB;AACrB,MAAI,iBAAiB;AACrB,MAAI,iBAAiB;AACrB,QAAM,EAAE,WAAW,QAAQ,aAAa,YAAY,KAAM,IAAG;AAC7D,QAAM,OAAO,CAAC,GAAG,UAAU;AACzB,MAAE,gBAAe;AACjB,QAAI,CAAC;AACH;AACF,QAAI,mBAAmB;AACvB,QAAI,mBAAmB;AACvB,QAAI,cAAc,KAAK;AACrB,yBAAmB,KAAK,MAAM,EAAE,QAAQ,cAAc;AAAA,IAC5D,WAAe,cAAc,KAAK;AAC5B,yBAAmB,KAAK,MAAM,EAAE,QAAQ,cAAc;AAAA,IAC5D,OAAW;AACL,yBAAmB,KAAK,MAAM,EAAE,QAAQ,cAAc;AACtD,yBAAmB,KAAK,MAAM,EAAE,QAAQ,cAAc;AAAA,IACvD;AACD,QAAI,UAAU,GAAa;AACzB,mBAAa,OAAO,SAAS,UAAU,EAAE,GAAG,kBAAkB,GAAG,iBAAgB,CAAE;AAAA,IACzF,OAAW;AACL,gBAAU,OAAO,SAAS,OAAO,EAAE,GAAG,kBAAkB,GAAG,iBAAgB,CAAE;AAAA,IAC9E;AAAA,EACL;AACE,UAAQ,iBAAiB,eAAe,QAAQ;AAChD,WAAS,SAAS,GAAG;AACnB,qBAAiB,EAAE;AACnB,MAAE,gBAAe;AACjB,QAAI,mBAAmB,SAAS;AAC9B;AAAA,IACD;AACD,qBAAiB,EAAE;AACnB,qBAAiB,EAAE;AACnB,YAAQ,iBAAiB,eAAe,IAAI;AAC5C,aAAS,KAAK,iBAAiB,aAAa,QAAQ;AACpD,aAAS,KAAK,iBAAiB,iBAAiB,QAAQ;AACxD,YAAQ,kBAAkB,EAAE,SAAS;AACrC,mBAAe,OAAO,SAAS,YAAW;AAAA,EAC3C;AACD,WAAS,uBAAuB;AAC9B,qBAAiB;AACjB,YAAQ,oBAAoB,eAAe,IAAI;AAC/C,aAAS,KAAK,oBAAoB,aAAa,QAAQ;AACvD,aAAS,KAAK,oBAAoB,iBAAiB,QAAQ;AAAA,EAC5D;AACD,WAAS,SAAS,GAAG;AACnB,QAAI,CAAC;AACH;AACF,MAAE,gBAAe;AACjB,SAAK,GAAG;AACR;EACD;AACD,WAAS,UAAU;AACjB;AACA,YAAQ,oBAAoB,eAAe,QAAQ;AAAA,EACpD;AACD,WAAS,OAAO;AACd;EACD;AACD,SAAO,EAAE,QAAO;AAClB;AAGA,IAAI,kBAAkB,QAAQ,iBAAgB,CAAE;AAChD,IAAI,kBAAkB,QAAQ,iBAAgB,CAAE;AAC7C,IAAC,YAAY,MAAM;AAAA,EACpB,YAAY,WAAW,QAAQ,MAAM;AACnC,SAAK,YAAY;AACjB,SAAK,kBAAkB,SAAS,cAAc,KAAK;AACnD,SAAK,SAAS;AAAA,MACZ,OAAO;AAAA,MACP,aAAa,MAAM;AACjB,eAAO;AAAA,UACL,OAAO;AAAA,UACP,QAAQ;AAAA,QAClB;AAAA,MACO;AAAA,MACD,aAAa,MAAM;AAAA,MACnB,gBAAgB,MAAM;AAAA,MACtB,UAAU,MAAM;AAAA,IACtB;AACI,SAAK,sBAAsB,gBAAgB,SAAS,MAAM;AACxD,UAAI,IAAI;AACR,UAAI,KAAK;AACP;AACF,YAAM,EAAE,OAAO,SAAS,QAAS,IAAG,KAAK,KAAK;AAC9C,YAAM,cAAc,KAAK,OAAO,eAAc;AAC9C,YAAM,EAAE,OAAO,WAAW,QAAQ,WAAU,IAAK,KAAK,OAAO;AAC7D,YAAM,EAAE,OAAO,WAAW,QAAQ,WAAU,IAAK,KAAK,KAAK;AAC3D,YAAM,eAAe,YAAY;AACjC,YAAM,eAAe,aAAa;AAClC,YAAM,SAAS,KAAK,IAAI,KAAK,MAAM,eAAe,QAAQ,GAAG,IAAI,KAAK,CAAC;AACvE,YAAM,SAAS,KAAK,IAAI,KAAK,MAAM,eAAe,QAAQ,GAAG,IAAI,KAAK,CAAC;AACvE,YAAM,UAAU,KAAK,MAAM,UAAU,YAAY;AACjD,YAAM,UAAU,KAAK,MAAM,UAAU,YAAY;AACjD,UAAI,KAAK,YAAY;AACnB,aAAK,WAAW,MAAM,QAAQ,GAAG,SAAS;AAC1C,aAAK,WAAW,MAAM,UAAU,WAAW,IAAI,SAAS;AACxD,aAAK,WAAW,MAAM,YAAY,cAAc;AAAA,MACjD;AACD,UAAI,KAAK,YAAY;AACnB,aAAK,WAAW,MAAM,SAAS,GAAG,SAAS;AAC3C,aAAK,WAAW,MAAM,UAAU,WAAW,IAAI,SAAS;AACxD,aAAK,WAAW,MAAM,YAAY,cAAc;AAAA,MACjD;AACD,OAAC,MAAM,KAAK,KAAK,OAAO,2BAA2B,OAAO,SAAS,GAAG,0BAA0B,OAAO,SAAS,GAAG,KAAK,IAAI,KAAK,OAAO,aAAa,KAAK;AAAA,IAC3J,GAAE,EAAE;AACL,SAAK,cAAc,MAAM;AACvB,UAAI,IAAI;AACR,YAAM,SAAS,KAAK,KAAK;AACzB,WAAK,cAAc;AAAA,QACjB,SAAS,OAAO;AAAA,QAChB,SAAS,OAAO;AAAA,QAChB,OAAO,OAAO;AAAA,MACtB;AACM,OAAC,MAAM,KAAK,KAAK,OAAO,2BAA2B,OAAO,SAAS,GAAG,yBAAyB,OAAO,SAAS,GAAG,KAAK,EAAE;AAAA,IAC/H;AACI,SAAK,UAAU,CAAC,oBAAoB;AAClC,UAAI,IAAI;AACR,UAAI,KAAK,aAAa;AACpB,cAAM,EAAE,EAAG,IAAG;AACd,cAAM,EAAE,OAAO,UAAS,IAAK,KAAK,OAAO;AACzC,cAAM,EAAE,OAAO,UAAS,IAAK,KAAK,KAAK;AACvC,cAAM,eAAe,YAAY;AACjC,cAAM,EAAE,MAAM,KAAM,IAAG,KAAK,gBAAgB,KAAK,WAAW;AAC5D,cAAM,UAAU,KAAK,MAAM,IAAI,YAAY;AAC3C,YAAI,UAAU,UAAU,KAAK,YAAY;AACzC,YAAI,UAAU,MAAM;AAClB,oBAAU;AAAA,QACpB,WAAmB,UAAU,MAAM;AACzB,oBAAU;AAAA,QACX;AACD,aAAK,KAAK,WAAW;AAAA,UACnB;AAAA,UACA,eAAe;AAAA,QACzB,CAAS;AACD,SAAC,MAAM,KAAK,KAAK,OAAO,2BAA2B,OAAO,SAAS,GAAG,qBAAqB,OAAO,SAAS,GAAG,KAAK,IAAI,OAAO;AAAA,MAC/H;AAAA,IACP;AACI,SAAK,UAAU,CAAC,oBAAoB;AAClC,UAAI,IAAI;AACR,UAAI,KAAK,aAAa;AACpB,cAAM,EAAE,EAAG,IAAG;AACd,cAAM,EAAE,QAAQ,WAAU,IAAK,KAAK,OAAO;AAC3C,cAAM,EAAE,QAAQ,WAAU,IAAK,KAAK,KAAK;AACzC,cAAM,eAAe,aAAa;AAClC,cAAM,EAAE,MAAM,KAAM,IAAG,KAAK,gBAAgB,KAAK,WAAW;AAC5D,cAAM,UAAU,KAAK,MAAM,IAAI,YAAY;AAC3C,YAAI,UAAU,UAAU,KAAK,YAAY;AACzC,YAAI,UAAU,MAAM;AAClB,oBAAU;AAAA,QACpB,WAAmB,UAAU,MAAM;AACzB,oBAAU;AAAA,QACX;AACD,aAAK,KAAK,WAAW;AAAA,UACnB;AAAA,UACA,eAAe;AAAA,QACzB,CAAS;AACD,SAAC,MAAM,KAAK,KAAK,OAAO,2BAA2B,OAAO,SAAS,GAAG,qBAAqB,OAAO,SAAS,GAAG,KAAK,IAAI,OAAO;AAAA,MAC/H;AAAA,IACP;AACI,SAAK,YAAY,MAAM;AACrB,UAAI,IAAI;AACR,WAAK,cAAc;AACnB,WAAK,OAAO;AACZ,OAAC,MAAM,KAAK,KAAK,OAAO,2BAA2B,OAAO,SAAS,GAAG,uBAAuB,OAAO,SAAS,GAAG,KAAK,EAAE;AAAA,IAC7H;AACI,SAAK,aAAa,CAAC,WAAW;AAC5B,YAAM,EAAE,SAAS,SAAS,MAAK,IAAK;AACpC,YAAM,cAAc,KAAK,KAAK;AAC9B,YAAM,UAAU,CAAA;AAChB,cAAQ,gBAAgB,SAAS,OAAO,GAAG;AACzC,cAAM,EAAE,MAAM,KAAI,IAAK,KAAK,gBAAgB,WAAW;AACvD,YAAI,aAAa;AACjB,YAAI,UAAU,MAAM;AAClB,uBAAa;AAAA,QACvB,WAAmB,UAAU,MAAM;AACzB,uBAAa;AAAA,QACd;AACD,gBAAQ,UAAU;AAAA,MACnB;AACD,cAAQ,gBAAgB,SAAS,OAAO,GAAG;AACzC,cAAM,EAAE,MAAM,KAAI,IAAK,KAAK,gBAAgB,WAAW;AACvD,YAAI,aAAa;AACjB,YAAI,UAAU,MAAM;AAClB,uBAAa;AAAA,QACvB,WAAmB,UAAU,MAAM;AACzB,uBAAa;AAAA,QACd;AACD,gBAAQ,UAAU;AAAA,MACnB;AACD,cAAQ,gBAAgB,SAAS,KAAK,GAAG;AACvC,YAAI,WAAW;AACf,cAAM,cAAc,KAAK,OAAO,eAAc;AAC9C,YAAI,QAAQ,aAAa;AACvB,qBAAW;AAAA,QACZ;AACD,gBAAQ,QAAQ;AAAA,MACjB;AACD,WAAK,KAAK,WAAW,cAAc,eAAe,CAAA,GAAI,OAAO,GAAG;AAAA,QAC9D,eAAe;AAAA,MAChB,CAAA,CAAC;AACF,WAAK,OAAO;IAClB;AACI,SAAK,gBAAgB,YAAY,KAAK,EAAE,qBAAqB;AAC7D,SAAK,YAAY;AACjB,SAAK,SAAS;AACd,SAAK,QAAQ,OAAO;AACpB,SAAK,WAAW,OAAO,YAAY;AACnC,SAAK,OAAO;AACZ,SAAK,KAAI;AAAA,EACV;AAAA,EACD,EAAE,WAAW;AACX,WAAO,GAAG,KAAK,aAAa;AAAA,EAC7B;AAAA,EACD,YAAY,KAAK;AACf,SAAK,WAAW;AAChB,SAAK,QAAO;AACZ,QAAI,CAAC,KAAK,UAAU;AAClB,WAAK,KAAI;AAAA,IACV;AAAA,EACF;AAAA,EACD,gBAAgB,QAAQ;AACtB,UAAM,EAAE,OAAO,UAAS,IAAK,KAAK,OAAO;AACzC,UAAM,EAAE,OAAO,UAAS,IAAK,KAAK,KAAK;AACvC,UAAM,eAAe,YAAY;AACjC,UAAM,QAAQ,OAAO;AACrB,UAAM,QAAQ,KAAK,IAAI,KAAK,MAAM,eAAe,QAAQ,GAAG,IAAI,KAAK,CAAC;AACtE,UAAM,cAAc,aAAa,IAAI;AACrC,UAAM,OAAO,CAAC,cAAc;AAC5B,UAAM,OAAO,cAAc;AAC3B,WAAO,EAAE,MAAM;EAChB;AAAA,EACD,gBAAgB,QAAQ;AACtB,UAAM,EAAE,QAAQ,WAAU,IAAK,KAAK,OAAO;AAC3C,UAAM,EAAE,QAAQ,WAAU,IAAK,KAAK,KAAK;AACzC,UAAM,eAAe,aAAa;AAClC,UAAM,QAAQ,OAAO;AACrB,UAAM,QAAQ,KAAK,IAAI,KAAK,MAAM,eAAe,QAAQ,GAAG,IAAI,KAAK,CAAC;AACtE,UAAM,eAAe,cAAc,IAAI;AACvC,UAAM,OAAO,CAAC,eAAe;AAC7B,UAAM,OAAO,eAAe;AAC5B,WAAO,EAAE,MAAM;EAChB;AAAA,EACD,OAAO;AACL,SAAK,aAAa,SAAS,cAAc,KAAK;AAC9C,SAAK,WAAW,UAAU,IAAI,KAAK,EAAE,aAAa,CAAC;AACnD,QAAI,KAAK,OAAO,eAAe;AAC7B,WAAK,aAAa,cAAc,KAAK,YAAY;AAAA,QAC/C,WAAW;AAAA,QACX,QAAQ,KAAK;AAAA,QACb,WAAW,KAAK;AAAA,QAChB,aAAa,KAAK;AAAA,MAC1B,CAAO;AAAA,IACF;AACD,WAAO,OAAO,KAAK,WAAW,OAAO;AAAA,MACnC,OAAO;AAAA,MACP,SAAS;AAAA,IACf,CAAK;AACD,SAAK,sBAAsB,SAAS,cAAc,KAAK;AACvD,SAAK,oBAAoB,UAAU,IAAI,KAAK,EAAE,uBAAuB,CAAC;AACtE,SAAK,oBAAoB,YAAY,KAAK,UAAU;AACpD,SAAK,aAAa,SAAS,cAAc,KAAK;AAC9C,SAAK,WAAW,UAAU,IAAI,KAAK,EAAE,aAAa,CAAC;AACnD,QAAI,KAAK,OAAO,eAAe;AAC7B,WAAK,aAAa,cAAc,KAAK,YAAY;AAAA,QAC/C,WAAW;AAAA,QACX,QAAQ,KAAK;AAAA,QACb,WAAW,KAAK;AAAA,QAChB,aAAa,KAAK;AAAA,MAC1B,CAAO;AAAA,IACF;AACD,WAAO,OAAO,KAAK,WAAW,OAAO;AAAA,MACnC,QAAQ;AAAA,MACR,SAAS;AAAA,IACf,CAAK;AACD,SAAK,sBAAsB,SAAS,cAAc,KAAK;AACvD,SAAK,oBAAoB,UAAU,IAAI,KAAK,EAAE,uBAAuB,CAAC;AACtE,SAAK,oBAAoB,YAAY,KAAK,UAAU;AACpD,SAAK,gBAAgB,OAAO,KAAK,qBAAqB,KAAK,mBAAmB;AAC9E,SAAK,UAAU,YAAY,KAAK,eAAe;AAC/C,SAAK,KAAK,UAAU,GAAG,mBAAmB,KAAK,eAAe;AAC9D,SAAK,gBAAe;AAAA,EACrB;AAAA,EACD,UAAU;AACR,SAAK,KAAK,UAAU,IAAI,mBAAmB,KAAK,eAAe;AAC/D,QAAI,KAAK,cAAc,KAAK,qBAAqB;AAC/C,WAAK,oBAAoB,YAAY,KAAK,UAAU;AACpD,WAAK,WAAW;AAChB,WAAK,oBAAoB;AACzB,WAAK,aAAa;AAAA,IACnB;AACD,QAAI,KAAK,cAAc,KAAK,qBAAqB;AAC/C,WAAK,oBAAoB,YAAY,KAAK,UAAU;AACpD,WAAK,WAAW;AAChB,WAAK,oBAAoB;AACzB,WAAK,aAAa;AAAA,IACnB;AACD,QAAI,KAAK,YAAY;AACnB,WAAK,WAAW;AAChB,WAAK,aAAa;AAAA,IACnB;AACD,QAAI,KAAK,YAAY;AACnB,WAAK,WAAW;AAChB,WAAK,aAAa;AAAA,IACnB;AAAA,EACF;AACH;AAGA,IAAI,mBAAmB,QAAQ,iBAAgB,CAAE;AACjD,IAAI,iBAAiB;AACrB,IAAI,WAAW,CAAC,KAAK,SAAS,MAAM,EAAE,OAAO,IAAI,OAAO,QAAQ,IAAI,QAAQ,KAAK,IAAI,KAAK,WAAW,IAAI,YAAY,KAAM,IAAG;AAC9H,IAAI,eAAe,CAAC,SAAS;AAC3B,MAAI,QAAQ,KAAK,QAAQ;AACvB,WAAO,IAAI,SAAS,KAAK,OAAO,KAAK,GAAG,IAAI;AAAA,EAChD,OAAS;AACL,WAAO,IAAI,SAAS,QAAQ,IAAI,GAAG,IAAI;AAAA,EACxC;AACH;AACA,IAAI,cAAc,CAAC,SAAS,YAAY;AACtC,MAAI,CAAC,WAAW,CAAC,SAAS;AACxB,WAAO;AAAA,EACR;AACD,MAAI,QAAQ,WAAW,QAAQ;AAC7B,WAAO;AACT,SAAO,QAAQ,MAAM,CAAC,OAAO,UAAU;AACrC,QAAI,IAAI,IAAI,IAAI,IAAI,IAAI;AACxB,UAAM,SAAS,QAAQ;AACvB,WAAO,MAAM,SAAS,OAAO,UAAU,KAAK,MAAM,QAAQ,OAAO,SAAS,GAAG,aAAa,KAAK,OAAO,QAAQ,OAAO,SAAS,GAAG,YAAY,KAAK,MAAM,QAAQ,OAAO,SAAS,GAAG,cAAc,KAAK,OAAO,QAAQ,OAAO,SAAS,GAAG,aAAa,KAAK,MAAM,QAAQ,OAAO,SAAS,GAAG,WAAW,KAAK,OAAO,QAAQ,OAAO,SAAS,GAAG;AAAA,EACjV,CAAG;AACH;AACG,IAAC,yBAAyB;AAAA,EAC3B,MAAM;AAAA,EACN,MAAM,SAAS;AACb,QAAI,IAAI,IAAI;AACZ,UAAM,OAAO,QAAQ;AACrB,QAAI,CAAC;AACH,YAAM,IAAI,MAAM,4FAA4F;AAC9G,UAAM,SAAS,KAAK,QAAQ,UAAS,MAAO,OAAO,SAAS,GAAG,IAAI,CAAC,EAAE,KAAK,KAAM,MAAK,SAAS,KAAK,IAAI,CAAC,EAAE,OAAO,OAAO;AACzH,QAAI,CAAC,SAAS,MAAM,WAAW;AAC7B,YAAM,IAAI,MAAM,mFAAmF;AACrG,QAAI,MAAM,GAAG,IAAI,WAAW,KAAK;AAC/B,YAAM,IAAI,MAAM,uHAAuH;AACzI,UAAM,YAAY,QAAQ;AAC1B,UAAM,UAAU,QAAQ,cAAa,KAAM,CAAA;AAC3C,QAAI,kBAAkB,KAAK,QAAQ,mBAAmB,OAAO,KAAK;AAClE,QAAI,EAAE,OAAO,SAAS,cAAc,KAAK,iBAAiB,IAAI;AAC5D,cAAQ,KAAK,kEAAkE,QAAQ,gBAAgB;AACvG,uBAAiB;AAAA,IAClB;AACD,UAAM,MAAM,QAAQ,OAAO,aAAa,QAAQ,QAAO,CAAE;AACzD,QAAI,sBAAsB,QAAQ,OAAO;AACzC,UAAM,WAAW;AACjB,aAAS,IAAI,MAAM,IAAI,0BAA0B,QAAQ,OAAO,CAAC;AACjE,UAAM,SAAS,QAAQ,cAAc,QAAQ,EAAE,KAAK,IAAI,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,EAAC,CAAE;AACrG,UAAM,wBAAwB,CAAC,MAAM,aAAa;AAChD,YAAM,eAAe,QAAQ,QAAQ;AACrC,mBAAa,QAAQ,GAAG,MAAM,QAAQ;AACtC,aAAO,MAAM,gBAAgB,OAAO,SAAS,aAAa,QAAQ,IAAI,MAAM,QAAQ;AAAA,IAC1F;AACI,UAAM,eAAe,CAAC,UAAU;AAC9B,YAAM,iBAAiB,MAAM;AAC7B,YAAM,OAAO,kBAAkB,OAAO,SAAS,eAAe,MAAM,GAAG,EAAE;AACzE,UAAI,aAAa,MAAM,UAAU,CAAC,MAAM,UAAU;AAChD,YAAI;AACJ,cAAM,KAAK,MAAM,KAAK,SAAS,OAAO,MAAM,OAAO,QAAQ,CAAC;AAC5D,eAAO,MAAM;AAAA,MACrB,CAAO;AACD,UAAI,eAAe,IAAI;AACrB,qBAAa;AAAA,MACd;AACD,aAAO;AAAA,IACb;AACI,QAAI,YAAY,aAAa,IAAI;AACjC,UAAM,aAAa,SAAS,WAAW,CAAC,QAAQ;AAC9C,UAAI,SAAS;AACb,aAAO,sBAAsB,wBAAwB,CAAC,YAAY;AAChE,cAAM,EAAE,MAAO,IAAG;AAClB,YAAI,UAAU,QAAQ,OAAO;AAC3B,gBAAM,aAAa,aAAa,QAAQ,IAAI;AAC5C,cAAI,UAAU;AAAA,QACf;AAAA,MACT,CAAO;AAAA,IACP,CAAK;AACD,aAAS,IAAI,MAAM;AACjB,iBAAW,QAAO;AAAA,IACxB,CAAK;AACD,QAAI,QAAQ,UAAU;AACpB,UAAI,MAAM,SAAS;AACjB,gBAAQ,KAAK,mCAAmC,MAAM,uCAAuC;AAC/F,UAAI,kBAAkB;AACtB,YAAM,QAAQ,QAAQ;AACtB,UAAI,SAAS,MAAM,YAAY;AAC7B,cAAM,SAAS,MAAM,aAAc,EAAC;AACpC,YAAI,WAAW,QAAQ,KAAK,WAAW,SAAS,MAAM,QAAQ;AAC5D,gBAAM,IAAI,MAAM,sCAAsC,WAAW,yBAAyB,MAAM,QAAQ;AAAA,QACzG;AACD,YAAI,QAAQ,CAAC,YAAY;AACvB,gBAAM,EAAE,MAAM,IAAG,IAAK,OAAO,WAAW;AACxC,4BAAkB;AAClB,gBAAM,UAAU,MAAM,IAAI,CAAC,GAAG,UAAU;AACtC,gBAAI;AACJ,mBAAO;AAAA,cACL,OAAO,MAAM,EAAE,SAAS,OAAO,MAAM,OAAO,QAAQ,CAAC;AAAA,cACrD,KAAK,EAAE,OAAO,EAAE,OAAO,QAAQ,EAAE,QAAQ,KAAK,EAAE,IAAK;AAAA,YACnE;AAAA,UACA,CAAW;AACD,cAAI,CAAC,YAAY,QAAQ,OAAO,GAAG;AACjC,kBAAM,aAAa,SAAS;AAC5B,kBAAM,UAAU,WAAW,OAAO;AAAA,UACnC;AACD,cAAI,SAAS,QAAQ,WAAW,OAAO,QAAQ,CAAC,KAAK;AACnD,oBAAQ,QAAQ,EAAE,OAAO,EAAE,MAAM,eAAgB,EAAA,CAAE,EAAE,KAAK,MAAM;AAC9D,kBAAI,qCAAqC,aAAa,gBAAgB;AACtE,sBAAQ,aAAa,GAAG,aAAa,gBAAgB,EAAE,KAAK,MAAM;AAChE,mCAAmB,gBAAgB,IAAI;AAAA,cACvD,CAAe;AAAA,YACf,CAAa;AAAA,UACb,OAAiB;AACL,+BAAmB,gBAAgB,KAAK;AAAA,UACzC;AAAA,QACX,CAAS,EAAE,KAAK,OAAO,QAAQ;AACrB,gBAAM,SAAS,WAAW,OAAO,MAAM,MAAM;AAC7C,cAAI,KAAK;AACP,gBAAI,qCAAqC,aAAa,gBAAgB;AACtE,kBAAM,aAAa,GAAG,aAAa,gBAAgB;AAAA,UACpD;AAAA,QACX,CAAS;AAAA,MACF;AAAA,IACF;AACD,UAAM,OAAO,KAAK,QAAQ,QAAS,MAAK,OAAO,SAAS,GAAG,QAAQ,QAAQ,aAAc,EAAC,aAAa;AACvG,QAAI,mBAAmB;AACvB,UAAM,WAAW,OAAO,OAAO,WAAW;AACxC,UAAI;AACJ,UAAI,CAAC,QAAQ,cAAe;AAC1B;AACF,YAAM,SAAS,QAAQ,aAAc,EAAC,aAAY,EAAG;AACrD,UAAI,CAAC;AACH;AACF,YAAM,IAAI,MAAM;AAChB,YAAM,QAAQ,MAAM,EAAE,SAAS,OAAO,MAAM,OAAO,QAAQ,CAAC;AAC5D,UAAI,CAAC,OAAO,KAAK,CAAC,UAAU,MAAM,SAAS,IAAI,GAAG;AAChD,cAAM,QAAQ,QAAQ,EAAE,OAAO,EAAE,MAAM,KAAK,EAAE,OAAO,EAAE,OAAO,QAAQ,EAAE,QAAQ,KAAK,EAAE,IAAG,EAAI,EAAA,CAAE;AAAA,MACjG;AACD,UAAI,QAAQ;AACV,eAAO,KAAK,2BAA2B,aAAa,MAAM;AAAA,MAC3D;AACD,YAAM,QAAQ,aAAa,GAAG,aAAa,MAAM;AAAA,IACvD;AACI,UAAM,WAAW,CAAC,UAAU;AAC1B,UAAI;AACJ,UAAI,CAAC,QAAQ,iBAAiB;AAC5B,gBAAQ,KAAK,wEAAwE;AACrF,eAAO;AAAA,MACR;AACD,UAAI,EAAE,KAAK,SAAS,QAAQ,MAAM,SAAS;AACzC,gBAAQ,KAAK,wBAAwB,QAAQ,uBAAuB,MAAM,SAAS;AACnF,eAAO;AAAA,MACR;AACD,YAAM,SAAS,QAAQ,aAAc,EAAC,aAAY,EAAG;AACrD,UAAI,CAAC,QAAQ;AACX,gBAAQ,KAAK,sCAAsC,mEAAmE;AACtH,eAAO;AAAA,MACR;AACD,YAAM,IAAI,MAAM;AAChB,YAAM,QAAQ,MAAM,EAAE,SAAS,OAAO,MAAM,OAAO,QAAQ,CAAC;AAC5D,UAAI,CAAC,OAAO,KAAK,CAAC,UAAU,MAAM,SAAS,IAAI,GAAG;AAChD,gBAAQ,QAAQ,EAAE,OAAO,EAAE,MAAM,KAAK,EAAE,OAAO,EAAE,OAAO,QAAQ,EAAE,QAAQ,KAAK,EAAE,IAAG,EAAI,EAAA,CAAE;AAAA,MAC3F;AACD,eAAS,KAAK;AACd,aAAO;AAAA,IACb;AACI,UAAM,WAAW,MAAM,SAAS,WAAW,QAAQ,CAAC;AACpD,UAAM,WAAW,MAAM,SAAS,WAAW,QAAQ,CAAC;AACpD,UAAM,YAAY,OAAO,EAAE,OAAO,WAAW,OAAO,QAAQ,MAAM,OAAM;AACxE,UAAM,iBAAiB,MAAM;AAC3B,YAAM,EAAE,OAAO,OAAM,IAAK,IAAI,KAAM,KAAI;AACxC,UAAI,SAAS,QAAQ;AACnB,aAAK,oBAAoB;AAAA,UACvB,SAAS,CAAC,QAAQ;AAAA,UAClB,SAAS,CAAC,SAAS;AAAA,UACnB;AAAA,UACA;AAAA,UACA,eAAe;AAAA,QACzB,CAAS;AACD,cAAM,WAAW,KAAK,OAAO,SAAS,QAAQ,yBAAyB,IAAI;AAC3E,cAAM,WAAW,KAAK,OAAO;AAC7B,aAAK,eAAe;AAAA,UAClB,SAAS;AAAA,UACT,gBAAgB,MAAM;AAAA,UACtB,gBAAgB,MAAM;AAAA,UACtB,SAAS;AAAA,UACT,SAAS;AAAA,UACT;AAAA,UACA;AAAA,QACV,CAAS;AACD,2BAAmB,IAAI;AAAA,MACxB;AAAA,IACP;AACI,UAAM,WAAW,MAAM;AACrB,UAAI,QAAQ,iBAAiB;AAC3B,YAAI,QAAQ,cAAc;AACxB,uBAAa,gBAAgB;AAC7B,6BAAmB;AAAA,QACpB;AACD,YAAI,mBAAmB;AACrB;AACF,cAAM,EAAE,OAAO,OAAM,IAAK,IAAI,KAAM,KAAI;AACxC,YAAI,SAAS,QAAQ;AACnB,6BAAmB,WAAW,MAAM;AAClC,+BAAmB;AACnB,kBAAM,EAAE,QAAQ,KAAM,IAAG;AACzB,kBAAM,SAAS,KAAK,IAAI,KAAK,OAAO,KAAK,SAAS,QAAQ,MAAM;AAChE,kBAAM,SAAS,KAAK,IAAI,KAAK,QAAQ,KAAK,QAAQ,SAAS,KAAK;AAChE,kBAAM,IAAI,SAAS,OAAO;AAC1B,kBAAM,IAAI,SAAS,OAAO;AAC1B,kBAAM,IAAI,OAAO,UAAU,IAAI;AAC/B,kBAAM,IAAI,OAAO,UAAU,IAAI;AAC/B,mBAAO,SAAS,EAAE,KAAK,IAAI,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,EAAG,CAAA;AAAA,UACzE,GAAE,EAAE;AAAA,QACN;AAAA,MACF;AAAA,IACP;AACI,aAAS,IAAI,MAAM;AACjB,mBAAa,gBAAgB;AAC7B,yBAAmB;AAAA,IACzB,CAAK;AACD,UAAM,qBAAqB,CAAC,QAAQ,OAAO,UAAU,UAAU;AAC7D,YAAM,EAAE,KAAK,SAAS,SAAS,OAAO,OAAQ,IAAG,OAAO;AACxD,WAAK,SAAS,QAAQ,OAAO,QAAQ,KAAK,SAAS,GAAG;AACpD,aAAK,oBAAoB;AAAA,UACvB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,eAAe,UAAU,eAAe;AAAA,QAClD,CAAS;AAAA,MACF;AAAA,IACP;AACI,aAAS,IAAI,OAAO,wBAAwB,MAAM,mBAAmB,OAAO,IAAI,CAAC,CAAC;AAClF,UAAM,cAAc,MAAM;AACxB,YAAM,EAAE,OAAO,OAAM,IAAK,IAAI,KAAM,KAAI;AACxC,aAAO,EAAE,OAAO,SAAS,GAAG,QAAQ,UAAU;IACpD;AACI,UAAM,MAAM,QAAQ;AACpB,UAAM,MAAM,SAAS,IAAI,mBAAmB,KAAK,OAAO,UAAU,YAAY,MAAM,QAAQ,WAAW,QAAQ,WAAW,CAAC;AAC3H,QAAI,WAAW,QAAQ,yBAAyB;AAChD,QAAI,iBAAiB;AACrB,QAAI,MAAM;AACV,QAAI,QAAQ,sBAAsB;AAChC,UAAI,oBAAoB,IAAI;AAAA,IAC7B;AACD,UAAM,OAAO,QAAQ;AACrB,UAAM,kBAAkB,MAAM;AAC5B,UAAI,KAAK,KAAK,KAAK;AACnB,YAAM,wBAAwB,MAAM,OAAO,OAAO,MAAM,QAAQ,QAAO,MAAO,OAAO,SAAS,IAAI,UAAU,OAAO,SAAS,IAAI,gBAAgB,OAAO,SAAS,IAAI,yBAAyB,OAAO,KAAK;AACzM,UAAI,CAAC,IAAI,YAAY,yBAAyB,WAAW;AACvD;MACD;AAAA,IACP;AACI,QAAI,QAAQ,QAAQ,mBAAmB,IAAI,eAAe;AACxD,eAAS,KAAK,MAAM;AAClB,YAAI,cAAc,iBAAiB,SAAS,eAAe;AAC3D,eAAO,MAAM,IAAI,cAAc,oBAAoB,SAAS,eAAe;AAAA,MACnF,CAAO;AAAA,IACF;AACD,YAAQ,UAAU,IAAI,aAAa;AACnC,QAAI,QAAQ,wBAAwB;AAClC,WAAK,yBAAyB;AAAA,IAC/B;AACD;AACA,aAAS,KAAK,MAAM;AAClB,WAAK,UAAU,GAAG,iBAAiB,cAAc;AACjD,aAAO,MAAM,KAAK,UAAU,IAAI,iBAAiB,cAAc;AAAA,IACrE,CAAK;AACD,QAAI,QAAQ,YAAY,QAAQ,YAAY,IAAI,QAAQ;AACtD,YAAM,OAAO,IAAI;AACjB,YAAM,WAAW,OAAO,QAAQ,aAAa,aAAa,QAAQ,SAAS,IAAI,IAAI,QAAQ;AAC3F,YAAM,MAAM,CAAC,GAAG,MAAM,KAAK,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI;AACpD,aAAO,SAAS;AAAA,QACd,KAAK;AAAA,QACL,SAAS,IAAI,SAAS,GAAG,KAAK,KAAK,IAAI,KAAK,QAAQ;AAAA,QACpD,SAAS,IAAI,SAAS,GAAG,KAAK,MAAM,IAAI,KAAK,SAAS;AAAA,QACtD,OAAO,IAAI,SAAS,OAAO,KAAK,KAAK;AAAA,QACrC,QAAQ,IAAI,SAAS,QAAQ,KAAK,MAAM;AAAA,MAChD,CAAO;AAAA,IACF;AACD,aAAS,KAAK,MAAM;AAClB,WAAK,UAAU,GAAG,2BAA2B,QAAQ;AACrD,aAAO,MAAM,KAAK,UAAU,IAAI,2BAA2B,QAAQ;AAAA,IACzE,CAAK;AACD,uBAAmB,IAAI;AACvB,aAAS,IAAI,QAAQ,QAAQ,GAAG,kBAAkB,CAAC,eAAe;AAChE,UAAI,YAAY,CAAC,UAAU;AAAA,IAC5B,CAAA,CAAC;AACF,UAAM,iBAAiB,MAAM;AAC3B,YAAM,EAAE,KAAM,IAAG;AACjB,YAAM,EAAE,OAAO,OAAQ,IAAG,YAAW;AACrC,aAAO,KAAK,IAAI,KAAK,SAAS,QAAQ,KAAK,QAAQ,KAAK;AAAA,IAC9D;AACI,UAAM,WAAW,MAAM;AACrB,aAAO,KAAK,OAAO;AAAA,IACzB;AACI,UAAM,6BAA6B,OAAO,UAAU,QAAQ,YAAY;AACtE,UAAI,KAAK;AACT,OAAC,OAAO,MAAM,QAAQ,OAAO,SAAS,KAAK,yBAAyB,OAAO,SAAS,IAAI,SAAQ,MAAO,OAAO,MAAM,KAAK,MAAM;AAC/H,YAAM,cAAc,MAAM,WAAW;AACrC,UAAI,CAAC,aAAa;AAChB,cAAM,IAAI,MAAM,wCAAwC;AAAA,MACzD;AACD,YAAM,EAAE,OAAO,QAAQ,IAAG,IAAK;AAC/B,YAAM,MAAM,SAAS,cAAc,KAAK;AACxC,UAAI,QAAQ;AACZ,UAAI,SAAS;AACb,UAAI,cAAc;AAClB,YAAM,IAAI,QAAQ,CAAC,YAAY;AAC7B,YAAI,SAAS;AACb,YAAI,MAAM;AAAA,MAClB,CAAO;AACD,eAAS,UAAU,KAAK,GAAG,GAAG,OAAO,QAAQ,GAAG,GAAG,UAAU,OAAO,WAAW,MAAM;AACrF,YAAM,mBAAmB,KAAK;AAC9B,UAAI,CAAC,kBAAkB;AACrB,cAAM,IAAI,MAAM,8CAA8C;AAAA,MAC/D;AACD,YAAM,eAAe,QAAQ;AAC7B,UAAI,aAAa,kBAAkB;AACjC,cAAM,aAAa,iBAAiB,wBAAwB,UAAU,kBAAkB,UAAU,OAAO,WAAW,QAAQ;AAAA,UAC1H,SAAS;AAAA,UACT,SAAS;AAAA,UACT,OAAO,UAAU,UAAU,KAAK,IAAI,SAAS,OAAO,UAAU,MAAM,IAAI;AAAA,QAClF,CAAS;AAAA,MACT,OAAa;AACL,cAAM,KAAK,wBAAwB,UAAU,kBAAkB,UAAU,OAAO,WAAW,QAAQ;AAAA,UACjG,SAAS;AAAA,UACT,SAAS;AAAA,UACT,OAAO,UAAU,UAAU,KAAK,IAAI,SAAS,OAAO,UAAU,MAAM,IAAI;AAAA,QAClF,CAAS;AAAA,MACF;AAAA,IACP;AACI,QAAI;AACJ,QAAI,QAAQ,cAAc;AACxB,eAAS,KAAK,MAAM;AAClB,oBAAY,IAAI,UAAU,IAAI,YAAY;AAAA,UACxC,OAAO,QAAQ;AAAA,UACf;AAAA,UACA;AAAA,UACA;AAAA,UACA,aAAa,MAAM,QAAQ,cAAe;AAAA,UAC1C,wBAAwB,QAAQ;AAAA,QACjC,GAAE,IAAI;AACP,eAAO,MAAM,aAAa,OAAO,SAAS,UAAU;MAC5D,CAAO;AAAA,IACF;AACD,UAAM,aAAa,CAAC,WAAW;AAC7B,UAAI,QAAQ,cAAe,KAAI,WAAW;AACxC,YAAI,CAAC,WAAW;AACd,gBAAM,IAAI,MAAM,iFAAiF;AAAA,QAClG;AACD,kBAAU,WAAW,MAAM;AAC3B;AAAA,MACD;AACD,YAAM,IAAI,MAAM,4DAA4D;AAAA,IAClF;AACI,YAAQ,QAAQ,GAAG,WAAW,MAAM,SAAU,CAAA;AAC9C,UAAM,iBAAiB,CAAC,UAAU,WAAW;AAC3C,aAAO,YAAY,EAAE,MAAM,8BAA8B,OAAO,QAAQ,OAAO,UAAU,OAAQ,GAAE,GAAG;AACtG,aAAO;AAAA,IACb;AACI,UAAM,YAAY,OAAO,QAAQ;AAC/B,UAAI;AACF,cAAM,IAAI,IAAI,IAAI,GAAG;AACrB,UAAE,aAAa,IAAI,KAAK,KAAK,IAAK,EAAC,SAAQ,CAAE;AAC7C,cAAM,EAAE;MACT,SAAQ,GAAP;AAAA,MACD;AACD,YAAM,OAAO,MAAM,MAAM,GAAG;AAC5B,UAAI,CAAC,KAAK;AACR,cAAM,IAAI,MAAM,mCAAmC,SAAS,MAAM,KAAK,QAAQ;AACjF,YAAM,OAAO,MAAM,KAAK;AACxB,YAAM,SAAS,IAAI;AACnB,aAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,eAAO,SAAS,MAAM,QAAQ,OAAO,MAAM;AAC3C,eAAO,UAAU,MAAM,OAAO,OAAO,KAAK;AAC1C,eAAO,cAAc,IAAI;AAAA,MACjC,CAAO;AAAA,IACP;AACI,UAAM,QAAQ,YAAY;AACxB,UAAI;AACJ,YAAM,MAAM;AACZ,YAAM,YAAY,MAAM;AACxB,YAAM,EAAE,OAAO,OAAQ,IAAG;AAC1B,UAAI,WAAW,KAAK,MAAM,KAAK,GAAG,YAAY,KAAK,MAAM,MAAM;AAC/D,UAAI,WAAW,KAAK;AAClB,mBAAW;AACX,oBAAY,KAAK,MAAM,SAAS,WAAW,KAAK;AAAA,MACjD;AACD,UAAI,YAAY,KAAK;AACnB,oBAAY;AACZ,mBAAW,KAAK,MAAM,QAAQ,YAAY,MAAM;AAAA,MACjD;AACD,YAAM,SAAS,QAAQ,aAAc,EAAC,aAAY,EAAG;AACrD,YAAM,eAAe,SAAS,cAAc,QAAQ;AACpD,mBAAa,QAAQ;AACrB,mBAAa,SAAS;AACtB,YAAM,QAAQ,aAAa,WAAW,IAAI;AAC1C,YAAM,YAAY,SAAS,cAAc,QAAQ;AACjD,gBAAU,QAAQ;AAClB,gBAAU,SAAS;AACnB,YAAM,KAAK,UAAU,WAAW,IAAI;AACpC,UAAI,CAAC,MAAM,CAAC;AACV,eAAO,eAAe,KAAK,IAAI;AACjC,YAAM,EAAE,MAAK,IAAK,MAAM,OAAO;AAC/B,YAAM,MAAM,IAAI,MAAM;AAAA,QACpB,QAAQ,CAAC,UAAU,OAAO,UAAU,MAAM;AAAA,QAC1C,aAAa,UAAU,QAAQ,UAAU,SAAS,MAAM;AAAA,QACxD,UAAU;AAAA,MAClB,CAAO;AACD,eAAS,QAAQ,GAAG,QAAQ,MAAM,QAAQ,EAAE,OAAO;AACjD,cAAM,IAAI,MAAM;AAChB,cAAM,EAAE,OAAO,QAAQ,QAAQ,SAAS,IAAK,IAAG;AAChD,cAAM,MAAM,MAAM,UAAU,GAAG;AAC/B,cAAM,MAAM,SAAS,cAAc,KAAK;AACxC,cAAM,IAAI,QAAQ,CAAC,YAAY;AAC7B,cAAI,SAAS;AACb,cAAI,MAAM;AAAA,QACpB,CAAS;AACD,cAAM,UAAU,KAAK,GAAG,CAAC;AACzB,WAAG,UAAU,GAAG,GAAG,UAAU,SAAS;AACtC,cAAM,QAAQ,MAAM,EAAE,SAAS,OAAO,MAAM,OAAO,QAAQ,CAAC;AAC5D,YAAI,OAAO,KAAK,CAAC,UAAU,MAAM,QAAQ,IAAI,GAAG;AAC9C,gBAAM,SAAS,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,KAAK,IAAI,UAAU,QAAQ,QAAQ,UAAU,SAAS,OAAO;AAC7G,gBAAM,QAAQ,GAAG,aAAa;AAC9B,gBAAM,eAAe,QAAQ;AAC7B,cAAI,aAAa,kBAAkB;AACjC,kBAAM,aAAa,iBAAiB,wBAAwB,IAAI,OAAO,UAAU,OAAO,UAAU,QAAQ,MAAM;AAAA,UAC5H,OAAiB;AACL,kBAAM,KAAK;AAAA,cACT;AAAA,cACA;AAAA,cACA,UAAU;AAAA,cACV,UAAU;AAAA,cACV;AAAA,YACd;AAAA,UACW;AACD,cAAI;AACF,kBAAM,SAAS,UAAU,UAAU,WAAW;AAC9C,kBAAM,SAAS,SAAS,cAAc,KAAK;AAC3C,kBAAM,IAAI,QAAQ,CAAC,YAAY;AAC7B,qBAAO,SAAS;AAChB,qBAAO,MAAM;AAAA,YAC3B,CAAa;AACD,kBAAM,UAAU,QAAQ,GAAG,GAAG,UAAU,SAAS;AAAA,UAClD,SAAQ,KAAP;AACA,oBAAQ,KAAK,GAAG;AAAA,UACjB;AAAA,QACF;AACD,cAAM,SAAS,aAAa,UAAU,cAAc,GAAG;AACvD,YAAI,QAAQ;AACV,cAAI,QAAO;AACb,YAAI,SAAS,QAAQ,QAAQ,GAAG,GAAG,UAAU,WAAW,IAAI,MAAM;AAClE,cAAM,UAAU,GAAG,GAAG,UAAU,SAAS;AACzC,cAAM,WAAW,KAAK,MAAM,QAAQ,KAAK,MAAM,SAAS,GAAG;AAC3D,YAAI,WAAW;AACb,yBAAe,UAAU,IAAI;AAAA,MAChC;AACD,YAAM,OAAO,IAAI,OAAO,aAAa;AACrC,YAAM,QAAQ,IAAI;AAClB,aAAO,eAAe,KAAK,EAAE,KAAK,MAAM,MAAK,CAAE;AAAA,IACrD;AACI,aAAS,IAAI,OAAO,QAAQ,WAAW,CAAC,OAAO;AAC7C,UAAI,GAAG,QAAQ,GAAG,KAAK,QAAQ,iCAAiC,GAAG,KAAK,SAAS,QAAQ,OAAO;AAC9F,cAAO,EAAC,MAAM,CAAC,QAAQ;AACrB,kBAAQ,KAAK,GAAG;AAChB,yBAAe,KAAK,IAAI;AAAA,QAClC,CAAS;AAAA,MACF;AAAA,IACF,CAAA,CAAC;AACF,UAAM,sBAAsB,CAAC,QAAQ;AACnC,UAAI,oBAAoB,GAAG;AAAA,IACjC;AACI,UAAM,cAAc,CAAC,QAAQ;AAC3B,UAAI,YAAY,GAAG;AACnB,UAAI,QAAQ;AAAiB;AAC7B,UAAI,WAAW;AACb,kBAAU,YAAY,GAAG;AAAA,MAC1B;AAAA,IACP;AACI,UAAM,aAAa,EAAE,KAAK,MAAM,SAAS,UAAU,UAAU,UAAU,WAAW,OAAO,KAAK,qBAAqB,aAAa,YAAY,gBAAgB,UAAU,aAAa;AACnL,aAAS,IAAI,OAAO,QAAQ,WAAW,CAAC,OAAO;AAC7C,UAAI,GAAG,SAAS,2BAA2B;AACzC,YAAI,OAAO,WAAW;AACpB,mBAAS,KAAK,MAAM;AAClB,kBAAM,QAAQ,OAAO,mBAAmB,OAAO,iBAAiC,oBAAI,IAAG;AACvF,kBAAM,IAAI,UAAU;AACpB,mBAAO,MAAM,MAAM,OAAO,UAAU;AAAA,UAChD,CAAW;AACH,gBAAQ,IAAI,UAAU;AAAA,MACvB;AAAA,IACF,CAAA,CAAC;AACF,WAAO;AAAA,EACR;AACH;AACA,IAAI,kBAAkB,cAAc,aAAa;AAAA,EAC/C,YAAY,QAAQ;AAClB,UAAM,MAAM;AACZ,SAAK,WAAW,OAAO;AAAA,EACxB;AAAA,EACD,cAAc;AACZ,UAAM,YAAW;AAAA,EAClB;AAAA,EACD,eAAe,OAAO,QAAQ;AAC5B,QAAI,WAAW,aAAa,KAAK,OAAO,CAAC,KAAK,IAAI;AAChD;AACF,QAAI,KAAK;AACP,WAAK,IAAI,mCAAmC,QAAQ,GAAG,IAAI,SAAS;AACtE,QAAI,KAAK,SAAS,QAAQ,KAAK,MAAM,QAAQ;AAC3C,WAAK,SAAS,KAAK;AAAA,IACzB,OAAW;AACL,cAAQ,KAAK,8BAA8B,2BAA2B,KAAK,MAAM,SAAS,IAAI;AAAA,IAC/F;AAAA,EACF;AACH;AACA,SAAS,mBAAmB,KAAK,OAAO,UAAU,YAAY,MAAM,WAAW,aAAa;AAC1F,MAAI,YAAY,aAAa;AAC7B,QAAM,MAAM,IAAI,gBAAgB,EAAE,OAAO,UAAU,IAAI,UAAU,UAAU,UAAS,CAAE;AACtF,MAAI,MAAM;AACV,MAAI,aAAa,IAAI,UAAU;AAC/B,MAAI,YAAY,IAAI,SAAS;AAC7B,MAAI,QAAQ,IAAI,WAAW,UAAU,CAAC,cAAc;AAClD,QAAI,aAAa,SAAS;AAAA,EAC3B,CAAA,CAAC;AACF,MAAI,eAAe,MAAM;AACvB,UAAM,oCAAmC,GAAI,iBAAiB,SAAS,MAAM;AAC3E,YAAM,EAAE,OAAO,WAAW,QAAQ,WAAU,IAAK,IAAI,KAAM,KAAI;AAC/D,UAAI,CAAC,aAAa,CAAC,YAAY;AAC7B;AAAA,MACD;AACD,YAAM,EAAE,MAAK,IAAK,KAAK;AACvB,YAAM,EAAE,OAAO,WAAW,KAAK;AAC/B,YAAM,aAAa,KAAK,OAAO,IAAI,YAAY,QAAQ,SAAS,IAAI,GAAG;AACvE,YAAM,aAAa,KAAK,OAAO,IAAI,aAAa,QAAQ,UAAU,IAAI,GAAG;AACzE,UAAI,cAAc,MAAM,WAAW,SAAS,eAAe;AAAA,IAC5D,GAAE,EAAE;AACL;AACA,UAAM,wBAAwB,MAAM;AAClC,WAAK,UAAU,GAAG,iBAAiB,gCAAgC;AACnE,WAAK,UAAU,GAAG,mBAAmB,gCAAgC;AACrE,aAAO,MAAM;AACX,aAAK,UAAU,IAAI,mBAAmB,gCAAgC;AACtE,aAAK,UAAU,IAAI,iBAAiB,gCAAgC;AAAA,MAC5E;AAAA,IACA;AACI,QAAI,QAAQ,KAAK,qBAAqB;AAAA,EACvC;AACD,SAAO;AACT;AACG,IAAC,UAAU,CAAC,UAAU,UAAU,OAAO;AACxC,MAAI,MAAM;AACV,MAAI,QAAQ,IAAI;AACd,UAAM,OAAO,OAAO,IAAI,KAAK,EAAE,MAAM,QAAQ,GAAE,CAAE;AAAA,EAClD;AACD,SAAO,SAAS,EAAE,MAAM,IAAI,MAAM,KAAK,KAAK,YAAY,QAAQ,WAAY,CAAA;AAC9E;AAGG,IAAC,UAAU;;"}