lwc 2.50.0 → 3.0.1

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.
Files changed (118) hide show
  1. package/README.md +18 -8
  2. package/aria-reflection.d.ts +7 -0
  3. package/aria-reflection.js +7 -0
  4. package/babel-plugin-component.d.ts +7 -0
  5. package/babel-plugin-component.js +7 -0
  6. package/compiler.d.ts +7 -0
  7. package/compiler.js +7 -0
  8. package/engine-core.d.ts +7 -0
  9. package/engine-core.js +7 -0
  10. package/engine-dom.d.ts +7 -0
  11. package/engine-dom.js +7 -0
  12. package/engine-server.d.ts +7 -0
  13. package/engine-server.js +7 -0
  14. package/errors.d.ts +7 -0
  15. package/errors.js +7 -0
  16. package/features.d.ts +7 -0
  17. package/features.js +7 -0
  18. package/{types.d.ts → index.d.ts} +1 -1
  19. package/index.js +2 -85
  20. package/module-resolver.d.ts +7 -0
  21. package/module-resolver.js +7 -0
  22. package/package.json +42 -29
  23. package/rollup-plugin.d.ts +7 -0
  24. package/rollup-plugin.js +7 -0
  25. package/shared.d.ts +7 -0
  26. package/shared.js +7 -0
  27. package/style-compiler.d.ts +7 -0
  28. package/style-compiler.js +7 -0
  29. package/synthetic-shadow.d.ts +7 -0
  30. package/synthetic-shadow.js +7 -0
  31. package/template-compiler.d.ts +7 -0
  32. package/template-compiler.js +7 -0
  33. package/wire-service.d.ts +7 -0
  34. package/wire-service.js +7 -0
  35. package/dist/engine-dom/esm/es2017/engine-dom.js +0 -8391
  36. package/dist/engine-dom/esm/es2017/engine-dom.js.map +0 -1
  37. package/dist/engine-dom/iife/es2017/engine-dom.js +0 -8429
  38. package/dist/engine-dom/iife/es2017/engine-dom.js.map +0 -1
  39. package/dist/engine-dom/iife/es2017/engine-dom.min.js +0 -2
  40. package/dist/engine-dom/iife/es2017/engine-dom.min.js.map +0 -1
  41. package/dist/engine-dom/iife/es2017/engine-dom_debug.js +0 -6912
  42. package/dist/engine-dom/iife/es2017/engine-dom_debug.js.map +0 -1
  43. package/dist/engine-dom/iife/es5/engine-dom.js +0 -8815
  44. package/dist/engine-dom/iife/es5/engine-dom.js.map +0 -1
  45. package/dist/engine-dom/iife/es5/engine-dom.min.js +0 -2
  46. package/dist/engine-dom/iife/es5/engine-dom.min.js.map +0 -1
  47. package/dist/engine-dom/iife/es5/engine-dom_debug.js +0 -7325
  48. package/dist/engine-dom/iife/es5/engine-dom_debug.js.map +0 -1
  49. package/dist/engine-dom/umd/es2017/engine-dom.js +0 -8430
  50. package/dist/engine-dom/umd/es2017/engine-dom.js.map +0 -1
  51. package/dist/engine-dom/umd/es2017/engine-dom.min.js +0 -2
  52. package/dist/engine-dom/umd/es2017/engine-dom.min.js.map +0 -1
  53. package/dist/engine-dom/umd/es2017/engine-dom_debug.js +0 -6913
  54. package/dist/engine-dom/umd/es2017/engine-dom_debug.js.map +0 -1
  55. package/dist/engine-dom/umd/es5/engine-dom.js +0 -8816
  56. package/dist/engine-dom/umd/es5/engine-dom.js.map +0 -1
  57. package/dist/engine-dom/umd/es5/engine-dom.min.js +0 -2
  58. package/dist/engine-dom/umd/es5/engine-dom.min.js.map +0 -1
  59. package/dist/engine-dom/umd/es5/engine-dom_debug.js +0 -7326
  60. package/dist/engine-dom/umd/es5/engine-dom_debug.js.map +0 -1
  61. package/dist/engine-server/commonjs/es2017/engine-server.js +0 -14541
  62. package/dist/engine-server/commonjs/es2017/engine-server.js.map +0 -1
  63. package/dist/engine-server/commonjs/es2017/engine-server.min.js +0 -2
  64. package/dist/engine-server/commonjs/es2017/engine-server.min.js.map +0 -1
  65. package/dist/engine-server/esm/es2017/engine-server.js +0 -14517
  66. package/dist/engine-server/esm/es2017/engine-server.js.map +0 -1
  67. package/dist/synthetic-shadow/esm/es2017/synthetic-shadow.js +0 -4757
  68. package/dist/synthetic-shadow/esm/es2017/synthetic-shadow.js.map +0 -1
  69. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow.js +0 -4762
  70. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow.js.map +0 -1
  71. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow.min.js +0 -49
  72. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow.min.js.map +0 -1
  73. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow_debug.js +0 -4574
  74. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow_debug.js.map +0 -1
  75. package/dist/synthetic-shadow/iife/es5/synthetic-shadow.js +0 -4737
  76. package/dist/synthetic-shadow/iife/es5/synthetic-shadow.js.map +0 -1
  77. package/dist/synthetic-shadow/iife/es5/synthetic-shadow.min.js +0 -49
  78. package/dist/synthetic-shadow/iife/es5/synthetic-shadow.min.js.map +0 -1
  79. package/dist/synthetic-shadow/iife/es5/synthetic-shadow_debug.js +0 -4538
  80. package/dist/synthetic-shadow/iife/es5/synthetic-shadow_debug.js.map +0 -1
  81. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow.js +0 -4764
  82. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow.js.map +0 -1
  83. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow.min.js +0 -49
  84. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow.min.js.map +0 -1
  85. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow_debug.js +0 -4576
  86. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow_debug.js.map +0 -1
  87. package/dist/synthetic-shadow/umd/es5/synthetic-shadow.js +0 -4739
  88. package/dist/synthetic-shadow/umd/es5/synthetic-shadow.js.map +0 -1
  89. package/dist/synthetic-shadow/umd/es5/synthetic-shadow.min.js +0 -49
  90. package/dist/synthetic-shadow/umd/es5/synthetic-shadow.min.js.map +0 -1
  91. package/dist/synthetic-shadow/umd/es5/synthetic-shadow_debug.js +0 -4540
  92. package/dist/synthetic-shadow/umd/es5/synthetic-shadow_debug.js.map +0 -1
  93. package/dist/wire-service/esm/es2017/wire-service.js +0 -195
  94. package/dist/wire-service/esm/es2017/wire-service.js.map +0 -1
  95. package/dist/wire-service/iife/es2017/wire-service.js +0 -204
  96. package/dist/wire-service/iife/es2017/wire-service.js.map +0 -1
  97. package/dist/wire-service/iife/es2017/wire-service.min.js +0 -2
  98. package/dist/wire-service/iife/es2017/wire-service.min.js.map +0 -1
  99. package/dist/wire-service/iife/es2017/wire-service_debug.js +0 -204
  100. package/dist/wire-service/iife/es2017/wire-service_debug.js.map +0 -1
  101. package/dist/wire-service/iife/es5/wire-service.js +0 -247
  102. package/dist/wire-service/iife/es5/wire-service.js.map +0 -1
  103. package/dist/wire-service/iife/es5/wire-service.min.js +0 -2
  104. package/dist/wire-service/iife/es5/wire-service.min.js.map +0 -1
  105. package/dist/wire-service/iife/es5/wire-service_debug.js +0 -247
  106. package/dist/wire-service/iife/es5/wire-service_debug.js.map +0 -1
  107. package/dist/wire-service/umd/es2017/wire-service.js +0 -205
  108. package/dist/wire-service/umd/es2017/wire-service.js.map +0 -1
  109. package/dist/wire-service/umd/es2017/wire-service.min.js +0 -2
  110. package/dist/wire-service/umd/es2017/wire-service.min.js.map +0 -1
  111. package/dist/wire-service/umd/es2017/wire-service_debug.js +0 -205
  112. package/dist/wire-service/umd/es2017/wire-service_debug.js.map +0 -1
  113. package/dist/wire-service/umd/es5/wire-service.js +0 -248
  114. package/dist/wire-service/umd/es5/wire-service.js.map +0 -1
  115. package/dist/wire-service/umd/es5/wire-service.min.js +0 -2
  116. package/dist/wire-service/umd/es5/wire-service.min.js.map +0 -1
  117. package/dist/wire-service/umd/es5/wire-service_debug.js +0 -248
  118. package/dist/wire-service/umd/es5/wire-service_debug.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"engine-server.js","sources":["../../../../../@lwc/engine-server/dist/index.js"],"sourcesContent":["/* proxy-compat-disable */\n/**\n * Copyright (C) 2023 salesforce.com, inc.\n */\n/* proxy-compat-disable */\n/**\n * Copyright (C) 2023 salesforce.com, inc.\n */\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nfunction invariant(value, msg) {\n if (!value) {\n throw new Error(`Invariant Violation: ${msg}`);\n }\n}\nfunction isTrue$1(value, msg) {\n if (!value) {\n throw new Error(`Assert Violation: ${msg}`);\n }\n}\nfunction isFalse$1(value, msg) {\n if (value) {\n throw new Error(`Assert Violation: ${msg}`);\n }\n}\nfunction fail(msg) {\n throw new Error(msg);\n}\n\nvar assert = /*#__PURE__*/Object.freeze({\n __proto__: null,\n fail: fail,\n invariant: invariant,\n isFalse: isFalse$1,\n isTrue: isTrue$1\n});\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nconst { assign, create, defineProperties, defineProperty, freeze, getOwnPropertyDescriptor: getOwnPropertyDescriptor$1, getOwnPropertyNames: getOwnPropertyNames$1, getPrototypeOf: getPrototypeOf$1, hasOwnProperty: hasOwnProperty$1, isFrozen, keys, seal, setPrototypeOf, } = Object;\nconst { isArray: isArray$1 } = Array;\nconst { concat: ArrayConcat$1, copyWithin: ArrayCopyWithin, every: ArrayEvery, fill: ArrayFill, filter: ArrayFilter, find: ArrayFind, findIndex: ArrayFindIndex, includes: ArrayIncludes, indexOf: ArrayIndexOf, join: ArrayJoin, map: ArrayMap, pop: ArrayPop, push: ArrayPush$1, reduce: ArrayReduce, reverse: ArrayReverse, shift: ArrayShift, slice: ArraySlice, some: ArraySome, sort: ArraySort, splice: ArraySplice, unshift: ArrayUnshift, forEach, } = Array.prototype;\nconst { fromCharCode: StringFromCharCode } = String;\nconst { charCodeAt: StringCharCodeAt, replace: StringReplace, split: StringSplit, slice: StringSlice, toLowerCase: StringToLowerCase, } = String.prototype;\nfunction isUndefined$1(obj) {\n return obj === undefined;\n}\nfunction isNull(obj) {\n return obj === null;\n}\nfunction isTrue(obj) {\n return obj === true;\n}\nfunction isFalse(obj) {\n return obj === false;\n}\nfunction isBoolean(obj) {\n return typeof obj === 'boolean';\n}\nfunction isFunction$1(obj) {\n return typeof obj === 'function';\n}\nfunction isObject(obj) {\n return typeof obj === 'object';\n}\nfunction isString(obj) {\n return typeof obj === 'string';\n}\nfunction isNumber(obj) {\n return typeof obj === 'number';\n}\nfunction noop() {\n /* Do nothing */\n}\nconst OtS$1 = {}.toString;\nfunction toString$1(obj) {\n if (obj && obj.toString) {\n // Arrays might hold objects with \"null\" prototype So using\n // Array.prototype.toString directly will cause an error Iterate through\n // all the items and handle individually.\n if (isArray$1(obj)) {\n return ArrayJoin.call(ArrayMap.call(obj, toString$1), ',');\n }\n return obj.toString();\n }\n else if (typeof obj === 'object') {\n return OtS$1.call(obj);\n }\n else {\n return obj + '';\n }\n}\nfunction getPropertyDescriptor(o, p) {\n do {\n const d = getOwnPropertyDescriptor$1(o, p);\n if (!isUndefined$1(d)) {\n return d;\n }\n o = getPrototypeOf$1(o);\n } while (o !== null);\n}\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\n/**\n * According to the following list, there are 48 aria attributes of which two (ariaDropEffect and\n * ariaGrabbed) are deprecated:\n * https://www.w3.org/TR/wai-aria-1.1/#x6-6-definitions-of-states-and-properties-all-aria-attributes\n *\n * The above list of 46 aria attributes is consistent with the following resources:\n * https://github.com/w3c/aria/pull/708/files#diff-eacf331f0ffc35d4b482f1d15a887d3bR11060\n * https://wicg.github.io/aom/spec/aria-reflection.html\n *\n * NOTE: If you update this list, please update test files that implicitly reference this list!\n * Searching the codebase for `aria-flowto` and `ariaFlowTo` should be good enough to find all usages.\n */\nconst AriaPropertyNames = [\n 'ariaActiveDescendant',\n 'ariaAtomic',\n 'ariaAutoComplete',\n 'ariaBusy',\n 'ariaChecked',\n 'ariaColCount',\n 'ariaColIndex',\n 'ariaColSpan',\n 'ariaControls',\n 'ariaCurrent',\n 'ariaDescribedBy',\n 'ariaDetails',\n 'ariaDisabled',\n 'ariaErrorMessage',\n 'ariaExpanded',\n 'ariaFlowTo',\n 'ariaHasPopup',\n 'ariaHidden',\n 'ariaInvalid',\n 'ariaKeyShortcuts',\n 'ariaLabel',\n 'ariaLabelledBy',\n 'ariaLevel',\n 'ariaLive',\n 'ariaModal',\n 'ariaMultiLine',\n 'ariaMultiSelectable',\n 'ariaOrientation',\n 'ariaOwns',\n 'ariaPlaceholder',\n 'ariaPosInSet',\n 'ariaPressed',\n 'ariaReadOnly',\n 'ariaRelevant',\n 'ariaRequired',\n 'ariaRoleDescription',\n 'ariaRowCount',\n 'ariaRowIndex',\n 'ariaRowSpan',\n 'ariaSelected',\n 'ariaSetSize',\n 'ariaSort',\n 'ariaValueMax',\n 'ariaValueMin',\n 'ariaValueNow',\n 'ariaValueText',\n 'role',\n];\nconst { AriaAttrNameToPropNameMap, AriaPropNameToAttrNameMap } = /*@__PURE__*/ (() => {\n const AriaAttrNameToPropNameMap = create(null);\n const AriaPropNameToAttrNameMap = create(null);\n // Synthetic creation of all AOM property descriptors for Custom Elements\n forEach.call(AriaPropertyNames, (propName) => {\n const attrName = StringToLowerCase.call(StringReplace.call(propName, /^aria/, () => 'aria-'));\n AriaAttrNameToPropNameMap[attrName] = propName;\n AriaPropNameToAttrNameMap[propName] = attrName;\n });\n return { AriaAttrNameToPropNameMap, AriaPropNameToAttrNameMap };\n})();\nfunction isAriaAttribute(attrName) {\n return attrName in AriaAttrNameToPropNameMap;\n}\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\n// See browser support for globalThis:\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis#browser_compatibility\n/* istanbul ignore next */\n// @ts-ignore\nconst _globalThis = typeof globalThis === 'object' ? globalThis : window;\nconst KEY__SHADOW_RESOLVER = '$shadowResolver$';\nconst KEY__SHADOW_STATIC = '$shadowStaticNode$';\nconst KEY__SYNTHETIC_MODE = '$$lwc-synthetic-mode';\nconst KEY__SCOPED_CSS = '$scoped$';\nconst KEY__NATIVE_GET_ELEMENT_BY_ID = '$nativeGetElementById$';\nconst KEY__NATIVE_QUERY_SELECTOR_ALL = '$nativeQuerySelectorAll$';\n\n/*\n * Copyright (c) 2022, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nconst HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\nconst XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace';\nconst SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\nconst XLINK_NAMESPACE = 'http://www.w3.org/1999/xlink';\n\n/*\n * Copyright (c) 2020, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\n// Void elements are elements that self-close even without an explicit solidus (slash),\n// e.g. `</tagName>` or `<tagName />`. For instance, `<meta>` closes on its own; no need for a slash.\n// These only come from HTML; there are no void elements in the SVG or MathML namespaces.\n// See: https://html.spec.whatwg.org/multipage/syntax.html#syntax-tags\nconst VOID_ELEMENTS = [\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'link',\n 'meta',\n 'source',\n 'track',\n 'wbr',\n];\n// These elements have been deprecated but preserving their usage for backwards compatibility\n// until we can officially deprecate them from LWC.\n// See: https://html.spec.whatwg.org/multipage/obsolete.html#obsolete-but-conforming-features\nconst DEPRECATED_VOID_ELEMENTS = ['param', 'keygen', 'menuitem'];\nconst VOID_ELEMENTS_SET = /*@__PURE__*/ new Set([...VOID_ELEMENTS, ...DEPRECATED_VOID_ELEMENTS]);\nfunction isVoidElement(name, namespace) {\n return namespace === HTML_NAMESPACE && VOID_ELEMENTS_SET.has(name.toLowerCase());\n}\n\n/*\n * Copyright (c) 2020, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nconst CAMEL_REGEX = /-([a-z])/g;\n/**\n * Maps boolean attribute name to supported tags: 'boolean attr name' => Set of allowed tag names\n * that supports them.\n */\nconst BOOLEAN_ATTRIBUTES = /*@__PURE__@*/ new Map([\n ['autofocus', /*@__PURE__@*/ new Set(['button', 'input', 'keygen', 'select', 'textarea'])],\n ['autoplay', /*@__PURE__@*/ new Set(['audio', 'video'])],\n ['checked', /*@__PURE__@*/ new Set(['command', 'input'])],\n [\n 'disabled',\n /*@__PURE__@*/ new Set([\n 'button',\n 'command',\n 'fieldset',\n 'input',\n 'keygen',\n 'optgroup',\n 'select',\n 'textarea',\n ]),\n ],\n ['formnovalidate', /*@__PURE__@*/ new Set(['button'])],\n ['hidden', /*@__PURE__@*/ new Set()],\n ['loop', /*@__PURE__@*/ new Set(['audio', 'bgsound', 'marquee', 'video'])],\n ['multiple', /*@__PURE__@*/ new Set(['input', 'select'])],\n ['muted', /*@__PURE__@*/ new Set(['audio', 'video'])],\n ['novalidate', /*@__PURE__@*/ new Set(['form'])],\n ['open', /*@__PURE__@*/ new Set(['details'])],\n ['readonly', /*@__PURE__@*/ new Set(['input', 'textarea'])],\n ['readonly', /*@__PURE__@*/ new Set(['input', 'textarea'])],\n ['required', /*@__PURE__@*/ new Set(['input', 'select', 'textarea'])],\n ['reversed', /*@__PURE__@*/ new Set(['ol'])],\n ['selected', /*@__PURE__@*/ new Set(['option'])],\n]);\nfunction isBooleanAttribute(attrName, tagName) {\n const allowedTagNames = BOOLEAN_ATTRIBUTES.get(attrName);\n return (allowedTagNames !== undefined &&\n (allowedTagNames.size === 0 || allowedTagNames.has(tagName)));\n}\n// This list is based on https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes\nconst GLOBAL_ATTRIBUTE = /*@__PURE__*/ new Set([\n 'accesskey',\n 'autocapitalize',\n 'autofocus',\n 'class',\n 'contenteditable',\n 'contextmenu',\n 'dir',\n 'draggable',\n 'enterkeyhint',\n 'exportparts',\n 'hidden',\n 'id',\n 'inputmode',\n 'is',\n 'itemid',\n 'itemprop',\n 'itemref',\n 'itemscope',\n 'itemtype',\n 'lang',\n 'nonce',\n 'part',\n 'slot',\n 'spellcheck',\n 'style',\n 'tabindex',\n 'title',\n 'translate',\n]);\nfunction isGlobalHtmlAttribute(attrName) {\n return GLOBAL_ATTRIBUTE.has(attrName);\n}\n// These are HTML standard prop/attribute IDL mappings, but are not predictable based on camel/kebab-case conversion\nconst SPECIAL_PROPERTY_ATTRIBUTE_MAPPING = /*@__PURE__@*/ new Map([\n ['accessKey', 'accesskey'],\n ['readOnly', 'readonly'],\n ['tabIndex', 'tabindex'],\n ['bgColor', 'bgcolor'],\n ['colSpan', 'colspan'],\n ['rowSpan', 'rowspan'],\n ['contentEditable', 'contenteditable'],\n ['crossOrigin', 'crossorigin'],\n ['dateTime', 'datetime'],\n ['formAction', 'formaction'],\n ['isMap', 'ismap'],\n ['maxLength', 'maxlength'],\n ['minLength', 'minlength'],\n ['noValidate', 'novalidate'],\n ['useMap', 'usemap'],\n ['htmlFor', 'for'],\n]);\n/**\n * Map associating previously transformed HTML property into HTML attribute.\n */\nconst CACHED_PROPERTY_ATTRIBUTE_MAPPING = /*@__PURE__@*/ new Map();\nfunction htmlPropertyToAttribute(propName) {\n const ariaAttributeName = AriaPropNameToAttrNameMap[propName];\n if (!isUndefined$1(ariaAttributeName)) {\n return ariaAttributeName;\n }\n const specialAttributeName = SPECIAL_PROPERTY_ATTRIBUTE_MAPPING.get(propName);\n if (!isUndefined$1(specialAttributeName)) {\n return specialAttributeName;\n }\n const cachedAttributeName = CACHED_PROPERTY_ATTRIBUTE_MAPPING.get(propName);\n if (!isUndefined$1(cachedAttributeName)) {\n return cachedAttributeName;\n }\n let attributeName = '';\n for (let i = 0, len = propName.length; i < len; i++) {\n const code = StringCharCodeAt.call(propName, i);\n if (code >= 65 && // \"A\"\n code <= 90 // \"Z\"\n ) {\n attributeName += '-' + StringFromCharCode(code + 32);\n }\n else {\n attributeName += StringFromCharCode(code);\n }\n }\n CACHED_PROPERTY_ATTRIBUTE_MAPPING.set(propName, attributeName);\n return attributeName;\n}\n/**\n * Map associating previously transformed kabab-case attributes into camel-case props.\n */\nconst CACHED_KEBAB_CAMEL_MAPPING = /*@__PURE__@*/ new Map();\nfunction kebabCaseToCamelCase(attrName) {\n let result = CACHED_KEBAB_CAMEL_MAPPING.get(attrName);\n if (isUndefined$1(result)) {\n result = StringReplace.call(attrName, CAMEL_REGEX, (g) => g[1].toUpperCase());\n CACHED_KEBAB_CAMEL_MAPPING.set(attrName, result);\n }\n return result;\n}\n\n/*\n * Copyright (c) 2020, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nconst ESCAPED_CHARS = {\n '\"': '&quot;',\n \"'\": '&#x27;',\n '<': '&lt;',\n '>': '&gt;',\n '&': '&amp;',\n};\nfunction htmlEscape(str, attrMode = false) {\n const searchValue = attrMode ? /[\"&]/g : /[\"'<>&]/g;\n return str.replace(searchValue, (char) => ESCAPED_CHARS[char]);\n}\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\n// Increment whenever the LWC template compiler changes\nconst LWC_VERSION = \"2.50.0\";\nconst LWC_VERSION_COMMENT_REGEX = /\\/\\*LWC compiler v([\\d.]+)\\*\\/\\s*}/;\n/** version: 2.50.0 */\n\n/* proxy-compat-disable */\n/**\n * Copyright (C) 2023 salesforce.com, inc.\n */\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nconst features = {\n DUMMY_TEST_FLAG: null,\n ENABLE_FORCE_NATIVE_SHADOW_MODE_FOR_TEST: null,\n ENABLE_MIXED_SHADOW_MODE: null,\n ENABLE_NATIVE_CUSTOM_ELEMENT_LIFECYCLE: null,\n ENABLE_WIRE_SYNC_EMIT: null,\n DISABLE_LIGHT_DOM_UNSCOPED_CSS: null,\n ENABLE_FROZEN_TEMPLATE: null,\n DISABLE_ARIA_REFLECTION_POLYFILL: null,\n};\n// eslint-disable-next-line no-restricted-properties\nif (!_globalThis.lwcRuntimeFlags) {\n Object.defineProperty(_globalThis, 'lwcRuntimeFlags', { value: create(null) });\n}\n// eslint-disable-next-line no-restricted-properties\nconst flags = _globalThis.lwcRuntimeFlags;\n/**\n * Set the value at runtime of a given feature flag. This method only be invoked once per feature\n * flag. It is meant to be used during the app initialization.\n */\nfunction setFeatureFlag(name, value) {\n if (!isBoolean(value)) {\n const message = `Failed to set the value \"${value}\" for the runtime feature flag \"${name}\". Runtime feature flags can only be set to a boolean value.`;\n if (process.env.NODE_ENV !== 'production') {\n throw new TypeError(message);\n }\n else {\n // eslint-disable-next-line no-console\n console.error(message);\n return;\n }\n }\n if (isUndefined$1(features[name])) {\n const availableFlags = keys(features)\n .map((name) => `\"${name}\"`)\n .join(', ');\n // eslint-disable-next-line no-console\n console.warn(`Failed to set the value \"${value}\" for the runtime feature flag \"${name}\" because it is undefined. Available flags: ${availableFlags}.`);\n return;\n }\n // This may seem redundant, but `process.env.NODE_ENV === 'test-karma-lwc'` is replaced by Karma tests\n if (process.env.NODE_ENV === 'test-karma-lwc' || process.env.NODE_ENV !== 'production') {\n // Allow the same flag to be set more than once outside of production to enable testing\n flags[name] = value;\n }\n else {\n // Disallow the same flag to be set more than once in production\n const runtimeValue = flags[name];\n if (!isUndefined$1(runtimeValue)) {\n // eslint-disable-next-line no-console\n console.error(`Failed to set the value \"${value}\" for the runtime feature flag \"${name}\". \"${name}\" has already been set with the value \"${runtimeValue}\".`);\n return;\n }\n defineProperty(flags, name, { value });\n }\n}\n/**\n * Set the value at runtime of a given feature flag. This method should only be used for testing\n * purposes. It is a no-op when invoked in production mode.\n */\nfunction setFeatureFlagForTest(name, value) {\n // This may seem redundant, but `process.env.NODE_ENV === 'test-karma-lwc'` is replaced by Karma tests\n if (process.env.NODE_ENV === 'test-karma-lwc' || process.env.NODE_ENV !== 'production') {\n setFeatureFlag(name, value);\n }\n}\n/** version: 2.50.0 */\n\n/*\n * Copyright (c) 2020, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\n/**\n * The following constructor might be used in either the constructor or the connectedCallback. In\n * order to ensure that the component evaluates, we attach those mock constructors to the global\n * object.\n * Also note that Event is defined in Node 16+, but CustomEvent is not, so they have to be\n * polyfilled separately.\n */\nif (typeof Event !== 'function') {\n class Event {\n }\n defineProperty(_globalThis, 'Event', {\n value: Event,\n configurable: true,\n writable: true,\n });\n}\nif (typeof CustomEvent !== 'function') {\n class CustomEvent extends Event {\n }\n defineProperty(_globalThis, 'CustomEvent', {\n value: CustomEvent,\n configurable: true,\n writable: true,\n });\n}\n\n/* proxy-compat-disable */\n/**\n * Copyright (C) 2023 salesforce.com, inc.\n */\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nfunction detect(propName, prototype) {\n return isUndefined$1(getOwnPropertyDescriptor$1(prototype, propName));\n}\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nfunction createAriaPropertyPropertyDescriptor(attrName) {\n // Note that we need to call this.{get,set,has,remove}Attribute rather than dereferencing\n // from Element.prototype, because these methods are overridden in LightningElement.\n return {\n get() {\n // reflect what's in the attribute\n return this.hasAttribute(attrName) ? this.getAttribute(attrName) : null;\n },\n set(newValue) {\n // reflect into the corresponding attribute\n if (isNull(newValue)) {\n this.removeAttribute(attrName);\n }\n else {\n this.setAttribute(attrName, newValue);\n }\n },\n configurable: true,\n enumerable: true,\n };\n}\nfunction patch$1(propName, prototype) {\n const attrName = AriaPropNameToAttrNameMap[propName];\n const descriptor = createAriaPropertyPropertyDescriptor(attrName);\n defineProperty(prototype, propName, descriptor);\n}\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nfunction applyAriaReflection(prototype = Element.prototype) {\n const ElementPrototypeAriaPropertyNames = keys(AriaPropNameToAttrNameMap);\n for (let i = 0, len = ElementPrototypeAriaPropertyNames.length; i < len; i += 1) {\n const propName = ElementPrototypeAriaPropertyNames[i];\n if (detect(propName, prototype)) {\n patch$1(propName, prototype);\n }\n }\n}\n/** version: 2.50.0 */\n\n/* proxy-compat-disable */\n/**\n * Copyright (C) 2023 salesforce.com, inc.\n */\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nfunction getComponentTag(vm) {\n return `<${StringToLowerCase.call(vm.tagName)}>`;\n}\n// TODO [#1695]: Unify getComponentStack and getErrorComponentStack\nfunction getComponentStack(vm) {\n const stack = [];\n let prefix = '';\n while (!isNull(vm.owner)) {\n ArrayPush$1.call(stack, prefix + getComponentTag(vm));\n vm = vm.owner;\n prefix += '\\t';\n }\n return ArrayJoin.call(stack, '\\n');\n}\nfunction getErrorComponentStack(vm) {\n const wcStack = [];\n let currentVm = vm;\n while (!isNull(currentVm)) {\n ArrayPush$1.call(wcStack, getComponentTag(currentVm));\n currentVm = currentVm.owner;\n }\n return wcStack.reverse().join('\\n\\t');\n}\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nfunction addErrorComponentStack(vm, error) {\n if (!isFrozen(error) && isUndefined$1(error.wcStack)) {\n const wcStack = getErrorComponentStack(vm);\n defineProperty(error, 'wcStack', {\n get() {\n return wcStack;\n },\n });\n }\n}\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nconst alreadyLoggedMessages = new Set();\n// Only used in LWC's Karma tests\nif (process.env.NODE_ENV === 'test-karma-lwc') {\n // @ts-ignore\n window.__lwcResetAlreadyLoggedMessages = () => {\n alreadyLoggedMessages.clear();\n };\n}\nfunction log(method, message, vm, once) {\n let msg = `[LWC ${method}]: ${message}`;\n if (!isUndefined$1(vm)) {\n msg = `${msg}\\n${getComponentStack(vm)}`;\n }\n if (once) {\n if (alreadyLoggedMessages.has(msg)) {\n return;\n }\n alreadyLoggedMessages.add(msg);\n }\n // In Jest tests, reduce the warning and error verbosity by not printing the callstack\n if (process.env.NODE_ENV === 'test') {\n /* eslint-disable-next-line no-console */\n console[method](msg);\n return;\n }\n try {\n throw new Error(msg);\n }\n catch (e) {\n /* eslint-disable-next-line no-console */\n console[method](e);\n }\n}\nfunction logError(message, vm) {\n log('error', message, vm, false);\n}\nfunction logWarnOnce(message, vm) {\n log('warn', message, vm, true);\n}\n\n/*\n * Copyright (c) 2019, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nconst TargetToReactiveRecordMap = new WeakMap();\nfunction valueMutated(target, key) {\n const reactiveRecord = TargetToReactiveRecordMap.get(target);\n if (!isUndefined$1(reactiveRecord)) {\n const reactiveObservers = reactiveRecord[key];\n if (!isUndefined$1(reactiveObservers)) {\n for (let i = 0, len = reactiveObservers.length; i < len; i += 1) {\n const ro = reactiveObservers[i];\n ro.notify();\n }\n }\n }\n}\nfunction valueObserved(target, key) {\n // We should determine if an active Observing Record is present to track mutations.\n {\n return;\n }\n}\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nconst DUMMY_REACTIVE_OBSERVER = {\n observe(job) {\n job();\n },\n reset() { },\n link() { },\n};\nfunction createReactiveObserver(callback) {\n // On the server side, we don't need mutation tracking. Skipping it improves performance.\n return DUMMY_REACTIVE_OBSERVER;\n}\nconst SPACE_CHAR = 32;\nconst EmptyObject = seal(create(null));\nconst EmptyArray = seal([]);\nfunction guid() {\n function s4() {\n return Math.floor((1 + Math.random()) * 0x10000)\n .toString(16)\n .substring(1);\n }\n return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4();\n}\nfunction flattenStylesheets(stylesheets) {\n const list = [];\n for (const stylesheet of stylesheets) {\n if (!isArray$1(stylesheet)) {\n list.push(stylesheet);\n }\n else {\n list.push(...flattenStylesheets(stylesheet));\n }\n }\n return list;\n}\n// Set a ref (lwc:ref) on a VM, from a template API\nfunction setRefVNode(vm, ref, vnode) {\n if (process.env.NODE_ENV !== 'production' && isUndefined$1(vm.refVNodes)) {\n throw new Error('refVNodes must be defined when setting a ref');\n }\n // If this method is called, then vm.refVNodes is set as the template has refs.\n // If not, then something went wrong and we threw an error above.\n const refVNodes = vm.refVNodes;\n // In cases of conflict (two elements with the same ref), prefer, the last one,\n // in depth-first traversal order.\n if (!(ref in refVNodes) || refVNodes[ref].key < vnode.key) {\n refVNodes[ref] = vnode;\n }\n}\n// Throw an error if we're running in prod mode. Ensures code is truly removed from prod mode.\nfunction assertNotProd() {\n /* istanbul ignore if */\n if (process.env.NODE_ENV === 'production') {\n // this method should never leak to prod\n throw new ReferenceError();\n }\n}\n\n/*\n * Copyright (c) 2020, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nfunction resolveCircularModuleDependency(fn) {\n const module = fn();\n return (module === null || module === void 0 ? void 0 : module.__esModule) ? module.default : module;\n}\nfunction isCircularModuleDependency(obj) {\n return isFunction$1(obj) && hasOwnProperty$1.call(obj, '__circular__');\n}\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\n// This is a temporary workaround to get the @lwc/engine-server to evaluate in node without having\n// to inject at runtime.\nconst HTMLElementConstructor = typeof HTMLElement !== 'undefined' ? HTMLElement : function () { };\nconst HTMLElementPrototype = HTMLElementConstructor.prototype;\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\n// These properties get added to LWCElement.prototype publicProps automatically\nconst defaultDefHTMLPropertyNames = [\n 'accessKey',\n 'dir',\n 'draggable',\n 'hidden',\n 'id',\n 'lang',\n 'spellcheck',\n 'tabIndex',\n 'title',\n];\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\n/**\n * This is a descriptor map that contains\n * all standard properties that a Custom Element can support (including AOM properties), which\n * determines what kind of capabilities the Base HTML Element and\n * Base Lightning Element should support.\n */\nconst HTMLElementOriginalDescriptors = create(null);\nforEach.call(keys(AriaPropNameToAttrNameMap), (propName) => {\n // Note: intentionally using our in-house getPropertyDescriptor instead of getOwnPropertyDescriptor here because\n // in IE11, some properties are on Element.prototype instead of HTMLElement, just to be sure.\n const descriptor = getPropertyDescriptor(HTMLElementPrototype, propName);\n if (!isUndefined$1(descriptor)) {\n HTMLElementOriginalDescriptors[propName] = descriptor;\n }\n});\nforEach.call(defaultDefHTMLPropertyNames, (propName) => {\n // Note: intentionally using our in-house getPropertyDescriptor instead of getOwnPropertyDescriptor here because\n // in IE11, id property is on Element.prototype instead of HTMLElement, and we suspect that more will fall into\n // this category, so, better to be sure.\n const descriptor = getPropertyDescriptor(HTMLElementPrototype, propName);\n if (!isUndefined$1(descriptor)) {\n HTMLElementOriginalDescriptors[propName] = descriptor;\n }\n});\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\n/* eslint @lwc/lwc-internal/no-production-assert: \"off\" */\nfunction generateDataDescriptor(options) {\n return assign({\n configurable: true,\n enumerable: true,\n writable: true,\n }, options);\n}\nfunction generateAccessorDescriptor(options) {\n return assign({\n configurable: true,\n enumerable: true,\n }, options);\n}\nlet isDomMutationAllowed = false;\nfunction unlockDomMutation() {\n assertNotProd(); // this method should never leak to prod\n isDomMutationAllowed = true;\n}\nfunction lockDomMutation() {\n assertNotProd(); // this method should never leak to prod\n isDomMutationAllowed = false;\n}\nfunction logMissingPortalError(name, type) {\n return logError(`The \\`${name}\\` ${type} is available only on elements that use the \\`lwc:dom=\"manual\"\\` directive.`);\n}\nfunction patchElementWithRestrictions(elm, options) {\n assertNotProd(); // this method should never leak to prod\n const originalOuterHTMLDescriptor = getPropertyDescriptor(elm, 'outerHTML');\n const descriptors = {\n outerHTML: generateAccessorDescriptor({\n get() {\n return originalOuterHTMLDescriptor.get.call(this);\n },\n set(value) {\n logError(`Invalid attempt to set outerHTML on Element.`);\n return originalOuterHTMLDescriptor.set.call(this, value);\n },\n }),\n };\n // Apply extra restriction related to DOM manipulation if the element is not a portal.\n if (!options.isLight && options.isSynthetic && !options.isPortal) {\n const { appendChild, insertBefore, removeChild, replaceChild } = elm;\n const originalNodeValueDescriptor = getPropertyDescriptor(elm, 'nodeValue');\n const originalInnerHTMLDescriptor = getPropertyDescriptor(elm, 'innerHTML');\n const originalTextContentDescriptor = getPropertyDescriptor(elm, 'textContent');\n assign(descriptors, {\n appendChild: generateDataDescriptor({\n value(aChild) {\n logMissingPortalError('appendChild', 'method');\n return appendChild.call(this, aChild);\n },\n }),\n insertBefore: generateDataDescriptor({\n value(newNode, referenceNode) {\n if (!isDomMutationAllowed) {\n logMissingPortalError('insertBefore', 'method');\n }\n return insertBefore.call(this, newNode, referenceNode);\n },\n }),\n removeChild: generateDataDescriptor({\n value(aChild) {\n if (!isDomMutationAllowed) {\n logMissingPortalError('removeChild', 'method');\n }\n return removeChild.call(this, aChild);\n },\n }),\n replaceChild: generateDataDescriptor({\n value(newChild, oldChild) {\n logMissingPortalError('replaceChild', 'method');\n return replaceChild.call(this, newChild, oldChild);\n },\n }),\n nodeValue: generateAccessorDescriptor({\n get() {\n return originalNodeValueDescriptor.get.call(this);\n },\n set(value) {\n if (!isDomMutationAllowed) {\n logMissingPortalError('nodeValue', 'property');\n }\n originalNodeValueDescriptor.set.call(this, value);\n },\n }),\n textContent: generateAccessorDescriptor({\n get() {\n return originalTextContentDescriptor.get.call(this);\n },\n set(value) {\n logMissingPortalError('textContent', 'property');\n originalTextContentDescriptor.set.call(this, value);\n },\n }),\n innerHTML: generateAccessorDescriptor({\n get() {\n return originalInnerHTMLDescriptor.get.call(this);\n },\n set(value) {\n logMissingPortalError('innerHTML', 'property');\n return originalInnerHTMLDescriptor.set.call(this, value);\n },\n }),\n });\n }\n defineProperties(elm, descriptors);\n}\nfunction getShadowRootRestrictionsDescriptors(sr) {\n assertNotProd(); // this method should never leak to prod\n // Disallowing properties in dev mode only to avoid people doing the wrong\n // thing when using the real shadow root, because if that's the case,\n // the component will not work when running with synthetic shadow.\n const originalAddEventListener = sr.addEventListener;\n const originalInnerHTMLDescriptor = getPropertyDescriptor(sr, 'innerHTML');\n const originalTextContentDescriptor = getPropertyDescriptor(sr, 'textContent');\n return {\n innerHTML: generateAccessorDescriptor({\n get() {\n return originalInnerHTMLDescriptor.get.call(this);\n },\n set(value) {\n logError(`Invalid attempt to set innerHTML on ShadowRoot.`);\n return originalInnerHTMLDescriptor.set.call(this, value);\n },\n }),\n textContent: generateAccessorDescriptor({\n get() {\n return originalTextContentDescriptor.get.call(this);\n },\n set(value) {\n logError(`Invalid attempt to set textContent on ShadowRoot.`);\n return originalTextContentDescriptor.set.call(this, value);\n },\n }),\n addEventListener: generateDataDescriptor({\n value(type, listener, options) {\n // TODO [#1824]: Potentially relax this restriction\n if (!isUndefined$1(options)) {\n logError('The `addEventListener` method on ShadowRoot does not support any options.', getAssociatedVMIfPresent(this));\n }\n // Typescript does not like it when you treat the `arguments` object as an array\n // @ts-ignore type-mismatch\n return originalAddEventListener.apply(this, arguments);\n },\n }),\n };\n}\n// Custom Elements Restrictions:\n// -----------------------------\nfunction getCustomElementRestrictionsDescriptors(elm) {\n assertNotProd(); // this method should never leak to prod\n const originalAddEventListener = elm.addEventListener;\n const originalInnerHTMLDescriptor = getPropertyDescriptor(elm, 'innerHTML');\n const originalOuterHTMLDescriptor = getPropertyDescriptor(elm, 'outerHTML');\n const originalTextContentDescriptor = getPropertyDescriptor(elm, 'textContent');\n return {\n innerHTML: generateAccessorDescriptor({\n get() {\n return originalInnerHTMLDescriptor.get.call(this);\n },\n set(value) {\n logError(`Invalid attempt to set innerHTML on HTMLElement.`);\n return originalInnerHTMLDescriptor.set.call(this, value);\n },\n }),\n outerHTML: generateAccessorDescriptor({\n get() {\n return originalOuterHTMLDescriptor.get.call(this);\n },\n set(value) {\n logError(`Invalid attempt to set outerHTML on HTMLElement.`);\n return originalOuterHTMLDescriptor.set.call(this, value);\n },\n }),\n textContent: generateAccessorDescriptor({\n get() {\n return originalTextContentDescriptor.get.call(this);\n },\n set(value) {\n logError(`Invalid attempt to set textContent on HTMLElement.`);\n return originalTextContentDescriptor.set.call(this, value);\n },\n }),\n addEventListener: generateDataDescriptor({\n value(type, listener, options) {\n // TODO [#1824]: Potentially relax this restriction\n if (!isUndefined$1(options)) {\n logError('The `addEventListener` method in `LightningElement` does not support any options.', getAssociatedVMIfPresent(this));\n }\n // Typescript does not like it when you treat the `arguments` object as an array\n // @ts-ignore type-mismatch\n return originalAddEventListener.apply(this, arguments);\n },\n }),\n };\n}\nfunction getLightningElementPrototypeRestrictionsDescriptors(proto) {\n assertNotProd(); // this method should never leak to prod\n const originalDispatchEvent = proto.dispatchEvent;\n return {\n dispatchEvent: generateDataDescriptor({\n value(event) {\n const vm = getAssociatedVM(this);\n if (!isNull(event) && isObject(event)) {\n const { type } = event;\n if (!/^[a-z][a-z0-9_]*$/.test(type)) {\n logError(`Invalid event type \"${type}\" dispatched in element ${getComponentTag(vm)}.` +\n ` Event name must start with a lowercase letter and followed only lowercase` +\n ` letters, numbers, and underscores`, vm);\n }\n }\n // Typescript does not like it when you treat the `arguments` object as an array\n // @ts-ignore type-mismatch\n return originalDispatchEvent.apply(this, arguments);\n },\n }),\n };\n}\n// This routine will prevent access to certain properties on a shadow root instance to guarantee\n// that all components will work fine in IE11 and other browsers without shadow dom support.\nfunction patchShadowRootWithRestrictions(sr) {\n defineProperties(sr, getShadowRootRestrictionsDescriptors(sr));\n}\nfunction patchCustomElementWithRestrictions(elm) {\n const restrictionsDescriptors = getCustomElementRestrictionsDescriptors(elm);\n const elmProto = getPrototypeOf$1(elm);\n setPrototypeOf(elm, create(elmProto, restrictionsDescriptors));\n}\nfunction patchLightningElementPrototypeWithRestrictions(proto) {\n defineProperties(proto, getLightningElementPrototypeRestrictionsDescriptors(proto));\n}\n\nfunction updateComponentValue(vm, key, newValue) {\n const { cmpFields } = vm;\n if (newValue !== cmpFields[key]) {\n cmpFields[key] = newValue;\n }\n}\n\n/**\n * Copyright (C) 2017 salesforce.com, inc.\n */\nconst { isArray } = Array;\nconst { prototype: ObjectDotPrototype, getPrototypeOf, create: ObjectCreate, defineProperty: ObjectDefineProperty, isExtensible, getOwnPropertyDescriptor, getOwnPropertyNames, getOwnPropertySymbols, preventExtensions, hasOwnProperty, } = Object;\nconst { push: ArrayPush, concat: ArrayConcat } = Array.prototype;\nconst OtS = {}.toString;\nfunction toString(obj) {\n if (obj && obj.toString) {\n return obj.toString();\n }\n else if (typeof obj === 'object') {\n return OtS.call(obj);\n }\n else {\n return obj + '';\n }\n}\nfunction isUndefined(obj) {\n return obj === undefined;\n}\nfunction isFunction(obj) {\n return typeof obj === 'function';\n}\nconst proxyToValueMap = new WeakMap();\nfunction registerProxy(proxy, value) {\n proxyToValueMap.set(proxy, value);\n}\nconst unwrap$1 = (replicaOrAny) => proxyToValueMap.get(replicaOrAny) || replicaOrAny;\n\nclass BaseProxyHandler {\n constructor(membrane, value) {\n this.originalTarget = value;\n this.membrane = membrane;\n }\n // Shared utility methods\n wrapDescriptor(descriptor) {\n if (hasOwnProperty.call(descriptor, 'value')) {\n descriptor.value = this.wrapValue(descriptor.value);\n }\n else {\n const { set: originalSet, get: originalGet } = descriptor;\n if (!isUndefined(originalGet)) {\n descriptor.get = this.wrapGetter(originalGet);\n }\n if (!isUndefined(originalSet)) {\n descriptor.set = this.wrapSetter(originalSet);\n }\n }\n return descriptor;\n }\n copyDescriptorIntoShadowTarget(shadowTarget, key) {\n const { originalTarget } = this;\n // Note: a property might get defined multiple times in the shadowTarget\n // but it will always be compatible with the previous descriptor\n // to preserve the object invariants, which makes these lines safe.\n const originalDescriptor = getOwnPropertyDescriptor(originalTarget, key);\n // TODO: it should be impossible for the originalDescriptor to ever be undefined, this `if` can be removed\n /* istanbul ignore else */\n if (!isUndefined(originalDescriptor)) {\n const wrappedDesc = this.wrapDescriptor(originalDescriptor);\n ObjectDefineProperty(shadowTarget, key, wrappedDesc);\n }\n }\n lockShadowTarget(shadowTarget) {\n const { originalTarget } = this;\n const targetKeys = ArrayConcat.call(getOwnPropertyNames(originalTarget), getOwnPropertySymbols(originalTarget));\n targetKeys.forEach((key) => {\n this.copyDescriptorIntoShadowTarget(shadowTarget, key);\n });\n const { membrane: { tagPropertyKey }, } = this;\n if (!isUndefined(tagPropertyKey) && !hasOwnProperty.call(shadowTarget, tagPropertyKey)) {\n ObjectDefineProperty(shadowTarget, tagPropertyKey, ObjectCreate(null));\n }\n preventExtensions(shadowTarget);\n }\n // Shared Traps\n // TODO: apply() is never called\n /* istanbul ignore next */\n apply(shadowTarget, thisArg, argArray) {\n /* No op */\n }\n // TODO: construct() is never called\n /* istanbul ignore next */\n construct(shadowTarget, argArray, newTarget) {\n /* No op */\n }\n get(shadowTarget, key) {\n const { originalTarget, membrane: { valueObserved }, } = this;\n const value = originalTarget[key];\n valueObserved(originalTarget, key);\n return this.wrapValue(value);\n }\n has(shadowTarget, key) {\n const { originalTarget, membrane: { tagPropertyKey, valueObserved }, } = this;\n valueObserved(originalTarget, key);\n // since key is never going to be undefined, and tagPropertyKey might be undefined\n // we can simply compare them as the second part of the condition.\n return key in originalTarget || key === tagPropertyKey;\n }\n ownKeys(shadowTarget) {\n const { originalTarget, membrane: { tagPropertyKey }, } = this;\n // if the membrane tag key exists and it is not in the original target, we add it to the keys.\n const keys = isUndefined(tagPropertyKey) || hasOwnProperty.call(originalTarget, tagPropertyKey)\n ? []\n : [tagPropertyKey];\n // small perf optimization using push instead of concat to avoid creating an extra array\n ArrayPush.apply(keys, getOwnPropertyNames(originalTarget));\n ArrayPush.apply(keys, getOwnPropertySymbols(originalTarget));\n return keys;\n }\n isExtensible(shadowTarget) {\n const { originalTarget } = this;\n // optimization to avoid attempting to lock down the shadowTarget multiple times\n if (!isExtensible(shadowTarget)) {\n return false; // was already locked down\n }\n if (!isExtensible(originalTarget)) {\n this.lockShadowTarget(shadowTarget);\n return false;\n }\n return true;\n }\n getPrototypeOf(shadowTarget) {\n const { originalTarget } = this;\n return getPrototypeOf(originalTarget);\n }\n getOwnPropertyDescriptor(shadowTarget, key) {\n const { originalTarget, membrane: { valueObserved, tagPropertyKey }, } = this;\n // keys looked up via getOwnPropertyDescriptor need to be reactive\n valueObserved(originalTarget, key);\n let desc = getOwnPropertyDescriptor(originalTarget, key);\n if (isUndefined(desc)) {\n if (key !== tagPropertyKey) {\n return undefined;\n }\n // if the key is the membrane tag key, and is not in the original target,\n // we produce a synthetic descriptor and install it on the shadow target\n desc = { value: undefined, writable: false, configurable: false, enumerable: false };\n ObjectDefineProperty(shadowTarget, tagPropertyKey, desc);\n return desc;\n }\n if (desc.configurable === false) {\n // updating the descriptor to non-configurable on the shadow\n this.copyDescriptorIntoShadowTarget(shadowTarget, key);\n }\n // Note: by accessing the descriptor, the key is marked as observed\n // but access to the value, setter or getter (if available) cannot observe\n // mutations, just like regular methods, in which case we just do nothing.\n return this.wrapDescriptor(desc);\n }\n}\n\nconst getterMap$1 = new WeakMap();\nconst setterMap$1 = new WeakMap();\nconst reverseGetterMap = new WeakMap();\nconst reverseSetterMap = new WeakMap();\nclass ReactiveProxyHandler extends BaseProxyHandler {\n wrapValue(value) {\n return this.membrane.getProxy(value);\n }\n wrapGetter(originalGet) {\n const wrappedGetter = getterMap$1.get(originalGet);\n if (!isUndefined(wrappedGetter)) {\n return wrappedGetter;\n }\n const handler = this;\n const get = function () {\n // invoking the original getter with the original target\n return handler.wrapValue(originalGet.call(unwrap$1(this)));\n };\n getterMap$1.set(originalGet, get);\n reverseGetterMap.set(get, originalGet);\n return get;\n }\n wrapSetter(originalSet) {\n const wrappedSetter = setterMap$1.get(originalSet);\n if (!isUndefined(wrappedSetter)) {\n return wrappedSetter;\n }\n const set = function (v) {\n // invoking the original setter with the original target\n originalSet.call(unwrap$1(this), unwrap$1(v));\n };\n setterMap$1.set(originalSet, set);\n reverseSetterMap.set(set, originalSet);\n return set;\n }\n unwrapDescriptor(descriptor) {\n if (hasOwnProperty.call(descriptor, 'value')) {\n // dealing with a data descriptor\n descriptor.value = unwrap$1(descriptor.value);\n }\n else {\n const { set, get } = descriptor;\n if (!isUndefined(get)) {\n descriptor.get = this.unwrapGetter(get);\n }\n if (!isUndefined(set)) {\n descriptor.set = this.unwrapSetter(set);\n }\n }\n return descriptor;\n }\n unwrapGetter(redGet) {\n const reverseGetter = reverseGetterMap.get(redGet);\n if (!isUndefined(reverseGetter)) {\n return reverseGetter;\n }\n const handler = this;\n const get = function () {\n // invoking the red getter with the proxy of this\n return unwrap$1(redGet.call(handler.wrapValue(this)));\n };\n getterMap$1.set(get, redGet);\n reverseGetterMap.set(redGet, get);\n return get;\n }\n unwrapSetter(redSet) {\n const reverseSetter = reverseSetterMap.get(redSet);\n if (!isUndefined(reverseSetter)) {\n return reverseSetter;\n }\n const handler = this;\n const set = function (v) {\n // invoking the red setter with the proxy of this\n redSet.call(handler.wrapValue(this), handler.wrapValue(v));\n };\n setterMap$1.set(set, redSet);\n reverseSetterMap.set(redSet, set);\n return set;\n }\n set(shadowTarget, key, value) {\n const { originalTarget, membrane: { valueMutated }, } = this;\n const oldValue = originalTarget[key];\n if (oldValue !== value) {\n originalTarget[key] = value;\n valueMutated(originalTarget, key);\n }\n else if (key === 'length' && isArray(originalTarget)) {\n // fix for issue #236: push will add the new index, and by the time length\n // is updated, the internal length is already equal to the new length value\n // therefore, the oldValue is equal to the value. This is the forking logic\n // to support this use case.\n valueMutated(originalTarget, key);\n }\n return true;\n }\n deleteProperty(shadowTarget, key) {\n const { originalTarget, membrane: { valueMutated }, } = this;\n delete originalTarget[key];\n valueMutated(originalTarget, key);\n return true;\n }\n setPrototypeOf(shadowTarget, prototype) {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`Invalid setPrototypeOf invocation for reactive proxy ${toString(this.originalTarget)}. Prototype of reactive objects cannot be changed.`);\n }\n }\n preventExtensions(shadowTarget) {\n if (isExtensible(shadowTarget)) {\n const { originalTarget } = this;\n preventExtensions(originalTarget);\n // if the originalTarget is a proxy itself, it might reject\n // the preventExtension call, in which case we should not attempt to lock down\n // the shadow target.\n // TODO: It should not actually be possible to reach this `if` statement.\n // If a proxy rejects extensions, then calling preventExtensions will throw an error:\n // https://codepen.io/nolanlawson-the-selector/pen/QWMOjbY\n /* istanbul ignore if */\n if (isExtensible(originalTarget)) {\n return false;\n }\n this.lockShadowTarget(shadowTarget);\n }\n return true;\n }\n defineProperty(shadowTarget, key, descriptor) {\n const { originalTarget, membrane: { valueMutated, tagPropertyKey }, } = this;\n if (key === tagPropertyKey && !hasOwnProperty.call(originalTarget, key)) {\n // To avoid leaking the membrane tag property into the original target, we must\n // be sure that the original target doesn't have yet.\n // NOTE: we do not return false here because Object.freeze and equivalent operations\n // will attempt to set the descriptor to the same value, and expect no to throw. This\n // is an small compromise for the sake of not having to diff the descriptors.\n return true;\n }\n ObjectDefineProperty(originalTarget, key, this.unwrapDescriptor(descriptor));\n // intentionally testing if false since it could be undefined as well\n if (descriptor.configurable === false) {\n this.copyDescriptorIntoShadowTarget(shadowTarget, key);\n }\n valueMutated(originalTarget, key);\n return true;\n }\n}\n\nconst getterMap = new WeakMap();\nconst setterMap = new WeakMap();\nclass ReadOnlyHandler extends BaseProxyHandler {\n wrapValue(value) {\n return this.membrane.getReadOnlyProxy(value);\n }\n wrapGetter(originalGet) {\n const wrappedGetter = getterMap.get(originalGet);\n if (!isUndefined(wrappedGetter)) {\n return wrappedGetter;\n }\n const handler = this;\n const get = function () {\n // invoking the original getter with the original target\n return handler.wrapValue(originalGet.call(unwrap$1(this)));\n };\n getterMap.set(originalGet, get);\n return get;\n }\n wrapSetter(originalSet) {\n const wrappedSetter = setterMap.get(originalSet);\n if (!isUndefined(wrappedSetter)) {\n return wrappedSetter;\n }\n const handler = this;\n const set = function (v) {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n const { originalTarget } = handler;\n throw new Error(`Invalid mutation: Cannot invoke a setter on \"${originalTarget}\". \"${originalTarget}\" is read-only.`);\n }\n };\n setterMap.set(originalSet, set);\n return set;\n }\n set(shadowTarget, key, value) {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n const { originalTarget } = this;\n const msg = isArray(originalTarget)\n ? `Invalid mutation: Cannot mutate array at index ${key.toString()}. Array is read-only.`\n : `Invalid mutation: Cannot set \"${key.toString()}\" on \"${originalTarget}\". \"${originalTarget}\" is read-only.`;\n throw new Error(msg);\n }\n /* istanbul ignore next */\n return false;\n }\n deleteProperty(shadowTarget, key) {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n const { originalTarget } = this;\n throw new Error(`Invalid mutation: Cannot delete \"${key.toString()}\" on \"${originalTarget}\". \"${originalTarget}\" is read-only.`);\n }\n /* istanbul ignore next */\n return false;\n }\n setPrototypeOf(shadowTarget, prototype) {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n const { originalTarget } = this;\n throw new Error(`Invalid prototype mutation: Cannot set prototype on \"${originalTarget}\". \"${originalTarget}\" prototype is read-only.`);\n }\n }\n preventExtensions(shadowTarget) {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n const { originalTarget } = this;\n throw new Error(`Invalid mutation: Cannot preventExtensions on ${originalTarget}\". \"${originalTarget} is read-only.`);\n }\n /* istanbul ignore next */\n return false;\n }\n defineProperty(shadowTarget, key, descriptor) {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n const { originalTarget } = this;\n throw new Error(`Invalid mutation: Cannot defineProperty \"${key.toString()}\" on \"${originalTarget}\". \"${originalTarget}\" is read-only.`);\n }\n /* istanbul ignore next */\n return false;\n }\n}\n\nfunction extract(objectOrArray) {\n if (isArray(objectOrArray)) {\n return objectOrArray.map((item) => {\n const original = unwrap$1(item);\n if (original !== item) {\n return extract(original);\n }\n return item;\n });\n }\n const obj = ObjectCreate(getPrototypeOf(objectOrArray));\n const names = getOwnPropertyNames(objectOrArray);\n return ArrayConcat.call(names, getOwnPropertySymbols(objectOrArray)).reduce((seed, key) => {\n const item = objectOrArray[key];\n const original = unwrap$1(item);\n if (original !== item) {\n seed[key] = extract(original);\n }\n else {\n seed[key] = item;\n }\n return seed;\n }, obj);\n}\nconst formatter = {\n header: (plainOrProxy) => {\n const originalTarget = unwrap$1(plainOrProxy);\n // if originalTarget is falsy or not unwrappable, exit\n if (!originalTarget || originalTarget === plainOrProxy) {\n return null;\n }\n const obj = extract(plainOrProxy);\n return ['object', { object: obj }];\n },\n hasBody: () => {\n return false;\n },\n body: () => {\n return null;\n },\n};\n// Inspired from paulmillr/es6-shim\n// https://github.com/paulmillr/es6-shim/blob/master/es6-shim.js#L176-L185\n/* istanbul ignore next */\nfunction getGlobal() {\n // the only reliable means to get the global object is `Function('return this')()`\n // However, this causes CSP violations in Chrome apps.\n if (typeof globalThis !== 'undefined') {\n return globalThis;\n }\n if (typeof self !== 'undefined') {\n return self;\n }\n if (typeof window !== 'undefined') {\n return window;\n }\n if (typeof global !== 'undefined') {\n return global;\n }\n // Gracefully degrade if not able to locate the global object\n return {};\n}\nfunction init() {\n /* istanbul ignore if */\n if (process.env.NODE_ENV === 'production') {\n // this method should never leak to prod\n throw new ReferenceError();\n }\n const global = getGlobal();\n // Custom Formatter for Dev Tools. To enable this, open Chrome Dev Tools\n // - Go to Settings,\n // - Under console, select \"Enable custom formatters\"\n // For more information, https://docs.google.com/document/d/1FTascZXT9cxfetuPRT2eXPQKXui4nWFivUnS_335T3U/preview\n const devtoolsFormatters = global.devtoolsFormatters || [];\n ArrayPush.call(devtoolsFormatters, formatter);\n global.devtoolsFormatters = devtoolsFormatters;\n}\n\n/* istanbul ignore else */\nif (process.env.NODE_ENV !== 'production') {\n init();\n}\nfunction defaultValueIsObservable(value) {\n // intentionally checking for null\n if (value === null) {\n return false;\n }\n // treat all non-object types, including undefined, as non-observable values\n if (typeof value !== 'object') {\n return false;\n }\n if (isArray(value)) {\n return true;\n }\n const proto = getPrototypeOf(value);\n return proto === ObjectDotPrototype || proto === null || getPrototypeOf(proto) === null;\n}\nconst defaultValueObserved = (obj, key) => {\n /* do nothing */\n};\nconst defaultValueMutated = (obj, key) => {\n /* do nothing */\n};\nfunction createShadowTarget(value) {\n return isArray(value) ? [] : {};\n}\nclass ObservableMembrane {\n constructor(options = {}) {\n this.readOnlyObjectGraph = new WeakMap();\n this.reactiveObjectGraph = new WeakMap();\n const { valueMutated, valueObserved, valueIsObservable, tagPropertyKey } = options;\n this.valueMutated = isFunction(valueMutated) ? valueMutated : defaultValueMutated;\n this.valueObserved = isFunction(valueObserved) ? valueObserved : defaultValueObserved;\n this.valueIsObservable = isFunction(valueIsObservable)\n ? valueIsObservable\n : defaultValueIsObservable;\n this.tagPropertyKey = tagPropertyKey;\n }\n getProxy(value) {\n const unwrappedValue = unwrap$1(value);\n if (this.valueIsObservable(unwrappedValue)) {\n // When trying to extract the writable version of a readonly we return the readonly.\n if (this.readOnlyObjectGraph.get(unwrappedValue) === value) {\n return value;\n }\n return this.getReactiveHandler(unwrappedValue);\n }\n return unwrappedValue;\n }\n getReadOnlyProxy(value) {\n value = unwrap$1(value);\n if (this.valueIsObservable(value)) {\n return this.getReadOnlyHandler(value);\n }\n return value;\n }\n unwrapProxy(p) {\n return unwrap$1(p);\n }\n getReactiveHandler(value) {\n let proxy = this.reactiveObjectGraph.get(value);\n if (isUndefined(proxy)) {\n // caching the proxy after the first time it is accessed\n const handler = new ReactiveProxyHandler(this, value);\n proxy = new Proxy(createShadowTarget(value), handler);\n registerProxy(proxy, value);\n this.reactiveObjectGraph.set(value, proxy);\n }\n return proxy;\n }\n getReadOnlyHandler(value) {\n let proxy = this.readOnlyObjectGraph.get(value);\n if (isUndefined(proxy)) {\n // caching the proxy after the first time it is accessed\n const handler = new ReadOnlyHandler(this, value);\n proxy = new Proxy(createShadowTarget(value), handler);\n registerProxy(proxy, value);\n this.readOnlyObjectGraph.set(value, proxy);\n }\n return proxy;\n }\n}\n/** version: 2.0.0 */\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nconst lockerLivePropertyKey = Symbol.for('@@lockerLiveValue');\nconst reactiveMembrane = new ObservableMembrane({\n valueObserved,\n valueMutated,\n tagPropertyKey: lockerLivePropertyKey,\n});\n/**\n * EXPERIMENTAL: This function implements an unwrap mechanism that\n * works for observable membrane objects. This API is subject to\n * change or being removed.\n */\nfunction unwrap(value) {\n // On the server side, we don't need mutation tracking. Skipping it improves performance.\n return value;\n}\nfunction getReadOnlyProxy(value) {\n // We must return a frozen wrapper around the value, so that child components cannot mutate properties passed to\n // them from their parents. This applies to both the client and server.\n return reactiveMembrane.getReadOnlyProxy(value);\n}\nfunction getReactiveProxy(value) {\n // On the server side, we don't need mutation tracking. Skipping it improves performance.\n return value;\n}\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\n/**\n * This module is responsible for producing the ComponentDef object that is always\n * accessible via `vm.def`. This is lazily created during the creation of the first\n * instance of a component class, and shared across all instances.\n *\n * This structure can be used to synthetically create proxies, and understand the\n * shape of a component. It is also used internally to apply extra optimizations.\n */\n/**\n * This operation is called with a descriptor of an standard html property\n * that a Custom Element can support (including AOM properties), which\n * determines what kind of capabilities the Base Lightning Element should support. When producing the new descriptors\n * for the Base Lightning Element, it also include the reactivity bit, so the standard property is reactive.\n */\nfunction createBridgeToElementDescriptor(propName, descriptor) {\n const { get, set, enumerable, configurable } = descriptor;\n if (!isFunction$1(get)) {\n throw new TypeError(`Detected invalid public property descriptor for HTMLElement.prototype.${propName} definition. Missing the standard getter.`);\n }\n if (!isFunction$1(set)) {\n throw new TypeError(`Detected invalid public property descriptor for HTMLElement.prototype.${propName} definition. Missing the standard setter.`);\n }\n return {\n enumerable,\n configurable,\n get() {\n const vm = getAssociatedVM(this);\n if (isBeingConstructed(vm)) {\n if (process.env.NODE_ENV !== 'production') {\n logError(`The value of property \\`${propName}\\` can't be read from the constructor because the owner component hasn't set the value yet. Instead, use the constructor to set a default value for the property.`, vm);\n }\n return;\n }\n return get.call(vm.elm);\n },\n set(newValue) {\n const vm = getAssociatedVM(this);\n if (process.env.NODE_ENV !== 'production') {\n const vmBeingRendered = getVMBeingRendered();\n if (isInvokingRender) {\n logError(`${vmBeingRendered}.render() method has side effects on the state of ${vm}.${propName}`);\n }\n if (isUpdatingTemplate) {\n logError(`When updating the template of ${vmBeingRendered}, one of the accessors used by the template has side effects on the state of ${vm}.${propName}`);\n }\n if (isBeingConstructed(vm)) {\n logError(`Failed to construct '${getComponentTag(vm)}': The result must not have attributes.`);\n }\n if (isObject(newValue) && !isNull(newValue)) {\n logError(`Invalid value \"${newValue}\" for \"${propName}\" of ${vm}. Value cannot be an object, must be a primitive value.`);\n }\n }\n updateComponentValue(vm, propName, newValue);\n return set.call(vm.elm, newValue);\n },\n };\n}\nconst refsCache = new WeakMap();\n/**\n * This class is the base class for any LWC element.\n * Some elements directly extends this class, others implement it via inheritance.\n **/\n// @ts-ignore\nconst LightningElement = function () {\n // This should be as performant as possible, while any initialization should be done lazily\n if (isNull(vmBeingConstructed)) {\n // Thrown when doing something like `new LightningElement()` or\n // `class Foo extends LightningElement {}; new Foo()`\n throw new TypeError('Illegal constructor');\n }\n const vm = vmBeingConstructed;\n const { def, elm } = vm;\n const { bridge } = def;\n if (process.env.NODE_ENV !== 'production') {\n const { assertInstanceOfHTMLElement } = vm.renderer;\n assertInstanceOfHTMLElement(vm.elm, `Component creation requires a DOM element to be associated to ${vm}.`);\n }\n const component = this;\n setPrototypeOf(elm, bridge.prototype);\n vm.component = this;\n // Locker hooks assignment. When the LWC engine run with Locker, Locker intercepts all the new\n // component creation and passes hooks to instrument all the component interactions with the\n // engine. We are intentionally hiding this argument from the formal API of LightningElement\n // because we don't want folks to know about it just yet.\n if (arguments.length === 1) {\n const { callHook, setHook, getHook } = arguments[0];\n vm.callHook = callHook;\n vm.setHook = setHook;\n vm.getHook = getHook;\n }\n // Linking elm, shadow root and component with the VM.\n associateVM(component, vm);\n associateVM(elm, vm);\n if (vm.renderMode === 1 /* RenderMode.Shadow */) {\n vm.renderRoot = doAttachShadow(vm);\n }\n else {\n vm.renderRoot = elm;\n }\n // Adding extra guard rails in DEV mode.\n if (process.env.NODE_ENV !== 'production') {\n patchCustomElementWithRestrictions(elm);\n }\n return this;\n};\nfunction doAttachShadow(vm) {\n const { elm, mode, shadowMode, def: { ctor }, renderer: { attachShadow }, } = vm;\n const shadowRoot = attachShadow(elm, {\n [KEY__SYNTHETIC_MODE]: shadowMode === 1 /* ShadowMode.Synthetic */,\n delegatesFocus: Boolean(ctor.delegatesFocus),\n mode,\n });\n vm.shadowRoot = shadowRoot;\n associateVM(shadowRoot, vm);\n if (process.env.NODE_ENV !== 'production') {\n patchShadowRootWithRestrictions(shadowRoot);\n }\n return shadowRoot;\n}\nfunction warnIfInvokedDuringConstruction(vm, methodOrPropName) {\n if (isBeingConstructed(vm)) {\n logError(`this.${methodOrPropName} should not be called during the construction of the custom element for ${getComponentTag(vm)} because the element is not yet in the DOM or has no children yet.`);\n }\n}\n// @ts-ignore\nLightningElement.prototype = {\n constructor: LightningElement,\n dispatchEvent(event) {\n const vm = getAssociatedVM(this);\n const { elm, renderer: { dispatchEvent }, } = vm;\n return dispatchEvent(elm, event);\n },\n addEventListener(type, listener, options) {\n const vm = getAssociatedVM(this);\n const { elm, renderer: { addEventListener }, } = vm;\n if (process.env.NODE_ENV !== 'production') {\n const vmBeingRendered = getVMBeingRendered();\n if (isInvokingRender) {\n logError(`${vmBeingRendered}.render() method has side effects on the state of ${vm} by adding an event listener for \"${type}\".`);\n }\n if (isUpdatingTemplate) {\n logError(`Updating the template of ${vmBeingRendered} has side effects on the state of ${vm} by adding an event listener for \"${type}\".`);\n }\n if (!isFunction$1(listener)) {\n logError(`Invalid second argument for this.addEventListener() in ${vm} for event \"${type}\". Expected an EventListener but received ${listener}.`);\n }\n }\n const wrappedListener = getWrappedComponentsListener(vm, listener);\n addEventListener(elm, type, wrappedListener, options);\n },\n removeEventListener(type, listener, options) {\n const vm = getAssociatedVM(this);\n const { elm, renderer: { removeEventListener }, } = vm;\n const wrappedListener = getWrappedComponentsListener(vm, listener);\n removeEventListener(elm, type, wrappedListener, options);\n },\n hasAttribute(name) {\n const vm = getAssociatedVM(this);\n const { elm, renderer: { getAttribute }, } = vm;\n return !isNull(getAttribute(elm, name));\n },\n hasAttributeNS(namespace, name) {\n const vm = getAssociatedVM(this);\n const { elm, renderer: { getAttribute }, } = vm;\n return !isNull(getAttribute(elm, name, namespace));\n },\n removeAttribute(name) {\n const vm = getAssociatedVM(this);\n const { elm, renderer: { removeAttribute }, } = vm;\n removeAttribute(elm, name);\n },\n removeAttributeNS(namespace, name) {\n const { elm, renderer: { removeAttribute }, } = getAssociatedVM(this);\n removeAttribute(elm, name, namespace);\n },\n getAttribute(name) {\n const vm = getAssociatedVM(this);\n const { elm } = vm;\n const { getAttribute } = vm.renderer;\n return getAttribute(elm, name);\n },\n getAttributeNS(namespace, name) {\n const vm = getAssociatedVM(this);\n const { elm } = vm;\n const { getAttribute } = vm.renderer;\n return getAttribute(elm, name, namespace);\n },\n setAttribute(name, value) {\n const vm = getAssociatedVM(this);\n const { elm, renderer: { setAttribute }, } = vm;\n if (process.env.NODE_ENV !== 'production') {\n if (isBeingConstructed(vm)) {\n logError(`Failed to construct '${getComponentTag(vm)}': The result must not have attributes.`);\n }\n }\n setAttribute(elm, name, value);\n },\n setAttributeNS(namespace, name, value) {\n const vm = getAssociatedVM(this);\n const { elm, renderer: { setAttribute }, } = vm;\n if (process.env.NODE_ENV !== 'production') {\n if (isBeingConstructed(vm)) {\n logError(`Failed to construct '${getComponentTag(vm)}': The result must not have attributes.`);\n }\n }\n setAttribute(elm, name, value, namespace);\n },\n getBoundingClientRect() {\n const vm = getAssociatedVM(this);\n const { elm, renderer: { getBoundingClientRect }, } = vm;\n if (process.env.NODE_ENV !== 'production') {\n warnIfInvokedDuringConstruction(vm, 'getBoundingClientRect()');\n }\n return getBoundingClientRect(elm);\n },\n get isConnected() {\n const vm = getAssociatedVM(this);\n const { elm, renderer: { isConnected }, } = vm;\n return isConnected(elm);\n },\n get classList() {\n const vm = getAssociatedVM(this);\n const { elm, renderer: { getClassList }, } = vm;\n if (process.env.NODE_ENV !== 'production') {\n if (isBeingConstructed(vm)) {\n logError(`Failed to construct ${vm}: The result must not have attributes. Adding or tampering with classname in constructor is not allowed in a web component, use connectedCallback() instead.`);\n }\n }\n return getClassList(elm);\n },\n get template() {\n const vm = getAssociatedVM(this);\n if (process.env.NODE_ENV !== 'production') {\n if (vm.renderMode === 0 /* RenderMode.Light */) {\n logError('`this.template` returns null for light DOM components. Since there is no shadow, the rendered content can be accessed via `this` itself. e.g. instead of `this.template.querySelector`, use `this.querySelector`.');\n }\n }\n return vm.shadowRoot;\n },\n get refs() {\n const vm = getAssociatedVM(this);\n if (isUpdatingTemplate) {\n if (process.env.NODE_ENV !== 'production') {\n logError(`this.refs should not be called while ${getComponentTag(vm)} is rendering. Use this.refs only when the DOM is stable, e.g. in renderedCallback().`);\n }\n // If the template is in the process of being updated, then we don't want to go through the normal\n // process of returning the refs and caching them, because the state of the refs is unstable.\n // This can happen if e.g. a template contains `<div class={foo}></div>` and `foo` is computed\n // based on `this.refs.bar`.\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n warnIfInvokedDuringConstruction(vm, 'refs');\n }\n const { refVNodes, cmpTemplate } = vm;\n // If the `cmpTemplate` is null, that means that the template has not been rendered yet. Most likely this occurs\n // if `this.refs` is called during the `connectedCallback` phase. The DOM elements have not been rendered yet,\n // so log a warning. Note we also check `isBeingConstructed()` to avoid a double warning (due to\n // `warnIfInvokedDuringConstruction` above).\n if (process.env.NODE_ENV !== 'production' &&\n isNull(cmpTemplate) &&\n !isBeingConstructed(vm)) {\n logError(`this.refs is undefined for ${getComponentTag(vm)}. This is either because the attached template has no \"lwc:ref\" directive, or this.refs was ` +\n `invoked before renderedCallback(). Use this.refs only when the referenced HTML elements have ` +\n `been rendered to the DOM, such as within renderedCallback() or disconnectedCallback().`);\n }\n // For backwards compatibility with component written before template refs\n // were introduced, we return undefined if the template has no refs defined\n // anywhere. This fixes components that may want to add an expando called `refs`\n // and are checking if it exists with `if (this.refs)` before adding it.\n // Note we use a null refVNodes to indicate that the template has no refs defined.\n if (isNull(refVNodes)) {\n return;\n }\n // The refNodes can be cached based on the refVNodes, since the refVNodes\n // are recreated from scratch every time the template is rendered.\n // This happens with `vm.refVNodes = null` in `template.ts` in `@lwc/engine-core`.\n let refs = refsCache.get(refVNodes);\n if (isUndefined$1(refs)) {\n refs = create(null);\n for (const key of keys(refVNodes)) {\n refs[key] = refVNodes[key].elm;\n }\n freeze(refs);\n refsCache.set(refVNodes, refs);\n }\n return refs;\n },\n // For backwards compat, we allow component authors to set `refs` as an expando\n set refs(value) {\n defineProperty(this, 'refs', {\n configurable: true,\n enumerable: true,\n writable: true,\n value,\n });\n },\n get shadowRoot() {\n // From within the component instance, the shadowRoot is always reported as \"closed\".\n // Authors should rely on this.template instead.\n return null;\n },\n get children() {\n const vm = getAssociatedVM(this);\n const renderer = vm.renderer;\n if (process.env.NODE_ENV !== 'production') {\n warnIfInvokedDuringConstruction(vm, 'children');\n }\n return renderer.getChildren(vm.elm);\n },\n get childNodes() {\n const vm = getAssociatedVM(this);\n const renderer = vm.renderer;\n if (process.env.NODE_ENV !== 'production') {\n warnIfInvokedDuringConstruction(vm, 'childNodes');\n }\n return renderer.getChildNodes(vm.elm);\n },\n get firstChild() {\n const vm = getAssociatedVM(this);\n const renderer = vm.renderer;\n if (process.env.NODE_ENV !== 'production') {\n warnIfInvokedDuringConstruction(vm, 'firstChild');\n }\n return renderer.getFirstChild(vm.elm);\n },\n get firstElementChild() {\n const vm = getAssociatedVM(this);\n const renderer = vm.renderer;\n if (process.env.NODE_ENV !== 'production') {\n warnIfInvokedDuringConstruction(vm, 'firstElementChild');\n }\n return renderer.getFirstElementChild(vm.elm);\n },\n get lastChild() {\n const vm = getAssociatedVM(this);\n const renderer = vm.renderer;\n if (process.env.NODE_ENV !== 'production') {\n warnIfInvokedDuringConstruction(vm, 'lastChild');\n }\n return renderer.getLastChild(vm.elm);\n },\n get lastElementChild() {\n const vm = getAssociatedVM(this);\n const renderer = vm.renderer;\n if (process.env.NODE_ENV !== 'production') {\n warnIfInvokedDuringConstruction(vm, 'lastElementChild');\n }\n return renderer.getLastElementChild(vm.elm);\n },\n get ownerDocument() {\n const vm = getAssociatedVM(this);\n const renderer = vm.renderer;\n if (process.env.NODE_ENV !== 'production') {\n warnIfInvokedDuringConstruction(vm, 'ownerDocument');\n }\n return renderer.ownerDocument(vm.elm);\n },\n render() {\n const vm = getAssociatedVM(this);\n return vm.def.template;\n },\n toString() {\n const vm = getAssociatedVM(this);\n return `[object ${vm.def.name}]`;\n },\n};\nconst queryAndChildGetterDescriptors = create(null);\nconst queryMethods = [\n 'getElementsByClassName',\n 'getElementsByTagName',\n 'querySelector',\n 'querySelectorAll',\n];\n// Generic passthrough for query APIs on HTMLElement to the relevant Renderer APIs\nfor (const queryMethod of queryMethods) {\n queryAndChildGetterDescriptors[queryMethod] = {\n value(arg) {\n const vm = getAssociatedVM(this);\n const { elm, renderer } = vm;\n if (process.env.NODE_ENV !== 'production') {\n warnIfInvokedDuringConstruction(vm, `${queryMethod}()`);\n }\n return renderer[queryMethod](elm, arg);\n },\n configurable: true,\n enumerable: true,\n writable: true,\n };\n}\ndefineProperties(LightningElement.prototype, queryAndChildGetterDescriptors);\nconst lightningBasedDescriptors = create(null);\nfor (const propName in HTMLElementOriginalDescriptors) {\n lightningBasedDescriptors[propName] = createBridgeToElementDescriptor(propName, HTMLElementOriginalDescriptors[propName]);\n}\ndefineProperties(LightningElement.prototype, lightningBasedDescriptors);\nfunction applyAriaReflectionToLightningElement() {\n // If ARIA reflection is not applied globally to Element.prototype, or if we are running server-side,\n // apply it to LightningElement.prototype.\n // This allows `this.aria*` property accessors to work from inside a component, and to reflect `aria-*` attrs.\n applyAriaReflection(LightningElement.prototype);\n}\n{\n applyAriaReflectionToLightningElement();\n}\ndefineProperty(LightningElement, 'CustomElementConstructor', {\n get() {\n // If required, a runtime-specific implementation must be defined.\n throw new ReferenceError('The current runtime does not support CustomElementConstructor.');\n },\n configurable: true,\n});\nif (process.env.NODE_ENV !== 'production') {\n patchLightningElementPrototypeWithRestrictions(LightningElement.prototype);\n}\n\nfunction createObservedFieldPropertyDescriptor(key) {\n return {\n get() {\n const vm = getAssociatedVM(this);\n return vm.cmpFields[key];\n },\n set(newValue) {\n const vm = getAssociatedVM(this);\n updateComponentValue(vm, key, newValue);\n },\n enumerable: true,\n configurable: true,\n };\n}\n\n/*\n * Copyright (c) 2023, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nconst AdapterToTokenMap = new Map();\nfunction createContextProviderWithRegister(adapter, registerContextProvider) {\n let adapterContextToken = AdapterToTokenMap.get(adapter);\n if (!isUndefined$1(adapterContextToken)) {\n throw new Error(`Adapter already has a context provider.`);\n }\n adapterContextToken = guid();\n AdapterToTokenMap.set(adapter, adapterContextToken);\n const providers = new WeakSet();\n return (elmOrComponent, options) => {\n if (providers.has(elmOrComponent)) {\n throw new Error(`Adapter was already installed on ${elmOrComponent}.`);\n }\n providers.add(elmOrComponent);\n const { consumerConnectedCallback, consumerDisconnectedCallback } = options;\n registerContextProvider(elmOrComponent, adapterContextToken, (subscriptionPayload) => {\n const { setNewContext, setDisconnectedCallback } = subscriptionPayload;\n const consumer = {\n provide(newContext) {\n setNewContext(newContext);\n },\n };\n const disconnectCallback = () => {\n if (!isUndefined$1(consumerDisconnectedCallback)) {\n consumerDisconnectedCallback(consumer);\n }\n };\n setDisconnectedCallback(disconnectCallback);\n consumerConnectedCallback(consumer);\n });\n };\n}\nfunction createContextWatcher(vm, wireDef, callbackWhenContextIsReady) {\n const { adapter } = wireDef;\n const adapterContextToken = AdapterToTokenMap.get(adapter);\n if (isUndefined$1(adapterContextToken)) {\n return; // no provider found, nothing to be done\n }\n const { elm, context: { wiredConnecting, wiredDisconnecting }, renderer: { registerContextConsumer }, } = vm;\n // waiting for the component to be connected to formally request the context via the token\n ArrayPush$1.call(wiredConnecting, () => {\n // This will attempt to connect the current element with one of its anscestors\n // that can provide context for the given wire adapter. This relationship is\n // keyed on the secret & internal value of `adapterContextToken`, which is unique\n // to a given wire adapter.\n //\n // Depending on the runtime environment, this connection is made using either DOM\n // events (in the browser) or a custom traversal (on the server).\n registerContextConsumer(elm, adapterContextToken, {\n setNewContext(newContext) {\n // eslint-disable-next-line @lwc/lwc-internal/no-invalid-todo\n // TODO: dev-mode validation of config based on the adapter.contextSchema\n callbackWhenContextIsReady(newContext);\n },\n setDisconnectedCallback(disconnectCallback) {\n // adds this callback into the disconnect bucket so it gets disconnected from parent\n // the the element hosting the wire is disconnected\n ArrayPush$1.call(wiredDisconnecting, disconnectCallback);\n },\n });\n });\n}\n\n/*\n * Copyright (c) 2023, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nconst DeprecatedWiredElementHost = '$$DeprecatedWiredElementHostKey$$';\nconst DeprecatedWiredParamsMeta = '$$DeprecatedWiredParamsMetaKey$$';\nconst WIRE_DEBUG_ENTRY = '@wire';\nconst WireMetaMap = new Map();\nfunction createFieldDataCallback(vm, name) {\n return (value) => {\n updateComponentValue(vm, name, value);\n };\n}\nfunction createMethodDataCallback(vm, method) {\n return (value) => {\n // dispatching new value into the wired method\n runWithBoundaryProtection(vm, vm.owner, noop, () => {\n // job\n method.call(vm.component, value);\n }, noop);\n };\n}\nfunction createConfigWatcher(component, configCallback, callbackWhenConfigIsReady) {\n // creating the reactive observer for reactive params when needed\n const ro = createReactiveObserver();\n const computeConfigAndUpdate = () => {\n let config;\n ro.observe(() => (config = configCallback(component)));\n // eslint-disable-next-line @lwc/lwc-internal/no-invalid-todo\n // TODO: dev-mode validation of config based on the adapter.configSchema\n // @ts-ignore it is assigned in the observe() callback\n callbackWhenConfigIsReady(config);\n };\n return {\n computeConfigAndUpdate,\n ro,\n };\n}\nfunction createConnector(vm, name, wireDef) {\n const { method, adapter, configCallback, dynamic } = wireDef;\n let debugInfo;\n if (process.env.NODE_ENV !== 'production') {\n const wiredPropOrMethod = isUndefined$1(method) ? name : method.name;\n debugInfo = create(null);\n debugInfo.wasDataProvisionedForConfig = false;\n vm.debugInfo[WIRE_DEBUG_ENTRY][wiredPropOrMethod] = debugInfo;\n }\n const fieldOrMethodCallback = isUndefined$1(method)\n ? createFieldDataCallback(vm, name)\n : createMethodDataCallback(vm, method);\n const dataCallback = (value) => {\n if (process.env.NODE_ENV !== 'production') {\n debugInfo.data = value;\n // Note: most of the time, the data provided is for the current config, but there may be\n // some conditions in which it does not, ex:\n // race conditions in a poor network while the adapter does not cancel a previous request.\n debugInfo.wasDataProvisionedForConfig = true;\n }\n fieldOrMethodCallback(value);\n };\n let context;\n let connector;\n // Workaround to pass the component element associated to this wire adapter instance.\n defineProperty(dataCallback, DeprecatedWiredElementHost, {\n value: vm.elm,\n });\n defineProperty(dataCallback, DeprecatedWiredParamsMeta, {\n value: dynamic,\n });\n runWithBoundaryProtection(vm, vm, noop, () => {\n // job\n connector = new adapter(dataCallback, { tagName: vm.tagName });\n }, noop);\n const updateConnectorConfig = (config) => {\n // every time the config is recomputed due to tracking,\n // this callback will be invoked with the new computed config\n runWithBoundaryProtection(vm, vm, noop, () => {\n // job\n if (process.env.NODE_ENV !== 'production') {\n debugInfo.config = config;\n debugInfo.context = context;\n debugInfo.wasDataProvisionedForConfig = false;\n }\n connector.update(config, context);\n }, noop);\n };\n // Computes the current wire config and calls the update method on the wire adapter.\n // If it has params, we will need to observe changes in the next tick.\n const { computeConfigAndUpdate, ro } = createConfigWatcher(vm.component, configCallback, updateConnectorConfig);\n // if the adapter needs contextualization, we need to watch for new context and push it alongside the config\n if (!isUndefined$1(adapter.contextSchema)) {\n createContextWatcher(vm, wireDef, (newContext) => {\n // every time the context is pushed into this component,\n // this callback will be invoked with the new computed context\n if (context !== newContext) {\n context = newContext;\n // Note: when new context arrives, the config will be recomputed and pushed along side the new\n // context, this is to preserve the identity characteristics, config should not have identity\n // (ever), while context can have identity\n if (vm.state === 1 /* VMState.connected */) {\n computeConfigAndUpdate();\n }\n }\n });\n }\n return {\n // @ts-ignore the boundary protection executes sync, connector is always defined\n connector,\n computeConfigAndUpdate,\n resetConfigWatcher: () => ro.reset(),\n };\n}\nfunction storeWiredMethodMeta(descriptor, adapter, configCallback, dynamic) {\n // support for callable adapters\n if (adapter.adapter) {\n adapter = adapter.adapter;\n }\n const method = descriptor.value;\n const def = {\n adapter,\n method,\n configCallback,\n dynamic,\n };\n WireMetaMap.set(descriptor, def);\n}\nfunction storeWiredFieldMeta(descriptor, adapter, configCallback, dynamic) {\n // support for callable adapters\n if (adapter.adapter) {\n adapter = adapter.adapter;\n }\n const def = {\n adapter,\n configCallback,\n dynamic,\n };\n WireMetaMap.set(descriptor, def);\n}\nfunction installWireAdapters(vm) {\n const { context, def: { wire }, } = vm;\n if (process.env.NODE_ENV !== 'production') {\n vm.debugInfo[WIRE_DEBUG_ENTRY] = create(null);\n }\n const wiredConnecting = (context.wiredConnecting = []);\n const wiredDisconnecting = (context.wiredDisconnecting = []);\n for (const fieldNameOrMethod in wire) {\n const descriptor = wire[fieldNameOrMethod];\n const wireDef = WireMetaMap.get(descriptor);\n if (process.env.NODE_ENV !== 'production') {\n assert.invariant(wireDef, `Internal Error: invalid wire definition found.`);\n }\n if (!isUndefined$1(wireDef)) {\n const { connector, computeConfigAndUpdate, resetConfigWatcher } = createConnector(vm, fieldNameOrMethod, wireDef);\n const hasDynamicParams = wireDef.dynamic.length > 0;\n ArrayPush$1.call(wiredConnecting, () => {\n connector.connect();\n if (!lwcRuntimeFlags.ENABLE_WIRE_SYNC_EMIT) {\n if (hasDynamicParams) {\n Promise.resolve().then(computeConfigAndUpdate);\n return;\n }\n }\n computeConfigAndUpdate();\n });\n ArrayPush$1.call(wiredDisconnecting, () => {\n connector.disconnect();\n resetConfigWatcher();\n });\n }\n }\n}\nfunction connectWireAdapters(vm) {\n const { wiredConnecting } = vm.context;\n for (let i = 0, len = wiredConnecting.length; i < len; i += 1) {\n wiredConnecting[i]();\n }\n}\nfunction disconnectWireAdapters(vm) {\n const { wiredDisconnecting } = vm.context;\n runWithBoundaryProtection(vm, vm, noop, () => {\n // job\n for (let i = 0, len = wiredDisconnecting.length; i < len; i += 1) {\n wiredDisconnecting[i]();\n }\n }, noop);\n}\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nfunction api$1() {\n if (process.env.NODE_ENV !== 'production') {\n assert.fail(`@api decorator can only be used as a decorator function.`);\n }\n throw new Error();\n}\nfunction createPublicPropertyDescriptor(key) {\n return {\n get() {\n const vm = getAssociatedVM(this);\n if (isBeingConstructed(vm)) {\n if (process.env.NODE_ENV !== 'production') {\n logError(`Can’t read the value of property \\`${toString$1(key)}\\` from the constructor because the owner component hasn’t set the value yet. Instead, use the constructor to set a default value for the property.`, vm);\n }\n return;\n }\n return vm.cmpProps[key];\n },\n set(newValue) {\n const vm = getAssociatedVM(this);\n if (process.env.NODE_ENV !== 'production') {\n const vmBeingRendered = getVMBeingRendered();\n if (isInvokingRender) {\n logError(`render() method has side effects on the state of property \"${toString$1(key)}\"`, isNull(vmBeingRendered) ? vm : vmBeingRendered);\n }\n if (isUpdatingTemplate) {\n logError(`Updating the template has side effects on the state of property \"${toString$1(key)}\"`, isNull(vmBeingRendered) ? vm : vmBeingRendered);\n }\n }\n vm.cmpProps[key] = newValue;\n },\n enumerable: true,\n configurable: true,\n };\n}\nfunction createPublicAccessorDescriptor(key, descriptor) {\n const { get, set, enumerable, configurable } = descriptor;\n assert.invariant(isFunction$1(get), `Invalid public accessor ${toString$1(key)} decorated with @api. The property is missing a getter.`);\n return {\n get() {\n if (process.env.NODE_ENV !== 'production') {\n // Assert that the this value is an actual Component with an associated VM.\n getAssociatedVM(this);\n }\n return get.call(this);\n },\n set(newValue) {\n const vm = getAssociatedVM(this);\n if (process.env.NODE_ENV !== 'production') {\n const vmBeingRendered = getVMBeingRendered();\n if (isInvokingRender) {\n logError(`render() method has side effects on the state of property \"${toString$1(key)}\"`, isNull(vmBeingRendered) ? vm : vmBeingRendered);\n }\n if (isUpdatingTemplate) {\n logError(`Updating the template has side effects on the state of property \"${toString$1(key)}\"`, isNull(vmBeingRendered) ? vm : vmBeingRendered);\n }\n }\n if (set) {\n set.call(this, newValue);\n }\n else if (process.env.NODE_ENV !== 'production') {\n logError(`Invalid attempt to set a new value for property \"${toString$1(key)}\" that does not has a setter decorated with @api.`, vm);\n }\n },\n enumerable,\n configurable,\n };\n}\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nfunction track(target) {\n if (arguments.length === 1) {\n return getReactiveProxy(target);\n }\n if (process.env.NODE_ENV !== 'production') {\n assert.fail(`@track decorator can only be used with one argument to return a trackable object, or as a decorator function.`);\n }\n throw new Error();\n}\nfunction internalTrackDecorator(key) {\n return {\n get() {\n const vm = getAssociatedVM(this);\n return vm.cmpFields[key];\n },\n set(newValue) {\n const vm = getAssociatedVM(this);\n if (process.env.NODE_ENV !== 'production') {\n const vmBeingRendered = getVMBeingRendered();\n if (isInvokingRender) {\n logError(`${vmBeingRendered}.render() method has side effects on the state of ${vm}.${toString$1(key)}`);\n }\n if (isUpdatingTemplate) {\n logError(`Updating the template of ${vmBeingRendered} has side effects on the state of ${vm}.${toString$1(key)}`);\n }\n }\n const reactiveOrAnyValue = getReactiveProxy(newValue);\n updateComponentValue(vm, key, reactiveOrAnyValue);\n },\n enumerable: true,\n configurable: true,\n };\n}\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\n/**\n * @wire decorator to wire fields and methods to a wire adapter in\n * LWC Components. This function implements the internals of this\n * decorator.\n */\nfunction wire(_adapter, _config) {\n if (process.env.NODE_ENV !== 'production') {\n assert.fail('@wire(adapter, config?) may only be used as a decorator.');\n }\n throw new Error();\n}\nfunction internalWireFieldDecorator(key) {\n return {\n get() {\n const vm = getAssociatedVM(this);\n return vm.cmpFields[key];\n },\n set(value) {\n const vm = getAssociatedVM(this);\n /**\n * Reactivity for wired fields is provided in wiring.\n * We intentionally add reactivity here since this is just\n * letting the author to do the wrong thing, but it will keep our\n * system to be backward compatible.\n */\n updateComponentValue(vm, key, value);\n },\n enumerable: true,\n configurable: true,\n };\n}\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nfunction getClassDescriptorType(descriptor) {\n if (isFunction$1(descriptor.value)) {\n return \"method\" /* DescriptorType.Method */;\n }\n else if (isFunction$1(descriptor.set) || isFunction$1(descriptor.get)) {\n return \"accessor\" /* DescriptorType.Accessor */;\n }\n else {\n return \"field\" /* DescriptorType.Field */;\n }\n}\nfunction validateObservedField(Ctor, fieldName, descriptor) {\n assertNotProd(); // this method should never leak to prod\n if (!isUndefined$1(descriptor)) {\n const type = getClassDescriptorType(descriptor);\n const message = `Invalid observed ${fieldName} field. Found a duplicate ${type} with the same name.`;\n // TODO [#3408]: this should throw, not log\n logError(message);\n }\n}\nfunction validateFieldDecoratedWithTrack(Ctor, fieldName, descriptor) {\n assertNotProd(); // this method should never leak to prod\n if (!isUndefined$1(descriptor)) {\n const type = getClassDescriptorType(descriptor);\n // TODO [#3408]: this should throw, not log\n logError(`Invalid @track ${fieldName} field. Found a duplicate ${type} with the same name.`);\n }\n}\nfunction validateFieldDecoratedWithWire(Ctor, fieldName, descriptor) {\n assertNotProd(); // this method should never leak to prod\n if (!isUndefined$1(descriptor)) {\n const type = getClassDescriptorType(descriptor);\n // TODO [#3408]: this should throw, not log\n logError(`Invalid @wire ${fieldName} field. Found a duplicate ${type} with the same name.`);\n }\n}\nfunction validateMethodDecoratedWithWire(Ctor, methodName, descriptor) {\n assertNotProd(); // this method should never leak to prod\n if (isUndefined$1(descriptor) || !isFunction$1(descriptor.value) || isFalse(descriptor.writable)) {\n // TODO [#3441]: This line of code does not seem possible to reach.\n logError(`Invalid @wire ${methodName} field. The field should have a valid writable descriptor.`);\n }\n}\nfunction validateFieldDecoratedWithApi(Ctor, fieldName, descriptor) {\n assertNotProd(); // this method should never leak to prod\n if (!isUndefined$1(descriptor)) {\n const type = getClassDescriptorType(descriptor);\n const message = `Invalid @api ${fieldName} field. Found a duplicate ${type} with the same name.`;\n // TODO [#3408]: this should throw, not log\n logError(message);\n }\n}\nfunction validateAccessorDecoratedWithApi(Ctor, fieldName, descriptor) {\n assertNotProd(); // this method should never leak to prod\n if (isFunction$1(descriptor.set)) {\n if (!isFunction$1(descriptor.get)) {\n // TODO [#3441]: This line of code does not seem possible to reach.\n logError(`Missing getter for property ${fieldName} decorated with @api in ${Ctor}. You cannot have a setter without the corresponding getter.`);\n }\n }\n else if (!isFunction$1(descriptor.get)) {\n // TODO [#3441]: This line of code does not seem possible to reach.\n logError(`Missing @api get ${fieldName} accessor.`);\n }\n}\nfunction validateMethodDecoratedWithApi(Ctor, methodName, descriptor) {\n assertNotProd(); // this method should never leak to prod\n if (isUndefined$1(descriptor) || !isFunction$1(descriptor.value) || isFalse(descriptor.writable)) {\n // TODO [#3441]: This line of code does not seem possible to reach.\n logError(`Invalid @api ${methodName} method.`);\n }\n}\n/**\n * INTERNAL: This function can only be invoked by compiled code. The compiler\n * will prevent this function from being imported by user-land code.\n */\nfunction registerDecorators(Ctor, meta) {\n const proto = Ctor.prototype;\n const { publicProps, publicMethods, wire, track, fields } = meta;\n const apiMethods = create(null);\n const apiFields = create(null);\n const wiredMethods = create(null);\n const wiredFields = create(null);\n const observedFields = create(null);\n const apiFieldsConfig = create(null);\n let descriptor;\n if (!isUndefined$1(publicProps)) {\n for (const fieldName in publicProps) {\n const propConfig = publicProps[fieldName];\n apiFieldsConfig[fieldName] = propConfig.config;\n descriptor = getOwnPropertyDescriptor$1(proto, fieldName);\n if (propConfig.config > 0) {\n if (isUndefined$1(descriptor)) {\n // TODO [#3441]: This line of code does not seem possible to reach.\n throw new Error();\n }\n // accessor declaration\n if (process.env.NODE_ENV !== 'production') {\n validateAccessorDecoratedWithApi(Ctor, fieldName, descriptor);\n }\n descriptor = createPublicAccessorDescriptor(fieldName, descriptor);\n }\n else {\n // field declaration\n if (process.env.NODE_ENV !== 'production') {\n validateFieldDecoratedWithApi(Ctor, fieldName, descriptor);\n }\n // [W-9927596] If a component has both a public property and a private setter/getter\n // with the same name, the property is defined as a public accessor. This branch is\n // only here for backward compatibility reasons.\n if (!isUndefined$1(descriptor) && !isUndefined$1(descriptor.get)) {\n descriptor = createPublicAccessorDescriptor(fieldName, descriptor);\n }\n else {\n descriptor = createPublicPropertyDescriptor(fieldName);\n }\n }\n apiFields[fieldName] = descriptor;\n defineProperty(proto, fieldName, descriptor);\n }\n }\n if (!isUndefined$1(publicMethods)) {\n forEach.call(publicMethods, (methodName) => {\n descriptor = getOwnPropertyDescriptor$1(proto, methodName);\n if (process.env.NODE_ENV !== 'production') {\n validateMethodDecoratedWithApi(Ctor, methodName, descriptor);\n }\n if (isUndefined$1(descriptor)) {\n throw new Error();\n }\n apiMethods[methodName] = descriptor;\n });\n }\n if (!isUndefined$1(wire)) {\n for (const fieldOrMethodName in wire) {\n const { adapter, method, config: configCallback, dynamic = [], } = wire[fieldOrMethodName];\n descriptor = getOwnPropertyDescriptor$1(proto, fieldOrMethodName);\n if (method === 1) {\n if (process.env.NODE_ENV !== 'production') {\n if (!adapter) {\n // TODO [#3408]: this should throw, not log\n logError(`@wire on method \"${fieldOrMethodName}\": adapter id must be truthy.`);\n }\n validateMethodDecoratedWithWire(Ctor, fieldOrMethodName, descriptor);\n }\n if (isUndefined$1(descriptor)) {\n throw new Error();\n }\n wiredMethods[fieldOrMethodName] = descriptor;\n storeWiredMethodMeta(descriptor, adapter, configCallback, dynamic);\n }\n else {\n if (process.env.NODE_ENV !== 'production') {\n if (!adapter) {\n // TODO [#3408]: this should throw, not log\n logError(`@wire on field \"${fieldOrMethodName}\": adapter id must be truthy.`);\n }\n validateFieldDecoratedWithWire(Ctor, fieldOrMethodName, descriptor);\n }\n descriptor = internalWireFieldDecorator(fieldOrMethodName);\n wiredFields[fieldOrMethodName] = descriptor;\n storeWiredFieldMeta(descriptor, adapter, configCallback, dynamic);\n defineProperty(proto, fieldOrMethodName, descriptor);\n }\n }\n }\n if (!isUndefined$1(track)) {\n for (const fieldName in track) {\n descriptor = getOwnPropertyDescriptor$1(proto, fieldName);\n if (process.env.NODE_ENV !== 'production') {\n validateFieldDecoratedWithTrack(Ctor, fieldName, descriptor);\n }\n descriptor = internalTrackDecorator(fieldName);\n defineProperty(proto, fieldName, descriptor);\n }\n }\n if (!isUndefined$1(fields)) {\n for (let i = 0, n = fields.length; i < n; i++) {\n const fieldName = fields[i];\n descriptor = getOwnPropertyDescriptor$1(proto, fieldName);\n if (process.env.NODE_ENV !== 'production') {\n validateObservedField(Ctor, fieldName, descriptor);\n }\n // [W-9927596] Only mark a field as observed whenever it isn't a duplicated public nor\n // tracked property. This is only here for backward compatibility purposes.\n const isDuplicatePublicProp = !isUndefined$1(publicProps) && fieldName in publicProps;\n const isDuplicateTrackedProp = !isUndefined$1(track) && fieldName in track;\n if (!isDuplicatePublicProp && !isDuplicateTrackedProp) {\n observedFields[fieldName] = createObservedFieldPropertyDescriptor(fieldName);\n }\n }\n }\n setDecoratorsMeta(Ctor, {\n apiMethods,\n apiFields,\n apiFieldsConfig,\n wiredMethods,\n wiredFields,\n observedFields,\n });\n return Ctor;\n}\nconst signedDecoratorToMetaMap = new Map();\nfunction setDecoratorsMeta(Ctor, meta) {\n signedDecoratorToMetaMap.set(Ctor, meta);\n}\nconst defaultMeta = {\n apiMethods: EmptyObject,\n apiFields: EmptyObject,\n apiFieldsConfig: EmptyObject,\n wiredMethods: EmptyObject,\n wiredFields: EmptyObject,\n observedFields: EmptyObject,\n};\nfunction getDecoratorsMeta(Ctor) {\n const meta = signedDecoratorToMetaMap.get(Ctor);\n return isUndefined$1(meta) ? defaultMeta : meta;\n}\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nlet warned = false;\n// Only used in LWC's Karma tests\nif (process.env.NODE_ENV === 'test-karma-lwc') {\n // @ts-ignore\n window.__lwcResetWarnedOnVersionMismatch = () => {\n warned = false;\n };\n}\nfunction checkVersionMismatch(func, type) {\n const versionMatcher = func.toString().match(LWC_VERSION_COMMENT_REGEX);\n if (!isNull(versionMatcher) && !warned) {\n const version = versionMatcher[1];\n const [major, minor] = version.split('.');\n const [expectedMajor, expectedMinor] = LWC_VERSION.split('.');\n if (major !== expectedMajor || minor !== expectedMinor) {\n warned = true; // only warn once to avoid flooding the console\n // stylesheets and templates do not have user-meaningful names, but components do\n const friendlyName = type === 'component' ? `${type} ${func.name}` : type;\n logError(`LWC WARNING: current engine is v${LWC_VERSION}, but ${friendlyName} was compiled with v${version}.\\nPlease update your compiled code or LWC engine so that the versions match.\\nNo further warnings will appear.`);\n }\n }\n}\n\nconst signedTemplateSet = new Set();\nfunction defaultEmptyTemplate() {\n return [];\n}\nsignedTemplateSet.add(defaultEmptyTemplate);\nfunction isTemplateRegistered(tpl) {\n return signedTemplateSet.has(tpl);\n}\n/**\n * INTERNAL: This function can only be invoked by compiled code. The compiler\n * will prevent this function from being imported by userland code.\n */\nfunction registerTemplate(tpl) {\n if (process.env.NODE_ENV !== 'production') {\n checkVersionMismatch(tpl, 'template');\n }\n signedTemplateSet.add(tpl);\n // chaining this method as a way to wrap existing\n // assignment of templates easily, without too much transformation\n return tpl;\n}\n/**\n * EXPERIMENTAL: This function acts like a hook for Lightning Locker Service and other similar\n * libraries to sanitize vulnerable attributes.\n */\nfunction sanitizeAttribute(tagName, namespaceUri, attrName, attrValue) {\n // locker-service patches this function during runtime to sanitize vulnerable attributes. When\n // ran off-core this function becomes a noop and returns the user authored value.\n return attrValue;\n}\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\n/**\n * This module is responsible for creating the base bridge class BaseBridgeElement\n * that represents the HTMLElement extension used for any LWC inserted in the DOM.\n */\n// A bridge descriptor is a descriptor whose job is just to get the component instance\n// from the element instance, and get the value or set a new value on the component.\n// This means that across different elements, similar names can get the exact same\n// descriptor, so we can cache them:\nconst cachedGetterByKey = create(null);\nconst cachedSetterByKey = create(null);\nfunction createGetter(key) {\n let fn = cachedGetterByKey[key];\n if (isUndefined$1(fn)) {\n fn = cachedGetterByKey[key] = function () {\n const vm = getAssociatedVM(this);\n const { getHook } = vm;\n return getHook(vm.component, key);\n };\n }\n return fn;\n}\nfunction createSetter(key) {\n let fn = cachedSetterByKey[key];\n if (isUndefined$1(fn)) {\n fn = cachedSetterByKey[key] = function (newValue) {\n const vm = getAssociatedVM(this);\n const { setHook } = vm;\n newValue = getReadOnlyProxy(newValue);\n setHook(vm.component, key, newValue);\n };\n }\n return fn;\n}\nfunction createMethodCaller(methodName) {\n return function () {\n const vm = getAssociatedVM(this);\n const { callHook, component } = vm;\n const fn = component[methodName];\n return callHook(vm.component, fn, ArraySlice.call(arguments));\n };\n}\nfunction createAttributeChangedCallback(attributeToPropMap, superAttributeChangedCallback) {\n return function attributeChangedCallback(attrName, oldValue, newValue) {\n if (oldValue === newValue) {\n // Ignore same values.\n return;\n }\n const propName = attributeToPropMap[attrName];\n if (isUndefined$1(propName)) {\n if (!isUndefined$1(superAttributeChangedCallback)) {\n // delegate unknown attributes to the super.\n // Typescript does not like it when you treat the `arguments` object as an array\n // @ts-ignore type-mismatch\n superAttributeChangedCallback.apply(this, arguments);\n }\n return;\n }\n // Reflect attribute change to the corresponding property when changed from outside.\n this[propName] = newValue;\n };\n}\nfunction HTMLBridgeElementFactory(SuperClass, props, methods) {\n let HTMLBridgeElement;\n /**\n * Modern browsers will have all Native Constructors as regular Classes\n * and must be instantiated with the new keyword. In older browsers,\n * specifically IE11, those are objects with a prototype property defined,\n * since they are not supposed to be extended or instantiated with the\n * new keyword. This forking logic supports both cases, specifically because\n * wc.ts relies on the construction path of the bridges to create new\n * fully qualifying web components.\n */\n if (isFunction$1(SuperClass)) {\n HTMLBridgeElement = class extends SuperClass {\n };\n }\n else {\n HTMLBridgeElement = function () {\n // Bridge classes are not supposed to be instantiated directly in\n // browsers that do not support web components.\n throw new TypeError('Illegal constructor');\n };\n // prototype inheritance dance\n setPrototypeOf(HTMLBridgeElement, SuperClass);\n setPrototypeOf(HTMLBridgeElement.prototype, SuperClass.prototype);\n defineProperty(HTMLBridgeElement.prototype, 'constructor', {\n writable: true,\n configurable: true,\n value: HTMLBridgeElement,\n });\n }\n // generating the hash table for attributes to avoid duplicate fields and facilitate validation\n // and false positives in case of inheritance.\n const attributeToPropMap = create(null);\n const { attributeChangedCallback: superAttributeChangedCallback } = SuperClass.prototype;\n const { observedAttributes: superObservedAttributes = [] } = SuperClass;\n const descriptors = create(null);\n // expose getters and setters for each public props on the new Element Bridge\n for (let i = 0, len = props.length; i < len; i += 1) {\n const propName = props[i];\n attributeToPropMap[htmlPropertyToAttribute(propName)] = propName;\n descriptors[propName] = {\n get: createGetter(propName),\n set: createSetter(propName),\n enumerable: true,\n configurable: true,\n };\n }\n // expose public methods as props on the new Element Bridge\n for (let i = 0, len = methods.length; i < len; i += 1) {\n const methodName = methods[i];\n descriptors[methodName] = {\n value: createMethodCaller(methodName),\n writable: true,\n configurable: true,\n };\n }\n // creating a new attributeChangedCallback per bridge because they are bound to the corresponding\n // map of attributes to props. We do this after all other props and methods to avoid the possibility\n // of getting overrule by a class declaration in user-land, and we make it non-writable, non-configurable\n // to preserve this definition.\n descriptors.attributeChangedCallback = {\n value: createAttributeChangedCallback(attributeToPropMap, superAttributeChangedCallback),\n };\n // Specify attributes for which we want to reflect changes back to their corresponding\n // properties via attributeChangedCallback.\n defineProperty(HTMLBridgeElement, 'observedAttributes', {\n get() {\n return [...superObservedAttributes, ...keys(attributeToPropMap)];\n },\n });\n defineProperties(HTMLBridgeElement.prototype, descriptors);\n return HTMLBridgeElement;\n}\nconst BaseBridgeElement = HTMLBridgeElementFactory(HTMLElementConstructor, getOwnPropertyNames$1(HTMLElementOriginalDescriptors), []);\nfreeze(BaseBridgeElement);\nseal(BaseBridgeElement.prototype);\n\n/*\n * Copyright (c) 2023, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nconst supportsWeakRefs = typeof WeakRef === 'function' && typeof FinalizationRegistry === 'function';\n// In browsers that doesn't support WeakRefs, the values will still leak, but at least the keys won't\nclass LegacyWeakMultiMap {\n constructor() {\n this._map = new WeakMap();\n }\n _getValues(key) {\n let values = this._map.get(key);\n if (isUndefined$1(values)) {\n values = new Set();\n this._map.set(key, values);\n }\n return values;\n }\n get(key) {\n return this._getValues(key);\n }\n add(key, vm) {\n const set = this._getValues(key);\n set.add(vm);\n }\n delete(key) {\n this._map.delete(key);\n }\n}\n// This implementation relies on the WeakRef/FinalizationRegistry proposal.\n// For some background, see: https://github.com/tc39/proposal-weakrefs\nclass ModernWeakMultiMap {\n constructor() {\n this._map = new WeakMap();\n this._registry = new FinalizationRegistry((weakRefs) => {\n // This should be considered an optional cleanup method to remove GC'ed values from their respective arrays.\n // JS VMs are not obligated to call FinalizationRegistry callbacks.\n // Work backwards, removing stale VMs\n for (let i = weakRefs.length - 1; i >= 0; i--) {\n const vm = weakRefs[i].deref();\n if (isUndefined$1(vm)) {\n ArraySplice.call(weakRefs, i, 1); // remove\n }\n }\n });\n }\n _getWeakRefs(key) {\n let weakRefs = this._map.get(key);\n if (isUndefined$1(weakRefs)) {\n weakRefs = [];\n this._map.set(key, weakRefs);\n }\n return weakRefs;\n }\n get(key) {\n const weakRefs = this._getWeakRefs(key);\n const result = new Set();\n for (const weakRef of weakRefs) {\n const vm = weakRef.deref();\n if (!isUndefined$1(vm)) {\n result.add(vm);\n }\n }\n return result;\n }\n add(key, value) {\n const weakRefs = this._getWeakRefs(key);\n // We could check for duplicate values here, but it doesn't seem worth it.\n // We transform the output into a Set anyway\n ArrayPush$1.call(weakRefs, new WeakRef(value));\n // It's important here not to leak the second argument, which is the \"held value.\" The FinalizationRegistry\n // effectively creates a strong reference between the first argument (the \"target\") and the held value. When\n // the target is GC'ed, the callback is called, and then the held value is GC'ed.\n // Putting the key here would mean the key is not GC'ed until the value is GC'ed, which defeats the purpose\n // of the WeakMap. Whereas putting the weakRefs array here is fine, because it doesn't have a strong reference\n // to anything. See also this example:\n // https://gist.github.com/nolanlawson/79a3d36e8e6cc25c5048bb17c1795aea\n this._registry.register(value, weakRefs);\n }\n delete(key) {\n this._map.delete(key);\n }\n}\nconst WeakMultiMap = supportsWeakRefs ? ModernWeakMultiMap : LegacyWeakMultiMap;\n\n/*\n * Copyright (c) 2020, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nconst swappedTemplateMap = new WeakMap();\nconst swappedComponentMap = new WeakMap();\nconst swappedStyleMap = new WeakMap();\n// The important thing here is the weak values – VMs are transient (one per component instance) and should be GC'ed,\n// so we don't want to create strong references to them.\n// The weak keys are kind of useless, because Templates, LightningElementConstructors, and StylesheetFactories are\n// never GC'ed. But maybe they will be someday, so we may as well use weak keys too.\nconst activeTemplates = new WeakMultiMap();\nconst activeComponents = new WeakMultiMap();\nconst activeStyles = new WeakMultiMap();\nfunction getTemplateOrSwappedTemplate(tpl) {\n assertNotProd(); // this method should never leak to prod\n const visited = new Set();\n while (swappedTemplateMap.has(tpl) && !visited.has(tpl)) {\n visited.add(tpl);\n tpl = swappedTemplateMap.get(tpl);\n }\n return tpl;\n}\nfunction getComponentOrSwappedComponent(Ctor) {\n assertNotProd(); // this method should never leak to prod\n const visited = new Set();\n while (swappedComponentMap.has(Ctor) && !visited.has(Ctor)) {\n visited.add(Ctor);\n Ctor = swappedComponentMap.get(Ctor);\n }\n return Ctor;\n}\nfunction getStyleOrSwappedStyle(style) {\n assertNotProd(); // this method should never leak to prod\n const visited = new Set();\n while (swappedStyleMap.has(style) && !visited.has(style)) {\n visited.add(style);\n style = swappedStyleMap.get(style);\n }\n return style;\n}\nfunction setActiveVM(vm) {\n assertNotProd(); // this method should never leak to prod\n // tracking active component\n const Ctor = vm.def.ctor;\n // this will allow us to keep track of the hot components\n activeComponents.add(Ctor, vm);\n // tracking active template\n const tpl = vm.cmpTemplate;\n if (tpl) {\n // this will allow us to keep track of the templates that are\n // being used by a hot component\n activeTemplates.add(tpl, vm);\n // tracking active styles associated to template\n const stylesheets = tpl.stylesheets;\n if (!isUndefined$1(stylesheets)) {\n for (const stylesheet of flattenStylesheets(stylesheets)) {\n // this is necessary because we don't hold the list of styles\n // in the vm, we only hold the selected (already swapped template)\n // but the styles attached to the template might not be the actual\n // active ones, but the swapped versions of those.\n const swappedStylesheet = getStyleOrSwappedStyle(stylesheet);\n // this will allow us to keep track of the stylesheet that are\n // being used by a hot component\n activeStyles.add(swappedStylesheet, vm);\n }\n }\n }\n}\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\n/**\n * This module is responsible for producing the ComponentDef object that is always\n * accessible via `vm.def`. This is lazily created during the creation of the first\n * instance of a component class, and shared across all instances.\n *\n * This structure can be used to synthetically create proxies, and understand the\n * shape of a component. It is also used internally to apply extra optimizations.\n */\nconst CtorToDefMap = new WeakMap();\nfunction getCtorProto(Ctor) {\n let proto = getPrototypeOf$1(Ctor);\n if (isNull(proto)) {\n throw new ReferenceError(`Invalid prototype chain for ${Ctor.name}, you must extend LightningElement.`);\n }\n // covering the cases where the ref is circular in AMD\n if (isCircularModuleDependency(proto)) {\n const p = resolveCircularModuleDependency(proto);\n if (process.env.NODE_ENV !== 'production') {\n if (isNull(p)) {\n throw new ReferenceError(`Circular module dependency for ${Ctor.name}, must resolve to a constructor that extends LightningElement.`);\n }\n }\n // escape hatch for Locker and other abstractions to provide their own base class instead\n // of our Base class without having to leak it to user-land. If the circular function returns\n // itself, that's the signal that we have hit the end of the proto chain, which must always\n // be base.\n proto = p === proto ? LightningElement : p;\n }\n return proto;\n}\nfunction createComponentDef(Ctor) {\n const { shadowSupportMode: ctorShadowSupportMode, renderMode: ctorRenderMode } = Ctor;\n if (process.env.NODE_ENV !== 'production') {\n const ctorName = Ctor.name;\n // Removing the following assert until https://bugs.webkit.org/show_bug.cgi?id=190140 is fixed.\n // assert.isTrue(ctorName && isString(ctorName), `${toString(Ctor)} should have a \"name\" property with string value, but found ${ctorName}.`);\n if (!Ctor.constructor) {\n // This error seems impossible to hit, due to an earlier check in `isComponentConstructor()`.\n // But we keep it here just in case.\n logError(`Missing ${ctorName}.constructor, ${ctorName} should have a \"constructor\" property.`);\n }\n if (!isUndefined$1(ctorShadowSupportMode) &&\n ctorShadowSupportMode !== \"any\" /* ShadowSupportMode.Any */ &&\n ctorShadowSupportMode !== \"reset\" /* ShadowSupportMode.Default */) {\n logError(`Invalid value for static property shadowSupportMode: '${ctorShadowSupportMode}'`);\n }\n if (!isUndefined$1(ctorRenderMode) &&\n ctorRenderMode !== 'light' &&\n ctorRenderMode !== 'shadow') {\n logError(`Invalid value for static property renderMode: '${ctorRenderMode}'. renderMode must be either 'light' or 'shadow'.`);\n }\n }\n const decoratorsMeta = getDecoratorsMeta(Ctor);\n const { apiFields, apiFieldsConfig, apiMethods, wiredFields, wiredMethods, observedFields } = decoratorsMeta;\n const proto = Ctor.prototype;\n let { connectedCallback, disconnectedCallback, renderedCallback, errorCallback, render } = proto;\n const superProto = getCtorProto(Ctor);\n const superDef = superProto !== LightningElement ? getComponentInternalDef(superProto) : lightingElementDef;\n const bridge = HTMLBridgeElementFactory(superDef.bridge, keys(apiFields), keys(apiMethods));\n const props = assign(create(null), superDef.props, apiFields);\n const propsConfig = assign(create(null), superDef.propsConfig, apiFieldsConfig);\n const methods = assign(create(null), superDef.methods, apiMethods);\n const wire = assign(create(null), superDef.wire, wiredFields, wiredMethods);\n connectedCallback = connectedCallback || superDef.connectedCallback;\n disconnectedCallback = disconnectedCallback || superDef.disconnectedCallback;\n renderedCallback = renderedCallback || superDef.renderedCallback;\n errorCallback = errorCallback || superDef.errorCallback;\n render = render || superDef.render;\n let shadowSupportMode = superDef.shadowSupportMode;\n if (!isUndefined$1(ctorShadowSupportMode)) {\n shadowSupportMode = ctorShadowSupportMode;\n }\n let renderMode = superDef.renderMode;\n if (!isUndefined$1(ctorRenderMode)) {\n renderMode = ctorRenderMode === 'light' ? 0 /* RenderMode.Light */ : 1 /* RenderMode.Shadow */;\n }\n const template = getComponentRegisteredTemplate(Ctor) || superDef.template;\n const name = Ctor.name || superDef.name;\n // installing observed fields into the prototype.\n defineProperties(proto, observedFields);\n const def = {\n ctor: Ctor,\n name,\n wire,\n props,\n propsConfig,\n methods,\n bridge,\n template,\n renderMode,\n shadowSupportMode,\n connectedCallback,\n disconnectedCallback,\n renderedCallback,\n errorCallback,\n render,\n };\n if (process.env.NODE_ENV !== 'production') {\n freeze(Ctor.prototype);\n }\n return def;\n}\n/**\n * EXPERIMENTAL: This function allows for the identification of LWC constructors. This API is\n * subject to change or being removed.\n */\nfunction isComponentConstructor(ctor) {\n if (!isFunction$1(ctor)) {\n return false;\n }\n // Fast path: LightningElement is part of the prototype chain of the constructor.\n if (ctor.prototype instanceof LightningElement) {\n return true;\n }\n // Slow path: LightningElement is not part of the prototype chain of the constructor, we need\n // climb up the constructor prototype chain to check in case there are circular dependencies\n // to resolve.\n let current = ctor;\n do {\n if (isCircularModuleDependency(current)) {\n const circularResolved = resolveCircularModuleDependency(current);\n // If the circular function returns itself, that's the signal that we have hit the end\n // of the proto chain, which must always be a valid base constructor.\n if (circularResolved === current) {\n return true;\n }\n current = circularResolved;\n }\n if (current === LightningElement) {\n return true;\n }\n } while (!isNull(current) && (current = getPrototypeOf$1(current)));\n // Finally return false if the LightningElement is not part of the prototype chain.\n return false;\n}\nfunction getComponentInternalDef(Ctor) {\n if (process.env.NODE_ENV !== 'production') {\n Ctor = getComponentOrSwappedComponent(Ctor);\n }\n let def = CtorToDefMap.get(Ctor);\n if (isUndefined$1(def)) {\n if (isCircularModuleDependency(Ctor)) {\n const resolvedCtor = resolveCircularModuleDependency(Ctor);\n def = getComponentInternalDef(resolvedCtor);\n // Cache the unresolved component ctor too. The next time if the same unresolved ctor is used,\n // look up the definition in cache instead of re-resolving and recreating the def.\n CtorToDefMap.set(Ctor, def);\n return def;\n }\n if (!isComponentConstructor(Ctor)) {\n throw new TypeError(`${Ctor} is not a valid component, or does not extends LightningElement from \"lwc\". You probably forgot to add the extend clause on the class declaration.`);\n }\n def = createComponentDef(Ctor);\n CtorToDefMap.set(Ctor, def);\n }\n return def;\n}\nconst lightingElementDef = {\n ctor: LightningElement,\n name: LightningElement.name,\n props: lightningBasedDescriptors,\n propsConfig: EmptyObject,\n methods: EmptyObject,\n renderMode: 1 /* RenderMode.Shadow */,\n shadowSupportMode: \"reset\" /* ShadowSupportMode.Default */,\n wire: EmptyObject,\n bridge: BaseBridgeElement,\n template: defaultEmptyTemplate,\n render: LightningElement.prototype.render,\n};\n/**\n * EXPERIMENTAL: This function allows for the collection of internal component metadata. This API is\n * subject to change or being removed.\n */\nfunction getComponentDef(Ctor) {\n const def = getComponentInternalDef(Ctor);\n // From the internal def object, we need to extract the info that is useful\n // for some external services, e.g.: Locker Service, usually, all they care\n // is about the shape of the constructor, the internals of it are not relevant\n // because they don't have a way to mess with that.\n const { ctor, name, props, propsConfig, methods } = def;\n const publicProps = {};\n for (const key in props) {\n // avoid leaking the reference to the public props descriptors\n publicProps[key] = {\n config: propsConfig[key] || 0,\n type: \"any\" /* PropDefType.any */,\n attr: htmlPropertyToAttribute(key),\n };\n }\n const publicMethods = {};\n for (const key in methods) {\n // avoid leaking the reference to the public method descriptors\n publicMethods[key] = methods[key].value;\n }\n return {\n ctor,\n name,\n props: publicProps,\n methods: publicMethods,\n };\n}\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nfunction makeHostToken(token) {\n // Note: if this ever changes, update the `cssScopeTokens` returned by `@lwc/compiler`\n return `${token}-host`;\n}\nfunction createInlineStyleVNode(content) {\n return api.h('style', {\n key: 'style',\n attrs: {\n type: 'text/css',\n },\n }, [api.t(content)]);\n}\nfunction updateStylesheetToken(vm, template) {\n const { elm, context, renderMode, shadowMode, renderer: { getClassList, removeAttribute, setAttribute }, } = vm;\n const { stylesheets: newStylesheets, stylesheetToken: newStylesheetToken } = template;\n const { stylesheets: newVmStylesheets } = vm;\n const isSyntheticShadow = renderMode === 1 /* RenderMode.Shadow */ && shadowMode === 1 /* ShadowMode.Synthetic */;\n const { hasScopedStyles } = context;\n let newToken;\n let newHasTokenInClass;\n let newHasTokenInAttribute;\n // Reset the styling token applied to the host element.\n const { stylesheetToken: oldToken, hasTokenInClass: oldHasTokenInClass, hasTokenInAttribute: oldHasTokenInAttribute, } = context;\n if (!isUndefined$1(oldToken)) {\n if (oldHasTokenInClass) {\n getClassList(elm).remove(makeHostToken(oldToken));\n }\n if (oldHasTokenInAttribute) {\n removeAttribute(elm, makeHostToken(oldToken));\n }\n }\n // Apply the new template styling token to the host element, if the new template has any\n // associated stylesheets. In the case of light DOM, also ensure there is at least one scoped stylesheet.\n const hasNewStylesheets = hasStyles(newStylesheets);\n const hasNewVmStylesheets = hasStyles(newVmStylesheets);\n if (hasNewStylesheets || hasNewVmStylesheets) {\n newToken = newStylesheetToken;\n }\n // Set the new styling token on the host element\n if (!isUndefined$1(newToken)) {\n if (hasScopedStyles) {\n getClassList(elm).add(makeHostToken(newToken));\n newHasTokenInClass = true;\n }\n if (isSyntheticShadow) {\n setAttribute(elm, makeHostToken(newToken), '');\n newHasTokenInAttribute = true;\n }\n }\n // Update the styling tokens present on the context object.\n context.stylesheetToken = newToken;\n context.hasTokenInClass = newHasTokenInClass;\n context.hasTokenInAttribute = newHasTokenInAttribute;\n}\nfunction evaluateStylesheetsContent(stylesheets, stylesheetToken, vm) {\n const content = [];\n let root;\n for (let i = 0; i < stylesheets.length; i++) {\n let stylesheet = stylesheets[i];\n if (isArray$1(stylesheet)) {\n ArrayPush$1.apply(content, evaluateStylesheetsContent(stylesheet, stylesheetToken, vm));\n }\n else {\n if (process.env.NODE_ENV !== 'production') {\n // Check for compiler version mismatch in dev mode only\n checkVersionMismatch(stylesheet, 'stylesheet');\n // in dev-mode, we support hot swapping of stylesheet, which means that\n // the component instance might be attempting to use an old version of\n // the stylesheet, while internally, we have a replacement for it.\n stylesheet = getStyleOrSwappedStyle(stylesheet);\n }\n const isScopedCss = stylesheet[KEY__SCOPED_CSS];\n if (lwcRuntimeFlags.DISABLE_LIGHT_DOM_UNSCOPED_CSS &&\n !isScopedCss &&\n vm.renderMode === 0 /* RenderMode.Light */) {\n logError('Unscoped CSS is not supported in Light DOM. Please use scoped CSS (*.scoped.css) instead of unscoped CSS (*.css).');\n continue;\n }\n // Apply the scope token only if the stylesheet itself is scoped, or if we're rendering synthetic shadow.\n const scopeToken = isScopedCss ||\n (vm.shadowMode === 1 /* ShadowMode.Synthetic */ && vm.renderMode === 1 /* RenderMode.Shadow */)\n ? stylesheetToken\n : undefined;\n // Use the actual `:host` selector if we're rendering global CSS for light DOM, or if we're rendering\n // native shadow DOM. Synthetic shadow DOM never uses `:host`.\n const useActualHostSelector = vm.renderMode === 0 /* RenderMode.Light */\n ? !isScopedCss\n : vm.shadowMode === 0 /* ShadowMode.Native */;\n // Use the native :dir() pseudoclass only in native shadow DOM. Otherwise, in synthetic shadow,\n // we use an attribute selector on the host to simulate :dir().\n let useNativeDirPseudoclass;\n if (vm.renderMode === 1 /* RenderMode.Shadow */) {\n useNativeDirPseudoclass = vm.shadowMode === 0 /* ShadowMode.Native */;\n }\n else {\n // Light DOM components should only render `[dir]` if they're inside of a synthetic shadow root.\n // At the top level (root is null) or inside of a native shadow root, they should use `:dir()`.\n if (isUndefined$1(root)) {\n // Only calculate the root once as necessary\n root = getNearestShadowComponent(vm);\n }\n useNativeDirPseudoclass = isNull(root) || root.shadowMode === 0 /* ShadowMode.Native */;\n }\n ArrayPush$1.call(content, stylesheet(scopeToken, useActualHostSelector, useNativeDirPseudoclass));\n }\n }\n return content;\n}\nfunction getStylesheetsContent(vm, template) {\n const { stylesheets, stylesheetToken } = template;\n const { stylesheets: vmStylesheets } = vm;\n let content = [];\n if (hasStyles(stylesheets)) {\n content = evaluateStylesheetsContent(stylesheets, stylesheetToken, vm);\n }\n // VM (component) stylesheets apply after template stylesheets\n if (hasStyles(vmStylesheets)) {\n ArrayPush$1.apply(content, evaluateStylesheetsContent(vmStylesheets, stylesheetToken, vm));\n }\n return content;\n}\n// It might be worth caching this to avoid doing the lookup repeatedly, but\n// perf testing has not shown it to be a huge improvement yet:\n// https://github.com/salesforce/lwc/pull/2460#discussion_r691208892\nfunction getNearestShadowComponent(vm) {\n let owner = vm;\n while (!isNull(owner)) {\n if (owner.renderMode === 1 /* RenderMode.Shadow */) {\n return owner;\n }\n owner = owner.owner;\n }\n return owner;\n}\n/**\n * If the component that is currently being rendered uses scoped styles,\n * this returns the unique token for that scoped stylesheet. Otherwise\n * it returns null.\n */\nfunction getScopeTokenClass(owner) {\n const { cmpTemplate, context } = owner;\n return (context.hasScopedStyles && (cmpTemplate === null || cmpTemplate === void 0 ? void 0 : cmpTemplate.stylesheetToken)) || null;\n}\nfunction createStylesheet(vm, stylesheets) {\n const { renderMode, shadowMode, renderer: { insertStylesheet }, } = vm;\n if (renderMode === 1 /* RenderMode.Shadow */ && shadowMode === 1 /* ShadowMode.Synthetic */) {\n for (let i = 0; i < stylesheets.length; i++) {\n insertStylesheet(stylesheets[i]);\n }\n }\n else {\n // Note: We need to ensure that during hydration, the stylesheets method is the same as those in ssr.\n // This works in the client, because the stylesheets are created, and cached in the VM\n // the first time the VM renders.\n // native shadow or light DOM, SSR\n return ArrayMap.call(stylesheets, createInlineStyleVNode);\n }\n return null;\n}\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nfunction isVBaseElement(vnode) {\n const { type } = vnode;\n return type === 2 /* VNodeType.Element */ || type === 3 /* VNodeType.CustomElement */;\n}\nfunction isSameVnode(vnode1, vnode2) {\n return vnode1.key === vnode2.key && vnode1.sel === vnode2.sel;\n}\nfunction isVCustomElement(vnode) {\n return vnode.type === 3 /* VNodeType.CustomElement */;\n}\nfunction isVFragment(vnode) {\n return vnode.type === 5 /* VNodeType.Fragment */;\n}\nfunction isVScopedSlotFragment(vnode) {\n return vnode.type === 6 /* VNodeType.ScopedSlotFragment */;\n}\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nconst ColonCharCode = 58;\nfunction patchAttributes(oldVnode, vnode, renderer) {\n const { attrs, external } = vnode.data;\n if (isUndefined$1(attrs)) {\n return;\n }\n const oldAttrs = isNull(oldVnode) ? EmptyObject : oldVnode.data.attrs;\n // Attrs may be the same due to the static content optimization, so we can skip diffing\n if (oldAttrs === attrs) {\n return;\n }\n const { elm } = vnode;\n const { setAttribute, removeAttribute, setProperty } = renderer;\n for (const key in attrs) {\n const cur = attrs[key];\n const old = oldAttrs[key];\n if (old !== cur) {\n let propName;\n // For external custom elements, sniff to see if the attr should be considered a prop.\n // Use kebabCaseToCamelCase directly because we don't want to set props like `ariaLabel` or `tabIndex`\n // on a custom element versus just using the more reliable attribute format.\n if (external && (propName = kebabCaseToCamelCase(key)) in elm) {\n setProperty(elm, propName, cur);\n }\n else if (StringCharCodeAt.call(key, 3) === ColonCharCode) {\n // Assume xml namespace\n setAttribute(elm, key, cur, XML_NAMESPACE);\n }\n else if (StringCharCodeAt.call(key, 5) === ColonCharCode) {\n // Assume xlink namespace\n setAttribute(elm, key, cur, XLINK_NAMESPACE);\n }\n else if (isNull(cur) || isUndefined$1(cur)) {\n removeAttribute(elm, key);\n }\n else {\n setAttribute(elm, key, cur);\n }\n }\n }\n}\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nfunction isLiveBindingProp(sel, key) {\n // For properties with live bindings, we read values from the DOM element\n // instead of relying on internally tracked values.\n return sel === 'input' && (key === 'value' || key === 'checked');\n}\nfunction patchProps(oldVnode, vnode, renderer) {\n let { props } = vnode.data;\n const { spread } = vnode.data;\n if (isUndefined$1(props) && isUndefined$1(spread)) {\n return;\n }\n let oldProps;\n if (!isNull(oldVnode)) {\n oldProps = oldVnode.data.props;\n const oldSpread = oldVnode.data.spread;\n // Props may be the same due to the static content optimization, so we can skip diffing\n if (oldProps === props && oldSpread === spread) {\n return;\n }\n if (isUndefined$1(oldProps)) {\n oldProps = EmptyObject;\n }\n if (!isUndefined$1(oldSpread)) {\n oldProps = assign({}, oldProps, oldSpread);\n }\n }\n if (!isUndefined$1(spread)) {\n props = assign({}, props, spread);\n }\n const isFirstPatch = isNull(oldVnode);\n const { elm, sel } = vnode;\n const { getProperty, setProperty } = renderer;\n for (const key in props) {\n const cur = props[key];\n // Set the property if it's the first time is is patched or if the previous property is\n // different than the one previously set.\n if (isFirstPatch ||\n cur !== (isLiveBindingProp(sel, key) ? getProperty(elm, key) : oldProps[key]) ||\n !(key in oldProps) // this is required because the above case will pass when `cur` is `undefined` and key is missing in `oldProps`\n ) {\n setProperty(elm, key, cur);\n }\n }\n}\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nconst classNameToClassMap = create(null);\nfunction getMapFromClassName(className) {\n // Intentionally using == to match undefined and null values from computed style attribute\n if (className == null) {\n return EmptyObject;\n }\n // computed class names must be string\n className = isString(className) ? className : className + '';\n let map = classNameToClassMap[className];\n if (map) {\n return map;\n }\n map = create(null);\n let start = 0;\n let o;\n const len = className.length;\n for (o = 0; o < len; o++) {\n if (StringCharCodeAt.call(className, o) === SPACE_CHAR) {\n if (o > start) {\n map[StringSlice.call(className, start, o)] = true;\n }\n start = o + 1;\n }\n }\n if (o > start) {\n map[StringSlice.call(className, start, o)] = true;\n }\n classNameToClassMap[className] = map;\n if (process.env.NODE_ENV !== 'production') {\n // just to make sure that this object never changes as part of the diffing algo\n freeze(map);\n }\n return map;\n}\nfunction patchClassAttribute(oldVnode, vnode, renderer) {\n const { elm, data: { className: newClass }, } = vnode;\n const oldClass = isNull(oldVnode) ? undefined : oldVnode.data.className;\n if (oldClass === newClass) {\n return;\n }\n const { getClassList } = renderer;\n const classList = getClassList(elm);\n const newClassMap = getMapFromClassName(newClass);\n const oldClassMap = getMapFromClassName(oldClass);\n let name;\n for (name in oldClassMap) {\n // remove only if it is not in the new class collection and it is not set from within the instance\n if (isUndefined$1(newClassMap[name])) {\n classList.remove(name);\n }\n }\n for (name in newClassMap) {\n if (isUndefined$1(oldClassMap[name])) {\n classList.add(name);\n }\n }\n}\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\n// The style property is a string when defined via an expression in the template.\nfunction patchStyleAttribute(oldVnode, vnode, renderer) {\n const { elm, data: { style: newStyle }, } = vnode;\n const oldStyle = isNull(oldVnode) ? undefined : oldVnode.data.style;\n if (oldStyle === newStyle) {\n return;\n }\n const { setAttribute, removeAttribute } = renderer;\n if (!isString(newStyle) || newStyle === '') {\n removeAttribute(elm, 'style');\n }\n else {\n setAttribute(elm, 'style', newStyle);\n }\n}\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nfunction applyEventListeners(vnode, renderer) {\n var _a;\n const { elm } = vnode;\n const on = (_a = vnode.data) === null || _a === void 0 ? void 0 : _a.on;\n if (isUndefined$1(on)) {\n return;\n }\n const { addEventListener } = renderer;\n for (const name in on) {\n const handler = on[name];\n addEventListener(elm, name, handler);\n }\n}\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\n// The HTML class property becomes the vnode.data.classMap object when defined as a string in the template.\n// The compiler takes care of transforming the inline classnames into an object. It's faster to set the\n// different classnames properties individually instead of via a string.\nfunction applyStaticClassAttribute(vnode, renderer) {\n const { elm, data: { classMap }, } = vnode;\n if (isUndefined$1(classMap)) {\n return;\n }\n const { getClassList } = renderer;\n const classList = getClassList(elm);\n for (const name in classMap) {\n classList.add(name);\n }\n}\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\n// The HTML style property becomes the vnode.data.styleDecls object when defined as a string in the template.\n// The compiler takes care of transforming the inline style into an object. It's faster to set the\n// different style properties individually instead of via a string.\nfunction applyStaticStyleAttribute(vnode, renderer) {\n const { elm, data: { styleDecls }, } = vnode;\n if (isUndefined$1(styleDecls)) {\n return;\n }\n const { setCSSStyleProperty } = renderer;\n for (let i = 0; i < styleDecls.length; i++) {\n const [prop, value, important] = styleDecls[i];\n setCSSStyleProperty(elm, prop, value, important);\n }\n}\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nfunction patchChildren(c1, c2, parent, renderer) {\n if (hasDynamicChildren(c2)) {\n updateDynamicChildren(c1, c2, parent, renderer);\n }\n else {\n updateStaticChildren(c1, c2, parent, renderer);\n }\n}\nfunction patch(n1, n2, parent, renderer) {\n var _a, _b;\n if (n1 === n2) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (!isSameVnode(n1, n2) &&\n // Currently the only scenario when patch does not receive the same vnodes are for\n // dynamic components. When a dynamic component's constructor changes, the value of its\n // tag name (sel) will be different. The engine will unmount the previous element\n // and mount the new one using the new constructor in patchCustomElement.\n !(isVCustomElement(n1) && isVCustomElement(n2))) {\n throw new Error('Expected these VNodes to be the same: ' +\n JSON.stringify({ sel: n1.sel, key: n1.key }) +\n ', ' +\n JSON.stringify({ sel: n2.sel, key: n2.key }));\n }\n }\n switch (n2.type) {\n case 0 /* VNodeType.Text */:\n // VText has no special capability, fallback to the owner's renderer\n patchText(n1, n2, renderer);\n break;\n case 1 /* VNodeType.Comment */:\n // VComment has no special capability, fallback to the owner's renderer\n patchComment(n1, n2, renderer);\n break;\n case 4 /* VNodeType.Static */:\n n2.elm = n1.elm;\n break;\n case 5 /* VNodeType.Fragment */:\n patchFragment(n1, n2, parent, renderer);\n break;\n case 2 /* VNodeType.Element */:\n patchElement(n1, n2, (_a = n2.data.renderer) !== null && _a !== void 0 ? _a : renderer);\n break;\n case 3 /* VNodeType.CustomElement */:\n patchCustomElement(n1, n2, parent, (_b = n2.data.renderer) !== null && _b !== void 0 ? _b : renderer);\n break;\n }\n}\nfunction mount(node, parent, renderer, anchor) {\n var _a, _b;\n switch (node.type) {\n case 0 /* VNodeType.Text */:\n // VText has no special capability, fallback to the owner's renderer\n mountText(node, parent, anchor, renderer);\n break;\n case 1 /* VNodeType.Comment */:\n // VComment has no special capability, fallback to the owner's renderer\n mountComment(node, parent, anchor, renderer);\n break;\n case 4 /* VNodeType.Static */:\n // VStatic cannot have a custom renderer associated to them, using owner's renderer\n mountStatic(node, parent, anchor, renderer);\n break;\n case 5 /* VNodeType.Fragment */:\n mountFragment(node, parent, anchor, renderer);\n break;\n case 2 /* VNodeType.Element */:\n // If the vnode data has a renderer override use it, else fallback to owner's renderer\n mountElement(node, parent, anchor, (_a = node.data.renderer) !== null && _a !== void 0 ? _a : renderer);\n break;\n case 3 /* VNodeType.CustomElement */:\n // If the vnode data has a renderer override use it, else fallback to owner's renderer\n mountCustomElement(node, parent, anchor, (_b = node.data.renderer) !== null && _b !== void 0 ? _b : renderer);\n break;\n }\n}\nfunction patchText(n1, n2, renderer) {\n n2.elm = n1.elm;\n if (n2.text !== n1.text) {\n updateTextContent(n2, renderer);\n }\n}\nfunction mountText(vnode, parent, anchor, renderer) {\n const { owner } = vnode;\n const { createText } = renderer;\n const textNode = (vnode.elm = createText(vnode.text));\n linkNodeToShadow(textNode, owner, renderer);\n insertNode(textNode, parent, anchor, renderer);\n}\nfunction patchComment(n1, n2, renderer) {\n n2.elm = n1.elm;\n // FIXME: Comment nodes should be static, we shouldn't need to diff them together. However\n // it is the case today.\n if (n2.text !== n1.text) {\n updateTextContent(n2, renderer);\n }\n}\nfunction mountComment(vnode, parent, anchor, renderer) {\n const { owner } = vnode;\n const { createComment } = renderer;\n const commentNode = (vnode.elm = createComment(vnode.text));\n linkNodeToShadow(commentNode, owner, renderer);\n insertNode(commentNode, parent, anchor, renderer);\n}\nfunction mountFragment(vnode, parent, anchor, renderer) {\n const { children } = vnode;\n mountVNodes(children, parent, renderer, anchor);\n vnode.elm = vnode.leading.elm;\n}\nfunction patchFragment(n1, n2, parent, renderer) {\n const { children, stable } = n2;\n if (stable) {\n updateStaticChildren(n1.children, children, parent, renderer);\n }\n else {\n updateDynamicChildren(n1.children, children, parent, renderer);\n }\n // Note: not reusing n1.elm, because during patching, it may be patched with another text node.\n n2.elm = n2.leading.elm;\n}\nfunction mountElement(vnode, parent, anchor, renderer) {\n const { sel, owner, data: { svg }, } = vnode;\n const { createElement } = renderer;\n const namespace = isTrue(svg) ? SVG_NAMESPACE : undefined;\n const elm = (vnode.elm = createElement(sel, namespace));\n linkNodeToShadow(elm, owner, renderer);\n applyStyleScoping(elm, owner, renderer);\n applyDomManual(elm, vnode);\n applyElementRestrictions(elm, vnode);\n patchElementPropsAndAttrs$1(null, vnode, renderer);\n insertNode(elm, parent, anchor, renderer);\n mountVNodes(vnode.children, elm, renderer, null);\n}\nfunction patchElement(n1, n2, renderer) {\n const elm = (n2.elm = n1.elm);\n patchElementPropsAndAttrs$1(n1, n2, renderer);\n patchChildren(n1.children, n2.children, elm, renderer);\n}\nfunction mountStatic(vnode, parent, anchor, renderer) {\n const { owner } = vnode;\n const { cloneNode, isSyntheticShadowDefined } = renderer;\n const elm = (vnode.elm = cloneNode(vnode.fragment, true));\n linkNodeToShadow(elm, owner, renderer);\n applyElementRestrictions(elm, vnode);\n // Marks this node as Static to propagate the shadow resolver. must happen after elm is assigned to the proper shadow\n const { renderMode, shadowMode } = owner;\n if (isSyntheticShadowDefined) {\n if (shadowMode === 1 /* ShadowMode.Synthetic */ || renderMode === 0 /* RenderMode.Light */) {\n elm[KEY__SHADOW_STATIC] = true;\n }\n }\n insertNode(elm, parent, anchor, renderer);\n // Event listeners are only applied once when mounting, so they are allowed for static vnodes\n applyEventListeners(vnode, renderer);\n}\nfunction mountCustomElement(vnode, parent, anchor, renderer) {\n const { sel, owner } = vnode;\n const { createCustomElement } = renderer;\n /**\n * Note: if the upgradable constructor does not expect, or throw when we new it\n * with a callback as the first argument, we could implement a more advanced\n * mechanism that only passes that argument if the constructor is known to be\n * an upgradable custom element.\n */\n let vm;\n const upgradeCallback = (elm) => {\n // the custom element from the registry is expecting an upgrade callback\n vm = createViewModelHook(elm, vnode, renderer);\n };\n let connectedCallback;\n let disconnectedCallback;\n if (lwcRuntimeFlags.ENABLE_NATIVE_CUSTOM_ELEMENT_LIFECYCLE) {\n connectedCallback = (elm) => {\n connectRootElement(elm);\n };\n disconnectedCallback = (elm) => {\n disconnectRootElement(elm);\n };\n }\n // Should never get a tag with upper case letter at this point; the compiler\n // should produce only tags with lowercase letters. However, the Java\n // compiler may generate tagnames with uppercase letters so - for backwards\n // compatibility, we lower case the tagname here.\n const normalizedTagname = sel.toLowerCase();\n const elm = createCustomElement(normalizedTagname, upgradeCallback, connectedCallback, disconnectedCallback);\n vnode.elm = elm;\n vnode.vm = vm;\n linkNodeToShadow(elm, owner, renderer);\n applyStyleScoping(elm, owner, renderer);\n if (vm) {\n allocateChildren(vnode, vm);\n }\n patchElementPropsAndAttrs$1(null, vnode, renderer);\n insertNode(elm, parent, anchor, renderer);\n if (vm) {\n {\n // On the server, we don't have native custom element lifecycle callbacks, so we must\n // manually invoke the connectedCallback for a child component.\n runConnectedCallback(vm);\n }\n }\n mountVNodes(vnode.children, elm, renderer, null);\n if (vm) {\n appendVM(vm);\n }\n}\nfunction patchCustomElement(n1, n2, parent, renderer) {\n // TODO [#3331]: This if branch should be removed in 246 with lwc:dynamic\n if (n1.ctor !== n2.ctor) {\n // If the constructor differs, unmount the current component and mount a new one using the new\n // constructor.\n const anchor = renderer.nextSibling(n1.elm);\n unmount(n1, parent, renderer, true);\n mountCustomElement(n2, parent, anchor, renderer);\n }\n else {\n // Otherwise patch the existing component with new props/attrs/etc.\n const elm = (n2.elm = n1.elm);\n const vm = (n2.vm = n1.vm);\n patchElementPropsAndAttrs$1(n1, n2, renderer);\n if (!isUndefined$1(vm)) {\n // in fallback mode, the allocation will always set children to\n // empty and delegate the real allocation to the slot elements\n allocateChildren(n2, vm);\n // Solves an edge case with slotted VFragments in native shadow mode.\n //\n // During allocation, in native shadow, slotted VFragment nodes are flattened and their text delimiters are removed\n // to avoid interfering with native slot behavior. When this happens, if any of the fragments\n // were not stable, the children must go through the dynamic diffing algo.\n //\n // If the new children (n2.children) contain no VFragments, but the previous children (n1.children) were dynamic,\n // the new nodes must be marked dynamic so that all nodes are properly updated. The only indicator that the new\n // nodes need to be dynamic comes from the previous children, so we check that to determine whether we need to\n // mark the new children dynamic.\n //\n // Example:\n // n1.children: [div, VFragment('', div, null, ''), div] => [div, div, null, div]; // marked dynamic\n // n2.children: [div, null, div] => [div, null, div] // marked ???\n const { shadowMode, renderMode } = vm;\n if (shadowMode == 0 /* ShadowMode.Native */ &&\n renderMode !== 0 /* RenderMode.Light */ &&\n hasDynamicChildren(n1.children)) {\n // No-op if children has already been marked dynamic by 'allocateChildren()'.\n markAsDynamicChildren(n2.children);\n }\n }\n // in fallback mode, the children will be always empty, so, nothing\n // will happen, but in native, it does allocate the light dom\n patchChildren(n1.children, n2.children, elm, renderer);\n if (!isUndefined$1(vm)) {\n // this will probably update the shadowRoot, but only if the vm is in a dirty state\n // this is important to preserve the top to bottom synchronous rendering phase.\n rerenderVM(vm);\n }\n }\n}\nfunction mountVNodes(vnodes, parent, renderer, anchor, start = 0, end = vnodes.length) {\n for (; start < end; ++start) {\n const vnode = vnodes[start];\n if (isVNode(vnode)) {\n mount(vnode, parent, renderer, anchor);\n }\n }\n}\nfunction unmount(vnode, parent, renderer, doRemove = false) {\n const { type, elm, sel } = vnode;\n // When unmounting a VNode subtree not all the elements have to removed from the DOM. The\n // subtree root, is the only element worth unmounting from the subtree.\n if (doRemove) {\n if (type === 5 /* VNodeType.Fragment */) {\n unmountVNodes(vnode.children, parent, renderer, doRemove);\n }\n else {\n // The vnode might or might not have a data.renderer associated to it\n // but the removal used here is from the owner instead.\n removeNode(elm, parent, renderer);\n }\n }\n switch (type) {\n case 2 /* VNodeType.Element */: {\n // Slot content is removed to trigger slotchange event when removing slot.\n // Only required for synthetic shadow.\n const shouldRemoveChildren = sel === 'slot' && vnode.owner.shadowMode === 1 /* ShadowMode.Synthetic */;\n unmountVNodes(vnode.children, elm, renderer, shouldRemoveChildren);\n break;\n }\n case 3 /* VNodeType.CustomElement */: {\n const { vm } = vnode;\n // No need to unmount the children here, `removeVM` will take care of removing the\n // children.\n if (!isUndefined$1(vm)) {\n removeVM(vm);\n }\n }\n }\n}\nfunction unmountVNodes(vnodes, parent, renderer, doRemove = false, start = 0, end = vnodes.length) {\n for (; start < end; ++start) {\n const ch = vnodes[start];\n if (isVNode(ch)) {\n unmount(ch, parent, renderer, doRemove);\n }\n }\n}\nfunction isVNode(vnode) {\n return vnode != null;\n}\nfunction linkNodeToShadow(elm, owner, renderer) {\n const { renderRoot, renderMode, shadowMode } = owner;\n const { isSyntheticShadowDefined } = renderer;\n // TODO [#1164]: this should eventually be done by the polyfill directly\n if (isSyntheticShadowDefined) {\n if (shadowMode === 1 /* ShadowMode.Synthetic */ || renderMode === 0 /* RenderMode.Light */) {\n elm[KEY__SHADOW_RESOLVER] = renderRoot[KEY__SHADOW_RESOLVER];\n }\n }\n}\nfunction updateTextContent(vnode, renderer) {\n const { elm, text } = vnode;\n const { setText } = renderer;\n if (process.env.NODE_ENV !== 'production') {\n unlockDomMutation();\n }\n setText(elm, text);\n if (process.env.NODE_ENV !== 'production') {\n lockDomMutation();\n }\n}\nfunction insertFragmentOrNode(vnode, parent, anchor, renderer) {\n if (process.env.NODE_ENV !== 'production') {\n unlockDomMutation();\n }\n if (isVFragment(vnode)) {\n const children = vnode.children;\n for (let i = 0; i < children.length; i += 1) {\n const child = children[i];\n if (!isNull(child)) {\n renderer.insert(child.elm, parent, anchor);\n }\n }\n }\n else {\n renderer.insert(vnode.elm, parent, anchor);\n }\n if (process.env.NODE_ENV !== 'production') {\n lockDomMutation();\n }\n}\nfunction insertNode(node, parent, anchor, renderer) {\n if (process.env.NODE_ENV !== 'production') {\n unlockDomMutation();\n }\n renderer.insert(node, parent, anchor);\n if (process.env.NODE_ENV !== 'production') {\n lockDomMutation();\n }\n}\nfunction removeNode(node, parent, renderer) {\n if (process.env.NODE_ENV !== 'production') {\n unlockDomMutation();\n }\n renderer.remove(node, parent);\n if (process.env.NODE_ENV !== 'production') {\n lockDomMutation();\n }\n}\nfunction patchElementPropsAndAttrs$1(oldVnode, vnode, renderer) {\n if (isNull(oldVnode)) {\n applyEventListeners(vnode, renderer);\n applyStaticClassAttribute(vnode, renderer);\n applyStaticStyleAttribute(vnode, renderer);\n }\n // Attrs need to be applied to element before props IE11 will wipe out value on radio inputs if\n // value is set before type=radio.\n patchClassAttribute(oldVnode, vnode, renderer);\n patchStyleAttribute(oldVnode, vnode, renderer);\n patchAttributes(oldVnode, vnode, renderer);\n patchProps(oldVnode, vnode, renderer);\n}\nfunction applyStyleScoping(elm, owner, renderer) {\n // Set the class name for `*.scoped.css` style scoping.\n const scopeToken = getScopeTokenClass(owner);\n if (!isNull(scopeToken)) {\n const { getClassList } = renderer;\n // TODO [#2762]: this dot notation with add is probably problematic\n // probably we should have a renderer api for just the add operation\n getClassList(elm).add(scopeToken);\n }\n // Set property element for synthetic shadow DOM style scoping.\n const { stylesheetToken: syntheticToken } = owner.context;\n if (owner.shadowMode === 1 /* ShadowMode.Synthetic */ && !isUndefined$1(syntheticToken)) {\n elm.$shadowToken$ = syntheticToken;\n }\n}\nfunction applyDomManual(elm, vnode) {\n var _a;\n const { owner, data: { context }, } = vnode;\n if (owner.shadowMode === 1 /* ShadowMode.Synthetic */ && ((_a = context === null || context === void 0 ? void 0 : context.lwc) === null || _a === void 0 ? void 0 : _a.dom) === \"manual\" /* LwcDomMode.Manual */) {\n elm.$domManual$ = true;\n }\n}\nfunction applyElementRestrictions(elm, vnode) {\n var _a, _b;\n if (process.env.NODE_ENV !== 'production') {\n const isSynthetic = vnode.owner.shadowMode === 1 /* ShadowMode.Synthetic */;\n const isPortal = vnode.type === 2 /* VNodeType.Element */ && ((_b = (_a = vnode.data.context) === null || _a === void 0 ? void 0 : _a.lwc) === null || _b === void 0 ? void 0 : _b.dom) === \"manual\" /* LwcDomMode.Manual */;\n const isLight = vnode.owner.renderMode === 0 /* RenderMode.Light */;\n patchElementWithRestrictions(elm, {\n isPortal,\n isLight,\n isSynthetic,\n });\n }\n}\nfunction allocateChildren(vnode, vm) {\n // A component with slots will re-render because:\n // 1- There is a change of the internal state.\n // 2- There is a change on the external api (ex: slots)\n //\n // In case #1, the vnodes in the cmpSlots will be reused since they didn't changed. This routine emptied the\n // slotted children when those VCustomElement were rendered and therefore in subsequent calls to allocate children\n // in a reused VCustomElement, there won't be any slotted children.\n // For those cases, we will use the reference for allocated children stored when rendering the fresh VCustomElement.\n //\n // In case #2, we will always get a fresh VCustomElement.\n const children = vnode.aChildren || vnode.children;\n const { renderMode, shadowMode } = vm;\n if (process.env.NODE_ENV !== 'production') {\n // If any of the children being allocated is a scoped slot fragment, make sure the receiving\n // component is a light DOM component. This is mainly to validate light dom parent running\n // in native shadow mode.\n if (renderMode !== 0 /* RenderMode.Light */ &&\n ArraySome.call(children, (child) => !isNull(child) && isVScopedSlotFragment(child))) {\n logError(`Invalid usage of 'lwc:slot-data' on ${getComponentTag(vm)} tag. Scoped slot content can only be passed to a light dom child.`);\n }\n }\n // If any of the children being allocated are VFragments, we remove the text delimiters and flatten all immediate\n // children VFragments to avoid them interfering with default slot behavior.\n const allocatedChildren = flattenFragmentsInChildren(children);\n vnode.children = allocatedChildren;\n vm.aChildren = allocatedChildren;\n if (shadowMode === 1 /* ShadowMode.Synthetic */ || renderMode === 0 /* RenderMode.Light */) {\n // slow path\n allocateInSlot(vm, allocatedChildren, vnode.owner);\n // save the allocated children in case this vnode is reused.\n vnode.aChildren = allocatedChildren;\n // every child vnode is now allocated, and the host should receive none directly, it receives them via the shadow!\n vnode.children = EmptyArray;\n }\n}\n/**\n * Flattens the contents of all VFragments in an array of VNodes, removes the text delimiters on those VFragments, and\n * marks the resulting children array as dynamic. Uses a stack (array) to iteratively traverse the nested VFragments\n * and avoid the perf overhead of creating/destroying throwaway arrays/objects in a recursive approach.\n *\n * With the delimiters removed, the contents are marked dynamic so they are diffed correctly.\n *\n * This function is used for slotted VFragments to avoid the text delimiters interfering with slotting functionality.\n */\nfunction flattenFragmentsInChildren(children) {\n const flattenedChildren = [];\n // Initialize our stack with the direct children of the custom component and check whether we have a VFragment.\n // If no VFragment is found in children, we don't need to traverse anything or mark the children dynamic and can return early.\n const nodeStack = [];\n let fragmentFound = false;\n for (let i = children.length - 1; i > -1; i -= 1) {\n const child = children[i];\n ArrayPush$1.call(nodeStack, child);\n fragmentFound = fragmentFound || !!(child && isVFragment(child));\n }\n if (!fragmentFound) {\n return children;\n }\n let currentNode;\n while (!isUndefined$1((currentNode = ArrayPop.call(nodeStack)))) {\n if (!isNull(currentNode) && isVFragment(currentNode)) {\n const fChildren = currentNode.children;\n // Ignore the start and end text node delimiters\n for (let i = fChildren.length - 2; i > 0; i -= 1) {\n ArrayPush$1.call(nodeStack, fChildren[i]);\n }\n }\n else {\n ArrayPush$1.call(flattenedChildren, currentNode);\n }\n }\n // We always mark the children as dynamic because nothing generates stable VFragments yet.\n // If/when stable VFragments are generated by the compiler, this code should be updated to\n // not mark dynamic if all flattened VFragments were stable.\n markAsDynamicChildren(flattenedChildren);\n return flattenedChildren;\n}\nfunction createViewModelHook(elm, vnode, renderer) {\n let vm = getAssociatedVMIfPresent(elm);\n // There is a possibility that a custom element is registered under tagName, in which case, the\n // initialization is already carry on, and there is nothing else to do here since this hook is\n // called right after invoking `document.createElement`.\n if (!isUndefined$1(vm)) {\n return vm;\n }\n const { sel, mode, ctor, owner } = vnode;\n vm = createVM(elm, ctor, renderer, {\n mode,\n owner,\n tagName: sel,\n });\n if (process.env.NODE_ENV !== 'production') {\n assert.isTrue(isArray$1(vnode.children), `Invalid vnode for a custom element, it must have children defined.`);\n }\n return vm;\n}\nfunction allocateInSlot(vm, children, owner) {\n var _a, _b;\n const { cmpSlots: { slotAssignments: oldSlotsMapping }, } = vm;\n const cmpSlotsMapping = create(null);\n // Collect all slots into cmpSlotsMapping\n for (let i = 0, len = children.length; i < len; i += 1) {\n const vnode = children[i];\n if (isNull(vnode)) {\n continue;\n }\n let slotName = '';\n if (isVBaseElement(vnode)) {\n slotName = (_b = (_a = vnode.data.attrs) === null || _a === void 0 ? void 0 : _a.slot) !== null && _b !== void 0 ? _b : '';\n }\n else if (isVScopedSlotFragment(vnode)) {\n slotName = vnode.slotName;\n }\n // Can't use toString here because Symbol(1).toString() is 'Symbol(1)'\n // but elm.setAttribute('slot', Symbol(1)) is an error.\n // the following line also throws same error for symbols\n // Similar for Object.create(null)\n const normalizedSlotName = '' + slotName;\n const vnodes = (cmpSlotsMapping[normalizedSlotName] =\n cmpSlotsMapping[normalizedSlotName] || []);\n ArrayPush$1.call(vnodes, vnode);\n }\n vm.cmpSlots = { owner, slotAssignments: cmpSlotsMapping };\n if (isFalse(vm.isDirty)) {\n // We need to determine if the old allocation is really different from the new one\n // and mark the vm as dirty\n const oldKeys = keys(oldSlotsMapping);\n if (oldKeys.length !== keys(cmpSlotsMapping).length) {\n markComponentAsDirty(vm);\n return;\n }\n for (let i = 0, len = oldKeys.length; i < len; i += 1) {\n const key = oldKeys[i];\n if (isUndefined$1(cmpSlotsMapping[key]) ||\n oldSlotsMapping[key].length !== cmpSlotsMapping[key].length) {\n markComponentAsDirty(vm);\n return;\n }\n const oldVNodes = oldSlotsMapping[key];\n const vnodes = cmpSlotsMapping[key];\n for (let j = 0, a = cmpSlotsMapping[key].length; j < a; j += 1) {\n if (oldVNodes[j] !== vnodes[j]) {\n markComponentAsDirty(vm);\n return;\n }\n }\n }\n }\n}\n// Using a WeakMap instead of a WeakSet because this one works in IE11 :(\nconst DynamicChildren = new WeakMap();\n// dynamic children means it was either generated by an iteration in a template\n// or part of an unstable fragment, and will require a more complex diffing algo.\nfunction markAsDynamicChildren(children) {\n DynamicChildren.set(children, 1);\n}\nfunction hasDynamicChildren(children) {\n return DynamicChildren.has(children);\n}\nfunction createKeyToOldIdx(children, beginIdx, endIdx) {\n const map = {};\n // TODO [#1637]: simplify this by assuming that all vnodes has keys\n for (let j = beginIdx; j <= endIdx; ++j) {\n const ch = children[j];\n if (isVNode(ch)) {\n const { key } = ch;\n if (key !== undefined) {\n map[key] = j;\n }\n }\n }\n return map;\n}\nfunction updateDynamicChildren(oldCh, newCh, parent, renderer) {\n let oldStartIdx = 0;\n let newStartIdx = 0;\n let oldEndIdx = oldCh.length - 1;\n let oldStartVnode = oldCh[0];\n let oldEndVnode = oldCh[oldEndIdx];\n const newChEnd = newCh.length - 1;\n let newEndIdx = newChEnd;\n let newStartVnode = newCh[0];\n let newEndVnode = newCh[newEndIdx];\n let oldKeyToIdx;\n let idxInOld;\n let elmToMove;\n let before;\n let clonedOldCh = false;\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (!isVNode(oldStartVnode)) {\n oldStartVnode = oldCh[++oldStartIdx]; // Vnode might have been moved left\n }\n else if (!isVNode(oldEndVnode)) {\n oldEndVnode = oldCh[--oldEndIdx];\n }\n else if (!isVNode(newStartVnode)) {\n newStartVnode = newCh[++newStartIdx];\n }\n else if (!isVNode(newEndVnode)) {\n newEndVnode = newCh[--newEndIdx];\n }\n else if (isSameVnode(oldStartVnode, newStartVnode)) {\n patch(oldStartVnode, newStartVnode, parent, renderer);\n oldStartVnode = oldCh[++oldStartIdx];\n newStartVnode = newCh[++newStartIdx];\n }\n else if (isSameVnode(oldEndVnode, newEndVnode)) {\n patch(oldEndVnode, newEndVnode, parent, renderer);\n oldEndVnode = oldCh[--oldEndIdx];\n newEndVnode = newCh[--newEndIdx];\n }\n else if (isSameVnode(oldStartVnode, newEndVnode)) {\n // Vnode moved right\n patch(oldStartVnode, newEndVnode, parent, renderer);\n // In the case of fragments, the `elm` property of a vfragment points to the leading\n // anchor. To determine the next sibling of the whole fragment, we need to use the\n // trailing anchor as the argument to nextSibling():\n // [..., [leading, ...content, trailing], nextSibling, ...]\n let anchor;\n if (isVFragment(oldEndVnode)) {\n anchor = renderer.nextSibling(oldEndVnode.trailing.elm);\n }\n else {\n anchor = renderer.nextSibling(oldEndVnode.elm);\n }\n insertFragmentOrNode(oldStartVnode, parent, anchor, renderer);\n oldStartVnode = oldCh[++oldStartIdx];\n newEndVnode = newCh[--newEndIdx];\n }\n else if (isSameVnode(oldEndVnode, newStartVnode)) {\n // Vnode moved left\n patch(oldEndVnode, newStartVnode, parent, renderer);\n insertFragmentOrNode(newStartVnode, parent, oldStartVnode.elm, renderer);\n oldEndVnode = oldCh[--oldEndIdx];\n newStartVnode = newCh[++newStartIdx];\n }\n else {\n if (oldKeyToIdx === undefined) {\n oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx);\n }\n idxInOld = oldKeyToIdx[newStartVnode.key];\n if (isUndefined$1(idxInOld)) {\n // New element\n mount(newStartVnode, parent, renderer, oldStartVnode.elm);\n newStartVnode = newCh[++newStartIdx];\n }\n else {\n elmToMove = oldCh[idxInOld];\n if (isVNode(elmToMove)) {\n if (elmToMove.sel !== newStartVnode.sel) {\n // New element\n mount(newStartVnode, parent, renderer, oldStartVnode.elm);\n }\n else {\n patch(elmToMove, newStartVnode, parent, renderer);\n // Delete the old child, but copy the array since it is read-only.\n // The `oldCh` will be GC'ed after `updateDynamicChildren` is complete,\n // so we only care about the `oldCh` object inside this function.\n // To avoid cloning over and over again, we check `clonedOldCh`\n // and only clone once.\n if (!clonedOldCh) {\n clonedOldCh = true;\n oldCh = [...oldCh];\n }\n // We've already cloned at least once, so it's no longer read-only\n oldCh[idxInOld] = undefined;\n insertFragmentOrNode(elmToMove, parent, oldStartVnode.elm, renderer);\n }\n }\n newStartVnode = newCh[++newStartIdx];\n }\n }\n }\n if (oldStartIdx <= oldEndIdx || newStartIdx <= newEndIdx) {\n if (oldStartIdx > oldEndIdx) {\n // There's some cases in which the sub array of vnodes to be inserted is followed by null(s) and an\n // already processed vnode, in such cases the vnodes to be inserted should be before that processed vnode.\n let i = newEndIdx;\n let n;\n do {\n n = newCh[++i];\n } while (!isVNode(n) && i < newChEnd);\n before = isVNode(n) ? n.elm : null;\n mountVNodes(newCh, parent, renderer, before, newStartIdx, newEndIdx + 1);\n }\n else {\n unmountVNodes(oldCh, parent, renderer, true, oldStartIdx, oldEndIdx + 1);\n }\n }\n}\nfunction updateStaticChildren(c1, c2, parent, renderer) {\n const c1Length = c1.length;\n const c2Length = c2.length;\n if (c1Length === 0) {\n // the old list is empty, we can directly insert anything new\n mountVNodes(c2, parent, renderer, null);\n return;\n }\n if (c2Length === 0) {\n // the old list is nonempty and the new list is empty so we can directly remove all old nodes\n // this is the case in which the dynamic children of an if-directive should be removed\n unmountVNodes(c1, parent, renderer, true);\n return;\n }\n // if the old list is not empty, the new list MUST have the same\n // amount of nodes, that's why we call this static children\n let anchor = null;\n for (let i = c2Length - 1; i >= 0; i -= 1) {\n const n1 = c1[i];\n const n2 = c2[i];\n if (n2 !== n1) {\n if (isVNode(n1)) {\n if (isVNode(n2)) {\n if (isSameVnode(n1, n2)) {\n // both vnodes are equivalent, and we just need to patch them\n patch(n1, n2, parent, renderer);\n anchor = n2.elm;\n }\n else {\n // removing the old vnode since the new one is different\n unmount(n1, parent, renderer, true);\n mount(n2, parent, renderer, anchor);\n anchor = n2.elm;\n }\n }\n else {\n // removing the old vnode since the new one is null\n unmount(n1, parent, renderer, true);\n }\n }\n else if (isVNode(n2)) {\n mount(n2, parent, renderer, anchor);\n anchor = n2.elm;\n }\n }\n }\n}\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nconst SymbolIterator = Symbol.iterator;\nfunction addVNodeToChildLWC(vnode) {\n ArrayPush$1.call(getVMBeingRendered().velements, vnode);\n}\n// [s]coped [s]lot [f]actory\nfunction ssf(slotName, factory) {\n return {\n type: 6 /* VNodeType.ScopedSlotFragment */,\n factory,\n owner: getVMBeingRendered(),\n elm: undefined,\n sel: undefined,\n key: undefined,\n slotName,\n };\n}\n// [st]atic node\nfunction st(fragment, key, data) {\n const owner = getVMBeingRendered();\n const vnode = {\n type: 4 /* VNodeType.Static */,\n sel: undefined,\n key,\n elm: undefined,\n fragment,\n owner,\n data,\n };\n const ref = data === null || data === void 0 ? void 0 : data.ref;\n if (!isUndefined$1(ref)) {\n setRefVNode(owner, ref, vnode);\n }\n return vnode;\n}\n// [fr]agment node\nfunction fr(key, children, stable) {\n const leading = t('');\n const trailing = t('');\n return {\n type: 5 /* VNodeType.Fragment */,\n sel: undefined,\n key,\n elm: undefined,\n children: [leading, ...children, trailing],\n stable,\n owner: getVMBeingRendered(),\n leading,\n trailing,\n };\n}\n// [h]tml node\nfunction h(sel, data, children = EmptyArray) {\n const vmBeingRendered = getVMBeingRendered();\n if (process.env.NODE_ENV !== 'production') {\n assert.isTrue(isString(sel), `h() 1st argument sel must be a string.`);\n assert.isTrue(isObject(data), `h() 2nd argument data must be an object.`);\n assert.isTrue(isArray$1(children), `h() 3rd argument children must be an array.`);\n assert.isTrue('key' in data, ` <${sel}> \"key\" attribute is invalid or missing for ${vmBeingRendered}. Key inside iterator is either undefined or null.`);\n // checking reserved internal data properties\n assert.isFalse(data.className && data.classMap, `vnode.data.className and vnode.data.classMap ambiguous declaration.`);\n assert.isFalse(data.styleDecls && data.style, `vnode.data.styleDecls and vnode.data.style ambiguous declaration.`);\n if (data.style && !isString(data.style)) {\n logError(`Invalid 'style' attribute passed to <${sel}> is ignored. This attribute must be a string value.`, vmBeingRendered);\n }\n forEach.call(children, (childVnode) => {\n if (childVnode != null) {\n assert.isTrue('type' in childVnode &&\n 'sel' in childVnode &&\n 'elm' in childVnode &&\n 'key' in childVnode, `${childVnode} is not a vnode.`);\n }\n });\n }\n const { key, ref } = data;\n const vnode = {\n type: 2 /* VNodeType.Element */,\n sel,\n data,\n children,\n elm: undefined,\n key,\n owner: vmBeingRendered,\n };\n if (!isUndefined$1(ref)) {\n setRefVNode(vmBeingRendered, ref, vnode);\n }\n return vnode;\n}\n// [t]ab[i]ndex function\nfunction ti(value) {\n // if value is greater than 0, we normalize to 0\n // If value is an invalid tabIndex value (null, undefined, string, etc), we let that value pass through\n // If value is less than -1, we don't care\n const shouldNormalize = value > 0 && !(isTrue(value) || isFalse(value));\n if (process.env.NODE_ENV !== 'production') {\n const vmBeingRendered = getVMBeingRendered();\n if (shouldNormalize) {\n logError(`Invalid tabindex value \\`${toString$1(value)}\\` in template for ${vmBeingRendered}. This attribute must be set to 0 or -1.`, vmBeingRendered);\n }\n }\n return shouldNormalize ? 0 : value;\n}\n// [s]lot element node\nfunction s(slotName, data, children, slotset) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isTrue(isString(slotName), `s() 1st argument slotName must be a string.`);\n assert.isTrue(isObject(data), `s() 2nd argument data must be an object.`);\n assert.isTrue(isArray$1(children), `h() 3rd argument children must be an array.`);\n }\n if (!isUndefined$1(slotset) &&\n !isUndefined$1(slotset.slotAssignments) &&\n !isUndefined$1(slotset.slotAssignments[slotName]) &&\n slotset.slotAssignments[slotName].length !== 0) {\n const newChildren = [];\n const slotAssignments = slotset.slotAssignments[slotName];\n for (let i = 0; i < slotAssignments.length; i++) {\n const vnode = slotAssignments[i];\n if (!isNull(vnode)) {\n const assignedNodeIsScopedSlot = isVScopedSlotFragment(vnode);\n // The only sniff test for a scoped <slot> element is the presence of `slotData`\n const isScopedSlotElement = !isUndefined$1(data.slotData);\n // Check if slot types of parent and child are matching\n if (assignedNodeIsScopedSlot !== isScopedSlotElement) {\n if (process.env.NODE_ENV !== 'production') {\n logError(`Mismatched slot types for ${slotName === '' ? '(default)' : slotName} slot. Both parent and child component must use standard type or scoped type for a given slot.`, slotset.owner);\n }\n // Ignore slot content from parent\n continue;\n }\n // If the passed slot content is factory, evaluate it and add the produced vnodes\n if (assignedNodeIsScopedSlot) {\n const vmBeingRenderedInception = getVMBeingRendered();\n // Evaluate in the scope of the slot content's owner\n // if a slotset is provided, there will always be an owner. The only case where owner is\n // undefined is for root components, but root components cannot accept slotted content\n setVMBeingRendered(slotset.owner);\n try {\n // The factory function is a template snippet from the slot set owner's template,\n // hence switch over to the slot set owner's template reactive observer\n const { tro } = slotset.owner;\n tro.observe(() => {\n ArrayPush$1.call(newChildren, vnode.factory(data.slotData, data.key));\n });\n }\n finally {\n setVMBeingRendered(vmBeingRenderedInception);\n }\n }\n else {\n // If the slot content is standard type, the content is static, no additional\n // processing needed on the vnode\n ArrayPush$1.call(newChildren, vnode);\n }\n }\n }\n children = newChildren;\n }\n const vmBeingRendered = getVMBeingRendered();\n const { renderMode, shadowMode } = vmBeingRendered;\n if (renderMode === 0 /* RenderMode.Light */) {\n sc(children);\n return children;\n }\n if (shadowMode === 1 /* ShadowMode.Synthetic */) {\n // TODO [#1276]: compiler should give us some sort of indicator when a vnodes collection is dynamic\n sc(children);\n }\n return h('slot', data, children);\n}\n// [c]ustom element node\nfunction c(sel, Ctor, data, children = EmptyArray) {\n const vmBeingRendered = getVMBeingRendered();\n if (process.env.NODE_ENV !== 'production') {\n assert.isTrue(isString(sel), `c() 1st argument sel must be a string.`);\n assert.isTrue(isFunction$1(Ctor), `c() 2nd argument Ctor must be a function.`);\n assert.isTrue(isObject(data), `c() 3nd argument data must be an object.`);\n assert.isTrue(arguments.length === 3 || isArray$1(children), `c() 4nd argument data must be an array.`);\n // checking reserved internal data properties\n assert.isFalse(data.className && data.classMap, `vnode.data.className and vnode.data.classMap ambiguous declaration.`);\n assert.isFalse(data.styleDecls && data.style, `vnode.data.styleDecls and vnode.data.style ambiguous declaration.`);\n if (data.style && !isString(data.style)) {\n logError(`Invalid 'style' attribute passed to <${sel}> is ignored. This attribute must be a string value.`, vmBeingRendered);\n }\n if (arguments.length === 4) {\n forEach.call(children, (childVnode) => {\n if (childVnode != null) {\n assert.isTrue('type' in childVnode &&\n 'sel' in childVnode &&\n 'elm' in childVnode &&\n 'key' in childVnode, `${childVnode} is not a vnode.`);\n }\n });\n }\n }\n const { key, ref } = data;\n let elm, aChildren, vm;\n const vnode = {\n type: 3 /* VNodeType.CustomElement */,\n sel,\n data,\n children,\n elm,\n key,\n ctor: Ctor,\n owner: vmBeingRendered,\n mode: 'open',\n aChildren,\n vm,\n };\n addVNodeToChildLWC(vnode);\n if (!isUndefined$1(ref)) {\n setRefVNode(vmBeingRendered, ref, vnode);\n }\n return vnode;\n}\n// [i]terable node\nfunction i(iterable, factory) {\n const list = [];\n // TODO [#1276]: compiler should give us some sort of indicator when a vnodes collection is dynamic\n sc(list);\n const vmBeingRendered = getVMBeingRendered();\n if (isUndefined$1(iterable) || iterable === null) {\n if (process.env.NODE_ENV !== 'production') {\n logError(`Invalid template iteration for value \"${toString$1(iterable)}\" in ${vmBeingRendered}. It must be an Array or an iterable Object.`, vmBeingRendered);\n }\n return list;\n }\n if (process.env.NODE_ENV !== 'production') {\n assert.isFalse(isUndefined$1(iterable[SymbolIterator]), `Invalid template iteration for value \\`${toString$1(iterable)}\\` in ${vmBeingRendered}. It must be an array-like object and not \\`null\\` nor \\`undefined\\`.`);\n }\n const iterator = iterable[SymbolIterator]();\n if (process.env.NODE_ENV !== 'production') {\n assert.isTrue(iterator && isFunction$1(iterator.next), `Invalid iterator function for \"${toString$1(iterable)}\" in ${vmBeingRendered}.`);\n }\n let next = iterator.next();\n let j = 0;\n let { value, done: last } = next;\n let keyMap;\n let iterationError;\n if (process.env.NODE_ENV !== 'production') {\n keyMap = create(null);\n }\n while (last === false) {\n // implementing a look-back-approach because we need to know if the element is the last\n next = iterator.next();\n last = next.done;\n // template factory logic based on the previous collected value\n const vnode = factory(value, j, j === 0, last === true);\n if (isArray$1(vnode)) {\n ArrayPush$1.apply(list, vnode);\n }\n else {\n ArrayPush$1.call(list, vnode);\n }\n if (process.env.NODE_ENV !== 'production') {\n const vnodes = isArray$1(vnode) ? vnode : [vnode];\n forEach.call(vnodes, (childVnode) => {\n if (!isNull(childVnode) && isObject(childVnode) && !isUndefined$1(childVnode.sel)) {\n const { key } = childVnode;\n if (isString(key) || isNumber(key)) {\n if (keyMap[key] === 1 && isUndefined$1(iterationError)) {\n iterationError = `Duplicated \"key\" attribute value for \"<${childVnode.sel}>\" in ${vmBeingRendered} for item number ${j}. A key with value \"${childVnode.key}\" appears more than once in the iteration. Key values must be unique numbers or strings.`;\n }\n keyMap[key] = 1;\n }\n else if (isUndefined$1(iterationError)) {\n iterationError = `Invalid \"key\" attribute value in \"<${childVnode.sel}>\" in ${vmBeingRendered} for item number ${j}. Set a unique \"key\" value on all iterated child elements.`;\n }\n }\n });\n }\n // preparing next value\n j += 1;\n value = next.value;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (!isUndefined$1(iterationError)) {\n logError(iterationError, vmBeingRendered);\n }\n }\n return list;\n}\n/**\n * [f]lattening\n */\nfunction f(items) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isTrue(isArray$1(items), 'flattening api can only work with arrays.');\n }\n const len = items.length;\n const flattened = [];\n // TODO [#1276]: compiler should give us some sort of indicator when a vnodes collection is dynamic\n sc(flattened);\n for (let j = 0; j < len; j += 1) {\n const item = items[j];\n if (isArray$1(item)) {\n ArrayPush$1.apply(flattened, item);\n }\n else {\n ArrayPush$1.call(flattened, item);\n }\n }\n return flattened;\n}\n// [t]ext node\nfunction t(text) {\n let sel, key, elm;\n return {\n type: 0 /* VNodeType.Text */,\n sel,\n text,\n elm,\n key,\n owner: getVMBeingRendered(),\n };\n}\n// [co]mment node\nfunction co(text) {\n let sel, elm;\n return {\n type: 1 /* VNodeType.Comment */,\n sel,\n text,\n elm,\n key: 'c',\n owner: getVMBeingRendered(),\n };\n}\n// [d]ynamic text\nfunction d(value) {\n return value == null ? '' : String(value);\n}\n// [b]ind function\nfunction b(fn) {\n const vmBeingRendered = getVMBeingRendered();\n if (isNull(vmBeingRendered)) {\n throw new Error();\n }\n const vm = vmBeingRendered;\n return function (event) {\n invokeEventListener(vm, fn, vm.component, event);\n };\n}\n// [k]ey function\nfunction k(compilerKey, obj) {\n switch (typeof obj) {\n case 'number':\n case 'string':\n return compilerKey + ':' + obj;\n case 'object':\n if (process.env.NODE_ENV !== 'production') {\n logError(`Invalid key value \"${obj}\" in ${getVMBeingRendered()}. Key must be a string or number.`);\n }\n }\n}\n// [g]lobal [id] function\nfunction gid(id) {\n const vmBeingRendered = getVMBeingRendered();\n if (isUndefined$1(id) || id === '') {\n if (process.env.NODE_ENV !== 'production') {\n logError(`Invalid id value \"${id}\". The id attribute must contain a non-empty string.`, vmBeingRendered);\n }\n return id;\n }\n // We remove attributes when they are assigned a value of null\n if (isNull(id)) {\n return null;\n }\n const { idx, shadowMode } = vmBeingRendered;\n if (shadowMode === 1 /* ShadowMode.Synthetic */) {\n return StringReplace.call(id, /\\S+/g, (id) => `${id}-${idx}`);\n }\n return id;\n}\n// [f]ragment [id] function\nfunction fid(url) {\n const vmBeingRendered = getVMBeingRendered();\n if (isUndefined$1(url) || url === '') {\n if (process.env.NODE_ENV !== 'production') {\n if (isUndefined$1(url)) {\n logError(`Undefined url value for \"href\" or \"xlink:href\" attribute. Expected a non-empty string.`, vmBeingRendered);\n }\n }\n return url;\n }\n // We remove attributes when they are assigned a value of null\n if (isNull(url)) {\n return null;\n }\n const { idx, shadowMode } = vmBeingRendered;\n // Apply transformation only for fragment-only-urls, and only in shadow DOM\n if (shadowMode === 1 /* ShadowMode.Synthetic */ && /^#/.test(url)) {\n return `${url}-${idx}`;\n }\n return url;\n}\n/**\n * [ddc] - create a (deprecated) dynamic component via `<x-foo lwc:dynamic={Ctor}>`\n *\n * TODO [#3331]: remove usage of lwc:dynamic in 246\n */\nfunction ddc(sel, Ctor, data, children = EmptyArray) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isTrue(isString(sel), `dc() 1st argument sel must be a string.`);\n assert.isTrue(isObject(data), `dc() 3nd argument data must be an object.`);\n assert.isTrue(arguments.length === 3 || isArray$1(children), `dc() 4nd argument data must be an array.`);\n }\n // null or undefined values should produce a null value in the VNodes\n if (isNull(Ctor) || isUndefined$1(Ctor)) {\n return null;\n }\n if (!isComponentConstructor(Ctor)) {\n throw new Error(`Invalid LWC Constructor ${toString$1(Ctor)} for custom element <${sel}>.`);\n }\n return c(sel, Ctor, data, children);\n}\n/**\n * [dc] - create a dynamic component via `<lwc:component lwc:is={Ctor}>`\n */\nfunction dc(Ctor, data, children = EmptyArray) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isTrue(isObject(data), `dc() 2nd argument data must be an object.`);\n assert.isTrue(arguments.length === 3 || isArray$1(children), `dc() 3rd argument data must be an array.`);\n }\n // Null or undefined values should produce a null value in the VNodes.\n // This is the only value at compile time as the constructor will not be known.\n if (isNull(Ctor) || isUndefined$1(Ctor)) {\n return null;\n }\n if (!isComponentConstructor(Ctor)) {\n throw new Error(`Invalid constructor ${toString$1(Ctor)} is not a LightningElement constructor.`);\n }\n // Look up the dynamic component's name at runtime once the constructor is available.\n // This information is only known at runtime and is stored as part of registerComponent.\n const sel = getComponentRegisteredName(Ctor);\n if (isUndefined$1(sel) || sel === '') {\n throw new Error(`Invalid LWC constructor ${toString$1(Ctor)} does not have a registered name`);\n }\n return c(sel, Ctor, data, children);\n}\n/**\n * slow children collection marking mechanism. this API allows the compiler to signal\n * to the engine that a particular collection of children must be diffed using the slow\n * algo based on keys due to the nature of the list. E.g.:\n *\n * - slot element's children: the content of the slot has to be dynamic when in synthetic\n * shadow mode because the `vnode.children` might be the slotted\n * content vs default content, in which case the size and the\n * keys are not matching.\n * - children that contain dynamic components\n * - children that are produced by iteration\n *\n */\nfunction sc(vnodes) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isTrue(isArray$1(vnodes), 'sc() api can only work with arrays.');\n }\n // We have to mark the vnodes collection as dynamic so we can later on\n // choose to use the snabbdom virtual dom diffing algo instead of our\n // static dummy algo.\n markAsDynamicChildren(vnodes);\n return vnodes;\n}\n/**\n * EXPERIMENTAL: This function acts like a hook for Lightning Locker Service and other similar\n * libraries to sanitize HTML content. This hook process the content passed via the template to\n * lwc:inner-html directive.\n * It is meant to be overridden with setSanitizeHtmlContentHook, it throws an error by default.\n */\nlet sanitizeHtmlContentHook = () => {\n // locker-service patches this function during runtime to sanitize HTML content.\n throw new Error('sanitizeHtmlContent hook must be implemented.');\n};\n/**\n * Sets the sanitizeHtmlContentHook.\n */\nfunction setSanitizeHtmlContentHook(newHookImpl) {\n sanitizeHtmlContentHook = newHookImpl;\n}\n// [s]anitize [h]tml [c]ontent\nfunction shc(content) {\n return sanitizeHtmlContentHook(content);\n}\nconst api = freeze({\n s,\n h,\n c,\n i,\n f,\n t,\n d,\n b,\n k,\n co,\n dc,\n fr,\n ti,\n st,\n gid,\n fid,\n shc,\n ssf,\n ddc,\n});\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nconst operationIdNameMapping = [\n 'constructor',\n 'render',\n 'patch',\n 'connectedCallback',\n 'renderedCallback',\n 'disconnectedCallback',\n 'errorCallback',\n 'lwc-hydrate',\n 'lwc-rehydrate',\n];\n// Even if all the browser the engine supports implements the UserTiming API, we need to guard the measure APIs.\n// JSDom (used in Jest) for example doesn't implement the UserTiming APIs.\nconst isUserTimingSupported = typeof performance !== 'undefined' &&\n typeof performance.mark === 'function' &&\n typeof performance.clearMarks === 'function' &&\n typeof performance.measure === 'function' &&\n typeof performance.clearMeasures === 'function';\nconst start = !isUserTimingSupported\n ? noop\n : (markName) => {\n performance.mark(markName);\n };\nconst end = !isUserTimingSupported\n ? noop\n : (measureName, markName) => {\n performance.measure(measureName, markName);\n // Clear the created marks and measure to avoid filling the performance entries buffer.\n // Note: Even if the entries get deleted, existing PerformanceObservers preserve a copy of those entries.\n performance.clearMarks(markName);\n performance.clearMeasures(measureName);\n };\nfunction getOperationName(opId) {\n return operationIdNameMapping[opId];\n}\nfunction getMeasureName(opId, vm) {\n return `${getComponentTag(vm)} - ${getOperationName(opId)}`;\n}\nfunction getMarkName(opId, vm) {\n // Adding the VM idx to the mark name creates a unique mark name component instance. This is necessary to produce\n // the right measures for components that are recursive.\n return `${getMeasureName(opId, vm)} - ${vm.idx}`;\n}\n/** Indicates if operations should be logged via the User Timing API. */\nconst isMeasureEnabled = process.env.NODE_ENV !== 'production';\nfunction logOperationStart(opId, vm) {\n if (isMeasureEnabled) {\n const markName = getMarkName(opId, vm);\n start(markName);\n }\n}\nfunction logOperationEnd(opId, vm) {\n if (isMeasureEnabled) {\n const markName = getMarkName(opId, vm);\n const measureName = getMeasureName(opId, vm);\n end(measureName, markName);\n }\n}\nfunction logGlobalOperationStart(opId, vm) {\n if (isMeasureEnabled) {\n const opName = getOperationName(opId);\n const markName = isUndefined$1(vm) ? opName : getMarkName(opId, vm);\n start(markName);\n }\n}\nfunction logGlobalOperationEnd(opId, vm) {\n if (isMeasureEnabled) {\n const opName = getOperationName(opId);\n const markName = isUndefined$1(vm) ? opName : getMarkName(opId, vm);\n end(opName, markName);\n }\n}\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nlet isUpdatingTemplate = false;\nlet vmBeingRendered = null;\nfunction getVMBeingRendered() {\n return vmBeingRendered;\n}\nfunction setVMBeingRendered(vm) {\n vmBeingRendered = vm;\n}\nfunction validateSlots(vm) {\n assertNotProd(); // this method should never leak to prod\n const { cmpSlots } = vm;\n for (const slotName in cmpSlots.slotAssignments) {\n // eslint-disable-next-line @lwc/lwc-internal/no-production-assert\n assert.isTrue(isArray$1(cmpSlots.slotAssignments[slotName]), `Slots can only be set to an array, instead received ${toString$1(cmpSlots.slotAssignments[slotName])} for slot \"${slotName}\" in ${vm}.`);\n }\n}\nfunction validateLightDomTemplate(template, vm) {\n assertNotProd(); // should never leak to prod mode\n if (template === defaultEmptyTemplate) {\n return;\n }\n if (vm.renderMode === 0 /* RenderMode.Light */) {\n if (template.renderMode !== 'light') {\n logError(`Light DOM components can't render shadow DOM templates. Add an 'lwc:render-mode=\"light\"' directive to the root template tag of ${getComponentTag(vm)}.`);\n }\n }\n else {\n if (!isUndefined$1(template.renderMode)) {\n logError(`Shadow DOM components template can't render light DOM templates. Either remove the 'lwc:render-mode' directive from ${getComponentTag(vm)} or set it to 'lwc:render-mode=\"shadow\"`);\n }\n }\n}\nfunction buildParseFragmentFn(createFragmentFn) {\n return (strings, ...keys) => {\n const cache = create(null);\n return function () {\n const { context: { hasScopedStyles, stylesheetToken }, shadowMode, renderer, } = getVMBeingRendered();\n const hasStyleToken = !isUndefined$1(stylesheetToken);\n const isSyntheticShadow = shadowMode === 1 /* ShadowMode.Synthetic */;\n let cacheKey = 0;\n if (hasStyleToken && hasScopedStyles) {\n cacheKey |= 1 /* FragmentCache.HAS_SCOPED_STYLE */;\n }\n if (hasStyleToken && isSyntheticShadow) {\n cacheKey |= 2 /* FragmentCache.SHADOW_MODE_SYNTHETIC */;\n }\n if (!isUndefined$1(cache[cacheKey])) {\n return cache[cacheKey];\n }\n const classToken = hasScopedStyles && hasStyleToken ? ' ' + stylesheetToken : '';\n const classAttrToken = hasScopedStyles && hasStyleToken ? ` class=\"${stylesheetToken}\"` : '';\n const attrToken = hasStyleToken && isSyntheticShadow ? ' ' + stylesheetToken : '';\n let htmlFragment = '';\n for (let i = 0, n = keys.length; i < n; i++) {\n switch (keys[i]) {\n case 0: // styleToken in existing class attr\n htmlFragment += strings[i] + classToken;\n break;\n case 1: // styleToken for added class attr\n htmlFragment += strings[i] + classAttrToken;\n break;\n case 2: // styleToken as attr\n htmlFragment += strings[i] + attrToken;\n break;\n case 3: // ${1}${2}\n htmlFragment += strings[i] + classAttrToken + attrToken;\n break;\n }\n }\n htmlFragment += strings[strings.length - 1];\n cache[cacheKey] = createFragmentFn(htmlFragment, renderer);\n return cache[cacheKey];\n };\n };\n}\n// Note: at the moment this code executes, we don't have a renderer yet.\nconst parseFragment$1 = buildParseFragmentFn((html, renderer) => {\n const { createFragment } = renderer;\n return createFragment(html);\n});\nfunction evaluateTemplate(vm, html) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isTrue(isFunction$1(html), `evaluateTemplate() second argument must be an imported template instead of ${toString$1(html)}`);\n // in dev-mode, we support hot swapping of templates, which means that\n // the component instance might be attempting to use an old version of\n // the template, while internally, we have a replacement for it.\n html = getTemplateOrSwappedTemplate(html);\n }\n const isUpdatingTemplateInception = isUpdatingTemplate;\n const vmOfTemplateBeingUpdatedInception = vmBeingRendered;\n let vnodes = [];\n runWithBoundaryProtection(vm, vm.owner, () => {\n // pre\n vmBeingRendered = vm;\n logOperationStart(1 /* OperationId.Render */, vm);\n }, () => {\n // job\n const { component, context, cmpSlots, cmpTemplate, tro } = vm;\n tro.observe(() => {\n // Reset the cache memoizer for template when needed.\n if (html !== cmpTemplate) {\n if (process.env.NODE_ENV !== 'production') {\n validateLightDomTemplate(html, vm);\n }\n // Perf opt: do not reset the shadow root during the first rendering (there is\n // nothing to reset).\n if (!isNull(cmpTemplate)) {\n // It is important to reset the content to avoid reusing similar elements\n // generated from a different template, because they could have similar IDs,\n // and snabbdom just rely on the IDs.\n resetComponentRoot(vm);\n }\n // Check that the template was built by the compiler.\n if (!isTemplateRegistered(html)) {\n throw new TypeError(`Invalid template returned by the render() method on ${vm}. It must return an imported template (e.g.: \\`import html from \"./${vm.def.name}.html\"\\`), instead, it has returned: ${toString$1(html)}.`);\n }\n vm.cmpTemplate = html;\n // Create a brand new template cache for the swapped templated.\n context.tplCache = create(null);\n // Set the computeHasScopedStyles property in the context, to avoid recomputing it repeatedly.\n context.hasScopedStyles = computeHasScopedStyles(html, vm);\n // Update the scoping token on the host element.\n updateStylesheetToken(vm, html);\n // Evaluate, create stylesheet and cache the produced VNode for future\n // re-rendering.\n const stylesheetsContent = getStylesheetsContent(vm, html);\n context.styleVNodes =\n stylesheetsContent.length === 0\n ? null\n : createStylesheet(vm, stylesheetsContent);\n }\n if (process.env.NODE_ENV !== 'production') {\n // validating slots in every rendering since the allocated content might change over time\n validateSlots(vm);\n // add the VM to the list of host VMs that can be re-rendered if html is swapped\n setActiveVM(vm);\n }\n // reset the refs; they will be set during the tmpl() instantiation\n vm.refVNodes = html.hasRefs ? create(null) : null;\n // right before producing the vnodes, we clear up all internal references\n // to custom elements from the template.\n vm.velements = [];\n // Set the global flag that template is being updated\n isUpdatingTemplate = true;\n vnodes = html.call(undefined, api, component, cmpSlots, context.tplCache);\n const { styleVNodes } = context;\n if (!isNull(styleVNodes)) {\n ArrayUnshift.apply(vnodes, styleVNodes);\n }\n });\n }, () => {\n // post\n isUpdatingTemplate = isUpdatingTemplateInception;\n vmBeingRendered = vmOfTemplateBeingUpdatedInception;\n logOperationEnd(1 /* OperationId.Render */, vm);\n });\n if (process.env.NODE_ENV !== 'production') {\n if (!isArray$1(vnodes)) {\n logError(`Compiler should produce html functions that always return an array.`);\n }\n }\n return vnodes;\n}\nfunction computeHasScopedStylesInStylesheets(stylesheets) {\n if (hasStyles(stylesheets)) {\n for (let i = 0; i < stylesheets.length; i++) {\n if (isTrue(stylesheets[i][KEY__SCOPED_CSS])) {\n return true;\n }\n }\n }\n return false;\n}\nfunction computeHasScopedStyles(template, vm) {\n const { stylesheets } = template;\n const vmStylesheets = !isUndefined$1(vm) ? vm.stylesheets : null;\n return (computeHasScopedStylesInStylesheets(stylesheets) ||\n computeHasScopedStylesInStylesheets(vmStylesheets));\n}\nfunction hasStyles(stylesheets) {\n return !isUndefined$1(stylesheets) && !isNull(stylesheets) && stylesheets.length > 0;\n}\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nlet isInvokingRender = false;\nlet vmBeingConstructed = null;\nfunction isBeingConstructed(vm) {\n return vmBeingConstructed === vm;\n}\nfunction invokeComponentCallback(vm, fn, args) {\n const { component, callHook, owner } = vm;\n runWithBoundaryProtection(vm, owner, noop, () => {\n callHook(component, fn, args);\n }, noop);\n}\nfunction invokeComponentConstructor(vm, Ctor) {\n const vmBeingConstructedInception = vmBeingConstructed;\n let error;\n logOperationStart(0 /* OperationId.Constructor */, vm);\n vmBeingConstructed = vm;\n /**\n * Constructors don't need to be wrapped with a boundary because for root elements\n * it should throw, while elements from template are already wrapped by a boundary\n * associated to the diffing algo.\n */\n try {\n // job\n const result = new Ctor();\n // Check indirectly if the constructor result is an instance of LightningElement. Using\n // the \"instanceof\" operator would not work here since Locker Service provides its own\n // implementation of LightningElement, so we indirectly check if the base constructor is\n // invoked by accessing the component on the vm.\n if (vmBeingConstructed.component !== result) {\n throw new TypeError('Invalid component constructor, the class should extend LightningElement.');\n }\n }\n catch (e) {\n error = Object(e);\n }\n finally {\n logOperationEnd(0 /* OperationId.Constructor */, vm);\n vmBeingConstructed = vmBeingConstructedInception;\n if (!isUndefined$1(error)) {\n addErrorComponentStack(vm, error);\n // re-throwing the original error annotated after restoring the context\n throw error; // eslint-disable-line no-unsafe-finally\n }\n }\n}\nfunction invokeComponentRenderMethod(vm) {\n const { def: { render }, callHook, component, owner, } = vm;\n const isRenderBeingInvokedInception = isInvokingRender;\n const vmBeingRenderedInception = getVMBeingRendered();\n let html;\n let renderInvocationSuccessful = false;\n runWithBoundaryProtection(vm, owner, () => {\n // pre\n isInvokingRender = true;\n setVMBeingRendered(vm);\n }, () => {\n // job\n vm.tro.observe(() => {\n html = callHook(component, render);\n renderInvocationSuccessful = true;\n });\n }, () => {\n // post\n isInvokingRender = isRenderBeingInvokedInception;\n setVMBeingRendered(vmBeingRenderedInception);\n });\n // If render() invocation failed, process errorCallback in boundary and return an empty template\n return renderInvocationSuccessful ? evaluateTemplate(vm, html) : [];\n}\nfunction invokeEventListener(vm, fn, thisValue, event) {\n const { callHook, owner } = vm;\n runWithBoundaryProtection(vm, owner, noop, () => {\n // job\n if (process.env.NODE_ENV !== 'production') {\n assert.isTrue(isFunction$1(fn), `Invalid event handler for event '${event.type}' on ${vm}.`);\n }\n callHook(thisValue, fn, [event]);\n }, noop);\n}\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nconst registeredComponentMap = new Map();\n/**\n * INTERNAL: This function can only be invoked by compiled code. The compiler\n * will prevent this function from being imported by userland code.\n */\nfunction registerComponent(\n// We typically expect a LightningElementConstructor, but technically you can call this with anything\nCtor, metadata) {\n if (isFunction$1(Ctor)) {\n if (process.env.NODE_ENV !== 'production') {\n // There is no point in running this in production, because the version mismatch check relies\n // on code comments which are stripped out in production by minifiers\n checkVersionMismatch(Ctor, 'component');\n }\n // TODO [#3331]: add validation to check the value of metadata.sel is not an empty string.\n registeredComponentMap.set(Ctor, metadata);\n }\n // chaining this method as a way to wrap existing assignment of component constructor easily,\n // without too much transformation\n return Ctor;\n}\nfunction getComponentRegisteredTemplate(Ctor) {\n var _a;\n return (_a = registeredComponentMap.get(Ctor)) === null || _a === void 0 ? void 0 : _a.tmpl;\n}\nfunction getComponentRegisteredName(Ctor) {\n var _a;\n return (_a = registeredComponentMap.get(Ctor)) === null || _a === void 0 ? void 0 : _a.sel;\n}\nfunction getTemplateReactiveObserver(vm) {\n return createReactiveObserver();\n}\nfunction renderComponent$1(vm) {\n if (process.env.NODE_ENV !== 'production') {\n assert.invariant(vm.isDirty, `${vm} is not dirty.`);\n }\n vm.tro.reset();\n const vnodes = invokeComponentRenderMethod(vm);\n vm.isDirty = false;\n vm.isScheduled = false;\n return vnodes;\n}\nfunction markComponentAsDirty(vm) {\n if (process.env.NODE_ENV !== 'production') {\n const vmBeingRendered = getVMBeingRendered();\n assert.isFalse(vm.isDirty, `markComponentAsDirty() for ${vm} should not be called when the component is already dirty.`);\n assert.isFalse(isInvokingRender, `markComponentAsDirty() for ${vm} cannot be called during rendering of ${vmBeingRendered}.`);\n assert.isFalse(isUpdatingTemplate, `markComponentAsDirty() for ${vm} cannot be called while updating template of ${vmBeingRendered}.`);\n }\n vm.isDirty = true;\n}\nconst cmpEventListenerMap = new WeakMap();\nfunction getWrappedComponentsListener(vm, listener) {\n if (!isFunction$1(listener)) {\n throw new TypeError('Expected an EventListener but received ' + typeof listener); // avoiding problems with non-valid listeners\n }\n let wrappedListener = cmpEventListenerMap.get(listener);\n if (isUndefined$1(wrappedListener)) {\n wrappedListener = function (event) {\n invokeEventListener(vm, listener, undefined, event);\n };\n cmpEventListenerMap.set(listener, wrappedListener);\n }\n return wrappedListener;\n}\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nconst Services = create(null);\nconst hooks = ['rendered', 'connected', 'disconnected'];\n/**\n * EXPERIMENTAL: This function allows for the registration of \"services\"\n * in LWC by exposing hooks into the component life-cycle. This API is\n * subject to change or being removed.\n */\nfunction register(service) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isTrue(isObject(service), `Invalid service declaration, ${service}: service must be an object`);\n }\n for (let i = 0; i < hooks.length; ++i) {\n const hookName = hooks[i];\n if (hookName in service) {\n let l = Services[hookName];\n if (isUndefined$1(l)) {\n Services[hookName] = l = [];\n }\n ArrayPush$1.call(l, service[hookName]);\n }\n }\n}\nfunction invokeServiceHook(vm, cbs) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isTrue(isArray$1(cbs) && cbs.length > 0, `Optimize invokeServiceHook() to be invoked only when needed`);\n }\n const { component, def, context } = vm;\n for (let i = 0, len = cbs.length; i < len; ++i) {\n cbs[i].call(undefined, component, {}, def, context);\n }\n}\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nlet idx = 0;\n/** The internal slot used to associate different objects the engine manipulates with the VM */\nconst ViewModelReflection = new WeakMap();\nfunction callHook(cmp, fn, args = []) {\n return fn.apply(cmp, args);\n}\nfunction setHook(cmp, prop, newValue) {\n cmp[prop] = newValue;\n}\nfunction getHook(cmp, prop) {\n return cmp[prop];\n}\nfunction rerenderVM(vm) {\n rehydrate(vm);\n}\nfunction connectRootElement(elm) {\n const vm = getAssociatedVM(elm);\n logGlobalOperationStart(7 /* OperationId.GlobalHydrate */, vm);\n // Usually means moving the element from one place to another, which is observable via\n // life-cycle hooks.\n if (vm.state === 1 /* VMState.connected */) {\n disconnectRootElement(elm);\n }\n runConnectedCallback(vm);\n rehydrate(vm);\n logGlobalOperationEnd(7 /* OperationId.GlobalHydrate */, vm);\n}\nfunction disconnectRootElement(elm) {\n const vm = getAssociatedVM(elm);\n resetComponentStateWhenRemoved(vm);\n}\nfunction appendVM(vm) {\n rehydrate(vm);\n}\n// just in case the component comes back, with this we guarantee re-rendering it\n// while preventing any attempt to rehydration until after reinsertion.\nfunction resetComponentStateWhenRemoved(vm) {\n const { state } = vm;\n if (state !== 2 /* VMState.disconnected */) {\n const { tro } = vm;\n // Making sure that any observing record will not trigger the rehydrated on this vm\n tro.reset();\n runDisconnectedCallback(vm);\n // Spec: https://dom.spec.whatwg.org/#concept-node-remove (step 14-15)\n runChildNodesDisconnectedCallback(vm);\n runLightChildNodesDisconnectedCallback(vm);\n }\n}\n// this method is triggered by the diffing algo only when a vnode from the\n// old vnode.children is removed from the DOM.\nfunction removeVM(vm) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isTrue(vm.state === 1 /* VMState.connected */ || vm.state === 2 /* VMState.disconnected */, `${vm} must have been connected.`);\n }\n resetComponentStateWhenRemoved(vm);\n}\nfunction getNearestShadowAncestor(vm) {\n let ancestor = vm.owner;\n while (!isNull(ancestor) && ancestor.renderMode === 0 /* RenderMode.Light */) {\n ancestor = ancestor.owner;\n }\n return ancestor;\n}\nfunction createVM(elm, ctor, renderer, options) {\n const { mode, owner, tagName, hydrated } = options;\n const def = getComponentInternalDef(ctor);\n const vm = {\n elm,\n def,\n idx: idx++,\n state: 0 /* VMState.created */,\n isScheduled: false,\n isDirty: true,\n tagName,\n mode,\n owner,\n refVNodes: null,\n children: EmptyArray,\n aChildren: EmptyArray,\n velements: EmptyArray,\n cmpProps: create(null),\n cmpFields: create(null),\n cmpSlots: { slotAssignments: create(null) },\n cmpTemplate: null,\n hydrated: Boolean(hydrated),\n renderMode: def.renderMode,\n context: {\n stylesheetToken: undefined,\n hasTokenInClass: undefined,\n hasTokenInAttribute: undefined,\n hasScopedStyles: undefined,\n styleVNodes: null,\n tplCache: EmptyObject,\n wiredConnecting: EmptyArray,\n wiredDisconnecting: EmptyArray,\n },\n // Properties set right after VM creation.\n tro: null,\n shadowMode: null,\n stylesheets: null,\n // Properties set by the LightningElement constructor.\n component: null,\n shadowRoot: null,\n renderRoot: null,\n callHook,\n setHook,\n getHook,\n renderer,\n };\n if (process.env.NODE_ENV !== 'production') {\n vm.debugInfo = create(null);\n }\n vm.stylesheets = computeStylesheets(vm, def.ctor);\n vm.shadowMode = computeShadowMode(vm, renderer);\n vm.tro = getTemplateReactiveObserver();\n if (process.env.NODE_ENV !== 'production') {\n vm.toString = () => {\n return `[object:vm ${def.name} (${vm.idx})]`;\n };\n if (lwcRuntimeFlags.ENABLE_FORCE_NATIVE_SHADOW_MODE_FOR_TEST) {\n vm.shadowMode = 0 /* ShadowMode.Native */;\n }\n }\n // Create component instance associated to the vm and the element.\n invokeComponentConstructor(vm, def.ctor);\n // Initializing the wire decorator per instance only when really needed\n if (hasWireAdapters(vm)) {\n installWireAdapters(vm);\n }\n return vm;\n}\nfunction validateComponentStylesheets(vm, stylesheets) {\n let valid = true;\n const validate = (arrayOrStylesheet) => {\n if (isArray$1(arrayOrStylesheet)) {\n for (let i = 0; i < arrayOrStylesheet.length; i++) {\n validate(arrayOrStylesheet[i]);\n }\n }\n else if (!isFunction$1(arrayOrStylesheet)) {\n // function assumed to be a stylesheet factory\n valid = false;\n }\n };\n if (!isArray$1(stylesheets)) {\n valid = false;\n }\n else {\n validate(stylesheets);\n }\n return valid;\n}\n// Validate and flatten any stylesheets defined as `static stylesheets`\nfunction computeStylesheets(vm, ctor) {\n warnOnStylesheetsMutation(ctor);\n const { stylesheets } = ctor;\n if (!isUndefined$1(stylesheets)) {\n const valid = validateComponentStylesheets(vm, stylesheets);\n if (valid) {\n return flattenStylesheets(stylesheets);\n }\n else if (process.env.NODE_ENV !== 'production') {\n logError(`static stylesheets must be an array of CSS stylesheets. Found invalid stylesheets on <${vm.tagName}>`, vm);\n }\n }\n return null;\n}\nfunction warnOnStylesheetsMutation(ctor) {\n if (process.env.NODE_ENV !== 'production') {\n let { stylesheets } = ctor;\n defineProperty(ctor, 'stylesheets', {\n enumerable: true,\n configurable: true,\n get() {\n return stylesheets;\n },\n set(newValue) {\n logWarnOnce(`Dynamically setting the \"stylesheets\" static property on ${ctor.name} ` +\n 'will not affect the stylesheets injected.');\n stylesheets = newValue;\n },\n });\n }\n}\nfunction computeShadowMode(vm, renderer) {\n const { def } = vm;\n const { isSyntheticShadowDefined, isNativeShadowDefined } = renderer;\n let shadowMode;\n if (isSyntheticShadowDefined) {\n if (def.renderMode === 0 /* RenderMode.Light */) {\n // ShadowMode.Native implies \"not synthetic shadow\" which is consistent with how\n // everything defaults to native when the synthetic shadow polyfill is unavailable.\n shadowMode = 0 /* ShadowMode.Native */;\n }\n else if (isNativeShadowDefined) {\n // Not combined with above condition because @lwc/features only supports identifiers in\n // the if-condition.\n if (lwcRuntimeFlags.ENABLE_MIXED_SHADOW_MODE) {\n if (def.shadowSupportMode === \"any\" /* ShadowSupportMode.Any */) {\n shadowMode = 0 /* ShadowMode.Native */;\n }\n else {\n const shadowAncestor = getNearestShadowAncestor(vm);\n if (!isNull(shadowAncestor) &&\n shadowAncestor.shadowMode === 0 /* ShadowMode.Native */) {\n // Transitive support for native Shadow DOM. A component in native mode\n // transitively opts all of its descendants into native.\n shadowMode = 0 /* ShadowMode.Native */;\n }\n else {\n // Synthetic if neither this component nor any of its ancestors are configured\n // to be native.\n shadowMode = 1 /* ShadowMode.Synthetic */;\n }\n }\n }\n else {\n shadowMode = 1 /* ShadowMode.Synthetic */;\n }\n }\n else {\n // Synthetic if there is no native Shadow DOM support.\n shadowMode = 1 /* ShadowMode.Synthetic */;\n }\n }\n else {\n // Native if the synthetic shadow polyfill is unavailable.\n shadowMode = 0 /* ShadowMode.Native */;\n }\n return shadowMode;\n}\nfunction assertIsVM(obj) {\n if (isNull(obj) || !isObject(obj) || !('renderRoot' in obj)) {\n throw new TypeError(`${obj} is not a VM.`);\n }\n}\nfunction associateVM(obj, vm) {\n ViewModelReflection.set(obj, vm);\n}\nfunction getAssociatedVM(obj) {\n const vm = ViewModelReflection.get(obj);\n if (process.env.NODE_ENV !== 'production') {\n assertIsVM(vm);\n }\n return vm;\n}\nfunction getAssociatedVMIfPresent(obj) {\n const maybeVm = ViewModelReflection.get(obj);\n if (process.env.NODE_ENV !== 'production') {\n if (!isUndefined$1(maybeVm)) {\n assertIsVM(maybeVm);\n }\n }\n return maybeVm;\n}\nfunction rehydrate(vm) {\n if (isTrue(vm.isDirty)) {\n const children = renderComponent$1(vm);\n patchShadowRoot(vm, children);\n }\n}\nfunction patchShadowRoot(vm, newCh) {\n const { renderRoot, children: oldCh, renderer } = vm;\n // caching the new children collection\n vm.children = newCh;\n if (newCh.length > 0 || oldCh.length > 0) {\n // patch function mutates vnodes by adding the element reference,\n // however, if patching fails it contains partial changes.\n if (oldCh !== newCh) {\n runWithBoundaryProtection(vm, vm, () => {\n // pre\n logOperationStart(2 /* OperationId.Patch */, vm);\n }, () => {\n // job\n patchChildren(oldCh, newCh, renderRoot, renderer);\n }, () => {\n // post\n logOperationEnd(2 /* OperationId.Patch */, vm);\n });\n }\n }\n if (vm.state === 1 /* VMState.connected */) ;\n}\nfunction runConnectedCallback(vm) {\n const { state } = vm;\n if (state === 1 /* VMState.connected */) {\n return; // nothing to do since it was already connected\n }\n vm.state = 1 /* VMState.connected */;\n // reporting connection\n const { connected } = Services;\n if (connected) {\n invokeServiceHook(vm, connected);\n }\n if (hasWireAdapters(vm)) {\n connectWireAdapters(vm);\n }\n const { connectedCallback } = vm.def;\n if (!isUndefined$1(connectedCallback)) {\n logOperationStart(3 /* OperationId.ConnectedCallback */, vm);\n invokeComponentCallback(vm, connectedCallback);\n logOperationEnd(3 /* OperationId.ConnectedCallback */, vm);\n }\n}\nfunction hasWireAdapters(vm) {\n return getOwnPropertyNames$1(vm.def.wire).length > 0;\n}\nfunction runDisconnectedCallback(vm) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isTrue(vm.state !== 2 /* VMState.disconnected */, `${vm} must be inserted.`);\n }\n if (isFalse(vm.isDirty)) {\n // this guarantees that if the component is reused/reinserted,\n // it will be re-rendered because we are disconnecting the reactivity\n // linking, so mutations are not automatically reflected on the state\n // of disconnected components.\n vm.isDirty = true;\n }\n vm.state = 2 /* VMState.disconnected */;\n // reporting disconnection\n const { disconnected } = Services;\n if (disconnected) {\n invokeServiceHook(vm, disconnected);\n }\n if (hasWireAdapters(vm)) {\n disconnectWireAdapters(vm);\n }\n const { disconnectedCallback } = vm.def;\n if (!isUndefined$1(disconnectedCallback)) {\n logOperationStart(5 /* OperationId.DisconnectedCallback */, vm);\n invokeComponentCallback(vm, disconnectedCallback);\n logOperationEnd(5 /* OperationId.DisconnectedCallback */, vm);\n }\n}\nfunction runChildNodesDisconnectedCallback(vm) {\n const { velements: vCustomElementCollection } = vm;\n // Reporting disconnection for every child in inverse order since they are\n // inserted in reserved order.\n for (let i = vCustomElementCollection.length - 1; i >= 0; i -= 1) {\n const { elm } = vCustomElementCollection[i];\n // There are two cases where the element could be undefined:\n // * when there is an error during the construction phase, and an error\n // boundary picks it, there is a possibility that the VCustomElement\n // is not properly initialized, and therefore is should be ignored.\n // * when slotted custom element is not used by the element where it is\n // slotted into it, as a result, the custom element was never\n // initialized.\n if (!isUndefined$1(elm)) {\n const childVM = getAssociatedVMIfPresent(elm);\n // The VM associated with the element might be associated undefined\n // in the case where the VM failed in the middle of its creation,\n // eg: constructor throwing before invoking super().\n if (!isUndefined$1(childVM)) {\n resetComponentStateWhenRemoved(childVM);\n }\n }\n }\n}\nfunction runLightChildNodesDisconnectedCallback(vm) {\n const { aChildren: adoptedChildren } = vm;\n recursivelyDisconnectChildren(adoptedChildren);\n}\n/**\n * The recursion doesn't need to be a complete traversal of the vnode graph,\n * instead it can be partial, when a custom element vnode is found, we don't\n * need to continue into its children because by attempting to disconnect the\n * custom element itself will trigger the removal of anything slotted or anything\n * defined on its shadow.\n */\nfunction recursivelyDisconnectChildren(vnodes) {\n for (let i = 0, len = vnodes.length; i < len; i += 1) {\n const vnode = vnodes[i];\n if (!isNull(vnode) && !isUndefined$1(vnode.elm)) {\n switch (vnode.type) {\n case 2 /* VNodeType.Element */:\n recursivelyDisconnectChildren(vnode.children);\n break;\n case 3 /* VNodeType.CustomElement */: {\n const vm = getAssociatedVM(vnode.elm);\n resetComponentStateWhenRemoved(vm);\n break;\n }\n }\n }\n }\n}\n// This is a super optimized mechanism to remove the content of the root node (shadow root\n// for shadow DOM components and the root element itself for light DOM) without having to go\n// into snabbdom. Especially useful when the reset is a consequence of an error, in which case the\n// children VNodes might not be representing the current state of the DOM.\nfunction resetComponentRoot(vm) {\n recursivelyRemoveChildren(vm.children, vm);\n vm.children = EmptyArray;\n runChildNodesDisconnectedCallback(vm);\n vm.velements = EmptyArray;\n}\n// Helper function to remove all children of the root node.\n// If the set of children includes VFragment nodes, we need to remove the children of those nodes too.\n// Since VFragments can contain other VFragments, we need to traverse the entire of tree of VFragments.\n// If the set contains no VFragment nodes, no traversal is needed.\nfunction recursivelyRemoveChildren(vnodes, vm) {\n const { renderRoot, renderer: { remove }, } = vm;\n for (let i = 0, len = vnodes.length; i < len; i += 1) {\n const vnode = vnodes[i];\n if (!isNull(vnode)) {\n // VFragments are special; their .elm property does not point to the root element since they have no single root.\n if (isVFragment(vnode)) {\n recursivelyRemoveChildren(vnode.children, vm);\n }\n else if (!isUndefined$1(vnode.elm)) {\n remove(vnode.elm, renderRoot);\n }\n }\n }\n}\nfunction getErrorBoundaryVM(vm) {\n let currentVm = vm;\n while (!isNull(currentVm)) {\n if (!isUndefined$1(currentVm.def.errorCallback)) {\n return currentVm;\n }\n currentVm = currentVm.owner;\n }\n}\nfunction runWithBoundaryProtection(vm, owner, pre, job, post) {\n let error;\n pre();\n try {\n job();\n }\n catch (e) {\n error = Object(e);\n }\n finally {\n post();\n if (!isUndefined$1(error)) {\n addErrorComponentStack(vm, error);\n const errorBoundaryVm = isNull(owner) ? undefined : getErrorBoundaryVM(owner);\n if (isUndefined$1(errorBoundaryVm)) {\n throw error; // eslint-disable-line no-unsafe-finally\n }\n resetComponentRoot(vm); // remove offenders\n logOperationStart(6 /* OperationId.ErrorCallback */, vm);\n // error boundaries must have an ErrorCallback\n const errorCallback = errorBoundaryVm.def.errorCallback;\n invokeComponentCallback(errorBoundaryVm, errorCallback, [error, error.wcStack]);\n logOperationEnd(6 /* OperationId.ErrorCallback */, vm);\n }\n }\n}\n// This is a \"handoff\" from synthetic-shadow to engine-core – we want to clean up after ourselves\n// so nobody else can misuse these global APIs.\ndelete _globalThis[KEY__NATIVE_GET_ELEMENT_BY_ID];\ndelete _globalThis[KEY__NATIVE_QUERY_SELECTOR_ALL];\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nlet hooksAreSet = false;\nfunction setHooks(hooks) {\n assert.isFalse(hooksAreSet, 'Hooks are already overridden, only one definition is allowed.');\n hooksAreSet = true;\n setSanitizeHtmlContentHook(hooks.sanitizeHtmlContent);\n}\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\n// See @lwc/engine-core/src/framework/template.ts\nconst TEMPLATE_PROPS = ['slots', 'stylesheetToken', 'stylesheets', 'renderMode'];\n// Expandos that may be placed on a stylesheet factory function, and which are meaningful to LWC at runtime\nconst STYLESHEET_PROPS = [\n // SEE `KEY__SCOPED_CSS` in @lwc/style-compiler\n '$scoped$',\n];\n// Via https://www.npmjs.com/package/object-observer\nconst ARRAY_MUTATION_METHODS = [\n 'pop',\n 'push',\n 'shift',\n 'unshift',\n 'reverse',\n 'sort',\n 'fill',\n 'splice',\n 'copyWithin',\n];\nlet mutationTrackingDisabled = false;\nfunction getOriginalArrayMethod(prop) {\n switch (prop) {\n case 'pop':\n return ArrayPop;\n case 'push':\n return ArrayPush$1;\n case 'shift':\n return ArrayShift;\n case 'unshift':\n return ArrayUnshift;\n case 'reverse':\n return ArrayReverse;\n case 'sort':\n return ArraySort;\n case 'fill':\n return ArrayFill;\n case 'splice':\n return ArraySplice;\n case 'copyWithin':\n return ArrayCopyWithin;\n }\n}\nfunction reportViolation(type, eventId, prop) {\n if (process.env.NODE_ENV !== 'production') {\n logWarnOnce(`Mutating the \"${prop}\" property on a ${type} ` +\n `is deprecated and will be removed in a future version of LWC. ` +\n `See: https://sfdc.co/template-mutation`);\n }\n}\nfunction reportTemplateViolation(prop) {\n reportViolation('template', \"TemplateMutation\" /* ReportingEventId.TemplateMutation */, prop);\n}\nfunction reportStylesheetViolation(prop) {\n reportViolation('stylesheet', \"StylesheetMutation\" /* ReportingEventId.StylesheetMutation */, prop);\n}\n// Warn if the user tries to mutate a stylesheets array, e.g.:\n// `tmpl.stylesheets.push(someStylesheetFunction)`\nfunction warnOnArrayMutation(stylesheets) {\n // We can't handle users calling Array.prototype.slice.call(tmpl.stylesheets), but\n // we can at least warn when they use the most common mutation methods.\n for (const prop of ARRAY_MUTATION_METHODS) {\n const originalArrayMethod = getOriginalArrayMethod(prop);\n stylesheets[prop] = function arrayMutationWarningWrapper() {\n reportTemplateViolation('stylesheets');\n // @ts-ignore\n return originalArrayMethod.apply(this, arguments);\n };\n }\n}\n// Warn if the user tries to mutate a stylesheet factory function, e.g.:\n// `stylesheet.$scoped$ = true`\nfunction warnOnStylesheetFunctionMutation(stylesheet) {\n for (const prop of STYLESHEET_PROPS) {\n let value = stylesheet[prop];\n defineProperty(stylesheet, prop, {\n enumerable: true,\n configurable: true,\n get() {\n return value;\n },\n set(newValue) {\n reportStylesheetViolation(prop);\n value = newValue;\n },\n });\n }\n}\n// Warn on either array or stylesheet (function) mutation, in a deeply-nested array\nfunction trackStylesheetsMutation(stylesheets) {\n traverseStylesheets(stylesheets, (subStylesheets) => {\n if (isArray$1(subStylesheets)) {\n warnOnArrayMutation(subStylesheets);\n }\n else {\n warnOnStylesheetFunctionMutation(subStylesheets);\n }\n });\n}\n// Deeply freeze the entire array (of arrays) of stylesheet factory functions\nfunction deepFreeze(stylesheets) {\n traverseStylesheets(stylesheets, (subStylesheets) => {\n freeze(subStylesheets);\n });\n}\n// Deep-traverse an array (of arrays) of stylesheet factory functions, and call the callback for every array/function\nfunction traverseStylesheets(stylesheets, callback) {\n callback(stylesheets);\n for (let i = 0; i < stylesheets.length; i++) {\n const stylesheet = stylesheets[i];\n if (isArray$1(stylesheet)) {\n traverseStylesheets(stylesheet, callback);\n }\n else {\n callback(stylesheet);\n }\n }\n}\nfunction trackMutations(tmpl) {\n if (!isUndefined$1(tmpl.stylesheets)) {\n trackStylesheetsMutation(tmpl.stylesheets);\n }\n for (const prop of TEMPLATE_PROPS) {\n let value = tmpl[prop];\n defineProperty(tmpl, prop, {\n enumerable: true,\n configurable: true,\n get() {\n return value;\n },\n set(newValue) {\n if (!mutationTrackingDisabled) {\n reportTemplateViolation(prop);\n }\n value = newValue;\n },\n });\n }\n const originalDescriptor = getOwnPropertyDescriptor$1(tmpl, 'stylesheetTokens');\n defineProperty(tmpl, 'stylesheetTokens', {\n enumerable: true,\n configurable: true,\n get: originalDescriptor.get,\n set(value) {\n reportTemplateViolation('stylesheetTokens');\n // Avoid logging/reporting twice (for both stylesheetToken and stylesheetTokens)\n mutationTrackingDisabled = true;\n originalDescriptor.set.call(this, value);\n mutationTrackingDisabled = false;\n },\n });\n}\nfunction addLegacyStylesheetTokensShim(tmpl) {\n // When ENABLE_FROZEN_TEMPLATE is false, then we shim stylesheetTokens on top of stylesheetToken for anyone who\n // is accessing the old internal API (backwards compat). Details: https://salesforce.quip.com/v1rmAFu2cKAr\n defineProperty(tmpl, 'stylesheetTokens', {\n enumerable: true,\n configurable: true,\n get() {\n const { stylesheetToken } = this;\n if (isUndefined$1(stylesheetToken)) {\n return stylesheetToken;\n }\n // Shim for the old `stylesheetTokens` property\n // See https://github.com/salesforce/lwc/pull/2332/files#diff-7901555acef29969adaa6583185b3e9bce475cdc6f23e799a54e0018cb18abaa\n return {\n hostAttribute: `${stylesheetToken}-host`,\n shadowAttribute: stylesheetToken,\n };\n },\n set(value) {\n // If the value is null or some other exotic object, you would be broken anyway in the past\n // because the engine would try to access hostAttribute/shadowAttribute, which would throw an error.\n // However it may be undefined in newer versions of LWC, so we need to guard against that case.\n this.stylesheetToken = isUndefined$1(value) ? undefined : value.shadowAttribute;\n },\n });\n}\nfunction freezeTemplate(tmpl) {\n // TODO [#2782]: remove this flag and delete the legacy behavior\n if (lwcRuntimeFlags.ENABLE_FROZEN_TEMPLATE) {\n // Deep freeze the template\n freeze(tmpl);\n if (!isUndefined$1(tmpl.stylesheets)) {\n deepFreeze(tmpl.stylesheets);\n }\n }\n else {\n // template is not frozen - shim, report, and warn\n // this shim should be applied in both dev and prod\n addLegacyStylesheetTokensShim(tmpl);\n // When ENABLE_FROZEN_TEMPLATE is false, we want to warn in dev mode whenever someone is mutating the template\n if (process.env.NODE_ENV !== 'production') {\n trackMutations(tmpl);\n }\n }\n}\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\n/**\n * EXPERIMENTAL: This function allows you to create a reactive readonly\n * membrane around any object value. This API is subject to change or\n * being removed.\n */\nfunction readonly(obj) {\n if (process.env.NODE_ENV !== 'production') {\n // TODO [#1292]: Remove the readonly decorator\n if (arguments.length !== 1) {\n logError('@readonly cannot be used as a decorator just yet, use it as a function with one argument to produce a readonly version of the provided value.');\n }\n }\n return getReadOnlyProxy(obj);\n}\n/** version: 2.50.0 */\n\n/*\n * Copyright (c) 2020, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\n// We use Symbols as the keys for HostElement properties to avoid conflicting\n// with public component properties defined by a component author.\nconst HostNamespaceKey = Symbol('namespace');\nconst HostTypeKey = Symbol('type');\nconst HostParentKey = Symbol('parent');\nconst HostShadowRootKey = Symbol('shadow-root');\nconst HostChildrenKey = Symbol('children');\nconst HostAttributesKey = Symbol('attributes');\nconst HostValueKey = Symbol('value');\nconst HostHostKey = Symbol('host');\nconst HostContextProvidersKey = Symbol('context-providers');\nvar HostNodeType;\n(function (HostNodeType) {\n HostNodeType[\"Text\"] = \"text\";\n HostNodeType[\"Comment\"] = \"comment\";\n HostNodeType[\"Raw\"] = \"raw\";\n HostNodeType[\"Element\"] = \"element\";\n HostNodeType[\"ShadowRoot\"] = \"shadow-root\";\n})(HostNodeType || (HostNodeType = {}));\n\n/*\n * Copyright (c) 2020, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nconst CLASSNAMES_SEPARATOR = /\\s+/g;\nfunction classNameToTokenList(value) {\n return new Set(value.split(CLASSNAMES_SEPARATOR).filter((str) => str.length));\n}\nfunction tokenListToClassName(values) {\n return Array.from(values).join(' ');\n}\n\n/*\n * Copyright (c) 2023, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nfunction createContextProvider(adapter) {\n return createContextProviderWithRegister(adapter, registerContextProvider);\n}\nfunction registerContextProvider(elm, adapterContextToken, onContextSubscription) {\n const vm = getAssociatedVMIfPresent(elm);\n if (!isUndefined$1(vm)) {\n elm = vm.elm;\n }\n const contextProviders = elm[HostContextProvidersKey];\n if (isUndefined$1(contextProviders)) {\n throw new Error('Unable to register context provider on provided `elm`.');\n }\n contextProviders.set(adapterContextToken, onContextSubscription);\n}\nfunction registerContextConsumer(elm, adapterContextToken, subscriptionPayload) {\n // Traverse element ancestors, looking for an element that can provide context\n // for the adapter identified by `adapterContextToken`. If found, register\n // to receive context updates from that provider.\n let currentNode = elm;\n do {\n if (currentNode[HostTypeKey] === HostNodeType.Element) {\n const subscribeToProvider = currentNode[HostContextProvidersKey].get(adapterContextToken);\n if (!isUndefined$1(subscribeToProvider)) {\n subscribeToProvider(subscriptionPayload);\n // If we find a provider, we shouldn't continue traversing\n // looking for another provider.\n break;\n }\n }\n currentNode =\n currentNode[HostTypeKey] === HostNodeType.Element\n ? currentNode[HostParentKey]\n : currentNode[HostHostKey];\n } while (!isNull(currentNode));\n}\n\n/*\n * Copyright (c) 2020, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nfunction unsupportedMethod(name) {\n return function () {\n throw new TypeError(`\"${name}\" is not supported in this environment`);\n };\n}\nfunction createElement$1(tagName, namespace) {\n return {\n [HostTypeKey]: HostNodeType.Element,\n tagName,\n [HostNamespaceKey]: namespace !== null && namespace !== void 0 ? namespace : HTML_NAMESPACE,\n [HostParentKey]: null,\n [HostShadowRootKey]: null,\n [HostChildrenKey]: [],\n [HostAttributesKey]: [],\n [HostContextProvidersKey]: new Map(),\n };\n}\nconst isNativeShadowDefined = false;\nconst isSyntheticShadowDefined = false;\nfunction insert(node, parent, anchor) {\n const nodeParent = node[HostParentKey];\n if (nodeParent !== null && nodeParent !== parent) {\n const nodeIndex = nodeParent[HostChildrenKey].indexOf(node);\n nodeParent[HostChildrenKey].splice(nodeIndex, 1);\n }\n node[HostParentKey] = parent;\n const anchorIndex = isNull(anchor) ? -1 : parent[HostChildrenKey].indexOf(anchor);\n if (anchorIndex === -1) {\n parent[HostChildrenKey].push(node);\n }\n else {\n parent[HostChildrenKey].splice(anchorIndex, 0, node);\n }\n}\nfunction remove(node, parent) {\n const nodeIndex = parent[HostChildrenKey].indexOf(node);\n parent[HostChildrenKey].splice(nodeIndex, 1);\n}\nfunction cloneNode(node) {\n // Note: no need to deep clone as cloneNode is only used for nodes of type HostNodeType.Raw.\n if (process.env.NODE_ENV !== 'production') {\n if (node[HostTypeKey] !== HostNodeType.Raw) {\n throw new TypeError(`SSR: cloneNode was called with invalid NodeType <${node[HostTypeKey]}>, only HostNodeType.Raw is supported.`);\n }\n }\n return Object.assign({}, node);\n}\nfunction createFragment(html) {\n return {\n [HostTypeKey]: HostNodeType.Raw,\n [HostParentKey]: null,\n [HostValueKey]: html,\n };\n}\nfunction createText(content) {\n return {\n [HostTypeKey]: HostNodeType.Text,\n [HostValueKey]: String(content),\n [HostParentKey]: null,\n };\n}\nfunction createComment(content) {\n return {\n [HostTypeKey]: HostNodeType.Comment,\n [HostValueKey]: content,\n [HostParentKey]: null,\n };\n}\nfunction nextSibling(node) {\n const parent = node[HostParentKey];\n if (isNull(parent)) {\n return null;\n }\n const nodeIndex = parent[HostChildrenKey].indexOf(node);\n return parent[HostChildrenKey][nodeIndex + 1] || null;\n}\nfunction attachShadow(element, config) {\n element[HostShadowRootKey] = {\n [HostTypeKey]: HostNodeType.ShadowRoot,\n [HostChildrenKey]: [],\n [HostHostKey]: element,\n mode: config.mode,\n delegatesFocus: !!config.delegatesFocus,\n };\n return element[HostShadowRootKey];\n}\nfunction getProperty(node, key) {\n var _a, _b;\n if (key in node) {\n return node[key];\n }\n if (node[HostTypeKey] === HostNodeType.Element) {\n const attrName = htmlPropertyToAttribute(key);\n // Handle all the boolean properties.\n if (isBooleanAttribute(attrName, node.tagName)) {\n return (_a = getAttribute(node, attrName)) !== null && _a !== void 0 ? _a : false;\n }\n // Handle global html attributes and AOM.\n if (isGlobalHtmlAttribute(attrName) || isAriaAttribute(attrName)) {\n return getAttribute(node, attrName);\n }\n // Handle special elements live bindings. The checked property is already handled above\n // in the boolean case.\n if (node.tagName === 'input' && key === 'value') {\n return (_b = getAttribute(node, 'value')) !== null && _b !== void 0 ? _b : '';\n }\n }\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.error(`Unexpected \"${key}\" property access from the renderer`);\n }\n}\nfunction setProperty(node, key, value) {\n if (key in node) {\n return (node[key] = value);\n }\n if (node[HostTypeKey] === HostNodeType.Element) {\n const attrName = htmlPropertyToAttribute(key);\n if (key === 'innerHTML') {\n node[HostChildrenKey] = [\n {\n [HostTypeKey]: HostNodeType.Raw,\n [HostParentKey]: node,\n [HostValueKey]: value,\n },\n ];\n return;\n }\n // Handle all the boolean properties.\n if (isBooleanAttribute(attrName, node.tagName)) {\n return value === true\n ? setAttribute(node, attrName, '')\n : removeAttribute(node, attrName);\n }\n // Handle global html attributes and AOM.\n if (isGlobalHtmlAttribute(attrName) || isAriaAttribute(attrName)) {\n return setAttribute(node, attrName, value);\n }\n // Handle special elements live bindings. The checked property is already handled above\n // in the boolean case.\n if (node.tagName === 'input' && attrName === 'value') {\n return isNull(value) || isUndefined$1(value)\n ? removeAttribute(node, 'value')\n : setAttribute(node, 'value', value);\n }\n }\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.error(`Unexpected attempt to set \"${key}=${value}\" property from the renderer`);\n }\n}\nfunction setText(node, content) {\n if (node[HostTypeKey] === HostNodeType.Text) {\n node[HostValueKey] = content;\n }\n else if (node[HostTypeKey] === HostNodeType.Element) {\n node[HostChildrenKey] = [\n {\n [HostTypeKey]: HostNodeType.Text,\n [HostParentKey]: node,\n [HostValueKey]: content,\n },\n ];\n }\n}\nfunction getAttribute(element, name, namespace = null) {\n const attribute = element[HostAttributesKey].find((attr) => attr.name === name && attr[HostNamespaceKey] === namespace);\n return attribute ? attribute.value : null;\n}\nfunction setAttribute(element, name, value, namespace = null) {\n const attribute = element[HostAttributesKey].find((attr) => attr.name === name && attr[HostNamespaceKey] === namespace);\n if (isUndefined$1(namespace)) {\n namespace = null;\n }\n if (isUndefined$1(attribute)) {\n element[HostAttributesKey].push({\n name,\n [HostNamespaceKey]: namespace,\n value: String(value),\n });\n }\n else {\n attribute.value = value;\n }\n}\nfunction removeAttribute(element, name, namespace) {\n element[HostAttributesKey] = element[HostAttributesKey].filter((attr) => attr.name !== name && attr[HostNamespaceKey] !== namespace);\n}\nfunction getClassList(element) {\n function getClassAttribute() {\n let classAttribute = element[HostAttributesKey].find((attr) => attr.name === 'class' && isNull(attr[HostNamespaceKey]));\n if (isUndefined$1(classAttribute)) {\n classAttribute = {\n name: 'class',\n [HostNamespaceKey]: null,\n value: '',\n };\n element[HostAttributesKey].push(classAttribute);\n }\n return classAttribute;\n }\n return {\n add(...names) {\n const classAttribute = getClassAttribute();\n const tokenList = classNameToTokenList(classAttribute.value);\n names.forEach((name) => tokenList.add(name));\n classAttribute.value = tokenListToClassName(tokenList);\n },\n remove(...names) {\n const classAttribute = getClassAttribute();\n const tokenList = classNameToTokenList(classAttribute.value);\n names.forEach((name) => tokenList.delete(name));\n classAttribute.value = tokenListToClassName(tokenList);\n },\n };\n}\nfunction setCSSStyleProperty(element, name, value, important) {\n const styleAttribute = element[HostAttributesKey].find((attr) => attr.name === 'style' && isNull(attr[HostNamespaceKey]));\n const serializedProperty = `${name}: ${value}${important ? ' !important' : ''}`;\n if (isUndefined$1(styleAttribute)) {\n element[HostAttributesKey].push({\n name: 'style',\n [HostNamespaceKey]: null,\n value: serializedProperty,\n });\n }\n else {\n styleAttribute.value += `; ${serializedProperty}`;\n }\n}\nfunction isConnected(node) {\n return !isNull(node[HostParentKey]);\n}\n// Noop on SSR (for now). This need to be reevaluated whenever we will implement support for\n// synthetic shadow.\nconst insertStylesheet = noop;\n// Noop on SSR.\nconst addEventListener = noop;\n// Noop on SSR.\nconst removeEventListener = noop;\nconst dispatchEvent = unsupportedMethod('dispatchEvent');\nconst getBoundingClientRect = unsupportedMethod('getBoundingClientRect');\nconst querySelector = unsupportedMethod('querySelector');\nconst querySelectorAll = unsupportedMethod('querySelectorAll');\nconst getElementsByTagName = unsupportedMethod('getElementsByTagName');\nconst getElementsByClassName = unsupportedMethod('getElementsByClassName');\nconst getChildren = unsupportedMethod('getChildren');\nconst getChildNodes = unsupportedMethod('getChildNodes');\nconst getFirstChild = unsupportedMethod('getFirstChild');\nconst getFirstElementChild = unsupportedMethod('getFirstElementChild');\nconst getLastChild = unsupportedMethod('getLastChild');\nconst getLastElementChild = unsupportedMethod('getLastElementChild');\n/* noop */\nconst assertInstanceOfHTMLElement = noop;\nconst localRegistryRecord = new Map();\nfunction createUpgradableElementConstructor(tagName) {\n return function Ctor(upgradeCallback) {\n const elm = createElement$1(tagName);\n if (isFunction$1(upgradeCallback)) {\n upgradeCallback(elm); // nothing to do with the result for now\n }\n return elm;\n };\n}\nfunction getUpgradableElement(tagName) {\n let ctor = localRegistryRecord.get(tagName);\n if (!isUndefined$1(ctor)) {\n return ctor;\n }\n ctor = createUpgradableElementConstructor(tagName);\n localRegistryRecord.set(tagName, ctor);\n return ctor;\n}\nfunction createCustomElement(tagName, upgradeCallback) {\n const UpgradableConstructor = getUpgradableElement(tagName);\n return new UpgradableConstructor(upgradeCallback);\n}\nconst ownerDocument = unsupportedMethod('ownerDocument');\nconst renderer = {\n isNativeShadowDefined,\n isSyntheticShadowDefined,\n insert,\n remove,\n cloneNode,\n createFragment,\n createElement: createElement$1,\n createText,\n createComment,\n createCustomElement,\n nextSibling,\n attachShadow,\n getProperty,\n setProperty,\n setText,\n getAttribute,\n setAttribute,\n removeAttribute,\n addEventListener,\n removeEventListener,\n dispatchEvent,\n getClassList,\n setCSSStyleProperty,\n getBoundingClientRect,\n querySelector,\n querySelectorAll,\n getElementsByTagName,\n getElementsByClassName,\n getChildren,\n getChildNodes,\n getFirstChild,\n getFirstElementChild,\n getLastChild,\n getLastElementChild,\n isConnected,\n insertStylesheet,\n assertInstanceOfHTMLElement,\n ownerDocument,\n registerContextConsumer,\n};\n\nvar unicode$3 = {};\n\nconst UNDEFINED_CODE_POINTS = [\n 0xfffe,\n 0xffff,\n 0x1fffe,\n 0x1ffff,\n 0x2fffe,\n 0x2ffff,\n 0x3fffe,\n 0x3ffff,\n 0x4fffe,\n 0x4ffff,\n 0x5fffe,\n 0x5ffff,\n 0x6fffe,\n 0x6ffff,\n 0x7fffe,\n 0x7ffff,\n 0x8fffe,\n 0x8ffff,\n 0x9fffe,\n 0x9ffff,\n 0xafffe,\n 0xaffff,\n 0xbfffe,\n 0xbffff,\n 0xcfffe,\n 0xcffff,\n 0xdfffe,\n 0xdffff,\n 0xefffe,\n 0xeffff,\n 0xffffe,\n 0xfffff,\n 0x10fffe,\n 0x10ffff\n];\n\nunicode$3.REPLACEMENT_CHARACTER = '\\uFFFD';\n\nunicode$3.CODE_POINTS = {\n EOF: -1,\n NULL: 0x00,\n TABULATION: 0x09,\n CARRIAGE_RETURN: 0x0d,\n LINE_FEED: 0x0a,\n FORM_FEED: 0x0c,\n SPACE: 0x20,\n EXCLAMATION_MARK: 0x21,\n QUOTATION_MARK: 0x22,\n NUMBER_SIGN: 0x23,\n AMPERSAND: 0x26,\n APOSTROPHE: 0x27,\n HYPHEN_MINUS: 0x2d,\n SOLIDUS: 0x2f,\n DIGIT_0: 0x30,\n DIGIT_9: 0x39,\n SEMICOLON: 0x3b,\n LESS_THAN_SIGN: 0x3c,\n EQUALS_SIGN: 0x3d,\n GREATER_THAN_SIGN: 0x3e,\n QUESTION_MARK: 0x3f,\n LATIN_CAPITAL_A: 0x41,\n LATIN_CAPITAL_F: 0x46,\n LATIN_CAPITAL_X: 0x58,\n LATIN_CAPITAL_Z: 0x5a,\n RIGHT_SQUARE_BRACKET: 0x5d,\n GRAVE_ACCENT: 0x60,\n LATIN_SMALL_A: 0x61,\n LATIN_SMALL_F: 0x66,\n LATIN_SMALL_X: 0x78,\n LATIN_SMALL_Z: 0x7a,\n REPLACEMENT_CHARACTER: 0xfffd\n};\n\nunicode$3.CODE_POINT_SEQUENCES = {\n DASH_DASH_STRING: [0x2d, 0x2d], //--\n DOCTYPE_STRING: [0x44, 0x4f, 0x43, 0x54, 0x59, 0x50, 0x45], //DOCTYPE\n CDATA_START_STRING: [0x5b, 0x43, 0x44, 0x41, 0x54, 0x41, 0x5b], //[CDATA[\n SCRIPT_STRING: [0x73, 0x63, 0x72, 0x69, 0x70, 0x74], //script\n PUBLIC_STRING: [0x50, 0x55, 0x42, 0x4c, 0x49, 0x43], //PUBLIC\n SYSTEM_STRING: [0x53, 0x59, 0x53, 0x54, 0x45, 0x4d] //SYSTEM\n};\n\n//Surrogates\nunicode$3.isSurrogate = function(cp) {\n return cp >= 0xd800 && cp <= 0xdfff;\n};\n\nunicode$3.isSurrogatePair = function(cp) {\n return cp >= 0xdc00 && cp <= 0xdfff;\n};\n\nunicode$3.getSurrogatePairCodePoint = function(cp1, cp2) {\n return (cp1 - 0xd800) * 0x400 + 0x2400 + cp2;\n};\n\n//NOTE: excluding NULL and ASCII whitespace\nunicode$3.isControlCodePoint = function(cp) {\n return (\n (cp !== 0x20 && cp !== 0x0a && cp !== 0x0d && cp !== 0x09 && cp !== 0x0c && cp >= 0x01 && cp <= 0x1f) ||\n (cp >= 0x7f && cp <= 0x9f)\n );\n};\n\nunicode$3.isUndefinedCodePoint = function(cp) {\n return (cp >= 0xfdd0 && cp <= 0xfdef) || UNDEFINED_CODE_POINTS.indexOf(cp) > -1;\n};\n\nvar errorCodes = {\n controlCharacterInInputStream: 'control-character-in-input-stream',\n noncharacterInInputStream: 'noncharacter-in-input-stream',\n surrogateInInputStream: 'surrogate-in-input-stream',\n nonVoidHtmlElementStartTagWithTrailingSolidus: 'non-void-html-element-start-tag-with-trailing-solidus',\n endTagWithAttributes: 'end-tag-with-attributes',\n endTagWithTrailingSolidus: 'end-tag-with-trailing-solidus',\n unexpectedSolidusInTag: 'unexpected-solidus-in-tag',\n unexpectedNullCharacter: 'unexpected-null-character',\n unexpectedQuestionMarkInsteadOfTagName: 'unexpected-question-mark-instead-of-tag-name',\n invalidFirstCharacterOfTagName: 'invalid-first-character-of-tag-name',\n unexpectedEqualsSignBeforeAttributeName: 'unexpected-equals-sign-before-attribute-name',\n missingEndTagName: 'missing-end-tag-name',\n unexpectedCharacterInAttributeName: 'unexpected-character-in-attribute-name',\n unknownNamedCharacterReference: 'unknown-named-character-reference',\n missingSemicolonAfterCharacterReference: 'missing-semicolon-after-character-reference',\n unexpectedCharacterAfterDoctypeSystemIdentifier: 'unexpected-character-after-doctype-system-identifier',\n unexpectedCharacterInUnquotedAttributeValue: 'unexpected-character-in-unquoted-attribute-value',\n eofBeforeTagName: 'eof-before-tag-name',\n eofInTag: 'eof-in-tag',\n missingAttributeValue: 'missing-attribute-value',\n missingWhitespaceBetweenAttributes: 'missing-whitespace-between-attributes',\n missingWhitespaceAfterDoctypePublicKeyword: 'missing-whitespace-after-doctype-public-keyword',\n missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers:\n 'missing-whitespace-between-doctype-public-and-system-identifiers',\n missingWhitespaceAfterDoctypeSystemKeyword: 'missing-whitespace-after-doctype-system-keyword',\n missingQuoteBeforeDoctypePublicIdentifier: 'missing-quote-before-doctype-public-identifier',\n missingQuoteBeforeDoctypeSystemIdentifier: 'missing-quote-before-doctype-system-identifier',\n missingDoctypePublicIdentifier: 'missing-doctype-public-identifier',\n missingDoctypeSystemIdentifier: 'missing-doctype-system-identifier',\n abruptDoctypePublicIdentifier: 'abrupt-doctype-public-identifier',\n abruptDoctypeSystemIdentifier: 'abrupt-doctype-system-identifier',\n cdataInHtmlContent: 'cdata-in-html-content',\n incorrectlyOpenedComment: 'incorrectly-opened-comment',\n eofInScriptHtmlCommentLikeText: 'eof-in-script-html-comment-like-text',\n eofInDoctype: 'eof-in-doctype',\n nestedComment: 'nested-comment',\n abruptClosingOfEmptyComment: 'abrupt-closing-of-empty-comment',\n eofInComment: 'eof-in-comment',\n incorrectlyClosedComment: 'incorrectly-closed-comment',\n eofInCdata: 'eof-in-cdata',\n absenceOfDigitsInNumericCharacterReference: 'absence-of-digits-in-numeric-character-reference',\n nullCharacterReference: 'null-character-reference',\n surrogateCharacterReference: 'surrogate-character-reference',\n characterReferenceOutsideUnicodeRange: 'character-reference-outside-unicode-range',\n controlCharacterReference: 'control-character-reference',\n noncharacterCharacterReference: 'noncharacter-character-reference',\n missingWhitespaceBeforeDoctypeName: 'missing-whitespace-before-doctype-name',\n missingDoctypeName: 'missing-doctype-name',\n invalidCharacterSequenceAfterDoctypeName: 'invalid-character-sequence-after-doctype-name',\n duplicateAttribute: 'duplicate-attribute',\n nonConformingDoctype: 'non-conforming-doctype',\n missingDoctype: 'missing-doctype',\n misplacedDoctype: 'misplaced-doctype',\n endTagWithoutMatchingOpenElement: 'end-tag-without-matching-open-element',\n closingOfElementWithOpenChildElements: 'closing-of-element-with-open-child-elements',\n disallowedContentInNoscriptInHead: 'disallowed-content-in-noscript-in-head',\n openElementsLeftAfterEof: 'open-elements-left-after-eof',\n abandonedHeadElementChild: 'abandoned-head-element-child',\n misplacedStartTagForHeadElement: 'misplaced-start-tag-for-head-element',\n nestedNoscriptInHead: 'nested-noscript-in-head',\n eofInElementThatCanContainOnlyText: 'eof-in-element-that-can-contain-only-text'\n};\n\nconst unicode$2 = unicode$3;\nconst ERR$2 = errorCodes;\n\n//Aliases\nconst $$6 = unicode$2.CODE_POINTS;\n\n//Const\nconst DEFAULT_BUFFER_WATERLINE = 1 << 16;\n\n//Preprocessor\n//NOTE: HTML input preprocessing\n//(see: http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#preprocessing-the-input-stream)\nlet Preprocessor$1 = class Preprocessor {\n constructor() {\n this.html = null;\n\n this.pos = -1;\n this.lastGapPos = -1;\n this.lastCharPos = -1;\n\n this.gapStack = [];\n\n this.skipNextNewLine = false;\n\n this.lastChunkWritten = false;\n this.endOfChunkHit = false;\n this.bufferWaterline = DEFAULT_BUFFER_WATERLINE;\n }\n\n _err() {\n // NOTE: err reporting is noop by default. Enabled by mixin.\n }\n\n _addGap() {\n this.gapStack.push(this.lastGapPos);\n this.lastGapPos = this.pos;\n }\n\n _processSurrogate(cp) {\n //NOTE: try to peek a surrogate pair\n if (this.pos !== this.lastCharPos) {\n const nextCp = this.html.charCodeAt(this.pos + 1);\n\n if (unicode$2.isSurrogatePair(nextCp)) {\n //NOTE: we have a surrogate pair. Peek pair character and recalculate code point.\n this.pos++;\n\n //NOTE: add gap that should be avoided during retreat\n this._addGap();\n\n return unicode$2.getSurrogatePairCodePoint(cp, nextCp);\n }\n }\n\n //NOTE: we are at the end of a chunk, therefore we can't infer surrogate pair yet.\n else if (!this.lastChunkWritten) {\n this.endOfChunkHit = true;\n return $$6.EOF;\n }\n\n //NOTE: isolated surrogate\n this._err(ERR$2.surrogateInInputStream);\n\n return cp;\n }\n\n dropParsedChunk() {\n if (this.pos > this.bufferWaterline) {\n this.lastCharPos -= this.pos;\n this.html = this.html.substring(this.pos);\n this.pos = 0;\n this.lastGapPos = -1;\n this.gapStack = [];\n }\n }\n\n write(chunk, isLastChunk) {\n if (this.html) {\n this.html += chunk;\n } else {\n this.html = chunk;\n }\n\n this.lastCharPos = this.html.length - 1;\n this.endOfChunkHit = false;\n this.lastChunkWritten = isLastChunk;\n }\n\n insertHtmlAtCurrentPos(chunk) {\n this.html = this.html.substring(0, this.pos + 1) + chunk + this.html.substring(this.pos + 1, this.html.length);\n\n this.lastCharPos = this.html.length - 1;\n this.endOfChunkHit = false;\n }\n\n advance() {\n this.pos++;\n\n if (this.pos > this.lastCharPos) {\n this.endOfChunkHit = !this.lastChunkWritten;\n return $$6.EOF;\n }\n\n let cp = this.html.charCodeAt(this.pos);\n\n //NOTE: any U+000A LINE FEED (LF) characters that immediately follow a U+000D CARRIAGE RETURN (CR) character\n //must be ignored.\n if (this.skipNextNewLine && cp === $$6.LINE_FEED) {\n this.skipNextNewLine = false;\n this._addGap();\n return this.advance();\n }\n\n //NOTE: all U+000D CARRIAGE RETURN (CR) characters must be converted to U+000A LINE FEED (LF) characters\n if (cp === $$6.CARRIAGE_RETURN) {\n this.skipNextNewLine = true;\n return $$6.LINE_FEED;\n }\n\n this.skipNextNewLine = false;\n\n if (unicode$2.isSurrogate(cp)) {\n cp = this._processSurrogate(cp);\n }\n\n //OPTIMIZATION: first check if code point is in the common allowed\n //range (ASCII alphanumeric, whitespaces, big chunk of BMP)\n //before going into detailed performance cost validation.\n const isCommonValidRange =\n (cp > 0x1f && cp < 0x7f) || cp === $$6.LINE_FEED || cp === $$6.CARRIAGE_RETURN || (cp > 0x9f && cp < 0xfdd0);\n\n if (!isCommonValidRange) {\n this._checkForProblematicCharacters(cp);\n }\n\n return cp;\n }\n\n _checkForProblematicCharacters(cp) {\n if (unicode$2.isControlCodePoint(cp)) {\n this._err(ERR$2.controlCharacterInInputStream);\n } else if (unicode$2.isUndefinedCodePoint(cp)) {\n this._err(ERR$2.noncharacterInInputStream);\n }\n }\n\n retreat() {\n if (this.pos === this.lastGapPos) {\n this.lastGapPos = this.gapStack.pop();\n this.pos--;\n }\n\n this.pos--;\n }\n};\n\nvar preprocessor = Preprocessor$1;\n\n//NOTE: this file contains auto-generated array mapped radix tree that is used for the named entity references consumption\n//(details: https://github.com/inikulin/parse5/tree/master/scripts/generate-named-entity-data/README.md)\nvar namedEntityData = new Uint16Array([4,52,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,106,303,412,810,1432,1701,1796,1987,2114,2360,2420,2484,3170,3251,4140,4393,4575,4610,5106,5512,5728,6117,6274,6315,6345,6427,6516,7002,7910,8733,9323,9870,10170,10631,10893,11318,11386,11467,12773,13092,14474,14922,15448,15542,16419,17666,18166,18611,19004,19095,19298,19397,4,16,69,77,97,98,99,102,103,108,109,110,111,112,114,115,116,117,140,150,158,169,176,194,199,210,216,222,226,242,256,266,283,294,108,105,103,5,198,1,59,148,1,198,80,5,38,1,59,156,1,38,99,117,116,101,5,193,1,59,167,1,193,114,101,118,101,59,1,258,4,2,105,121,182,191,114,99,5,194,1,59,189,1,194,59,1,1040,114,59,3,55349,56580,114,97,118,101,5,192,1,59,208,1,192,112,104,97,59,1,913,97,99,114,59,1,256,100,59,1,10835,4,2,103,112,232,237,111,110,59,1,260,102,59,3,55349,56632,112,108,121,70,117,110,99,116,105,111,110,59,1,8289,105,110,103,5,197,1,59,264,1,197,4,2,99,115,272,277,114,59,3,55349,56476,105,103,110,59,1,8788,105,108,100,101,5,195,1,59,292,1,195,109,108,5,196,1,59,301,1,196,4,8,97,99,101,102,111,114,115,117,321,350,354,383,388,394,400,405,4,2,99,114,327,336,107,115,108,97,115,104,59,1,8726,4,2,118,119,342,345,59,1,10983,101,100,59,1,8966,121,59,1,1041,4,3,99,114,116,362,369,379,97,117,115,101,59,1,8757,110,111,117,108,108,105,115,59,1,8492,97,59,1,914,114,59,3,55349,56581,112,102,59,3,55349,56633,101,118,101,59,1,728,99,114,59,1,8492,109,112,101,113,59,1,8782,4,14,72,79,97,99,100,101,102,104,105,108,111,114,115,117,442,447,456,504,542,547,569,573,577,616,678,784,790,796,99,121,59,1,1063,80,89,5,169,1,59,454,1,169,4,3,99,112,121,464,470,497,117,116,101,59,1,262,4,2,59,105,476,478,1,8914,116,97,108,68,105,102,102,101,114,101,110,116,105,97,108,68,59,1,8517,108,101,121,115,59,1,8493,4,4,97,101,105,111,514,520,530,535,114,111,110,59,1,268,100,105,108,5,199,1,59,528,1,199,114,99,59,1,264,110,105,110,116,59,1,8752,111,116,59,1,266,4,2,100,110,553,560,105,108,108,97,59,1,184,116,101,114,68,111,116,59,1,183,114,59,1,8493,105,59,1,935,114,99,108,101,4,4,68,77,80,84,591,596,603,609,111,116,59,1,8857,105,110,117,115,59,1,8854,108,117,115,59,1,8853,105,109,101,115,59,1,8855,111,4,2,99,115,623,646,107,119,105,115,101,67,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59,1,8754,101,67,117,114,108,121,4,2,68,81,658,671,111,117,98,108,101,81,117,111,116,101,59,1,8221,117,111,116,101,59,1,8217,4,4,108,110,112,117,688,701,736,753,111,110,4,2,59,101,696,698,1,8759,59,1,10868,4,3,103,105,116,709,717,722,114,117,101,110,116,59,1,8801,110,116,59,1,8751,111,117,114,73,110,116,101,103,114,97,108,59,1,8750,4,2,102,114,742,745,59,1,8450,111,100,117,99,116,59,1,8720,110,116,101,114,67,108,111,99,107,119,105,115,101,67,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59,1,8755,111,115,115,59,1,10799,99,114,59,3,55349,56478,112,4,2,59,67,803,805,1,8915,97,112,59,1,8781,4,11,68,74,83,90,97,99,101,102,105,111,115,834,850,855,860,865,888,903,916,921,1011,1415,4,2,59,111,840,842,1,8517,116,114,97,104,100,59,1,10513,99,121,59,1,1026,99,121,59,1,1029,99,121,59,1,1039,4,3,103,114,115,873,879,883,103,101,114,59,1,8225,114,59,1,8609,104,118,59,1,10980,4,2,97,121,894,900,114,111,110,59,1,270,59,1,1044,108,4,2,59,116,910,912,1,8711,97,59,1,916,114,59,3,55349,56583,4,2,97,102,927,998,4,2,99,109,933,992,114,105,116,105,99,97,108,4,4,65,68,71,84,950,957,978,985,99,117,116,101,59,1,180,111,4,2,116,117,964,967,59,1,729,98,108,101,65,99,117,116,101,59,1,733,114,97,118,101,59,1,96,105,108,100,101,59,1,732,111,110,100,59,1,8900,102,101,114,101,110,116,105,97,108,68,59,1,8518,4,4,112,116,117,119,1021,1026,1048,1249,102,59,3,55349,56635,4,3,59,68,69,1034,1036,1041,1,168,111,116,59,1,8412,113,117,97,108,59,1,8784,98,108,101,4,6,67,68,76,82,85,86,1065,1082,1101,1189,1211,1236,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59,1,8751,111,4,2,116,119,1089,1092,59,1,168,110,65,114,114,111,119,59,1,8659,4,2,101,111,1107,1141,102,116,4,3,65,82,84,1117,1124,1136,114,114,111,119,59,1,8656,105,103,104,116,65,114,114,111,119,59,1,8660,101,101,59,1,10980,110,103,4,2,76,82,1149,1177,101,102,116,4,2,65,82,1158,1165,114,114,111,119,59,1,10232,105,103,104,116,65,114,114,111,119,59,1,10234,105,103,104,116,65,114,114,111,119,59,1,10233,105,103,104,116,4,2,65,84,1199,1206,114,114,111,119,59,1,8658,101,101,59,1,8872,112,4,2,65,68,1218,1225,114,114,111,119,59,1,8657,111,119,110,65,114,114,111,119,59,1,8661,101,114,116,105,99,97,108,66,97,114,59,1,8741,110,4,6,65,66,76,82,84,97,1264,1292,1299,1352,1391,1408,114,114,111,119,4,3,59,66,85,1276,1278,1283,1,8595,97,114,59,1,10515,112,65,114,114,111,119,59,1,8693,114,101,118,101,59,1,785,101,102,116,4,3,82,84,86,1310,1323,1334,105,103,104,116,86,101,99,116,111,114,59,1,10576,101,101,86,101,99,116,111,114,59,1,10590,101,99,116,111,114,4,2,59,66,1345,1347,1,8637,97,114,59,1,10582,105,103,104,116,4,2,84,86,1362,1373,101,101,86,101,99,116,111,114,59,1,10591,101,99,116,111,114,4,2,59,66,1384,1386,1,8641,97,114,59,1,10583,101,101,4,2,59,65,1399,1401,1,8868,114,114,111,119,59,1,8615,114,114,111,119,59,1,8659,4,2,99,116,1421,1426,114,59,3,55349,56479,114,111,107,59,1,272,4,16,78,84,97,99,100,102,103,108,109,111,112,113,115,116,117,120,1466,1470,1478,1489,1515,1520,1525,1536,1544,1593,1609,1617,1650,1664,1668,1677,71,59,1,330,72,5,208,1,59,1476,1,208,99,117,116,101,5,201,1,59,1487,1,201,4,3,97,105,121,1497,1503,1512,114,111,110,59,1,282,114,99,5,202,1,59,1510,1,202,59,1,1069,111,116,59,1,278,114,59,3,55349,56584,114,97,118,101,5,200,1,59,1534,1,200,101,109,101,110,116,59,1,8712,4,2,97,112,1550,1555,99,114,59,1,274,116,121,4,2,83,86,1563,1576,109,97,108,108,83,113,117,97,114,101,59,1,9723,101,114,121,83,109,97,108,108,83,113,117,97,114,101,59,1,9643,4,2,103,112,1599,1604,111,110,59,1,280,102,59,3,55349,56636,115,105,108,111,110,59,1,917,117,4,2,97,105,1624,1640,108,4,2,59,84,1631,1633,1,10869,105,108,100,101,59,1,8770,108,105,98,114,105,117,109,59,1,8652,4,2,99,105,1656,1660,114,59,1,8496,109,59,1,10867,97,59,1,919,109,108,5,203,1,59,1675,1,203,4,2,105,112,1683,1689,115,116,115,59,1,8707,111,110,101,110,116,105,97,108,69,59,1,8519,4,5,99,102,105,111,115,1713,1717,1722,1762,1791,121,59,1,1060,114,59,3,55349,56585,108,108,101,100,4,2,83,86,1732,1745,109,97,108,108,83,113,117,97,114,101,59,1,9724,101,114,121,83,109,97,108,108,83,113,117,97,114,101,59,1,9642,4,3,112,114,117,1770,1775,1781,102,59,3,55349,56637,65,108,108,59,1,8704,114,105,101,114,116,114,102,59,1,8497,99,114,59,1,8497,4,12,74,84,97,98,99,100,102,103,111,114,115,116,1822,1827,1834,1848,1855,1877,1882,1887,1890,1896,1978,1984,99,121,59,1,1027,5,62,1,59,1832,1,62,109,109,97,4,2,59,100,1843,1845,1,915,59,1,988,114,101,118,101,59,1,286,4,3,101,105,121,1863,1869,1874,100,105,108,59,1,290,114,99,59,1,284,59,1,1043,111,116,59,1,288,114,59,3,55349,56586,59,1,8921,112,102,59,3,55349,56638,101,97,116,101,114,4,6,69,70,71,76,83,84,1915,1933,1944,1953,1959,1971,113,117,97,108,4,2,59,76,1925,1927,1,8805,101,115,115,59,1,8923,117,108,108,69,113,117,97,108,59,1,8807,114,101,97,116,101,114,59,1,10914,101,115,115,59,1,8823,108,97,110,116,69,113,117,97,108,59,1,10878,105,108,100,101,59,1,8819,99,114,59,3,55349,56482,59,1,8811,4,8,65,97,99,102,105,111,115,117,2005,2012,2026,2032,2036,2049,2073,2089,82,68,99,121,59,1,1066,4,2,99,116,2018,2023,101,107,59,1,711,59,1,94,105,114,99,59,1,292,114,59,1,8460,108,98,101,114,116,83,112,97,99,101,59,1,8459,4,2,112,114,2055,2059,102,59,1,8461,105,122,111,110,116,97,108,76,105,110,101,59,1,9472,4,2,99,116,2079,2083,114,59,1,8459,114,111,107,59,1,294,109,112,4,2,68,69,2097,2107,111,119,110,72,117,109,112,59,1,8782,113,117,97,108,59,1,8783,4,14,69,74,79,97,99,100,102,103,109,110,111,115,116,117,2144,2149,2155,2160,2171,2189,2194,2198,2209,2245,2307,2329,2334,2341,99,121,59,1,1045,108,105,103,59,1,306,99,121,59,1,1025,99,117,116,101,5,205,1,59,2169,1,205,4,2,105,121,2177,2186,114,99,5,206,1,59,2184,1,206,59,1,1048,111,116,59,1,304,114,59,1,8465,114,97,118,101,5,204,1,59,2207,1,204,4,3,59,97,112,2217,2219,2238,1,8465,4,2,99,103,2225,2229,114,59,1,298,105,110,97,114,121,73,59,1,8520,108,105,101,115,59,1,8658,4,2,116,118,2251,2281,4,2,59,101,2257,2259,1,8748,4,2,103,114,2265,2271,114,97,108,59,1,8747,115,101,99,116,105,111,110,59,1,8898,105,115,105,98,108,101,4,2,67,84,2293,2300,111,109,109,97,59,1,8291,105,109,101,115,59,1,8290,4,3,103,112,116,2315,2320,2325,111,110,59,1,302,102,59,3,55349,56640,97,59,1,921,99,114,59,1,8464,105,108,100,101,59,1,296,4,2,107,109,2347,2352,99,121,59,1,1030,108,5,207,1,59,2358,1,207,4,5,99,102,111,115,117,2372,2386,2391,2397,2414,4,2,105,121,2378,2383,114,99,59,1,308,59,1,1049,114,59,3,55349,56589,112,102,59,3,55349,56641,4,2,99,101,2403,2408,114,59,3,55349,56485,114,99,121,59,1,1032,107,99,121,59,1,1028,4,7,72,74,97,99,102,111,115,2436,2441,2446,2452,2467,2472,2478,99,121,59,1,1061,99,121,59,1,1036,112,112,97,59,1,922,4,2,101,121,2458,2464,100,105,108,59,1,310,59,1,1050,114,59,3,55349,56590,112,102,59,3,55349,56642,99,114,59,3,55349,56486,4,11,74,84,97,99,101,102,108,109,111,115,116,2508,2513,2520,2562,2585,2981,2986,3004,3011,3146,3167,99,121,59,1,1033,5,60,1,59,2518,1,60,4,5,99,109,110,112,114,2532,2538,2544,2548,2558,117,116,101,59,1,313,98,100,97,59,1,923,103,59,1,10218,108,97,99,101,116,114,102,59,1,8466,114,59,1,8606,4,3,97,101,121,2570,2576,2582,114,111,110,59,1,317,100,105,108,59,1,315,59,1,1051,4,2,102,115,2591,2907,116,4,10,65,67,68,70,82,84,85,86,97,114,2614,2663,2672,2728,2735,2760,2820,2870,2888,2895,4,2,110,114,2620,2633,103,108,101,66,114,97,99,107,101,116,59,1,10216,114,111,119,4,3,59,66,82,2644,2646,2651,1,8592,97,114,59,1,8676,105,103,104,116,65,114,114,111,119,59,1,8646,101,105,108,105,110,103,59,1,8968,111,4,2,117,119,2679,2692,98,108,101,66,114,97,99,107,101,116,59,1,10214,110,4,2,84,86,2699,2710,101,101,86,101,99,116,111,114,59,1,10593,101,99,116,111,114,4,2,59,66,2721,2723,1,8643,97,114,59,1,10585,108,111,111,114,59,1,8970,105,103,104,116,4,2,65,86,2745,2752,114,114,111,119,59,1,8596,101,99,116,111,114,59,1,10574,4,2,101,114,2766,2792,101,4,3,59,65,86,2775,2777,2784,1,8867,114,114,111,119,59,1,8612,101,99,116,111,114,59,1,10586,105,97,110,103,108,101,4,3,59,66,69,2806,2808,2813,1,8882,97,114,59,1,10703,113,117,97,108,59,1,8884,112,4,3,68,84,86,2829,2841,2852,111,119,110,86,101,99,116,111,114,59,1,10577,101,101,86,101,99,116,111,114,59,1,10592,101,99,116,111,114,4,2,59,66,2863,2865,1,8639,97,114,59,1,10584,101,99,116,111,114,4,2,59,66,2881,2883,1,8636,97,114,59,1,10578,114,114,111,119,59,1,8656,105,103,104,116,97,114,114,111,119,59,1,8660,115,4,6,69,70,71,76,83,84,2922,2936,2947,2956,2962,2974,113,117,97,108,71,114,101,97,116,101,114,59,1,8922,117,108,108,69,113,117,97,108,59,1,8806,114,101,97,116,101,114,59,1,8822,101,115,115,59,1,10913,108,97,110,116,69,113,117,97,108,59,1,10877,105,108,100,101,59,1,8818,114,59,3,55349,56591,4,2,59,101,2992,2994,1,8920,102,116,97,114,114,111,119,59,1,8666,105,100,111,116,59,1,319,4,3,110,112,119,3019,3110,3115,103,4,4,76,82,108,114,3030,3058,3070,3098,101,102,116,4,2,65,82,3039,3046,114,114,111,119,59,1,10229,105,103,104,116,65,114,114,111,119,59,1,10231,105,103,104,116,65,114,114,111,119,59,1,10230,101,102,116,4,2,97,114,3079,3086,114,114,111,119,59,1,10232,105,103,104,116,97,114,114,111,119,59,1,10234,105,103,104,116,97,114,114,111,119,59,1,10233,102,59,3,55349,56643,101,114,4,2,76,82,3123,3134,101,102,116,65,114,114,111,119,59,1,8601,105,103,104,116,65,114,114,111,119,59,1,8600,4,3,99,104,116,3154,3158,3161,114,59,1,8466,59,1,8624,114,111,107,59,1,321,59,1,8810,4,8,97,99,101,102,105,111,115,117,3188,3192,3196,3222,3227,3237,3243,3248,112,59,1,10501,121,59,1,1052,4,2,100,108,3202,3213,105,117,109,83,112,97,99,101,59,1,8287,108,105,110,116,114,102,59,1,8499,114,59,3,55349,56592,110,117,115,80,108,117,115,59,1,8723,112,102,59,3,55349,56644,99,114,59,1,8499,59,1,924,4,9,74,97,99,101,102,111,115,116,117,3271,3276,3283,3306,3422,3427,4120,4126,4137,99,121,59,1,1034,99,117,116,101,59,1,323,4,3,97,101,121,3291,3297,3303,114,111,110,59,1,327,100,105,108,59,1,325,59,1,1053,4,3,103,115,119,3314,3380,3415,97,116,105,118,101,4,3,77,84,86,3327,3340,3365,101,100,105,117,109,83,112,97,99,101,59,1,8203,104,105,4,2,99,110,3348,3357,107,83,112,97,99,101,59,1,8203,83,112,97,99,101,59,1,8203,101,114,121,84,104,105,110,83,112,97,99,101,59,1,8203,116,101,100,4,2,71,76,3389,3405,114,101,97,116,101,114,71,114,101,97,116,101,114,59,1,8811,101,115,115,76,101,115,115,59,1,8810,76,105,110,101,59,1,10,114,59,3,55349,56593,4,4,66,110,112,116,3437,3444,3460,3464,114,101,97,107,59,1,8288,66,114,101,97,107,105,110,103,83,112,97,99,101,59,1,160,102,59,1,8469,4,13,59,67,68,69,71,72,76,78,80,82,83,84,86,3492,3494,3517,3536,3578,3657,3685,3784,3823,3860,3915,4066,4107,1,10988,4,2,111,117,3500,3510,110,103,114,117,101,110,116,59,1,8802,112,67,97,112,59,1,8813,111,117,98,108,101,86,101,114,116,105,99,97,108,66,97,114,59,1,8742,4,3,108,113,120,3544,3552,3571,101,109,101,110,116,59,1,8713,117,97,108,4,2,59,84,3561,3563,1,8800,105,108,100,101,59,3,8770,824,105,115,116,115,59,1,8708,114,101,97,116,101,114,4,7,59,69,70,71,76,83,84,3600,3602,3609,3621,3631,3637,3650,1,8815,113,117,97,108,59,1,8817,117,108,108,69,113,117,97,108,59,3,8807,824,114,101,97,116,101,114,59,3,8811,824,101,115,115,59,1,8825,108,97,110,116,69,113,117,97,108,59,3,10878,824,105,108,100,101,59,1,8821,117,109,112,4,2,68,69,3666,3677,111,119,110,72,117,109,112,59,3,8782,824,113,117,97,108,59,3,8783,824,101,4,2,102,115,3692,3724,116,84,114,105,97,110,103,108,101,4,3,59,66,69,3709,3711,3717,1,8938,97,114,59,3,10703,824,113,117,97,108,59,1,8940,115,4,6,59,69,71,76,83,84,3739,3741,3748,3757,3764,3777,1,8814,113,117,97,108,59,1,8816,114,101,97,116,101,114,59,1,8824,101,115,115,59,3,8810,824,108,97,110,116,69,113,117,97,108,59,3,10877,824,105,108,100,101,59,1,8820,101,115,116,101,100,4,2,71,76,3795,3812,114,101,97,116,101,114,71,114,101,97,116,101,114,59,3,10914,824,101,115,115,76,101,115,115,59,3,10913,824,114,101,99,101,100,101,115,4,3,59,69,83,3838,3840,3848,1,8832,113,117,97,108,59,3,10927,824,108,97,110,116,69,113,117,97,108,59,1,8928,4,2,101,105,3866,3881,118,101,114,115,101,69,108,101,109,101,110,116,59,1,8716,103,104,116,84,114,105,97,110,103,108,101,4,3,59,66,69,3900,3902,3908,1,8939,97,114,59,3,10704,824,113,117,97,108,59,1,8941,4,2,113,117,3921,3973,117,97,114,101,83,117,4,2,98,112,3933,3952,115,101,116,4,2,59,69,3942,3945,3,8847,824,113,117,97,108,59,1,8930,101,114,115,101,116,4,2,59,69,3963,3966,3,8848,824,113,117,97,108,59,1,8931,4,3,98,99,112,3981,4000,4045,115,101,116,4,2,59,69,3990,3993,3,8834,8402,113,117,97,108,59,1,8840,99,101,101,100,115,4,4,59,69,83,84,4015,4017,4025,4037,1,8833,113,117,97,108,59,3,10928,824,108,97,110,116,69,113,117,97,108,59,1,8929,105,108,100,101,59,3,8831,824,101,114,115,101,116,4,2,59,69,4056,4059,3,8835,8402,113,117,97,108,59,1,8841,105,108,100,101,4,4,59,69,70,84,4080,4082,4089,4100,1,8769,113,117,97,108,59,1,8772,117,108,108,69,113,117,97,108,59,1,8775,105,108,100,101,59,1,8777,101,114,116,105,99,97,108,66,97,114,59,1,8740,99,114,59,3,55349,56489,105,108,100,101,5,209,1,59,4135,1,209,59,1,925,4,14,69,97,99,100,102,103,109,111,112,114,115,116,117,118,4170,4176,4187,4205,4212,4217,4228,4253,4259,4292,4295,4316,4337,4346,108,105,103,59,1,338,99,117,116,101,5,211,1,59,4185,1,211,4,2,105,121,4193,4202,114,99,5,212,1,59,4200,1,212,59,1,1054,98,108,97,99,59,1,336,114,59,3,55349,56594,114,97,118,101,5,210,1,59,4226,1,210,4,3,97,101,105,4236,4241,4246,99,114,59,1,332,103,97,59,1,937,99,114,111,110,59,1,927,112,102,59,3,55349,56646,101,110,67,117,114,108,121,4,2,68,81,4272,4285,111,117,98,108,101,81,117,111,116,101,59,1,8220,117,111,116,101,59,1,8216,59,1,10836,4,2,99,108,4301,4306,114,59,3,55349,56490,97,115,104,5,216,1,59,4314,1,216,105,4,2,108,109,4323,4332,100,101,5,213,1,59,4330,1,213,101,115,59,1,10807,109,108,5,214,1,59,4344,1,214,101,114,4,2,66,80,4354,4380,4,2,97,114,4360,4364,114,59,1,8254,97,99,4,2,101,107,4372,4375,59,1,9182,101,116,59,1,9140,97,114,101,110,116,104,101,115,105,115,59,1,9180,4,9,97,99,102,104,105,108,111,114,115,4413,4422,4426,4431,4435,4438,4448,4471,4561,114,116,105,97,108,68,59,1,8706,121,59,1,1055,114,59,3,55349,56595,105,59,1,934,59,1,928,117,115,77,105,110,117,115,59,1,177,4,2,105,112,4454,4467,110,99,97,114,101,112,108,97,110,101,59,1,8460,102,59,1,8473,4,4,59,101,105,111,4481,4483,4526,4531,1,10939,99,101,100,101,115,4,4,59,69,83,84,4498,4500,4507,4519,1,8826,113,117,97,108,59,1,10927,108,97,110,116,69,113,117,97,108,59,1,8828,105,108,100,101,59,1,8830,109,101,59,1,8243,4,2,100,112,4537,4543,117,99,116,59,1,8719,111,114,116,105,111,110,4,2,59,97,4555,4557,1,8759,108,59,1,8733,4,2,99,105,4567,4572,114,59,3,55349,56491,59,1,936,4,4,85,102,111,115,4585,4594,4599,4604,79,84,5,34,1,59,4592,1,34,114,59,3,55349,56596,112,102,59,1,8474,99,114,59,3,55349,56492,4,12,66,69,97,99,101,102,104,105,111,114,115,117,4636,4642,4650,4681,4704,4763,4767,4771,5047,5069,5081,5094,97,114,114,59,1,10512,71,5,174,1,59,4648,1,174,4,3,99,110,114,4658,4664,4668,117,116,101,59,1,340,103,59,1,10219,114,4,2,59,116,4675,4677,1,8608,108,59,1,10518,4,3,97,101,121,4689,4695,4701,114,111,110,59,1,344,100,105,108,59,1,342,59,1,1056,4,2,59,118,4710,4712,1,8476,101,114,115,101,4,2,69,85,4722,4748,4,2,108,113,4728,4736,101,109,101,110,116,59,1,8715,117,105,108,105,98,114,105,117,109,59,1,8651,112,69,113,117,105,108,105,98,114,105,117,109,59,1,10607,114,59,1,8476,111,59,1,929,103,104,116,4,8,65,67,68,70,84,85,86,97,4792,4840,4849,4905,4912,4972,5022,5040,4,2,110,114,4798,4811,103,108,101,66,114,97,99,107,101,116,59,1,10217,114,111,119,4,3,59,66,76,4822,4824,4829,1,8594,97,114,59,1,8677,101,102,116,65,114,114,111,119,59,1,8644,101,105,108,105,110,103,59,1,8969,111,4,2,117,119,4856,4869,98,108,101,66,114,97,99,107,101,116,59,1,10215,110,4,2,84,86,4876,4887,101,101,86,101,99,116,111,114,59,1,10589,101,99,116,111,114,4,2,59,66,4898,4900,1,8642,97,114,59,1,10581,108,111,111,114,59,1,8971,4,2,101,114,4918,4944,101,4,3,59,65,86,4927,4929,4936,1,8866,114,114,111,119,59,1,8614,101,99,116,111,114,59,1,10587,105,97,110,103,108,101,4,3,59,66,69,4958,4960,4965,1,8883,97,114,59,1,10704,113,117,97,108,59,1,8885,112,4,3,68,84,86,4981,4993,5004,111,119,110,86,101,99,116,111,114,59,1,10575,101,101,86,101,99,116,111,114,59,1,10588,101,99,116,111,114,4,2,59,66,5015,5017,1,8638,97,114,59,1,10580,101,99,116,111,114,4,2,59,66,5033,5035,1,8640,97,114,59,1,10579,114,114,111,119,59,1,8658,4,2,112,117,5053,5057,102,59,1,8477,110,100,73,109,112,108,105,101,115,59,1,10608,105,103,104,116,97,114,114,111,119,59,1,8667,4,2,99,104,5087,5091,114,59,1,8475,59,1,8625,108,101,68,101,108,97,121,101,100,59,1,10740,4,13,72,79,97,99,102,104,105,109,111,113,115,116,117,5134,5150,5157,5164,5198,5203,5259,5265,5277,5283,5374,5380,5385,4,2,67,99,5140,5146,72,99,121,59,1,1065,121,59,1,1064,70,84,99,121,59,1,1068,99,117,116,101,59,1,346,4,5,59,97,101,105,121,5176,5178,5184,5190,5195,1,10940,114,111,110,59,1,352,100,105,108,59,1,350,114,99,59,1,348,59,1,1057,114,59,3,55349,56598,111,114,116,4,4,68,76,82,85,5216,5227,5238,5250,111,119,110,65,114,114,111,119,59,1,8595,101,102,116,65,114,114,111,119,59,1,8592,105,103,104,116,65,114,114,111,119,59,1,8594,112,65,114,114,111,119,59,1,8593,103,109,97,59,1,931,97,108,108,67,105,114,99,108,101,59,1,8728,112,102,59,3,55349,56650,4,2,114,117,5289,5293,116,59,1,8730,97,114,101,4,4,59,73,83,85,5306,5308,5322,5367,1,9633,110,116,101,114,115,101,99,116,105,111,110,59,1,8851,117,4,2,98,112,5329,5347,115,101,116,4,2,59,69,5338,5340,1,8847,113,117,97,108,59,1,8849,101,114,115,101,116,4,2,59,69,5358,5360,1,8848,113,117,97,108,59,1,8850,110,105,111,110,59,1,8852,99,114,59,3,55349,56494,97,114,59,1,8902,4,4,98,99,109,112,5395,5420,5475,5478,4,2,59,115,5401,5403,1,8912,101,116,4,2,59,69,5411,5413,1,8912,113,117,97,108,59,1,8838,4,2,99,104,5426,5468,101,101,100,115,4,4,59,69,83,84,5440,5442,5449,5461,1,8827,113,117,97,108,59,1,10928,108,97,110,116,69,113,117,97,108,59,1,8829,105,108,100,101,59,1,8831,84,104,97,116,59,1,8715,59,1,8721,4,3,59,101,115,5486,5488,5507,1,8913,114,115,101,116,4,2,59,69,5498,5500,1,8835,113,117,97,108,59,1,8839,101,116,59,1,8913,4,11,72,82,83,97,99,102,104,105,111,114,115,5536,5546,5552,5567,5579,5602,5607,5655,5695,5701,5711,79,82,78,5,222,1,59,5544,1,222,65,68,69,59,1,8482,4,2,72,99,5558,5563,99,121,59,1,1035,121,59,1,1062,4,2,98,117,5573,5576,59,1,9,59,1,932,4,3,97,101,121,5587,5593,5599,114,111,110,59,1,356,100,105,108,59,1,354,59,1,1058,114,59,3,55349,56599,4,2,101,105,5613,5631,4,2,114,116,5619,5627,101,102,111,114,101,59,1,8756,97,59,1,920,4,2,99,110,5637,5647,107,83,112,97,99,101,59,3,8287,8202,83,112,97,99,101,59,1,8201,108,100,101,4,4,59,69,70,84,5668,5670,5677,5688,1,8764,113,117,97,108,59,1,8771,117,108,108,69,113,117,97,108,59,1,8773,105,108,100,101,59,1,8776,112,102,59,3,55349,56651,105,112,108,101,68,111,116,59,1,8411,4,2,99,116,5717,5722,114,59,3,55349,56495,114,111,107,59,1,358,4,14,97,98,99,100,102,103,109,110,111,112,114,115,116,117,5758,5789,5805,5823,5830,5835,5846,5852,5921,5937,6089,6095,6101,6108,4,2,99,114,5764,5774,117,116,101,5,218,1,59,5772,1,218,114,4,2,59,111,5781,5783,1,8607,99,105,114,59,1,10569,114,4,2,99,101,5796,5800,121,59,1,1038,118,101,59,1,364,4,2,105,121,5811,5820,114,99,5,219,1,59,5818,1,219,59,1,1059,98,108,97,99,59,1,368,114,59,3,55349,56600,114,97,118,101,5,217,1,59,5844,1,217,97,99,114,59,1,362,4,2,100,105,5858,5905,101,114,4,2,66,80,5866,5892,4,2,97,114,5872,5876,114,59,1,95,97,99,4,2,101,107,5884,5887,59,1,9183,101,116,59,1,9141,97,114,101,110,116,104,101,115,105,115,59,1,9181,111,110,4,2,59,80,5913,5915,1,8899,108,117,115,59,1,8846,4,2,103,112,5927,5932,111,110,59,1,370,102,59,3,55349,56652,4,8,65,68,69,84,97,100,112,115,5955,5985,5996,6009,6026,6033,6044,6075,114,114,111,119,4,3,59,66,68,5967,5969,5974,1,8593,97,114,59,1,10514,111,119,110,65,114,114,111,119,59,1,8645,111,119,110,65,114,114,111,119,59,1,8597,113,117,105,108,105,98,114,105,117,109,59,1,10606,101,101,4,2,59,65,6017,6019,1,8869,114,114,111,119,59,1,8613,114,114,111,119,59,1,8657,111,119,110,97,114,114,111,119,59,1,8661,101,114,4,2,76,82,6052,6063,101,102,116,65,114,114,111,119,59,1,8598,105,103,104,116,65,114,114,111,119,59,1,8599,105,4,2,59,108,6082,6084,1,978,111,110,59,1,933,105,110,103,59,1,366,99,114,59,3,55349,56496,105,108,100,101,59,1,360,109,108,5,220,1,59,6115,1,220,4,9,68,98,99,100,101,102,111,115,118,6137,6143,6148,6152,6166,6250,6255,6261,6267,97,115,104,59,1,8875,97,114,59,1,10987,121,59,1,1042,97,115,104,4,2,59,108,6161,6163,1,8873,59,1,10982,4,2,101,114,6172,6175,59,1,8897,4,3,98,116,121,6183,6188,6238,97,114,59,1,8214,4,2,59,105,6194,6196,1,8214,99,97,108,4,4,66,76,83,84,6209,6214,6220,6231,97,114,59,1,8739,105,110,101,59,1,124,101,112,97,114,97,116,111,114,59,1,10072,105,108,100,101,59,1,8768,84,104,105,110,83,112,97,99,101,59,1,8202,114,59,3,55349,56601,112,102,59,3,55349,56653,99,114,59,3,55349,56497,100,97,115,104,59,1,8874,4,5,99,101,102,111,115,6286,6292,6298,6303,6309,105,114,99,59,1,372,100,103,101,59,1,8896,114,59,3,55349,56602,112,102,59,3,55349,56654,99,114,59,3,55349,56498,4,4,102,105,111,115,6325,6330,6333,6339,114,59,3,55349,56603,59,1,926,112,102,59,3,55349,56655,99,114,59,3,55349,56499,4,9,65,73,85,97,99,102,111,115,117,6365,6370,6375,6380,6391,6405,6410,6416,6422,99,121,59,1,1071,99,121,59,1,1031,99,121,59,1,1070,99,117,116,101,5,221,1,59,6389,1,221,4,2,105,121,6397,6402,114,99,59,1,374,59,1,1067,114,59,3,55349,56604,112,102,59,3,55349,56656,99,114,59,3,55349,56500,109,108,59,1,376,4,8,72,97,99,100,101,102,111,115,6445,6450,6457,6472,6477,6501,6505,6510,99,121,59,1,1046,99,117,116,101,59,1,377,4,2,97,121,6463,6469,114,111,110,59,1,381,59,1,1047,111,116,59,1,379,4,2,114,116,6483,6497,111,87,105,100,116,104,83,112,97,99,101,59,1,8203,97,59,1,918,114,59,1,8488,112,102,59,1,8484,99,114,59,3,55349,56501,4,16,97,98,99,101,102,103,108,109,110,111,112,114,115,116,117,119,6550,6561,6568,6612,6622,6634,6645,6672,6699,6854,6870,6923,6933,6963,6974,6983,99,117,116,101,5,225,1,59,6559,1,225,114,101,118,101,59,1,259,4,6,59,69,100,105,117,121,6582,6584,6588,6591,6600,6609,1,8766,59,3,8766,819,59,1,8767,114,99,5,226,1,59,6598,1,226,116,101,5,180,1,59,6607,1,180,59,1,1072,108,105,103,5,230,1,59,6620,1,230,4,2,59,114,6628,6630,1,8289,59,3,55349,56606,114,97,118,101,5,224,1,59,6643,1,224,4,2,101,112,6651,6667,4,2,102,112,6657,6663,115,121,109,59,1,8501,104,59,1,8501,104,97,59,1,945,4,2,97,112,6678,6692,4,2,99,108,6684,6688,114,59,1,257,103,59,1,10815,5,38,1,59,6697,1,38,4,2,100,103,6705,6737,4,5,59,97,100,115,118,6717,6719,6724,6727,6734,1,8743,110,100,59,1,10837,59,1,10844,108,111,112,101,59,1,10840,59,1,10842,4,7,59,101,108,109,114,115,122,6753,6755,6758,6762,6814,6835,6848,1,8736,59,1,10660,101,59,1,8736,115,100,4,2,59,97,6770,6772,1,8737,4,8,97,98,99,100,101,102,103,104,6790,6793,6796,6799,6802,6805,6808,6811,59,1,10664,59,1,10665,59,1,10666,59,1,10667,59,1,10668,59,1,10669,59,1,10670,59,1,10671,116,4,2,59,118,6821,6823,1,8735,98,4,2,59,100,6830,6832,1,8894,59,1,10653,4,2,112,116,6841,6845,104,59,1,8738,59,1,197,97,114,114,59,1,9084,4,2,103,112,6860,6865,111,110,59,1,261,102,59,3,55349,56658,4,7,59,69,97,101,105,111,112,6886,6888,6891,6897,6900,6904,6908,1,8776,59,1,10864,99,105,114,59,1,10863,59,1,8778,100,59,1,8779,115,59,1,39,114,111,120,4,2,59,101,6917,6919,1,8776,113,59,1,8778,105,110,103,5,229,1,59,6931,1,229,4,3,99,116,121,6941,6946,6949,114,59,3,55349,56502,59,1,42,109,112,4,2,59,101,6957,6959,1,8776,113,59,1,8781,105,108,100,101,5,227,1,59,6972,1,227,109,108,5,228,1,59,6981,1,228,4,2,99,105,6989,6997,111,110,105,110,116,59,1,8755,110,116,59,1,10769,4,16,78,97,98,99,100,101,102,105,107,108,110,111,112,114,115,117,7036,7041,7119,7135,7149,7155,7219,7224,7347,7354,7463,7489,7786,7793,7814,7866,111,116,59,1,10989,4,2,99,114,7047,7094,107,4,4,99,101,112,115,7058,7064,7073,7080,111,110,103,59,1,8780,112,115,105,108,111,110,59,1,1014,114,105,109,101,59,1,8245,105,109,4,2,59,101,7088,7090,1,8765,113,59,1,8909,4,2,118,119,7100,7105,101,101,59,1,8893,101,100,4,2,59,103,7113,7115,1,8965,101,59,1,8965,114,107,4,2,59,116,7127,7129,1,9141,98,114,107,59,1,9142,4,2,111,121,7141,7146,110,103,59,1,8780,59,1,1073,113,117,111,59,1,8222,4,5,99,109,112,114,116,7167,7181,7188,7193,7199,97,117,115,4,2,59,101,7176,7178,1,8757,59,1,8757,112,116,121,118,59,1,10672,115,105,59,1,1014,110,111,117,59,1,8492,4,3,97,104,119,7207,7210,7213,59,1,946,59,1,8502,101,101,110,59,1,8812,114,59,3,55349,56607,103,4,7,99,111,115,116,117,118,119,7241,7262,7288,7305,7328,7335,7340,4,3,97,105,117,7249,7253,7258,112,59,1,8898,114,99,59,1,9711,112,59,1,8899,4,3,100,112,116,7270,7275,7281,111,116,59,1,10752,108,117,115,59,1,10753,105,109,101,115,59,1,10754,4,2,113,116,7294,7300,99,117,112,59,1,10758,97,114,59,1,9733,114,105,97,110,103,108,101,4,2,100,117,7318,7324,111,119,110,59,1,9661,112,59,1,9651,112,108,117,115,59,1,10756,101,101,59,1,8897,101,100,103,101,59,1,8896,97,114,111,119,59,1,10509,4,3,97,107,111,7362,7436,7458,4,2,99,110,7368,7432,107,4,3,108,115,116,7377,7386,7394,111,122,101,110,103,101,59,1,10731,113,117,97,114,101,59,1,9642,114,105,97,110,103,108,101,4,4,59,100,108,114,7411,7413,7419,7425,1,9652,111,119,110,59,1,9662,101,102,116,59,1,9666,105,103,104,116,59,1,9656,107,59,1,9251,4,2,49,51,7442,7454,4,2,50,52,7448,7451,59,1,9618,59,1,9617,52,59,1,9619,99,107,59,1,9608,4,2,101,111,7469,7485,4,2,59,113,7475,7478,3,61,8421,117,105,118,59,3,8801,8421,116,59,1,8976,4,4,112,116,119,120,7499,7504,7517,7523,102,59,3,55349,56659,4,2,59,116,7510,7512,1,8869,111,109,59,1,8869,116,105,101,59,1,8904,4,12,68,72,85,86,98,100,104,109,112,116,117,118,7549,7571,7597,7619,7655,7660,7682,7708,7715,7721,7728,7750,4,4,76,82,108,114,7559,7562,7565,7568,59,1,9559,59,1,9556,59,1,9558,59,1,9555,4,5,59,68,85,100,117,7583,7585,7588,7591,7594,1,9552,59,1,9574,59,1,9577,59,1,9572,59,1,9575,4,4,76,82,108,114,7607,7610,7613,7616,59,1,9565,59,1,9562,59,1,9564,59,1,9561,4,7,59,72,76,82,104,108,114,7635,7637,7640,7643,7646,7649,7652,1,9553,59,1,9580,59,1,9571,59,1,9568,59,1,9579,59,1,9570,59,1,9567,111,120,59,1,10697,4,4,76,82,108,114,7670,7673,7676,7679,59,1,9557,59,1,9554,59,1,9488,59,1,9484,4,5,59,68,85,100,117,7694,7696,7699,7702,7705,1,9472,59,1,9573,59,1,9576,59,1,9516,59,1,9524,105,110,117,115,59,1,8863,108,117,115,59,1,8862,105,109,101,115,59,1,8864,4,4,76,82,108,114,7738,7741,7744,7747,59,1,9563,59,1,9560,59,1,9496,59,1,9492,4,7,59,72,76,82,104,108,114,7766,7768,7771,7774,7777,7780,7783,1,9474,59,1,9578,59,1,9569,59,1,9566,59,1,9532,59,1,9508,59,1,9500,114,105,109,101,59,1,8245,4,2,101,118,7799,7804,118,101,59,1,728,98,97,114,5,166,1,59,7812,1,166,4,4,99,101,105,111,7824,7829,7834,7846,114,59,3,55349,56503,109,105,59,1,8271,109,4,2,59,101,7841,7843,1,8765,59,1,8909,108,4,3,59,98,104,7855,7857,7860,1,92,59,1,10693,115,117,98,59,1,10184,4,2,108,109,7872,7885,108,4,2,59,101,7879,7881,1,8226,116,59,1,8226,112,4,3,59,69,101,7894,7896,7899,1,8782,59,1,10926,4,2,59,113,7905,7907,1,8783,59,1,8783,4,15,97,99,100,101,102,104,105,108,111,114,115,116,117,119,121,7942,8021,8075,8080,8121,8126,8157,8279,8295,8430,8446,8485,8491,8707,8726,4,3,99,112,114,7950,7956,8007,117,116,101,59,1,263,4,6,59,97,98,99,100,115,7970,7972,7977,7984,7998,8003,1,8745,110,100,59,1,10820,114,99,117,112,59,1,10825,4,2,97,117,7990,7994,112,59,1,10827,112,59,1,10823,111,116,59,1,10816,59,3,8745,65024,4,2,101,111,8013,8017,116,59,1,8257,110,59,1,711,4,4,97,101,105,117,8031,8046,8056,8061,4,2,112,114,8037,8041,115,59,1,10829,111,110,59,1,269,100,105,108,5,231,1,59,8054,1,231,114,99,59,1,265,112,115,4,2,59,115,8069,8071,1,10828,109,59,1,10832,111,116,59,1,267,4,3,100,109,110,8088,8097,8104,105,108,5,184,1,59,8095,1,184,112,116,121,118,59,1,10674,116,5,162,2,59,101,8112,8114,1,162,114,100,111,116,59,1,183,114,59,3,55349,56608,4,3,99,101,105,8134,8138,8154,121,59,1,1095,99,107,4,2,59,109,8146,8148,1,10003,97,114,107,59,1,10003,59,1,967,114,4,7,59,69,99,101,102,109,115,8174,8176,8179,8258,8261,8268,8273,1,9675,59,1,10691,4,3,59,101,108,8187,8189,8193,1,710,113,59,1,8791,101,4,2,97,100,8200,8223,114,114,111,119,4,2,108,114,8210,8216,101,102,116,59,1,8634,105,103,104,116,59,1,8635,4,5,82,83,97,99,100,8235,8238,8241,8246,8252,59,1,174,59,1,9416,115,116,59,1,8859,105,114,99,59,1,8858,97,115,104,59,1,8861,59,1,8791,110,105,110,116,59,1,10768,105,100,59,1,10991,99,105,114,59,1,10690,117,98,115,4,2,59,117,8288,8290,1,9827,105,116,59,1,9827,4,4,108,109,110,112,8305,8326,8376,8400,111,110,4,2,59,101,8313,8315,1,58,4,2,59,113,8321,8323,1,8788,59,1,8788,4,2,109,112,8332,8344,97,4,2,59,116,8339,8341,1,44,59,1,64,4,3,59,102,108,8352,8354,8358,1,8705,110,59,1,8728,101,4,2,109,120,8365,8371,101,110,116,59,1,8705,101,115,59,1,8450,4,2,103,105,8382,8395,4,2,59,100,8388,8390,1,8773,111,116,59,1,10861,110,116,59,1,8750,4,3,102,114,121,8408,8412,8417,59,3,55349,56660,111,100,59,1,8720,5,169,2,59,115,8424,8426,1,169,114,59,1,8471,4,2,97,111,8436,8441,114,114,59,1,8629,115,115,59,1,10007,4,2,99,117,8452,8457,114,59,3,55349,56504,4,2,98,112,8463,8474,4,2,59,101,8469,8471,1,10959,59,1,10961,4,2,59,101,8480,8482,1,10960,59,1,10962,100,111,116,59,1,8943,4,7,100,101,108,112,114,118,119,8507,8522,8536,8550,8600,8697,8702,97,114,114,4,2,108,114,8516,8519,59,1,10552,59,1,10549,4,2,112,115,8528,8532,114,59,1,8926,99,59,1,8927,97,114,114,4,2,59,112,8545,8547,1,8630,59,1,10557,4,6,59,98,99,100,111,115,8564,8566,8573,8587,8592,8596,1,8746,114,99,97,112,59,1,10824,4,2,97,117,8579,8583,112,59,1,10822,112,59,1,10826,111,116,59,1,8845,114,59,1,10821,59,3,8746,65024,4,4,97,108,114,118,8610,8623,8663,8672,114,114,4,2,59,109,8618,8620,1,8631,59,1,10556,121,4,3,101,118,119,8632,8651,8656,113,4,2,112,115,8639,8645,114,101,99,59,1,8926,117,99,99,59,1,8927,101,101,59,1,8910,101,100,103,101,59,1,8911,101,110,5,164,1,59,8670,1,164,101,97,114,114,111,119,4,2,108,114,8684,8690,101,102,116,59,1,8630,105,103,104,116,59,1,8631,101,101,59,1,8910,101,100,59,1,8911,4,2,99,105,8713,8721,111,110,105,110,116,59,1,8754,110,116,59,1,8753,108,99,116,121,59,1,9005,4,19,65,72,97,98,99,100,101,102,104,105,106,108,111,114,115,116,117,119,122,8773,8778,8783,8821,8839,8854,8887,8914,8930,8944,9036,9041,9058,9197,9227,9258,9281,9297,9305,114,114,59,1,8659,97,114,59,1,10597,4,4,103,108,114,115,8793,8799,8805,8809,103,101,114,59,1,8224,101,116,104,59,1,8504,114,59,1,8595,104,4,2,59,118,8816,8818,1,8208,59,1,8867,4,2,107,108,8827,8834,97,114,111,119,59,1,10511,97,99,59,1,733,4,2,97,121,8845,8851,114,111,110,59,1,271,59,1,1076,4,3,59,97,111,8862,8864,8880,1,8518,4,2,103,114,8870,8876,103,101,114,59,1,8225,114,59,1,8650,116,115,101,113,59,1,10871,4,3,103,108,109,8895,8902,8907,5,176,1,59,8900,1,176,116,97,59,1,948,112,116,121,118,59,1,10673,4,2,105,114,8920,8926,115,104,116,59,1,10623,59,3,55349,56609,97,114,4,2,108,114,8938,8941,59,1,8643,59,1,8642,4,5,97,101,103,115,118,8956,8986,8989,8996,9001,109,4,3,59,111,115,8965,8967,8983,1,8900,110,100,4,2,59,115,8975,8977,1,8900,117,105,116,59,1,9830,59,1,9830,59,1,168,97,109,109,97,59,1,989,105,110,59,1,8946,4,3,59,105,111,9009,9011,9031,1,247,100,101,5,247,2,59,111,9020,9022,1,247,110,116,105,109,101,115,59,1,8903,110,120,59,1,8903,99,121,59,1,1106,99,4,2,111,114,9048,9053,114,110,59,1,8990,111,112,59,1,8973,4,5,108,112,116,117,119,9070,9076,9081,9130,9144,108,97,114,59,1,36,102,59,3,55349,56661,4,5,59,101,109,112,115,9093,9095,9109,9116,9122,1,729,113,4,2,59,100,9102,9104,1,8784,111,116,59,1,8785,105,110,117,115,59,1,8760,108,117,115,59,1,8724,113,117,97,114,101,59,1,8865,98,108,101,98,97,114,119,101,100,103,101,59,1,8966,110,4,3,97,100,104,9153,9160,9172,114,114,111,119,59,1,8595,111,119,110,97,114,114,111,119,115,59,1,8650,97,114,112,111,111,110,4,2,108,114,9184,9190,101,102,116,59,1,8643,105,103,104,116,59,1,8642,4,2,98,99,9203,9211,107,97,114,111,119,59,1,10512,4,2,111,114,9217,9222,114,110,59,1,8991,111,112,59,1,8972,4,3,99,111,116,9235,9248,9252,4,2,114,121,9241,9245,59,3,55349,56505,59,1,1109,108,59,1,10742,114,111,107,59,1,273,4,2,100,114,9264,9269,111,116,59,1,8945,105,4,2,59,102,9276,9278,1,9663,59,1,9662,4,2,97,104,9287,9292,114,114,59,1,8693,97,114,59,1,10607,97,110,103,108,101,59,1,10662,4,2,99,105,9311,9315,121,59,1,1119,103,114,97,114,114,59,1,10239,4,18,68,97,99,100,101,102,103,108,109,110,111,112,113,114,115,116,117,120,9361,9376,9398,9439,9444,9447,9462,9495,9531,9585,9598,9614,9659,9755,9771,9792,9808,9826,4,2,68,111,9367,9372,111,116,59,1,10871,116,59,1,8785,4,2,99,115,9382,9392,117,116,101,5,233,1,59,9390,1,233,116,101,114,59,1,10862,4,4,97,105,111,121,9408,9414,9430,9436,114,111,110,59,1,283,114,4,2,59,99,9421,9423,1,8790,5,234,1,59,9428,1,234,108,111,110,59,1,8789,59,1,1101,111,116,59,1,279,59,1,8519,4,2,68,114,9453,9458,111,116,59,1,8786,59,3,55349,56610,4,3,59,114,115,9470,9472,9482,1,10906,97,118,101,5,232,1,59,9480,1,232,4,2,59,100,9488,9490,1,10902,111,116,59,1,10904,4,4,59,105,108,115,9505,9507,9515,9518,1,10905,110,116,101,114,115,59,1,9191,59,1,8467,4,2,59,100,9524,9526,1,10901,111,116,59,1,10903,4,3,97,112,115,9539,9544,9564,99,114,59,1,275,116,121,4,3,59,115,118,9554,9556,9561,1,8709,101,116,59,1,8709,59,1,8709,112,4,2,49,59,9571,9583,4,2,51,52,9577,9580,59,1,8196,59,1,8197,1,8195,4,2,103,115,9591,9594,59,1,331,112,59,1,8194,4,2,103,112,9604,9609,111,110,59,1,281,102,59,3,55349,56662,4,3,97,108,115,9622,9635,9640,114,4,2,59,115,9629,9631,1,8917,108,59,1,10723,117,115,59,1,10865,105,4,3,59,108,118,9649,9651,9656,1,949,111,110,59,1,949,59,1,1013,4,4,99,115,117,118,9669,9686,9716,9747,4,2,105,111,9675,9680,114,99,59,1,8790,108,111,110,59,1,8789,4,2,105,108,9692,9696,109,59,1,8770,97,110,116,4,2,103,108,9705,9710,116,114,59,1,10902,101,115,115,59,1,10901,4,3,97,101,105,9724,9729,9734,108,115,59,1,61,115,116,59,1,8799,118,4,2,59,68,9741,9743,1,8801,68,59,1,10872,112,97,114,115,108,59,1,10725,4,2,68,97,9761,9766,111,116,59,1,8787,114,114,59,1,10609,4,3,99,100,105,9779,9783,9788,114,59,1,8495,111,116,59,1,8784,109,59,1,8770,4,2,97,104,9798,9801,59,1,951,5,240,1,59,9806,1,240,4,2,109,114,9814,9822,108,5,235,1,59,9820,1,235,111,59,1,8364,4,3,99,105,112,9834,9838,9843,108,59,1,33,115,116,59,1,8707,4,2,101,111,9849,9859,99,116,97,116,105,111,110,59,1,8496,110,101,110,116,105,97,108,101,59,1,8519,4,12,97,99,101,102,105,106,108,110,111,112,114,115,9896,9910,9914,9921,9954,9960,9967,9989,9994,10027,10036,10164,108,108,105,110,103,100,111,116,115,101,113,59,1,8786,121,59,1,1092,109,97,108,101,59,1,9792,4,3,105,108,114,9929,9935,9950,108,105,103,59,1,64259,4,2,105,108,9941,9945,103,59,1,64256,105,103,59,1,64260,59,3,55349,56611,108,105,103,59,1,64257,108,105,103,59,3,102,106,4,3,97,108,116,9975,9979,9984,116,59,1,9837,105,103,59,1,64258,110,115,59,1,9649,111,102,59,1,402,4,2,112,114,10000,10005,102,59,3,55349,56663,4,2,97,107,10011,10016,108,108,59,1,8704,4,2,59,118,10022,10024,1,8916,59,1,10969,97,114,116,105,110,116,59,1,10765,4,2,97,111,10042,10159,4,2,99,115,10048,10155,4,6,49,50,51,52,53,55,10062,10102,10114,10135,10139,10151,4,6,50,51,52,53,54,56,10076,10083,10086,10093,10096,10099,5,189,1,59,10081,1,189,59,1,8531,5,188,1,59,10091,1,188,59,1,8533,59,1,8537,59,1,8539,4,2,51,53,10108,10111,59,1,8532,59,1,8534,4,3,52,53,56,10122,10129,10132,5,190,1,59,10127,1,190,59,1,8535,59,1,8540,53,59,1,8536,4,2,54,56,10145,10148,59,1,8538,59,1,8541,56,59,1,8542,108,59,1,8260,119,110,59,1,8994,99,114,59,3,55349,56507,4,17,69,97,98,99,100,101,102,103,105,106,108,110,111,114,115,116,118,10206,10217,10247,10254,10268,10273,10358,10363,10374,10380,10385,10406,10458,10464,10470,10497,10610,4,2,59,108,10212,10214,1,8807,59,1,10892,4,3,99,109,112,10225,10231,10244,117,116,101,59,1,501,109,97,4,2,59,100,10239,10241,1,947,59,1,989,59,1,10886,114,101,118,101,59,1,287,4,2,105,121,10260,10265,114,99,59,1,285,59,1,1075,111,116,59,1,289,4,4,59,108,113,115,10283,10285,10288,10308,1,8805,59,1,8923,4,3,59,113,115,10296,10298,10301,1,8805,59,1,8807,108,97,110,116,59,1,10878,4,4,59,99,100,108,10318,10320,10324,10345,1,10878,99,59,1,10921,111,116,4,2,59,111,10332,10334,1,10880,4,2,59,108,10340,10342,1,10882,59,1,10884,4,2,59,101,10351,10354,3,8923,65024,115,59,1,10900,114,59,3,55349,56612,4,2,59,103,10369,10371,1,8811,59,1,8921,109,101,108,59,1,8503,99,121,59,1,1107,4,4,59,69,97,106,10395,10397,10400,10403,1,8823,59,1,10898,59,1,10917,59,1,10916,4,4,69,97,101,115,10416,10419,10434,10453,59,1,8809,112,4,2,59,112,10426,10428,1,10890,114,111,120,59,1,10890,4,2,59,113,10440,10442,1,10888,4,2,59,113,10448,10450,1,10888,59,1,8809,105,109,59,1,8935,112,102,59,3,55349,56664,97,118,101,59,1,96,4,2,99,105,10476,10480,114,59,1,8458,109,4,3,59,101,108,10489,10491,10494,1,8819,59,1,10894,59,1,10896,5,62,6,59,99,100,108,113,114,10512,10514,10527,10532,10538,10545,1,62,4,2,99,105,10520,10523,59,1,10919,114,59,1,10874,111,116,59,1,8919,80,97,114,59,1,10645,117,101,115,116,59,1,10876,4,5,97,100,101,108,115,10557,10574,10579,10599,10605,4,2,112,114,10563,10570,112,114,111,120,59,1,10886,114,59,1,10616,111,116,59,1,8919,113,4,2,108,113,10586,10592,101,115,115,59,1,8923,108,101,115,115,59,1,10892,101,115,115,59,1,8823,105,109,59,1,8819,4,2,101,110,10616,10626,114,116,110,101,113,113,59,3,8809,65024,69,59,3,8809,65024,4,10,65,97,98,99,101,102,107,111,115,121,10653,10658,10713,10718,10724,10760,10765,10786,10850,10875,114,114,59,1,8660,4,4,105,108,109,114,10668,10674,10678,10684,114,115,112,59,1,8202,102,59,1,189,105,108,116,59,1,8459,4,2,100,114,10690,10695,99,121,59,1,1098,4,3,59,99,119,10703,10705,10710,1,8596,105,114,59,1,10568,59,1,8621,97,114,59,1,8463,105,114,99,59,1,293,4,3,97,108,114,10732,10748,10754,114,116,115,4,2,59,117,10741,10743,1,9829,105,116,59,1,9829,108,105,112,59,1,8230,99,111,110,59,1,8889,114,59,3,55349,56613,115,4,2,101,119,10772,10779,97,114,111,119,59,1,10533,97,114,111,119,59,1,10534,4,5,97,109,111,112,114,10798,10803,10809,10839,10844,114,114,59,1,8703,116,104,116,59,1,8763,107,4,2,108,114,10816,10827,101,102,116,97,114,114,111,119,59,1,8617,105,103,104,116,97,114,114,111,119,59,1,8618,102,59,3,55349,56665,98,97,114,59,1,8213,4,3,99,108,116,10858,10863,10869,114,59,3,55349,56509,97,115,104,59,1,8463,114,111,107,59,1,295,4,2,98,112,10881,10887,117,108,108,59,1,8259,104,101,110,59,1,8208,4,15,97,99,101,102,103,105,106,109,110,111,112,113,115,116,117,10925,10936,10958,10977,10990,11001,11039,11045,11101,11192,11220,11226,11237,11285,11299,99,117,116,101,5,237,1,59,10934,1,237,4,3,59,105,121,10944,10946,10955,1,8291,114,99,5,238,1,59,10953,1,238,59,1,1080,4,2,99,120,10964,10968,121,59,1,1077,99,108,5,161,1,59,10975,1,161,4,2,102,114,10983,10986,59,1,8660,59,3,55349,56614,114,97,118,101,5,236,1,59,10999,1,236,4,4,59,105,110,111,11011,11013,11028,11034,1,8520,4,2,105,110,11019,11024,110,116,59,1,10764,116,59,1,8749,102,105,110,59,1,10716,116,97,59,1,8489,108,105,103,59,1,307,4,3,97,111,112,11053,11092,11096,4,3,99,103,116,11061,11065,11088,114,59,1,299,4,3,101,108,112,11073,11076,11082,59,1,8465,105,110,101,59,1,8464,97,114,116,59,1,8465,104,59,1,305,102,59,1,8887,101,100,59,1,437,4,5,59,99,102,111,116,11113,11115,11121,11136,11142,1,8712,97,114,101,59,1,8453,105,110,4,2,59,116,11129,11131,1,8734,105,101,59,1,10717,100,111,116,59,1,305,4,5,59,99,101,108,112,11154,11156,11161,11179,11186,1,8747,97,108,59,1,8890,4,2,103,114,11167,11173,101,114,115,59,1,8484,99,97,108,59,1,8890,97,114,104,107,59,1,10775,114,111,100,59,1,10812,4,4,99,103,112,116,11202,11206,11211,11216,121,59,1,1105,111,110,59,1,303,102,59,3,55349,56666,97,59,1,953,114,111,100,59,1,10812,117,101,115,116,5,191,1,59,11235,1,191,4,2,99,105,11243,11248,114,59,3,55349,56510,110,4,5,59,69,100,115,118,11261,11263,11266,11271,11282,1,8712,59,1,8953,111,116,59,1,8949,4,2,59,118,11277,11279,1,8948,59,1,8947,59,1,8712,4,2,59,105,11291,11293,1,8290,108,100,101,59,1,297,4,2,107,109,11305,11310,99,121,59,1,1110,108,5,239,1,59,11316,1,239,4,6,99,102,109,111,115,117,11332,11346,11351,11357,11363,11380,4,2,105,121,11338,11343,114,99,59,1,309,59,1,1081,114,59,3,55349,56615,97,116,104,59,1,567,112,102,59,3,55349,56667,4,2,99,101,11369,11374,114,59,3,55349,56511,114,99,121,59,1,1112,107,99,121,59,1,1108,4,8,97,99,102,103,104,106,111,115,11404,11418,11433,11438,11445,11450,11455,11461,112,112,97,4,2,59,118,11413,11415,1,954,59,1,1008,4,2,101,121,11424,11430,100,105,108,59,1,311,59,1,1082,114,59,3,55349,56616,114,101,101,110,59,1,312,99,121,59,1,1093,99,121,59,1,1116,112,102,59,3,55349,56668,99,114,59,3,55349,56512,4,23,65,66,69,72,97,98,99,100,101,102,103,104,106,108,109,110,111,112,114,115,116,117,118,11515,11538,11544,11555,11560,11721,11780,11818,11868,12136,12160,12171,12203,12208,12246,12275,12327,12509,12523,12569,12641,12732,12752,4,3,97,114,116,11523,11528,11532,114,114,59,1,8666,114,59,1,8656,97,105,108,59,1,10523,97,114,114,59,1,10510,4,2,59,103,11550,11552,1,8806,59,1,10891,97,114,59,1,10594,4,9,99,101,103,109,110,112,113,114,116,11580,11586,11594,11600,11606,11624,11627,11636,11694,117,116,101,59,1,314,109,112,116,121,118,59,1,10676,114,97,110,59,1,8466,98,100,97,59,1,955,103,4,3,59,100,108,11615,11617,11620,1,10216,59,1,10641,101,59,1,10216,59,1,10885,117,111,5,171,1,59,11634,1,171,114,4,8,59,98,102,104,108,112,115,116,11655,11657,11669,11673,11677,11681,11685,11690,1,8592,4,2,59,102,11663,11665,1,8676,115,59,1,10527,115,59,1,10525,107,59,1,8617,112,59,1,8619,108,59,1,10553,105,109,59,1,10611,108,59,1,8610,4,3,59,97,101,11702,11704,11709,1,10923,105,108,59,1,10521,4,2,59,115,11715,11717,1,10925,59,3,10925,65024,4,3,97,98,114,11729,11734,11739,114,114,59,1,10508,114,107,59,1,10098,4,2,97,107,11745,11758,99,4,2,101,107,11752,11755,59,1,123,59,1,91,4,2,101,115,11764,11767,59,1,10635,108,4,2,100,117,11774,11777,59,1,10639,59,1,10637,4,4,97,101,117,121,11790,11796,11811,11815,114,111,110,59,1,318,4,2,100,105,11802,11807,105,108,59,1,316,108,59,1,8968,98,59,1,123,59,1,1083,4,4,99,113,114,115,11828,11832,11845,11864,97,59,1,10550,117,111,4,2,59,114,11840,11842,1,8220,59,1,8222,4,2,100,117,11851,11857,104,97,114,59,1,10599,115,104,97,114,59,1,10571,104,59,1,8626,4,5,59,102,103,113,115,11880,11882,12008,12011,12031,1,8804,116,4,5,97,104,108,114,116,11895,11913,11935,11947,11996,114,114,111,119,4,2,59,116,11905,11907,1,8592,97,105,108,59,1,8610,97,114,112,111,111,110,4,2,100,117,11925,11931,111,119,110,59,1,8637,112,59,1,8636,101,102,116,97,114,114,111,119,115,59,1,8647,105,103,104,116,4,3,97,104,115,11959,11974,11984,114,114,111,119,4,2,59,115,11969,11971,1,8596,59,1,8646,97,114,112,111,111,110,115,59,1,8651,113,117,105,103,97,114,114,111,119,59,1,8621,104,114,101,101,116,105,109,101,115,59,1,8907,59,1,8922,4,3,59,113,115,12019,12021,12024,1,8804,59,1,8806,108,97,110,116,59,1,10877,4,5,59,99,100,103,115,12043,12045,12049,12070,12083,1,10877,99,59,1,10920,111,116,4,2,59,111,12057,12059,1,10879,4,2,59,114,12065,12067,1,10881,59,1,10883,4,2,59,101,12076,12079,3,8922,65024,115,59,1,10899,4,5,97,100,101,103,115,12095,12103,12108,12126,12131,112,112,114,111,120,59,1,10885,111,116,59,1,8918,113,4,2,103,113,12115,12120,116,114,59,1,8922,103,116,114,59,1,10891,116,114,59,1,8822,105,109,59,1,8818,4,3,105,108,114,12144,12150,12156,115,104,116,59,1,10620,111,111,114,59,1,8970,59,3,55349,56617,4,2,59,69,12166,12168,1,8822,59,1,10897,4,2,97,98,12177,12198,114,4,2,100,117,12184,12187,59,1,8637,4,2,59,108,12193,12195,1,8636,59,1,10602,108,107,59,1,9604,99,121,59,1,1113,4,5,59,97,99,104,116,12220,12222,12227,12235,12241,1,8810,114,114,59,1,8647,111,114,110,101,114,59,1,8990,97,114,100,59,1,10603,114,105,59,1,9722,4,2,105,111,12252,12258,100,111,116,59,1,320,117,115,116,4,2,59,97,12267,12269,1,9136,99,104,101,59,1,9136,4,4,69,97,101,115,12285,12288,12303,12322,59,1,8808,112,4,2,59,112,12295,12297,1,10889,114,111,120,59,1,10889,4,2,59,113,12309,12311,1,10887,4,2,59,113,12317,12319,1,10887,59,1,8808,105,109,59,1,8934,4,8,97,98,110,111,112,116,119,122,12345,12359,12364,12421,12446,12467,12474,12490,4,2,110,114,12351,12355,103,59,1,10220,114,59,1,8701,114,107,59,1,10214,103,4,3,108,109,114,12373,12401,12409,101,102,116,4,2,97,114,12382,12389,114,114,111,119,59,1,10229,105,103,104,116,97,114,114,111,119,59,1,10231,97,112,115,116,111,59,1,10236,105,103,104,116,97,114,114,111,119,59,1,10230,112,97,114,114,111,119,4,2,108,114,12433,12439,101,102,116,59,1,8619,105,103,104,116,59,1,8620,4,3,97,102,108,12454,12458,12462,114,59,1,10629,59,3,55349,56669,117,115,59,1,10797,105,109,101,115,59,1,10804,4,2,97,98,12480,12485,115,116,59,1,8727,97,114,59,1,95,4,3,59,101,102,12498,12500,12506,1,9674,110,103,101,59,1,9674,59,1,10731,97,114,4,2,59,108,12517,12519,1,40,116,59,1,10643,4,5,97,99,104,109,116,12535,12540,12548,12561,12564,114,114,59,1,8646,111,114,110,101,114,59,1,8991,97,114,4,2,59,100,12556,12558,1,8651,59,1,10605,59,1,8206,114,105,59,1,8895,4,6,97,99,104,105,113,116,12583,12589,12594,12597,12614,12635,113,117,111,59,1,8249,114,59,3,55349,56513,59,1,8624,109,4,3,59,101,103,12606,12608,12611,1,8818,59,1,10893,59,1,10895,4,2,98,117,12620,12623,59,1,91,111,4,2,59,114,12630,12632,1,8216,59,1,8218,114,111,107,59,1,322,5,60,8,59,99,100,104,105,108,113,114,12660,12662,12675,12680,12686,12692,12698,12705,1,60,4,2,99,105,12668,12671,59,1,10918,114,59,1,10873,111,116,59,1,8918,114,101,101,59,1,8907,109,101,115,59,1,8905,97,114,114,59,1,10614,117,101,115,116,59,1,10875,4,2,80,105,12711,12716,97,114,59,1,10646,4,3,59,101,102,12724,12726,12729,1,9667,59,1,8884,59,1,9666,114,4,2,100,117,12739,12746,115,104,97,114,59,1,10570,104,97,114,59,1,10598,4,2,101,110,12758,12768,114,116,110,101,113,113,59,3,8808,65024,69,59,3,8808,65024,4,14,68,97,99,100,101,102,104,105,108,110,111,112,115,117,12803,12809,12893,12908,12914,12928,12933,12937,13011,13025,13032,13049,13052,13069,68,111,116,59,1,8762,4,4,99,108,112,114,12819,12827,12849,12887,114,5,175,1,59,12825,1,175,4,2,101,116,12833,12836,59,1,9794,4,2,59,101,12842,12844,1,10016,115,101,59,1,10016,4,2,59,115,12855,12857,1,8614,116,111,4,4,59,100,108,117,12869,12871,12877,12883,1,8614,111,119,110,59,1,8615,101,102,116,59,1,8612,112,59,1,8613,107,101,114,59,1,9646,4,2,111,121,12899,12905,109,109,97,59,1,10793,59,1,1084,97,115,104,59,1,8212,97,115,117,114,101,100,97,110,103,108,101,59,1,8737,114,59,3,55349,56618,111,59,1,8487,4,3,99,100,110,12945,12954,12985,114,111,5,181,1,59,12952,1,181,4,4,59,97,99,100,12964,12966,12971,12976,1,8739,115,116,59,1,42,105,114,59,1,10992,111,116,5,183,1,59,12983,1,183,117,115,4,3,59,98,100,12995,12997,13000,1,8722,59,1,8863,4,2,59,117,13006,13008,1,8760,59,1,10794,4,2,99,100,13017,13021,112,59,1,10971,114,59,1,8230,112,108,117,115,59,1,8723,4,2,100,112,13038,13044,101,108,115,59,1,8871,102,59,3,55349,56670,59,1,8723,4,2,99,116,13058,13063,114,59,3,55349,56514,112,111,115,59,1,8766,4,3,59,108,109,13077,13079,13087,1,956,116,105,109,97,112,59,1,8888,97,112,59,1,8888,4,24,71,76,82,86,97,98,99,100,101,102,103,104,105,106,108,109,111,112,114,115,116,117,118,119,13142,13165,13217,13229,13247,13330,13359,13414,13420,13508,13513,13579,13602,13626,13631,13762,13767,13855,13936,13995,14214,14285,14312,14432,4,2,103,116,13148,13152,59,3,8921,824,4,2,59,118,13158,13161,3,8811,8402,59,3,8811,824,4,3,101,108,116,13173,13200,13204,102,116,4,2,97,114,13181,13188,114,114,111,119,59,1,8653,105,103,104,116,97,114,114,111,119,59,1,8654,59,3,8920,824,4,2,59,118,13210,13213,3,8810,8402,59,3,8810,824,105,103,104,116,97,114,114,111,119,59,1,8655,4,2,68,100,13235,13241,97,115,104,59,1,8879,97,115,104,59,1,8878,4,5,98,99,110,112,116,13259,13264,13270,13275,13308,108,97,59,1,8711,117,116,101,59,1,324,103,59,3,8736,8402,4,5,59,69,105,111,112,13287,13289,13293,13298,13302,1,8777,59,3,10864,824,100,59,3,8779,824,115,59,1,329,114,111,120,59,1,8777,117,114,4,2,59,97,13316,13318,1,9838,108,4,2,59,115,13325,13327,1,9838,59,1,8469,4,2,115,117,13336,13344,112,5,160,1,59,13342,1,160,109,112,4,2,59,101,13352,13355,3,8782,824,59,3,8783,824,4,5,97,101,111,117,121,13371,13385,13391,13407,13411,4,2,112,114,13377,13380,59,1,10819,111,110,59,1,328,100,105,108,59,1,326,110,103,4,2,59,100,13399,13401,1,8775,111,116,59,3,10861,824,112,59,1,10818,59,1,1085,97,115,104,59,1,8211,4,7,59,65,97,100,113,115,120,13436,13438,13443,13466,13472,13478,13494,1,8800,114,114,59,1,8663,114,4,2,104,114,13450,13454,107,59,1,10532,4,2,59,111,13460,13462,1,8599,119,59,1,8599,111,116,59,3,8784,824,117,105,118,59,1,8802,4,2,101,105,13484,13489,97,114,59,1,10536,109,59,3,8770,824,105,115,116,4,2,59,115,13503,13505,1,8708,59,1,8708,114,59,3,55349,56619,4,4,69,101,115,116,13523,13527,13563,13568,59,3,8807,824,4,3,59,113,115,13535,13537,13559,1,8817,4,3,59,113,115,13545,13547,13551,1,8817,59,3,8807,824,108,97,110,116,59,3,10878,824,59,3,10878,824,105,109,59,1,8821,4,2,59,114,13574,13576,1,8815,59,1,8815,4,3,65,97,112,13587,13592,13597,114,114,59,1,8654,114,114,59,1,8622,97,114,59,1,10994,4,3,59,115,118,13610,13612,13623,1,8715,4,2,59,100,13618,13620,1,8956,59,1,8954,59,1,8715,99,121,59,1,1114,4,7,65,69,97,100,101,115,116,13647,13652,13656,13661,13665,13737,13742,114,114,59,1,8653,59,3,8806,824,114,114,59,1,8602,114,59,1,8229,4,4,59,102,113,115,13675,13677,13703,13725,1,8816,116,4,2,97,114,13684,13691,114,114,111,119,59,1,8602,105,103,104,116,97,114,114,111,119,59,1,8622,4,3,59,113,115,13711,13713,13717,1,8816,59,3,8806,824,108,97,110,116,59,3,10877,824,4,2,59,115,13731,13734,3,10877,824,59,1,8814,105,109,59,1,8820,4,2,59,114,13748,13750,1,8814,105,4,2,59,101,13757,13759,1,8938,59,1,8940,105,100,59,1,8740,4,2,112,116,13773,13778,102,59,3,55349,56671,5,172,3,59,105,110,13787,13789,13829,1,172,110,4,4,59,69,100,118,13800,13802,13806,13812,1,8713,59,3,8953,824,111,116,59,3,8949,824,4,3,97,98,99,13820,13823,13826,59,1,8713,59,1,8951,59,1,8950,105,4,2,59,118,13836,13838,1,8716,4,3,97,98,99,13846,13849,13852,59,1,8716,59,1,8958,59,1,8957,4,3,97,111,114,13863,13892,13899,114,4,4,59,97,115,116,13874,13876,13883,13888,1,8742,108,108,101,108,59,1,8742,108,59,3,11005,8421,59,3,8706,824,108,105,110,116,59,1,10772,4,3,59,99,101,13907,13909,13914,1,8832,117,101,59,1,8928,4,2,59,99,13920,13923,3,10927,824,4,2,59,101,13929,13931,1,8832,113,59,3,10927,824,4,4,65,97,105,116,13946,13951,13971,13982,114,114,59,1,8655,114,114,4,3,59,99,119,13961,13963,13967,1,8603,59,3,10547,824,59,3,8605,824,103,104,116,97,114,114,111,119,59,1,8603,114,105,4,2,59,101,13990,13992,1,8939,59,1,8941,4,7,99,104,105,109,112,113,117,14011,14036,14060,14080,14085,14090,14106,4,4,59,99,101,114,14021,14023,14028,14032,1,8833,117,101,59,1,8929,59,3,10928,824,59,3,55349,56515,111,114,116,4,2,109,112,14045,14050,105,100,59,1,8740,97,114,97,108,108,101,108,59,1,8742,109,4,2,59,101,14067,14069,1,8769,4,2,59,113,14075,14077,1,8772,59,1,8772,105,100,59,1,8740,97,114,59,1,8742,115,117,4,2,98,112,14098,14102,101,59,1,8930,101,59,1,8931,4,3,98,99,112,14114,14157,14171,4,4,59,69,101,115,14124,14126,14130,14133,1,8836,59,3,10949,824,59,1,8840,101,116,4,2,59,101,14141,14144,3,8834,8402,113,4,2,59,113,14151,14153,1,8840,59,3,10949,824,99,4,2,59,101,14164,14166,1,8833,113,59,3,10928,824,4,4,59,69,101,115,14181,14183,14187,14190,1,8837,59,3,10950,824,59,1,8841,101,116,4,2,59,101,14198,14201,3,8835,8402,113,4,2,59,113,14208,14210,1,8841,59,3,10950,824,4,4,103,105,108,114,14224,14228,14238,14242,108,59,1,8825,108,100,101,5,241,1,59,14236,1,241,103,59,1,8824,105,97,110,103,108,101,4,2,108,114,14254,14269,101,102,116,4,2,59,101,14263,14265,1,8938,113,59,1,8940,105,103,104,116,4,2,59,101,14279,14281,1,8939,113,59,1,8941,4,2,59,109,14291,14293,1,957,4,3,59,101,115,14301,14303,14308,1,35,114,111,59,1,8470,112,59,1,8199,4,9,68,72,97,100,103,105,108,114,115,14332,14338,14344,14349,14355,14369,14376,14408,14426,97,115,104,59,1,8877,97,114,114,59,1,10500,112,59,3,8781,8402,97,115,104,59,1,8876,4,2,101,116,14361,14365,59,3,8805,8402,59,3,62,8402,110,102,105,110,59,1,10718,4,3,65,101,116,14384,14389,14393,114,114,59,1,10498,59,3,8804,8402,4,2,59,114,14399,14402,3,60,8402,105,101,59,3,8884,8402,4,2,65,116,14414,14419,114,114,59,1,10499,114,105,101,59,3,8885,8402,105,109,59,3,8764,8402,4,3,65,97,110,14440,14445,14468,114,114,59,1,8662,114,4,2,104,114,14452,14456,107,59,1,10531,4,2,59,111,14462,14464,1,8598,119,59,1,8598,101,97,114,59,1,10535,4,18,83,97,99,100,101,102,103,104,105,108,109,111,112,114,115,116,117,118,14512,14515,14535,14560,14597,14603,14618,14643,14657,14662,14701,14741,14747,14769,14851,14877,14907,14916,59,1,9416,4,2,99,115,14521,14531,117,116,101,5,243,1,59,14529,1,243,116,59,1,8859,4,2,105,121,14541,14557,114,4,2,59,99,14548,14550,1,8858,5,244,1,59,14555,1,244,59,1,1086,4,5,97,98,105,111,115,14572,14577,14583,14587,14591,115,104,59,1,8861,108,97,99,59,1,337,118,59,1,10808,116,59,1,8857,111,108,100,59,1,10684,108,105,103,59,1,339,4,2,99,114,14609,14614,105,114,59,1,10687,59,3,55349,56620,4,3,111,114,116,14626,14630,14640,110,59,1,731,97,118,101,5,242,1,59,14638,1,242,59,1,10689,4,2,98,109,14649,14654,97,114,59,1,10677,59,1,937,110,116,59,1,8750,4,4,97,99,105,116,14672,14677,14693,14698,114,114,59,1,8634,4,2,105,114,14683,14687,114,59,1,10686,111,115,115,59,1,10683,110,101,59,1,8254,59,1,10688,4,3,97,101,105,14709,14714,14719,99,114,59,1,333,103,97,59,1,969,4,3,99,100,110,14727,14733,14736,114,111,110,59,1,959,59,1,10678,117,115,59,1,8854,112,102,59,3,55349,56672,4,3,97,101,108,14755,14759,14764,114,59,1,10679,114,112,59,1,10681,117,115,59,1,8853,4,7,59,97,100,105,111,115,118,14785,14787,14792,14831,14837,14841,14848,1,8744,114,114,59,1,8635,4,4,59,101,102,109,14802,14804,14817,14824,1,10845,114,4,2,59,111,14811,14813,1,8500,102,59,1,8500,5,170,1,59,14822,1,170,5,186,1,59,14829,1,186,103,111,102,59,1,8886,114,59,1,10838,108,111,112,101,59,1,10839,59,1,10843,4,3,99,108,111,14859,14863,14873,114,59,1,8500,97,115,104,5,248,1,59,14871,1,248,108,59,1,8856,105,4,2,108,109,14884,14893,100,101,5,245,1,59,14891,1,245,101,115,4,2,59,97,14901,14903,1,8855,115,59,1,10806,109,108,5,246,1,59,14914,1,246,98,97,114,59,1,9021,4,12,97,99,101,102,104,105,108,109,111,114,115,117,14948,14992,14996,15033,15038,15068,15090,15189,15192,15222,15427,15441,114,4,4,59,97,115,116,14959,14961,14976,14989,1,8741,5,182,2,59,108,14968,14970,1,182,108,101,108,59,1,8741,4,2,105,108,14982,14986,109,59,1,10995,59,1,11005,59,1,8706,121,59,1,1087,114,4,5,99,105,109,112,116,15009,15014,15019,15024,15027,110,116,59,1,37,111,100,59,1,46,105,108,59,1,8240,59,1,8869,101,110,107,59,1,8241,114,59,3,55349,56621,4,3,105,109,111,15046,15057,15063,4,2,59,118,15052,15054,1,966,59,1,981,109,97,116,59,1,8499,110,101,59,1,9742,4,3,59,116,118,15076,15078,15087,1,960,99,104,102,111,114,107,59,1,8916,59,1,982,4,2,97,117,15096,15119,110,4,2,99,107,15103,15115,107,4,2,59,104,15110,15112,1,8463,59,1,8462,118,59,1,8463,115,4,9,59,97,98,99,100,101,109,115,116,15140,15142,15148,15151,15156,15168,15171,15179,15184,1,43,99,105,114,59,1,10787,59,1,8862,105,114,59,1,10786,4,2,111,117,15162,15165,59,1,8724,59,1,10789,59,1,10866,110,5,177,1,59,15177,1,177,105,109,59,1,10790,119,111,59,1,10791,59,1,177,4,3,105,112,117,15200,15208,15213,110,116,105,110,116,59,1,10773,102,59,3,55349,56673,110,100,5,163,1,59,15220,1,163,4,10,59,69,97,99,101,105,110,111,115,117,15244,15246,15249,15253,15258,15334,15347,15367,15416,15421,1,8826,59,1,10931,112,59,1,10935,117,101,59,1,8828,4,2,59,99,15264,15266,1,10927,4,6,59,97,99,101,110,115,15280,15282,15290,15299,15303,15329,1,8826,112,112,114,111,120,59,1,10935,117,114,108,121,101,113,59,1,8828,113,59,1,10927,4,3,97,101,115,15311,15319,15324,112,112,114,111,120,59,1,10937,113,113,59,1,10933,105,109,59,1,8936,105,109,59,1,8830,109,101,4,2,59,115,15342,15344,1,8242,59,1,8473,4,3,69,97,115,15355,15358,15362,59,1,10933,112,59,1,10937,105,109,59,1,8936,4,3,100,102,112,15375,15378,15404,59,1,8719,4,3,97,108,115,15386,15392,15398,108,97,114,59,1,9006,105,110,101,59,1,8978,117,114,102,59,1,8979,4,2,59,116,15410,15412,1,8733,111,59,1,8733,105,109,59,1,8830,114,101,108,59,1,8880,4,2,99,105,15433,15438,114,59,3,55349,56517,59,1,968,110,99,115,112,59,1,8200,4,6,102,105,111,112,115,117,15462,15467,15472,15478,15485,15491,114,59,3,55349,56622,110,116,59,1,10764,112,102,59,3,55349,56674,114,105,109,101,59,1,8279,99,114,59,3,55349,56518,4,3,97,101,111,15499,15520,15534,116,4,2,101,105,15506,15515,114,110,105,111,110,115,59,1,8461,110,116,59,1,10774,115,116,4,2,59,101,15528,15530,1,63,113,59,1,8799,116,5,34,1,59,15540,1,34,4,21,65,66,72,97,98,99,100,101,102,104,105,108,109,110,111,112,114,115,116,117,120,15586,15609,15615,15620,15796,15855,15893,15931,15977,16001,16039,16183,16204,16222,16228,16285,16312,16318,16363,16408,16416,4,3,97,114,116,15594,15599,15603,114,114,59,1,8667,114,59,1,8658,97,105,108,59,1,10524,97,114,114,59,1,10511,97,114,59,1,10596,4,7,99,100,101,110,113,114,116,15636,15651,15656,15664,15687,15696,15770,4,2,101,117,15642,15646,59,3,8765,817,116,101,59,1,341,105,99,59,1,8730,109,112,116,121,118,59,1,10675,103,4,4,59,100,101,108,15675,15677,15680,15683,1,10217,59,1,10642,59,1,10661,101,59,1,10217,117,111,5,187,1,59,15694,1,187,114,4,11,59,97,98,99,102,104,108,112,115,116,119,15721,15723,15727,15739,15742,15746,15750,15754,15758,15763,15767,1,8594,112,59,1,10613,4,2,59,102,15733,15735,1,8677,115,59,1,10528,59,1,10547,115,59,1,10526,107,59,1,8618,112,59,1,8620,108,59,1,10565,105,109,59,1,10612,108,59,1,8611,59,1,8605,4,2,97,105,15776,15781,105,108,59,1,10522,111,4,2,59,110,15788,15790,1,8758,97,108,115,59,1,8474,4,3,97,98,114,15804,15809,15814,114,114,59,1,10509,114,107,59,1,10099,4,2,97,107,15820,15833,99,4,2,101,107,15827,15830,59,1,125,59,1,93,4,2,101,115,15839,15842,59,1,10636,108,4,2,100,117,15849,15852,59,1,10638,59,1,10640,4,4,97,101,117,121,15865,15871,15886,15890,114,111,110,59,1,345,4,2,100,105,15877,15882,105,108,59,1,343,108,59,1,8969,98,59,1,125,59,1,1088,4,4,99,108,113,115,15903,15907,15914,15927,97,59,1,10551,100,104,97,114,59,1,10601,117,111,4,2,59,114,15922,15924,1,8221,59,1,8221,104,59,1,8627,4,3,97,99,103,15939,15966,15970,108,4,4,59,105,112,115,15950,15952,15957,15963,1,8476,110,101,59,1,8475,97,114,116,59,1,8476,59,1,8477,116,59,1,9645,5,174,1,59,15975,1,174,4,3,105,108,114,15985,15991,15997,115,104,116,59,1,10621,111,111,114,59,1,8971,59,3,55349,56623,4,2,97,111,16007,16028,114,4,2,100,117,16014,16017,59,1,8641,4,2,59,108,16023,16025,1,8640,59,1,10604,4,2,59,118,16034,16036,1,961,59,1,1009,4,3,103,110,115,16047,16167,16171,104,116,4,6,97,104,108,114,115,116,16063,16081,16103,16130,16143,16155,114,114,111,119,4,2,59,116,16073,16075,1,8594,97,105,108,59,1,8611,97,114,112,111,111,110,4,2,100,117,16093,16099,111,119,110,59,1,8641,112,59,1,8640,101,102,116,4,2,97,104,16112,16120,114,114,111,119,115,59,1,8644,97,114,112,111,111,110,115,59,1,8652,105,103,104,116,97,114,114,111,119,115,59,1,8649,113,117,105,103,97,114,114,111,119,59,1,8605,104,114,101,101,116,105,109,101,115,59,1,8908,103,59,1,730,105,110,103,100,111,116,115,101,113,59,1,8787,4,3,97,104,109,16191,16196,16201,114,114,59,1,8644,97,114,59,1,8652,59,1,8207,111,117,115,116,4,2,59,97,16214,16216,1,9137,99,104,101,59,1,9137,109,105,100,59,1,10990,4,4,97,98,112,116,16238,16252,16257,16278,4,2,110,114,16244,16248,103,59,1,10221,114,59,1,8702,114,107,59,1,10215,4,3,97,102,108,16265,16269,16273,114,59,1,10630,59,3,55349,56675,117,115,59,1,10798,105,109,101,115,59,1,10805,4,2,97,112,16291,16304,114,4,2,59,103,16298,16300,1,41,116,59,1,10644,111,108,105,110,116,59,1,10770,97,114,114,59,1,8649,4,4,97,99,104,113,16328,16334,16339,16342,113,117,111,59,1,8250,114,59,3,55349,56519,59,1,8625,4,2,98,117,16348,16351,59,1,93,111,4,2,59,114,16358,16360,1,8217,59,1,8217,4,3,104,105,114,16371,16377,16383,114,101,101,59,1,8908,109,101,115,59,1,8906,105,4,4,59,101,102,108,16394,16396,16399,16402,1,9657,59,1,8885,59,1,9656,116,114,105,59,1,10702,108,117,104,97,114,59,1,10600,59,1,8478,4,19,97,98,99,100,101,102,104,105,108,109,111,112,113,114,115,116,117,119,122,16459,16466,16472,16572,16590,16672,16687,16746,16844,16850,16924,16963,16988,17115,17121,17154,17206,17614,17656,99,117,116,101,59,1,347,113,117,111,59,1,8218,4,10,59,69,97,99,101,105,110,112,115,121,16494,16496,16499,16513,16518,16531,16536,16556,16564,16569,1,8827,59,1,10932,4,2,112,114,16505,16508,59,1,10936,111,110,59,1,353,117,101,59,1,8829,4,2,59,100,16524,16526,1,10928,105,108,59,1,351,114,99,59,1,349,4,3,69,97,115,16544,16547,16551,59,1,10934,112,59,1,10938,105,109,59,1,8937,111,108,105,110,116,59,1,10771,105,109,59,1,8831,59,1,1089,111,116,4,3,59,98,101,16582,16584,16587,1,8901,59,1,8865,59,1,10854,4,7,65,97,99,109,115,116,120,16606,16611,16634,16642,16646,16652,16668,114,114,59,1,8664,114,4,2,104,114,16618,16622,107,59,1,10533,4,2,59,111,16628,16630,1,8600,119,59,1,8600,116,5,167,1,59,16640,1,167,105,59,1,59,119,97,114,59,1,10537,109,4,2,105,110,16659,16665,110,117,115,59,1,8726,59,1,8726,116,59,1,10038,114,4,2,59,111,16679,16682,3,55349,56624,119,110,59,1,8994,4,4,97,99,111,121,16697,16702,16716,16739,114,112,59,1,9839,4,2,104,121,16708,16713,99,121,59,1,1097,59,1,1096,114,116,4,2,109,112,16724,16729,105,100,59,1,8739,97,114,97,108,108,101,108,59,1,8741,5,173,1,59,16744,1,173,4,2,103,109,16752,16770,109,97,4,3,59,102,118,16762,16764,16767,1,963,59,1,962,59,1,962,4,8,59,100,101,103,108,110,112,114,16788,16790,16795,16806,16817,16828,16832,16838,1,8764,111,116,59,1,10858,4,2,59,113,16801,16803,1,8771,59,1,8771,4,2,59,69,16812,16814,1,10910,59,1,10912,4,2,59,69,16823,16825,1,10909,59,1,10911,101,59,1,8774,108,117,115,59,1,10788,97,114,114,59,1,10610,97,114,114,59,1,8592,4,4,97,101,105,116,16860,16883,16891,16904,4,2,108,115,16866,16878,108,115,101,116,109,105,110,117,115,59,1,8726,104,112,59,1,10803,112,97,114,115,108,59,1,10724,4,2,100,108,16897,16900,59,1,8739,101,59,1,8995,4,2,59,101,16910,16912,1,10922,4,2,59,115,16918,16920,1,10924,59,3,10924,65024,4,3,102,108,112,16932,16938,16958,116,99,121,59,1,1100,4,2,59,98,16944,16946,1,47,4,2,59,97,16952,16954,1,10692,114,59,1,9023,102,59,3,55349,56676,97,4,2,100,114,16970,16985,101,115,4,2,59,117,16978,16980,1,9824,105,116,59,1,9824,59,1,8741,4,3,99,115,117,16996,17028,17089,4,2,97,117,17002,17015,112,4,2,59,115,17009,17011,1,8851,59,3,8851,65024,112,4,2,59,115,17022,17024,1,8852,59,3,8852,65024,117,4,2,98,112,17035,17062,4,3,59,101,115,17043,17045,17048,1,8847,59,1,8849,101,116,4,2,59,101,17056,17058,1,8847,113,59,1,8849,4,3,59,101,115,17070,17072,17075,1,8848,59,1,8850,101,116,4,2,59,101,17083,17085,1,8848,113,59,1,8850,4,3,59,97,102,17097,17099,17112,1,9633,114,4,2,101,102,17106,17109,59,1,9633,59,1,9642,59,1,9642,97,114,114,59,1,8594,4,4,99,101,109,116,17131,17136,17142,17148,114,59,3,55349,56520,116,109,110,59,1,8726,105,108,101,59,1,8995,97,114,102,59,1,8902,4,2,97,114,17160,17172,114,4,2,59,102,17167,17169,1,9734,59,1,9733,4,2,97,110,17178,17202,105,103,104,116,4,2,101,112,17188,17197,112,115,105,108,111,110,59,1,1013,104,105,59,1,981,115,59,1,175,4,5,98,99,109,110,112,17218,17351,17420,17423,17427,4,9,59,69,100,101,109,110,112,114,115,17238,17240,17243,17248,17261,17267,17279,17285,17291,1,8834,59,1,10949,111,116,59,1,10941,4,2,59,100,17254,17256,1,8838,111,116,59,1,10947,117,108,116,59,1,10945,4,2,69,101,17273,17276,59,1,10955,59,1,8842,108,117,115,59,1,10943,97,114,114,59,1,10617,4,3,101,105,117,17299,17335,17339,116,4,3,59,101,110,17308,17310,17322,1,8834,113,4,2,59,113,17317,17319,1,8838,59,1,10949,101,113,4,2,59,113,17330,17332,1,8842,59,1,10955,109,59,1,10951,4,2,98,112,17345,17348,59,1,10965,59,1,10963,99,4,6,59,97,99,101,110,115,17366,17368,17376,17385,17389,17415,1,8827,112,112,114,111,120,59,1,10936,117,114,108,121,101,113,59,1,8829,113,59,1,10928,4,3,97,101,115,17397,17405,17410,112,112,114,111,120,59,1,10938,113,113,59,1,10934,105,109,59,1,8937,105,109,59,1,8831,59,1,8721,103,59,1,9834,4,13,49,50,51,59,69,100,101,104,108,109,110,112,115,17455,17462,17469,17476,17478,17481,17496,17509,17524,17530,17536,17548,17554,5,185,1,59,17460,1,185,5,178,1,59,17467,1,178,5,179,1,59,17474,1,179,1,8835,59,1,10950,4,2,111,115,17487,17491,116,59,1,10942,117,98,59,1,10968,4,2,59,100,17502,17504,1,8839,111,116,59,1,10948,115,4,2,111,117,17516,17520,108,59,1,10185,98,59,1,10967,97,114,114,59,1,10619,117,108,116,59,1,10946,4,2,69,101,17542,17545,59,1,10956,59,1,8843,108,117,115,59,1,10944,4,3,101,105,117,17562,17598,17602,116,4,3,59,101,110,17571,17573,17585,1,8835,113,4,2,59,113,17580,17582,1,8839,59,1,10950,101,113,4,2,59,113,17593,17595,1,8843,59,1,10956,109,59,1,10952,4,2,98,112,17608,17611,59,1,10964,59,1,10966,4,3,65,97,110,17622,17627,17650,114,114,59,1,8665,114,4,2,104,114,17634,17638,107,59,1,10534,4,2,59,111,17644,17646,1,8601,119,59,1,8601,119,97,114,59,1,10538,108,105,103,5,223,1,59,17664,1,223,4,13,97,98,99,100,101,102,104,105,111,112,114,115,119,17694,17709,17714,17737,17742,17749,17754,17860,17905,17957,17964,18090,18122,4,2,114,117,17700,17706,103,101,116,59,1,8982,59,1,964,114,107,59,1,9140,4,3,97,101,121,17722,17728,17734,114,111,110,59,1,357,100,105,108,59,1,355,59,1,1090,111,116,59,1,8411,108,114,101,99,59,1,8981,114,59,3,55349,56625,4,4,101,105,107,111,17764,17805,17836,17851,4,2,114,116,17770,17786,101,4,2,52,102,17777,17780,59,1,8756,111,114,101,59,1,8756,97,4,3,59,115,118,17795,17797,17802,1,952,121,109,59,1,977,59,1,977,4,2,99,110,17811,17831,107,4,2,97,115,17818,17826,112,112,114,111,120,59,1,8776,105,109,59,1,8764,115,112,59,1,8201,4,2,97,115,17842,17846,112,59,1,8776,105,109,59,1,8764,114,110,5,254,1,59,17858,1,254,4,3,108,109,110,17868,17873,17901,100,101,59,1,732,101,115,5,215,3,59,98,100,17884,17886,17898,1,215,4,2,59,97,17892,17894,1,8864,114,59,1,10801,59,1,10800,116,59,1,8749,4,3,101,112,115,17913,17917,17953,97,59,1,10536,4,4,59,98,99,102,17927,17929,17934,17939,1,8868,111,116,59,1,9014,105,114,59,1,10993,4,2,59,111,17945,17948,3,55349,56677,114,107,59,1,10970,97,59,1,10537,114,105,109,101,59,1,8244,4,3,97,105,112,17972,17977,18082,100,101,59,1,8482,4,7,97,100,101,109,112,115,116,17993,18051,18056,18059,18066,18072,18076,110,103,108,101,4,5,59,100,108,113,114,18009,18011,18017,18032,18035,1,9653,111,119,110,59,1,9663,101,102,116,4,2,59,101,18026,18028,1,9667,113,59,1,8884,59,1,8796,105,103,104,116,4,2,59,101,18045,18047,1,9657,113,59,1,8885,111,116,59,1,9708,59,1,8796,105,110,117,115,59,1,10810,108,117,115,59,1,10809,98,59,1,10701,105,109,101,59,1,10811,101,122,105,117,109,59,1,9186,4,3,99,104,116,18098,18111,18116,4,2,114,121,18104,18108,59,3,55349,56521,59,1,1094,99,121,59,1,1115,114,111,107,59,1,359,4,2,105,111,18128,18133,120,116,59,1,8812,104,101,97,100,4,2,108,114,18143,18154,101,102,116,97,114,114,111,119,59,1,8606,105,103,104,116,97,114,114,111,119,59,1,8608,4,18,65,72,97,98,99,100,102,103,104,108,109,111,112,114,115,116,117,119,18204,18209,18214,18234,18250,18268,18292,18308,18319,18343,18379,18397,18413,18504,18547,18553,18584,18603,114,114,59,1,8657,97,114,59,1,10595,4,2,99,114,18220,18230,117,116,101,5,250,1,59,18228,1,250,114,59,1,8593,114,4,2,99,101,18241,18245,121,59,1,1118,118,101,59,1,365,4,2,105,121,18256,18265,114,99,5,251,1,59,18263,1,251,59,1,1091,4,3,97,98,104,18276,18281,18287,114,114,59,1,8645,108,97,99,59,1,369,97,114,59,1,10606,4,2,105,114,18298,18304,115,104,116,59,1,10622,59,3,55349,56626,114,97,118,101,5,249,1,59,18317,1,249,4,2,97,98,18325,18338,114,4,2,108,114,18332,18335,59,1,8639,59,1,8638,108,107,59,1,9600,4,2,99,116,18349,18374,4,2,111,114,18355,18369,114,110,4,2,59,101,18363,18365,1,8988,114,59,1,8988,111,112,59,1,8975,114,105,59,1,9720,4,2,97,108,18385,18390,99,114,59,1,363,5,168,1,59,18395,1,168,4,2,103,112,18403,18408,111,110,59,1,371,102,59,3,55349,56678,4,6,97,100,104,108,115,117,18427,18434,18445,18470,18475,18494,114,114,111,119,59,1,8593,111,119,110,97,114,114,111,119,59,1,8597,97,114,112,111,111,110,4,2,108,114,18457,18463,101,102,116,59,1,8639,105,103,104,116,59,1,8638,117,115,59,1,8846,105,4,3,59,104,108,18484,18486,18489,1,965,59,1,978,111,110,59,1,965,112,97,114,114,111,119,115,59,1,8648,4,3,99,105,116,18512,18537,18542,4,2,111,114,18518,18532,114,110,4,2,59,101,18526,18528,1,8989,114,59,1,8989,111,112,59,1,8974,110,103,59,1,367,114,105,59,1,9721,99,114,59,3,55349,56522,4,3,100,105,114,18561,18566,18572,111,116,59,1,8944,108,100,101,59,1,361,105,4,2,59,102,18579,18581,1,9653,59,1,9652,4,2,97,109,18590,18595,114,114,59,1,8648,108,5,252,1,59,18601,1,252,97,110,103,108,101,59,1,10663,4,15,65,66,68,97,99,100,101,102,108,110,111,112,114,115,122,18643,18648,18661,18667,18847,18851,18857,18904,18909,18915,18931,18937,18943,18949,18996,114,114,59,1,8661,97,114,4,2,59,118,18656,18658,1,10984,59,1,10985,97,115,104,59,1,8872,4,2,110,114,18673,18679,103,114,116,59,1,10652,4,7,101,107,110,112,114,115,116,18695,18704,18711,18720,18742,18754,18810,112,115,105,108,111,110,59,1,1013,97,112,112,97,59,1,1008,111,116,104,105,110,103,59,1,8709,4,3,104,105,114,18728,18732,18735,105,59,1,981,59,1,982,111,112,116,111,59,1,8733,4,2,59,104,18748,18750,1,8597,111,59,1,1009,4,2,105,117,18760,18766,103,109,97,59,1,962,4,2,98,112,18772,18791,115,101,116,110,101,113,4,2,59,113,18784,18787,3,8842,65024,59,3,10955,65024,115,101,116,110,101,113,4,2,59,113,18803,18806,3,8843,65024,59,3,10956,65024,4,2,104,114,18816,18822,101,116,97,59,1,977,105,97,110,103,108,101,4,2,108,114,18834,18840,101,102,116,59,1,8882,105,103,104,116,59,1,8883,121,59,1,1074,97,115,104,59,1,8866,4,3,101,108,114,18865,18884,18890,4,3,59,98,101,18873,18875,18880,1,8744,97,114,59,1,8891,113,59,1,8794,108,105,112,59,1,8942,4,2,98,116,18896,18901,97,114,59,1,124,59,1,124,114,59,3,55349,56627,116,114,105,59,1,8882,115,117,4,2,98,112,18923,18927,59,3,8834,8402,59,3,8835,8402,112,102,59,3,55349,56679,114,111,112,59,1,8733,116,114,105,59,1,8883,4,2,99,117,18955,18960,114,59,3,55349,56523,4,2,98,112,18966,18981,110,4,2,69,101,18973,18977,59,3,10955,65024,59,3,8842,65024,110,4,2,69,101,18988,18992,59,3,10956,65024,59,3,8843,65024,105,103,122,97,103,59,1,10650,4,7,99,101,102,111,112,114,115,19020,19026,19061,19066,19072,19075,19089,105,114,99,59,1,373,4,2,100,105,19032,19055,4,2,98,103,19038,19043,97,114,59,1,10847,101,4,2,59,113,19050,19052,1,8743,59,1,8793,101,114,112,59,1,8472,114,59,3,55349,56628,112,102,59,3,55349,56680,59,1,8472,4,2,59,101,19081,19083,1,8768,97,116,104,59,1,8768,99,114,59,3,55349,56524,4,14,99,100,102,104,105,108,109,110,111,114,115,117,118,119,19125,19146,19152,19157,19173,19176,19192,19197,19202,19236,19252,19269,19286,19291,4,3,97,105,117,19133,19137,19142,112,59,1,8898,114,99,59,1,9711,112,59,1,8899,116,114,105,59,1,9661,114,59,3,55349,56629,4,2,65,97,19163,19168,114,114,59,1,10234,114,114,59,1,10231,59,1,958,4,2,65,97,19182,19187,114,114,59,1,10232,114,114,59,1,10229,97,112,59,1,10236,105,115,59,1,8955,4,3,100,112,116,19210,19215,19230,111,116,59,1,10752,4,2,102,108,19221,19225,59,3,55349,56681,117,115,59,1,10753,105,109,101,59,1,10754,4,2,65,97,19242,19247,114,114,59,1,10233,114,114,59,1,10230,4,2,99,113,19258,19263,114,59,3,55349,56525,99,117,112,59,1,10758,4,2,112,116,19275,19281,108,117,115,59,1,10756,114,105,59,1,9651,101,101,59,1,8897,101,100,103,101,59,1,8896,4,8,97,99,101,102,105,111,115,117,19316,19335,19349,19357,19362,19367,19373,19379,99,4,2,117,121,19323,19332,116,101,5,253,1,59,19330,1,253,59,1,1103,4,2,105,121,19341,19346,114,99,59,1,375,59,1,1099,110,5,165,1,59,19355,1,165,114,59,3,55349,56630,99,121,59,1,1111,112,102,59,3,55349,56682,99,114,59,3,55349,56526,4,2,99,109,19385,19389,121,59,1,1102,108,5,255,1,59,19395,1,255,4,10,97,99,100,101,102,104,105,111,115,119,19419,19426,19441,19446,19462,19467,19472,19480,19486,19492,99,117,116,101,59,1,378,4,2,97,121,19432,19438,114,111,110,59,1,382,59,1,1079,111,116,59,1,380,4,2,101,116,19452,19458,116,114,102,59,1,8488,97,59,1,950,114,59,3,55349,56631,99,121,59,1,1078,103,114,97,114,114,59,1,8669,112,102,59,3,55349,56683,99,114,59,3,55349,56527,4,2,106,110,19498,19501,59,1,8205,106,59,1,8204]);\n\nconst Preprocessor = preprocessor;\nconst unicode$1 = unicode$3;\nconst neTree = namedEntityData;\nconst ERR$1 = errorCodes;\n\n//Aliases\nconst $$5 = unicode$1.CODE_POINTS;\nconst $$ = unicode$1.CODE_POINT_SEQUENCES;\n\n//C1 Unicode control character reference replacements\nconst C1_CONTROLS_REFERENCE_REPLACEMENTS = {\n 0x80: 0x20ac,\n 0x82: 0x201a,\n 0x83: 0x0192,\n 0x84: 0x201e,\n 0x85: 0x2026,\n 0x86: 0x2020,\n 0x87: 0x2021,\n 0x88: 0x02c6,\n 0x89: 0x2030,\n 0x8a: 0x0160,\n 0x8b: 0x2039,\n 0x8c: 0x0152,\n 0x8e: 0x017d,\n 0x91: 0x2018,\n 0x92: 0x2019,\n 0x93: 0x201c,\n 0x94: 0x201d,\n 0x95: 0x2022,\n 0x96: 0x2013,\n 0x97: 0x2014,\n 0x98: 0x02dc,\n 0x99: 0x2122,\n 0x9a: 0x0161,\n 0x9b: 0x203a,\n 0x9c: 0x0153,\n 0x9e: 0x017e,\n 0x9f: 0x0178\n};\n\n// Named entity tree flags\nconst HAS_DATA_FLAG = 1 << 0;\nconst DATA_DUPLET_FLAG = 1 << 1;\nconst HAS_BRANCHES_FLAG = 1 << 2;\nconst MAX_BRANCH_MARKER_VALUE = HAS_DATA_FLAG | DATA_DUPLET_FLAG | HAS_BRANCHES_FLAG;\n\n//States\nconst DATA_STATE = 'DATA_STATE';\nconst RCDATA_STATE = 'RCDATA_STATE';\nconst RAWTEXT_STATE = 'RAWTEXT_STATE';\nconst SCRIPT_DATA_STATE = 'SCRIPT_DATA_STATE';\nconst PLAINTEXT_STATE = 'PLAINTEXT_STATE';\nconst TAG_OPEN_STATE = 'TAG_OPEN_STATE';\nconst END_TAG_OPEN_STATE = 'END_TAG_OPEN_STATE';\nconst TAG_NAME_STATE = 'TAG_NAME_STATE';\nconst RCDATA_LESS_THAN_SIGN_STATE = 'RCDATA_LESS_THAN_SIGN_STATE';\nconst RCDATA_END_TAG_OPEN_STATE = 'RCDATA_END_TAG_OPEN_STATE';\nconst RCDATA_END_TAG_NAME_STATE = 'RCDATA_END_TAG_NAME_STATE';\nconst RAWTEXT_LESS_THAN_SIGN_STATE = 'RAWTEXT_LESS_THAN_SIGN_STATE';\nconst RAWTEXT_END_TAG_OPEN_STATE = 'RAWTEXT_END_TAG_OPEN_STATE';\nconst RAWTEXT_END_TAG_NAME_STATE = 'RAWTEXT_END_TAG_NAME_STATE';\nconst SCRIPT_DATA_LESS_THAN_SIGN_STATE = 'SCRIPT_DATA_LESS_THAN_SIGN_STATE';\nconst SCRIPT_DATA_END_TAG_OPEN_STATE = 'SCRIPT_DATA_END_TAG_OPEN_STATE';\nconst SCRIPT_DATA_END_TAG_NAME_STATE = 'SCRIPT_DATA_END_TAG_NAME_STATE';\nconst SCRIPT_DATA_ESCAPE_START_STATE = 'SCRIPT_DATA_ESCAPE_START_STATE';\nconst SCRIPT_DATA_ESCAPE_START_DASH_STATE = 'SCRIPT_DATA_ESCAPE_START_DASH_STATE';\nconst SCRIPT_DATA_ESCAPED_STATE = 'SCRIPT_DATA_ESCAPED_STATE';\nconst SCRIPT_DATA_ESCAPED_DASH_STATE = 'SCRIPT_DATA_ESCAPED_DASH_STATE';\nconst SCRIPT_DATA_ESCAPED_DASH_DASH_STATE = 'SCRIPT_DATA_ESCAPED_DASH_DASH_STATE';\nconst SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE = 'SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE';\nconst SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE = 'SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE';\nconst SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE = 'SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE';\nconst SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE';\nconst SCRIPT_DATA_DOUBLE_ESCAPED_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPED_STATE';\nconst SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE';\nconst SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE';\nconst SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE';\nconst SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE';\nconst BEFORE_ATTRIBUTE_NAME_STATE = 'BEFORE_ATTRIBUTE_NAME_STATE';\nconst ATTRIBUTE_NAME_STATE = 'ATTRIBUTE_NAME_STATE';\nconst AFTER_ATTRIBUTE_NAME_STATE = 'AFTER_ATTRIBUTE_NAME_STATE';\nconst BEFORE_ATTRIBUTE_VALUE_STATE = 'BEFORE_ATTRIBUTE_VALUE_STATE';\nconst ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE = 'ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE';\nconst ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE = 'ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE';\nconst ATTRIBUTE_VALUE_UNQUOTED_STATE = 'ATTRIBUTE_VALUE_UNQUOTED_STATE';\nconst AFTER_ATTRIBUTE_VALUE_QUOTED_STATE = 'AFTER_ATTRIBUTE_VALUE_QUOTED_STATE';\nconst SELF_CLOSING_START_TAG_STATE = 'SELF_CLOSING_START_TAG_STATE';\nconst BOGUS_COMMENT_STATE = 'BOGUS_COMMENT_STATE';\nconst MARKUP_DECLARATION_OPEN_STATE = 'MARKUP_DECLARATION_OPEN_STATE';\nconst COMMENT_START_STATE = 'COMMENT_START_STATE';\nconst COMMENT_START_DASH_STATE = 'COMMENT_START_DASH_STATE';\nconst COMMENT_STATE = 'COMMENT_STATE';\nconst COMMENT_LESS_THAN_SIGN_STATE = 'COMMENT_LESS_THAN_SIGN_STATE';\nconst COMMENT_LESS_THAN_SIGN_BANG_STATE = 'COMMENT_LESS_THAN_SIGN_BANG_STATE';\nconst COMMENT_LESS_THAN_SIGN_BANG_DASH_STATE = 'COMMENT_LESS_THAN_SIGN_BANG_DASH_STATE';\nconst COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH_STATE = 'COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH_STATE';\nconst COMMENT_END_DASH_STATE = 'COMMENT_END_DASH_STATE';\nconst COMMENT_END_STATE = 'COMMENT_END_STATE';\nconst COMMENT_END_BANG_STATE = 'COMMENT_END_BANG_STATE';\nconst DOCTYPE_STATE = 'DOCTYPE_STATE';\nconst BEFORE_DOCTYPE_NAME_STATE = 'BEFORE_DOCTYPE_NAME_STATE';\nconst DOCTYPE_NAME_STATE = 'DOCTYPE_NAME_STATE';\nconst AFTER_DOCTYPE_NAME_STATE = 'AFTER_DOCTYPE_NAME_STATE';\nconst AFTER_DOCTYPE_PUBLIC_KEYWORD_STATE = 'AFTER_DOCTYPE_PUBLIC_KEYWORD_STATE';\nconst BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE = 'BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE';\nconst DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE = 'DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE';\nconst DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE = 'DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE';\nconst AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE = 'AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE';\nconst BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE = 'BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE';\nconst AFTER_DOCTYPE_SYSTEM_KEYWORD_STATE = 'AFTER_DOCTYPE_SYSTEM_KEYWORD_STATE';\nconst BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE = 'BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE';\nconst DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE = 'DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE';\nconst DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE = 'DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE';\nconst AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE = 'AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE';\nconst BOGUS_DOCTYPE_STATE = 'BOGUS_DOCTYPE_STATE';\nconst CDATA_SECTION_STATE = 'CDATA_SECTION_STATE';\nconst CDATA_SECTION_BRACKET_STATE = 'CDATA_SECTION_BRACKET_STATE';\nconst CDATA_SECTION_END_STATE = 'CDATA_SECTION_END_STATE';\nconst CHARACTER_REFERENCE_STATE = 'CHARACTER_REFERENCE_STATE';\nconst NAMED_CHARACTER_REFERENCE_STATE = 'NAMED_CHARACTER_REFERENCE_STATE';\nconst AMBIGUOUS_AMPERSAND_STATE = 'AMBIGUOS_AMPERSAND_STATE';\nconst NUMERIC_CHARACTER_REFERENCE_STATE = 'NUMERIC_CHARACTER_REFERENCE_STATE';\nconst HEXADEMICAL_CHARACTER_REFERENCE_START_STATE = 'HEXADEMICAL_CHARACTER_REFERENCE_START_STATE';\nconst DECIMAL_CHARACTER_REFERENCE_START_STATE = 'DECIMAL_CHARACTER_REFERENCE_START_STATE';\nconst HEXADEMICAL_CHARACTER_REFERENCE_STATE = 'HEXADEMICAL_CHARACTER_REFERENCE_STATE';\nconst DECIMAL_CHARACTER_REFERENCE_STATE = 'DECIMAL_CHARACTER_REFERENCE_STATE';\nconst NUMERIC_CHARACTER_REFERENCE_END_STATE = 'NUMERIC_CHARACTER_REFERENCE_END_STATE';\n\n//Utils\n\n//OPTIMIZATION: these utility functions should not be moved out of this module. V8 Crankshaft will not inline\n//this functions if they will be situated in another module due to context switch.\n//Always perform inlining check before modifying this functions ('node --trace-inlining').\nfunction isWhitespace(cp) {\n return cp === $$5.SPACE || cp === $$5.LINE_FEED || cp === $$5.TABULATION || cp === $$5.FORM_FEED;\n}\n\nfunction isAsciiDigit(cp) {\n return cp >= $$5.DIGIT_0 && cp <= $$5.DIGIT_9;\n}\n\nfunction isAsciiUpper(cp) {\n return cp >= $$5.LATIN_CAPITAL_A && cp <= $$5.LATIN_CAPITAL_Z;\n}\n\nfunction isAsciiLower(cp) {\n return cp >= $$5.LATIN_SMALL_A && cp <= $$5.LATIN_SMALL_Z;\n}\n\nfunction isAsciiLetter(cp) {\n return isAsciiLower(cp) || isAsciiUpper(cp);\n}\n\nfunction isAsciiAlphaNumeric(cp) {\n return isAsciiLetter(cp) || isAsciiDigit(cp);\n}\n\nfunction isAsciiUpperHexDigit(cp) {\n return cp >= $$5.LATIN_CAPITAL_A && cp <= $$5.LATIN_CAPITAL_F;\n}\n\nfunction isAsciiLowerHexDigit(cp) {\n return cp >= $$5.LATIN_SMALL_A && cp <= $$5.LATIN_SMALL_F;\n}\n\nfunction isAsciiHexDigit(cp) {\n return isAsciiDigit(cp) || isAsciiUpperHexDigit(cp) || isAsciiLowerHexDigit(cp);\n}\n\nfunction toAsciiLowerCodePoint(cp) {\n return cp + 0x0020;\n}\n\n//NOTE: String.fromCharCode() function can handle only characters from BMP subset.\n//So, we need to workaround this manually.\n//(see: https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/fromCharCode#Getting_it_to_work_with_higher_values)\nfunction toChar(cp) {\n if (cp <= 0xffff) {\n return String.fromCharCode(cp);\n }\n\n cp -= 0x10000;\n return String.fromCharCode(((cp >>> 10) & 0x3ff) | 0xd800) + String.fromCharCode(0xdc00 | (cp & 0x3ff));\n}\n\nfunction toAsciiLowerChar(cp) {\n return String.fromCharCode(toAsciiLowerCodePoint(cp));\n}\n\nfunction findNamedEntityTreeBranch(nodeIx, cp) {\n const branchCount = neTree[++nodeIx];\n let lo = ++nodeIx;\n let hi = lo + branchCount - 1;\n\n while (lo <= hi) {\n const mid = (lo + hi) >>> 1;\n const midCp = neTree[mid];\n\n if (midCp < cp) {\n lo = mid + 1;\n } else if (midCp > cp) {\n hi = mid - 1;\n } else {\n return neTree[mid + branchCount];\n }\n }\n\n return -1;\n}\n\n//Tokenizer\nlet Tokenizer$4 = class Tokenizer {\n constructor() {\n this.preprocessor = new Preprocessor();\n\n this.tokenQueue = [];\n\n this.allowCDATA = false;\n\n this.state = DATA_STATE;\n this.returnState = '';\n\n this.charRefCode = -1;\n this.tempBuff = [];\n this.lastStartTagName = '';\n\n this.consumedAfterSnapshot = -1;\n this.active = false;\n\n this.currentCharacterToken = null;\n this.currentToken = null;\n this.currentAttr = null;\n }\n\n //Errors\n _err() {\n // NOTE: err reporting is noop by default. Enabled by mixin.\n }\n\n _errOnNextCodePoint(err) {\n this._consume();\n this._err(err);\n this._unconsume();\n }\n\n //API\n getNextToken() {\n while (!this.tokenQueue.length && this.active) {\n this.consumedAfterSnapshot = 0;\n\n const cp = this._consume();\n\n if (!this._ensureHibernation()) {\n this[this.state](cp);\n }\n }\n\n return this.tokenQueue.shift();\n }\n\n write(chunk, isLastChunk) {\n this.active = true;\n this.preprocessor.write(chunk, isLastChunk);\n }\n\n insertHtmlAtCurrentPos(chunk) {\n this.active = true;\n this.preprocessor.insertHtmlAtCurrentPos(chunk);\n }\n\n //Hibernation\n _ensureHibernation() {\n if (this.preprocessor.endOfChunkHit) {\n for (; this.consumedAfterSnapshot > 0; this.consumedAfterSnapshot--) {\n this.preprocessor.retreat();\n }\n\n this.active = false;\n this.tokenQueue.push({ type: Tokenizer.HIBERNATION_TOKEN });\n\n return true;\n }\n\n return false;\n }\n\n //Consumption\n _consume() {\n this.consumedAfterSnapshot++;\n return this.preprocessor.advance();\n }\n\n _unconsume() {\n this.consumedAfterSnapshot--;\n this.preprocessor.retreat();\n }\n\n _reconsumeInState(state) {\n this.state = state;\n this._unconsume();\n }\n\n _consumeSequenceIfMatch(pattern, startCp, caseSensitive) {\n let consumedCount = 0;\n let isMatch = true;\n const patternLength = pattern.length;\n let patternPos = 0;\n let cp = startCp;\n let patternCp = void 0;\n\n for (; patternPos < patternLength; patternPos++) {\n if (patternPos > 0) {\n cp = this._consume();\n consumedCount++;\n }\n\n if (cp === $$5.EOF) {\n isMatch = false;\n break;\n }\n\n patternCp = pattern[patternPos];\n\n if (cp !== patternCp && (caseSensitive || cp !== toAsciiLowerCodePoint(patternCp))) {\n isMatch = false;\n break;\n }\n }\n\n if (!isMatch) {\n while (consumedCount--) {\n this._unconsume();\n }\n }\n\n return isMatch;\n }\n\n //Temp buffer\n _isTempBufferEqualToScriptString() {\n if (this.tempBuff.length !== $$.SCRIPT_STRING.length) {\n return false;\n }\n\n for (let i = 0; i < this.tempBuff.length; i++) {\n if (this.tempBuff[i] !== $$.SCRIPT_STRING[i]) {\n return false;\n }\n }\n\n return true;\n }\n\n //Token creation\n _createStartTagToken() {\n this.currentToken = {\n type: Tokenizer.START_TAG_TOKEN,\n tagName: '',\n selfClosing: false,\n ackSelfClosing: false,\n attrs: []\n };\n }\n\n _createEndTagToken() {\n this.currentToken = {\n type: Tokenizer.END_TAG_TOKEN,\n tagName: '',\n selfClosing: false,\n attrs: []\n };\n }\n\n _createCommentToken() {\n this.currentToken = {\n type: Tokenizer.COMMENT_TOKEN,\n data: ''\n };\n }\n\n _createDoctypeToken(initialName) {\n this.currentToken = {\n type: Tokenizer.DOCTYPE_TOKEN,\n name: initialName,\n forceQuirks: false,\n publicId: null,\n systemId: null\n };\n }\n\n _createCharacterToken(type, ch) {\n this.currentCharacterToken = {\n type: type,\n chars: ch\n };\n }\n\n _createEOFToken() {\n this.currentToken = { type: Tokenizer.EOF_TOKEN };\n }\n\n //Tag attributes\n _createAttr(attrNameFirstCh) {\n this.currentAttr = {\n name: attrNameFirstCh,\n value: ''\n };\n }\n\n _leaveAttrName(toState) {\n if (Tokenizer.getTokenAttr(this.currentToken, this.currentAttr.name) === null) {\n this.currentToken.attrs.push(this.currentAttr);\n } else {\n this._err(ERR$1.duplicateAttribute);\n }\n\n this.state = toState;\n }\n\n _leaveAttrValue(toState) {\n this.state = toState;\n }\n\n //Token emission\n _emitCurrentToken() {\n this._emitCurrentCharacterToken();\n\n const ct = this.currentToken;\n\n this.currentToken = null;\n\n //NOTE: store emited start tag's tagName to determine is the following end tag token is appropriate.\n if (ct.type === Tokenizer.START_TAG_TOKEN) {\n this.lastStartTagName = ct.tagName;\n } else if (ct.type === Tokenizer.END_TAG_TOKEN) {\n if (ct.attrs.length > 0) {\n this._err(ERR$1.endTagWithAttributes);\n }\n\n if (ct.selfClosing) {\n this._err(ERR$1.endTagWithTrailingSolidus);\n }\n }\n\n this.tokenQueue.push(ct);\n }\n\n _emitCurrentCharacterToken() {\n if (this.currentCharacterToken) {\n this.tokenQueue.push(this.currentCharacterToken);\n this.currentCharacterToken = null;\n }\n }\n\n _emitEOFToken() {\n this._createEOFToken();\n this._emitCurrentToken();\n }\n\n //Characters emission\n\n //OPTIMIZATION: specification uses only one type of character tokens (one token per character).\n //This causes a huge memory overhead and a lot of unnecessary parser loops. parse5 uses 3 groups of characters.\n //If we have a sequence of characters that belong to the same group, parser can process it\n //as a single solid character token.\n //So, there are 3 types of character tokens in parse5:\n //1)NULL_CHARACTER_TOKEN - \\u0000-character sequences (e.g. '\\u0000\\u0000\\u0000')\n //2)WHITESPACE_CHARACTER_TOKEN - any whitespace/new-line character sequences (e.g. '\\n \\r\\t \\f')\n //3)CHARACTER_TOKEN - any character sequence which don't belong to groups 1 and 2 (e.g. 'abcdef1234@@#$%^')\n _appendCharToCurrentCharacterToken(type, ch) {\n if (this.currentCharacterToken && this.currentCharacterToken.type !== type) {\n this._emitCurrentCharacterToken();\n }\n\n if (this.currentCharacterToken) {\n this.currentCharacterToken.chars += ch;\n } else {\n this._createCharacterToken(type, ch);\n }\n }\n\n _emitCodePoint(cp) {\n let type = Tokenizer.CHARACTER_TOKEN;\n\n if (isWhitespace(cp)) {\n type = Tokenizer.WHITESPACE_CHARACTER_TOKEN;\n } else if (cp === $$5.NULL) {\n type = Tokenizer.NULL_CHARACTER_TOKEN;\n }\n\n this._appendCharToCurrentCharacterToken(type, toChar(cp));\n }\n\n _emitSeveralCodePoints(codePoints) {\n for (let i = 0; i < codePoints.length; i++) {\n this._emitCodePoint(codePoints[i]);\n }\n }\n\n //NOTE: used then we emit character explicitly. This is always a non-whitespace and a non-null character.\n //So we can avoid additional checks here.\n _emitChars(ch) {\n this._appendCharToCurrentCharacterToken(Tokenizer.CHARACTER_TOKEN, ch);\n }\n\n // Character reference helpers\n _matchNamedCharacterReference(startCp) {\n let result = null;\n let excess = 1;\n let i = findNamedEntityTreeBranch(0, startCp);\n\n this.tempBuff.push(startCp);\n\n while (i > -1) {\n const current = neTree[i];\n const inNode = current < MAX_BRANCH_MARKER_VALUE;\n const nodeWithData = inNode && current & HAS_DATA_FLAG;\n\n if (nodeWithData) {\n //NOTE: we use greedy search, so we continue lookup at this point\n result = current & DATA_DUPLET_FLAG ? [neTree[++i], neTree[++i]] : [neTree[++i]];\n excess = 0;\n }\n\n const cp = this._consume();\n\n this.tempBuff.push(cp);\n excess++;\n\n if (cp === $$5.EOF) {\n break;\n }\n\n if (inNode) {\n i = current & HAS_BRANCHES_FLAG ? findNamedEntityTreeBranch(i, cp) : -1;\n } else {\n i = cp === current ? ++i : -1;\n }\n }\n\n while (excess--) {\n this.tempBuff.pop();\n this._unconsume();\n }\n\n return result;\n }\n\n _isCharacterReferenceInAttribute() {\n return (\n this.returnState === ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE ||\n this.returnState === ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE ||\n this.returnState === ATTRIBUTE_VALUE_UNQUOTED_STATE\n );\n }\n\n _isCharacterReferenceAttributeQuirk(withSemicolon) {\n if (!withSemicolon && this._isCharacterReferenceInAttribute()) {\n const nextCp = this._consume();\n\n this._unconsume();\n\n return nextCp === $$5.EQUALS_SIGN || isAsciiAlphaNumeric(nextCp);\n }\n\n return false;\n }\n\n _flushCodePointsConsumedAsCharacterReference() {\n if (this._isCharacterReferenceInAttribute()) {\n for (let i = 0; i < this.tempBuff.length; i++) {\n this.currentAttr.value += toChar(this.tempBuff[i]);\n }\n } else {\n this._emitSeveralCodePoints(this.tempBuff);\n }\n\n this.tempBuff = [];\n }\n\n // State machine\n\n // Data state\n //------------------------------------------------------------------\n [DATA_STATE](cp) {\n this.preprocessor.dropParsedChunk();\n\n if (cp === $$5.LESS_THAN_SIGN) {\n this.state = TAG_OPEN_STATE;\n } else if (cp === $$5.AMPERSAND) {\n this.returnState = DATA_STATE;\n this.state = CHARACTER_REFERENCE_STATE;\n } else if (cp === $$5.NULL) {\n this._err(ERR$1.unexpectedNullCharacter);\n this._emitCodePoint(cp);\n } else if (cp === $$5.EOF) {\n this._emitEOFToken();\n } else {\n this._emitCodePoint(cp);\n }\n }\n\n // RCDATA state\n //------------------------------------------------------------------\n [RCDATA_STATE](cp) {\n this.preprocessor.dropParsedChunk();\n\n if (cp === $$5.AMPERSAND) {\n this.returnState = RCDATA_STATE;\n this.state = CHARACTER_REFERENCE_STATE;\n } else if (cp === $$5.LESS_THAN_SIGN) {\n this.state = RCDATA_LESS_THAN_SIGN_STATE;\n } else if (cp === $$5.NULL) {\n this._err(ERR$1.unexpectedNullCharacter);\n this._emitChars(unicode$1.REPLACEMENT_CHARACTER);\n } else if (cp === $$5.EOF) {\n this._emitEOFToken();\n } else {\n this._emitCodePoint(cp);\n }\n }\n\n // RAWTEXT state\n //------------------------------------------------------------------\n [RAWTEXT_STATE](cp) {\n this.preprocessor.dropParsedChunk();\n\n if (cp === $$5.LESS_THAN_SIGN) {\n this.state = RAWTEXT_LESS_THAN_SIGN_STATE;\n } else if (cp === $$5.NULL) {\n this._err(ERR$1.unexpectedNullCharacter);\n this._emitChars(unicode$1.REPLACEMENT_CHARACTER);\n } else if (cp === $$5.EOF) {\n this._emitEOFToken();\n } else {\n this._emitCodePoint(cp);\n }\n }\n\n // Script data state\n //------------------------------------------------------------------\n [SCRIPT_DATA_STATE](cp) {\n this.preprocessor.dropParsedChunk();\n\n if (cp === $$5.LESS_THAN_SIGN) {\n this.state = SCRIPT_DATA_LESS_THAN_SIGN_STATE;\n } else if (cp === $$5.NULL) {\n this._err(ERR$1.unexpectedNullCharacter);\n this._emitChars(unicode$1.REPLACEMENT_CHARACTER);\n } else if (cp === $$5.EOF) {\n this._emitEOFToken();\n } else {\n this._emitCodePoint(cp);\n }\n }\n\n // PLAINTEXT state\n //------------------------------------------------------------------\n [PLAINTEXT_STATE](cp) {\n this.preprocessor.dropParsedChunk();\n\n if (cp === $$5.NULL) {\n this._err(ERR$1.unexpectedNullCharacter);\n this._emitChars(unicode$1.REPLACEMENT_CHARACTER);\n } else if (cp === $$5.EOF) {\n this._emitEOFToken();\n } else {\n this._emitCodePoint(cp);\n }\n }\n\n // Tag open state\n //------------------------------------------------------------------\n [TAG_OPEN_STATE](cp) {\n if (cp === $$5.EXCLAMATION_MARK) {\n this.state = MARKUP_DECLARATION_OPEN_STATE;\n } else if (cp === $$5.SOLIDUS) {\n this.state = END_TAG_OPEN_STATE;\n } else if (isAsciiLetter(cp)) {\n this._createStartTagToken();\n this._reconsumeInState(TAG_NAME_STATE);\n } else if (cp === $$5.QUESTION_MARK) {\n this._err(ERR$1.unexpectedQuestionMarkInsteadOfTagName);\n this._createCommentToken();\n this._reconsumeInState(BOGUS_COMMENT_STATE);\n } else if (cp === $$5.EOF) {\n this._err(ERR$1.eofBeforeTagName);\n this._emitChars('<');\n this._emitEOFToken();\n } else {\n this._err(ERR$1.invalidFirstCharacterOfTagName);\n this._emitChars('<');\n this._reconsumeInState(DATA_STATE);\n }\n }\n\n // End tag open state\n //------------------------------------------------------------------\n [END_TAG_OPEN_STATE](cp) {\n if (isAsciiLetter(cp)) {\n this._createEndTagToken();\n this._reconsumeInState(TAG_NAME_STATE);\n } else if (cp === $$5.GREATER_THAN_SIGN) {\n this._err(ERR$1.missingEndTagName);\n this.state = DATA_STATE;\n } else if (cp === $$5.EOF) {\n this._err(ERR$1.eofBeforeTagName);\n this._emitChars('</');\n this._emitEOFToken();\n } else {\n this._err(ERR$1.invalidFirstCharacterOfTagName);\n this._createCommentToken();\n this._reconsumeInState(BOGUS_COMMENT_STATE);\n }\n }\n\n // Tag name state\n //------------------------------------------------------------------\n [TAG_NAME_STATE](cp) {\n if (isWhitespace(cp)) {\n this.state = BEFORE_ATTRIBUTE_NAME_STATE;\n } else if (cp === $$5.SOLIDUS) {\n this.state = SELF_CLOSING_START_TAG_STATE;\n } else if (cp === $$5.GREATER_THAN_SIGN) {\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (isAsciiUpper(cp)) {\n this.currentToken.tagName += toAsciiLowerChar(cp);\n } else if (cp === $$5.NULL) {\n this._err(ERR$1.unexpectedNullCharacter);\n this.currentToken.tagName += unicode$1.REPLACEMENT_CHARACTER;\n } else if (cp === $$5.EOF) {\n this._err(ERR$1.eofInTag);\n this._emitEOFToken();\n } else {\n this.currentToken.tagName += toChar(cp);\n }\n }\n\n // RCDATA less-than sign state\n //------------------------------------------------------------------\n [RCDATA_LESS_THAN_SIGN_STATE](cp) {\n if (cp === $$5.SOLIDUS) {\n this.tempBuff = [];\n this.state = RCDATA_END_TAG_OPEN_STATE;\n } else {\n this._emitChars('<');\n this._reconsumeInState(RCDATA_STATE);\n }\n }\n\n // RCDATA end tag open state\n //------------------------------------------------------------------\n [RCDATA_END_TAG_OPEN_STATE](cp) {\n if (isAsciiLetter(cp)) {\n this._createEndTagToken();\n this._reconsumeInState(RCDATA_END_TAG_NAME_STATE);\n } else {\n this._emitChars('</');\n this._reconsumeInState(RCDATA_STATE);\n }\n }\n\n // RCDATA end tag name state\n //------------------------------------------------------------------\n [RCDATA_END_TAG_NAME_STATE](cp) {\n if (isAsciiUpper(cp)) {\n this.currentToken.tagName += toAsciiLowerChar(cp);\n this.tempBuff.push(cp);\n } else if (isAsciiLower(cp)) {\n this.currentToken.tagName += toChar(cp);\n this.tempBuff.push(cp);\n } else {\n if (this.lastStartTagName === this.currentToken.tagName) {\n if (isWhitespace(cp)) {\n this.state = BEFORE_ATTRIBUTE_NAME_STATE;\n return;\n }\n\n if (cp === $$5.SOLIDUS) {\n this.state = SELF_CLOSING_START_TAG_STATE;\n return;\n }\n\n if (cp === $$5.GREATER_THAN_SIGN) {\n this.state = DATA_STATE;\n this._emitCurrentToken();\n return;\n }\n }\n\n this._emitChars('</');\n this._emitSeveralCodePoints(this.tempBuff);\n this._reconsumeInState(RCDATA_STATE);\n }\n }\n\n // RAWTEXT less-than sign state\n //------------------------------------------------------------------\n [RAWTEXT_LESS_THAN_SIGN_STATE](cp) {\n if (cp === $$5.SOLIDUS) {\n this.tempBuff = [];\n this.state = RAWTEXT_END_TAG_OPEN_STATE;\n } else {\n this._emitChars('<');\n this._reconsumeInState(RAWTEXT_STATE);\n }\n }\n\n // RAWTEXT end tag open state\n //------------------------------------------------------------------\n [RAWTEXT_END_TAG_OPEN_STATE](cp) {\n if (isAsciiLetter(cp)) {\n this._createEndTagToken();\n this._reconsumeInState(RAWTEXT_END_TAG_NAME_STATE);\n } else {\n this._emitChars('</');\n this._reconsumeInState(RAWTEXT_STATE);\n }\n }\n\n // RAWTEXT end tag name state\n //------------------------------------------------------------------\n [RAWTEXT_END_TAG_NAME_STATE](cp) {\n if (isAsciiUpper(cp)) {\n this.currentToken.tagName += toAsciiLowerChar(cp);\n this.tempBuff.push(cp);\n } else if (isAsciiLower(cp)) {\n this.currentToken.tagName += toChar(cp);\n this.tempBuff.push(cp);\n } else {\n if (this.lastStartTagName === this.currentToken.tagName) {\n if (isWhitespace(cp)) {\n this.state = BEFORE_ATTRIBUTE_NAME_STATE;\n return;\n }\n\n if (cp === $$5.SOLIDUS) {\n this.state = SELF_CLOSING_START_TAG_STATE;\n return;\n }\n\n if (cp === $$5.GREATER_THAN_SIGN) {\n this._emitCurrentToken();\n this.state = DATA_STATE;\n return;\n }\n }\n\n this._emitChars('</');\n this._emitSeveralCodePoints(this.tempBuff);\n this._reconsumeInState(RAWTEXT_STATE);\n }\n }\n\n // Script data less-than sign state\n //------------------------------------------------------------------\n [SCRIPT_DATA_LESS_THAN_SIGN_STATE](cp) {\n if (cp === $$5.SOLIDUS) {\n this.tempBuff = [];\n this.state = SCRIPT_DATA_END_TAG_OPEN_STATE;\n } else if (cp === $$5.EXCLAMATION_MARK) {\n this.state = SCRIPT_DATA_ESCAPE_START_STATE;\n this._emitChars('<!');\n } else {\n this._emitChars('<');\n this._reconsumeInState(SCRIPT_DATA_STATE);\n }\n }\n\n // Script data end tag open state\n //------------------------------------------------------------------\n [SCRIPT_DATA_END_TAG_OPEN_STATE](cp) {\n if (isAsciiLetter(cp)) {\n this._createEndTagToken();\n this._reconsumeInState(SCRIPT_DATA_END_TAG_NAME_STATE);\n } else {\n this._emitChars('</');\n this._reconsumeInState(SCRIPT_DATA_STATE);\n }\n }\n\n // Script data end tag name state\n //------------------------------------------------------------------\n [SCRIPT_DATA_END_TAG_NAME_STATE](cp) {\n if (isAsciiUpper(cp)) {\n this.currentToken.tagName += toAsciiLowerChar(cp);\n this.tempBuff.push(cp);\n } else if (isAsciiLower(cp)) {\n this.currentToken.tagName += toChar(cp);\n this.tempBuff.push(cp);\n } else {\n if (this.lastStartTagName === this.currentToken.tagName) {\n if (isWhitespace(cp)) {\n this.state = BEFORE_ATTRIBUTE_NAME_STATE;\n return;\n } else if (cp === $$5.SOLIDUS) {\n this.state = SELF_CLOSING_START_TAG_STATE;\n return;\n } else if (cp === $$5.GREATER_THAN_SIGN) {\n this._emitCurrentToken();\n this.state = DATA_STATE;\n return;\n }\n }\n\n this._emitChars('</');\n this._emitSeveralCodePoints(this.tempBuff);\n this._reconsumeInState(SCRIPT_DATA_STATE);\n }\n }\n\n // Script data escape start state\n //------------------------------------------------------------------\n [SCRIPT_DATA_ESCAPE_START_STATE](cp) {\n if (cp === $$5.HYPHEN_MINUS) {\n this.state = SCRIPT_DATA_ESCAPE_START_DASH_STATE;\n this._emitChars('-');\n } else {\n this._reconsumeInState(SCRIPT_DATA_STATE);\n }\n }\n\n // Script data escape start dash state\n //------------------------------------------------------------------\n [SCRIPT_DATA_ESCAPE_START_DASH_STATE](cp) {\n if (cp === $$5.HYPHEN_MINUS) {\n this.state = SCRIPT_DATA_ESCAPED_DASH_DASH_STATE;\n this._emitChars('-');\n } else {\n this._reconsumeInState(SCRIPT_DATA_STATE);\n }\n }\n\n // Script data escaped state\n //------------------------------------------------------------------\n [SCRIPT_DATA_ESCAPED_STATE](cp) {\n if (cp === $$5.HYPHEN_MINUS) {\n this.state = SCRIPT_DATA_ESCAPED_DASH_STATE;\n this._emitChars('-');\n } else if (cp === $$5.LESS_THAN_SIGN) {\n this.state = SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE;\n } else if (cp === $$5.NULL) {\n this._err(ERR$1.unexpectedNullCharacter);\n this._emitChars(unicode$1.REPLACEMENT_CHARACTER);\n } else if (cp === $$5.EOF) {\n this._err(ERR$1.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n } else {\n this._emitCodePoint(cp);\n }\n }\n\n // Script data escaped dash state\n //------------------------------------------------------------------\n [SCRIPT_DATA_ESCAPED_DASH_STATE](cp) {\n if (cp === $$5.HYPHEN_MINUS) {\n this.state = SCRIPT_DATA_ESCAPED_DASH_DASH_STATE;\n this._emitChars('-');\n } else if (cp === $$5.LESS_THAN_SIGN) {\n this.state = SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE;\n } else if (cp === $$5.NULL) {\n this._err(ERR$1.unexpectedNullCharacter);\n this.state = SCRIPT_DATA_ESCAPED_STATE;\n this._emitChars(unicode$1.REPLACEMENT_CHARACTER);\n } else if (cp === $$5.EOF) {\n this._err(ERR$1.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n } else {\n this.state = SCRIPT_DATA_ESCAPED_STATE;\n this._emitCodePoint(cp);\n }\n }\n\n // Script data escaped dash dash state\n //------------------------------------------------------------------\n [SCRIPT_DATA_ESCAPED_DASH_DASH_STATE](cp) {\n if (cp === $$5.HYPHEN_MINUS) {\n this._emitChars('-');\n } else if (cp === $$5.LESS_THAN_SIGN) {\n this.state = SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE;\n } else if (cp === $$5.GREATER_THAN_SIGN) {\n this.state = SCRIPT_DATA_STATE;\n this._emitChars('>');\n } else if (cp === $$5.NULL) {\n this._err(ERR$1.unexpectedNullCharacter);\n this.state = SCRIPT_DATA_ESCAPED_STATE;\n this._emitChars(unicode$1.REPLACEMENT_CHARACTER);\n } else if (cp === $$5.EOF) {\n this._err(ERR$1.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n } else {\n this.state = SCRIPT_DATA_ESCAPED_STATE;\n this._emitCodePoint(cp);\n }\n }\n\n // Script data escaped less-than sign state\n //------------------------------------------------------------------\n [SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE](cp) {\n if (cp === $$5.SOLIDUS) {\n this.tempBuff = [];\n this.state = SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE;\n } else if (isAsciiLetter(cp)) {\n this.tempBuff = [];\n this._emitChars('<');\n this._reconsumeInState(SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE);\n } else {\n this._emitChars('<');\n this._reconsumeInState(SCRIPT_DATA_ESCAPED_STATE);\n }\n }\n\n // Script data escaped end tag open state\n //------------------------------------------------------------------\n [SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE](cp) {\n if (isAsciiLetter(cp)) {\n this._createEndTagToken();\n this._reconsumeInState(SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE);\n } else {\n this._emitChars('</');\n this._reconsumeInState(SCRIPT_DATA_ESCAPED_STATE);\n }\n }\n\n // Script data escaped end tag name state\n //------------------------------------------------------------------\n [SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE](cp) {\n if (isAsciiUpper(cp)) {\n this.currentToken.tagName += toAsciiLowerChar(cp);\n this.tempBuff.push(cp);\n } else if (isAsciiLower(cp)) {\n this.currentToken.tagName += toChar(cp);\n this.tempBuff.push(cp);\n } else {\n if (this.lastStartTagName === this.currentToken.tagName) {\n if (isWhitespace(cp)) {\n this.state = BEFORE_ATTRIBUTE_NAME_STATE;\n return;\n }\n\n if (cp === $$5.SOLIDUS) {\n this.state = SELF_CLOSING_START_TAG_STATE;\n return;\n }\n\n if (cp === $$5.GREATER_THAN_SIGN) {\n this._emitCurrentToken();\n this.state = DATA_STATE;\n return;\n }\n }\n\n this._emitChars('</');\n this._emitSeveralCodePoints(this.tempBuff);\n this._reconsumeInState(SCRIPT_DATA_ESCAPED_STATE);\n }\n }\n\n // Script data double escape start state\n //------------------------------------------------------------------\n [SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE](cp) {\n if (isWhitespace(cp) || cp === $$5.SOLIDUS || cp === $$5.GREATER_THAN_SIGN) {\n this.state = this._isTempBufferEqualToScriptString()\n ? SCRIPT_DATA_DOUBLE_ESCAPED_STATE\n : SCRIPT_DATA_ESCAPED_STATE;\n this._emitCodePoint(cp);\n } else if (isAsciiUpper(cp)) {\n this.tempBuff.push(toAsciiLowerCodePoint(cp));\n this._emitCodePoint(cp);\n } else if (isAsciiLower(cp)) {\n this.tempBuff.push(cp);\n this._emitCodePoint(cp);\n } else {\n this._reconsumeInState(SCRIPT_DATA_ESCAPED_STATE);\n }\n }\n\n // Script data double escaped state\n //------------------------------------------------------------------\n [SCRIPT_DATA_DOUBLE_ESCAPED_STATE](cp) {\n if (cp === $$5.HYPHEN_MINUS) {\n this.state = SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE;\n this._emitChars('-');\n } else if (cp === $$5.LESS_THAN_SIGN) {\n this.state = SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE;\n this._emitChars('<');\n } else if (cp === $$5.NULL) {\n this._err(ERR$1.unexpectedNullCharacter);\n this._emitChars(unicode$1.REPLACEMENT_CHARACTER);\n } else if (cp === $$5.EOF) {\n this._err(ERR$1.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n } else {\n this._emitCodePoint(cp);\n }\n }\n\n // Script data double escaped dash state\n //------------------------------------------------------------------\n [SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE](cp) {\n if (cp === $$5.HYPHEN_MINUS) {\n this.state = SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE;\n this._emitChars('-');\n } else if (cp === $$5.LESS_THAN_SIGN) {\n this.state = SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE;\n this._emitChars('<');\n } else if (cp === $$5.NULL) {\n this._err(ERR$1.unexpectedNullCharacter);\n this.state = SCRIPT_DATA_DOUBLE_ESCAPED_STATE;\n this._emitChars(unicode$1.REPLACEMENT_CHARACTER);\n } else if (cp === $$5.EOF) {\n this._err(ERR$1.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n } else {\n this.state = SCRIPT_DATA_DOUBLE_ESCAPED_STATE;\n this._emitCodePoint(cp);\n }\n }\n\n // Script data double escaped dash dash state\n //------------------------------------------------------------------\n [SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE](cp) {\n if (cp === $$5.HYPHEN_MINUS) {\n this._emitChars('-');\n } else if (cp === $$5.LESS_THAN_SIGN) {\n this.state = SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE;\n this._emitChars('<');\n } else if (cp === $$5.GREATER_THAN_SIGN) {\n this.state = SCRIPT_DATA_STATE;\n this._emitChars('>');\n } else if (cp === $$5.NULL) {\n this._err(ERR$1.unexpectedNullCharacter);\n this.state = SCRIPT_DATA_DOUBLE_ESCAPED_STATE;\n this._emitChars(unicode$1.REPLACEMENT_CHARACTER);\n } else if (cp === $$5.EOF) {\n this._err(ERR$1.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n } else {\n this.state = SCRIPT_DATA_DOUBLE_ESCAPED_STATE;\n this._emitCodePoint(cp);\n }\n }\n\n // Script data double escaped less-than sign state\n //------------------------------------------------------------------\n [SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE](cp) {\n if (cp === $$5.SOLIDUS) {\n this.tempBuff = [];\n this.state = SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE;\n this._emitChars('/');\n } else {\n this._reconsumeInState(SCRIPT_DATA_DOUBLE_ESCAPED_STATE);\n }\n }\n\n // Script data double escape end state\n //------------------------------------------------------------------\n [SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE](cp) {\n if (isWhitespace(cp) || cp === $$5.SOLIDUS || cp === $$5.GREATER_THAN_SIGN) {\n this.state = this._isTempBufferEqualToScriptString()\n ? SCRIPT_DATA_ESCAPED_STATE\n : SCRIPT_DATA_DOUBLE_ESCAPED_STATE;\n\n this._emitCodePoint(cp);\n } else if (isAsciiUpper(cp)) {\n this.tempBuff.push(toAsciiLowerCodePoint(cp));\n this._emitCodePoint(cp);\n } else if (isAsciiLower(cp)) {\n this.tempBuff.push(cp);\n this._emitCodePoint(cp);\n } else {\n this._reconsumeInState(SCRIPT_DATA_DOUBLE_ESCAPED_STATE);\n }\n }\n\n // Before attribute name state\n //------------------------------------------------------------------\n [BEFORE_ATTRIBUTE_NAME_STATE](cp) {\n if (isWhitespace(cp)) {\n return;\n }\n\n if (cp === $$5.SOLIDUS || cp === $$5.GREATER_THAN_SIGN || cp === $$5.EOF) {\n this._reconsumeInState(AFTER_ATTRIBUTE_NAME_STATE);\n } else if (cp === $$5.EQUALS_SIGN) {\n this._err(ERR$1.unexpectedEqualsSignBeforeAttributeName);\n this._createAttr('=');\n this.state = ATTRIBUTE_NAME_STATE;\n } else {\n this._createAttr('');\n this._reconsumeInState(ATTRIBUTE_NAME_STATE);\n }\n }\n\n // Attribute name state\n //------------------------------------------------------------------\n [ATTRIBUTE_NAME_STATE](cp) {\n if (isWhitespace(cp) || cp === $$5.SOLIDUS || cp === $$5.GREATER_THAN_SIGN || cp === $$5.EOF) {\n this._leaveAttrName(AFTER_ATTRIBUTE_NAME_STATE);\n this._unconsume();\n } else if (cp === $$5.EQUALS_SIGN) {\n this._leaveAttrName(BEFORE_ATTRIBUTE_VALUE_STATE);\n } else if (isAsciiUpper(cp)) {\n this.currentAttr.name += toAsciiLowerChar(cp);\n } else if (cp === $$5.QUOTATION_MARK || cp === $$5.APOSTROPHE || cp === $$5.LESS_THAN_SIGN) {\n this._err(ERR$1.unexpectedCharacterInAttributeName);\n this.currentAttr.name += toChar(cp);\n } else if (cp === $$5.NULL) {\n this._err(ERR$1.unexpectedNullCharacter);\n this.currentAttr.name += unicode$1.REPLACEMENT_CHARACTER;\n } else {\n this.currentAttr.name += toChar(cp);\n }\n }\n\n // After attribute name state\n //------------------------------------------------------------------\n [AFTER_ATTRIBUTE_NAME_STATE](cp) {\n if (isWhitespace(cp)) {\n return;\n }\n\n if (cp === $$5.SOLIDUS) {\n this.state = SELF_CLOSING_START_TAG_STATE;\n } else if (cp === $$5.EQUALS_SIGN) {\n this.state = BEFORE_ATTRIBUTE_VALUE_STATE;\n } else if (cp === $$5.GREATER_THAN_SIGN) {\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $$5.EOF) {\n this._err(ERR$1.eofInTag);\n this._emitEOFToken();\n } else {\n this._createAttr('');\n this._reconsumeInState(ATTRIBUTE_NAME_STATE);\n }\n }\n\n // Before attribute value state\n //------------------------------------------------------------------\n [BEFORE_ATTRIBUTE_VALUE_STATE](cp) {\n if (isWhitespace(cp)) {\n return;\n }\n\n if (cp === $$5.QUOTATION_MARK) {\n this.state = ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE;\n } else if (cp === $$5.APOSTROPHE) {\n this.state = ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE;\n } else if (cp === $$5.GREATER_THAN_SIGN) {\n this._err(ERR$1.missingAttributeValue);\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else {\n this._reconsumeInState(ATTRIBUTE_VALUE_UNQUOTED_STATE);\n }\n }\n\n // Attribute value (double-quoted) state\n //------------------------------------------------------------------\n [ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE](cp) {\n if (cp === $$5.QUOTATION_MARK) {\n this.state = AFTER_ATTRIBUTE_VALUE_QUOTED_STATE;\n } else if (cp === $$5.AMPERSAND) {\n this.returnState = ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE;\n this.state = CHARACTER_REFERENCE_STATE;\n } else if (cp === $$5.NULL) {\n this._err(ERR$1.unexpectedNullCharacter);\n this.currentAttr.value += unicode$1.REPLACEMENT_CHARACTER;\n } else if (cp === $$5.EOF) {\n this._err(ERR$1.eofInTag);\n this._emitEOFToken();\n } else {\n this.currentAttr.value += toChar(cp);\n }\n }\n\n // Attribute value (single-quoted) state\n //------------------------------------------------------------------\n [ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE](cp) {\n if (cp === $$5.APOSTROPHE) {\n this.state = AFTER_ATTRIBUTE_VALUE_QUOTED_STATE;\n } else if (cp === $$5.AMPERSAND) {\n this.returnState = ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE;\n this.state = CHARACTER_REFERENCE_STATE;\n } else if (cp === $$5.NULL) {\n this._err(ERR$1.unexpectedNullCharacter);\n this.currentAttr.value += unicode$1.REPLACEMENT_CHARACTER;\n } else if (cp === $$5.EOF) {\n this._err(ERR$1.eofInTag);\n this._emitEOFToken();\n } else {\n this.currentAttr.value += toChar(cp);\n }\n }\n\n // Attribute value (unquoted) state\n //------------------------------------------------------------------\n [ATTRIBUTE_VALUE_UNQUOTED_STATE](cp) {\n if (isWhitespace(cp)) {\n this._leaveAttrValue(BEFORE_ATTRIBUTE_NAME_STATE);\n } else if (cp === $$5.AMPERSAND) {\n this.returnState = ATTRIBUTE_VALUE_UNQUOTED_STATE;\n this.state = CHARACTER_REFERENCE_STATE;\n } else if (cp === $$5.GREATER_THAN_SIGN) {\n this._leaveAttrValue(DATA_STATE);\n this._emitCurrentToken();\n } else if (cp === $$5.NULL) {\n this._err(ERR$1.unexpectedNullCharacter);\n this.currentAttr.value += unicode$1.REPLACEMENT_CHARACTER;\n } else if (\n cp === $$5.QUOTATION_MARK ||\n cp === $$5.APOSTROPHE ||\n cp === $$5.LESS_THAN_SIGN ||\n cp === $$5.EQUALS_SIGN ||\n cp === $$5.GRAVE_ACCENT\n ) {\n this._err(ERR$1.unexpectedCharacterInUnquotedAttributeValue);\n this.currentAttr.value += toChar(cp);\n } else if (cp === $$5.EOF) {\n this._err(ERR$1.eofInTag);\n this._emitEOFToken();\n } else {\n this.currentAttr.value += toChar(cp);\n }\n }\n\n // After attribute value (quoted) state\n //------------------------------------------------------------------\n [AFTER_ATTRIBUTE_VALUE_QUOTED_STATE](cp) {\n if (isWhitespace(cp)) {\n this._leaveAttrValue(BEFORE_ATTRIBUTE_NAME_STATE);\n } else if (cp === $$5.SOLIDUS) {\n this._leaveAttrValue(SELF_CLOSING_START_TAG_STATE);\n } else if (cp === $$5.GREATER_THAN_SIGN) {\n this._leaveAttrValue(DATA_STATE);\n this._emitCurrentToken();\n } else if (cp === $$5.EOF) {\n this._err(ERR$1.eofInTag);\n this._emitEOFToken();\n } else {\n this._err(ERR$1.missingWhitespaceBetweenAttributes);\n this._reconsumeInState(BEFORE_ATTRIBUTE_NAME_STATE);\n }\n }\n\n // Self-closing start tag state\n //------------------------------------------------------------------\n [SELF_CLOSING_START_TAG_STATE](cp) {\n if (cp === $$5.GREATER_THAN_SIGN) {\n this.currentToken.selfClosing = true;\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $$5.EOF) {\n this._err(ERR$1.eofInTag);\n this._emitEOFToken();\n } else {\n this._err(ERR$1.unexpectedSolidusInTag);\n this._reconsumeInState(BEFORE_ATTRIBUTE_NAME_STATE);\n }\n }\n\n // Bogus comment state\n //------------------------------------------------------------------\n [BOGUS_COMMENT_STATE](cp) {\n if (cp === $$5.GREATER_THAN_SIGN) {\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $$5.EOF) {\n this._emitCurrentToken();\n this._emitEOFToken();\n } else if (cp === $$5.NULL) {\n this._err(ERR$1.unexpectedNullCharacter);\n this.currentToken.data += unicode$1.REPLACEMENT_CHARACTER;\n } else {\n this.currentToken.data += toChar(cp);\n }\n }\n\n // Markup declaration open state\n //------------------------------------------------------------------\n [MARKUP_DECLARATION_OPEN_STATE](cp) {\n if (this._consumeSequenceIfMatch($$.DASH_DASH_STRING, cp, true)) {\n this._createCommentToken();\n this.state = COMMENT_START_STATE;\n } else if (this._consumeSequenceIfMatch($$.DOCTYPE_STRING, cp, false)) {\n this.state = DOCTYPE_STATE;\n } else if (this._consumeSequenceIfMatch($$.CDATA_START_STRING, cp, true)) {\n if (this.allowCDATA) {\n this.state = CDATA_SECTION_STATE;\n } else {\n this._err(ERR$1.cdataInHtmlContent);\n this._createCommentToken();\n this.currentToken.data = '[CDATA[';\n this.state = BOGUS_COMMENT_STATE;\n }\n }\n\n //NOTE: sequence lookup can be abrupted by hibernation. In that case lookup\n //results are no longer valid and we will need to start over.\n else if (!this._ensureHibernation()) {\n this._err(ERR$1.incorrectlyOpenedComment);\n this._createCommentToken();\n this._reconsumeInState(BOGUS_COMMENT_STATE);\n }\n }\n\n // Comment start state\n //------------------------------------------------------------------\n [COMMENT_START_STATE](cp) {\n if (cp === $$5.HYPHEN_MINUS) {\n this.state = COMMENT_START_DASH_STATE;\n } else if (cp === $$5.GREATER_THAN_SIGN) {\n this._err(ERR$1.abruptClosingOfEmptyComment);\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else {\n this._reconsumeInState(COMMENT_STATE);\n }\n }\n\n // Comment start dash state\n //------------------------------------------------------------------\n [COMMENT_START_DASH_STATE](cp) {\n if (cp === $$5.HYPHEN_MINUS) {\n this.state = COMMENT_END_STATE;\n } else if (cp === $$5.GREATER_THAN_SIGN) {\n this._err(ERR$1.abruptClosingOfEmptyComment);\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $$5.EOF) {\n this._err(ERR$1.eofInComment);\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.data += '-';\n this._reconsumeInState(COMMENT_STATE);\n }\n }\n\n // Comment state\n //------------------------------------------------------------------\n [COMMENT_STATE](cp) {\n if (cp === $$5.HYPHEN_MINUS) {\n this.state = COMMENT_END_DASH_STATE;\n } else if (cp === $$5.LESS_THAN_SIGN) {\n this.currentToken.data += '<';\n this.state = COMMENT_LESS_THAN_SIGN_STATE;\n } else if (cp === $$5.NULL) {\n this._err(ERR$1.unexpectedNullCharacter);\n this.currentToken.data += unicode$1.REPLACEMENT_CHARACTER;\n } else if (cp === $$5.EOF) {\n this._err(ERR$1.eofInComment);\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.data += toChar(cp);\n }\n }\n\n // Comment less-than sign state\n //------------------------------------------------------------------\n [COMMENT_LESS_THAN_SIGN_STATE](cp) {\n if (cp === $$5.EXCLAMATION_MARK) {\n this.currentToken.data += '!';\n this.state = COMMENT_LESS_THAN_SIGN_BANG_STATE;\n } else if (cp === $$5.LESS_THAN_SIGN) {\n this.currentToken.data += '!';\n } else {\n this._reconsumeInState(COMMENT_STATE);\n }\n }\n\n // Comment less-than sign bang state\n //------------------------------------------------------------------\n [COMMENT_LESS_THAN_SIGN_BANG_STATE](cp) {\n if (cp === $$5.HYPHEN_MINUS) {\n this.state = COMMENT_LESS_THAN_SIGN_BANG_DASH_STATE;\n } else {\n this._reconsumeInState(COMMENT_STATE);\n }\n }\n\n // Comment less-than sign bang dash state\n //------------------------------------------------------------------\n [COMMENT_LESS_THAN_SIGN_BANG_DASH_STATE](cp) {\n if (cp === $$5.HYPHEN_MINUS) {\n this.state = COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH_STATE;\n } else {\n this._reconsumeInState(COMMENT_END_DASH_STATE);\n }\n }\n\n // Comment less-than sign bang dash dash state\n //------------------------------------------------------------------\n [COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH_STATE](cp) {\n if (cp !== $$5.GREATER_THAN_SIGN && cp !== $$5.EOF) {\n this._err(ERR$1.nestedComment);\n }\n\n this._reconsumeInState(COMMENT_END_STATE);\n }\n\n // Comment end dash state\n //------------------------------------------------------------------\n [COMMENT_END_DASH_STATE](cp) {\n if (cp === $$5.HYPHEN_MINUS) {\n this.state = COMMENT_END_STATE;\n } else if (cp === $$5.EOF) {\n this._err(ERR$1.eofInComment);\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.data += '-';\n this._reconsumeInState(COMMENT_STATE);\n }\n }\n\n // Comment end state\n //------------------------------------------------------------------\n [COMMENT_END_STATE](cp) {\n if (cp === $$5.GREATER_THAN_SIGN) {\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $$5.EXCLAMATION_MARK) {\n this.state = COMMENT_END_BANG_STATE;\n } else if (cp === $$5.HYPHEN_MINUS) {\n this.currentToken.data += '-';\n } else if (cp === $$5.EOF) {\n this._err(ERR$1.eofInComment);\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.data += '--';\n this._reconsumeInState(COMMENT_STATE);\n }\n }\n\n // Comment end bang state\n //------------------------------------------------------------------\n [COMMENT_END_BANG_STATE](cp) {\n if (cp === $$5.HYPHEN_MINUS) {\n this.currentToken.data += '--!';\n this.state = COMMENT_END_DASH_STATE;\n } else if (cp === $$5.GREATER_THAN_SIGN) {\n this._err(ERR$1.incorrectlyClosedComment);\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $$5.EOF) {\n this._err(ERR$1.eofInComment);\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.data += '--!';\n this._reconsumeInState(COMMENT_STATE);\n }\n }\n\n // DOCTYPE state\n //------------------------------------------------------------------\n [DOCTYPE_STATE](cp) {\n if (isWhitespace(cp)) {\n this.state = BEFORE_DOCTYPE_NAME_STATE;\n } else if (cp === $$5.GREATER_THAN_SIGN) {\n this._reconsumeInState(BEFORE_DOCTYPE_NAME_STATE);\n } else if (cp === $$5.EOF) {\n this._err(ERR$1.eofInDoctype);\n this._createDoctypeToken(null);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this._err(ERR$1.missingWhitespaceBeforeDoctypeName);\n this._reconsumeInState(BEFORE_DOCTYPE_NAME_STATE);\n }\n }\n\n // Before DOCTYPE name state\n //------------------------------------------------------------------\n [BEFORE_DOCTYPE_NAME_STATE](cp) {\n if (isWhitespace(cp)) {\n return;\n }\n\n if (isAsciiUpper(cp)) {\n this._createDoctypeToken(toAsciiLowerChar(cp));\n this.state = DOCTYPE_NAME_STATE;\n } else if (cp === $$5.NULL) {\n this._err(ERR$1.unexpectedNullCharacter);\n this._createDoctypeToken(unicode$1.REPLACEMENT_CHARACTER);\n this.state = DOCTYPE_NAME_STATE;\n } else if (cp === $$5.GREATER_THAN_SIGN) {\n this._err(ERR$1.missingDoctypeName);\n this._createDoctypeToken(null);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this.state = DATA_STATE;\n } else if (cp === $$5.EOF) {\n this._err(ERR$1.eofInDoctype);\n this._createDoctypeToken(null);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this._createDoctypeToken(toChar(cp));\n this.state = DOCTYPE_NAME_STATE;\n }\n }\n\n // DOCTYPE name state\n //------------------------------------------------------------------\n [DOCTYPE_NAME_STATE](cp) {\n if (isWhitespace(cp)) {\n this.state = AFTER_DOCTYPE_NAME_STATE;\n } else if (cp === $$5.GREATER_THAN_SIGN) {\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (isAsciiUpper(cp)) {\n this.currentToken.name += toAsciiLowerChar(cp);\n } else if (cp === $$5.NULL) {\n this._err(ERR$1.unexpectedNullCharacter);\n this.currentToken.name += unicode$1.REPLACEMENT_CHARACTER;\n } else if (cp === $$5.EOF) {\n this._err(ERR$1.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.name += toChar(cp);\n }\n }\n\n // After DOCTYPE name state\n //------------------------------------------------------------------\n [AFTER_DOCTYPE_NAME_STATE](cp) {\n if (isWhitespace(cp)) {\n return;\n }\n\n if (cp === $$5.GREATER_THAN_SIGN) {\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $$5.EOF) {\n this._err(ERR$1.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else if (this._consumeSequenceIfMatch($$.PUBLIC_STRING, cp, false)) {\n this.state = AFTER_DOCTYPE_PUBLIC_KEYWORD_STATE;\n } else if (this._consumeSequenceIfMatch($$.SYSTEM_STRING, cp, false)) {\n this.state = AFTER_DOCTYPE_SYSTEM_KEYWORD_STATE;\n }\n //NOTE: sequence lookup can be abrupted by hibernation. In that case lookup\n //results are no longer valid and we will need to start over.\n else if (!this._ensureHibernation()) {\n this._err(ERR$1.invalidCharacterSequenceAfterDoctypeName);\n this.currentToken.forceQuirks = true;\n this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n }\n }\n\n // After DOCTYPE public keyword state\n //------------------------------------------------------------------\n [AFTER_DOCTYPE_PUBLIC_KEYWORD_STATE](cp) {\n if (isWhitespace(cp)) {\n this.state = BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE;\n } else if (cp === $$5.QUOTATION_MARK) {\n this._err(ERR$1.missingWhitespaceAfterDoctypePublicKeyword);\n this.currentToken.publicId = '';\n this.state = DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE;\n } else if (cp === $$5.APOSTROPHE) {\n this._err(ERR$1.missingWhitespaceAfterDoctypePublicKeyword);\n this.currentToken.publicId = '';\n this.state = DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE;\n } else if (cp === $$5.GREATER_THAN_SIGN) {\n this._err(ERR$1.missingDoctypePublicIdentifier);\n this.currentToken.forceQuirks = true;\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $$5.EOF) {\n this._err(ERR$1.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this._err(ERR$1.missingQuoteBeforeDoctypePublicIdentifier);\n this.currentToken.forceQuirks = true;\n this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n }\n }\n\n // Before DOCTYPE public identifier state\n //------------------------------------------------------------------\n [BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE](cp) {\n if (isWhitespace(cp)) {\n return;\n }\n\n if (cp === $$5.QUOTATION_MARK) {\n this.currentToken.publicId = '';\n this.state = DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE;\n } else if (cp === $$5.APOSTROPHE) {\n this.currentToken.publicId = '';\n this.state = DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE;\n } else if (cp === $$5.GREATER_THAN_SIGN) {\n this._err(ERR$1.missingDoctypePublicIdentifier);\n this.currentToken.forceQuirks = true;\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $$5.EOF) {\n this._err(ERR$1.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this._err(ERR$1.missingQuoteBeforeDoctypePublicIdentifier);\n this.currentToken.forceQuirks = true;\n this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n }\n }\n\n // DOCTYPE public identifier (double-quoted) state\n //------------------------------------------------------------------\n [DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE](cp) {\n if (cp === $$5.QUOTATION_MARK) {\n this.state = AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE;\n } else if (cp === $$5.NULL) {\n this._err(ERR$1.unexpectedNullCharacter);\n this.currentToken.publicId += unicode$1.REPLACEMENT_CHARACTER;\n } else if (cp === $$5.GREATER_THAN_SIGN) {\n this._err(ERR$1.abruptDoctypePublicIdentifier);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this.state = DATA_STATE;\n } else if (cp === $$5.EOF) {\n this._err(ERR$1.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.publicId += toChar(cp);\n }\n }\n\n // DOCTYPE public identifier (single-quoted) state\n //------------------------------------------------------------------\n [DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE](cp) {\n if (cp === $$5.APOSTROPHE) {\n this.state = AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE;\n } else if (cp === $$5.NULL) {\n this._err(ERR$1.unexpectedNullCharacter);\n this.currentToken.publicId += unicode$1.REPLACEMENT_CHARACTER;\n } else if (cp === $$5.GREATER_THAN_SIGN) {\n this._err(ERR$1.abruptDoctypePublicIdentifier);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this.state = DATA_STATE;\n } else if (cp === $$5.EOF) {\n this._err(ERR$1.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.publicId += toChar(cp);\n }\n }\n\n // After DOCTYPE public identifier state\n //------------------------------------------------------------------\n [AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE](cp) {\n if (isWhitespace(cp)) {\n this.state = BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE;\n } else if (cp === $$5.GREATER_THAN_SIGN) {\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $$5.QUOTATION_MARK) {\n this._err(ERR$1.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers);\n this.currentToken.systemId = '';\n this.state = DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE;\n } else if (cp === $$5.APOSTROPHE) {\n this._err(ERR$1.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers);\n this.currentToken.systemId = '';\n this.state = DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE;\n } else if (cp === $$5.EOF) {\n this._err(ERR$1.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this._err(ERR$1.missingQuoteBeforeDoctypeSystemIdentifier);\n this.currentToken.forceQuirks = true;\n this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n }\n }\n\n // Between DOCTYPE public and system identifiers state\n //------------------------------------------------------------------\n [BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE](cp) {\n if (isWhitespace(cp)) {\n return;\n }\n\n if (cp === $$5.GREATER_THAN_SIGN) {\n this._emitCurrentToken();\n this.state = DATA_STATE;\n } else if (cp === $$5.QUOTATION_MARK) {\n this.currentToken.systemId = '';\n this.state = DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE;\n } else if (cp === $$5.APOSTROPHE) {\n this.currentToken.systemId = '';\n this.state = DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE;\n } else if (cp === $$5.EOF) {\n this._err(ERR$1.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this._err(ERR$1.missingQuoteBeforeDoctypeSystemIdentifier);\n this.currentToken.forceQuirks = true;\n this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n }\n }\n\n // After DOCTYPE system keyword state\n //------------------------------------------------------------------\n [AFTER_DOCTYPE_SYSTEM_KEYWORD_STATE](cp) {\n if (isWhitespace(cp)) {\n this.state = BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE;\n } else if (cp === $$5.QUOTATION_MARK) {\n this._err(ERR$1.missingWhitespaceAfterDoctypeSystemKeyword);\n this.currentToken.systemId = '';\n this.state = DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE;\n } else if (cp === $$5.APOSTROPHE) {\n this._err(ERR$1.missingWhitespaceAfterDoctypeSystemKeyword);\n this.currentToken.systemId = '';\n this.state = DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE;\n } else if (cp === $$5.GREATER_THAN_SIGN) {\n this._err(ERR$1.missingDoctypeSystemIdentifier);\n this.currentToken.forceQuirks = true;\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $$5.EOF) {\n this._err(ERR$1.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this._err(ERR$1.missingQuoteBeforeDoctypeSystemIdentifier);\n this.currentToken.forceQuirks = true;\n this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n }\n }\n\n // Before DOCTYPE system identifier state\n //------------------------------------------------------------------\n [BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE](cp) {\n if (isWhitespace(cp)) {\n return;\n }\n\n if (cp === $$5.QUOTATION_MARK) {\n this.currentToken.systemId = '';\n this.state = DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE;\n } else if (cp === $$5.APOSTROPHE) {\n this.currentToken.systemId = '';\n this.state = DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE;\n } else if (cp === $$5.GREATER_THAN_SIGN) {\n this._err(ERR$1.missingDoctypeSystemIdentifier);\n this.currentToken.forceQuirks = true;\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $$5.EOF) {\n this._err(ERR$1.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this._err(ERR$1.missingQuoteBeforeDoctypeSystemIdentifier);\n this.currentToken.forceQuirks = true;\n this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n }\n }\n\n // DOCTYPE system identifier (double-quoted) state\n //------------------------------------------------------------------\n [DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE](cp) {\n if (cp === $$5.QUOTATION_MARK) {\n this.state = AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE;\n } else if (cp === $$5.NULL) {\n this._err(ERR$1.unexpectedNullCharacter);\n this.currentToken.systemId += unicode$1.REPLACEMENT_CHARACTER;\n } else if (cp === $$5.GREATER_THAN_SIGN) {\n this._err(ERR$1.abruptDoctypeSystemIdentifier);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this.state = DATA_STATE;\n } else if (cp === $$5.EOF) {\n this._err(ERR$1.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.systemId += toChar(cp);\n }\n }\n\n // DOCTYPE system identifier (single-quoted) state\n //------------------------------------------------------------------\n [DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE](cp) {\n if (cp === $$5.APOSTROPHE) {\n this.state = AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE;\n } else if (cp === $$5.NULL) {\n this._err(ERR$1.unexpectedNullCharacter);\n this.currentToken.systemId += unicode$1.REPLACEMENT_CHARACTER;\n } else if (cp === $$5.GREATER_THAN_SIGN) {\n this._err(ERR$1.abruptDoctypeSystemIdentifier);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this.state = DATA_STATE;\n } else if (cp === $$5.EOF) {\n this._err(ERR$1.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.systemId += toChar(cp);\n }\n }\n\n // After DOCTYPE system identifier state\n //------------------------------------------------------------------\n [AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE](cp) {\n if (isWhitespace(cp)) {\n return;\n }\n\n if (cp === $$5.GREATER_THAN_SIGN) {\n this._emitCurrentToken();\n this.state = DATA_STATE;\n } else if (cp === $$5.EOF) {\n this._err(ERR$1.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this._err(ERR$1.unexpectedCharacterAfterDoctypeSystemIdentifier);\n this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n }\n }\n\n // Bogus DOCTYPE state\n //------------------------------------------------------------------\n [BOGUS_DOCTYPE_STATE](cp) {\n if (cp === $$5.GREATER_THAN_SIGN) {\n this._emitCurrentToken();\n this.state = DATA_STATE;\n } else if (cp === $$5.NULL) {\n this._err(ERR$1.unexpectedNullCharacter);\n } else if (cp === $$5.EOF) {\n this._emitCurrentToken();\n this._emitEOFToken();\n }\n }\n\n // CDATA section state\n //------------------------------------------------------------------\n [CDATA_SECTION_STATE](cp) {\n if (cp === $$5.RIGHT_SQUARE_BRACKET) {\n this.state = CDATA_SECTION_BRACKET_STATE;\n } else if (cp === $$5.EOF) {\n this._err(ERR$1.eofInCdata);\n this._emitEOFToken();\n } else {\n this._emitCodePoint(cp);\n }\n }\n\n // CDATA section bracket state\n //------------------------------------------------------------------\n [CDATA_SECTION_BRACKET_STATE](cp) {\n if (cp === $$5.RIGHT_SQUARE_BRACKET) {\n this.state = CDATA_SECTION_END_STATE;\n } else {\n this._emitChars(']');\n this._reconsumeInState(CDATA_SECTION_STATE);\n }\n }\n\n // CDATA section end state\n //------------------------------------------------------------------\n [CDATA_SECTION_END_STATE](cp) {\n if (cp === $$5.GREATER_THAN_SIGN) {\n this.state = DATA_STATE;\n } else if (cp === $$5.RIGHT_SQUARE_BRACKET) {\n this._emitChars(']');\n } else {\n this._emitChars(']]');\n this._reconsumeInState(CDATA_SECTION_STATE);\n }\n }\n\n // Character reference state\n //------------------------------------------------------------------\n [CHARACTER_REFERENCE_STATE](cp) {\n this.tempBuff = [$$5.AMPERSAND];\n\n if (cp === $$5.NUMBER_SIGN) {\n this.tempBuff.push(cp);\n this.state = NUMERIC_CHARACTER_REFERENCE_STATE;\n } else if (isAsciiAlphaNumeric(cp)) {\n this._reconsumeInState(NAMED_CHARACTER_REFERENCE_STATE);\n } else {\n this._flushCodePointsConsumedAsCharacterReference();\n this._reconsumeInState(this.returnState);\n }\n }\n\n // Named character reference state\n //------------------------------------------------------------------\n [NAMED_CHARACTER_REFERENCE_STATE](cp) {\n const matchResult = this._matchNamedCharacterReference(cp);\n\n //NOTE: matching can be abrupted by hibernation. In that case match\n //results are no longer valid and we will need to start over.\n if (this._ensureHibernation()) {\n this.tempBuff = [$$5.AMPERSAND];\n } else if (matchResult) {\n const withSemicolon = this.tempBuff[this.tempBuff.length - 1] === $$5.SEMICOLON;\n\n if (!this._isCharacterReferenceAttributeQuirk(withSemicolon)) {\n if (!withSemicolon) {\n this._errOnNextCodePoint(ERR$1.missingSemicolonAfterCharacterReference);\n }\n\n this.tempBuff = matchResult;\n }\n\n this._flushCodePointsConsumedAsCharacterReference();\n this.state = this.returnState;\n } else {\n this._flushCodePointsConsumedAsCharacterReference();\n this.state = AMBIGUOUS_AMPERSAND_STATE;\n }\n }\n\n // Ambiguos ampersand state\n //------------------------------------------------------------------\n [AMBIGUOUS_AMPERSAND_STATE](cp) {\n if (isAsciiAlphaNumeric(cp)) {\n if (this._isCharacterReferenceInAttribute()) {\n this.currentAttr.value += toChar(cp);\n } else {\n this._emitCodePoint(cp);\n }\n } else {\n if (cp === $$5.SEMICOLON) {\n this._err(ERR$1.unknownNamedCharacterReference);\n }\n\n this._reconsumeInState(this.returnState);\n }\n }\n\n // Numeric character reference state\n //------------------------------------------------------------------\n [NUMERIC_CHARACTER_REFERENCE_STATE](cp) {\n this.charRefCode = 0;\n\n if (cp === $$5.LATIN_SMALL_X || cp === $$5.LATIN_CAPITAL_X) {\n this.tempBuff.push(cp);\n this.state = HEXADEMICAL_CHARACTER_REFERENCE_START_STATE;\n } else {\n this._reconsumeInState(DECIMAL_CHARACTER_REFERENCE_START_STATE);\n }\n }\n\n // Hexademical character reference start state\n //------------------------------------------------------------------\n [HEXADEMICAL_CHARACTER_REFERENCE_START_STATE](cp) {\n if (isAsciiHexDigit(cp)) {\n this._reconsumeInState(HEXADEMICAL_CHARACTER_REFERENCE_STATE);\n } else {\n this._err(ERR$1.absenceOfDigitsInNumericCharacterReference);\n this._flushCodePointsConsumedAsCharacterReference();\n this._reconsumeInState(this.returnState);\n }\n }\n\n // Decimal character reference start state\n //------------------------------------------------------------------\n [DECIMAL_CHARACTER_REFERENCE_START_STATE](cp) {\n if (isAsciiDigit(cp)) {\n this._reconsumeInState(DECIMAL_CHARACTER_REFERENCE_STATE);\n } else {\n this._err(ERR$1.absenceOfDigitsInNumericCharacterReference);\n this._flushCodePointsConsumedAsCharacterReference();\n this._reconsumeInState(this.returnState);\n }\n }\n\n // Hexademical character reference state\n //------------------------------------------------------------------\n [HEXADEMICAL_CHARACTER_REFERENCE_STATE](cp) {\n if (isAsciiUpperHexDigit(cp)) {\n this.charRefCode = this.charRefCode * 16 + cp - 0x37;\n } else if (isAsciiLowerHexDigit(cp)) {\n this.charRefCode = this.charRefCode * 16 + cp - 0x57;\n } else if (isAsciiDigit(cp)) {\n this.charRefCode = this.charRefCode * 16 + cp - 0x30;\n } else if (cp === $$5.SEMICOLON) {\n this.state = NUMERIC_CHARACTER_REFERENCE_END_STATE;\n } else {\n this._err(ERR$1.missingSemicolonAfterCharacterReference);\n this._reconsumeInState(NUMERIC_CHARACTER_REFERENCE_END_STATE);\n }\n }\n\n // Decimal character reference state\n //------------------------------------------------------------------\n [DECIMAL_CHARACTER_REFERENCE_STATE](cp) {\n if (isAsciiDigit(cp)) {\n this.charRefCode = this.charRefCode * 10 + cp - 0x30;\n } else if (cp === $$5.SEMICOLON) {\n this.state = NUMERIC_CHARACTER_REFERENCE_END_STATE;\n } else {\n this._err(ERR$1.missingSemicolonAfterCharacterReference);\n this._reconsumeInState(NUMERIC_CHARACTER_REFERENCE_END_STATE);\n }\n }\n\n // Numeric character reference end state\n //------------------------------------------------------------------\n [NUMERIC_CHARACTER_REFERENCE_END_STATE]() {\n if (this.charRefCode === $$5.NULL) {\n this._err(ERR$1.nullCharacterReference);\n this.charRefCode = $$5.REPLACEMENT_CHARACTER;\n } else if (this.charRefCode > 0x10ffff) {\n this._err(ERR$1.characterReferenceOutsideUnicodeRange);\n this.charRefCode = $$5.REPLACEMENT_CHARACTER;\n } else if (unicode$1.isSurrogate(this.charRefCode)) {\n this._err(ERR$1.surrogateCharacterReference);\n this.charRefCode = $$5.REPLACEMENT_CHARACTER;\n } else if (unicode$1.isUndefinedCodePoint(this.charRefCode)) {\n this._err(ERR$1.noncharacterCharacterReference);\n } else if (unicode$1.isControlCodePoint(this.charRefCode) || this.charRefCode === $$5.CARRIAGE_RETURN) {\n this._err(ERR$1.controlCharacterReference);\n\n const replacement = C1_CONTROLS_REFERENCE_REPLACEMENTS[this.charRefCode];\n\n if (replacement) {\n this.charRefCode = replacement;\n }\n }\n\n this.tempBuff = [this.charRefCode];\n\n this._flushCodePointsConsumedAsCharacterReference();\n this._reconsumeInState(this.returnState);\n }\n};\n\n//Token types\nTokenizer$4.CHARACTER_TOKEN = 'CHARACTER_TOKEN';\nTokenizer$4.NULL_CHARACTER_TOKEN = 'NULL_CHARACTER_TOKEN';\nTokenizer$4.WHITESPACE_CHARACTER_TOKEN = 'WHITESPACE_CHARACTER_TOKEN';\nTokenizer$4.START_TAG_TOKEN = 'START_TAG_TOKEN';\nTokenizer$4.END_TAG_TOKEN = 'END_TAG_TOKEN';\nTokenizer$4.COMMENT_TOKEN = 'COMMENT_TOKEN';\nTokenizer$4.DOCTYPE_TOKEN = 'DOCTYPE_TOKEN';\nTokenizer$4.EOF_TOKEN = 'EOF_TOKEN';\nTokenizer$4.HIBERNATION_TOKEN = 'HIBERNATION_TOKEN';\n\n//Tokenizer initial states for different modes\nTokenizer$4.MODE = {\n DATA: DATA_STATE,\n RCDATA: RCDATA_STATE,\n RAWTEXT: RAWTEXT_STATE,\n SCRIPT_DATA: SCRIPT_DATA_STATE,\n PLAINTEXT: PLAINTEXT_STATE\n};\n\n//Static\nTokenizer$4.getTokenAttr = function(token, attrName) {\n for (let i = token.attrs.length - 1; i >= 0; i--) {\n if (token.attrs[i].name === attrName) {\n return token.attrs[i].value;\n }\n }\n\n return null;\n};\n\nvar tokenizer = Tokenizer$4;\n\nvar html = {};\n\nconst NS$3 = (html.NAMESPACES = {\n HTML: 'http://www.w3.org/1999/xhtml',\n MATHML: 'http://www.w3.org/1998/Math/MathML',\n SVG: 'http://www.w3.org/2000/svg',\n XLINK: 'http://www.w3.org/1999/xlink',\n XML: 'http://www.w3.org/XML/1998/namespace',\n XMLNS: 'http://www.w3.org/2000/xmlns/'\n});\n\nhtml.ATTRS = {\n TYPE: 'type',\n ACTION: 'action',\n ENCODING: 'encoding',\n PROMPT: 'prompt',\n NAME: 'name',\n COLOR: 'color',\n FACE: 'face',\n SIZE: 'size'\n};\n\nhtml.DOCUMENT_MODE = {\n NO_QUIRKS: 'no-quirks',\n QUIRKS: 'quirks',\n LIMITED_QUIRKS: 'limited-quirks'\n};\n\nconst $$4 = (html.TAG_NAMES = {\n A: 'a',\n ADDRESS: 'address',\n ANNOTATION_XML: 'annotation-xml',\n APPLET: 'applet',\n AREA: 'area',\n ARTICLE: 'article',\n ASIDE: 'aside',\n\n B: 'b',\n BASE: 'base',\n BASEFONT: 'basefont',\n BGSOUND: 'bgsound',\n BIG: 'big',\n BLOCKQUOTE: 'blockquote',\n BODY: 'body',\n BR: 'br',\n BUTTON: 'button',\n\n CAPTION: 'caption',\n CENTER: 'center',\n CODE: 'code',\n COL: 'col',\n COLGROUP: 'colgroup',\n\n DD: 'dd',\n DESC: 'desc',\n DETAILS: 'details',\n DIALOG: 'dialog',\n DIR: 'dir',\n DIV: 'div',\n DL: 'dl',\n DT: 'dt',\n\n EM: 'em',\n EMBED: 'embed',\n\n FIELDSET: 'fieldset',\n FIGCAPTION: 'figcaption',\n FIGURE: 'figure',\n FONT: 'font',\n FOOTER: 'footer',\n FOREIGN_OBJECT: 'foreignObject',\n FORM: 'form',\n FRAME: 'frame',\n FRAMESET: 'frameset',\n\n H1: 'h1',\n H2: 'h2',\n H3: 'h3',\n H4: 'h4',\n H5: 'h5',\n H6: 'h6',\n HEAD: 'head',\n HEADER: 'header',\n HGROUP: 'hgroup',\n HR: 'hr',\n HTML: 'html',\n\n I: 'i',\n IMG: 'img',\n IMAGE: 'image',\n INPUT: 'input',\n IFRAME: 'iframe',\n\n KEYGEN: 'keygen',\n\n LABEL: 'label',\n LI: 'li',\n LINK: 'link',\n LISTING: 'listing',\n\n MAIN: 'main',\n MALIGNMARK: 'malignmark',\n MARQUEE: 'marquee',\n MATH: 'math',\n MENU: 'menu',\n META: 'meta',\n MGLYPH: 'mglyph',\n MI: 'mi',\n MO: 'mo',\n MN: 'mn',\n MS: 'ms',\n MTEXT: 'mtext',\n\n NAV: 'nav',\n NOBR: 'nobr',\n NOFRAMES: 'noframes',\n NOEMBED: 'noembed',\n NOSCRIPT: 'noscript',\n\n OBJECT: 'object',\n OL: 'ol',\n OPTGROUP: 'optgroup',\n OPTION: 'option',\n\n P: 'p',\n PARAM: 'param',\n PLAINTEXT: 'plaintext',\n PRE: 'pre',\n\n RB: 'rb',\n RP: 'rp',\n RT: 'rt',\n RTC: 'rtc',\n RUBY: 'ruby',\n\n S: 's',\n SCRIPT: 'script',\n SECTION: 'section',\n SELECT: 'select',\n SOURCE: 'source',\n SMALL: 'small',\n SPAN: 'span',\n STRIKE: 'strike',\n STRONG: 'strong',\n STYLE: 'style',\n SUB: 'sub',\n SUMMARY: 'summary',\n SUP: 'sup',\n\n TABLE: 'table',\n TBODY: 'tbody',\n TEMPLATE: 'template',\n TEXTAREA: 'textarea',\n TFOOT: 'tfoot',\n TD: 'td',\n TH: 'th',\n THEAD: 'thead',\n TITLE: 'title',\n TR: 'tr',\n TRACK: 'track',\n TT: 'tt',\n\n U: 'u',\n UL: 'ul',\n\n SVG: 'svg',\n\n VAR: 'var',\n\n WBR: 'wbr',\n\n XMP: 'xmp'\n});\n\nhtml.SPECIAL_ELEMENTS = {\n [NS$3.HTML]: {\n [$$4.ADDRESS]: true,\n [$$4.APPLET]: true,\n [$$4.AREA]: true,\n [$$4.ARTICLE]: true,\n [$$4.ASIDE]: true,\n [$$4.BASE]: true,\n [$$4.BASEFONT]: true,\n [$$4.BGSOUND]: true,\n [$$4.BLOCKQUOTE]: true,\n [$$4.BODY]: true,\n [$$4.BR]: true,\n [$$4.BUTTON]: true,\n [$$4.CAPTION]: true,\n [$$4.CENTER]: true,\n [$$4.COL]: true,\n [$$4.COLGROUP]: true,\n [$$4.DD]: true,\n [$$4.DETAILS]: true,\n [$$4.DIR]: true,\n [$$4.DIV]: true,\n [$$4.DL]: true,\n [$$4.DT]: true,\n [$$4.EMBED]: true,\n [$$4.FIELDSET]: true,\n [$$4.FIGCAPTION]: true,\n [$$4.FIGURE]: true,\n [$$4.FOOTER]: true,\n [$$4.FORM]: true,\n [$$4.FRAME]: true,\n [$$4.FRAMESET]: true,\n [$$4.H1]: true,\n [$$4.H2]: true,\n [$$4.H3]: true,\n [$$4.H4]: true,\n [$$4.H5]: true,\n [$$4.H6]: true,\n [$$4.HEAD]: true,\n [$$4.HEADER]: true,\n [$$4.HGROUP]: true,\n [$$4.HR]: true,\n [$$4.HTML]: true,\n [$$4.IFRAME]: true,\n [$$4.IMG]: true,\n [$$4.INPUT]: true,\n [$$4.LI]: true,\n [$$4.LINK]: true,\n [$$4.LISTING]: true,\n [$$4.MAIN]: true,\n [$$4.MARQUEE]: true,\n [$$4.MENU]: true,\n [$$4.META]: true,\n [$$4.NAV]: true,\n [$$4.NOEMBED]: true,\n [$$4.NOFRAMES]: true,\n [$$4.NOSCRIPT]: true,\n [$$4.OBJECT]: true,\n [$$4.OL]: true,\n [$$4.P]: true,\n [$$4.PARAM]: true,\n [$$4.PLAINTEXT]: true,\n [$$4.PRE]: true,\n [$$4.SCRIPT]: true,\n [$$4.SECTION]: true,\n [$$4.SELECT]: true,\n [$$4.SOURCE]: true,\n [$$4.STYLE]: true,\n [$$4.SUMMARY]: true,\n [$$4.TABLE]: true,\n [$$4.TBODY]: true,\n [$$4.TD]: true,\n [$$4.TEMPLATE]: true,\n [$$4.TEXTAREA]: true,\n [$$4.TFOOT]: true,\n [$$4.TH]: true,\n [$$4.THEAD]: true,\n [$$4.TITLE]: true,\n [$$4.TR]: true,\n [$$4.TRACK]: true,\n [$$4.UL]: true,\n [$$4.WBR]: true,\n [$$4.XMP]: true\n },\n [NS$3.MATHML]: {\n [$$4.MI]: true,\n [$$4.MO]: true,\n [$$4.MN]: true,\n [$$4.MS]: true,\n [$$4.MTEXT]: true,\n [$$4.ANNOTATION_XML]: true\n },\n [NS$3.SVG]: {\n [$$4.TITLE]: true,\n [$$4.FOREIGN_OBJECT]: true,\n [$$4.DESC]: true\n }\n};\n\nconst HTML$3 = html;\n\n//Aliases\nconst $$3 = HTML$3.TAG_NAMES;\nconst NS$2 = HTML$3.NAMESPACES;\n\n//Element utils\n\n//OPTIMIZATION: Integer comparisons are low-cost, so we can use very fast tag name length filters here.\n//It's faster than using dictionary.\nfunction isImpliedEndTagRequired(tn) {\n switch (tn.length) {\n case 1:\n return tn === $$3.P;\n\n case 2:\n return tn === $$3.RB || tn === $$3.RP || tn === $$3.RT || tn === $$3.DD || tn === $$3.DT || tn === $$3.LI;\n\n case 3:\n return tn === $$3.RTC;\n\n case 6:\n return tn === $$3.OPTION;\n\n case 8:\n return tn === $$3.OPTGROUP;\n }\n\n return false;\n}\n\nfunction isImpliedEndTagRequiredThoroughly(tn) {\n switch (tn.length) {\n case 1:\n return tn === $$3.P;\n\n case 2:\n return (\n tn === $$3.RB ||\n tn === $$3.RP ||\n tn === $$3.RT ||\n tn === $$3.DD ||\n tn === $$3.DT ||\n tn === $$3.LI ||\n tn === $$3.TD ||\n tn === $$3.TH ||\n tn === $$3.TR\n );\n\n case 3:\n return tn === $$3.RTC;\n\n case 5:\n return tn === $$3.TBODY || tn === $$3.TFOOT || tn === $$3.THEAD;\n\n case 6:\n return tn === $$3.OPTION;\n\n case 7:\n return tn === $$3.CAPTION;\n\n case 8:\n return tn === $$3.OPTGROUP || tn === $$3.COLGROUP;\n }\n\n return false;\n}\n\nfunction isScopingElement(tn, ns) {\n switch (tn.length) {\n case 2:\n if (tn === $$3.TD || tn === $$3.TH) {\n return ns === NS$2.HTML;\n } else if (tn === $$3.MI || tn === $$3.MO || tn === $$3.MN || tn === $$3.MS) {\n return ns === NS$2.MATHML;\n }\n\n break;\n\n case 4:\n if (tn === $$3.HTML) {\n return ns === NS$2.HTML;\n } else if (tn === $$3.DESC) {\n return ns === NS$2.SVG;\n }\n\n break;\n\n case 5:\n if (tn === $$3.TABLE) {\n return ns === NS$2.HTML;\n } else if (tn === $$3.MTEXT) {\n return ns === NS$2.MATHML;\n } else if (tn === $$3.TITLE) {\n return ns === NS$2.SVG;\n }\n\n break;\n\n case 6:\n return (tn === $$3.APPLET || tn === $$3.OBJECT) && ns === NS$2.HTML;\n\n case 7:\n return (tn === $$3.CAPTION || tn === $$3.MARQUEE) && ns === NS$2.HTML;\n\n case 8:\n return tn === $$3.TEMPLATE && ns === NS$2.HTML;\n\n case 13:\n return tn === $$3.FOREIGN_OBJECT && ns === NS$2.SVG;\n\n case 14:\n return tn === $$3.ANNOTATION_XML && ns === NS$2.MATHML;\n }\n\n return false;\n}\n\n//Stack of open elements\nlet OpenElementStack$1 = class OpenElementStack {\n constructor(document, treeAdapter) {\n this.stackTop = -1;\n this.items = [];\n this.current = document;\n this.currentTagName = null;\n this.currentTmplContent = null;\n this.tmplCount = 0;\n this.treeAdapter = treeAdapter;\n }\n\n //Index of element\n _indexOf(element) {\n let idx = -1;\n\n for (let i = this.stackTop; i >= 0; i--) {\n if (this.items[i] === element) {\n idx = i;\n break;\n }\n }\n return idx;\n }\n\n //Update current element\n _isInTemplate() {\n return this.currentTagName === $$3.TEMPLATE && this.treeAdapter.getNamespaceURI(this.current) === NS$2.HTML;\n }\n\n _updateCurrentElement() {\n this.current = this.items[this.stackTop];\n this.currentTagName = this.current && this.treeAdapter.getTagName(this.current);\n\n this.currentTmplContent = this._isInTemplate() ? this.treeAdapter.getTemplateContent(this.current) : null;\n }\n\n //Mutations\n push(element) {\n this.items[++this.stackTop] = element;\n this._updateCurrentElement();\n\n if (this._isInTemplate()) {\n this.tmplCount++;\n }\n }\n\n pop() {\n this.stackTop--;\n\n if (this.tmplCount > 0 && this._isInTemplate()) {\n this.tmplCount--;\n }\n\n this._updateCurrentElement();\n }\n\n replace(oldElement, newElement) {\n const idx = this._indexOf(oldElement);\n\n this.items[idx] = newElement;\n\n if (idx === this.stackTop) {\n this._updateCurrentElement();\n }\n }\n\n insertAfter(referenceElement, newElement) {\n const insertionIdx = this._indexOf(referenceElement) + 1;\n\n this.items.splice(insertionIdx, 0, newElement);\n\n if (insertionIdx === ++this.stackTop) {\n this._updateCurrentElement();\n }\n }\n\n popUntilTagNamePopped(tagName) {\n while (this.stackTop > -1) {\n const tn = this.currentTagName;\n const ns = this.treeAdapter.getNamespaceURI(this.current);\n\n this.pop();\n\n if (tn === tagName && ns === NS$2.HTML) {\n break;\n }\n }\n }\n\n popUntilElementPopped(element) {\n while (this.stackTop > -1) {\n const poppedElement = this.current;\n\n this.pop();\n\n if (poppedElement === element) {\n break;\n }\n }\n }\n\n popUntilNumberedHeaderPopped() {\n while (this.stackTop > -1) {\n const tn = this.currentTagName;\n const ns = this.treeAdapter.getNamespaceURI(this.current);\n\n this.pop();\n\n if (\n tn === $$3.H1 ||\n tn === $$3.H2 ||\n tn === $$3.H3 ||\n tn === $$3.H4 ||\n tn === $$3.H5 ||\n (tn === $$3.H6 && ns === NS$2.HTML)\n ) {\n break;\n }\n }\n }\n\n popUntilTableCellPopped() {\n while (this.stackTop > -1) {\n const tn = this.currentTagName;\n const ns = this.treeAdapter.getNamespaceURI(this.current);\n\n this.pop();\n\n if (tn === $$3.TD || (tn === $$3.TH && ns === NS$2.HTML)) {\n break;\n }\n }\n }\n\n popAllUpToHtmlElement() {\n //NOTE: here we assume that root <html> element is always first in the open element stack, so\n //we perform this fast stack clean up.\n this.stackTop = 0;\n this._updateCurrentElement();\n }\n\n clearBackToTableContext() {\n while (\n (this.currentTagName !== $$3.TABLE && this.currentTagName !== $$3.TEMPLATE && this.currentTagName !== $$3.HTML) ||\n this.treeAdapter.getNamespaceURI(this.current) !== NS$2.HTML\n ) {\n this.pop();\n }\n }\n\n clearBackToTableBodyContext() {\n while (\n (this.currentTagName !== $$3.TBODY &&\n this.currentTagName !== $$3.TFOOT &&\n this.currentTagName !== $$3.THEAD &&\n this.currentTagName !== $$3.TEMPLATE &&\n this.currentTagName !== $$3.HTML) ||\n this.treeAdapter.getNamespaceURI(this.current) !== NS$2.HTML\n ) {\n this.pop();\n }\n }\n\n clearBackToTableRowContext() {\n while (\n (this.currentTagName !== $$3.TR && this.currentTagName !== $$3.TEMPLATE && this.currentTagName !== $$3.HTML) ||\n this.treeAdapter.getNamespaceURI(this.current) !== NS$2.HTML\n ) {\n this.pop();\n }\n }\n\n remove(element) {\n for (let i = this.stackTop; i >= 0; i--) {\n if (this.items[i] === element) {\n this.items.splice(i, 1);\n this.stackTop--;\n this._updateCurrentElement();\n break;\n }\n }\n }\n\n //Search\n tryPeekProperlyNestedBodyElement() {\n //Properly nested <body> element (should be second element in stack).\n const element = this.items[1];\n\n return element && this.treeAdapter.getTagName(element) === $$3.BODY ? element : null;\n }\n\n contains(element) {\n return this._indexOf(element) > -1;\n }\n\n getCommonAncestor(element) {\n let elementIdx = this._indexOf(element);\n\n return --elementIdx >= 0 ? this.items[elementIdx] : null;\n }\n\n isRootHtmlElementCurrent() {\n return this.stackTop === 0 && this.currentTagName === $$3.HTML;\n }\n\n //Element in scope\n hasInScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.treeAdapter.getTagName(this.items[i]);\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n if (tn === tagName && ns === NS$2.HTML) {\n return true;\n }\n\n if (isScopingElement(tn, ns)) {\n return false;\n }\n }\n\n return true;\n }\n\n hasNumberedHeaderInScope() {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.treeAdapter.getTagName(this.items[i]);\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n if (\n (tn === $$3.H1 || tn === $$3.H2 || tn === $$3.H3 || tn === $$3.H4 || tn === $$3.H5 || tn === $$3.H6) &&\n ns === NS$2.HTML\n ) {\n return true;\n }\n\n if (isScopingElement(tn, ns)) {\n return false;\n }\n }\n\n return true;\n }\n\n hasInListItemScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.treeAdapter.getTagName(this.items[i]);\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n if (tn === tagName && ns === NS$2.HTML) {\n return true;\n }\n\n if (((tn === $$3.UL || tn === $$3.OL) && ns === NS$2.HTML) || isScopingElement(tn, ns)) {\n return false;\n }\n }\n\n return true;\n }\n\n hasInButtonScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.treeAdapter.getTagName(this.items[i]);\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n if (tn === tagName && ns === NS$2.HTML) {\n return true;\n }\n\n if ((tn === $$3.BUTTON && ns === NS$2.HTML) || isScopingElement(tn, ns)) {\n return false;\n }\n }\n\n return true;\n }\n\n hasInTableScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.treeAdapter.getTagName(this.items[i]);\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n if (ns !== NS$2.HTML) {\n continue;\n }\n\n if (tn === tagName) {\n return true;\n }\n\n if (tn === $$3.TABLE || tn === $$3.TEMPLATE || tn === $$3.HTML) {\n return false;\n }\n }\n\n return true;\n }\n\n hasTableBodyContextInTableScope() {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.treeAdapter.getTagName(this.items[i]);\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n if (ns !== NS$2.HTML) {\n continue;\n }\n\n if (tn === $$3.TBODY || tn === $$3.THEAD || tn === $$3.TFOOT) {\n return true;\n }\n\n if (tn === $$3.TABLE || tn === $$3.HTML) {\n return false;\n }\n }\n\n return true;\n }\n\n hasInSelectScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.treeAdapter.getTagName(this.items[i]);\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n if (ns !== NS$2.HTML) {\n continue;\n }\n\n if (tn === tagName) {\n return true;\n }\n\n if (tn !== $$3.OPTION && tn !== $$3.OPTGROUP) {\n return false;\n }\n }\n\n return true;\n }\n\n //Implied end tags\n generateImpliedEndTags() {\n while (isImpliedEndTagRequired(this.currentTagName)) {\n this.pop();\n }\n }\n\n generateImpliedEndTagsThoroughly() {\n while (isImpliedEndTagRequiredThoroughly(this.currentTagName)) {\n this.pop();\n }\n }\n\n generateImpliedEndTagsWithExclusion(exclusionTagName) {\n while (isImpliedEndTagRequired(this.currentTagName) && this.currentTagName !== exclusionTagName) {\n this.pop();\n }\n }\n};\n\nvar openElementStack = OpenElementStack$1;\n\n//Const\nconst NOAH_ARK_CAPACITY = 3;\n\n//List of formatting elements\nlet FormattingElementList$1 = class FormattingElementList {\n constructor(treeAdapter) {\n this.length = 0;\n this.entries = [];\n this.treeAdapter = treeAdapter;\n this.bookmark = null;\n }\n\n //Noah Ark's condition\n //OPTIMIZATION: at first we try to find possible candidates for exclusion using\n //lightweight heuristics without thorough attributes check.\n _getNoahArkConditionCandidates(newElement) {\n const candidates = [];\n\n if (this.length >= NOAH_ARK_CAPACITY) {\n const neAttrsLength = this.treeAdapter.getAttrList(newElement).length;\n const neTagName = this.treeAdapter.getTagName(newElement);\n const neNamespaceURI = this.treeAdapter.getNamespaceURI(newElement);\n\n for (let i = this.length - 1; i >= 0; i--) {\n const entry = this.entries[i];\n\n if (entry.type === FormattingElementList.MARKER_ENTRY) {\n break;\n }\n\n const element = entry.element;\n const elementAttrs = this.treeAdapter.getAttrList(element);\n\n const isCandidate =\n this.treeAdapter.getTagName(element) === neTagName &&\n this.treeAdapter.getNamespaceURI(element) === neNamespaceURI &&\n elementAttrs.length === neAttrsLength;\n\n if (isCandidate) {\n candidates.push({ idx: i, attrs: elementAttrs });\n }\n }\n }\n\n return candidates.length < NOAH_ARK_CAPACITY ? [] : candidates;\n }\n\n _ensureNoahArkCondition(newElement) {\n const candidates = this._getNoahArkConditionCandidates(newElement);\n let cLength = candidates.length;\n\n if (cLength) {\n const neAttrs = this.treeAdapter.getAttrList(newElement);\n const neAttrsLength = neAttrs.length;\n const neAttrsMap = Object.create(null);\n\n //NOTE: build attrs map for the new element so we can perform fast lookups\n for (let i = 0; i < neAttrsLength; i++) {\n const neAttr = neAttrs[i];\n\n neAttrsMap[neAttr.name] = neAttr.value;\n }\n\n for (let i = 0; i < neAttrsLength; i++) {\n for (let j = 0; j < cLength; j++) {\n const cAttr = candidates[j].attrs[i];\n\n if (neAttrsMap[cAttr.name] !== cAttr.value) {\n candidates.splice(j, 1);\n cLength--;\n }\n\n if (candidates.length < NOAH_ARK_CAPACITY) {\n return;\n }\n }\n }\n\n //NOTE: remove bottommost candidates until Noah's Ark condition will not be met\n for (let i = cLength - 1; i >= NOAH_ARK_CAPACITY - 1; i--) {\n this.entries.splice(candidates[i].idx, 1);\n this.length--;\n }\n }\n }\n\n //Mutations\n insertMarker() {\n this.entries.push({ type: FormattingElementList.MARKER_ENTRY });\n this.length++;\n }\n\n pushElement(element, token) {\n this._ensureNoahArkCondition(element);\n\n this.entries.push({\n type: FormattingElementList.ELEMENT_ENTRY,\n element: element,\n token: token\n });\n\n this.length++;\n }\n\n insertElementAfterBookmark(element, token) {\n let bookmarkIdx = this.length - 1;\n\n for (; bookmarkIdx >= 0; bookmarkIdx--) {\n if (this.entries[bookmarkIdx] === this.bookmark) {\n break;\n }\n }\n\n this.entries.splice(bookmarkIdx + 1, 0, {\n type: FormattingElementList.ELEMENT_ENTRY,\n element: element,\n token: token\n });\n\n this.length++;\n }\n\n removeEntry(entry) {\n for (let i = this.length - 1; i >= 0; i--) {\n if (this.entries[i] === entry) {\n this.entries.splice(i, 1);\n this.length--;\n break;\n }\n }\n }\n\n clearToLastMarker() {\n while (this.length) {\n const entry = this.entries.pop();\n\n this.length--;\n\n if (entry.type === FormattingElementList.MARKER_ENTRY) {\n break;\n }\n }\n }\n\n //Search\n getElementEntryInScopeWithTagName(tagName) {\n for (let i = this.length - 1; i >= 0; i--) {\n const entry = this.entries[i];\n\n if (entry.type === FormattingElementList.MARKER_ENTRY) {\n return null;\n }\n\n if (this.treeAdapter.getTagName(entry.element) === tagName) {\n return entry;\n }\n }\n\n return null;\n }\n\n getElementEntry(element) {\n for (let i = this.length - 1; i >= 0; i--) {\n const entry = this.entries[i];\n\n if (entry.type === FormattingElementList.ELEMENT_ENTRY && entry.element === element) {\n return entry;\n }\n }\n\n return null;\n }\n};\n\n//Entry types\nFormattingElementList$1.MARKER_ENTRY = 'MARKER_ENTRY';\nFormattingElementList$1.ELEMENT_ENTRY = 'ELEMENT_ENTRY';\n\nvar formattingElementList = FormattingElementList$1;\n\nlet Mixin$9 = class Mixin {\n constructor(host) {\n const originalMethods = {};\n const overriddenMethods = this._getOverriddenMethods(this, originalMethods);\n\n for (const key of Object.keys(overriddenMethods)) {\n if (typeof overriddenMethods[key] === 'function') {\n originalMethods[key] = host[key];\n host[key] = overriddenMethods[key];\n }\n }\n }\n\n _getOverriddenMethods() {\n throw new Error('Not implemented');\n }\n};\n\nMixin$9.install = function(host, Ctor, opts) {\n if (!host.__mixins) {\n host.__mixins = [];\n }\n\n for (let i = 0; i < host.__mixins.length; i++) {\n if (host.__mixins[i].constructor === Ctor) {\n return host.__mixins[i];\n }\n }\n\n const mixin = new Ctor(host, opts);\n\n host.__mixins.push(mixin);\n\n return mixin;\n};\n\nvar mixin = Mixin$9;\n\nconst Mixin$8 = mixin;\n\nlet PositionTrackingPreprocessorMixin$2 = class PositionTrackingPreprocessorMixin extends Mixin$8 {\n constructor(preprocessor) {\n super(preprocessor);\n\n this.preprocessor = preprocessor;\n this.isEol = false;\n this.lineStartPos = 0;\n this.droppedBufferSize = 0;\n\n this.offset = 0;\n this.col = 0;\n this.line = 1;\n }\n\n _getOverriddenMethods(mxn, orig) {\n return {\n advance() {\n const pos = this.pos + 1;\n const ch = this.html[pos];\n\n //NOTE: LF should be in the last column of the line\n if (mxn.isEol) {\n mxn.isEol = false;\n mxn.line++;\n mxn.lineStartPos = pos;\n }\n\n if (ch === '\\n' || (ch === '\\r' && this.html[pos + 1] !== '\\n')) {\n mxn.isEol = true;\n }\n\n mxn.col = pos - mxn.lineStartPos + 1;\n mxn.offset = mxn.droppedBufferSize + pos;\n\n return orig.advance.call(this);\n },\n\n retreat() {\n orig.retreat.call(this);\n\n mxn.isEol = false;\n mxn.col = this.pos - mxn.lineStartPos + 1;\n },\n\n dropParsedChunk() {\n const prevPos = this.pos;\n\n orig.dropParsedChunk.call(this);\n\n const reduction = prevPos - this.pos;\n\n mxn.lineStartPos -= reduction;\n mxn.droppedBufferSize += reduction;\n mxn.offset = mxn.droppedBufferSize + this.pos;\n }\n };\n }\n};\n\nvar preprocessorMixin$1 = PositionTrackingPreprocessorMixin$2;\n\nconst Mixin$7 = mixin;\nconst Tokenizer$3 = tokenizer;\nconst PositionTrackingPreprocessorMixin$1 = preprocessorMixin$1;\n\nlet LocationInfoTokenizerMixin$2 = class LocationInfoTokenizerMixin extends Mixin$7 {\n constructor(tokenizer) {\n super(tokenizer);\n\n this.tokenizer = tokenizer;\n this.posTracker = Mixin$7.install(tokenizer.preprocessor, PositionTrackingPreprocessorMixin$1);\n this.currentAttrLocation = null;\n this.ctLoc = null;\n }\n\n _getCurrentLocation() {\n return {\n startLine: this.posTracker.line,\n startCol: this.posTracker.col,\n startOffset: this.posTracker.offset,\n endLine: -1,\n endCol: -1,\n endOffset: -1\n };\n }\n\n _attachCurrentAttrLocationInfo() {\n this.currentAttrLocation.endLine = this.posTracker.line;\n this.currentAttrLocation.endCol = this.posTracker.col;\n this.currentAttrLocation.endOffset = this.posTracker.offset;\n\n const currentToken = this.tokenizer.currentToken;\n const currentAttr = this.tokenizer.currentAttr;\n\n if (!currentToken.location.attrs) {\n currentToken.location.attrs = Object.create(null);\n }\n\n currentToken.location.attrs[currentAttr.name] = this.currentAttrLocation;\n }\n\n _getOverriddenMethods(mxn, orig) {\n const methods = {\n _createStartTagToken() {\n orig._createStartTagToken.call(this);\n this.currentToken.location = mxn.ctLoc;\n },\n\n _createEndTagToken() {\n orig._createEndTagToken.call(this);\n this.currentToken.location = mxn.ctLoc;\n },\n\n _createCommentToken() {\n orig._createCommentToken.call(this);\n this.currentToken.location = mxn.ctLoc;\n },\n\n _createDoctypeToken(initialName) {\n orig._createDoctypeToken.call(this, initialName);\n this.currentToken.location = mxn.ctLoc;\n },\n\n _createCharacterToken(type, ch) {\n orig._createCharacterToken.call(this, type, ch);\n this.currentCharacterToken.location = mxn.ctLoc;\n },\n\n _createEOFToken() {\n orig._createEOFToken.call(this);\n this.currentToken.location = mxn._getCurrentLocation();\n },\n\n _createAttr(attrNameFirstCh) {\n orig._createAttr.call(this, attrNameFirstCh);\n mxn.currentAttrLocation = mxn._getCurrentLocation();\n },\n\n _leaveAttrName(toState) {\n orig._leaveAttrName.call(this, toState);\n mxn._attachCurrentAttrLocationInfo();\n },\n\n _leaveAttrValue(toState) {\n orig._leaveAttrValue.call(this, toState);\n mxn._attachCurrentAttrLocationInfo();\n },\n\n _emitCurrentToken() {\n const ctLoc = this.currentToken.location;\n\n //NOTE: if we have pending character token make it's end location equal to the\n //current token's start location.\n if (this.currentCharacterToken) {\n this.currentCharacterToken.location.endLine = ctLoc.startLine;\n this.currentCharacterToken.location.endCol = ctLoc.startCol;\n this.currentCharacterToken.location.endOffset = ctLoc.startOffset;\n }\n\n if (this.currentToken.type === Tokenizer$3.EOF_TOKEN) {\n ctLoc.endLine = ctLoc.startLine;\n ctLoc.endCol = ctLoc.startCol;\n ctLoc.endOffset = ctLoc.startOffset;\n } else {\n ctLoc.endLine = mxn.posTracker.line;\n ctLoc.endCol = mxn.posTracker.col + 1;\n ctLoc.endOffset = mxn.posTracker.offset + 1;\n }\n\n orig._emitCurrentToken.call(this);\n },\n\n _emitCurrentCharacterToken() {\n const ctLoc = this.currentCharacterToken && this.currentCharacterToken.location;\n\n //NOTE: if we have character token and it's location wasn't set in the _emitCurrentToken(),\n //then set it's location at the current preprocessor position.\n //We don't need to increment preprocessor position, since character token\n //emission is always forced by the start of the next character token here.\n //So, we already have advanced position.\n if (ctLoc && ctLoc.endOffset === -1) {\n ctLoc.endLine = mxn.posTracker.line;\n ctLoc.endCol = mxn.posTracker.col;\n ctLoc.endOffset = mxn.posTracker.offset;\n }\n\n orig._emitCurrentCharacterToken.call(this);\n }\n };\n\n //NOTE: patch initial states for each mode to obtain token start position\n Object.keys(Tokenizer$3.MODE).forEach(modeName => {\n const state = Tokenizer$3.MODE[modeName];\n\n methods[state] = function(cp) {\n mxn.ctLoc = mxn._getCurrentLocation();\n orig[state].call(this, cp);\n };\n });\n\n return methods;\n }\n};\n\nvar tokenizerMixin$1 = LocationInfoTokenizerMixin$2;\n\nconst Mixin$6 = mixin;\n\nlet LocationInfoOpenElementStackMixin$1 = class LocationInfoOpenElementStackMixin extends Mixin$6 {\n constructor(stack, opts) {\n super(stack);\n\n this.onItemPop = opts.onItemPop;\n }\n\n _getOverriddenMethods(mxn, orig) {\n return {\n pop() {\n mxn.onItemPop(this.current);\n orig.pop.call(this);\n },\n\n popAllUpToHtmlElement() {\n for (let i = this.stackTop; i > 0; i--) {\n mxn.onItemPop(this.items[i]);\n }\n\n orig.popAllUpToHtmlElement.call(this);\n },\n\n remove(element) {\n mxn.onItemPop(this.current);\n orig.remove.call(this, element);\n }\n };\n }\n};\n\nvar openElementStackMixin = LocationInfoOpenElementStackMixin$1;\n\nconst Mixin$5 = mixin;\nconst Tokenizer$2 = tokenizer;\nconst LocationInfoTokenizerMixin$1 = tokenizerMixin$1;\nconst LocationInfoOpenElementStackMixin = openElementStackMixin;\nconst HTML$2 = html;\n\n//Aliases\nconst $$2 = HTML$2.TAG_NAMES;\n\nlet LocationInfoParserMixin$1 = class LocationInfoParserMixin extends Mixin$5 {\n constructor(parser) {\n super(parser);\n\n this.parser = parser;\n this.treeAdapter = this.parser.treeAdapter;\n this.posTracker = null;\n this.lastStartTagToken = null;\n this.lastFosterParentingLocation = null;\n this.currentToken = null;\n }\n\n _setStartLocation(element) {\n let loc = null;\n\n if (this.lastStartTagToken) {\n loc = Object.assign({}, this.lastStartTagToken.location);\n loc.startTag = this.lastStartTagToken.location;\n }\n\n this.treeAdapter.setNodeSourceCodeLocation(element, loc);\n }\n\n _setEndLocation(element, closingToken) {\n const loc = this.treeAdapter.getNodeSourceCodeLocation(element);\n\n if (loc) {\n if (closingToken.location) {\n const ctLoc = closingToken.location;\n const tn = this.treeAdapter.getTagName(element);\n\n // NOTE: For cases like <p> <p> </p> - First 'p' closes without a closing\n // tag and for cases like <td> <p> </td> - 'p' closes without a closing tag.\n const isClosingEndTag = closingToken.type === Tokenizer$2.END_TAG_TOKEN && tn === closingToken.tagName;\n const endLoc = {};\n if (isClosingEndTag) {\n endLoc.endTag = Object.assign({}, ctLoc);\n endLoc.endLine = ctLoc.endLine;\n endLoc.endCol = ctLoc.endCol;\n endLoc.endOffset = ctLoc.endOffset;\n } else {\n endLoc.endLine = ctLoc.startLine;\n endLoc.endCol = ctLoc.startCol;\n endLoc.endOffset = ctLoc.startOffset;\n }\n\n this.treeAdapter.updateNodeSourceCodeLocation(element, endLoc);\n }\n }\n }\n\n _getOverriddenMethods(mxn, orig) {\n return {\n _bootstrap(document, fragmentContext) {\n orig._bootstrap.call(this, document, fragmentContext);\n\n mxn.lastStartTagToken = null;\n mxn.lastFosterParentingLocation = null;\n mxn.currentToken = null;\n\n const tokenizerMixin = Mixin$5.install(this.tokenizer, LocationInfoTokenizerMixin$1);\n\n mxn.posTracker = tokenizerMixin.posTracker;\n\n Mixin$5.install(this.openElements, LocationInfoOpenElementStackMixin, {\n onItemPop: function(element) {\n mxn._setEndLocation(element, mxn.currentToken);\n }\n });\n },\n\n _runParsingLoop(scriptHandler) {\n orig._runParsingLoop.call(this, scriptHandler);\n\n // NOTE: generate location info for elements\n // that remains on open element stack\n for (let i = this.openElements.stackTop; i >= 0; i--) {\n mxn._setEndLocation(this.openElements.items[i], mxn.currentToken);\n }\n },\n\n //Token processing\n _processTokenInForeignContent(token) {\n mxn.currentToken = token;\n orig._processTokenInForeignContent.call(this, token);\n },\n\n _processToken(token) {\n mxn.currentToken = token;\n orig._processToken.call(this, token);\n\n //NOTE: <body> and <html> are never popped from the stack, so we need to updated\n //their end location explicitly.\n const requireExplicitUpdate =\n token.type === Tokenizer$2.END_TAG_TOKEN &&\n (token.tagName === $$2.HTML || (token.tagName === $$2.BODY && this.openElements.hasInScope($$2.BODY)));\n\n if (requireExplicitUpdate) {\n for (let i = this.openElements.stackTop; i >= 0; i--) {\n const element = this.openElements.items[i];\n\n if (this.treeAdapter.getTagName(element) === token.tagName) {\n mxn._setEndLocation(element, token);\n break;\n }\n }\n }\n },\n\n //Doctype\n _setDocumentType(token) {\n orig._setDocumentType.call(this, token);\n\n const documentChildren = this.treeAdapter.getChildNodes(this.document);\n const cnLength = documentChildren.length;\n\n for (let i = 0; i < cnLength; i++) {\n const node = documentChildren[i];\n\n if (this.treeAdapter.isDocumentTypeNode(node)) {\n this.treeAdapter.setNodeSourceCodeLocation(node, token.location);\n break;\n }\n }\n },\n\n //Elements\n _attachElementToTree(element) {\n //NOTE: _attachElementToTree is called from _appendElement, _insertElement and _insertTemplate methods.\n //So we will use token location stored in this methods for the element.\n mxn._setStartLocation(element);\n mxn.lastStartTagToken = null;\n orig._attachElementToTree.call(this, element);\n },\n\n _appendElement(token, namespaceURI) {\n mxn.lastStartTagToken = token;\n orig._appendElement.call(this, token, namespaceURI);\n },\n\n _insertElement(token, namespaceURI) {\n mxn.lastStartTagToken = token;\n orig._insertElement.call(this, token, namespaceURI);\n },\n\n _insertTemplate(token) {\n mxn.lastStartTagToken = token;\n orig._insertTemplate.call(this, token);\n\n const tmplContent = this.treeAdapter.getTemplateContent(this.openElements.current);\n\n this.treeAdapter.setNodeSourceCodeLocation(tmplContent, null);\n },\n\n _insertFakeRootElement() {\n orig._insertFakeRootElement.call(this);\n this.treeAdapter.setNodeSourceCodeLocation(this.openElements.current, null);\n },\n\n //Comments\n _appendCommentNode(token, parent) {\n orig._appendCommentNode.call(this, token, parent);\n\n const children = this.treeAdapter.getChildNodes(parent);\n const commentNode = children[children.length - 1];\n\n this.treeAdapter.setNodeSourceCodeLocation(commentNode, token.location);\n },\n\n //Text\n _findFosterParentingLocation() {\n //NOTE: store last foster parenting location, so we will be able to find inserted text\n //in case of foster parenting\n mxn.lastFosterParentingLocation = orig._findFosterParentingLocation.call(this);\n\n return mxn.lastFosterParentingLocation;\n },\n\n _insertCharacters(token) {\n orig._insertCharacters.call(this, token);\n\n const hasFosterParent = this._shouldFosterParentOnInsertion();\n\n const parent =\n (hasFosterParent && mxn.lastFosterParentingLocation.parent) ||\n this.openElements.currentTmplContent ||\n this.openElements.current;\n\n const siblings = this.treeAdapter.getChildNodes(parent);\n\n const textNodeIdx =\n hasFosterParent && mxn.lastFosterParentingLocation.beforeElement\n ? siblings.indexOf(mxn.lastFosterParentingLocation.beforeElement) - 1\n : siblings.length - 1;\n\n const textNode = siblings[textNodeIdx];\n\n //NOTE: if we have location assigned by another token, then just update end position\n const tnLoc = this.treeAdapter.getNodeSourceCodeLocation(textNode);\n\n if (tnLoc) {\n const { endLine, endCol, endOffset } = token.location;\n this.treeAdapter.updateNodeSourceCodeLocation(textNode, { endLine, endCol, endOffset });\n } else {\n this.treeAdapter.setNodeSourceCodeLocation(textNode, token.location);\n }\n }\n };\n }\n};\n\nvar parserMixin$1 = LocationInfoParserMixin$1;\n\nconst Mixin$4 = mixin;\n\nlet ErrorReportingMixinBase$3 = class ErrorReportingMixinBase extends Mixin$4 {\n constructor(host, opts) {\n super(host);\n\n this.posTracker = null;\n this.onParseError = opts.onParseError;\n }\n\n _setErrorLocation(err) {\n err.startLine = err.endLine = this.posTracker.line;\n err.startCol = err.endCol = this.posTracker.col;\n err.startOffset = err.endOffset = this.posTracker.offset;\n }\n\n _reportError(code) {\n const err = {\n code: code,\n startLine: -1,\n startCol: -1,\n startOffset: -1,\n endLine: -1,\n endCol: -1,\n endOffset: -1\n };\n\n this._setErrorLocation(err);\n this.onParseError(err);\n }\n\n _getOverriddenMethods(mxn) {\n return {\n _err(code) {\n mxn._reportError(code);\n }\n };\n }\n};\n\nvar mixinBase = ErrorReportingMixinBase$3;\n\nconst ErrorReportingMixinBase$2 = mixinBase;\nconst PositionTrackingPreprocessorMixin = preprocessorMixin$1;\nconst Mixin$3 = mixin;\n\nlet ErrorReportingPreprocessorMixin$1 = class ErrorReportingPreprocessorMixin extends ErrorReportingMixinBase$2 {\n constructor(preprocessor, opts) {\n super(preprocessor, opts);\n\n this.posTracker = Mixin$3.install(preprocessor, PositionTrackingPreprocessorMixin);\n this.lastErrOffset = -1;\n }\n\n _reportError(code) {\n //NOTE: avoid reporting error twice on advance/retreat\n if (this.lastErrOffset !== this.posTracker.offset) {\n this.lastErrOffset = this.posTracker.offset;\n super._reportError(code);\n }\n }\n};\n\nvar preprocessorMixin = ErrorReportingPreprocessorMixin$1;\n\nconst ErrorReportingMixinBase$1 = mixinBase;\nconst ErrorReportingPreprocessorMixin = preprocessorMixin;\nconst Mixin$2 = mixin;\n\nlet ErrorReportingTokenizerMixin$1 = class ErrorReportingTokenizerMixin extends ErrorReportingMixinBase$1 {\n constructor(tokenizer, opts) {\n super(tokenizer, opts);\n\n const preprocessorMixin = Mixin$2.install(tokenizer.preprocessor, ErrorReportingPreprocessorMixin, opts);\n\n this.posTracker = preprocessorMixin.posTracker;\n }\n};\n\nvar tokenizerMixin = ErrorReportingTokenizerMixin$1;\n\nconst ErrorReportingMixinBase = mixinBase;\nconst ErrorReportingTokenizerMixin = tokenizerMixin;\nconst LocationInfoTokenizerMixin = tokenizerMixin$1;\nconst Mixin$1 = mixin;\n\nlet ErrorReportingParserMixin$1 = class ErrorReportingParserMixin extends ErrorReportingMixinBase {\n constructor(parser, opts) {\n super(parser, opts);\n\n this.opts = opts;\n this.ctLoc = null;\n this.locBeforeToken = false;\n }\n\n _setErrorLocation(err) {\n if (this.ctLoc) {\n err.startLine = this.ctLoc.startLine;\n err.startCol = this.ctLoc.startCol;\n err.startOffset = this.ctLoc.startOffset;\n\n err.endLine = this.locBeforeToken ? this.ctLoc.startLine : this.ctLoc.endLine;\n err.endCol = this.locBeforeToken ? this.ctLoc.startCol : this.ctLoc.endCol;\n err.endOffset = this.locBeforeToken ? this.ctLoc.startOffset : this.ctLoc.endOffset;\n }\n }\n\n _getOverriddenMethods(mxn, orig) {\n return {\n _bootstrap(document, fragmentContext) {\n orig._bootstrap.call(this, document, fragmentContext);\n\n Mixin$1.install(this.tokenizer, ErrorReportingTokenizerMixin, mxn.opts);\n Mixin$1.install(this.tokenizer, LocationInfoTokenizerMixin);\n },\n\n _processInputToken(token) {\n mxn.ctLoc = token.location;\n\n orig._processInputToken.call(this, token);\n },\n\n _err(code, options) {\n mxn.locBeforeToken = options && options.beforeToken;\n mxn._reportError(code);\n }\n };\n }\n};\n\nvar parserMixin = ErrorReportingParserMixin$1;\n\nvar _default = {};\n\nconst { DOCUMENT_MODE: DOCUMENT_MODE$1 } = html;\n\n//Node construction\n_default.createDocument = function() {\n return {\n nodeName: '#document',\n mode: DOCUMENT_MODE$1.NO_QUIRKS,\n childNodes: []\n };\n};\n\n_default.createDocumentFragment = function() {\n return {\n nodeName: '#document-fragment',\n childNodes: []\n };\n};\n\n_default.createElement = function(tagName, namespaceURI, attrs) {\n return {\n nodeName: tagName,\n tagName: tagName,\n attrs: attrs,\n namespaceURI: namespaceURI,\n childNodes: [],\n parentNode: null\n };\n};\n\n_default.createCommentNode = function(data) {\n return {\n nodeName: '#comment',\n data: data,\n parentNode: null\n };\n};\n\nconst createTextNode = function(value) {\n return {\n nodeName: '#text',\n value: value,\n parentNode: null\n };\n};\n\n//Tree mutation\nconst appendChild = (_default.appendChild = function(parentNode, newNode) {\n parentNode.childNodes.push(newNode);\n newNode.parentNode = parentNode;\n});\n\nconst insertBefore = (_default.insertBefore = function(parentNode, newNode, referenceNode) {\n const insertionIdx = parentNode.childNodes.indexOf(referenceNode);\n\n parentNode.childNodes.splice(insertionIdx, 0, newNode);\n newNode.parentNode = parentNode;\n});\n\n_default.setTemplateContent = function(templateElement, contentElement) {\n templateElement.content = contentElement;\n};\n\n_default.getTemplateContent = function(templateElement) {\n return templateElement.content;\n};\n\n_default.setDocumentType = function(document, name, publicId, systemId) {\n let doctypeNode = null;\n\n for (let i = 0; i < document.childNodes.length; i++) {\n if (document.childNodes[i].nodeName === '#documentType') {\n doctypeNode = document.childNodes[i];\n break;\n }\n }\n\n if (doctypeNode) {\n doctypeNode.name = name;\n doctypeNode.publicId = publicId;\n doctypeNode.systemId = systemId;\n } else {\n appendChild(document, {\n nodeName: '#documentType',\n name: name,\n publicId: publicId,\n systemId: systemId\n });\n }\n};\n\n_default.setDocumentMode = function(document, mode) {\n document.mode = mode;\n};\n\n_default.getDocumentMode = function(document) {\n return document.mode;\n};\n\n_default.detachNode = function(node) {\n if (node.parentNode) {\n const idx = node.parentNode.childNodes.indexOf(node);\n\n node.parentNode.childNodes.splice(idx, 1);\n node.parentNode = null;\n }\n};\n\n_default.insertText = function(parentNode, text) {\n if (parentNode.childNodes.length) {\n const prevNode = parentNode.childNodes[parentNode.childNodes.length - 1];\n\n if (prevNode.nodeName === '#text') {\n prevNode.value += text;\n return;\n }\n }\n\n appendChild(parentNode, createTextNode(text));\n};\n\n_default.insertTextBefore = function(parentNode, text, referenceNode) {\n const prevNode = parentNode.childNodes[parentNode.childNodes.indexOf(referenceNode) - 1];\n\n if (prevNode && prevNode.nodeName === '#text') {\n prevNode.value += text;\n } else {\n insertBefore(parentNode, createTextNode(text), referenceNode);\n }\n};\n\n_default.adoptAttributes = function(recipient, attrs) {\n const recipientAttrsMap = [];\n\n for (let i = 0; i < recipient.attrs.length; i++) {\n recipientAttrsMap.push(recipient.attrs[i].name);\n }\n\n for (let j = 0; j < attrs.length; j++) {\n if (recipientAttrsMap.indexOf(attrs[j].name) === -1) {\n recipient.attrs.push(attrs[j]);\n }\n }\n};\n\n//Tree traversing\n_default.getFirstChild = function(node) {\n return node.childNodes[0];\n};\n\n_default.getChildNodes = function(node) {\n return node.childNodes;\n};\n\n_default.getParentNode = function(node) {\n return node.parentNode;\n};\n\n_default.getAttrList = function(element) {\n return element.attrs;\n};\n\n//Node data\n_default.getTagName = function(element) {\n return element.tagName;\n};\n\n_default.getNamespaceURI = function(element) {\n return element.namespaceURI;\n};\n\n_default.getTextNodeContent = function(textNode) {\n return textNode.value;\n};\n\n_default.getCommentNodeContent = function(commentNode) {\n return commentNode.data;\n};\n\n_default.getDocumentTypeNodeName = function(doctypeNode) {\n return doctypeNode.name;\n};\n\n_default.getDocumentTypeNodePublicId = function(doctypeNode) {\n return doctypeNode.publicId;\n};\n\n_default.getDocumentTypeNodeSystemId = function(doctypeNode) {\n return doctypeNode.systemId;\n};\n\n//Node types\n_default.isTextNode = function(node) {\n return node.nodeName === '#text';\n};\n\n_default.isCommentNode = function(node) {\n return node.nodeName === '#comment';\n};\n\n_default.isDocumentTypeNode = function(node) {\n return node.nodeName === '#documentType';\n};\n\n_default.isElementNode = function(node) {\n return !!node.tagName;\n};\n\n// Source code location\n_default.setNodeSourceCodeLocation = function(node, location) {\n node.sourceCodeLocation = location;\n};\n\n_default.getNodeSourceCodeLocation = function(node) {\n return node.sourceCodeLocation;\n};\n\n_default.updateNodeSourceCodeLocation = function(node, endLocation) {\n node.sourceCodeLocation = Object.assign(node.sourceCodeLocation, endLocation);\n};\n\nvar mergeOptions$1 = function mergeOptions(defaults, options) {\n options = options || Object.create(null);\n\n return [defaults, options].reduce((merged, optObj) => {\n Object.keys(optObj).forEach(key => {\n merged[key] = optObj[key];\n });\n\n return merged;\n }, Object.create(null));\n};\n\nvar doctype$1 = {};\n\nconst { DOCUMENT_MODE } = html;\n\n//Const\nconst VALID_DOCTYPE_NAME = 'html';\nconst VALID_SYSTEM_ID = 'about:legacy-compat';\nconst QUIRKS_MODE_SYSTEM_ID = 'http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd';\n\nconst QUIRKS_MODE_PUBLIC_ID_PREFIXES = [\n '+//silmaril//dtd html pro v0r11 19970101//',\n '-//as//dtd html 3.0 aswedit + extensions//',\n '-//advasoft ltd//dtd html 3.0 aswedit + extensions//',\n '-//ietf//dtd html 2.0 level 1//',\n '-//ietf//dtd html 2.0 level 2//',\n '-//ietf//dtd html 2.0 strict level 1//',\n '-//ietf//dtd html 2.0 strict level 2//',\n '-//ietf//dtd html 2.0 strict//',\n '-//ietf//dtd html 2.0//',\n '-//ietf//dtd html 2.1e//',\n '-//ietf//dtd html 3.0//',\n '-//ietf//dtd html 3.2 final//',\n '-//ietf//dtd html 3.2//',\n '-//ietf//dtd html 3//',\n '-//ietf//dtd html level 0//',\n '-//ietf//dtd html level 1//',\n '-//ietf//dtd html level 2//',\n '-//ietf//dtd html level 3//',\n '-//ietf//dtd html strict level 0//',\n '-//ietf//dtd html strict level 1//',\n '-//ietf//dtd html strict level 2//',\n '-//ietf//dtd html strict level 3//',\n '-//ietf//dtd html strict//',\n '-//ietf//dtd html//',\n '-//metrius//dtd metrius presentational//',\n '-//microsoft//dtd internet explorer 2.0 html strict//',\n '-//microsoft//dtd internet explorer 2.0 html//',\n '-//microsoft//dtd internet explorer 2.0 tables//',\n '-//microsoft//dtd internet explorer 3.0 html strict//',\n '-//microsoft//dtd internet explorer 3.0 html//',\n '-//microsoft//dtd internet explorer 3.0 tables//',\n '-//netscape comm. corp.//dtd html//',\n '-//netscape comm. corp.//dtd strict html//',\n \"-//o'reilly and associates//dtd html 2.0//\",\n \"-//o'reilly and associates//dtd html extended 1.0//\",\n \"-//o'reilly and associates//dtd html extended relaxed 1.0//\",\n '-//sq//dtd html 2.0 hotmetal + extensions//',\n '-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//',\n '-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//',\n '-//spyglass//dtd html 2.0 extended//',\n '-//sun microsystems corp.//dtd hotjava html//',\n '-//sun microsystems corp.//dtd hotjava strict html//',\n '-//w3c//dtd html 3 1995-03-24//',\n '-//w3c//dtd html 3.2 draft//',\n '-//w3c//dtd html 3.2 final//',\n '-//w3c//dtd html 3.2//',\n '-//w3c//dtd html 3.2s draft//',\n '-//w3c//dtd html 4.0 frameset//',\n '-//w3c//dtd html 4.0 transitional//',\n '-//w3c//dtd html experimental 19960712//',\n '-//w3c//dtd html experimental 970421//',\n '-//w3c//dtd w3 html//',\n '-//w3o//dtd w3 html 3.0//',\n '-//webtechs//dtd mozilla html 2.0//',\n '-//webtechs//dtd mozilla html//'\n];\n\nconst QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES = QUIRKS_MODE_PUBLIC_ID_PREFIXES.concat([\n '-//w3c//dtd html 4.01 frameset//',\n '-//w3c//dtd html 4.01 transitional//'\n]);\n\nconst QUIRKS_MODE_PUBLIC_IDS = ['-//w3o//dtd w3 html strict 3.0//en//', '-/w3c/dtd html 4.0 transitional/en', 'html'];\nconst LIMITED_QUIRKS_PUBLIC_ID_PREFIXES = ['-//w3c//dtd xhtml 1.0 frameset//', '-//w3c//dtd xhtml 1.0 transitional//'];\n\nconst LIMITED_QUIRKS_WITH_SYSTEM_ID_PUBLIC_ID_PREFIXES = LIMITED_QUIRKS_PUBLIC_ID_PREFIXES.concat([\n '-//w3c//dtd html 4.01 frameset//',\n '-//w3c//dtd html 4.01 transitional//'\n]);\n\n//Utils\nfunction enquoteDoctypeId(id) {\n const quote = id.indexOf('\"') !== -1 ? \"'\" : '\"';\n\n return quote + id + quote;\n}\n\nfunction hasPrefix(publicId, prefixes) {\n for (let i = 0; i < prefixes.length; i++) {\n if (publicId.indexOf(prefixes[i]) === 0) {\n return true;\n }\n }\n\n return false;\n}\n\n//API\ndoctype$1.isConforming = function(token) {\n return (\n token.name === VALID_DOCTYPE_NAME &&\n token.publicId === null &&\n (token.systemId === null || token.systemId === VALID_SYSTEM_ID)\n );\n};\n\ndoctype$1.getDocumentMode = function(token) {\n if (token.name !== VALID_DOCTYPE_NAME) {\n return DOCUMENT_MODE.QUIRKS;\n }\n\n const systemId = token.systemId;\n\n if (systemId && systemId.toLowerCase() === QUIRKS_MODE_SYSTEM_ID) {\n return DOCUMENT_MODE.QUIRKS;\n }\n\n let publicId = token.publicId;\n\n if (publicId !== null) {\n publicId = publicId.toLowerCase();\n\n if (QUIRKS_MODE_PUBLIC_IDS.indexOf(publicId) > -1) {\n return DOCUMENT_MODE.QUIRKS;\n }\n\n let prefixes = systemId === null ? QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES : QUIRKS_MODE_PUBLIC_ID_PREFIXES;\n\n if (hasPrefix(publicId, prefixes)) {\n return DOCUMENT_MODE.QUIRKS;\n }\n\n prefixes =\n systemId === null ? LIMITED_QUIRKS_PUBLIC_ID_PREFIXES : LIMITED_QUIRKS_WITH_SYSTEM_ID_PUBLIC_ID_PREFIXES;\n\n if (hasPrefix(publicId, prefixes)) {\n return DOCUMENT_MODE.LIMITED_QUIRKS;\n }\n }\n\n return DOCUMENT_MODE.NO_QUIRKS;\n};\n\ndoctype$1.serializeContent = function(name, publicId, systemId) {\n let str = '!DOCTYPE ';\n\n if (name) {\n str += name;\n }\n\n if (publicId) {\n str += ' PUBLIC ' + enquoteDoctypeId(publicId);\n } else if (systemId) {\n str += ' SYSTEM';\n }\n\n if (systemId !== null) {\n str += ' ' + enquoteDoctypeId(systemId);\n }\n\n return str;\n};\n\nvar foreignContent$1 = {};\n\nconst Tokenizer$1 = tokenizer;\nconst HTML$1 = html;\n\n//Aliases\nconst $$1 = HTML$1.TAG_NAMES;\nconst NS$1 = HTML$1.NAMESPACES;\nconst ATTRS$1 = HTML$1.ATTRS;\n\n//MIME types\nconst MIME_TYPES = {\n TEXT_HTML: 'text/html',\n APPLICATION_XML: 'application/xhtml+xml'\n};\n\n//Attributes\nconst DEFINITION_URL_ATTR = 'definitionurl';\nconst ADJUSTED_DEFINITION_URL_ATTR = 'definitionURL';\nconst SVG_ATTRS_ADJUSTMENT_MAP = {\n attributename: 'attributeName',\n attributetype: 'attributeType',\n basefrequency: 'baseFrequency',\n baseprofile: 'baseProfile',\n calcmode: 'calcMode',\n clippathunits: 'clipPathUnits',\n diffuseconstant: 'diffuseConstant',\n edgemode: 'edgeMode',\n filterunits: 'filterUnits',\n glyphref: 'glyphRef',\n gradienttransform: 'gradientTransform',\n gradientunits: 'gradientUnits',\n kernelmatrix: 'kernelMatrix',\n kernelunitlength: 'kernelUnitLength',\n keypoints: 'keyPoints',\n keysplines: 'keySplines',\n keytimes: 'keyTimes',\n lengthadjust: 'lengthAdjust',\n limitingconeangle: 'limitingConeAngle',\n markerheight: 'markerHeight',\n markerunits: 'markerUnits',\n markerwidth: 'markerWidth',\n maskcontentunits: 'maskContentUnits',\n maskunits: 'maskUnits',\n numoctaves: 'numOctaves',\n pathlength: 'pathLength',\n patterncontentunits: 'patternContentUnits',\n patterntransform: 'patternTransform',\n patternunits: 'patternUnits',\n pointsatx: 'pointsAtX',\n pointsaty: 'pointsAtY',\n pointsatz: 'pointsAtZ',\n preservealpha: 'preserveAlpha',\n preserveaspectratio: 'preserveAspectRatio',\n primitiveunits: 'primitiveUnits',\n refx: 'refX',\n refy: 'refY',\n repeatcount: 'repeatCount',\n repeatdur: 'repeatDur',\n requiredextensions: 'requiredExtensions',\n requiredfeatures: 'requiredFeatures',\n specularconstant: 'specularConstant',\n specularexponent: 'specularExponent',\n spreadmethod: 'spreadMethod',\n startoffset: 'startOffset',\n stddeviation: 'stdDeviation',\n stitchtiles: 'stitchTiles',\n surfacescale: 'surfaceScale',\n systemlanguage: 'systemLanguage',\n tablevalues: 'tableValues',\n targetx: 'targetX',\n targety: 'targetY',\n textlength: 'textLength',\n viewbox: 'viewBox',\n viewtarget: 'viewTarget',\n xchannelselector: 'xChannelSelector',\n ychannelselector: 'yChannelSelector',\n zoomandpan: 'zoomAndPan'\n};\n\nconst XML_ATTRS_ADJUSTMENT_MAP = {\n 'xlink:actuate': { prefix: 'xlink', name: 'actuate', namespace: NS$1.XLINK },\n 'xlink:arcrole': { prefix: 'xlink', name: 'arcrole', namespace: NS$1.XLINK },\n 'xlink:href': { prefix: 'xlink', name: 'href', namespace: NS$1.XLINK },\n 'xlink:role': { prefix: 'xlink', name: 'role', namespace: NS$1.XLINK },\n 'xlink:show': { prefix: 'xlink', name: 'show', namespace: NS$1.XLINK },\n 'xlink:title': { prefix: 'xlink', name: 'title', namespace: NS$1.XLINK },\n 'xlink:type': { prefix: 'xlink', name: 'type', namespace: NS$1.XLINK },\n 'xml:base': { prefix: 'xml', name: 'base', namespace: NS$1.XML },\n 'xml:lang': { prefix: 'xml', name: 'lang', namespace: NS$1.XML },\n 'xml:space': { prefix: 'xml', name: 'space', namespace: NS$1.XML },\n xmlns: { prefix: '', name: 'xmlns', namespace: NS$1.XMLNS },\n 'xmlns:xlink': { prefix: 'xmlns', name: 'xlink', namespace: NS$1.XMLNS }\n};\n\n//SVG tag names adjustment map\nconst SVG_TAG_NAMES_ADJUSTMENT_MAP = (foreignContent$1.SVG_TAG_NAMES_ADJUSTMENT_MAP = {\n altglyph: 'altGlyph',\n altglyphdef: 'altGlyphDef',\n altglyphitem: 'altGlyphItem',\n animatecolor: 'animateColor',\n animatemotion: 'animateMotion',\n animatetransform: 'animateTransform',\n clippath: 'clipPath',\n feblend: 'feBlend',\n fecolormatrix: 'feColorMatrix',\n fecomponenttransfer: 'feComponentTransfer',\n fecomposite: 'feComposite',\n feconvolvematrix: 'feConvolveMatrix',\n fediffuselighting: 'feDiffuseLighting',\n fedisplacementmap: 'feDisplacementMap',\n fedistantlight: 'feDistantLight',\n feflood: 'feFlood',\n fefunca: 'feFuncA',\n fefuncb: 'feFuncB',\n fefuncg: 'feFuncG',\n fefuncr: 'feFuncR',\n fegaussianblur: 'feGaussianBlur',\n feimage: 'feImage',\n femerge: 'feMerge',\n femergenode: 'feMergeNode',\n femorphology: 'feMorphology',\n feoffset: 'feOffset',\n fepointlight: 'fePointLight',\n fespecularlighting: 'feSpecularLighting',\n fespotlight: 'feSpotLight',\n fetile: 'feTile',\n feturbulence: 'feTurbulence',\n foreignobject: 'foreignObject',\n glyphref: 'glyphRef',\n lineargradient: 'linearGradient',\n radialgradient: 'radialGradient',\n textpath: 'textPath'\n});\n\n//Tags that causes exit from foreign content\nconst EXITS_FOREIGN_CONTENT = {\n [$$1.B]: true,\n [$$1.BIG]: true,\n [$$1.BLOCKQUOTE]: true,\n [$$1.BODY]: true,\n [$$1.BR]: true,\n [$$1.CENTER]: true,\n [$$1.CODE]: true,\n [$$1.DD]: true,\n [$$1.DIV]: true,\n [$$1.DL]: true,\n [$$1.DT]: true,\n [$$1.EM]: true,\n [$$1.EMBED]: true,\n [$$1.H1]: true,\n [$$1.H2]: true,\n [$$1.H3]: true,\n [$$1.H4]: true,\n [$$1.H5]: true,\n [$$1.H6]: true,\n [$$1.HEAD]: true,\n [$$1.HR]: true,\n [$$1.I]: true,\n [$$1.IMG]: true,\n [$$1.LI]: true,\n [$$1.LISTING]: true,\n [$$1.MENU]: true,\n [$$1.META]: true,\n [$$1.NOBR]: true,\n [$$1.OL]: true,\n [$$1.P]: true,\n [$$1.PRE]: true,\n [$$1.RUBY]: true,\n [$$1.S]: true,\n [$$1.SMALL]: true,\n [$$1.SPAN]: true,\n [$$1.STRONG]: true,\n [$$1.STRIKE]: true,\n [$$1.SUB]: true,\n [$$1.SUP]: true,\n [$$1.TABLE]: true,\n [$$1.TT]: true,\n [$$1.U]: true,\n [$$1.UL]: true,\n [$$1.VAR]: true\n};\n\n//Check exit from foreign content\nforeignContent$1.causesExit = function(startTagToken) {\n const tn = startTagToken.tagName;\n const isFontWithAttrs =\n tn === $$1.FONT &&\n (Tokenizer$1.getTokenAttr(startTagToken, ATTRS$1.COLOR) !== null ||\n Tokenizer$1.getTokenAttr(startTagToken, ATTRS$1.SIZE) !== null ||\n Tokenizer$1.getTokenAttr(startTagToken, ATTRS$1.FACE) !== null);\n\n return isFontWithAttrs ? true : EXITS_FOREIGN_CONTENT[tn];\n};\n\n//Token adjustments\nforeignContent$1.adjustTokenMathMLAttrs = function(token) {\n for (let i = 0; i < token.attrs.length; i++) {\n if (token.attrs[i].name === DEFINITION_URL_ATTR) {\n token.attrs[i].name = ADJUSTED_DEFINITION_URL_ATTR;\n break;\n }\n }\n};\n\nforeignContent$1.adjustTokenSVGAttrs = function(token) {\n for (let i = 0; i < token.attrs.length; i++) {\n const adjustedAttrName = SVG_ATTRS_ADJUSTMENT_MAP[token.attrs[i].name];\n\n if (adjustedAttrName) {\n token.attrs[i].name = adjustedAttrName;\n }\n }\n};\n\nforeignContent$1.adjustTokenXMLAttrs = function(token) {\n for (let i = 0; i < token.attrs.length; i++) {\n const adjustedAttrEntry = XML_ATTRS_ADJUSTMENT_MAP[token.attrs[i].name];\n\n if (adjustedAttrEntry) {\n token.attrs[i].prefix = adjustedAttrEntry.prefix;\n token.attrs[i].name = adjustedAttrEntry.name;\n token.attrs[i].namespace = adjustedAttrEntry.namespace;\n }\n }\n};\n\nforeignContent$1.adjustTokenSVGTagName = function(token) {\n const adjustedTagName = SVG_TAG_NAMES_ADJUSTMENT_MAP[token.tagName];\n\n if (adjustedTagName) {\n token.tagName = adjustedTagName;\n }\n};\n\n//Integration points\nfunction isMathMLTextIntegrationPoint(tn, ns) {\n return ns === NS$1.MATHML && (tn === $$1.MI || tn === $$1.MO || tn === $$1.MN || tn === $$1.MS || tn === $$1.MTEXT);\n}\n\nfunction isHtmlIntegrationPoint(tn, ns, attrs) {\n if (ns === NS$1.MATHML && tn === $$1.ANNOTATION_XML) {\n for (let i = 0; i < attrs.length; i++) {\n if (attrs[i].name === ATTRS$1.ENCODING) {\n const value = attrs[i].value.toLowerCase();\n\n return value === MIME_TYPES.TEXT_HTML || value === MIME_TYPES.APPLICATION_XML;\n }\n }\n }\n\n return ns === NS$1.SVG && (tn === $$1.FOREIGN_OBJECT || tn === $$1.DESC || tn === $$1.TITLE);\n}\n\nforeignContent$1.isIntegrationPoint = function(tn, ns, attrs, foreignNS) {\n if ((!foreignNS || foreignNS === NS$1.HTML) && isHtmlIntegrationPoint(tn, ns, attrs)) {\n return true;\n }\n\n if ((!foreignNS || foreignNS === NS$1.MATHML) && isMathMLTextIntegrationPoint(tn, ns)) {\n return true;\n }\n\n return false;\n};\n\nconst Tokenizer = tokenizer;\nconst OpenElementStack = openElementStack;\nconst FormattingElementList = formattingElementList;\nconst LocationInfoParserMixin = parserMixin$1;\nconst ErrorReportingParserMixin = parserMixin;\nconst Mixin = mixin;\nconst defaultTreeAdapter = _default;\nconst mergeOptions = mergeOptions$1;\nconst doctype = doctype$1;\nconst foreignContent = foreignContent$1;\nconst ERR = errorCodes;\nconst unicode = unicode$3;\nconst HTML = html;\n\n//Aliases\nconst $ = HTML.TAG_NAMES;\nconst NS = HTML.NAMESPACES;\nconst ATTRS = HTML.ATTRS;\n\nconst DEFAULT_OPTIONS = {\n scriptingEnabled: true,\n sourceCodeLocationInfo: false,\n onParseError: null,\n treeAdapter: defaultTreeAdapter\n};\n\n//Misc constants\nconst HIDDEN_INPUT_TYPE = 'hidden';\n\n//Adoption agency loops iteration count\nconst AA_OUTER_LOOP_ITER = 8;\nconst AA_INNER_LOOP_ITER = 3;\n\n//Insertion modes\nconst INITIAL_MODE = 'INITIAL_MODE';\nconst BEFORE_HTML_MODE = 'BEFORE_HTML_MODE';\nconst BEFORE_HEAD_MODE = 'BEFORE_HEAD_MODE';\nconst IN_HEAD_MODE = 'IN_HEAD_MODE';\nconst IN_HEAD_NO_SCRIPT_MODE = 'IN_HEAD_NO_SCRIPT_MODE';\nconst AFTER_HEAD_MODE = 'AFTER_HEAD_MODE';\nconst IN_BODY_MODE = 'IN_BODY_MODE';\nconst TEXT_MODE = 'TEXT_MODE';\nconst IN_TABLE_MODE = 'IN_TABLE_MODE';\nconst IN_TABLE_TEXT_MODE = 'IN_TABLE_TEXT_MODE';\nconst IN_CAPTION_MODE = 'IN_CAPTION_MODE';\nconst IN_COLUMN_GROUP_MODE = 'IN_COLUMN_GROUP_MODE';\nconst IN_TABLE_BODY_MODE = 'IN_TABLE_BODY_MODE';\nconst IN_ROW_MODE = 'IN_ROW_MODE';\nconst IN_CELL_MODE = 'IN_CELL_MODE';\nconst IN_SELECT_MODE = 'IN_SELECT_MODE';\nconst IN_SELECT_IN_TABLE_MODE = 'IN_SELECT_IN_TABLE_MODE';\nconst IN_TEMPLATE_MODE = 'IN_TEMPLATE_MODE';\nconst AFTER_BODY_MODE = 'AFTER_BODY_MODE';\nconst IN_FRAMESET_MODE = 'IN_FRAMESET_MODE';\nconst AFTER_FRAMESET_MODE = 'AFTER_FRAMESET_MODE';\nconst AFTER_AFTER_BODY_MODE = 'AFTER_AFTER_BODY_MODE';\nconst AFTER_AFTER_FRAMESET_MODE = 'AFTER_AFTER_FRAMESET_MODE';\n\n//Insertion mode reset map\nconst INSERTION_MODE_RESET_MAP = {\n [$.TR]: IN_ROW_MODE,\n [$.TBODY]: IN_TABLE_BODY_MODE,\n [$.THEAD]: IN_TABLE_BODY_MODE,\n [$.TFOOT]: IN_TABLE_BODY_MODE,\n [$.CAPTION]: IN_CAPTION_MODE,\n [$.COLGROUP]: IN_COLUMN_GROUP_MODE,\n [$.TABLE]: IN_TABLE_MODE,\n [$.BODY]: IN_BODY_MODE,\n [$.FRAMESET]: IN_FRAMESET_MODE\n};\n\n//Template insertion mode switch map\nconst TEMPLATE_INSERTION_MODE_SWITCH_MAP = {\n [$.CAPTION]: IN_TABLE_MODE,\n [$.COLGROUP]: IN_TABLE_MODE,\n [$.TBODY]: IN_TABLE_MODE,\n [$.TFOOT]: IN_TABLE_MODE,\n [$.THEAD]: IN_TABLE_MODE,\n [$.COL]: IN_COLUMN_GROUP_MODE,\n [$.TR]: IN_TABLE_BODY_MODE,\n [$.TD]: IN_ROW_MODE,\n [$.TH]: IN_ROW_MODE\n};\n\n//Token handlers map for insertion modes\nconst TOKEN_HANDLERS = {\n [INITIAL_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: tokenInInitialMode,\n [Tokenizer.NULL_CHARACTER_TOKEN]: tokenInInitialMode,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: doctypeInInitialMode,\n [Tokenizer.START_TAG_TOKEN]: tokenInInitialMode,\n [Tokenizer.END_TAG_TOKEN]: tokenInInitialMode,\n [Tokenizer.EOF_TOKEN]: tokenInInitialMode\n },\n [BEFORE_HTML_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: tokenBeforeHtml,\n [Tokenizer.NULL_CHARACTER_TOKEN]: tokenBeforeHtml,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagBeforeHtml,\n [Tokenizer.END_TAG_TOKEN]: endTagBeforeHtml,\n [Tokenizer.EOF_TOKEN]: tokenBeforeHtml\n },\n [BEFORE_HEAD_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: tokenBeforeHead,\n [Tokenizer.NULL_CHARACTER_TOKEN]: tokenBeforeHead,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: misplacedDoctype,\n [Tokenizer.START_TAG_TOKEN]: startTagBeforeHead,\n [Tokenizer.END_TAG_TOKEN]: endTagBeforeHead,\n [Tokenizer.EOF_TOKEN]: tokenBeforeHead\n },\n [IN_HEAD_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: tokenInHead,\n [Tokenizer.NULL_CHARACTER_TOKEN]: tokenInHead,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: misplacedDoctype,\n [Tokenizer.START_TAG_TOKEN]: startTagInHead,\n [Tokenizer.END_TAG_TOKEN]: endTagInHead,\n [Tokenizer.EOF_TOKEN]: tokenInHead\n },\n [IN_HEAD_NO_SCRIPT_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: tokenInHeadNoScript,\n [Tokenizer.NULL_CHARACTER_TOKEN]: tokenInHeadNoScript,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: misplacedDoctype,\n [Tokenizer.START_TAG_TOKEN]: startTagInHeadNoScript,\n [Tokenizer.END_TAG_TOKEN]: endTagInHeadNoScript,\n [Tokenizer.EOF_TOKEN]: tokenInHeadNoScript\n },\n [AFTER_HEAD_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: tokenAfterHead,\n [Tokenizer.NULL_CHARACTER_TOKEN]: tokenAfterHead,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: misplacedDoctype,\n [Tokenizer.START_TAG_TOKEN]: startTagAfterHead,\n [Tokenizer.END_TAG_TOKEN]: endTagAfterHead,\n [Tokenizer.EOF_TOKEN]: tokenAfterHead\n },\n [IN_BODY_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: characterInBody,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInBody,\n [Tokenizer.END_TAG_TOKEN]: endTagInBody,\n [Tokenizer.EOF_TOKEN]: eofInBody\n },\n [TEXT_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.NULL_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.COMMENT_TOKEN]: ignoreToken,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: ignoreToken,\n [Tokenizer.END_TAG_TOKEN]: endTagInText,\n [Tokenizer.EOF_TOKEN]: eofInText\n },\n [IN_TABLE_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: characterInTable,\n [Tokenizer.NULL_CHARACTER_TOKEN]: characterInTable,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: characterInTable,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInTable,\n [Tokenizer.END_TAG_TOKEN]: endTagInTable,\n [Tokenizer.EOF_TOKEN]: eofInBody\n },\n [IN_TABLE_TEXT_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: characterInTableText,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInTableText,\n [Tokenizer.COMMENT_TOKEN]: tokenInTableText,\n [Tokenizer.DOCTYPE_TOKEN]: tokenInTableText,\n [Tokenizer.START_TAG_TOKEN]: tokenInTableText,\n [Tokenizer.END_TAG_TOKEN]: tokenInTableText,\n [Tokenizer.EOF_TOKEN]: tokenInTableText\n },\n [IN_CAPTION_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: characterInBody,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInCaption,\n [Tokenizer.END_TAG_TOKEN]: endTagInCaption,\n [Tokenizer.EOF_TOKEN]: eofInBody\n },\n [IN_COLUMN_GROUP_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: tokenInColumnGroup,\n [Tokenizer.NULL_CHARACTER_TOKEN]: tokenInColumnGroup,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInColumnGroup,\n [Tokenizer.END_TAG_TOKEN]: endTagInColumnGroup,\n [Tokenizer.EOF_TOKEN]: eofInBody\n },\n [IN_TABLE_BODY_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: characterInTable,\n [Tokenizer.NULL_CHARACTER_TOKEN]: characterInTable,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: characterInTable,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInTableBody,\n [Tokenizer.END_TAG_TOKEN]: endTagInTableBody,\n [Tokenizer.EOF_TOKEN]: eofInBody\n },\n [IN_ROW_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: characterInTable,\n [Tokenizer.NULL_CHARACTER_TOKEN]: characterInTable,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: characterInTable,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInRow,\n [Tokenizer.END_TAG_TOKEN]: endTagInRow,\n [Tokenizer.EOF_TOKEN]: eofInBody\n },\n [IN_CELL_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: characterInBody,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInCell,\n [Tokenizer.END_TAG_TOKEN]: endTagInCell,\n [Tokenizer.EOF_TOKEN]: eofInBody\n },\n [IN_SELECT_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInSelect,\n [Tokenizer.END_TAG_TOKEN]: endTagInSelect,\n [Tokenizer.EOF_TOKEN]: eofInBody\n },\n [IN_SELECT_IN_TABLE_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInSelectInTable,\n [Tokenizer.END_TAG_TOKEN]: endTagInSelectInTable,\n [Tokenizer.EOF_TOKEN]: eofInBody\n },\n [IN_TEMPLATE_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: characterInBody,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInTemplate,\n [Tokenizer.END_TAG_TOKEN]: endTagInTemplate,\n [Tokenizer.EOF_TOKEN]: eofInTemplate\n },\n [AFTER_BODY_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: tokenAfterBody,\n [Tokenizer.NULL_CHARACTER_TOKEN]: tokenAfterBody,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n [Tokenizer.COMMENT_TOKEN]: appendCommentToRootHtmlElement,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagAfterBody,\n [Tokenizer.END_TAG_TOKEN]: endTagAfterBody,\n [Tokenizer.EOF_TOKEN]: stopParsing\n },\n [IN_FRAMESET_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInFrameset,\n [Tokenizer.END_TAG_TOKEN]: endTagInFrameset,\n [Tokenizer.EOF_TOKEN]: stopParsing\n },\n [AFTER_FRAMESET_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagAfterFrameset,\n [Tokenizer.END_TAG_TOKEN]: endTagAfterFrameset,\n [Tokenizer.EOF_TOKEN]: stopParsing\n },\n [AFTER_AFTER_BODY_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: tokenAfterAfterBody,\n [Tokenizer.NULL_CHARACTER_TOKEN]: tokenAfterAfterBody,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n [Tokenizer.COMMENT_TOKEN]: appendCommentToDocument,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagAfterAfterBody,\n [Tokenizer.END_TAG_TOKEN]: tokenAfterAfterBody,\n [Tokenizer.EOF_TOKEN]: stopParsing\n },\n [AFTER_AFTER_FRAMESET_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n [Tokenizer.COMMENT_TOKEN]: appendCommentToDocument,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagAfterAfterFrameset,\n [Tokenizer.END_TAG_TOKEN]: ignoreToken,\n [Tokenizer.EOF_TOKEN]: stopParsing\n }\n};\n\n//Parser\nlet Parser$1 = class Parser {\n constructor(options) {\n this.options = mergeOptions(DEFAULT_OPTIONS, options);\n\n this.treeAdapter = this.options.treeAdapter;\n this.pendingScript = null;\n\n if (this.options.sourceCodeLocationInfo) {\n Mixin.install(this, LocationInfoParserMixin);\n }\n\n if (this.options.onParseError) {\n Mixin.install(this, ErrorReportingParserMixin, { onParseError: this.options.onParseError });\n }\n }\n\n // API\n parse(html) {\n const document = this.treeAdapter.createDocument();\n\n this._bootstrap(document, null);\n this.tokenizer.write(html, true);\n this._runParsingLoop(null);\n\n return document;\n }\n\n parseFragment(html, fragmentContext) {\n //NOTE: use <template> element as a fragment context if context element was not provided,\n //so we will parse in \"forgiving\" manner\n if (!fragmentContext) {\n fragmentContext = this.treeAdapter.createElement($.TEMPLATE, NS.HTML, []);\n }\n\n //NOTE: create fake element which will be used as 'document' for fragment parsing.\n //This is important for jsdom there 'document' can't be recreated, therefore\n //fragment parsing causes messing of the main `document`.\n const documentMock = this.treeAdapter.createElement('documentmock', NS.HTML, []);\n\n this._bootstrap(documentMock, fragmentContext);\n\n if (this.treeAdapter.getTagName(fragmentContext) === $.TEMPLATE) {\n this._pushTmplInsertionMode(IN_TEMPLATE_MODE);\n }\n\n this._initTokenizerForFragmentParsing();\n this._insertFakeRootElement();\n this._resetInsertionMode();\n this._findFormInFragmentContext();\n this.tokenizer.write(html, true);\n this._runParsingLoop(null);\n\n const rootElement = this.treeAdapter.getFirstChild(documentMock);\n const fragment = this.treeAdapter.createDocumentFragment();\n\n this._adoptNodes(rootElement, fragment);\n\n return fragment;\n }\n\n //Bootstrap parser\n _bootstrap(document, fragmentContext) {\n this.tokenizer = new Tokenizer(this.options);\n\n this.stopped = false;\n\n this.insertionMode = INITIAL_MODE;\n this.originalInsertionMode = '';\n\n this.document = document;\n this.fragmentContext = fragmentContext;\n\n this.headElement = null;\n this.formElement = null;\n\n this.openElements = new OpenElementStack(this.document, this.treeAdapter);\n this.activeFormattingElements = new FormattingElementList(this.treeAdapter);\n\n this.tmplInsertionModeStack = [];\n this.tmplInsertionModeStackTop = -1;\n this.currentTmplInsertionMode = null;\n\n this.pendingCharacterTokens = [];\n this.hasNonWhitespacePendingCharacterToken = false;\n\n this.framesetOk = true;\n this.skipNextNewLine = false;\n this.fosterParentingEnabled = false;\n }\n\n //Errors\n _err() {\n // NOTE: err reporting is noop by default. Enabled by mixin.\n }\n\n //Parsing loop\n _runParsingLoop(scriptHandler) {\n while (!this.stopped) {\n this._setupTokenizerCDATAMode();\n\n const token = this.tokenizer.getNextToken();\n\n if (token.type === Tokenizer.HIBERNATION_TOKEN) {\n break;\n }\n\n if (this.skipNextNewLine) {\n this.skipNextNewLine = false;\n\n if (token.type === Tokenizer.WHITESPACE_CHARACTER_TOKEN && token.chars[0] === '\\n') {\n if (token.chars.length === 1) {\n continue;\n }\n\n token.chars = token.chars.substr(1);\n }\n }\n\n this._processInputToken(token);\n\n if (scriptHandler && this.pendingScript) {\n break;\n }\n }\n }\n\n runParsingLoopForCurrentChunk(writeCallback, scriptHandler) {\n this._runParsingLoop(scriptHandler);\n\n if (scriptHandler && this.pendingScript) {\n const script = this.pendingScript;\n\n this.pendingScript = null;\n\n scriptHandler(script);\n\n return;\n }\n\n if (writeCallback) {\n writeCallback();\n }\n }\n\n //Text parsing\n _setupTokenizerCDATAMode() {\n const current = this._getAdjustedCurrentElement();\n\n this.tokenizer.allowCDATA =\n current &&\n current !== this.document &&\n this.treeAdapter.getNamespaceURI(current) !== NS.HTML &&\n !this._isIntegrationPoint(current);\n }\n\n _switchToTextParsing(currentToken, nextTokenizerState) {\n this._insertElement(currentToken, NS.HTML);\n this.tokenizer.state = nextTokenizerState;\n this.originalInsertionMode = this.insertionMode;\n this.insertionMode = TEXT_MODE;\n }\n\n switchToPlaintextParsing() {\n this.insertionMode = TEXT_MODE;\n this.originalInsertionMode = IN_BODY_MODE;\n this.tokenizer.state = Tokenizer.MODE.PLAINTEXT;\n }\n\n //Fragment parsing\n _getAdjustedCurrentElement() {\n return this.openElements.stackTop === 0 && this.fragmentContext\n ? this.fragmentContext\n : this.openElements.current;\n }\n\n _findFormInFragmentContext() {\n let node = this.fragmentContext;\n\n do {\n if (this.treeAdapter.getTagName(node) === $.FORM) {\n this.formElement = node;\n break;\n }\n\n node = this.treeAdapter.getParentNode(node);\n } while (node);\n }\n\n _initTokenizerForFragmentParsing() {\n if (this.treeAdapter.getNamespaceURI(this.fragmentContext) === NS.HTML) {\n const tn = this.treeAdapter.getTagName(this.fragmentContext);\n\n if (tn === $.TITLE || tn === $.TEXTAREA) {\n this.tokenizer.state = Tokenizer.MODE.RCDATA;\n } else if (\n tn === $.STYLE ||\n tn === $.XMP ||\n tn === $.IFRAME ||\n tn === $.NOEMBED ||\n tn === $.NOFRAMES ||\n tn === $.NOSCRIPT\n ) {\n this.tokenizer.state = Tokenizer.MODE.RAWTEXT;\n } else if (tn === $.SCRIPT) {\n this.tokenizer.state = Tokenizer.MODE.SCRIPT_DATA;\n } else if (tn === $.PLAINTEXT) {\n this.tokenizer.state = Tokenizer.MODE.PLAINTEXT;\n }\n }\n }\n\n //Tree mutation\n _setDocumentType(token) {\n const name = token.name || '';\n const publicId = token.publicId || '';\n const systemId = token.systemId || '';\n\n this.treeAdapter.setDocumentType(this.document, name, publicId, systemId);\n }\n\n _attachElementToTree(element) {\n if (this._shouldFosterParentOnInsertion()) {\n this._fosterParentElement(element);\n } else {\n const parent = this.openElements.currentTmplContent || this.openElements.current;\n\n this.treeAdapter.appendChild(parent, element);\n }\n }\n\n _appendElement(token, namespaceURI) {\n const element = this.treeAdapter.createElement(token.tagName, namespaceURI, token.attrs);\n\n this._attachElementToTree(element);\n }\n\n _insertElement(token, namespaceURI) {\n const element = this.treeAdapter.createElement(token.tagName, namespaceURI, token.attrs);\n\n this._attachElementToTree(element);\n this.openElements.push(element);\n }\n\n _insertFakeElement(tagName) {\n const element = this.treeAdapter.createElement(tagName, NS.HTML, []);\n\n this._attachElementToTree(element);\n this.openElements.push(element);\n }\n\n _insertTemplate(token) {\n const tmpl = this.treeAdapter.createElement(token.tagName, NS.HTML, token.attrs);\n const content = this.treeAdapter.createDocumentFragment();\n\n this.treeAdapter.setTemplateContent(tmpl, content);\n this._attachElementToTree(tmpl);\n this.openElements.push(tmpl);\n }\n\n _insertFakeRootElement() {\n const element = this.treeAdapter.createElement($.HTML, NS.HTML, []);\n\n this.treeAdapter.appendChild(this.openElements.current, element);\n this.openElements.push(element);\n }\n\n _appendCommentNode(token, parent) {\n const commentNode = this.treeAdapter.createCommentNode(token.data);\n\n this.treeAdapter.appendChild(parent, commentNode);\n }\n\n _insertCharacters(token) {\n if (this._shouldFosterParentOnInsertion()) {\n this._fosterParentText(token.chars);\n } else {\n const parent = this.openElements.currentTmplContent || this.openElements.current;\n\n this.treeAdapter.insertText(parent, token.chars);\n }\n }\n\n _adoptNodes(donor, recipient) {\n for (let child = this.treeAdapter.getFirstChild(donor); child; child = this.treeAdapter.getFirstChild(donor)) {\n this.treeAdapter.detachNode(child);\n this.treeAdapter.appendChild(recipient, child);\n }\n }\n\n //Token processing\n _shouldProcessTokenInForeignContent(token) {\n const current = this._getAdjustedCurrentElement();\n\n if (!current || current === this.document) {\n return false;\n }\n\n const ns = this.treeAdapter.getNamespaceURI(current);\n\n if (ns === NS.HTML) {\n return false;\n }\n\n if (\n this.treeAdapter.getTagName(current) === $.ANNOTATION_XML &&\n ns === NS.MATHML &&\n token.type === Tokenizer.START_TAG_TOKEN &&\n token.tagName === $.SVG\n ) {\n return false;\n }\n\n const isCharacterToken =\n token.type === Tokenizer.CHARACTER_TOKEN ||\n token.type === Tokenizer.NULL_CHARACTER_TOKEN ||\n token.type === Tokenizer.WHITESPACE_CHARACTER_TOKEN;\n\n const isMathMLTextStartTag =\n token.type === Tokenizer.START_TAG_TOKEN && token.tagName !== $.MGLYPH && token.tagName !== $.MALIGNMARK;\n\n if ((isMathMLTextStartTag || isCharacterToken) && this._isIntegrationPoint(current, NS.MATHML)) {\n return false;\n }\n\n if (\n (token.type === Tokenizer.START_TAG_TOKEN || isCharacterToken) &&\n this._isIntegrationPoint(current, NS.HTML)\n ) {\n return false;\n }\n\n return token.type !== Tokenizer.EOF_TOKEN;\n }\n\n _processToken(token) {\n TOKEN_HANDLERS[this.insertionMode][token.type](this, token);\n }\n\n _processTokenInBodyMode(token) {\n TOKEN_HANDLERS[IN_BODY_MODE][token.type](this, token);\n }\n\n _processTokenInForeignContent(token) {\n if (token.type === Tokenizer.CHARACTER_TOKEN) {\n characterInForeignContent(this, token);\n } else if (token.type === Tokenizer.NULL_CHARACTER_TOKEN) {\n nullCharacterInForeignContent(this, token);\n } else if (token.type === Tokenizer.WHITESPACE_CHARACTER_TOKEN) {\n insertCharacters(this, token);\n } else if (token.type === Tokenizer.COMMENT_TOKEN) {\n appendComment(this, token);\n } else if (token.type === Tokenizer.START_TAG_TOKEN) {\n startTagInForeignContent(this, token);\n } else if (token.type === Tokenizer.END_TAG_TOKEN) {\n endTagInForeignContent(this, token);\n }\n }\n\n _processInputToken(token) {\n if (this._shouldProcessTokenInForeignContent(token)) {\n this._processTokenInForeignContent(token);\n } else {\n this._processToken(token);\n }\n\n if (token.type === Tokenizer.START_TAG_TOKEN && token.selfClosing && !token.ackSelfClosing) {\n this._err(ERR.nonVoidHtmlElementStartTagWithTrailingSolidus);\n }\n }\n\n //Integration points\n _isIntegrationPoint(element, foreignNS) {\n const tn = this.treeAdapter.getTagName(element);\n const ns = this.treeAdapter.getNamespaceURI(element);\n const attrs = this.treeAdapter.getAttrList(element);\n\n return foreignContent.isIntegrationPoint(tn, ns, attrs, foreignNS);\n }\n\n //Active formatting elements reconstruction\n _reconstructActiveFormattingElements() {\n const listLength = this.activeFormattingElements.length;\n\n if (listLength) {\n let unopenIdx = listLength;\n let entry = null;\n\n do {\n unopenIdx--;\n entry = this.activeFormattingElements.entries[unopenIdx];\n\n if (entry.type === FormattingElementList.MARKER_ENTRY || this.openElements.contains(entry.element)) {\n unopenIdx++;\n break;\n }\n } while (unopenIdx > 0);\n\n for (let i = unopenIdx; i < listLength; i++) {\n entry = this.activeFormattingElements.entries[i];\n this._insertElement(entry.token, this.treeAdapter.getNamespaceURI(entry.element));\n entry.element = this.openElements.current;\n }\n }\n }\n\n //Close elements\n _closeTableCell() {\n this.openElements.generateImpliedEndTags();\n this.openElements.popUntilTableCellPopped();\n this.activeFormattingElements.clearToLastMarker();\n this.insertionMode = IN_ROW_MODE;\n }\n\n _closePElement() {\n this.openElements.generateImpliedEndTagsWithExclusion($.P);\n this.openElements.popUntilTagNamePopped($.P);\n }\n\n //Insertion modes\n _resetInsertionMode() {\n for (let i = this.openElements.stackTop, last = false; i >= 0; i--) {\n let element = this.openElements.items[i];\n\n if (i === 0) {\n last = true;\n\n if (this.fragmentContext) {\n element = this.fragmentContext;\n }\n }\n\n const tn = this.treeAdapter.getTagName(element);\n const newInsertionMode = INSERTION_MODE_RESET_MAP[tn];\n\n if (newInsertionMode) {\n this.insertionMode = newInsertionMode;\n break;\n } else if (!last && (tn === $.TD || tn === $.TH)) {\n this.insertionMode = IN_CELL_MODE;\n break;\n } else if (!last && tn === $.HEAD) {\n this.insertionMode = IN_HEAD_MODE;\n break;\n } else if (tn === $.SELECT) {\n this._resetInsertionModeForSelect(i);\n break;\n } else if (tn === $.TEMPLATE) {\n this.insertionMode = this.currentTmplInsertionMode;\n break;\n } else if (tn === $.HTML) {\n this.insertionMode = this.headElement ? AFTER_HEAD_MODE : BEFORE_HEAD_MODE;\n break;\n } else if (last) {\n this.insertionMode = IN_BODY_MODE;\n break;\n }\n }\n }\n\n _resetInsertionModeForSelect(selectIdx) {\n if (selectIdx > 0) {\n for (let i = selectIdx - 1; i > 0; i--) {\n const ancestor = this.openElements.items[i];\n const tn = this.treeAdapter.getTagName(ancestor);\n\n if (tn === $.TEMPLATE) {\n break;\n } else if (tn === $.TABLE) {\n this.insertionMode = IN_SELECT_IN_TABLE_MODE;\n return;\n }\n }\n }\n\n this.insertionMode = IN_SELECT_MODE;\n }\n\n _pushTmplInsertionMode(mode) {\n this.tmplInsertionModeStack.push(mode);\n this.tmplInsertionModeStackTop++;\n this.currentTmplInsertionMode = mode;\n }\n\n _popTmplInsertionMode() {\n this.tmplInsertionModeStack.pop();\n this.tmplInsertionModeStackTop--;\n this.currentTmplInsertionMode = this.tmplInsertionModeStack[this.tmplInsertionModeStackTop];\n }\n\n //Foster parenting\n _isElementCausesFosterParenting(element) {\n const tn = this.treeAdapter.getTagName(element);\n\n return tn === $.TABLE || tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD || tn === $.TR;\n }\n\n _shouldFosterParentOnInsertion() {\n return this.fosterParentingEnabled && this._isElementCausesFosterParenting(this.openElements.current);\n }\n\n _findFosterParentingLocation() {\n const location = {\n parent: null,\n beforeElement: null\n };\n\n for (let i = this.openElements.stackTop; i >= 0; i--) {\n const openElement = this.openElements.items[i];\n const tn = this.treeAdapter.getTagName(openElement);\n const ns = this.treeAdapter.getNamespaceURI(openElement);\n\n if (tn === $.TEMPLATE && ns === NS.HTML) {\n location.parent = this.treeAdapter.getTemplateContent(openElement);\n break;\n } else if (tn === $.TABLE) {\n location.parent = this.treeAdapter.getParentNode(openElement);\n\n if (location.parent) {\n location.beforeElement = openElement;\n } else {\n location.parent = this.openElements.items[i - 1];\n }\n\n break;\n }\n }\n\n if (!location.parent) {\n location.parent = this.openElements.items[0];\n }\n\n return location;\n }\n\n _fosterParentElement(element) {\n const location = this._findFosterParentingLocation();\n\n if (location.beforeElement) {\n this.treeAdapter.insertBefore(location.parent, element, location.beforeElement);\n } else {\n this.treeAdapter.appendChild(location.parent, element);\n }\n }\n\n _fosterParentText(chars) {\n const location = this._findFosterParentingLocation();\n\n if (location.beforeElement) {\n this.treeAdapter.insertTextBefore(location.parent, chars, location.beforeElement);\n } else {\n this.treeAdapter.insertText(location.parent, chars);\n }\n }\n\n //Special elements\n _isSpecialElement(element) {\n const tn = this.treeAdapter.getTagName(element);\n const ns = this.treeAdapter.getNamespaceURI(element);\n\n return HTML.SPECIAL_ELEMENTS[ns][tn];\n }\n};\n\nvar parser = Parser$1;\n\n//Adoption agency algorithm\n//(see: http://www.whatwg.org/specs/web-apps/current-work/multipage/tree-construction.html#adoptionAgency)\n//------------------------------------------------------------------\n\n//Steps 5-8 of the algorithm\nfunction aaObtainFormattingElementEntry(p, token) {\n let formattingElementEntry = p.activeFormattingElements.getElementEntryInScopeWithTagName(token.tagName);\n\n if (formattingElementEntry) {\n if (!p.openElements.contains(formattingElementEntry.element)) {\n p.activeFormattingElements.removeEntry(formattingElementEntry);\n formattingElementEntry = null;\n } else if (!p.openElements.hasInScope(token.tagName)) {\n formattingElementEntry = null;\n }\n } else {\n genericEndTagInBody(p, token);\n }\n\n return formattingElementEntry;\n}\n\n//Steps 9 and 10 of the algorithm\nfunction aaObtainFurthestBlock(p, formattingElementEntry) {\n let furthestBlock = null;\n\n for (let i = p.openElements.stackTop; i >= 0; i--) {\n const element = p.openElements.items[i];\n\n if (element === formattingElementEntry.element) {\n break;\n }\n\n if (p._isSpecialElement(element)) {\n furthestBlock = element;\n }\n }\n\n if (!furthestBlock) {\n p.openElements.popUntilElementPopped(formattingElementEntry.element);\n p.activeFormattingElements.removeEntry(formattingElementEntry);\n }\n\n return furthestBlock;\n}\n\n//Step 13 of the algorithm\nfunction aaInnerLoop(p, furthestBlock, formattingElement) {\n let lastElement = furthestBlock;\n let nextElement = p.openElements.getCommonAncestor(furthestBlock);\n\n for (let i = 0, element = nextElement; element !== formattingElement; i++, element = nextElement) {\n //NOTE: store next element for the next loop iteration (it may be deleted from the stack by step 9.5)\n nextElement = p.openElements.getCommonAncestor(element);\n\n const elementEntry = p.activeFormattingElements.getElementEntry(element);\n const counterOverflow = elementEntry && i >= AA_INNER_LOOP_ITER;\n const shouldRemoveFromOpenElements = !elementEntry || counterOverflow;\n\n if (shouldRemoveFromOpenElements) {\n if (counterOverflow) {\n p.activeFormattingElements.removeEntry(elementEntry);\n }\n\n p.openElements.remove(element);\n } else {\n element = aaRecreateElementFromEntry(p, elementEntry);\n\n if (lastElement === furthestBlock) {\n p.activeFormattingElements.bookmark = elementEntry;\n }\n\n p.treeAdapter.detachNode(lastElement);\n p.treeAdapter.appendChild(element, lastElement);\n lastElement = element;\n }\n }\n\n return lastElement;\n}\n\n//Step 13.7 of the algorithm\nfunction aaRecreateElementFromEntry(p, elementEntry) {\n const ns = p.treeAdapter.getNamespaceURI(elementEntry.element);\n const newElement = p.treeAdapter.createElement(elementEntry.token.tagName, ns, elementEntry.token.attrs);\n\n p.openElements.replace(elementEntry.element, newElement);\n elementEntry.element = newElement;\n\n return newElement;\n}\n\n//Step 14 of the algorithm\nfunction aaInsertLastNodeInCommonAncestor(p, commonAncestor, lastElement) {\n if (p._isElementCausesFosterParenting(commonAncestor)) {\n p._fosterParentElement(lastElement);\n } else {\n const tn = p.treeAdapter.getTagName(commonAncestor);\n const ns = p.treeAdapter.getNamespaceURI(commonAncestor);\n\n if (tn === $.TEMPLATE && ns === NS.HTML) {\n commonAncestor = p.treeAdapter.getTemplateContent(commonAncestor);\n }\n\n p.treeAdapter.appendChild(commonAncestor, lastElement);\n }\n}\n\n//Steps 15-19 of the algorithm\nfunction aaReplaceFormattingElement(p, furthestBlock, formattingElementEntry) {\n const ns = p.treeAdapter.getNamespaceURI(formattingElementEntry.element);\n const token = formattingElementEntry.token;\n const newElement = p.treeAdapter.createElement(token.tagName, ns, token.attrs);\n\n p._adoptNodes(furthestBlock, newElement);\n p.treeAdapter.appendChild(furthestBlock, newElement);\n\n p.activeFormattingElements.insertElementAfterBookmark(newElement, formattingElementEntry.token);\n p.activeFormattingElements.removeEntry(formattingElementEntry);\n\n p.openElements.remove(formattingElementEntry.element);\n p.openElements.insertAfter(furthestBlock, newElement);\n}\n\n//Algorithm entry point\nfunction callAdoptionAgency(p, token) {\n let formattingElementEntry;\n\n for (let i = 0; i < AA_OUTER_LOOP_ITER; i++) {\n formattingElementEntry = aaObtainFormattingElementEntry(p, token);\n\n if (!formattingElementEntry) {\n break;\n }\n\n const furthestBlock = aaObtainFurthestBlock(p, formattingElementEntry);\n\n if (!furthestBlock) {\n break;\n }\n\n p.activeFormattingElements.bookmark = formattingElementEntry;\n\n const lastElement = aaInnerLoop(p, furthestBlock, formattingElementEntry.element);\n const commonAncestor = p.openElements.getCommonAncestor(formattingElementEntry.element);\n\n p.treeAdapter.detachNode(lastElement);\n aaInsertLastNodeInCommonAncestor(p, commonAncestor, lastElement);\n aaReplaceFormattingElement(p, furthestBlock, formattingElementEntry);\n }\n}\n\n//Generic token handlers\n//------------------------------------------------------------------\nfunction ignoreToken() {\n //NOTE: do nothing =)\n}\n\nfunction misplacedDoctype(p) {\n p._err(ERR.misplacedDoctype);\n}\n\nfunction appendComment(p, token) {\n p._appendCommentNode(token, p.openElements.currentTmplContent || p.openElements.current);\n}\n\nfunction appendCommentToRootHtmlElement(p, token) {\n p._appendCommentNode(token, p.openElements.items[0]);\n}\n\nfunction appendCommentToDocument(p, token) {\n p._appendCommentNode(token, p.document);\n}\n\nfunction insertCharacters(p, token) {\n p._insertCharacters(token);\n}\n\nfunction stopParsing(p) {\n p.stopped = true;\n}\n\n// The \"initial\" insertion mode\n//------------------------------------------------------------------\nfunction doctypeInInitialMode(p, token) {\n p._setDocumentType(token);\n\n const mode = token.forceQuirks ? HTML.DOCUMENT_MODE.QUIRKS : doctype.getDocumentMode(token);\n\n if (!doctype.isConforming(token)) {\n p._err(ERR.nonConformingDoctype);\n }\n\n p.treeAdapter.setDocumentMode(p.document, mode);\n\n p.insertionMode = BEFORE_HTML_MODE;\n}\n\nfunction tokenInInitialMode(p, token) {\n p._err(ERR.missingDoctype, { beforeToken: true });\n p.treeAdapter.setDocumentMode(p.document, HTML.DOCUMENT_MODE.QUIRKS);\n p.insertionMode = BEFORE_HTML_MODE;\n p._processToken(token);\n}\n\n// The \"before html\" insertion mode\n//------------------------------------------------------------------\nfunction startTagBeforeHtml(p, token) {\n if (token.tagName === $.HTML) {\n p._insertElement(token, NS.HTML);\n p.insertionMode = BEFORE_HEAD_MODE;\n } else {\n tokenBeforeHtml(p, token);\n }\n}\n\nfunction endTagBeforeHtml(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML || tn === $.HEAD || tn === $.BODY || tn === $.BR) {\n tokenBeforeHtml(p, token);\n }\n}\n\nfunction tokenBeforeHtml(p, token) {\n p._insertFakeRootElement();\n p.insertionMode = BEFORE_HEAD_MODE;\n p._processToken(token);\n}\n\n// The \"before head\" insertion mode\n//------------------------------------------------------------------\nfunction startTagBeforeHead(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML) {\n startTagInBody(p, token);\n } else if (tn === $.HEAD) {\n p._insertElement(token, NS.HTML);\n p.headElement = p.openElements.current;\n p.insertionMode = IN_HEAD_MODE;\n } else {\n tokenBeforeHead(p, token);\n }\n}\n\nfunction endTagBeforeHead(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HEAD || tn === $.BODY || tn === $.HTML || tn === $.BR) {\n tokenBeforeHead(p, token);\n } else {\n p._err(ERR.endTagWithoutMatchingOpenElement);\n }\n}\n\nfunction tokenBeforeHead(p, token) {\n p._insertFakeElement($.HEAD);\n p.headElement = p.openElements.current;\n p.insertionMode = IN_HEAD_MODE;\n p._processToken(token);\n}\n\n// The \"in head\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInHead(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML) {\n startTagInBody(p, token);\n } else if (tn === $.BASE || tn === $.BASEFONT || tn === $.BGSOUND || tn === $.LINK || tn === $.META) {\n p._appendElement(token, NS.HTML);\n token.ackSelfClosing = true;\n } else if (tn === $.TITLE) {\n p._switchToTextParsing(token, Tokenizer.MODE.RCDATA);\n } else if (tn === $.NOSCRIPT) {\n if (p.options.scriptingEnabled) {\n p._switchToTextParsing(token, Tokenizer.MODE.RAWTEXT);\n } else {\n p._insertElement(token, NS.HTML);\n p.insertionMode = IN_HEAD_NO_SCRIPT_MODE;\n }\n } else if (tn === $.NOFRAMES || tn === $.STYLE) {\n p._switchToTextParsing(token, Tokenizer.MODE.RAWTEXT);\n } else if (tn === $.SCRIPT) {\n p._switchToTextParsing(token, Tokenizer.MODE.SCRIPT_DATA);\n } else if (tn === $.TEMPLATE) {\n p._insertTemplate(token, NS.HTML);\n p.activeFormattingElements.insertMarker();\n p.framesetOk = false;\n p.insertionMode = IN_TEMPLATE_MODE;\n p._pushTmplInsertionMode(IN_TEMPLATE_MODE);\n } else if (tn === $.HEAD) {\n p._err(ERR.misplacedStartTagForHeadElement);\n } else {\n tokenInHead(p, token);\n }\n}\n\nfunction endTagInHead(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HEAD) {\n p.openElements.pop();\n p.insertionMode = AFTER_HEAD_MODE;\n } else if (tn === $.BODY || tn === $.BR || tn === $.HTML) {\n tokenInHead(p, token);\n } else if (tn === $.TEMPLATE) {\n if (p.openElements.tmplCount > 0) {\n p.openElements.generateImpliedEndTagsThoroughly();\n\n if (p.openElements.currentTagName !== $.TEMPLATE) {\n p._err(ERR.closingOfElementWithOpenChildElements);\n }\n\n p.openElements.popUntilTagNamePopped($.TEMPLATE);\n p.activeFormattingElements.clearToLastMarker();\n p._popTmplInsertionMode();\n p._resetInsertionMode();\n } else {\n p._err(ERR.endTagWithoutMatchingOpenElement);\n }\n } else {\n p._err(ERR.endTagWithoutMatchingOpenElement);\n }\n}\n\nfunction tokenInHead(p, token) {\n p.openElements.pop();\n p.insertionMode = AFTER_HEAD_MODE;\n p._processToken(token);\n}\n\n// The \"in head no script\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInHeadNoScript(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML) {\n startTagInBody(p, token);\n } else if (\n tn === $.BASEFONT ||\n tn === $.BGSOUND ||\n tn === $.HEAD ||\n tn === $.LINK ||\n tn === $.META ||\n tn === $.NOFRAMES ||\n tn === $.STYLE\n ) {\n startTagInHead(p, token);\n } else if (tn === $.NOSCRIPT) {\n p._err(ERR.nestedNoscriptInHead);\n } else {\n tokenInHeadNoScript(p, token);\n }\n}\n\nfunction endTagInHeadNoScript(p, token) {\n const tn = token.tagName;\n\n if (tn === $.NOSCRIPT) {\n p.openElements.pop();\n p.insertionMode = IN_HEAD_MODE;\n } else if (tn === $.BR) {\n tokenInHeadNoScript(p, token);\n } else {\n p._err(ERR.endTagWithoutMatchingOpenElement);\n }\n}\n\nfunction tokenInHeadNoScript(p, token) {\n const errCode =\n token.type === Tokenizer.EOF_TOKEN ? ERR.openElementsLeftAfterEof : ERR.disallowedContentInNoscriptInHead;\n\n p._err(errCode);\n p.openElements.pop();\n p.insertionMode = IN_HEAD_MODE;\n p._processToken(token);\n}\n\n// The \"after head\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterHead(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML) {\n startTagInBody(p, token);\n } else if (tn === $.BODY) {\n p._insertElement(token, NS.HTML);\n p.framesetOk = false;\n p.insertionMode = IN_BODY_MODE;\n } else if (tn === $.FRAMESET) {\n p._insertElement(token, NS.HTML);\n p.insertionMode = IN_FRAMESET_MODE;\n } else if (\n tn === $.BASE ||\n tn === $.BASEFONT ||\n tn === $.BGSOUND ||\n tn === $.LINK ||\n tn === $.META ||\n tn === $.NOFRAMES ||\n tn === $.SCRIPT ||\n tn === $.STYLE ||\n tn === $.TEMPLATE ||\n tn === $.TITLE\n ) {\n p._err(ERR.abandonedHeadElementChild);\n p.openElements.push(p.headElement);\n startTagInHead(p, token);\n p.openElements.remove(p.headElement);\n } else if (tn === $.HEAD) {\n p._err(ERR.misplacedStartTagForHeadElement);\n } else {\n tokenAfterHead(p, token);\n }\n}\n\nfunction endTagAfterHead(p, token) {\n const tn = token.tagName;\n\n if (tn === $.BODY || tn === $.HTML || tn === $.BR) {\n tokenAfterHead(p, token);\n } else if (tn === $.TEMPLATE) {\n endTagInHead(p, token);\n } else {\n p._err(ERR.endTagWithoutMatchingOpenElement);\n }\n}\n\nfunction tokenAfterHead(p, token) {\n p._insertFakeElement($.BODY);\n p.insertionMode = IN_BODY_MODE;\n p._processToken(token);\n}\n\n// The \"in body\" insertion mode\n//------------------------------------------------------------------\nfunction whitespaceCharacterInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertCharacters(token);\n}\n\nfunction characterInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertCharacters(token);\n p.framesetOk = false;\n}\n\nfunction htmlStartTagInBody(p, token) {\n if (p.openElements.tmplCount === 0) {\n p.treeAdapter.adoptAttributes(p.openElements.items[0], token.attrs);\n }\n}\n\nfunction bodyStartTagInBody(p, token) {\n const bodyElement = p.openElements.tryPeekProperlyNestedBodyElement();\n\n if (bodyElement && p.openElements.tmplCount === 0) {\n p.framesetOk = false;\n p.treeAdapter.adoptAttributes(bodyElement, token.attrs);\n }\n}\n\nfunction framesetStartTagInBody(p, token) {\n const bodyElement = p.openElements.tryPeekProperlyNestedBodyElement();\n\n if (p.framesetOk && bodyElement) {\n p.treeAdapter.detachNode(bodyElement);\n p.openElements.popAllUpToHtmlElement();\n p._insertElement(token, NS.HTML);\n p.insertionMode = IN_FRAMESET_MODE;\n }\n}\n\nfunction addressStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n\n p._insertElement(token, NS.HTML);\n}\n\nfunction numberedHeaderStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n\n const tn = p.openElements.currentTagName;\n\n if (tn === $.H1 || tn === $.H2 || tn === $.H3 || tn === $.H4 || tn === $.H5 || tn === $.H6) {\n p.openElements.pop();\n }\n\n p._insertElement(token, NS.HTML);\n}\n\nfunction preStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n\n p._insertElement(token, NS.HTML);\n //NOTE: If the next token is a U+000A LINE FEED (LF) character token, then ignore that token and move\n //on to the next one. (Newlines at the start of pre blocks are ignored as an authoring convenience.)\n p.skipNextNewLine = true;\n p.framesetOk = false;\n}\n\nfunction formStartTagInBody(p, token) {\n const inTemplate = p.openElements.tmplCount > 0;\n\n if (!p.formElement || inTemplate) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n\n p._insertElement(token, NS.HTML);\n\n if (!inTemplate) {\n p.formElement = p.openElements.current;\n }\n }\n}\n\nfunction listItemStartTagInBody(p, token) {\n p.framesetOk = false;\n\n const tn = token.tagName;\n\n for (let i = p.openElements.stackTop; i >= 0; i--) {\n const element = p.openElements.items[i];\n const elementTn = p.treeAdapter.getTagName(element);\n let closeTn = null;\n\n if (tn === $.LI && elementTn === $.LI) {\n closeTn = $.LI;\n } else if ((tn === $.DD || tn === $.DT) && (elementTn === $.DD || elementTn === $.DT)) {\n closeTn = elementTn;\n }\n\n if (closeTn) {\n p.openElements.generateImpliedEndTagsWithExclusion(closeTn);\n p.openElements.popUntilTagNamePopped(closeTn);\n break;\n }\n\n if (elementTn !== $.ADDRESS && elementTn !== $.DIV && elementTn !== $.P && p._isSpecialElement(element)) {\n break;\n }\n }\n\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n\n p._insertElement(token, NS.HTML);\n}\n\nfunction plaintextStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n\n p._insertElement(token, NS.HTML);\n p.tokenizer.state = Tokenizer.MODE.PLAINTEXT;\n}\n\nfunction buttonStartTagInBody(p, token) {\n if (p.openElements.hasInScope($.BUTTON)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped($.BUTTON);\n }\n\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.framesetOk = false;\n}\n\nfunction aStartTagInBody(p, token) {\n const activeElementEntry = p.activeFormattingElements.getElementEntryInScopeWithTagName($.A);\n\n if (activeElementEntry) {\n callAdoptionAgency(p, token);\n p.openElements.remove(activeElementEntry.element);\n p.activeFormattingElements.removeEntry(activeElementEntry);\n }\n\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.activeFormattingElements.pushElement(p.openElements.current, token);\n}\n\nfunction bStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.activeFormattingElements.pushElement(p.openElements.current, token);\n}\n\nfunction nobrStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n\n if (p.openElements.hasInScope($.NOBR)) {\n callAdoptionAgency(p, token);\n p._reconstructActiveFormattingElements();\n }\n\n p._insertElement(token, NS.HTML);\n p.activeFormattingElements.pushElement(p.openElements.current, token);\n}\n\nfunction appletStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.activeFormattingElements.insertMarker();\n p.framesetOk = false;\n}\n\nfunction tableStartTagInBody(p, token) {\n if (\n p.treeAdapter.getDocumentMode(p.document) !== HTML.DOCUMENT_MODE.QUIRKS &&\n p.openElements.hasInButtonScope($.P)\n ) {\n p._closePElement();\n }\n\n p._insertElement(token, NS.HTML);\n p.framesetOk = false;\n p.insertionMode = IN_TABLE_MODE;\n}\n\nfunction areaStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._appendElement(token, NS.HTML);\n p.framesetOk = false;\n token.ackSelfClosing = true;\n}\n\nfunction inputStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._appendElement(token, NS.HTML);\n\n const inputType = Tokenizer.getTokenAttr(token, ATTRS.TYPE);\n\n if (!inputType || inputType.toLowerCase() !== HIDDEN_INPUT_TYPE) {\n p.framesetOk = false;\n }\n\n token.ackSelfClosing = true;\n}\n\nfunction paramStartTagInBody(p, token) {\n p._appendElement(token, NS.HTML);\n token.ackSelfClosing = true;\n}\n\nfunction hrStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n\n p._appendElement(token, NS.HTML);\n p.framesetOk = false;\n token.ackSelfClosing = true;\n}\n\nfunction imageStartTagInBody(p, token) {\n token.tagName = $.IMG;\n areaStartTagInBody(p, token);\n}\n\nfunction textareaStartTagInBody(p, token) {\n p._insertElement(token, NS.HTML);\n //NOTE: If the next token is a U+000A LINE FEED (LF) character token, then ignore that token and move\n //on to the next one. (Newlines at the start of textarea elements are ignored as an authoring convenience.)\n p.skipNextNewLine = true;\n p.tokenizer.state = Tokenizer.MODE.RCDATA;\n p.originalInsertionMode = p.insertionMode;\n p.framesetOk = false;\n p.insertionMode = TEXT_MODE;\n}\n\nfunction xmpStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n\n p._reconstructActiveFormattingElements();\n p.framesetOk = false;\n p._switchToTextParsing(token, Tokenizer.MODE.RAWTEXT);\n}\n\nfunction iframeStartTagInBody(p, token) {\n p.framesetOk = false;\n p._switchToTextParsing(token, Tokenizer.MODE.RAWTEXT);\n}\n\n//NOTE: here we assume that we always act as an user agent with enabled plugins, so we parse\n//<noembed> as a rawtext.\nfunction noembedStartTagInBody(p, token) {\n p._switchToTextParsing(token, Tokenizer.MODE.RAWTEXT);\n}\n\nfunction selectStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.framesetOk = false;\n\n if (\n p.insertionMode === IN_TABLE_MODE ||\n p.insertionMode === IN_CAPTION_MODE ||\n p.insertionMode === IN_TABLE_BODY_MODE ||\n p.insertionMode === IN_ROW_MODE ||\n p.insertionMode === IN_CELL_MODE\n ) {\n p.insertionMode = IN_SELECT_IN_TABLE_MODE;\n } else {\n p.insertionMode = IN_SELECT_MODE;\n }\n}\n\nfunction optgroupStartTagInBody(p, token) {\n if (p.openElements.currentTagName === $.OPTION) {\n p.openElements.pop();\n }\n\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n}\n\nfunction rbStartTagInBody(p, token) {\n if (p.openElements.hasInScope($.RUBY)) {\n p.openElements.generateImpliedEndTags();\n }\n\n p._insertElement(token, NS.HTML);\n}\n\nfunction rtStartTagInBody(p, token) {\n if (p.openElements.hasInScope($.RUBY)) {\n p.openElements.generateImpliedEndTagsWithExclusion($.RTC);\n }\n\n p._insertElement(token, NS.HTML);\n}\n\nfunction menuStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n\n p._insertElement(token, NS.HTML);\n}\n\nfunction mathStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n\n foreignContent.adjustTokenMathMLAttrs(token);\n foreignContent.adjustTokenXMLAttrs(token);\n\n if (token.selfClosing) {\n p._appendElement(token, NS.MATHML);\n } else {\n p._insertElement(token, NS.MATHML);\n }\n\n token.ackSelfClosing = true;\n}\n\nfunction svgStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n\n foreignContent.adjustTokenSVGAttrs(token);\n foreignContent.adjustTokenXMLAttrs(token);\n\n if (token.selfClosing) {\n p._appendElement(token, NS.SVG);\n } else {\n p._insertElement(token, NS.SVG);\n }\n\n token.ackSelfClosing = true;\n}\n\nfunction genericStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n}\n\n//OPTIMIZATION: Integer comparisons are low-cost, so we can use very fast tag name length filters here.\n//It's faster than using dictionary.\nfunction startTagInBody(p, token) {\n const tn = token.tagName;\n\n switch (tn.length) {\n case 1:\n if (tn === $.I || tn === $.S || tn === $.B || tn === $.U) {\n bStartTagInBody(p, token);\n } else if (tn === $.P) {\n addressStartTagInBody(p, token);\n } else if (tn === $.A) {\n aStartTagInBody(p, token);\n } else {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n case 2:\n if (tn === $.DL || tn === $.OL || tn === $.UL) {\n addressStartTagInBody(p, token);\n } else if (tn === $.H1 || tn === $.H2 || tn === $.H3 || tn === $.H4 || tn === $.H5 || tn === $.H6) {\n numberedHeaderStartTagInBody(p, token);\n } else if (tn === $.LI || tn === $.DD || tn === $.DT) {\n listItemStartTagInBody(p, token);\n } else if (tn === $.EM || tn === $.TT) {\n bStartTagInBody(p, token);\n } else if (tn === $.BR) {\n areaStartTagInBody(p, token);\n } else if (tn === $.HR) {\n hrStartTagInBody(p, token);\n } else if (tn === $.RB) {\n rbStartTagInBody(p, token);\n } else if (tn === $.RT || tn === $.RP) {\n rtStartTagInBody(p, token);\n } else if (tn !== $.TH && tn !== $.TD && tn !== $.TR) {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n case 3:\n if (tn === $.DIV || tn === $.DIR || tn === $.NAV) {\n addressStartTagInBody(p, token);\n } else if (tn === $.PRE) {\n preStartTagInBody(p, token);\n } else if (tn === $.BIG) {\n bStartTagInBody(p, token);\n } else if (tn === $.IMG || tn === $.WBR) {\n areaStartTagInBody(p, token);\n } else if (tn === $.XMP) {\n xmpStartTagInBody(p, token);\n } else if (tn === $.SVG) {\n svgStartTagInBody(p, token);\n } else if (tn === $.RTC) {\n rbStartTagInBody(p, token);\n } else if (tn !== $.COL) {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n case 4:\n if (tn === $.HTML) {\n htmlStartTagInBody(p, token);\n } else if (tn === $.BASE || tn === $.LINK || tn === $.META) {\n startTagInHead(p, token);\n } else if (tn === $.BODY) {\n bodyStartTagInBody(p, token);\n } else if (tn === $.MAIN || tn === $.MENU) {\n addressStartTagInBody(p, token);\n } else if (tn === $.FORM) {\n formStartTagInBody(p, token);\n } else if (tn === $.CODE || tn === $.FONT) {\n bStartTagInBody(p, token);\n } else if (tn === $.NOBR) {\n nobrStartTagInBody(p, token);\n } else if (tn === $.AREA) {\n areaStartTagInBody(p, token);\n } else if (tn === $.MATH) {\n mathStartTagInBody(p, token);\n } else if (tn === $.MENU) {\n menuStartTagInBody(p, token);\n } else if (tn !== $.HEAD) {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n case 5:\n if (tn === $.STYLE || tn === $.TITLE) {\n startTagInHead(p, token);\n } else if (tn === $.ASIDE) {\n addressStartTagInBody(p, token);\n } else if (tn === $.SMALL) {\n bStartTagInBody(p, token);\n } else if (tn === $.TABLE) {\n tableStartTagInBody(p, token);\n } else if (tn === $.EMBED) {\n areaStartTagInBody(p, token);\n } else if (tn === $.INPUT) {\n inputStartTagInBody(p, token);\n } else if (tn === $.PARAM || tn === $.TRACK) {\n paramStartTagInBody(p, token);\n } else if (tn === $.IMAGE) {\n imageStartTagInBody(p, token);\n } else if (tn !== $.FRAME && tn !== $.TBODY && tn !== $.TFOOT && tn !== $.THEAD) {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n case 6:\n if (tn === $.SCRIPT) {\n startTagInHead(p, token);\n } else if (\n tn === $.CENTER ||\n tn === $.FIGURE ||\n tn === $.FOOTER ||\n tn === $.HEADER ||\n tn === $.HGROUP ||\n tn === $.DIALOG\n ) {\n addressStartTagInBody(p, token);\n } else if (tn === $.BUTTON) {\n buttonStartTagInBody(p, token);\n } else if (tn === $.STRIKE || tn === $.STRONG) {\n bStartTagInBody(p, token);\n } else if (tn === $.APPLET || tn === $.OBJECT) {\n appletStartTagInBody(p, token);\n } else if (tn === $.KEYGEN) {\n areaStartTagInBody(p, token);\n } else if (tn === $.SOURCE) {\n paramStartTagInBody(p, token);\n } else if (tn === $.IFRAME) {\n iframeStartTagInBody(p, token);\n } else if (tn === $.SELECT) {\n selectStartTagInBody(p, token);\n } else if (tn === $.OPTION) {\n optgroupStartTagInBody(p, token);\n } else {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n case 7:\n if (tn === $.BGSOUND) {\n startTagInHead(p, token);\n } else if (\n tn === $.DETAILS ||\n tn === $.ADDRESS ||\n tn === $.ARTICLE ||\n tn === $.SECTION ||\n tn === $.SUMMARY\n ) {\n addressStartTagInBody(p, token);\n } else if (tn === $.LISTING) {\n preStartTagInBody(p, token);\n } else if (tn === $.MARQUEE) {\n appletStartTagInBody(p, token);\n } else if (tn === $.NOEMBED) {\n noembedStartTagInBody(p, token);\n } else if (tn !== $.CAPTION) {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n case 8:\n if (tn === $.BASEFONT) {\n startTagInHead(p, token);\n } else if (tn === $.FRAMESET) {\n framesetStartTagInBody(p, token);\n } else if (tn === $.FIELDSET) {\n addressStartTagInBody(p, token);\n } else if (tn === $.TEXTAREA) {\n textareaStartTagInBody(p, token);\n } else if (tn === $.TEMPLATE) {\n startTagInHead(p, token);\n } else if (tn === $.NOSCRIPT) {\n if (p.options.scriptingEnabled) {\n noembedStartTagInBody(p, token);\n } else {\n genericStartTagInBody(p, token);\n }\n } else if (tn === $.OPTGROUP) {\n optgroupStartTagInBody(p, token);\n } else if (tn !== $.COLGROUP) {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n case 9:\n if (tn === $.PLAINTEXT) {\n plaintextStartTagInBody(p, token);\n } else {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n case 10:\n if (tn === $.BLOCKQUOTE || tn === $.FIGCAPTION) {\n addressStartTagInBody(p, token);\n } else {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n default:\n genericStartTagInBody(p, token);\n }\n}\n\nfunction bodyEndTagInBody(p) {\n if (p.openElements.hasInScope($.BODY)) {\n p.insertionMode = AFTER_BODY_MODE;\n }\n}\n\nfunction htmlEndTagInBody(p, token) {\n if (p.openElements.hasInScope($.BODY)) {\n p.insertionMode = AFTER_BODY_MODE;\n p._processToken(token);\n }\n}\n\nfunction addressEndTagInBody(p, token) {\n const tn = token.tagName;\n\n if (p.openElements.hasInScope(tn)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped(tn);\n }\n}\n\nfunction formEndTagInBody(p) {\n const inTemplate = p.openElements.tmplCount > 0;\n const formElement = p.formElement;\n\n if (!inTemplate) {\n p.formElement = null;\n }\n\n if ((formElement || inTemplate) && p.openElements.hasInScope($.FORM)) {\n p.openElements.generateImpliedEndTags();\n\n if (inTemplate) {\n p.openElements.popUntilTagNamePopped($.FORM);\n } else {\n p.openElements.remove(formElement);\n }\n }\n}\n\nfunction pEndTagInBody(p) {\n if (!p.openElements.hasInButtonScope($.P)) {\n p._insertFakeElement($.P);\n }\n\n p._closePElement();\n}\n\nfunction liEndTagInBody(p) {\n if (p.openElements.hasInListItemScope($.LI)) {\n p.openElements.generateImpliedEndTagsWithExclusion($.LI);\n p.openElements.popUntilTagNamePopped($.LI);\n }\n}\n\nfunction ddEndTagInBody(p, token) {\n const tn = token.tagName;\n\n if (p.openElements.hasInScope(tn)) {\n p.openElements.generateImpliedEndTagsWithExclusion(tn);\n p.openElements.popUntilTagNamePopped(tn);\n }\n}\n\nfunction numberedHeaderEndTagInBody(p) {\n if (p.openElements.hasNumberedHeaderInScope()) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilNumberedHeaderPopped();\n }\n}\n\nfunction appletEndTagInBody(p, token) {\n const tn = token.tagName;\n\n if (p.openElements.hasInScope(tn)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped(tn);\n p.activeFormattingElements.clearToLastMarker();\n }\n}\n\nfunction brEndTagInBody(p) {\n p._reconstructActiveFormattingElements();\n p._insertFakeElement($.BR);\n p.openElements.pop();\n p.framesetOk = false;\n}\n\nfunction genericEndTagInBody(p, token) {\n const tn = token.tagName;\n\n for (let i = p.openElements.stackTop; i > 0; i--) {\n const element = p.openElements.items[i];\n\n if (p.treeAdapter.getTagName(element) === tn) {\n p.openElements.generateImpliedEndTagsWithExclusion(tn);\n p.openElements.popUntilElementPopped(element);\n break;\n }\n\n if (p._isSpecialElement(element)) {\n break;\n }\n }\n}\n\n//OPTIMIZATION: Integer comparisons are low-cost, so we can use very fast tag name length filters here.\n//It's faster than using dictionary.\nfunction endTagInBody(p, token) {\n const tn = token.tagName;\n\n switch (tn.length) {\n case 1:\n if (tn === $.A || tn === $.B || tn === $.I || tn === $.S || tn === $.U) {\n callAdoptionAgency(p, token);\n } else if (tn === $.P) {\n pEndTagInBody(p);\n } else {\n genericEndTagInBody(p, token);\n }\n\n break;\n\n case 2:\n if (tn === $.DL || tn === $.UL || tn === $.OL) {\n addressEndTagInBody(p, token);\n } else if (tn === $.LI) {\n liEndTagInBody(p);\n } else if (tn === $.DD || tn === $.DT) {\n ddEndTagInBody(p, token);\n } else if (tn === $.H1 || tn === $.H2 || tn === $.H3 || tn === $.H4 || tn === $.H5 || tn === $.H6) {\n numberedHeaderEndTagInBody(p);\n } else if (tn === $.BR) {\n brEndTagInBody(p);\n } else if (tn === $.EM || tn === $.TT) {\n callAdoptionAgency(p, token);\n } else {\n genericEndTagInBody(p, token);\n }\n\n break;\n\n case 3:\n if (tn === $.BIG) {\n callAdoptionAgency(p, token);\n } else if (tn === $.DIR || tn === $.DIV || tn === $.NAV || tn === $.PRE) {\n addressEndTagInBody(p, token);\n } else {\n genericEndTagInBody(p, token);\n }\n\n break;\n\n case 4:\n if (tn === $.BODY) {\n bodyEndTagInBody(p);\n } else if (tn === $.HTML) {\n htmlEndTagInBody(p, token);\n } else if (tn === $.FORM) {\n formEndTagInBody(p);\n } else if (tn === $.CODE || tn === $.FONT || tn === $.NOBR) {\n callAdoptionAgency(p, token);\n } else if (tn === $.MAIN || tn === $.MENU) {\n addressEndTagInBody(p, token);\n } else {\n genericEndTagInBody(p, token);\n }\n\n break;\n\n case 5:\n if (tn === $.ASIDE) {\n addressEndTagInBody(p, token);\n } else if (tn === $.SMALL) {\n callAdoptionAgency(p, token);\n } else {\n genericEndTagInBody(p, token);\n }\n\n break;\n\n case 6:\n if (\n tn === $.CENTER ||\n tn === $.FIGURE ||\n tn === $.FOOTER ||\n tn === $.HEADER ||\n tn === $.HGROUP ||\n tn === $.DIALOG\n ) {\n addressEndTagInBody(p, token);\n } else if (tn === $.APPLET || tn === $.OBJECT) {\n appletEndTagInBody(p, token);\n } else if (tn === $.STRIKE || tn === $.STRONG) {\n callAdoptionAgency(p, token);\n } else {\n genericEndTagInBody(p, token);\n }\n\n break;\n\n case 7:\n if (\n tn === $.ADDRESS ||\n tn === $.ARTICLE ||\n tn === $.DETAILS ||\n tn === $.SECTION ||\n tn === $.SUMMARY ||\n tn === $.LISTING\n ) {\n addressEndTagInBody(p, token);\n } else if (tn === $.MARQUEE) {\n appletEndTagInBody(p, token);\n } else {\n genericEndTagInBody(p, token);\n }\n\n break;\n\n case 8:\n if (tn === $.FIELDSET) {\n addressEndTagInBody(p, token);\n } else if (tn === $.TEMPLATE) {\n endTagInHead(p, token);\n } else {\n genericEndTagInBody(p, token);\n }\n\n break;\n\n case 10:\n if (tn === $.BLOCKQUOTE || tn === $.FIGCAPTION) {\n addressEndTagInBody(p, token);\n } else {\n genericEndTagInBody(p, token);\n }\n\n break;\n\n default:\n genericEndTagInBody(p, token);\n }\n}\n\nfunction eofInBody(p, token) {\n if (p.tmplInsertionModeStackTop > -1) {\n eofInTemplate(p, token);\n } else {\n p.stopped = true;\n }\n}\n\n// The \"text\" insertion mode\n//------------------------------------------------------------------\nfunction endTagInText(p, token) {\n if (token.tagName === $.SCRIPT) {\n p.pendingScript = p.openElements.current;\n }\n\n p.openElements.pop();\n p.insertionMode = p.originalInsertionMode;\n}\n\nfunction eofInText(p, token) {\n p._err(ERR.eofInElementThatCanContainOnlyText);\n p.openElements.pop();\n p.insertionMode = p.originalInsertionMode;\n p._processToken(token);\n}\n\n// The \"in table\" insertion mode\n//------------------------------------------------------------------\nfunction characterInTable(p, token) {\n const curTn = p.openElements.currentTagName;\n\n if (curTn === $.TABLE || curTn === $.TBODY || curTn === $.TFOOT || curTn === $.THEAD || curTn === $.TR) {\n p.pendingCharacterTokens = [];\n p.hasNonWhitespacePendingCharacterToken = false;\n p.originalInsertionMode = p.insertionMode;\n p.insertionMode = IN_TABLE_TEXT_MODE;\n p._processToken(token);\n } else {\n tokenInTable(p, token);\n }\n}\n\nfunction captionStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p.activeFormattingElements.insertMarker();\n p._insertElement(token, NS.HTML);\n p.insertionMode = IN_CAPTION_MODE;\n}\n\nfunction colgroupStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p._insertElement(token, NS.HTML);\n p.insertionMode = IN_COLUMN_GROUP_MODE;\n}\n\nfunction colStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p._insertFakeElement($.COLGROUP);\n p.insertionMode = IN_COLUMN_GROUP_MODE;\n p._processToken(token);\n}\n\nfunction tbodyStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p._insertElement(token, NS.HTML);\n p.insertionMode = IN_TABLE_BODY_MODE;\n}\n\nfunction tdStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p._insertFakeElement($.TBODY);\n p.insertionMode = IN_TABLE_BODY_MODE;\n p._processToken(token);\n}\n\nfunction tableStartTagInTable(p, token) {\n if (p.openElements.hasInTableScope($.TABLE)) {\n p.openElements.popUntilTagNamePopped($.TABLE);\n p._resetInsertionMode();\n p._processToken(token);\n }\n}\n\nfunction inputStartTagInTable(p, token) {\n const inputType = Tokenizer.getTokenAttr(token, ATTRS.TYPE);\n\n if (inputType && inputType.toLowerCase() === HIDDEN_INPUT_TYPE) {\n p._appendElement(token, NS.HTML);\n } else {\n tokenInTable(p, token);\n }\n\n token.ackSelfClosing = true;\n}\n\nfunction formStartTagInTable(p, token) {\n if (!p.formElement && p.openElements.tmplCount === 0) {\n p._insertElement(token, NS.HTML);\n p.formElement = p.openElements.current;\n p.openElements.pop();\n }\n}\n\nfunction startTagInTable(p, token) {\n const tn = token.tagName;\n\n switch (tn.length) {\n case 2:\n if (tn === $.TD || tn === $.TH || tn === $.TR) {\n tdStartTagInTable(p, token);\n } else {\n tokenInTable(p, token);\n }\n\n break;\n\n case 3:\n if (tn === $.COL) {\n colStartTagInTable(p, token);\n } else {\n tokenInTable(p, token);\n }\n\n break;\n\n case 4:\n if (tn === $.FORM) {\n formStartTagInTable(p, token);\n } else {\n tokenInTable(p, token);\n }\n\n break;\n\n case 5:\n if (tn === $.TABLE) {\n tableStartTagInTable(p, token);\n } else if (tn === $.STYLE) {\n startTagInHead(p, token);\n } else if (tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD) {\n tbodyStartTagInTable(p, token);\n } else if (tn === $.INPUT) {\n inputStartTagInTable(p, token);\n } else {\n tokenInTable(p, token);\n }\n\n break;\n\n case 6:\n if (tn === $.SCRIPT) {\n startTagInHead(p, token);\n } else {\n tokenInTable(p, token);\n }\n\n break;\n\n case 7:\n if (tn === $.CAPTION) {\n captionStartTagInTable(p, token);\n } else {\n tokenInTable(p, token);\n }\n\n break;\n\n case 8:\n if (tn === $.COLGROUP) {\n colgroupStartTagInTable(p, token);\n } else if (tn === $.TEMPLATE) {\n startTagInHead(p, token);\n } else {\n tokenInTable(p, token);\n }\n\n break;\n\n default:\n tokenInTable(p, token);\n }\n}\n\nfunction endTagInTable(p, token) {\n const tn = token.tagName;\n\n if (tn === $.TABLE) {\n if (p.openElements.hasInTableScope($.TABLE)) {\n p.openElements.popUntilTagNamePopped($.TABLE);\n p._resetInsertionMode();\n }\n } else if (tn === $.TEMPLATE) {\n endTagInHead(p, token);\n } else if (\n tn !== $.BODY &&\n tn !== $.CAPTION &&\n tn !== $.COL &&\n tn !== $.COLGROUP &&\n tn !== $.HTML &&\n tn !== $.TBODY &&\n tn !== $.TD &&\n tn !== $.TFOOT &&\n tn !== $.TH &&\n tn !== $.THEAD &&\n tn !== $.TR\n ) {\n tokenInTable(p, token);\n }\n}\n\nfunction tokenInTable(p, token) {\n const savedFosterParentingState = p.fosterParentingEnabled;\n\n p.fosterParentingEnabled = true;\n p._processTokenInBodyMode(token);\n p.fosterParentingEnabled = savedFosterParentingState;\n}\n\n// The \"in table text\" insertion mode\n//------------------------------------------------------------------\nfunction whitespaceCharacterInTableText(p, token) {\n p.pendingCharacterTokens.push(token);\n}\n\nfunction characterInTableText(p, token) {\n p.pendingCharacterTokens.push(token);\n p.hasNonWhitespacePendingCharacterToken = true;\n}\n\nfunction tokenInTableText(p, token) {\n let i = 0;\n\n if (p.hasNonWhitespacePendingCharacterToken) {\n for (; i < p.pendingCharacterTokens.length; i++) {\n tokenInTable(p, p.pendingCharacterTokens[i]);\n }\n } else {\n for (; i < p.pendingCharacterTokens.length; i++) {\n p._insertCharacters(p.pendingCharacterTokens[i]);\n }\n }\n\n p.insertionMode = p.originalInsertionMode;\n p._processToken(token);\n}\n\n// The \"in caption\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInCaption(p, token) {\n const tn = token.tagName;\n\n if (\n tn === $.CAPTION ||\n tn === $.COL ||\n tn === $.COLGROUP ||\n tn === $.TBODY ||\n tn === $.TD ||\n tn === $.TFOOT ||\n tn === $.TH ||\n tn === $.THEAD ||\n tn === $.TR\n ) {\n if (p.openElements.hasInTableScope($.CAPTION)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped($.CAPTION);\n p.activeFormattingElements.clearToLastMarker();\n p.insertionMode = IN_TABLE_MODE;\n p._processToken(token);\n }\n } else {\n startTagInBody(p, token);\n }\n}\n\nfunction endTagInCaption(p, token) {\n const tn = token.tagName;\n\n if (tn === $.CAPTION || tn === $.TABLE) {\n if (p.openElements.hasInTableScope($.CAPTION)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped($.CAPTION);\n p.activeFormattingElements.clearToLastMarker();\n p.insertionMode = IN_TABLE_MODE;\n\n if (tn === $.TABLE) {\n p._processToken(token);\n }\n }\n } else if (\n tn !== $.BODY &&\n tn !== $.COL &&\n tn !== $.COLGROUP &&\n tn !== $.HTML &&\n tn !== $.TBODY &&\n tn !== $.TD &&\n tn !== $.TFOOT &&\n tn !== $.TH &&\n tn !== $.THEAD &&\n tn !== $.TR\n ) {\n endTagInBody(p, token);\n }\n}\n\n// The \"in column group\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInColumnGroup(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML) {\n startTagInBody(p, token);\n } else if (tn === $.COL) {\n p._appendElement(token, NS.HTML);\n token.ackSelfClosing = true;\n } else if (tn === $.TEMPLATE) {\n startTagInHead(p, token);\n } else {\n tokenInColumnGroup(p, token);\n }\n}\n\nfunction endTagInColumnGroup(p, token) {\n const tn = token.tagName;\n\n if (tn === $.COLGROUP) {\n if (p.openElements.currentTagName === $.COLGROUP) {\n p.openElements.pop();\n p.insertionMode = IN_TABLE_MODE;\n }\n } else if (tn === $.TEMPLATE) {\n endTagInHead(p, token);\n } else if (tn !== $.COL) {\n tokenInColumnGroup(p, token);\n }\n}\n\nfunction tokenInColumnGroup(p, token) {\n if (p.openElements.currentTagName === $.COLGROUP) {\n p.openElements.pop();\n p.insertionMode = IN_TABLE_MODE;\n p._processToken(token);\n }\n}\n\n// The \"in table body\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInTableBody(p, token) {\n const tn = token.tagName;\n\n if (tn === $.TR) {\n p.openElements.clearBackToTableBodyContext();\n p._insertElement(token, NS.HTML);\n p.insertionMode = IN_ROW_MODE;\n } else if (tn === $.TH || tn === $.TD) {\n p.openElements.clearBackToTableBodyContext();\n p._insertFakeElement($.TR);\n p.insertionMode = IN_ROW_MODE;\n p._processToken(token);\n } else if (\n tn === $.CAPTION ||\n tn === $.COL ||\n tn === $.COLGROUP ||\n tn === $.TBODY ||\n tn === $.TFOOT ||\n tn === $.THEAD\n ) {\n if (p.openElements.hasTableBodyContextInTableScope()) {\n p.openElements.clearBackToTableBodyContext();\n p.openElements.pop();\n p.insertionMode = IN_TABLE_MODE;\n p._processToken(token);\n }\n } else {\n startTagInTable(p, token);\n }\n}\n\nfunction endTagInTableBody(p, token) {\n const tn = token.tagName;\n\n if (tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD) {\n if (p.openElements.hasInTableScope(tn)) {\n p.openElements.clearBackToTableBodyContext();\n p.openElements.pop();\n p.insertionMode = IN_TABLE_MODE;\n }\n } else if (tn === $.TABLE) {\n if (p.openElements.hasTableBodyContextInTableScope()) {\n p.openElements.clearBackToTableBodyContext();\n p.openElements.pop();\n p.insertionMode = IN_TABLE_MODE;\n p._processToken(token);\n }\n } else if (\n (tn !== $.BODY && tn !== $.CAPTION && tn !== $.COL && tn !== $.COLGROUP) ||\n (tn !== $.HTML && tn !== $.TD && tn !== $.TH && tn !== $.TR)\n ) {\n endTagInTable(p, token);\n }\n}\n\n// The \"in row\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInRow(p, token) {\n const tn = token.tagName;\n\n if (tn === $.TH || tn === $.TD) {\n p.openElements.clearBackToTableRowContext();\n p._insertElement(token, NS.HTML);\n p.insertionMode = IN_CELL_MODE;\n p.activeFormattingElements.insertMarker();\n } else if (\n tn === $.CAPTION ||\n tn === $.COL ||\n tn === $.COLGROUP ||\n tn === $.TBODY ||\n tn === $.TFOOT ||\n tn === $.THEAD ||\n tn === $.TR\n ) {\n if (p.openElements.hasInTableScope($.TR)) {\n p.openElements.clearBackToTableRowContext();\n p.openElements.pop();\n p.insertionMode = IN_TABLE_BODY_MODE;\n p._processToken(token);\n }\n } else {\n startTagInTable(p, token);\n }\n}\n\nfunction endTagInRow(p, token) {\n const tn = token.tagName;\n\n if (tn === $.TR) {\n if (p.openElements.hasInTableScope($.TR)) {\n p.openElements.clearBackToTableRowContext();\n p.openElements.pop();\n p.insertionMode = IN_TABLE_BODY_MODE;\n }\n } else if (tn === $.TABLE) {\n if (p.openElements.hasInTableScope($.TR)) {\n p.openElements.clearBackToTableRowContext();\n p.openElements.pop();\n p.insertionMode = IN_TABLE_BODY_MODE;\n p._processToken(token);\n }\n } else if (tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD) {\n if (p.openElements.hasInTableScope(tn) || p.openElements.hasInTableScope($.TR)) {\n p.openElements.clearBackToTableRowContext();\n p.openElements.pop();\n p.insertionMode = IN_TABLE_BODY_MODE;\n p._processToken(token);\n }\n } else if (\n (tn !== $.BODY && tn !== $.CAPTION && tn !== $.COL && tn !== $.COLGROUP) ||\n (tn !== $.HTML && tn !== $.TD && tn !== $.TH)\n ) {\n endTagInTable(p, token);\n }\n}\n\n// The \"in cell\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInCell(p, token) {\n const tn = token.tagName;\n\n if (\n tn === $.CAPTION ||\n tn === $.COL ||\n tn === $.COLGROUP ||\n tn === $.TBODY ||\n tn === $.TD ||\n tn === $.TFOOT ||\n tn === $.TH ||\n tn === $.THEAD ||\n tn === $.TR\n ) {\n if (p.openElements.hasInTableScope($.TD) || p.openElements.hasInTableScope($.TH)) {\n p._closeTableCell();\n p._processToken(token);\n }\n } else {\n startTagInBody(p, token);\n }\n}\n\nfunction endTagInCell(p, token) {\n const tn = token.tagName;\n\n if (tn === $.TD || tn === $.TH) {\n if (p.openElements.hasInTableScope(tn)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped(tn);\n p.activeFormattingElements.clearToLastMarker();\n p.insertionMode = IN_ROW_MODE;\n }\n } else if (tn === $.TABLE || tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD || tn === $.TR) {\n if (p.openElements.hasInTableScope(tn)) {\n p._closeTableCell();\n p._processToken(token);\n }\n } else if (tn !== $.BODY && tn !== $.CAPTION && tn !== $.COL && tn !== $.COLGROUP && tn !== $.HTML) {\n endTagInBody(p, token);\n }\n}\n\n// The \"in select\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInSelect(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML) {\n startTagInBody(p, token);\n } else if (tn === $.OPTION) {\n if (p.openElements.currentTagName === $.OPTION) {\n p.openElements.pop();\n }\n\n p._insertElement(token, NS.HTML);\n } else if (tn === $.OPTGROUP) {\n if (p.openElements.currentTagName === $.OPTION) {\n p.openElements.pop();\n }\n\n if (p.openElements.currentTagName === $.OPTGROUP) {\n p.openElements.pop();\n }\n\n p._insertElement(token, NS.HTML);\n } else if (tn === $.INPUT || tn === $.KEYGEN || tn === $.TEXTAREA || tn === $.SELECT) {\n if (p.openElements.hasInSelectScope($.SELECT)) {\n p.openElements.popUntilTagNamePopped($.SELECT);\n p._resetInsertionMode();\n\n if (tn !== $.SELECT) {\n p._processToken(token);\n }\n }\n } else if (tn === $.SCRIPT || tn === $.TEMPLATE) {\n startTagInHead(p, token);\n }\n}\n\nfunction endTagInSelect(p, token) {\n const tn = token.tagName;\n\n if (tn === $.OPTGROUP) {\n const prevOpenElement = p.openElements.items[p.openElements.stackTop - 1];\n const prevOpenElementTn = prevOpenElement && p.treeAdapter.getTagName(prevOpenElement);\n\n if (p.openElements.currentTagName === $.OPTION && prevOpenElementTn === $.OPTGROUP) {\n p.openElements.pop();\n }\n\n if (p.openElements.currentTagName === $.OPTGROUP) {\n p.openElements.pop();\n }\n } else if (tn === $.OPTION) {\n if (p.openElements.currentTagName === $.OPTION) {\n p.openElements.pop();\n }\n } else if (tn === $.SELECT && p.openElements.hasInSelectScope($.SELECT)) {\n p.openElements.popUntilTagNamePopped($.SELECT);\n p._resetInsertionMode();\n } else if (tn === $.TEMPLATE) {\n endTagInHead(p, token);\n }\n}\n\n//12.2.5.4.17 The \"in select in table\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInSelectInTable(p, token) {\n const tn = token.tagName;\n\n if (\n tn === $.CAPTION ||\n tn === $.TABLE ||\n tn === $.TBODY ||\n tn === $.TFOOT ||\n tn === $.THEAD ||\n tn === $.TR ||\n tn === $.TD ||\n tn === $.TH\n ) {\n p.openElements.popUntilTagNamePopped($.SELECT);\n p._resetInsertionMode();\n p._processToken(token);\n } else {\n startTagInSelect(p, token);\n }\n}\n\nfunction endTagInSelectInTable(p, token) {\n const tn = token.tagName;\n\n if (\n tn === $.CAPTION ||\n tn === $.TABLE ||\n tn === $.TBODY ||\n tn === $.TFOOT ||\n tn === $.THEAD ||\n tn === $.TR ||\n tn === $.TD ||\n tn === $.TH\n ) {\n if (p.openElements.hasInTableScope(tn)) {\n p.openElements.popUntilTagNamePopped($.SELECT);\n p._resetInsertionMode();\n p._processToken(token);\n }\n } else {\n endTagInSelect(p, token);\n }\n}\n\n// The \"in template\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInTemplate(p, token) {\n const tn = token.tagName;\n\n if (\n tn === $.BASE ||\n tn === $.BASEFONT ||\n tn === $.BGSOUND ||\n tn === $.LINK ||\n tn === $.META ||\n tn === $.NOFRAMES ||\n tn === $.SCRIPT ||\n tn === $.STYLE ||\n tn === $.TEMPLATE ||\n tn === $.TITLE\n ) {\n startTagInHead(p, token);\n } else {\n const newInsertionMode = TEMPLATE_INSERTION_MODE_SWITCH_MAP[tn] || IN_BODY_MODE;\n\n p._popTmplInsertionMode();\n p._pushTmplInsertionMode(newInsertionMode);\n p.insertionMode = newInsertionMode;\n p._processToken(token);\n }\n}\n\nfunction endTagInTemplate(p, token) {\n if (token.tagName === $.TEMPLATE) {\n endTagInHead(p, token);\n }\n}\n\nfunction eofInTemplate(p, token) {\n if (p.openElements.tmplCount > 0) {\n p.openElements.popUntilTagNamePopped($.TEMPLATE);\n p.activeFormattingElements.clearToLastMarker();\n p._popTmplInsertionMode();\n p._resetInsertionMode();\n p._processToken(token);\n } else {\n p.stopped = true;\n }\n}\n\n// The \"after body\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterBody(p, token) {\n if (token.tagName === $.HTML) {\n startTagInBody(p, token);\n } else {\n tokenAfterBody(p, token);\n }\n}\n\nfunction endTagAfterBody(p, token) {\n if (token.tagName === $.HTML) {\n if (!p.fragmentContext) {\n p.insertionMode = AFTER_AFTER_BODY_MODE;\n }\n } else {\n tokenAfterBody(p, token);\n }\n}\n\nfunction tokenAfterBody(p, token) {\n p.insertionMode = IN_BODY_MODE;\n p._processToken(token);\n}\n\n// The \"in frameset\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInFrameset(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML) {\n startTagInBody(p, token);\n } else if (tn === $.FRAMESET) {\n p._insertElement(token, NS.HTML);\n } else if (tn === $.FRAME) {\n p._appendElement(token, NS.HTML);\n token.ackSelfClosing = true;\n } else if (tn === $.NOFRAMES) {\n startTagInHead(p, token);\n }\n}\n\nfunction endTagInFrameset(p, token) {\n if (token.tagName === $.FRAMESET && !p.openElements.isRootHtmlElementCurrent()) {\n p.openElements.pop();\n\n if (!p.fragmentContext && p.openElements.currentTagName !== $.FRAMESET) {\n p.insertionMode = AFTER_FRAMESET_MODE;\n }\n }\n}\n\n// The \"after frameset\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterFrameset(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML) {\n startTagInBody(p, token);\n } else if (tn === $.NOFRAMES) {\n startTagInHead(p, token);\n }\n}\n\nfunction endTagAfterFrameset(p, token) {\n if (token.tagName === $.HTML) {\n p.insertionMode = AFTER_AFTER_FRAMESET_MODE;\n }\n}\n\n// The \"after after body\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterAfterBody(p, token) {\n if (token.tagName === $.HTML) {\n startTagInBody(p, token);\n } else {\n tokenAfterAfterBody(p, token);\n }\n}\n\nfunction tokenAfterAfterBody(p, token) {\n p.insertionMode = IN_BODY_MODE;\n p._processToken(token);\n}\n\n// The \"after after frameset\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterAfterFrameset(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML) {\n startTagInBody(p, token);\n } else if (tn === $.NOFRAMES) {\n startTagInHead(p, token);\n }\n}\n\n// The rules for parsing tokens in foreign content\n//------------------------------------------------------------------\nfunction nullCharacterInForeignContent(p, token) {\n token.chars = unicode.REPLACEMENT_CHARACTER;\n p._insertCharacters(token);\n}\n\nfunction characterInForeignContent(p, token) {\n p._insertCharacters(token);\n p.framesetOk = false;\n}\n\nfunction startTagInForeignContent(p, token) {\n if (foreignContent.causesExit(token) && !p.fragmentContext) {\n while (\n p.treeAdapter.getNamespaceURI(p.openElements.current) !== NS.HTML &&\n !p._isIntegrationPoint(p.openElements.current)\n ) {\n p.openElements.pop();\n }\n\n p._processToken(token);\n } else {\n const current = p._getAdjustedCurrentElement();\n const currentNs = p.treeAdapter.getNamespaceURI(current);\n\n if (currentNs === NS.MATHML) {\n foreignContent.adjustTokenMathMLAttrs(token);\n } else if (currentNs === NS.SVG) {\n foreignContent.adjustTokenSVGTagName(token);\n foreignContent.adjustTokenSVGAttrs(token);\n }\n\n foreignContent.adjustTokenXMLAttrs(token);\n\n if (token.selfClosing) {\n p._appendElement(token, currentNs);\n } else {\n p._insertElement(token, currentNs);\n }\n\n token.ackSelfClosing = true;\n }\n}\n\nfunction endTagInForeignContent(p, token) {\n for (let i = p.openElements.stackTop; i > 0; i--) {\n const element = p.openElements.items[i];\n\n if (p.treeAdapter.getNamespaceURI(element) === NS.HTML) {\n p._processToken(token);\n break;\n }\n\n if (p.treeAdapter.getTagName(element).toLowerCase() === token.tagName) {\n p.openElements.popUntilElementPopped(element);\n break;\n }\n }\n}\n\nconst Parser = parser;\n\nvar parseFragment = function parseFragment(fragmentContext, html, options) {\n if (typeof fragmentContext === 'string') {\n options = html;\n html = fragmentContext;\n fragmentContext = null;\n }\n\n const parser = new Parser(options);\n\n return parser.parseFragment(html, fragmentContext);\n};\n\n/*\n * Copyright (c) 2023, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nfunction isSingleStyleNodeContainingSingleTextNode(node) {\n if (node.childNodes.length !== 1) {\n return false;\n }\n const style = node.childNodes[0];\n if (style.nodeName !== 'style' || style.childNodes.length !== 1) {\n return false;\n }\n const textNode = style.childNodes[0];\n return textNode.nodeName === '#text';\n}\n// The text content inside `<style>` is a special case. It is _only_ rendered by the LWC engine itself; <style> tags\n// are disallowed inside of templates. Also, we want to avoid over-escaping, since CSS containing strings like\n// `&amp;` and `&quot;` is not valid CSS (even when inside a `<style>` element).\n//\n// However, to avoid XSS attacks, we still need to check for things like `</style><script>alert(\"pwned\")</script>`,\n// since a user could use that inside of a *.css file to break out of a <style> element.\n// See: https://github.com/salesforce/lwc/issues/3439\nfunction validateStyleTextContents(contents) {\n // If parse5 parses this as more than one `<style>` tag, then it is unsafe to be rendered as-is\n const fragment = parseFragment(`<style>${contents}</style>`);\n if (!isSingleStyleNodeContainingSingleTextNode(fragment)) {\n throw new Error('CSS contains unsafe characters and cannot be serialized inside a style element');\n }\n}\n\n/*\n * Copyright (c) 2020, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nfunction serializeAttributes(attributes) {\n return attributes\n .map((attr) => attr.value.length ? `${attr.name}=\"${htmlEscape(attr.value, true)}\"` : attr.name)\n .join(' ');\n}\nfunction serializeChildNodes(children, tagName) {\n return children\n .map((child) => {\n switch (child[HostTypeKey]) {\n case HostNodeType.Text:\n return serializeTextContent(child[HostValueKey], tagName);\n case HostNodeType.Comment:\n return `<!--${htmlEscape(child[HostValueKey])}-->`;\n case HostNodeType.Raw:\n return child[HostValueKey];\n case HostNodeType.Element:\n return serializeElement(child);\n }\n })\n .join('');\n}\nfunction serializeShadowRoot(shadowRoot) {\n const attrs = [`shadowroot=\"${shadowRoot.mode}\"`];\n if (shadowRoot.delegatesFocus) {\n attrs.push('shadowrootdelegatesfocus');\n }\n return `<template ${attrs.join(' ')}>${serializeChildNodes(shadowRoot[HostChildrenKey])}</template>`;\n}\nfunction serializeElement(element) {\n let output = '';\n const tagName = element.tagName;\n const namespace = element[HostNamespaceKey];\n const isForeignElement = namespace !== HTML_NAMESPACE;\n const hasChildren = element[HostChildrenKey].length > 0;\n const attrs = element[HostAttributesKey].length\n ? ` ${serializeAttributes(element[HostAttributesKey])}`\n : '';\n output += `<${tagName}${attrs}`;\n // Note that foreign elements can have children but not shadow roots\n if (isForeignElement && !hasChildren) {\n output += '/>';\n return output;\n }\n output += '>';\n if (element[HostShadowRootKey]) {\n output += serializeShadowRoot(element[HostShadowRootKey]);\n }\n output += serializeChildNodes(element[HostChildrenKey], tagName);\n if (!isVoidElement(tagName, namespace) || hasChildren) {\n output += `</${tagName}>`;\n }\n return output;\n}\nfunction serializeTextContent(contents, tagName) {\n if (contents === '') {\n return '\\u200D'; // Special serialization for empty text nodes\n }\n if (tagName === 'style') {\n // Special validation for <style> tags since their content must be served unescaped, and we need to validate\n // that the contents are safe to serialize unescaped.\n // TODO [#3454]: move this validation to compilation\n validateStyleTextContents(contents);\n // If we haven't thrown an error during validation, then the content is safe to serialize unescaped\n return contents;\n }\n return htmlEscape(contents);\n}\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nconst FakeRootElement = {\n [HostTypeKey]: HostNodeType.Element,\n tagName: 'fake-root-element',\n [HostNamespaceKey]: HTML_NAMESPACE,\n [HostParentKey]: null,\n [HostShadowRootKey]: null,\n [HostChildrenKey]: [],\n [HostAttributesKey]: [],\n [HostContextProvidersKey]: new Map(),\n};\nfunction renderComponent(tagName, Ctor, props = {}) {\n if (!isString(tagName)) {\n throw new TypeError(`\"renderComponent\" expects a string as the first parameter but instead received ${tagName}.`);\n }\n if (!isFunction$1(Ctor)) {\n throw new TypeError(`\"renderComponent\" expects a valid component constructor as the second parameter but instead received ${Ctor}.`);\n }\n if (!isObject(props) || isNull(props)) {\n throw new TypeError(`\"renderComponent\" expects an object as the third parameter but instead received ${props}.`);\n }\n const element = renderer.createElement(tagName);\n createVM(element, Ctor, renderer, {\n mode: 'open',\n owner: null,\n tagName,\n });\n for (const [key, value] of Object.entries(props)) {\n element[key] = value;\n }\n element[HostParentKey] = FakeRootElement;\n connectRootElement(element);\n return serializeElement(element);\n}\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nfreeze(LightningElement);\nseal(LightningElement.prototype);\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\n/**\n * This API is equivalent to the createElement function exposed by @lwc/engine-dom. It doesn't do anything on\n * the server side, however, you may import it.\n *\n * The whole point of defining this and exporting it is so that you can import it in isomorphic code without\n * an error being thrown by the import itself.\n */\nfunction createElement() {\n throw new Error('createElement is not supported in @lwc/engine-server, only @lwc/engine-dom.');\n}\n\nexport { LightningElement, api$1 as api, createContextProvider, createElement, freezeTemplate, getComponentDef, isComponentConstructor, parseFragment$1 as parseFragment, parseFragment$1 as parseSVGFragment, readonly, register, registerComponent, registerDecorators, registerTemplate, renderComponent, renderer, sanitizeAttribute, setFeatureFlag, setFeatureFlagForTest, setHooks, track, unwrap, wire };\n/** version: 2.50.0 */\n//# sourceMappingURL=index.js.map\n"],"names":[],"mappings":"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Ac,CAAC;AAClC;AACA;AACA;AACA,IAAI,eAAe,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACvwvE;AACA,MAAM,YAAY,GAAG,YAAY,CAAC;AAClC,MAAM,SAAS,GAAG,SAAS,CAAC;AAC5B,MAAM,MAAM,GAAG,eAAe,CAAC;AAC/B,MAAM,KAAK,GAAG,UAAU,CAAC;AACzB;AACA;AACA,MAAM,GAAG,GAAG,SAAS,CAAC,WAAW,CAAC;AAClC,MAAM,EAAE,GAAG,SAAS,CAAC,oBAAoB,CAAC;AAC1C;AACA;AACA,MAAM,kCAAkC,GAAG;AAC3C,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,IAAI,EAAE,MAAM;AAChB,CAAC,CAAC;AACF;AACA;AACA,MAAM,aAAa,GAAG,CAAC,IAAI,CAAC,CAAC;AAC7B,MAAM,gBAAgB,GAAG,CAAC,IAAI,CAAC,CAAC;AAChC,MAAM,iBAAiB,GAAG,CAAC,IAAI,CAAC,CAAC;AACjC,MAAM,uBAAuB,GAAG,aAAa,GAAG,gBAAgB,GAAG,iBAAiB,CAAC;AACrF;AACA;AACA,MAAM,UAAU,GAAG,YAAY,CAAC;AAChC,MAAM,YAAY,GAAG,cAAc,CAAC;AACpC,MAAM,aAAa,GAAG,eAAe,CAAC;AACtC,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAC9C,MAAM,eAAe,GAAG,iBAAiB,CAAC;AAC1C,MAAM,cAAc,GAAG,gBAAgB,CAAC;AACxC,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AAChD,MAAM,cAAc,GAAG,gBAAgB,CAAC;AACxC,MAAM,2BAA2B,GAAG,6BAA6B,CAAC;AAClE,MAAM,yBAAyB,GAAG,2BAA2B,CAAC;AAC9D,MAAM,yBAAyB,GAAG,2BAA2B,CAAC;AAC9D,MAAM,4BAA4B,GAAG,8BAA8B,CAAC;AACpE,MAAM,0BAA0B,GAAG,4BAA4B,CAAC;AAChE,MAAM,0BAA0B,GAAG,4BAA4B,CAAC;AAChE,MAAM,gCAAgC,GAAG,kCAAkC,CAAC;AAC5E,MAAM,8BAA8B,GAAG,gCAAgC,CAAC;AACxE,MAAM,8BAA8B,GAAG,gCAAgC,CAAC;AACxE,MAAM,8BAA8B,GAAG,gCAAgC,CAAC;AACxE,MAAM,mCAAmC,GAAG,qCAAqC,CAAC;AAClF,MAAM,yBAAyB,GAAG,2BAA2B,CAAC;AAC9D,MAAM,8BAA8B,GAAG,gCAAgC,CAAC;AACxE,MAAM,mCAAmC,GAAG,qCAAqC,CAAC;AAClF,MAAM,wCAAwC,GAAG,0CAA0C,CAAC;AAC5F,MAAM,sCAAsC,GAAG,wCAAwC,CAAC;AACxF,MAAM,sCAAsC,GAAG,wCAAwC,CAAC;AACxF,MAAM,qCAAqC,GAAG,uCAAuC,CAAC;AACtF,MAAM,gCAAgC,GAAG,kCAAkC,CAAC;AAC5E,MAAM,qCAAqC,GAAG,uCAAuC,CAAC;AACtF,MAAM,0CAA0C,GAAG,4CAA4C,CAAC;AAChG,MAAM,+CAA+C,GAAG,iDAAiD,CAAC;AAC1G,MAAM,mCAAmC,GAAG,qCAAqC,CAAC;AAClF,MAAM,2BAA2B,GAAG,6BAA6B,CAAC;AAClE,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;AACpD,MAAM,0BAA0B,GAAG,4BAA4B,CAAC;AAChE,MAAM,4BAA4B,GAAG,8BAA8B,CAAC;AACpE,MAAM,mCAAmC,GAAG,qCAAqC,CAAC;AAClF,MAAM,mCAAmC,GAAG,qCAAqC,CAAC;AAClF,MAAM,8BAA8B,GAAG,gCAAgC,CAAC;AACxE,MAAM,kCAAkC,GAAG,oCAAoC,CAAC;AAChF,MAAM,4BAA4B,GAAG,8BAA8B,CAAC;AACpE,MAAM,mBAAmB,GAAG,qBAAqB,CAAC;AAClD,MAAM,6BAA6B,GAAG,+BAA+B,CAAC;AACtE,MAAM,mBAAmB,GAAG,qBAAqB,CAAC;AAClD,MAAM,wBAAwB,GAAG,0BAA0B,CAAC;AAC5D,MAAM,aAAa,GAAG,eAAe,CAAC;AACtC,MAAM,4BAA4B,GAAG,8BAA8B,CAAC;AACpE,MAAM,iCAAiC,GAAG,mCAAmC,CAAC;AAC9E,MAAM,sCAAsC,GAAG,wCAAwC,CAAC;AACxF,MAAM,2CAA2C,GAAG,6CAA6C,CAAC;AAClG,MAAM,sBAAsB,GAAG,wBAAwB,CAAC;AACxD,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAC9C,MAAM,sBAAsB,GAAG,wBAAwB,CAAC;AACxD,MAAM,aAAa,GAAG,eAAe,CAAC;AACtC,MAAM,yBAAyB,GAAG,2BAA2B,CAAC;AAC9D,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AAChD,MAAM,wBAAwB,GAAG,0BAA0B,CAAC;AAC5D,MAAM,kCAAkC,GAAG,oCAAoC,CAAC;AAChF,MAAM,sCAAsC,GAAG,wCAAwC,CAAC;AACxF,MAAM,6CAA6C,GAAG,+CAA+C,CAAC;AACtG,MAAM,6CAA6C,GAAG,+CAA+C,CAAC;AACtG,MAAM,qCAAqC,GAAG,uCAAuC,CAAC;AACtF,MAAM,mDAAmD,GAAG,qDAAqD,CAAC;AAClH,MAAM,kCAAkC,GAAG,oCAAoC,CAAC;AAChF,MAAM,sCAAsC,GAAG,wCAAwC,CAAC;AACxF,MAAM,6CAA6C,GAAG,+CAA+C,CAAC;AACtG,MAAM,6CAA6C,GAAG,+CAA+C,CAAC;AACtG,MAAM,qCAAqC,GAAG,uCAAuC,CAAC;AACtF,MAAM,mBAAmB,GAAG,qBAAqB,CAAC;AAClD,MAAM,mBAAmB,GAAG,qBAAqB,CAAC;AAClD,MAAM,2BAA2B,GAAG,6BAA6B,CAAC;AAClE,MAAM,uBAAuB,GAAG,yBAAyB,CAAC;AAC1D,MAAM,yBAAyB,GAAG,2BAA2B,CAAC;AAC9D,MAAM,+BAA+B,GAAG,iCAAiC,CAAC;AAC1E,MAAM,yBAAyB,GAAG,0BAA0B,CAAC;AAC7D,MAAM,iCAAiC,GAAG,mCAAmC,CAAC;AAC9E,MAAM,2CAA2C,GAAG,6CAA6C,CAAC;AAClG,MAAM,uCAAuC,GAAG,yCAAyC,CAAC;AAC1F,MAAM,qCAAqC,GAAG,uCAAuC,CAAC;AACtF,MAAM,iCAAiC,GAAG,mCAAmC,CAAC;AAC9E,MAAM,qCAAqC,GAAG,uCAAuC,CAAC;AACtF;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,YAAY,CAAC,EAAE,EAAE;AAC1B,IAAI,OAAO,EAAE,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,GAAG,CAAC,SAAS,IAAI,EAAE,KAAK,GAAG,CAAC,UAAU,IAAI,EAAE,KAAK,GAAG,CAAC,SAAS,CAAC;AACrG,CAAC;AACD;AACA,SAAS,YAAY,CAAC,EAAE,EAAE;AAC1B,IAAI,OAAO,EAAE,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC;AAClD,CAAC;AACD;AACA,SAAS,YAAY,CAAC,EAAE,EAAE;AAC1B,IAAI,OAAO,EAAE,IAAI,GAAG,CAAC,eAAe,IAAI,EAAE,IAAI,GAAG,CAAC,eAAe,CAAC;AAClE,CAAC;AACD;AACA,SAAS,YAAY,CAAC,EAAE,EAAE;AAC1B,IAAI,OAAO,EAAE,IAAI,GAAG,CAAC,aAAa,IAAI,EAAE,IAAI,GAAG,CAAC,aAAa,CAAC;AAC9D,CAAC;AACD;AACA,SAAS,aAAa,CAAC,EAAE,EAAE;AAC3B,IAAI,OAAO,YAAY,CAAC,EAAE,CAAC,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC;AAChD,CAAC;AACD;AACA,SAAS,mBAAmB,CAAC,EAAE,EAAE;AACjC,IAAI,OAAO,aAAa,CAAC,EAAE,CAAC,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC;AACjD,CAAC;AACD;AACA,SAAS,oBAAoB,CAAC,EAAE,EAAE;AAClC,IAAI,OAAO,EAAE,IAAI,GAAG,CAAC,eAAe,IAAI,EAAE,IAAI,GAAG,CAAC,eAAe,CAAC;AAClE,CAAC;AACD;AACA,SAAS,oBAAoB,CAAC,EAAE,EAAE;AAClC,IAAI,OAAO,EAAE,IAAI,GAAG,CAAC,aAAa,IAAI,EAAE,IAAI,GAAG,CAAC,aAAa,CAAC;AAC9D,CAAC;AACD;AACA,SAAS,eAAe,CAAC,EAAE,EAAE;AAC7B,IAAI,OAAO,YAAY,CAAC,EAAE,CAAC,IAAI,oBAAoB,CAAC,EAAE,CAAC,IAAI,oBAAoB,CAAC,EAAE,CAAC,CAAC;AACpF,CAAC;AACD;AACA,SAAS,qBAAqB,CAAC,EAAE,EAAE;AACnC,IAAI,OAAO,EAAE,GAAG,MAAM,CAAC;AACvB,CAAC;AACD;AACA;AACA;AACA;AACA,SAAS,MAAM,CAAC,EAAE,EAAE;AACpB,IAAI,IAAI,EAAE,IAAI,MAAM,EAAE;AACtB,QAAQ,OAAO,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;AACvC,KAAK;AACL;AACA,IAAI,EAAE,IAAI,OAAO,CAAC;AAClB,IAAI,OAAO,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,KAAK,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;AAC5G,CAAC;AACD;AACA,SAAS,gBAAgB,CAAC,EAAE,EAAE;AAC9B,IAAI,OAAO,MAAM,CAAC,YAAY,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1D,CAAC;AACD;AACA,SAAS,yBAAyB,CAAC,MAAM,EAAE,EAAE,EAAE;AAC/C,IAAI,MAAM,WAAW,GAAG,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;AACzC,IAAI,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC;AACtB,IAAI,IAAI,EAAE,GAAG,EAAE,GAAG,WAAW,GAAG,CAAC,CAAC;AAClC;AACA,IAAI,OAAO,EAAE,IAAI,EAAE,EAAE;AACrB,QAAQ,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AACpC,QAAQ,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAClC;AACA,QAAQ,IAAI,KAAK,GAAG,EAAE,EAAE;AACxB,YAAY,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;AACzB,SAAS,MAAM,IAAI,KAAK,GAAG,EAAE,EAAE;AAC/B,YAAY,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;AACzB,SAAS,MAAM;AACf,YAAY,OAAO,MAAM,CAAC,GAAG,GAAG,WAAW,CAAC,CAAC;AAC7C,SAAS;AACT,KAAK;AACL;AACA,IAAI,OAAO,CAAC,CAAC,CAAC;AACd,CAAC;AACD;AACA;AACA,IAAI,WAAW,GAAG,MAAM,SAAS,CAAC;AAClC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;AAC/C;AACA,QAAQ,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;AAC7B;AACA,QAAQ,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAChC;AACA,QAAQ,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;AAChC,QAAQ,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AAC9B;AACA,QAAQ,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;AAC9B,QAAQ,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AAC3B,QAAQ,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;AACnC;AACA,QAAQ,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC,CAAC;AACxC,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AAC5B;AACA,QAAQ,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;AAC1C,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACjC,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAChC,KAAK;AACL;AACA;AACA,IAAI,IAAI,GAAG;AACX;AACA,KAAK;AACL;AACA,IAAI,mBAAmB,CAAC,GAAG,EAAE;AAC7B,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;AACxB,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;AAC1B,KAAK;AACL;AACA;AACA,IAAI,YAAY,GAAG;AACnB,QAAQ,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE;AACvD,YAAY,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;AAC3C;AACA,YAAY,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;AACvC;AACA,YAAY,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE;AAC5C,gBAAgB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AACrC,aAAa;AACb,SAAS;AACT;AACA,QAAQ,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;AACvC,KAAK;AACL;AACA,IAAI,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE;AAC9B,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AAC3B,QAAQ,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AACpD,KAAK;AACL;AACA,IAAI,sBAAsB,CAAC,KAAK,EAAE;AAClC,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AAC3B,QAAQ,IAAI,CAAC,YAAY,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;AACxD,KAAK;AACL;AACA;AACA,IAAI,kBAAkB,GAAG;AACzB,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE;AAC7C,YAAY,OAAO,IAAI,CAAC,qBAAqB,GAAG,CAAC,EAAE,IAAI,CAAC,qBAAqB,EAAE,EAAE;AACjF,gBAAgB,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;AAC5C,aAAa;AACb;AACA,YAAY,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AAChC,YAAY,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,iBAAiB,EAAE,CAAC,CAAC;AACxE;AACA,YAAY,OAAO,IAAI,CAAC;AACxB,SAAS;AACT;AACA,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL;AACA;AACA,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,qBAAqB,EAAE,CAAC;AACrC,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;AAC3C,KAAK;AACL;AACA,IAAI,UAAU,GAAG;AACjB,QAAQ,IAAI,CAAC,qBAAqB,EAAE,CAAC;AACrC,QAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;AACpC,KAAK;AACL;AACA,IAAI,iBAAiB,CAAC,KAAK,EAAE;AAC7B,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AAC3B,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;AAC1B,KAAK;AACL;AACA,IAAI,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE;AAC7D,QAAQ,IAAI,aAAa,GAAG,CAAC,CAAC;AAC9B,QAAQ,IAAI,OAAO,GAAG,IAAI,CAAC;AAC3B,QAAQ,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;AAC7C,QAAQ,IAAI,UAAU,GAAG,CAAC,CAAC;AAC3B,QAAQ,IAAI,EAAE,GAAG,OAAO,CAAC;AACzB,QAAQ,IAAI,SAAS,GAAG,KAAK,CAAC,CAAC;AAC/B;AACA,QAAQ,OAAO,UAAU,GAAG,aAAa,EAAE,UAAU,EAAE,EAAE;AACzD,YAAY,IAAI,UAAU,GAAG,CAAC,EAAE;AAChC,gBAAgB,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;AACrC,gBAAgB,aAAa,EAAE,CAAC;AAChC,aAAa;AACb;AACA,YAAY,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AAChC,gBAAgB,OAAO,GAAG,KAAK,CAAC;AAChC,gBAAgB,MAAM;AACtB,aAAa;AACb;AACA,YAAY,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAC5C;AACA,YAAY,IAAI,EAAE,KAAK,SAAS,KAAK,aAAa,IAAI,EAAE,KAAK,qBAAqB,CAAC,SAAS,CAAC,CAAC,EAAE;AAChG,gBAAgB,OAAO,GAAG,KAAK,CAAC;AAChC,gBAAgB,MAAM;AACtB,aAAa;AACb,SAAS;AACT;AACA,QAAQ,IAAI,CAAC,OAAO,EAAE;AACtB,YAAY,OAAO,aAAa,EAAE,EAAE;AACpC,gBAAgB,IAAI,CAAC,UAAU,EAAE,CAAC;AAClC,aAAa;AACb,SAAS;AACT;AACA,QAAQ,OAAO,OAAO,CAAC;AACvB,KAAK;AACL;AACA;AACA,IAAI,gCAAgC,GAAG;AACvC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE;AAC9D,YAAY,OAAO,KAAK,CAAC;AACzB,SAAS;AACT;AACA,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACvD,YAAY,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;AAC1D,gBAAgB,OAAO,KAAK,CAAC;AAC7B,aAAa;AACb,SAAS;AACT;AACA,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK;AACL;AACA;AACA,IAAI,oBAAoB,GAAG;AAC3B,QAAQ,IAAI,CAAC,YAAY,GAAG;AAC5B,YAAY,IAAI,EAAE,SAAS,CAAC,eAAe;AAC3C,YAAY,OAAO,EAAE,EAAE;AACvB,YAAY,WAAW,EAAE,KAAK;AAC9B,YAAY,cAAc,EAAE,KAAK;AACjC,YAAY,KAAK,EAAE,EAAE;AACrB,SAAS,CAAC;AACV,KAAK;AACL;AACA,IAAI,kBAAkB,GAAG;AACzB,QAAQ,IAAI,CAAC,YAAY,GAAG;AAC5B,YAAY,IAAI,EAAE,SAAS,CAAC,aAAa;AACzC,YAAY,OAAO,EAAE,EAAE;AACvB,YAAY,WAAW,EAAE,KAAK;AAC9B,YAAY,KAAK,EAAE,EAAE;AACrB,SAAS,CAAC;AACV,KAAK;AACL;AACA,IAAI,mBAAmB,GAAG;AAC1B,QAAQ,IAAI,CAAC,YAAY,GAAG;AAC5B,YAAY,IAAI,EAAE,SAAS,CAAC,aAAa;AACzC,YAAY,IAAI,EAAE,EAAE;AACpB,SAAS,CAAC;AACV,KAAK;AACL;AACA,IAAI,mBAAmB,CAAC,WAAW,EAAE;AACrC,QAAQ,IAAI,CAAC,YAAY,GAAG;AAC5B,YAAY,IAAI,EAAE,SAAS,CAAC,aAAa;AACzC,YAAY,IAAI,EAAE,WAAW;AAC7B,YAAY,WAAW,EAAE,KAAK;AAC9B,YAAY,QAAQ,EAAE,IAAI;AAC1B,YAAY,QAAQ,EAAE,IAAI;AAC1B,SAAS,CAAC;AACV,KAAK;AACL;AACA,IAAI,qBAAqB,CAAC,IAAI,EAAE,EAAE,EAAE;AACpC,QAAQ,IAAI,CAAC,qBAAqB,GAAG;AACrC,YAAY,IAAI,EAAE,IAAI;AACtB,YAAY,KAAK,EAAE,EAAE;AACrB,SAAS,CAAC;AACV,KAAK;AACL;AACA,IAAI,eAAe,GAAG;AACtB,QAAQ,IAAI,CAAC,YAAY,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,SAAS,EAAE,CAAC;AAC1D,KAAK;AACL;AACA;AACA,IAAI,WAAW,CAAC,eAAe,EAAE;AACjC,QAAQ,IAAI,CAAC,WAAW,GAAG;AAC3B,YAAY,IAAI,EAAE,eAAe;AACjC,YAAY,KAAK,EAAE,EAAE;AACrB,SAAS,CAAC;AACV,KAAK;AACL;AACA,IAAI,cAAc,CAAC,OAAO,EAAE;AAC5B,QAAQ,IAAI,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;AACvF,YAAY,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC3D,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;AAChD,SAAS;AACT;AACA,QAAQ,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;AAC7B,KAAK;AACL;AACA,IAAI,eAAe,CAAC,OAAO,EAAE;AAC7B,QAAQ,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;AAC7B,KAAK;AACL;AACA;AACA,IAAI,iBAAiB,GAAG;AACxB,QAAQ,IAAI,CAAC,0BAA0B,EAAE,CAAC;AAC1C;AACA,QAAQ,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC;AACrC;AACA,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACjC;AACA;AACA,QAAQ,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,eAAe,EAAE;AACnD,YAAY,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC,OAAO,CAAC;AAC/C,SAAS,MAAM,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,aAAa,EAAE;AACxD,YAAY,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACrC,gBAAgB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;AACtD,aAAa;AACb;AACA,YAAY,IAAI,EAAE,CAAC,WAAW,EAAE;AAChC,gBAAgB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;AAC3D,aAAa;AACb,SAAS;AACT;AACA,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACjC,KAAK;AACL;AACA,IAAI,0BAA0B,GAAG;AACjC,QAAQ,IAAI,IAAI,CAAC,qBAAqB,EAAE;AACxC,YAAY,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;AAC7D,YAAY,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;AAC9C,SAAS;AACT,KAAK;AACL;AACA,IAAI,aAAa,GAAG;AACpB,QAAQ,IAAI,CAAC,eAAe,EAAE,CAAC;AAC/B,QAAQ,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACjC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kCAAkC,CAAC,IAAI,EAAE,EAAE,EAAE;AACjD,QAAQ,IAAI,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,qBAAqB,CAAC,IAAI,KAAK,IAAI,EAAE;AACpF,YAAY,IAAI,CAAC,0BAA0B,EAAE,CAAC;AAC9C,SAAS;AACT;AACA,QAAQ,IAAI,IAAI,CAAC,qBAAqB,EAAE;AACxC,YAAY,IAAI,CAAC,qBAAqB,CAAC,KAAK,IAAI,EAAE,CAAC;AACnD,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACjD,SAAS;AACT,KAAK;AACL;AACA,IAAI,cAAc,CAAC,EAAE,EAAE;AACvB,QAAQ,IAAI,IAAI,GAAG,SAAS,CAAC,eAAe,CAAC;AAC7C;AACA,QAAQ,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;AAC9B,YAAY,IAAI,GAAG,SAAS,CAAC,0BAA0B,CAAC;AACxD,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE;AACpC,YAAY,IAAI,GAAG,SAAS,CAAC,oBAAoB,CAAC;AAClD,SAAS;AACT;AACA,QAAQ,IAAI,CAAC,kCAAkC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AAClE,KAAK;AACL;AACA,IAAI,sBAAsB,CAAC,UAAU,EAAE;AACvC,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpD,YAAY,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,UAAU,CAAC,EAAE,EAAE;AACnB,QAAQ,IAAI,CAAC,kCAAkC,CAAC,SAAS,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;AAC/E,KAAK;AACL;AACA;AACA,IAAI,6BAA6B,CAAC,OAAO,EAAE;AAC3C,QAAQ,IAAI,MAAM,GAAG,IAAI,CAAC;AAC1B,QAAQ,IAAI,MAAM,GAAG,CAAC,CAAC;AACvB,QAAQ,IAAI,CAAC,GAAG,yBAAyB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACtD;AACA,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACpC;AACA,QAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE;AACvB,YAAY,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACtC,YAAY,MAAM,MAAM,GAAG,OAAO,GAAG,uBAAuB,CAAC;AAC7D,YAAY,MAAM,YAAY,GAAG,MAAM,IAAI,OAAO,GAAG,aAAa,CAAC;AACnE;AACA,YAAY,IAAI,YAAY,EAAE;AAC9B;AACA,gBAAgB,MAAM,GAAG,OAAO,GAAG,gBAAgB,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACjG,gBAAgB,MAAM,GAAG,CAAC,CAAC;AAC3B,aAAa;AACb;AACA,YAAY,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;AACvC;AACA,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnC,YAAY,MAAM,EAAE,CAAC;AACrB;AACA,YAAY,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AAChC,gBAAgB,MAAM;AACtB,aAAa;AACb;AACA,YAAY,IAAI,MAAM,EAAE;AACxB,gBAAgB,CAAC,GAAG,OAAO,GAAG,iBAAiB,GAAG,yBAAyB,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACxF,aAAa,MAAM;AACnB,gBAAgB,CAAC,GAAG,EAAE,KAAK,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9C,aAAa;AACb,SAAS;AACT;AACA,QAAQ,OAAO,MAAM,EAAE,EAAE;AACzB,YAAY,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;AAChC,YAAY,IAAI,CAAC,UAAU,EAAE,CAAC;AAC9B,SAAS;AACT;AACA,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK;AACL;AACA,IAAI,gCAAgC,GAAG;AACvC,QAAQ;AACR,YAAY,IAAI,CAAC,WAAW,KAAK,mCAAmC;AACpE,YAAY,IAAI,CAAC,WAAW,KAAK,mCAAmC;AACpE,YAAY,IAAI,CAAC,WAAW,KAAK,8BAA8B;AAC/D,UAAU;AACV,KAAK;AACL;AACA,IAAI,mCAAmC,CAAC,aAAa,EAAE;AACvD,QAAQ,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,gCAAgC,EAAE,EAAE;AACvE,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC3C;AACA,YAAY,IAAI,CAAC,UAAU,EAAE,CAAC;AAC9B;AACA,YAAY,OAAO,MAAM,KAAK,GAAG,CAAC,WAAW,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAC7E,SAAS;AACT;AACA,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL;AACA,IAAI,4CAA4C,GAAG;AACnD,QAAQ,IAAI,IAAI,CAAC,gCAAgC,EAAE,EAAE;AACrD,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC3D,gBAAgB,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACnE,aAAa;AACb,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACvD,SAAS;AACT;AACA,QAAQ,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AAC3B,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE;AACrB,QAAQ,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC;AAC5C;AACA,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,cAAc,EAAE;AACvC,YAAY,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC;AACxC,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,SAAS,EAAE;AACzC,YAAY,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;AAC1C,YAAY,IAAI,CAAC,KAAK,GAAG,yBAAyB,CAAC;AACnD,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE;AACpC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;AACrD,YAAY,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;AACpC,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AACnC,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;AACjC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;AACpC,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,EAAE;AACvB,QAAQ,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC;AAC5C;AACA,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,SAAS,EAAE;AAClC,YAAY,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC;AAC5C,YAAY,IAAI,CAAC,KAAK,GAAG,yBAAyB,CAAC;AACnD,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,cAAc,EAAE;AAC9C,YAAY,IAAI,CAAC,KAAK,GAAG,2BAA2B,CAAC;AACrD,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE;AACpC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;AACrD,YAAY,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;AAC7D,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AACnC,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;AACjC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;AACpC,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,EAAE;AACxB,QAAQ,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC;AAC5C;AACA,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,cAAc,EAAE;AACvC,YAAY,IAAI,CAAC,KAAK,GAAG,4BAA4B,CAAC;AACtD,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE;AACpC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;AACrD,YAAY,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;AAC7D,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AACnC,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;AACjC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;AACpC,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,EAAE;AAC5B,QAAQ,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC;AAC5C;AACA,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,cAAc,EAAE;AACvC,YAAY,IAAI,CAAC,KAAK,GAAG,gCAAgC,CAAC;AAC1D,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE;AACpC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;AACrD,YAAY,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;AAC7D,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AACnC,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;AACjC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;AACpC,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,EAAE;AAC1B,QAAQ,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC;AAC5C;AACA,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE;AAC7B,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;AACrD,YAAY,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;AAC7D,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AACnC,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;AACjC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;AACpC,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE;AACzB,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,gBAAgB,EAAE;AACzC,YAAY,IAAI,CAAC,KAAK,GAAG,6BAA6B,CAAC;AACvD,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,OAAO,EAAE;AACvC,YAAY,IAAI,CAAC,KAAK,GAAG,kBAAkB,CAAC;AAC5C,SAAS,MAAM,IAAI,aAAa,CAAC,EAAE,CAAC,EAAE;AACtC,YAAY,IAAI,CAAC,oBAAoB,EAAE,CAAC;AACxC,YAAY,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;AACnD,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,aAAa,EAAE;AAC7C,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;AACpE,YAAY,IAAI,CAAC,mBAAmB,EAAE,CAAC;AACvC,YAAY,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;AACxD,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AACnC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;AAC9C,YAAY,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACjC,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;AACjC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;AAC5D,YAAY,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACjC,YAAY,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;AAC/C,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,EAAE;AAC7B,QAAQ,IAAI,aAAa,CAAC,EAAE,CAAC,EAAE;AAC/B,YAAY,IAAI,CAAC,kBAAkB,EAAE,CAAC;AACtC,YAAY,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;AACnD,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,iBAAiB,EAAE;AACjD,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;AAC/C,YAAY,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;AACpC,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AACnC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;AAC9C,YAAY,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAClC,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;AACjC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;AAC5D,YAAY,IAAI,CAAC,mBAAmB,EAAE,CAAC;AACvC,YAAY,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;AACxD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE;AACzB,QAAQ,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;AAC9B,YAAY,IAAI,CAAC,KAAK,GAAG,2BAA2B,CAAC;AACrD,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,OAAO,EAAE;AACvC,YAAY,IAAI,CAAC,KAAK,GAAG,4BAA4B,CAAC;AACtD,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,iBAAiB,EAAE;AACjD,YAAY,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;AACpC,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,SAAS,MAAM,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;AACrC,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,IAAI,gBAAgB,CAAC,EAAE,CAAC,CAAC;AAC9D,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE;AACpC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;AACrD,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,IAAI,SAAS,CAAC,qBAAqB,CAAC;AACzE,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AACnC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AACtC,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;AACjC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;AACpD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,2BAA2B,CAAC,CAAC,EAAE,EAAE;AACtC,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,OAAO,EAAE;AAChC,YAAY,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AAC/B,YAAY,IAAI,CAAC,KAAK,GAAG,yBAAyB,CAAC;AACnD,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACjC,YAAY,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;AACjD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,yBAAyB,CAAC,CAAC,EAAE,EAAE;AACpC,QAAQ,IAAI,aAAa,CAAC,EAAE,CAAC,EAAE;AAC/B,YAAY,IAAI,CAAC,kBAAkB,EAAE,CAAC;AACtC,YAAY,IAAI,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,CAAC;AAC9D,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAClC,YAAY,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;AACjD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,yBAAyB,CAAC,CAAC,EAAE,EAAE;AACpC,QAAQ,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;AAC9B,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,IAAI,gBAAgB,CAAC,EAAE,CAAC,CAAC;AAC9D,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnC,SAAS,MAAM,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;AACrC,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;AACpD,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnC,SAAS,MAAM;AACf,YAAY,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;AACrE,gBAAgB,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;AACtC,oBAAoB,IAAI,CAAC,KAAK,GAAG,2BAA2B,CAAC;AAC7D,oBAAoB,OAAO;AAC3B,iBAAiB;AACjB;AACA,gBAAgB,IAAI,EAAE,KAAK,GAAG,CAAC,OAAO,EAAE;AACxC,oBAAoB,IAAI,CAAC,KAAK,GAAG,4BAA4B,CAAC;AAC9D,oBAAoB,OAAO;AAC3B,iBAAiB;AACjB;AACA,gBAAgB,IAAI,EAAE,KAAK,GAAG,CAAC,iBAAiB,EAAE;AAClD,oBAAoB,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;AAC5C,oBAAoB,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC7C,oBAAoB,OAAO;AAC3B,iBAAiB;AACjB,aAAa;AACb;AACA,YAAY,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAClC,YAAY,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACvD,YAAY,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;AACjD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,4BAA4B,CAAC,CAAC,EAAE,EAAE;AACvC,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,OAAO,EAAE;AAChC,YAAY,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AAC/B,YAAY,IAAI,CAAC,KAAK,GAAG,0BAA0B,CAAC;AACpD,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACjC,YAAY,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;AAClD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,0BAA0B,CAAC,CAAC,EAAE,EAAE;AACrC,QAAQ,IAAI,aAAa,CAAC,EAAE,CAAC,EAAE;AAC/B,YAAY,IAAI,CAAC,kBAAkB,EAAE,CAAC;AACtC,YAAY,IAAI,CAAC,iBAAiB,CAAC,0BAA0B,CAAC,CAAC;AAC/D,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAClC,YAAY,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;AAClD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,0BAA0B,CAAC,CAAC,EAAE,EAAE;AACrC,QAAQ,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;AAC9B,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,IAAI,gBAAgB,CAAC,EAAE,CAAC,CAAC;AAC9D,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnC,SAAS,MAAM,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;AACrC,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;AACpD,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnC,SAAS,MAAM;AACf,YAAY,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;AACrE,gBAAgB,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;AACtC,oBAAoB,IAAI,CAAC,KAAK,GAAG,2BAA2B,CAAC;AAC7D,oBAAoB,OAAO;AAC3B,iBAAiB;AACjB;AACA,gBAAgB,IAAI,EAAE,KAAK,GAAG,CAAC,OAAO,EAAE;AACxC,oBAAoB,IAAI,CAAC,KAAK,GAAG,4BAA4B,CAAC;AAC9D,oBAAoB,OAAO;AAC3B,iBAAiB;AACjB;AACA,gBAAgB,IAAI,EAAE,KAAK,GAAG,CAAC,iBAAiB,EAAE;AAClD,oBAAoB,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC7C,oBAAoB,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;AAC5C,oBAAoB,OAAO;AAC3B,iBAAiB;AACjB,aAAa;AACb;AACA,YAAY,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAClC,YAAY,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACvD,YAAY,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;AAClD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,gCAAgC,CAAC,CAAC,EAAE,EAAE;AAC3C,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,OAAO,EAAE;AAChC,YAAY,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AAC/B,YAAY,IAAI,CAAC,KAAK,GAAG,8BAA8B,CAAC;AACxD,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,gBAAgB,EAAE;AAChD,YAAY,IAAI,CAAC,KAAK,GAAG,8BAA8B,CAAC;AACxD,YAAY,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAClC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACjC,YAAY,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;AACtD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,8BAA8B,CAAC,CAAC,EAAE,EAAE;AACzC,QAAQ,IAAI,aAAa,CAAC,EAAE,CAAC,EAAE;AAC/B,YAAY,IAAI,CAAC,kBAAkB,EAAE,CAAC;AACtC,YAAY,IAAI,CAAC,iBAAiB,CAAC,8BAA8B,CAAC,CAAC;AACnE,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAClC,YAAY,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;AACtD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,8BAA8B,CAAC,CAAC,EAAE,EAAE;AACzC,QAAQ,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;AAC9B,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,IAAI,gBAAgB,CAAC,EAAE,CAAC,CAAC;AAC9D,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnC,SAAS,MAAM,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;AACrC,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;AACpD,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnC,SAAS,MAAM;AACf,YAAY,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;AACrE,gBAAgB,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;AACtC,oBAAoB,IAAI,CAAC,KAAK,GAAG,2BAA2B,CAAC;AAC7D,oBAAoB,OAAO;AAC3B,iBAAiB,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,OAAO,EAAE;AAC/C,oBAAoB,IAAI,CAAC,KAAK,GAAG,4BAA4B,CAAC;AAC9D,oBAAoB,OAAO;AAC3B,iBAAiB,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,iBAAiB,EAAE;AACzD,oBAAoB,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC7C,oBAAoB,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;AAC5C,oBAAoB,OAAO;AAC3B,iBAAiB;AACjB,aAAa;AACb;AACA,YAAY,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAClC,YAAY,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACvD,YAAY,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;AACtD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,8BAA8B,CAAC,CAAC,EAAE,EAAE;AACzC,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,YAAY,EAAE;AACrC,YAAY,IAAI,CAAC,KAAK,GAAG,mCAAmC,CAAC;AAC7D,YAAY,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACjC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;AACtD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,mCAAmC,CAAC,CAAC,EAAE,EAAE;AAC9C,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,YAAY,EAAE;AACrC,YAAY,IAAI,CAAC,KAAK,GAAG,mCAAmC,CAAC;AAC7D,YAAY,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACjC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;AACtD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,yBAAyB,CAAC,CAAC,EAAE,EAAE;AACpC,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,YAAY,EAAE;AACrC,YAAY,IAAI,CAAC,KAAK,GAAG,8BAA8B,CAAC;AACxD,YAAY,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACjC,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,cAAc,EAAE;AAC9C,YAAY,IAAI,CAAC,KAAK,GAAG,wCAAwC,CAAC;AAClE,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE;AACpC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;AACrD,YAAY,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;AAC7D,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AACnC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;AAC5D,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;AACjC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;AACpC,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,8BAA8B,CAAC,CAAC,EAAE,EAAE;AACzC,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,YAAY,EAAE;AACrC,YAAY,IAAI,CAAC,KAAK,GAAG,mCAAmC,CAAC;AAC7D,YAAY,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACjC,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,cAAc,EAAE;AAC9C,YAAY,IAAI,CAAC,KAAK,GAAG,wCAAwC,CAAC;AAClE,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE;AACpC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;AACrD,YAAY,IAAI,CAAC,KAAK,GAAG,yBAAyB,CAAC;AACnD,YAAY,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;AAC7D,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AACnC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;AAC5D,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;AACjC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,KAAK,GAAG,yBAAyB,CAAC;AACnD,YAAY,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;AACpC,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,mCAAmC,CAAC,CAAC,EAAE,EAAE;AAC9C,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,YAAY,EAAE;AACrC,YAAY,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACjC,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,cAAc,EAAE;AAC9C,YAAY,IAAI,CAAC,KAAK,GAAG,wCAAwC,CAAC;AAClE,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,iBAAiB,EAAE;AACjD,YAAY,IAAI,CAAC,KAAK,GAAG,iBAAiB,CAAC;AAC3C,YAAY,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACjC,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE;AACpC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;AACrD,YAAY,IAAI,CAAC,KAAK,GAAG,yBAAyB,CAAC;AACnD,YAAY,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;AAC7D,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AACnC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;AAC5D,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;AACjC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,KAAK,GAAG,yBAAyB,CAAC;AACnD,YAAY,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;AACpC,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,wCAAwC,CAAC,CAAC,EAAE,EAAE;AACnD,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,OAAO,EAAE;AAChC,YAAY,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AAC/B,YAAY,IAAI,CAAC,KAAK,GAAG,sCAAsC,CAAC;AAChE,SAAS,MAAM,IAAI,aAAa,CAAC,EAAE,CAAC,EAAE;AACtC,YAAY,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AAC/B,YAAY,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACjC,YAAY,IAAI,CAAC,iBAAiB,CAAC,qCAAqC,CAAC,CAAC;AAC1E,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACjC,YAAY,IAAI,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,CAAC;AAC9D,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,sCAAsC,CAAC,CAAC,EAAE,EAAE;AACjD,QAAQ,IAAI,aAAa,CAAC,EAAE,CAAC,EAAE;AAC/B,YAAY,IAAI,CAAC,kBAAkB,EAAE,CAAC;AACtC,YAAY,IAAI,CAAC,iBAAiB,CAAC,sCAAsC,CAAC,CAAC;AAC3E,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAClC,YAAY,IAAI,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,CAAC;AAC9D,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,sCAAsC,CAAC,CAAC,EAAE,EAAE;AACjD,QAAQ,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;AAC9B,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,IAAI,gBAAgB,CAAC,EAAE,CAAC,CAAC;AAC9D,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnC,SAAS,MAAM,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;AACrC,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;AACpD,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnC,SAAS,MAAM;AACf,YAAY,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;AACrE,gBAAgB,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;AACtC,oBAAoB,IAAI,CAAC,KAAK,GAAG,2BAA2B,CAAC;AAC7D,oBAAoB,OAAO;AAC3B,iBAAiB;AACjB;AACA,gBAAgB,IAAI,EAAE,KAAK,GAAG,CAAC,OAAO,EAAE;AACxC,oBAAoB,IAAI,CAAC,KAAK,GAAG,4BAA4B,CAAC;AAC9D,oBAAoB,OAAO;AAC3B,iBAAiB;AACjB;AACA,gBAAgB,IAAI,EAAE,KAAK,GAAG,CAAC,iBAAiB,EAAE;AAClD,oBAAoB,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC7C,oBAAoB,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;AAC5C,oBAAoB,OAAO;AAC3B,iBAAiB;AACjB,aAAa;AACb;AACA,YAAY,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAClC,YAAY,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACvD,YAAY,IAAI,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,CAAC;AAC9D,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,qCAAqC,CAAC,CAAC,EAAE,EAAE;AAChD,QAAQ,IAAI,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,OAAO,IAAI,EAAE,KAAK,GAAG,CAAC,iBAAiB,EAAE;AACpF,YAAY,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,gCAAgC,EAAE;AAChE,kBAAkB,gCAAgC;AAClD,kBAAkB,yBAAyB,CAAC;AAC5C,YAAY,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;AACpC,SAAS,MAAM,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;AACrC,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1D,YAAY,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;AACpC,SAAS,MAAM,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;AACrC,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnC,YAAY,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;AACpC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,CAAC;AAC9D,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,gCAAgC,CAAC,CAAC,EAAE,EAAE;AAC3C,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,YAAY,EAAE;AACrC,YAAY,IAAI,CAAC,KAAK,GAAG,qCAAqC,CAAC;AAC/D,YAAY,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACjC,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,cAAc,EAAE;AAC9C,YAAY,IAAI,CAAC,KAAK,GAAG,+CAA+C,CAAC;AACzE,YAAY,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACjC,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE;AACpC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;AACrD,YAAY,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;AAC7D,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AACnC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;AAC5D,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;AACjC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;AACpC,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,qCAAqC,CAAC,CAAC,EAAE,EAAE;AAChD,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,YAAY,EAAE;AACrC,YAAY,IAAI,CAAC,KAAK,GAAG,0CAA0C,CAAC;AACpE,YAAY,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACjC,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,cAAc,EAAE;AAC9C,YAAY,IAAI,CAAC,KAAK,GAAG,+CAA+C,CAAC;AACzE,YAAY,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACjC,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE;AACpC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;AACrD,YAAY,IAAI,CAAC,KAAK,GAAG,gCAAgC,CAAC;AAC1D,YAAY,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;AAC7D,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AACnC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;AAC5D,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;AACjC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,KAAK,GAAG,gCAAgC,CAAC;AAC1D,YAAY,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;AACpC,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,0CAA0C,CAAC,CAAC,EAAE,EAAE;AACrD,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,YAAY,EAAE;AACrC,YAAY,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACjC,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,cAAc,EAAE;AAC9C,YAAY,IAAI,CAAC,KAAK,GAAG,+CAA+C,CAAC;AACzE,YAAY,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACjC,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,iBAAiB,EAAE;AACjD,YAAY,IAAI,CAAC,KAAK,GAAG,iBAAiB,CAAC;AAC3C,YAAY,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACjC,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE;AACpC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;AACrD,YAAY,IAAI,CAAC,KAAK,GAAG,gCAAgC,CAAC;AAC1D,YAAY,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;AAC7D,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AACnC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;AAC5D,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;AACjC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,KAAK,GAAG,gCAAgC,CAAC;AAC1D,YAAY,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;AACpC,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,+CAA+C,CAAC,CAAC,EAAE,EAAE;AAC1D,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,OAAO,EAAE;AAChC,YAAY,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AAC/B,YAAY,IAAI,CAAC,KAAK,GAAG,mCAAmC,CAAC;AAC7D,YAAY,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACjC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,CAAC;AACrE,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,mCAAmC,CAAC,CAAC,EAAE,EAAE;AAC9C,QAAQ,IAAI,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,OAAO,IAAI,EAAE,KAAK,GAAG,CAAC,iBAAiB,EAAE;AACpF,YAAY,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,gCAAgC,EAAE;AAChE,kBAAkB,yBAAyB;AAC3C,kBAAkB,gCAAgC,CAAC;AACnD;AACA,YAAY,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;AACpC,SAAS,MAAM,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;AACrC,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1D,YAAY,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;AACpC,SAAS,MAAM,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;AACrC,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnC,YAAY,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;AACpC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,CAAC;AACrE,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,2BAA2B,CAAC,CAAC,EAAE,EAAE;AACtC,QAAQ,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;AAC9B,YAAY,OAAO;AACnB,SAAS;AACT;AACA,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,OAAO,IAAI,EAAE,KAAK,GAAG,CAAC,iBAAiB,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AAClF,YAAY,IAAI,CAAC,iBAAiB,CAAC,0BAA0B,CAAC,CAAC;AAC/D,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,WAAW,EAAE;AAC3C,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;AACrE,YAAY,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AAClC,YAAY,IAAI,CAAC,KAAK,GAAG,oBAAoB,CAAC;AAC9C,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AACjC,YAAY,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;AACzD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,oBAAoB,CAAC,CAAC,EAAE,EAAE;AAC/B,QAAQ,IAAI,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,OAAO,IAAI,EAAE,KAAK,GAAG,CAAC,iBAAiB,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AACtG,YAAY,IAAI,CAAC,cAAc,CAAC,0BAA0B,CAAC,CAAC;AAC5D,YAAY,IAAI,CAAC,UAAU,EAAE,CAAC;AAC9B,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,WAAW,EAAE;AAC3C,YAAY,IAAI,CAAC,cAAc,CAAC,4BAA4B,CAAC,CAAC;AAC9D,SAAS,MAAM,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;AACrC,YAAY,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,gBAAgB,CAAC,EAAE,CAAC,CAAC;AAC1D,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,cAAc,IAAI,EAAE,KAAK,GAAG,CAAC,UAAU,IAAI,EAAE,KAAK,GAAG,CAAC,cAAc,EAAE;AACpG,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;AAChE,YAAY,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;AAChD,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE;AACpC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;AACrD,YAAY,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,SAAS,CAAC,qBAAqB,CAAC;AACrE,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;AAChD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,0BAA0B,CAAC,CAAC,EAAE,EAAE;AACrC,QAAQ,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;AAC9B,YAAY,OAAO;AACnB,SAAS;AACT;AACA,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,OAAO,EAAE;AAChC,YAAY,IAAI,CAAC,KAAK,GAAG,4BAA4B,CAAC;AACtD,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,WAAW,EAAE;AAC3C,YAAY,IAAI,CAAC,KAAK,GAAG,4BAA4B,CAAC;AACtD,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,iBAAiB,EAAE;AACjD,YAAY,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;AACpC,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AACnC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AACtC,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;AACjC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AACjC,YAAY,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;AACzD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,4BAA4B,CAAC,CAAC,EAAE,EAAE;AACvC,QAAQ,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;AAC9B,YAAY,OAAO;AACnB,SAAS;AACT;AACA,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,cAAc,EAAE;AACvC,YAAY,IAAI,CAAC,KAAK,GAAG,mCAAmC,CAAC;AAC7D,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,UAAU,EAAE;AAC1C,YAAY,IAAI,CAAC,KAAK,GAAG,mCAAmC,CAAC;AAC7D,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,iBAAiB,EAAE;AACjD,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;AACnD,YAAY,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;AACpC,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,iBAAiB,CAAC,8BAA8B,CAAC,CAAC;AACnE,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,mCAAmC,CAAC,CAAC,EAAE,EAAE;AAC9C,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,cAAc,EAAE;AACvC,YAAY,IAAI,CAAC,KAAK,GAAG,kCAAkC,CAAC;AAC5D,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,SAAS,EAAE;AACzC,YAAY,IAAI,CAAC,WAAW,GAAG,mCAAmC,CAAC;AACnE,YAAY,IAAI,CAAC,KAAK,GAAG,yBAAyB,CAAC;AACnD,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE;AACpC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;AACrD,YAAY,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,SAAS,CAAC,qBAAqB,CAAC;AACtE,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AACnC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AACtC,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;AACjC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;AACjD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,mCAAmC,CAAC,CAAC,EAAE,EAAE;AAC9C,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,UAAU,EAAE;AACnC,YAAY,IAAI,CAAC,KAAK,GAAG,kCAAkC,CAAC;AAC5D,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,SAAS,EAAE;AACzC,YAAY,IAAI,CAAC,WAAW,GAAG,mCAAmC,CAAC;AACnE,YAAY,IAAI,CAAC,KAAK,GAAG,yBAAyB,CAAC;AACnD,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE;AACpC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;AACrD,YAAY,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,SAAS,CAAC,qBAAqB,CAAC;AACtE,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AACnC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AACtC,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;AACjC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;AACjD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,8BAA8B,CAAC,CAAC,EAAE,EAAE;AACzC,QAAQ,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;AAC9B,YAAY,IAAI,CAAC,eAAe,CAAC,2BAA2B,CAAC,CAAC;AAC9D,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,SAAS,EAAE;AACzC,YAAY,IAAI,CAAC,WAAW,GAAG,8BAA8B,CAAC;AAC9D,YAAY,IAAI,CAAC,KAAK,GAAG,yBAAyB,CAAC;AACnD,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,iBAAiB,EAAE;AACjD,YAAY,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;AAC7C,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE;AACpC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;AACrD,YAAY,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,SAAS,CAAC,qBAAqB,CAAC;AACtE,SAAS,MAAM;AACf,YAAY,EAAE,KAAK,GAAG,CAAC,cAAc;AACrC,YAAY,EAAE,KAAK,GAAG,CAAC,UAAU;AACjC,YAAY,EAAE,KAAK,GAAG,CAAC,cAAc;AACrC,YAAY,EAAE,KAAK,GAAG,CAAC,WAAW;AAClC,YAAY,EAAE,KAAK,GAAG,CAAC,YAAY;AACnC,UAAU;AACV,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;AACzE,YAAY,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;AACjD,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AACnC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AACtC,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;AACjC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;AACjD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,kCAAkC,CAAC,CAAC,EAAE,EAAE;AAC7C,QAAQ,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;AAC9B,YAAY,IAAI,CAAC,eAAe,CAAC,2BAA2B,CAAC,CAAC;AAC9D,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,OAAO,EAAE;AACvC,YAAY,IAAI,CAAC,eAAe,CAAC,4BAA4B,CAAC,CAAC;AAC/D,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,iBAAiB,EAAE;AACjD,YAAY,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;AAC7C,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AACnC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AACtC,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;AACjC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;AAChE,YAAY,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,CAAC;AAChE,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,4BAA4B,CAAC,CAAC,EAAE,EAAE;AACvC,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,iBAAiB,EAAE;AAC1C,YAAY,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;AACjD,YAAY,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;AACpC,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AACnC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AACtC,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;AACjC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;AACpD,YAAY,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,CAAC;AAChE,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,EAAE;AAC9B,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,iBAAiB,EAAE;AAC1C,YAAY,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;AACpC,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AACnC,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;AACjC,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE;AACpC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;AACrD,YAAY,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,SAAS,CAAC,qBAAqB,CAAC;AACtE,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;AACjD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,6BAA6B,CAAC,CAAC,EAAE,EAAE;AACxC,QAAQ,IAAI,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC,gBAAgB,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE;AACzE,YAAY,IAAI,CAAC,mBAAmB,EAAE,CAAC;AACvC,YAAY,IAAI,CAAC,KAAK,GAAG,mBAAmB,CAAC;AAC7C,SAAS,MAAM,IAAI,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC,cAAc,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE;AAC/E,YAAY,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC;AACvC,SAAS,MAAM,IAAI,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC,kBAAkB,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE;AAClF,YAAY,IAAI,IAAI,CAAC,UAAU,EAAE;AACjC,gBAAgB,IAAI,CAAC,KAAK,GAAG,mBAAmB,CAAC;AACjD,aAAa,MAAM;AACnB,gBAAgB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;AACpD,gBAAgB,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC3C,gBAAgB,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,SAAS,CAAC;AACnD,gBAAgB,IAAI,CAAC,KAAK,GAAG,mBAAmB,CAAC;AACjD,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE;AAC7C,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;AACtD,YAAY,IAAI,CAAC,mBAAmB,EAAE,CAAC;AACvC,YAAY,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;AACxD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,EAAE;AAC9B,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,YAAY,EAAE;AACrC,YAAY,IAAI,CAAC,KAAK,GAAG,wBAAwB,CAAC;AAClD,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,iBAAiB,EAAE;AACjD,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;AACzD,YAAY,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;AACpC,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;AAClD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,wBAAwB,CAAC,CAAC,EAAE,EAAE;AACnC,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,YAAY,EAAE;AACrC,YAAY,IAAI,CAAC,KAAK,GAAG,iBAAiB,CAAC;AAC3C,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,iBAAiB,EAAE;AACjD,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;AACzD,YAAY,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;AACpC,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AACnC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAC1C,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;AACjC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,GAAG,CAAC;AAC1C,YAAY,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;AAClD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,EAAE;AACxB,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,YAAY,EAAE;AACrC,YAAY,IAAI,CAAC,KAAK,GAAG,sBAAsB,CAAC;AAChD,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,cAAc,EAAE;AAC9C,YAAY,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,GAAG,CAAC;AAC1C,YAAY,IAAI,CAAC,KAAK,GAAG,4BAA4B,CAAC;AACtD,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE;AACpC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;AACrD,YAAY,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,SAAS,CAAC,qBAAqB,CAAC;AACtE,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AACnC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAC1C,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;AACjC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;AACjD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,4BAA4B,CAAC,CAAC,EAAE,EAAE;AACvC,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,gBAAgB,EAAE;AACzC,YAAY,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,GAAG,CAAC;AAC1C,YAAY,IAAI,CAAC,KAAK,GAAG,iCAAiC,CAAC;AAC3D,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,cAAc,EAAE;AAC9C,YAAY,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,GAAG,CAAC;AAC1C,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;AAClD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,iCAAiC,CAAC,CAAC,EAAE,EAAE;AAC5C,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,YAAY,EAAE;AACrC,YAAY,IAAI,CAAC,KAAK,GAAG,sCAAsC,CAAC;AAChE,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;AAClD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,sCAAsC,CAAC,CAAC,EAAE,EAAE;AACjD,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,YAAY,EAAE;AACrC,YAAY,IAAI,CAAC,KAAK,GAAG,2CAA2C,CAAC;AACrE,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,CAAC;AAC3D,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,2CAA2C,CAAC,CAAC,EAAE,EAAE;AACtD,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,iBAAiB,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AAC5D,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;AAC3C,SAAS;AACT;AACA,QAAQ,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;AAClD,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,EAAE;AACjC,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,YAAY,EAAE;AACrC,YAAY,IAAI,CAAC,KAAK,GAAG,iBAAiB,CAAC;AAC3C,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AACnC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAC1C,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;AACjC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,GAAG,CAAC;AAC1C,YAAY,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;AAClD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,EAAE;AAC5B,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,iBAAiB,EAAE;AAC1C,YAAY,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;AACpC,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,gBAAgB,EAAE;AAChD,YAAY,IAAI,CAAC,KAAK,GAAG,sBAAsB,CAAC;AAChD,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,YAAY,EAAE;AAC5C,YAAY,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,GAAG,CAAC;AAC1C,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AACnC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAC1C,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;AACjC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,IAAI,CAAC;AAC3C,YAAY,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;AAClD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,EAAE;AACjC,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,YAAY,EAAE;AACrC,YAAY,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,KAAK,CAAC;AAC5C,YAAY,IAAI,CAAC,KAAK,GAAG,sBAAsB,CAAC;AAChD,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,iBAAiB,EAAE;AACjD,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;AACtD,YAAY,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;AACpC,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AACnC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAC1C,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;AACjC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,KAAK,CAAC;AAC5C,YAAY,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;AAClD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,EAAE;AACxB,QAAQ,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;AAC9B,YAAY,IAAI,CAAC,KAAK,GAAG,yBAAyB,CAAC;AACnD,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,iBAAiB,EAAE;AACjD,YAAY,IAAI,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,CAAC;AAC9D,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AACnC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAC1C,YAAY,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;AAC3C,YAAY,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;AACjD,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;AACjC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;AAChE,YAAY,IAAI,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,CAAC;AAC9D,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,yBAAyB,CAAC,CAAC,EAAE,EAAE;AACpC,QAAQ,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;AAC9B,YAAY,OAAO;AACnB,SAAS;AACT;AACA,QAAQ,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;AAC9B,YAAY,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3D,YAAY,IAAI,CAAC,KAAK,GAAG,kBAAkB,CAAC;AAC5C,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE;AACpC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;AACrD,YAAY,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;AACtE,YAAY,IAAI,CAAC,KAAK,GAAG,kBAAkB,CAAC;AAC5C,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,iBAAiB,EAAE;AACjD,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;AAChD,YAAY,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;AAC3C,YAAY,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;AACjD,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,YAAY,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;AACpC,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AACnC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAC1C,YAAY,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;AAC3C,YAAY,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;AACjD,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;AACjC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AACjD,YAAY,IAAI,CAAC,KAAK,GAAG,kBAAkB,CAAC;AAC5C,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,EAAE;AAC7B,QAAQ,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;AAC9B,YAAY,IAAI,CAAC,KAAK,GAAG,wBAAwB,CAAC;AAClD,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,iBAAiB,EAAE;AACjD,YAAY,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;AACpC,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,SAAS,MAAM,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;AACrC,YAAY,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,gBAAgB,CAAC,EAAE,CAAC,CAAC;AAC3D,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE;AACpC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;AACrD,YAAY,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,SAAS,CAAC,qBAAqB,CAAC;AACtE,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AACnC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAC1C,YAAY,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;AACjD,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;AACjC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;AACjD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,wBAAwB,CAAC,CAAC,EAAE,EAAE;AACnC,QAAQ,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;AAC9B,YAAY,OAAO;AACnB,SAAS;AACT;AACA,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,iBAAiB,EAAE;AAC1C,YAAY,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;AACpC,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AACnC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAC1C,YAAY,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;AACjD,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;AACjC,SAAS,MAAM,IAAI,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC,aAAa,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE;AAC9E,YAAY,IAAI,CAAC,KAAK,GAAG,kCAAkC,CAAC;AAC5D,SAAS,MAAM,IAAI,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC,aAAa,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE;AAC9E,YAAY,IAAI,CAAC,KAAK,GAAG,kCAAkC,CAAC;AAC5D,SAAS;AACT;AACA;AACA,aAAa,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE;AAC7C,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;AACtE,YAAY,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;AACjD,YAAY,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;AACxD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,kCAAkC,CAAC,CAAC,EAAE,EAAE;AAC7C,QAAQ,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;AAC9B,YAAY,IAAI,CAAC,KAAK,GAAG,sCAAsC,CAAC;AAChE,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,cAAc,EAAE;AAC9C,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;AACxE,YAAY,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,EAAE,CAAC;AAC5C,YAAY,IAAI,CAAC,KAAK,GAAG,6CAA6C,CAAC;AACvE,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,UAAU,EAAE;AAC1C,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;AACxE,YAAY,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,EAAE,CAAC;AAC5C,YAAY,IAAI,CAAC,KAAK,GAAG,6CAA6C,CAAC;AACvE,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,iBAAiB,EAAE;AACjD,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;AAC5D,YAAY,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;AACjD,YAAY,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;AACpC,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AACnC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAC1C,YAAY,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;AACjD,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;AACjC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;AACvE,YAAY,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;AACjD,YAAY,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;AACxD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,sCAAsC,CAAC,CAAC,EAAE,EAAE;AACjD,QAAQ,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;AAC9B,YAAY,OAAO;AACnB,SAAS;AACT;AACA,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,cAAc,EAAE;AACvC,YAAY,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,EAAE,CAAC;AAC5C,YAAY,IAAI,CAAC,KAAK,GAAG,6CAA6C,CAAC;AACvE,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,UAAU,EAAE;AAC1C,YAAY,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,EAAE,CAAC;AAC5C,YAAY,IAAI,CAAC,KAAK,GAAG,6CAA6C,CAAC;AACvE,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,iBAAiB,EAAE;AACjD,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;AAC5D,YAAY,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;AACjD,YAAY,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;AACpC,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AACnC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAC1C,YAAY,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;AACjD,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;AACjC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;AACvE,YAAY,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;AACjD,YAAY,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;AACxD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,6CAA6C,CAAC,CAAC,EAAE,EAAE;AACxD,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,cAAc,EAAE;AACvC,YAAY,IAAI,CAAC,KAAK,GAAG,qCAAqC,CAAC;AAC/D,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE;AACpC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;AACrD,YAAY,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,SAAS,CAAC,qBAAqB,CAAC;AAC1E,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,iBAAiB,EAAE;AACjD,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;AAC3D,YAAY,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;AACjD,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,YAAY,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;AACpC,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AACnC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAC1C,YAAY,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;AACjD,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;AACjC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;AACrD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,6CAA6C,CAAC,CAAC,EAAE,EAAE;AACxD,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,UAAU,EAAE;AACnC,YAAY,IAAI,CAAC,KAAK,GAAG,qCAAqC,CAAC;AAC/D,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE;AACpC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;AACrD,YAAY,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,SAAS,CAAC,qBAAqB,CAAC;AAC1E,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,iBAAiB,EAAE;AACjD,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;AAC3D,YAAY,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;AACjD,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,YAAY,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;AACpC,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AACnC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAC1C,YAAY,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;AACjD,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;AACjC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;AACrD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,qCAAqC,CAAC,CAAC,EAAE,EAAE;AAChD,QAAQ,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;AAC9B,YAAY,IAAI,CAAC,KAAK,GAAG,mDAAmD,CAAC;AAC7E,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,iBAAiB,EAAE;AACjD,YAAY,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;AACpC,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,cAAc,EAAE;AAC9C,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;AACvF,YAAY,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,EAAE,CAAC;AAC5C,YAAY,IAAI,CAAC,KAAK,GAAG,6CAA6C,CAAC;AACvE,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,UAAU,EAAE;AAC1C,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;AACvF,YAAY,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,EAAE,CAAC;AAC5C,YAAY,IAAI,CAAC,KAAK,GAAG,6CAA6C,CAAC;AACvE,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AACnC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAC1C,YAAY,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;AACjD,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;AACjC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;AACvE,YAAY,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;AACjD,YAAY,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;AACxD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,mDAAmD,CAAC,CAAC,EAAE,EAAE;AAC9D,QAAQ,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;AAC9B,YAAY,OAAO;AACnB,SAAS;AACT;AACA,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,iBAAiB,EAAE;AAC1C,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,YAAY,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;AACpC,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,cAAc,EAAE;AAC9C,YAAY,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,EAAE,CAAC;AAC5C,YAAY,IAAI,CAAC,KAAK,GAAG,6CAA6C,CAAC;AACvE,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,UAAU,EAAE;AAC1C,YAAY,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,EAAE,CAAC;AAC5C,YAAY,IAAI,CAAC,KAAK,GAAG,6CAA6C,CAAC;AACvE,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AACnC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAC1C,YAAY,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;AACjD,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;AACjC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;AACvE,YAAY,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;AACjD,YAAY,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;AACxD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,kCAAkC,CAAC,CAAC,EAAE,EAAE;AAC7C,QAAQ,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;AAC9B,YAAY,IAAI,CAAC,KAAK,GAAG,sCAAsC,CAAC;AAChE,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,cAAc,EAAE;AAC9C,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;AACxE,YAAY,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,EAAE,CAAC;AAC5C,YAAY,IAAI,CAAC,KAAK,GAAG,6CAA6C,CAAC;AACvE,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,UAAU,EAAE;AAC1C,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;AACxE,YAAY,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,EAAE,CAAC;AAC5C,YAAY,IAAI,CAAC,KAAK,GAAG,6CAA6C,CAAC;AACvE,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,iBAAiB,EAAE;AACjD,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;AAC5D,YAAY,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;AACjD,YAAY,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;AACpC,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AACnC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAC1C,YAAY,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;AACjD,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;AACjC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;AACvE,YAAY,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;AACjD,YAAY,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;AACxD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,sCAAsC,CAAC,CAAC,EAAE,EAAE;AACjD,QAAQ,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;AAC9B,YAAY,OAAO;AACnB,SAAS;AACT;AACA,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,cAAc,EAAE;AACvC,YAAY,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,EAAE,CAAC;AAC5C,YAAY,IAAI,CAAC,KAAK,GAAG,6CAA6C,CAAC;AACvE,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,UAAU,EAAE;AAC1C,YAAY,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,EAAE,CAAC;AAC5C,YAAY,IAAI,CAAC,KAAK,GAAG,6CAA6C,CAAC;AACvE,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,iBAAiB,EAAE;AACjD,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;AAC5D,YAAY,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;AACjD,YAAY,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;AACpC,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AACnC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAC1C,YAAY,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;AACjD,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;AACjC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;AACvE,YAAY,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;AACjD,YAAY,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;AACxD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,6CAA6C,CAAC,CAAC,EAAE,EAAE;AACxD,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,cAAc,EAAE;AACvC,YAAY,IAAI,CAAC,KAAK,GAAG,qCAAqC,CAAC;AAC/D,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE;AACpC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;AACrD,YAAY,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,SAAS,CAAC,qBAAqB,CAAC;AAC1E,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,iBAAiB,EAAE;AACjD,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;AAC3D,YAAY,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;AACjD,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,YAAY,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;AACpC,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AACnC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAC1C,YAAY,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;AACjD,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;AACjC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;AACrD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,6CAA6C,CAAC,CAAC,EAAE,EAAE;AACxD,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,UAAU,EAAE;AACnC,YAAY,IAAI,CAAC,KAAK,GAAG,qCAAqC,CAAC;AAC/D,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE;AACpC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;AACrD,YAAY,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,SAAS,CAAC,qBAAqB,CAAC;AAC1E,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,iBAAiB,EAAE;AACjD,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;AAC3D,YAAY,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;AACjD,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,YAAY,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;AACpC,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AACnC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAC1C,YAAY,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;AACjD,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;AACjC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;AACrD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,qCAAqC,CAAC,CAAC,EAAE,EAAE;AAChD,QAAQ,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;AAC9B,YAAY,OAAO;AACnB,SAAS;AACT;AACA,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,iBAAiB,EAAE;AAC1C,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,YAAY,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;AACpC,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AACnC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAC1C,YAAY,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;AACjD,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;AACjC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;AAC7E,YAAY,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;AACxD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,EAAE;AAC9B,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,iBAAiB,EAAE;AAC1C,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,YAAY,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;AACpC,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE;AACpC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;AACrD,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AACnC,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;AACjC,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,EAAE;AAC9B,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,oBAAoB,EAAE;AAC7C,YAAY,IAAI,CAAC,KAAK,GAAG,2BAA2B,CAAC;AACrD,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE;AACnC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AACxC,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;AACjC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;AACpC,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,2BAA2B,CAAC,CAAC,EAAE,EAAE;AACtC,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,oBAAoB,EAAE;AAC7C,YAAY,IAAI,CAAC,KAAK,GAAG,uBAAuB,CAAC;AACjD,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACjC,YAAY,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;AACxD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,uBAAuB,CAAC,CAAC,EAAE,EAAE;AAClC,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,iBAAiB,EAAE;AAC1C,YAAY,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;AACpC,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,oBAAoB,EAAE;AACpD,YAAY,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACjC,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAClC,YAAY,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;AACxD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,yBAAyB,CAAC,CAAC,EAAE,EAAE;AACpC,QAAQ,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACxC;AACA,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,WAAW,EAAE;AACpC,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnC,YAAY,IAAI,CAAC,KAAK,GAAG,iCAAiC,CAAC;AAC3D,SAAS,MAAM,IAAI,mBAAmB,CAAC,EAAE,CAAC,EAAE;AAC5C,YAAY,IAAI,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,CAAC;AACpE,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,4CAA4C,EAAE,CAAC;AAChE,YAAY,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACrD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,+BAA+B,CAAC,CAAC,EAAE,EAAE;AAC1C,QAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,6BAA6B,CAAC,EAAE,CAAC,CAAC;AACnE;AACA;AACA;AACA,QAAQ,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAE;AACvC,YAAY,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC5C,SAAS,MAAM,IAAI,WAAW,EAAE;AAChC,YAAY,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC;AAC5F;AACA,YAAY,IAAI,CAAC,IAAI,CAAC,mCAAmC,CAAC,aAAa,CAAC,EAAE;AAC1E,gBAAgB,IAAI,CAAC,aAAa,EAAE;AACpC,oBAAoB,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;AAC5F,iBAAiB;AACjB;AACA,gBAAgB,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;AAC5C,aAAa;AACb;AACA,YAAY,IAAI,CAAC,4CAA4C,EAAE,CAAC;AAChE,YAAY,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;AAC1C,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,4CAA4C,EAAE,CAAC;AAChE,YAAY,IAAI,CAAC,KAAK,GAAG,yBAAyB,CAAC;AACnD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,yBAAyB,CAAC,CAAC,EAAE,EAAE;AACpC,QAAQ,IAAI,mBAAmB,CAAC,EAAE,CAAC,EAAE;AACrC,YAAY,IAAI,IAAI,CAAC,gCAAgC,EAAE,EAAE;AACzD,gBAAgB,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;AACrD,aAAa,MAAM;AACnB,gBAAgB,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;AACxC,aAAa;AACb,SAAS,MAAM;AACf,YAAY,IAAI,EAAE,KAAK,GAAG,CAAC,SAAS,EAAE;AACtC,gBAAgB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;AAChE,aAAa;AACb;AACA,YAAY,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACrD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,iCAAiC,CAAC,CAAC,EAAE,EAAE;AAC5C,QAAQ,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AAC7B;AACA,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,aAAa,IAAI,EAAE,KAAK,GAAG,CAAC,eAAe,EAAE;AACpE,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnC,YAAY,IAAI,CAAC,KAAK,GAAG,2CAA2C,CAAC;AACrE,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,iBAAiB,CAAC,uCAAuC,CAAC,CAAC;AAC5E,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,2CAA2C,CAAC,CAAC,EAAE,EAAE;AACtD,QAAQ,IAAI,eAAe,CAAC,EAAE,CAAC,EAAE;AACjC,YAAY,IAAI,CAAC,iBAAiB,CAAC,qCAAqC,CAAC,CAAC;AAC1E,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;AACxE,YAAY,IAAI,CAAC,4CAA4C,EAAE,CAAC;AAChE,YAAY,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACrD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,uCAAuC,CAAC,CAAC,EAAE,EAAE;AAClD,QAAQ,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;AAC9B,YAAY,IAAI,CAAC,iBAAiB,CAAC,iCAAiC,CAAC,CAAC;AACtE,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;AACxE,YAAY,IAAI,CAAC,4CAA4C,EAAE,CAAC;AAChE,YAAY,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACrD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,qCAAqC,CAAC,CAAC,EAAE,EAAE;AAChD,QAAQ,IAAI,oBAAoB,CAAC,EAAE,CAAC,EAAE;AACtC,YAAY,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACjE,SAAS,MAAM,IAAI,oBAAoB,CAAC,EAAE,CAAC,EAAE;AAC7C,YAAY,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACjE,SAAS,MAAM,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;AACrC,YAAY,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACjE,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,SAAS,EAAE;AACzC,YAAY,IAAI,CAAC,KAAK,GAAG,qCAAqC,CAAC;AAC/D,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;AACrE,YAAY,IAAI,CAAC,iBAAiB,CAAC,qCAAqC,CAAC,CAAC;AAC1E,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,iCAAiC,CAAC,CAAC,EAAE,EAAE;AAC5C,QAAQ,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;AAC9B,YAAY,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACjE,SAAS,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,SAAS,EAAE;AACzC,YAAY,IAAI,CAAC,KAAK,GAAG,qCAAqC,CAAC;AAC/D,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;AACrE,YAAY,IAAI,CAAC,iBAAiB,CAAC,qCAAqC,CAAC,CAAC;AAC1E,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,qCAAqC,CAAC,GAAG;AAC9C,QAAQ,IAAI,IAAI,CAAC,WAAW,KAAK,GAAG,CAAC,IAAI,EAAE;AAC3C,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;AACpD,YAAY,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,qBAAqB,CAAC;AACzD,SAAS,MAAM,IAAI,IAAI,CAAC,WAAW,GAAG,QAAQ,EAAE;AAChD,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;AACnE,YAAY,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,qBAAqB,CAAC;AACzD,SAAS,MAAM,IAAI,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;AAC5D,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;AACzD,YAAY,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,qBAAqB,CAAC;AACzD,SAAS,MAAM,IAAI,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;AACrE,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;AAC5D,SAAS,MAAM,IAAI,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,WAAW,KAAK,GAAG,CAAC,eAAe,EAAE;AAC/G,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;AACvD;AACA,YAAY,MAAM,WAAW,GAAG,kCAAkC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACrF;AACA,YAAY,IAAI,WAAW,EAAE;AAC7B,gBAAgB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AAC/C,aAAa;AACb,SAAS;AACT;AACA,QAAQ,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC3C;AACA,QAAQ,IAAI,CAAC,4CAA4C,EAAE,CAAC;AAC5D,QAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACjD,KAAK;AACL,CAAC,CAAC;AACF;AACA;AACA,WAAW,CAAC,eAAe,GAAG,iBAAiB,CAAC;AAChD,WAAW,CAAC,oBAAoB,GAAG,sBAAsB,CAAC;AAC1D,WAAW,CAAC,0BAA0B,GAAG,4BAA4B,CAAC;AACtE,WAAW,CAAC,eAAe,GAAG,iBAAiB,CAAC;AAChD,WAAW,CAAC,aAAa,GAAG,eAAe,CAAC;AAC5C,WAAW,CAAC,aAAa,GAAG,eAAe,CAAC;AAC5C,WAAW,CAAC,aAAa,GAAG,eAAe,CAAC;AAC5C,WAAW,CAAC,SAAS,GAAG,WAAW,CAAC;AACpC,WAAW,CAAC,iBAAiB,GAAG,mBAAmB,CAAC;AACpD;AACA;AACA,WAAW,CAAC,IAAI,GAAG;AACnB,IAAI,IAAI,EAAE,UAAU;AACpB,IAAI,MAAM,EAAE,YAAY;AACxB,IAAI,OAAO,EAAE,aAAa;AAC1B,IAAI,WAAW,EAAE,iBAAiB;AAClC,IAAI,SAAS,EAAE,eAAe;AAC9B,CAAC,CAAC;AACF;AACA;AACA,WAAW,CAAC,YAAY,GAAG,SAAS,KAAK,EAAE,QAAQ,EAAE;AACrD,IAAI,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACtD,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC9C,YAAY,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACxC,SAAS;AACT,KAAK;AACL;AACA,IAAI,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AACF;AACA,IAAI,SAAS,GAAG,WAAW,CAAC;AAC5B;AACA,IAAI,IAAI,GAAG,EAAE,CAAC;AACd;AACA,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,GAAG;AAChC,IAAI,IAAI,EAAE,8BAA8B;AACxC,IAAI,MAAM,EAAE,oCAAoC;AAChD,IAAI,GAAG,EAAE,4BAA4B;AACrC,IAAI,KAAK,EAAE,8BAA8B;AACzC,IAAI,GAAG,EAAE,sCAAsC;AAC/C,IAAI,KAAK,EAAE,+BAA+B;AAC1C,CAAC,CAAC,CAAC;AACH;AACA,IAAI,CAAC,KAAK,GAAG;AACb,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,QAAQ;AACpB,IAAI,QAAQ,EAAE,UAAU;AACxB,IAAI,MAAM,EAAE,QAAQ;AACpB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,KAAK,EAAE,OAAO;AAClB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,IAAI,EAAE,MAAM;AAChB,CAAC,CAAC;AACF;AACA,IAAI,CAAC,aAAa,GAAG;AACrB,IAAI,SAAS,EAAE,WAAW;AAC1B,IAAI,MAAM,EAAE,QAAQ;AACpB,IAAI,cAAc,EAAE,gBAAgB;AACpC,CAAC,CAAC;AACF;AACA,MAAM,GAAG,IAAI,IAAI,CAAC,SAAS,GAAG;AAC9B,IAAI,CAAC,EAAE,GAAG;AACV,IAAI,OAAO,EAAE,SAAS;AACtB,IAAI,cAAc,EAAE,gBAAgB;AACpC,IAAI,MAAM,EAAE,QAAQ;AACpB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,SAAS;AACtB,IAAI,KAAK,EAAE,OAAO;AAClB;AACA,IAAI,CAAC,EAAE,GAAG;AACV,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,QAAQ,EAAE,UAAU;AACxB,IAAI,OAAO,EAAE,SAAS;AACtB,IAAI,GAAG,EAAE,KAAK;AACd,IAAI,UAAU,EAAE,YAAY;AAC5B,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,MAAM,EAAE,QAAQ;AACpB;AACA,IAAI,OAAO,EAAE,SAAS;AACtB,IAAI,MAAM,EAAE,QAAQ;AACpB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,GAAG,EAAE,KAAK;AACd,IAAI,QAAQ,EAAE,UAAU;AACxB;AACA,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,SAAS;AACtB,IAAI,MAAM,EAAE,QAAQ;AACpB,IAAI,GAAG,EAAE,KAAK;AACd,IAAI,GAAG,EAAE,KAAK;AACd,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,EAAE,EAAE,IAAI;AACZ;AACA,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,KAAK,EAAE,OAAO;AAClB;AACA,IAAI,QAAQ,EAAE,UAAU;AACxB,IAAI,UAAU,EAAE,YAAY;AAC5B,IAAI,MAAM,EAAE,QAAQ;AACpB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,QAAQ;AACpB,IAAI,cAAc,EAAE,eAAe;AACnC,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,KAAK,EAAE,OAAO;AAClB,IAAI,QAAQ,EAAE,UAAU;AACxB;AACA,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,QAAQ;AACpB,IAAI,MAAM,EAAE,QAAQ;AACpB,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,IAAI,EAAE,MAAM;AAChB;AACA,IAAI,CAAC,EAAE,GAAG;AACV,IAAI,GAAG,EAAE,KAAK;AACd,IAAI,KAAK,EAAE,OAAO;AAClB,IAAI,KAAK,EAAE,OAAO;AAClB,IAAI,MAAM,EAAE,QAAQ;AACpB;AACA,IAAI,MAAM,EAAE,QAAQ;AACpB;AACA,IAAI,KAAK,EAAE,OAAO;AAClB,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,SAAS;AACtB;AACA,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,UAAU,EAAE,YAAY;AAC5B,IAAI,OAAO,EAAE,SAAS;AACtB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,QAAQ;AACpB,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,KAAK,EAAE,OAAO;AAClB;AACA,IAAI,GAAG,EAAE,KAAK;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,QAAQ,EAAE,UAAU;AACxB,IAAI,OAAO,EAAE,SAAS;AACtB,IAAI,QAAQ,EAAE,UAAU;AACxB;AACA,IAAI,MAAM,EAAE,QAAQ;AACpB,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,QAAQ,EAAE,UAAU;AACxB,IAAI,MAAM,EAAE,QAAQ;AACpB;AACA,IAAI,CAAC,EAAE,GAAG;AACV,IAAI,KAAK,EAAE,OAAO;AAClB,IAAI,SAAS,EAAE,WAAW;AAC1B,IAAI,GAAG,EAAE,KAAK;AACd;AACA,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,GAAG,EAAE,KAAK;AACd,IAAI,IAAI,EAAE,MAAM;AAChB;AACA,IAAI,CAAC,EAAE,GAAG;AACV,IAAI,MAAM,EAAE,QAAQ;AACpB,IAAI,OAAO,EAAE,SAAS;AACtB,IAAI,MAAM,EAAE,QAAQ;AACpB,IAAI,MAAM,EAAE,QAAQ;AACpB,IAAI,KAAK,EAAE,OAAO;AAClB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,QAAQ;AACpB,IAAI,MAAM,EAAE,QAAQ;AACpB,IAAI,KAAK,EAAE,OAAO;AAClB,IAAI,GAAG,EAAE,KAAK;AACd,IAAI,OAAO,EAAE,SAAS;AACtB,IAAI,GAAG,EAAE,KAAK;AACd;AACA,IAAI,KAAK,EAAE,OAAO;AAClB,IAAI,KAAK,EAAE,OAAO;AAClB,IAAI,QAAQ,EAAE,UAAU;AACxB,IAAI,QAAQ,EAAE,UAAU;AACxB,IAAI,KAAK,EAAE,OAAO;AAClB,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,KAAK,EAAE,OAAO;AAClB,IAAI,KAAK,EAAE,OAAO;AAClB,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,KAAK,EAAE,OAAO;AAClB,IAAI,EAAE,EAAE,IAAI;AACZ;AACA,IAAI,CAAC,EAAE,GAAG;AACV,IAAI,EAAE,EAAE,IAAI;AACZ;AACA,IAAI,GAAG,EAAE,KAAK;AACd;AACA,IAAI,GAAG,EAAE,KAAK;AACd;AACA,IAAI,GAAG,EAAE,KAAK;AACd;AACA,IAAI,GAAG,EAAE,KAAK;AACd,CAAC,CAAC,CAAC;AACH;AACA,IAAI,CAAC,gBAAgB,GAAG;AACxB,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG;AACjB,QAAQ,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI;AAC3B,QAAQ,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI;AAC1B,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI;AACxB,QAAQ,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI;AAC3B,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI;AACzB,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI;AACxB,QAAQ,CAAC,GAAG,CAAC,QAAQ,GAAG,IAAI;AAC5B,QAAQ,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI;AAC3B,QAAQ,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI;AAC9B,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI;AACxB,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;AACtB,QAAQ,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI;AAC1B,QAAQ,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI;AAC3B,QAAQ,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI;AAC1B,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI;AACvB,QAAQ,CAAC,GAAG,CAAC,QAAQ,GAAG,IAAI;AAC5B,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;AACtB,QAAQ,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI;AAC3B,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI;AACvB,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI;AACvB,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;AACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;AACtB,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI;AACzB,QAAQ,CAAC,GAAG,CAAC,QAAQ,GAAG,IAAI;AAC5B,QAAQ,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI;AAC9B,QAAQ,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI;AAC1B,QAAQ,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI;AAC1B,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI;AACxB,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI;AACzB,QAAQ,CAAC,GAAG,CAAC,QAAQ,GAAG,IAAI;AAC5B,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;AACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;AACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;AACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;AACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;AACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;AACtB,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI;AACxB,QAAQ,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI;AAC1B,QAAQ,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI;AAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;AACtB,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI;AACxB,QAAQ,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI;AAC1B,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI;AACvB,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI;AACzB,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;AACtB,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI;AACxB,QAAQ,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI;AAC3B,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI;AACxB,QAAQ,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI;AAC3B,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI;AACxB,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI;AACxB,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI;AACvB,QAAQ,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI;AAC3B,QAAQ,CAAC,GAAG,CAAC,QAAQ,GAAG,IAAI;AAC5B,QAAQ,CAAC,GAAG,CAAC,QAAQ,GAAG,IAAI;AAC5B,QAAQ,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI;AAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;AACtB,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI;AACrB,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI;AACzB,QAAQ,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI;AAC7B,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI;AACvB,QAAQ,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI;AAC1B,QAAQ,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI;AAC3B,QAAQ,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI;AAC1B,QAAQ,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI;AAC1B,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI;AACzB,QAAQ,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI;AAC3B,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI;AACzB,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI;AACzB,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;AACtB,QAAQ,CAAC,GAAG,CAAC,QAAQ,GAAG,IAAI;AAC5B,QAAQ,CAAC,GAAG,CAAC,QAAQ,GAAG,IAAI;AAC5B,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI;AACzB,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;AACtB,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI;AACzB,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI;AACzB,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;AACtB,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI;AACzB,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;AACtB,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI;AACvB,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI;AACvB,KAAK;AACL,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG;AACnB,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;AACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;AACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;AACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;AACtB,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI;AACzB,QAAQ,CAAC,GAAG,CAAC,cAAc,GAAG,IAAI;AAClC,KAAK;AACL,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG;AAChB,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI;AACzB,QAAQ,CAAC,GAAG,CAAC,cAAc,GAAG,IAAI;AAClC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI;AACxB,KAAK;AACL,CAAC,CAAC;AACF;AACA,MAAM,MAAM,GAAG,IAAI,CAAC;AACpB;AACA;AACA,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC;AAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC;AAC/B;AACA;AACA;AACA;AACA;AACA,SAAS,uBAAuB,CAAC,EAAE,EAAE;AACrC,IAAI,QAAQ,EAAE,CAAC,MAAM;AACrB,QAAQ,KAAK,CAAC;AACd,YAAY,OAAO,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;AAChC;AACA,QAAQ,KAAK,CAAC;AACd,YAAY,OAAO,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC;AACtH;AACA,QAAQ,KAAK,CAAC;AACd,YAAY,OAAO,EAAE,KAAK,GAAG,CAAC,GAAG,CAAC;AAClC;AACA,QAAQ,KAAK,CAAC;AACd,YAAY,OAAO,EAAE,KAAK,GAAG,CAAC,MAAM,CAAC;AACrC;AACA,QAAQ,KAAK,CAAC;AACd,YAAY,OAAO,EAAE,KAAK,GAAG,CAAC,QAAQ,CAAC;AACvC,KAAK;AACL;AACA,IAAI,OAAO,KAAK,CAAC;AACjB,CAAC;AACD;AACA,SAAS,iCAAiC,CAAC,EAAE,EAAE;AAC/C,IAAI,QAAQ,EAAE,CAAC,MAAM;AACrB,QAAQ,KAAK,CAAC;AACd,YAAY,OAAO,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;AAChC;AACA,QAAQ,KAAK,CAAC;AACd,YAAY;AACZ,gBAAgB,EAAE,KAAK,GAAG,CAAC,EAAE;AAC7B,gBAAgB,EAAE,KAAK,GAAG,CAAC,EAAE;AAC7B,gBAAgB,EAAE,KAAK,GAAG,CAAC,EAAE;AAC7B,gBAAgB,EAAE,KAAK,GAAG,CAAC,EAAE;AAC7B,gBAAgB,EAAE,KAAK,GAAG,CAAC,EAAE;AAC7B,gBAAgB,EAAE,KAAK,GAAG,CAAC,EAAE;AAC7B,gBAAgB,EAAE,KAAK,GAAG,CAAC,EAAE;AAC7B,gBAAgB,EAAE,KAAK,GAAG,CAAC,EAAE;AAC7B,gBAAgB,EAAE,KAAK,GAAG,CAAC,EAAE;AAC7B,cAAc;AACd;AACA,QAAQ,KAAK,CAAC;AACd,YAAY,OAAO,EAAE,KAAK,GAAG,CAAC,GAAG,CAAC;AAClC;AACA,QAAQ,KAAK,CAAC;AACd,YAAY,OAAO,EAAE,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,GAAG,CAAC,KAAK,CAAC;AAC5E;AACA,QAAQ,KAAK,CAAC;AACd,YAAY,OAAO,EAAE,KAAK,GAAG,CAAC,MAAM,CAAC;AACrC;AACA,QAAQ,KAAK,CAAC;AACd,YAAY,OAAO,EAAE,KAAK,GAAG,CAAC,OAAO,CAAC;AACtC;AACA,QAAQ,KAAK,CAAC;AACd,YAAY,OAAO,EAAE,KAAK,GAAG,CAAC,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,QAAQ,CAAC;AAC9D,KAAK;AACL;AACA,IAAI,OAAO,KAAK,CAAC;AACjB,CAAC;AACD;AACA,SAAS,gBAAgB,CAAC,EAAE,EAAE,EAAE,EAAE;AAClC,IAAI,QAAQ,EAAE,CAAC,MAAM;AACrB,QAAQ,KAAK,CAAC;AACd,YAAY,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,EAAE;AAChD,gBAAgB,OAAO,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC;AACxC,aAAa,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,EAAE;AACzF,gBAAgB,OAAO,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC;AAC1C,aAAa;AACb;AACA,YAAY,MAAM;AAClB;AACA,QAAQ,KAAK,CAAC;AACd,YAAY,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE;AACjC,gBAAgB,OAAO,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC;AACxC,aAAa,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE;AACxC,gBAAgB,OAAO,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC;AACvC,aAAa;AACb;AACA,YAAY,MAAM;AAClB;AACA,QAAQ,KAAK,CAAC;AACd,YAAY,IAAI,EAAE,KAAK,GAAG,CAAC,KAAK,EAAE;AAClC,gBAAgB,OAAO,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC;AACxC,aAAa,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,KAAK,EAAE;AACzC,gBAAgB,OAAO,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC;AAC1C,aAAa,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,KAAK,EAAE;AACzC,gBAAgB,OAAO,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC;AACvC,aAAa;AACb;AACA,YAAY,MAAM;AAClB;AACA,QAAQ,KAAK,CAAC;AACd,YAAY,OAAO,CAAC,EAAE,KAAK,GAAG,CAAC,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,MAAM,KAAK,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC;AAChF;AACA,QAAQ,KAAK,CAAC;AACd,YAAY,OAAO,CAAC,EAAE,KAAK,GAAG,CAAC,OAAO,IAAI,EAAE,KAAK,GAAG,CAAC,OAAO,KAAK,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC;AAClF;AACA,QAAQ,KAAK,CAAC;AACd,YAAY,OAAO,EAAE,KAAK,GAAG,CAAC,QAAQ,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC;AAC3D;AACA,QAAQ,KAAK,EAAE;AACf,YAAY,OAAO,EAAE,KAAK,GAAG,CAAC,cAAc,IAAI,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC;AAChE;AACA,QAAQ,KAAK,EAAE;AACf,YAAY,OAAO,EAAE,KAAK,GAAG,CAAC,cAAc,IAAI,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC;AACnE,KAAK;AACL;AACA,IAAI,OAAO,KAAK,CAAC;AACjB,CAAC;AACD;AACA;AACA,IAAI,kBAAkB,GAAG,MAAM,gBAAgB,CAAC;AAChD,IAAI,WAAW,CAAC,QAAQ,EAAE,WAAW,EAAE;AACvC,QAAQ,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;AAC3B,QAAQ,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AACxB,QAAQ,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC;AAChC,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AACnC,QAAQ,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;AACvC,QAAQ,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AAC3B,QAAQ,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AACvC,KAAK;AACL;AACA;AACA,IAAI,QAAQ,CAAC,OAAO,EAAE;AACtB,QAAQ,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;AACrB;AACA,QAAQ,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACjD,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;AAC3C,gBAAgB,GAAG,GAAG,CAAC,CAAC;AACxB,gBAAgB,MAAM;AACtB,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK;AACL;AACA;AACA,IAAI,aAAa,GAAG;AACpB,QAAQ,OAAO,IAAI,CAAC,cAAc,KAAK,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC;AACpH,KAAK;AACL;AACA,IAAI,qBAAqB,GAAG;AAC5B,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACjD,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACxF;AACA,QAAQ,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;AAClH,KAAK;AACL;AACA;AACA,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC;AAC9C,QAAQ,IAAI,CAAC,qBAAqB,EAAE,CAAC;AACrC;AACA,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AAClC,YAAY,IAAI,CAAC,SAAS,EAAE,CAAC;AAC7B,SAAS;AACT,KAAK;AACL;AACA,IAAI,GAAG,GAAG;AACV,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;AACxB;AACA,QAAQ,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AACxD,YAAY,IAAI,CAAC,SAAS,EAAE,CAAC;AAC7B,SAAS;AACT;AACA,QAAQ,IAAI,CAAC,qBAAqB,EAAE,CAAC;AACrC,KAAK;AACL;AACA,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,EAAE;AACpC,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAC9C;AACA,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;AACrC;AACA,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAC,QAAQ,EAAE;AACnC,YAAY,IAAI,CAAC,qBAAqB,EAAE,CAAC;AACzC,SAAS;AACT,KAAK;AACL;AACA,IAAI,WAAW,CAAC,gBAAgB,EAAE,UAAU,EAAE;AAC9C,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACjE;AACA,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;AACvD;AACA,QAAQ,IAAI,YAAY,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE;AAC9C,YAAY,IAAI,CAAC,qBAAqB,EAAE,CAAC;AACzC,SAAS;AACT,KAAK;AACL;AACA,IAAI,qBAAqB,CAAC,OAAO,EAAE;AACnC,QAAQ,OAAO,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE;AACnC,YAAY,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC;AAC3C,YAAY,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACtE;AACA,YAAY,IAAI,CAAC,GAAG,EAAE,CAAC;AACvB;AACA,YAAY,IAAI,EAAE,KAAK,OAAO,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,EAAE;AACpD,gBAAgB,MAAM;AACtB,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA,IAAI,qBAAqB,CAAC,OAAO,EAAE;AACnC,QAAQ,OAAO,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE;AACnC,YAAY,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC;AAC/C;AACA,YAAY,IAAI,CAAC,GAAG,EAAE,CAAC;AACvB;AACA,YAAY,IAAI,aAAa,KAAK,OAAO,EAAE;AAC3C,gBAAgB,MAAM;AACtB,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA,IAAI,4BAA4B,GAAG;AACnC,QAAQ,OAAO,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE;AACnC,YAAY,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC;AAC3C,YAAY,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACtE;AACA,YAAY,IAAI,CAAC,GAAG,EAAE,CAAC;AACvB;AACA,YAAY;AACZ,gBAAgB,EAAE,KAAK,GAAG,CAAC,EAAE;AAC7B,gBAAgB,EAAE,KAAK,GAAG,CAAC,EAAE;AAC7B,gBAAgB,EAAE,KAAK,GAAG,CAAC,EAAE;AAC7B,gBAAgB,EAAE,KAAK,GAAG,CAAC,EAAE;AAC7B,gBAAgB,EAAE,KAAK,GAAG,CAAC,EAAE;AAC7B,iBAAiB,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC;AACnD,cAAc;AACd,gBAAgB,MAAM;AACtB,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA,IAAI,uBAAuB,GAAG;AAC9B,QAAQ,OAAO,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE;AACnC,YAAY,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC;AAC3C,YAAY,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACtE;AACA,YAAY,IAAI,CAAC,GAAG,EAAE,CAAC;AACvB;AACA,YAAY,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE;AACtE,gBAAgB,MAAM;AACtB,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA,IAAI,qBAAqB,GAAG;AAC5B;AACA;AACA,QAAQ,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AAC1B,QAAQ,IAAI,CAAC,qBAAqB,EAAE,CAAC;AACrC,KAAK;AACL;AACA,IAAI,uBAAuB,GAAG;AAC9B,QAAQ;AACR,YAAY,CAAC,IAAI,CAAC,cAAc,KAAK,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,cAAc,KAAK,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,cAAc,KAAK,GAAG,CAAC,IAAI;AAC1H,YAAY,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,IAAI;AACxE,UAAU;AACV,YAAY,IAAI,CAAC,GAAG,EAAE,CAAC;AACvB,SAAS;AACT,KAAK;AACL;AACA,IAAI,2BAA2B,GAAG;AAClC,QAAQ;AACR,YAAY,CAAC,IAAI,CAAC,cAAc,KAAK,GAAG,CAAC,KAAK;AAC9C,gBAAgB,IAAI,CAAC,cAAc,KAAK,GAAG,CAAC,KAAK;AACjD,gBAAgB,IAAI,CAAC,cAAc,KAAK,GAAG,CAAC,KAAK;AACjD,gBAAgB,IAAI,CAAC,cAAc,KAAK,GAAG,CAAC,QAAQ;AACpD,gBAAgB,IAAI,CAAC,cAAc,KAAK,GAAG,CAAC,IAAI;AAChD,YAAY,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,IAAI;AACxE,UAAU;AACV,YAAY,IAAI,CAAC,GAAG,EAAE,CAAC;AACvB,SAAS;AACT,KAAK;AACL;AACA,IAAI,0BAA0B,GAAG;AACjC,QAAQ;AACR,YAAY,CAAC,IAAI,CAAC,cAAc,KAAK,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,cAAc,KAAK,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,cAAc,KAAK,GAAG,CAAC,IAAI;AACvH,YAAY,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,IAAI;AACxE,UAAU;AACV,YAAY,IAAI,CAAC,GAAG,EAAE,CAAC;AACvB,SAAS;AACT,KAAK;AACL;AACA,IAAI,MAAM,CAAC,OAAO,EAAE;AACpB,QAAQ,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACjD,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;AAC3C,gBAAgB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxC,gBAAgB,IAAI,CAAC,QAAQ,EAAE,CAAC;AAChC,gBAAgB,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAC7C,gBAAgB,MAAM;AACtB,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA;AACA,IAAI,gCAAgC,GAAG;AACvC;AACA,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtC;AACA,QAAQ,OAAO,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,OAAO,GAAG,IAAI,CAAC;AAC7F,KAAK;AACL;AACA,IAAI,QAAQ,CAAC,OAAO,EAAE;AACtB,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3C,KAAK;AACL;AACA,IAAI,iBAAiB,CAAC,OAAO,EAAE;AAC/B,QAAQ,IAAI,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAChD;AACA,QAAQ,OAAO,EAAE,UAAU,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;AACjE,KAAK;AACL;AACA,IAAI,wBAAwB,GAAG;AAC/B,QAAQ,OAAO,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,KAAK,GAAG,CAAC,IAAI,CAAC;AACvE,KAAK;AACL;AACA;AACA,IAAI,UAAU,CAAC,OAAO,EAAE;AACxB,QAAQ,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACjD,YAAY,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,YAAY,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE;AACA,YAAY,IAAI,EAAE,KAAK,OAAO,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,EAAE;AACpD,gBAAgB,OAAO,IAAI,CAAC;AAC5B,aAAa;AACb;AACA,YAAY,IAAI,gBAAgB,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;AAC1C,gBAAgB,OAAO,KAAK,CAAC;AAC7B,aAAa;AACb,SAAS;AACT;AACA,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK;AACL;AACA,IAAI,wBAAwB,GAAG;AAC/B,QAAQ,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACjD,YAAY,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,YAAY,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE;AACA,YAAY;AACZ,gBAAgB,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE;AACnH,gBAAgB,EAAE,KAAK,IAAI,CAAC,IAAI;AAChC,cAAc;AACd,gBAAgB,OAAO,IAAI,CAAC;AAC5B,aAAa;AACb;AACA,YAAY,IAAI,gBAAgB,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;AAC1C,gBAAgB,OAAO,KAAK,CAAC;AAC7B,aAAa;AACb,SAAS;AACT;AACA,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK;AACL;AACA,IAAI,kBAAkB,CAAC,OAAO,EAAE;AAChC,QAAQ,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACjD,YAAY,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,YAAY,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE;AACA,YAAY,IAAI,EAAE,KAAK,OAAO,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,EAAE;AACpD,gBAAgB,OAAO,IAAI,CAAC;AAC5B,aAAa;AACb;AACA,YAAY,IAAI,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC,IAAI,KAAK,gBAAgB,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;AACpG,gBAAgB,OAAO,KAAK,CAAC;AAC7B,aAAa;AACb,SAAS;AACT;AACA,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK;AACL;AACA,IAAI,gBAAgB,CAAC,OAAO,EAAE;AAC9B,QAAQ,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACjD,YAAY,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,YAAY,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE;AACA,YAAY,IAAI,EAAE,KAAK,OAAO,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,EAAE;AACpD,gBAAgB,OAAO,IAAI,CAAC;AAC5B,aAAa;AACb;AACA,YAAY,IAAI,CAAC,EAAE,KAAK,GAAG,CAAC,MAAM,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,KAAK,gBAAgB,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;AACrF,gBAAgB,OAAO,KAAK,CAAC;AAC7B,aAAa;AACb,SAAS;AACT;AACA,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK;AACL;AACA,IAAI,eAAe,CAAC,OAAO,EAAE;AAC7B,QAAQ,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACjD,YAAY,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,YAAY,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE;AACA,YAAY,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,EAAE;AAClC,gBAAgB,SAAS;AACzB,aAAa;AACb;AACA,YAAY,IAAI,EAAE,KAAK,OAAO,EAAE;AAChC,gBAAgB,OAAO,IAAI,CAAC;AAC5B,aAAa;AACb;AACA,YAAY,IAAI,EAAE,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,GAAG,CAAC,QAAQ,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE;AAC5E,gBAAgB,OAAO,KAAK,CAAC;AAC7B,aAAa;AACb,SAAS;AACT;AACA,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK;AACL;AACA,IAAI,+BAA+B,GAAG;AACtC,QAAQ,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACjD,YAAY,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,YAAY,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE;AACA,YAAY,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,EAAE;AAClC,gBAAgB,SAAS;AACzB,aAAa;AACb;AACA,YAAY,IAAI,EAAE,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,GAAG,CAAC,KAAK,EAAE;AAC1E,gBAAgB,OAAO,IAAI,CAAC;AAC5B,aAAa;AACb;AACA,YAAY,IAAI,EAAE,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE;AACrD,gBAAgB,OAAO,KAAK,CAAC;AAC7B,aAAa;AACb,SAAS;AACT;AACA,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK;AACL;AACA,IAAI,gBAAgB,CAAC,OAAO,EAAE;AAC9B,QAAQ,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACjD,YAAY,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,YAAY,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE;AACA,YAAY,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,EAAE;AAClC,gBAAgB,SAAS;AACzB,aAAa;AACb;AACA,YAAY,IAAI,EAAE,KAAK,OAAO,EAAE;AAChC,gBAAgB,OAAO,IAAI,CAAC;AAC5B,aAAa;AACb;AACA,YAAY,IAAI,EAAE,KAAK,GAAG,CAAC,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,QAAQ,EAAE;AAC1D,gBAAgB,OAAO,KAAK,CAAC;AAC7B,aAAa;AACb,SAAS;AACT;AACA,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK;AACL;AACA;AACA,IAAI,sBAAsB,GAAG;AAC7B,QAAQ,OAAO,uBAAuB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;AAC7D,YAAY,IAAI,CAAC,GAAG,EAAE,CAAC;AACvB,SAAS;AACT,KAAK;AACL;AACA,IAAI,gCAAgC,GAAG;AACvC,QAAQ,OAAO,iCAAiC,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;AACvE,YAAY,IAAI,CAAC,GAAG,EAAE,CAAC;AACvB,SAAS;AACT,KAAK;AACL;AACA,IAAI,mCAAmC,CAAC,gBAAgB,EAAE;AAC1D,QAAQ,OAAO,uBAAuB,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,cAAc,KAAK,gBAAgB,EAAE;AACzG,YAAY,IAAI,CAAC,GAAG,EAAE,CAAC;AACvB,SAAS;AACT,KAAK;AACL,CAAC,CAAC;AACF;AACA,IAAI,gBAAgB,GAAG,kBAAkB,CAAC;AAC1C;AACA;AACA,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAC5B;AACA;AACA,IAAI,uBAAuB,GAAG,MAAM,qBAAqB,CAAC;AAC1D,IAAI,WAAW,CAAC,WAAW,EAAE;AAC7B,QAAQ,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACxB,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AAC1B,QAAQ,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AACvC,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC7B,KAAK;AACL;AACA;AACA;AACA;AACA,IAAI,8BAA8B,CAAC,UAAU,EAAE;AAC/C,QAAQ,MAAM,UAAU,GAAG,EAAE,CAAC;AAC9B;AACA,QAAQ,IAAI,IAAI,CAAC,MAAM,IAAI,iBAAiB,EAAE;AAC9C,YAAY,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;AAClF,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AACtE,YAAY,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;AAChF;AACA,YAAY,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACvD,gBAAgB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC9C;AACA,gBAAgB,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,CAAC,YAAY,EAAE;AACvE,oBAAoB,MAAM;AAC1B,iBAAiB;AACjB;AACA,gBAAgB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;AAC9C,gBAAgB,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAC3E;AACA,gBAAgB,MAAM,WAAW;AACjC,oBAAoB,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,SAAS;AACtE,oBAAoB,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,cAAc;AAChF,oBAAoB,YAAY,CAAC,MAAM,KAAK,aAAa,CAAC;AAC1D;AACA,gBAAgB,IAAI,WAAW,EAAE;AACjC,oBAAoB,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;AACrE,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA,QAAQ,OAAO,UAAU,CAAC,MAAM,GAAG,iBAAiB,GAAG,EAAE,GAAG,UAAU,CAAC;AACvE,KAAK;AACL;AACA,IAAI,uBAAuB,CAAC,UAAU,EAAE;AACxC,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,8BAA8B,CAAC,UAAU,CAAC,CAAC;AAC3E,QAAQ,IAAI,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC;AACxC;AACA,QAAQ,IAAI,OAAO,EAAE;AACrB,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AACrE,YAAY,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;AACjD,YAAY,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACnD;AACA;AACA,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE;AACpD,gBAAgB,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC1C;AACA,gBAAgB,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;AACvD,aAAa;AACb;AACA,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE;AACpD,gBAAgB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE;AAClD,oBAAoB,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACzD;AACA,oBAAoB,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,KAAK,EAAE;AAChE,wBAAwB,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAChD,wBAAwB,OAAO,EAAE,CAAC;AAClC,qBAAqB;AACrB;AACA,oBAAoB,IAAI,UAAU,CAAC,MAAM,GAAG,iBAAiB,EAAE;AAC/D,wBAAwB,OAAO;AAC/B,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,YAAY,KAAK,IAAI,CAAC,GAAG,OAAO,GAAG,CAAC,EAAE,CAAC,IAAI,iBAAiB,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACvE,gBAAgB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC1D,gBAAgB,IAAI,CAAC,MAAM,EAAE,CAAC;AAC9B,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA;AACA,IAAI,YAAY,GAAG;AACnB,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,qBAAqB,CAAC,YAAY,EAAE,CAAC,CAAC;AACxE,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;AACtB,KAAK;AACL;AACA,IAAI,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE;AAChC,QAAQ,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;AAC9C;AACA,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AAC1B,YAAY,IAAI,EAAE,qBAAqB,CAAC,aAAa;AACrD,YAAY,OAAO,EAAE,OAAO;AAC5B,YAAY,KAAK,EAAE,KAAK;AACxB,SAAS,CAAC,CAAC;AACX;AACA,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;AACtB,KAAK;AACL;AACA,IAAI,0BAA0B,CAAC,OAAO,EAAE,KAAK,EAAE;AAC/C,QAAQ,IAAI,WAAW,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC1C;AACA,QAAQ,OAAO,WAAW,IAAI,CAAC,EAAE,WAAW,EAAE,EAAE;AAChD,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC7D,gBAAgB,MAAM;AACtB,aAAa;AACb,SAAS;AACT;AACA,QAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC,EAAE;AAChD,YAAY,IAAI,EAAE,qBAAqB,CAAC,aAAa;AACrD,YAAY,OAAO,EAAE,OAAO;AAC5B,YAAY,KAAK,EAAE,KAAK;AACxB,SAAS,CAAC,CAAC;AACX;AACA,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;AACtB,KAAK;AACL;AACA,IAAI,WAAW,CAAC,KAAK,EAAE;AACvB,QAAQ,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACnD,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE;AAC3C,gBAAgB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1C,gBAAgB,IAAI,CAAC,MAAM,EAAE,CAAC;AAC9B,gBAAgB,MAAM;AACtB,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA,IAAI,iBAAiB,GAAG;AACxB,QAAQ,OAAO,IAAI,CAAC,MAAM,EAAE;AAC5B,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;AAC7C;AACA,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;AAC1B;AACA,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,CAAC,YAAY,EAAE;AACnE,gBAAgB,MAAM;AACtB,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA;AACA,IAAI,iCAAiC,CAAC,OAAO,EAAE;AAC/C,QAAQ,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACnD,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC1C;AACA,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,CAAC,YAAY,EAAE;AACnE,gBAAgB,OAAO,IAAI,CAAC;AAC5B,aAAa;AACb;AACA,YAAY,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,OAAO,EAAE;AACxE,gBAAgB,OAAO,KAAK,CAAC;AAC7B,aAAa;AACb,SAAS;AACT;AACA,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK;AACL;AACA,IAAI,eAAe,CAAC,OAAO,EAAE;AAC7B,QAAQ,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACnD,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC1C;AACA,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,CAAC,aAAa,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,EAAE;AACjG,gBAAgB,OAAO,KAAK,CAAC;AAC7B,aAAa;AACb,SAAS;AACT;AACA,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK;AACL,CAAC,CAAC;AACF;AACA;AACA,uBAAuB,CAAC,YAAY,GAAG,cAAc,CAAC;AACtD,uBAAuB,CAAC,aAAa,GAAG,eAAe,CAAC;AACxD;AACA,IAAI,qBAAqB,GAAG,uBAAuB,CAAC;AACpD;AACA,IAAI,OAAO,GAAG,MAAM,KAAK,CAAC;AAC1B,IAAI,WAAW,CAAC,IAAI,EAAE;AACtB,QAAQ,MAAM,eAAe,GAAG,EAAE,CAAC;AACnC,QAAQ,MAAM,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;AACpF;AACA,QAAQ,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE;AAC1D,YAAY,IAAI,OAAO,iBAAiB,CAAC,GAAG,CAAC,KAAK,UAAU,EAAE;AAC9D,gBAAgB,eAAe,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AACjD,gBAAgB,IAAI,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;AACnD,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA,IAAI,qBAAqB,GAAG;AAC5B,QAAQ,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;AAC3C,KAAK;AACL,CAAC,CAAC;AACF;AACA,OAAO,CAAC,OAAO,GAAG,SAAS,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;AAC7C,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AACxB,QAAQ,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AAC3B,KAAK;AACL;AACA,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACnD,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,KAAK,IAAI,EAAE;AACnD,YAAY,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACpC,SAAS;AACT,KAAK;AACL;AACA,IAAI,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACvC;AACA,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9B;AACA,IAAI,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AACF;AACA,IAAI,KAAK,GAAG,OAAO,CAAC;AACpB;AACA,MAAM,OAAO,GAAG,KAAK,CAAC;AACtB;AACA,IAAI,mCAAmC,GAAG,MAAM,iCAAiC,SAAS,OAAO,CAAC;AAClG,IAAI,WAAW,CAAC,YAAY,EAAE;AAC9B,QAAQ,KAAK,CAAC,YAAY,CAAC,CAAC;AAC5B;AACA,QAAQ,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;AACzC,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AAC3B,QAAQ,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;AAC9B,QAAQ,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;AACnC;AACA,QAAQ,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACxB,QAAQ,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;AACrB,QAAQ,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;AACtB,KAAK;AACL;AACA,IAAI,qBAAqB,CAAC,GAAG,EAAE,IAAI,EAAE;AACrC,QAAQ,OAAO;AACf,YAAY,OAAO,GAAG;AACtB,gBAAgB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;AACzC,gBAAgB,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1C;AACA;AACA,gBAAgB,IAAI,GAAG,CAAC,KAAK,EAAE;AAC/B,oBAAoB,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;AACtC,oBAAoB,GAAG,CAAC,IAAI,EAAE,CAAC;AAC/B,oBAAoB,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC;AAC3C,iBAAiB;AACjB;AACA,gBAAgB,IAAI,EAAE,KAAK,IAAI,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE;AACjF,oBAAoB,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC;AACrC,iBAAiB;AACjB;AACA,gBAAgB,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC;AACrD,gBAAgB,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,iBAAiB,GAAG,GAAG,CAAC;AACzD;AACA,gBAAgB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/C,aAAa;AACb;AACA,YAAY,OAAO,GAAG;AACtB,gBAAgB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxC;AACA,gBAAgB,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;AAClC,gBAAgB,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC;AAC1D,aAAa;AACb;AACA,YAAY,eAAe,GAAG;AAC9B,gBAAgB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;AACzC;AACA,gBAAgB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChD;AACA,gBAAgB,MAAM,SAAS,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;AACrD;AACA,gBAAgB,GAAG,CAAC,YAAY,IAAI,SAAS,CAAC;AAC9C,gBAAgB,GAAG,CAAC,iBAAiB,IAAI,SAAS,CAAC;AACnD,gBAAgB,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC;AAC9D,aAAa;AACb,SAAS,CAAC;AACV,KAAK;AACL,CAAC,CAAC;AACF;AACA,IAAI,mBAAmB,GAAG,mCAAmC,CAAC;AAC9D;AACA,MAAM,OAAO,GAAG,KAAK,CAAC;AACtB,MAAM,WAAW,GAAG,SAAS,CAAC;AAC9B,MAAM,mCAAmC,GAAG,mBAAmB,CAAC;AAChE;AACA,IAAI,4BAA4B,GAAG,MAAM,0BAA0B,SAAS,OAAO,CAAC;AACpF,IAAI,WAAW,CAAC,SAAS,EAAE;AAC3B,QAAQ,KAAK,CAAC,SAAS,CAAC,CAAC;AACzB;AACA,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;AACnC,QAAQ,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,EAAE,mCAAmC,CAAC,CAAC;AACvG,QAAQ,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;AACxC,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AAC1B,KAAK;AACL;AACA,IAAI,mBAAmB,GAAG;AAC1B,QAAQ,OAAO;AACf,YAAY,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI;AAC3C,YAAY,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG;AACzC,YAAY,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;AAC/C,YAAY,OAAO,EAAE,CAAC,CAAC;AACvB,YAAY,MAAM,EAAE,CAAC,CAAC;AACtB,YAAY,SAAS,EAAE,CAAC,CAAC;AACzB,SAAS,CAAC;AACV,KAAK;AACL;AACA,IAAI,8BAA8B,GAAG;AACrC,QAAQ,IAAI,CAAC,mBAAmB,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AAChE,QAAQ,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;AAC9D,QAAQ,IAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;AACpE;AACA,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;AACzD,QAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;AACvD;AACA,QAAQ,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,EAAE;AAC1C,YAAY,YAAY,CAAC,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC9D,SAAS;AACT;AACA,QAAQ,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC;AACjF,KAAK;AACL;AACA,IAAI,qBAAqB,CAAC,GAAG,EAAE,IAAI,EAAE;AACrC,QAAQ,MAAM,OAAO,GAAG;AACxB,YAAY,oBAAoB,GAAG;AACnC,gBAAgB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrD,gBAAgB,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC;AACvD,aAAa;AACb;AACA,YAAY,kBAAkB,GAAG;AACjC,gBAAgB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnD,gBAAgB,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC;AACvD,aAAa;AACb;AACA,YAAY,mBAAmB,GAAG;AAClC,gBAAgB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpD,gBAAgB,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC;AACvD,aAAa;AACb;AACA,YAAY,mBAAmB,CAAC,WAAW,EAAE;AAC7C,gBAAgB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AACjE,gBAAgB,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC;AACvD,aAAa;AACb;AACA,YAAY,qBAAqB,CAAC,IAAI,EAAE,EAAE,EAAE;AAC5C,gBAAgB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AAChE,gBAAgB,IAAI,CAAC,qBAAqB,CAAC,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC;AAChE,aAAa;AACb;AACA,YAAY,eAAe,GAAG;AAC9B,gBAAgB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChD,gBAAgB,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,GAAG,CAAC,mBAAmB,EAAE,CAAC;AACvE,aAAa;AACb;AACA,YAAY,WAAW,CAAC,eAAe,EAAE;AACzC,gBAAgB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;AAC7D,gBAAgB,GAAG,CAAC,mBAAmB,GAAG,GAAG,CAAC,mBAAmB,EAAE,CAAC;AACpE,aAAa;AACb;AACA,YAAY,cAAc,CAAC,OAAO,EAAE;AACpC,gBAAgB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACxD,gBAAgB,GAAG,CAAC,8BAA8B,EAAE,CAAC;AACrD,aAAa;AACb;AACA,YAAY,eAAe,CAAC,OAAO,EAAE;AACrC,gBAAgB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACzD,gBAAgB,GAAG,CAAC,8BAA8B,EAAE,CAAC;AACrD,aAAa;AACb;AACA,YAAY,iBAAiB,GAAG;AAChC,gBAAgB,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;AACzD;AACA;AACA;AACA,gBAAgB,IAAI,IAAI,CAAC,qBAAqB,EAAE;AAChD,oBAAoB,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC;AAClF,oBAAoB,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC;AAChF,oBAAoB,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC;AACtF,iBAAiB;AACjB;AACA,gBAAgB,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,KAAK,WAAW,CAAC,SAAS,EAAE;AACtE,oBAAoB,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC;AACpD,oBAAoB,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC;AAClD,oBAAoB,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC;AACxD,iBAAiB,MAAM;AACvB,oBAAoB,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;AACxD,oBAAoB,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC;AAC1D,oBAAoB,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;AAChE,iBAAiB;AACjB;AACA,gBAAgB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClD,aAAa;AACb;AACA,YAAY,0BAA0B,GAAG;AACzC,gBAAgB,MAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC;AAChG;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI,KAAK,IAAI,KAAK,CAAC,SAAS,KAAK,CAAC,CAAC,EAAE;AACrD,oBAAoB,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;AACxD,oBAAoB,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;AACtD,oBAAoB,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC;AAC5D,iBAAiB;AACjB;AACA,gBAAgB,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3D,aAAa;AACb,SAAS,CAAC;AACV;AACA;AACA,QAAQ,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAI;AAC1D,YAAY,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACrD;AACA,YAAY,OAAO,CAAC,KAAK,CAAC,GAAG,SAAS,EAAE,EAAE;AAC1C,gBAAgB,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,mBAAmB,EAAE,CAAC;AACtD,gBAAgB,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAC3C,aAAa,CAAC;AACd,SAAS,CAAC,CAAC;AACX;AACA,QAAQ,OAAO,OAAO,CAAC;AACvB,KAAK;AACL,CAAC,CAAC;AACF;AACA,IAAI,gBAAgB,GAAG,4BAA4B,CAAC;AACpD;AACA,MAAM,OAAO,GAAG,KAAK,CAAC;AACtB;AACA,IAAI,mCAAmC,GAAG,MAAM,iCAAiC,SAAS,OAAO,CAAC;AAClG,IAAI,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE;AAC7B,QAAQ,KAAK,CAAC,KAAK,CAAC,CAAC;AACrB;AACA,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AACxC,KAAK;AACL;AACA,IAAI,qBAAqB,CAAC,GAAG,EAAE,IAAI,EAAE;AACrC,QAAQ,OAAO;AACf,YAAY,GAAG,GAAG;AAClB,gBAAgB,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC5C,gBAAgB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpC,aAAa;AACb;AACA,YAAY,qBAAqB,GAAG;AACpC,gBAAgB,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACxD,oBAAoB,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,iBAAiB;AACjB;AACA,gBAAgB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtD,aAAa;AACb;AACA,YAAY,MAAM,CAAC,OAAO,EAAE;AAC5B,gBAAgB,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC5C,gBAAgB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAChD,aAAa;AACb,SAAS,CAAC;AACV,KAAK;AACL,CAAC,CAAC;AACF;AACA,IAAI,qBAAqB,GAAG,mCAAmC,CAAC;AAChE;AACA,MAAM,OAAO,GAAG,KAAK,CAAC;AACtB,MAAM,WAAW,GAAG,SAAS,CAAC;AAC9B,MAAM,4BAA4B,GAAG,gBAAgB,CAAC;AACtD,MAAM,iCAAiC,GAAG,qBAAqB,CAAC;AAChE,MAAM,MAAM,GAAG,IAAI,CAAC;AACpB;AACA;AACA,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC;AAC7B;AACA,IAAI,yBAAyB,GAAG,MAAM,uBAAuB,SAAS,OAAO,CAAC;AAC9E,IAAI,WAAW,CAAC,MAAM,EAAE;AACxB,QAAQ,KAAK,CAAC,MAAM,CAAC,CAAC;AACtB;AACA,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;AACnD,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC/B,QAAQ,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AACtC,QAAQ,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC;AAChD,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACjC,KAAK;AACL;AACA,IAAI,iBAAiB,CAAC,OAAO,EAAE;AAC/B,QAAQ,IAAI,GAAG,GAAG,IAAI,CAAC;AACvB;AACA,QAAQ,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACpC,YAAY,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;AACrE,YAAY,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC;AAC3D,SAAS;AACT;AACA,QAAQ,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AACjE,KAAK;AACL;AACA,IAAI,eAAe,CAAC,OAAO,EAAE,YAAY,EAAE;AAC3C,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;AACxE;AACA,QAAQ,IAAI,GAAG,EAAE;AACjB,YAAY,IAAI,YAAY,CAAC,QAAQ,EAAE;AACvC,gBAAgB,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC;AACpD,gBAAgB,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAChE;AACA;AACA;AACA,gBAAgB,MAAM,eAAe,GAAG,YAAY,CAAC,IAAI,KAAK,WAAW,CAAC,aAAa,IAAI,EAAE,KAAK,YAAY,CAAC,OAAO,CAAC;AACvH,gBAAgB,MAAM,MAAM,GAAG,EAAE,CAAC;AAClC,gBAAgB,IAAI,eAAe,EAAE;AACrC,oBAAoB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AAC7D,oBAAoB,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;AACnD,oBAAoB,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;AACjD,oBAAoB,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;AACvD,iBAAiB,MAAM;AACvB,oBAAoB,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC;AACrD,oBAAoB,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC;AACnD,oBAAoB,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC;AACzD,iBAAiB;AACjB;AACA,gBAAgB,IAAI,CAAC,WAAW,CAAC,4BAA4B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAC/E,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA,IAAI,qBAAqB,CAAC,GAAG,EAAE,IAAI,EAAE;AACrC,QAAQ,OAAO;AACf,YAAY,UAAU,CAAC,QAAQ,EAAE,eAAe,EAAE;AAClD,gBAAgB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;AACtE;AACA,gBAAgB,GAAG,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAC7C,gBAAgB,GAAG,CAAC,2BAA2B,GAAG,IAAI,CAAC;AACvD,gBAAgB,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC;AACxC;AACA,gBAAgB,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,4BAA4B,CAAC,CAAC;AACrG;AACA,gBAAgB,GAAG,CAAC,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC;AAC3D;AACA,gBAAgB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,iCAAiC,EAAE;AACtF,oBAAoB,SAAS,EAAE,SAAS,OAAO,EAAE;AACjD,wBAAwB,GAAG,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;AACvE,qBAAqB;AACrB,iBAAiB,CAAC,CAAC;AACnB,aAAa;AACb;AACA,YAAY,eAAe,CAAC,aAAa,EAAE;AAC3C,gBAAgB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;AAC/D;AACA;AACA;AACA,gBAAgB,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACtE,oBAAoB,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;AACtF,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,YAAY,6BAA6B,CAAC,KAAK,EAAE;AACjD,gBAAgB,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;AACzC,gBAAgB,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACrE,aAAa;AACb;AACA,YAAY,aAAa,CAAC,KAAK,EAAE;AACjC,gBAAgB,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;AACzC,gBAAgB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACrD;AACA;AACA;AACA,gBAAgB,MAAM,qBAAqB;AAC3C,oBAAoB,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC,aAAa;AAC5D,qBAAqB,KAAK,CAAC,OAAO,KAAK,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,KAAK,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3H;AACA,gBAAgB,IAAI,qBAAqB,EAAE;AAC3C,oBAAoB,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC1E,wBAAwB,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnE;AACA,wBAAwB,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE;AACpF,4BAA4B,GAAG,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAChE,4BAA4B,MAAM;AAClC,yBAAyB;AACzB,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,YAAY,gBAAgB,CAAC,KAAK,EAAE;AACpC,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACxD;AACA,gBAAgB,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACvF,gBAAgB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC;AACzD;AACA,gBAAgB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE;AACnD,oBAAoB,MAAM,IAAI,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;AACrD;AACA,oBAAoB,IAAI,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE;AACnE,wBAAwB,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;AACzF,wBAAwB,MAAM;AAC9B,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,YAAY,oBAAoB,CAAC,OAAO,EAAE;AAC1C;AACA;AACA,gBAAgB,GAAG,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAC/C,gBAAgB,GAAG,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAC7C,gBAAgB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC9D,aAAa;AACb;AACA,YAAY,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE;AAChD,gBAAgB,GAAG,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAC9C,gBAAgB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;AACpE,aAAa;AACb;AACA,YAAY,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE;AAChD,gBAAgB,GAAG,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAC9C,gBAAgB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;AACpE,aAAa;AACb;AACA,YAAY,eAAe,CAAC,KAAK,EAAE;AACnC,gBAAgB,GAAG,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAC9C,gBAAgB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACvD;AACA,gBAAgB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AACnG;AACA,gBAAgB,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AAC9E,aAAa;AACb;AACA,YAAY,sBAAsB,GAAG;AACrC,gBAAgB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvD,gBAAgB,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC5F,aAAa;AACb;AACA;AACA,YAAY,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE;AAC9C,gBAAgB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAClE;AACA,gBAAgB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AACxE,gBAAgB,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAClE;AACA,gBAAgB,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAAC,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;AACxF,aAAa;AACb;AACA;AACA,YAAY,4BAA4B,GAAG;AAC3C;AACA;AACA,gBAAgB,GAAG,CAAC,2BAA2B,GAAG,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/F;AACA,gBAAgB,OAAO,GAAG,CAAC,2BAA2B,CAAC;AACvD,aAAa;AACb;AACA,YAAY,iBAAiB,CAAC,KAAK,EAAE;AACrC,gBAAgB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACzD;AACA,gBAAgB,MAAM,eAAe,GAAG,IAAI,CAAC,8BAA8B,EAAE,CAAC;AAC9E;AACA,gBAAgB,MAAM,MAAM;AAC5B,oBAAoB,CAAC,eAAe,IAAI,GAAG,CAAC,2BAA2B,CAAC,MAAM;AAC9E,oBAAoB,IAAI,CAAC,YAAY,CAAC,kBAAkB;AACxD,oBAAoB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;AAC9C;AACA,gBAAgB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AACxE;AACA,gBAAgB,MAAM,WAAW;AACjC,oBAAoB,eAAe,IAAI,GAAG,CAAC,2BAA2B,CAAC,aAAa;AACpF,0BAA0B,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,aAAa,CAAC,GAAG,CAAC;AAC7F,0BAA0B,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9C;AACA,gBAAgB,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;AACvD;AACA;AACA,gBAAgB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;AACnF;AACA,gBAAgB,IAAI,KAAK,EAAE;AAC3B,oBAAoB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC;AAC1E,oBAAoB,IAAI,CAAC,WAAW,CAAC,4BAA4B,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;AAC5G,iBAAiB,MAAM;AACvB,oBAAoB,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;AACzF,iBAAiB;AACjB,aAAa;AACb,SAAS,CAAC;AACV,KAAK;AACL,CAAC,CAAC;AACF;AACA,IAAI,aAAa,GAAG,yBAAyB,CAAC;AAC9C;AACA,MAAM,OAAO,GAAG,KAAK,CAAC;AACtB;AACA,IAAI,yBAAyB,GAAG,MAAM,uBAAuB,SAAS,OAAO,CAAC;AAC9E,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE;AAC5B,QAAQ,KAAK,CAAC,IAAI,CAAC,CAAC;AACpB;AACA,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC/B,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;AAC9C,KAAK;AACL;AACA,IAAI,iBAAiB,CAAC,GAAG,EAAE;AAC3B,QAAQ,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AAC3D,QAAQ,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;AACxD,QAAQ,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;AACjE,KAAK;AACL;AACA,IAAI,YAAY,CAAC,IAAI,EAAE;AACvB,QAAQ,MAAM,GAAG,GAAG;AACpB,YAAY,IAAI,EAAE,IAAI;AACtB,YAAY,SAAS,EAAE,CAAC,CAAC;AACzB,YAAY,QAAQ,EAAE,CAAC,CAAC;AACxB,YAAY,WAAW,EAAE,CAAC,CAAC;AAC3B,YAAY,OAAO,EAAE,CAAC,CAAC;AACvB,YAAY,MAAM,EAAE,CAAC,CAAC;AACtB,YAAY,SAAS,EAAE,CAAC,CAAC;AACzB,SAAS,CAAC;AACV;AACA,QAAQ,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;AACpC,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;AAC/B,KAAK;AACL;AACA,IAAI,qBAAqB,CAAC,GAAG,EAAE;AAC/B,QAAQ,OAAO;AACf,YAAY,IAAI,CAAC,IAAI,EAAE;AACvB,gBAAgB,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AACvC,aAAa;AACb,SAAS,CAAC;AACV,KAAK;AACL,CAAC,CAAC;AACF;AACA,IAAI,SAAS,GAAG,yBAAyB,CAAC;AAC1C;AACA,MAAM,yBAAyB,GAAG,SAAS,CAAC;AAC5C,MAAM,iCAAiC,GAAG,mBAAmB,CAAC;AAC9D,MAAM,OAAO,GAAG,KAAK,CAAC;AACtB;AACA,IAAI,iCAAiC,GAAG,MAAM,+BAA+B,SAAS,yBAAyB,CAAC;AAChH,IAAI,WAAW,CAAC,YAAY,EAAE,IAAI,EAAE;AACpC,QAAQ,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AAClC;AACA,QAAQ,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,iCAAiC,CAAC,CAAC;AAC3F,QAAQ,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;AAChC,KAAK;AACL;AACA,IAAI,YAAY,CAAC,IAAI,EAAE;AACvB;AACA,QAAQ,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;AAC3D,YAAY,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;AACxD,YAAY,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AACrC,SAAS;AACT,KAAK;AACL,CAAC,CAAC;AACF;AACA,IAAI,iBAAiB,GAAG,iCAAiC,CAAC;AAC1D;AACA,MAAM,yBAAyB,GAAG,SAAS,CAAC;AAC5C,MAAM,+BAA+B,GAAG,iBAAiB,CAAC;AAC1D,MAAM,OAAO,GAAG,KAAK,CAAC;AACtB;AACA,IAAI,8BAA8B,GAAG,MAAM,4BAA4B,SAAS,yBAAyB,CAAC;AAC1G,IAAI,WAAW,CAAC,SAAS,EAAE,IAAI,EAAE;AACjC,QAAQ,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAC/B;AACA,QAAQ,MAAM,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,EAAE,+BAA+B,EAAE,IAAI,CAAC,CAAC;AACjH;AACA,QAAQ,IAAI,CAAC,UAAU,GAAG,iBAAiB,CAAC,UAAU,CAAC;AACvD,KAAK;AACL,CAAC,CAAC;AACF;AACA,IAAI,cAAc,GAAG,8BAA8B,CAAC;AACpD;AACA,MAAM,uBAAuB,GAAG,SAAS,CAAC;AAC1C,MAAM,4BAA4B,GAAG,cAAc,CAAC;AACpD,MAAM,0BAA0B,GAAG,gBAAgB,CAAC;AACpD,MAAM,OAAO,GAAG,KAAK,CAAC;AACtB;AACA,IAAI,2BAA2B,GAAG,MAAM,yBAAyB,SAAS,uBAAuB,CAAC;AAClG,IAAI,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE;AAC9B,QAAQ,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC5B;AACA,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AAC1B,QAAQ,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AACpC,KAAK;AACL;AACA,IAAI,iBAAiB,CAAC,GAAG,EAAE;AAC3B,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE;AACxB,YAAY,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;AACjD,YAAY,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;AAC/C,YAAY,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;AACrD;AACA,YAAY,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AAC1F,YAAY,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AACvF,YAAY,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;AAChG,SAAS;AACT,KAAK;AACL;AACA,IAAI,qBAAqB,CAAC,GAAG,EAAE,IAAI,EAAE;AACrC,QAAQ,OAAO;AACf,YAAY,UAAU,CAAC,QAAQ,EAAE,eAAe,EAAE;AAClD,gBAAgB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;AACtE;AACA,gBAAgB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,4BAA4B,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxF,gBAAgB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,0BAA0B,CAAC,CAAC;AAC5E,aAAa;AACb;AACA,YAAY,kBAAkB,CAAC,KAAK,EAAE;AACtC,gBAAgB,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC;AAC3C;AACA,gBAAgB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC1D,aAAa;AACb;AACA,YAAY,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE;AAChC,gBAAgB,GAAG,CAAC,cAAc,GAAG,OAAO,IAAI,OAAO,CAAC,WAAW,CAAC;AACpE,gBAAgB,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AACvC,aAAa;AACb,SAAS,CAAC;AACV,KAAK;AACL,CAAC,CAAC;AACF;AACA,IAAI,WAAW,GAAG,2BAA2B,CAAC;AAC9C;AACA,IAAI,QAAQ,GAAG,EAAE,CAAC;AAClB;AACA,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;AAChD;AACA;AACA,QAAQ,CAAC,cAAc,GAAG,WAAW;AACrC,IAAI,OAAO;AACX,QAAQ,QAAQ,EAAE,WAAW;AAC7B,QAAQ,IAAI,EAAE,eAAe,CAAC,SAAS;AACvC,QAAQ,UAAU,EAAE,EAAE;AACtB,KAAK,CAAC;AACN,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,sBAAsB,GAAG,WAAW;AAC7C,IAAI,OAAO;AACX,QAAQ,QAAQ,EAAE,oBAAoB;AACtC,QAAQ,UAAU,EAAE,EAAE;AACtB,KAAK,CAAC;AACN,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,aAAa,GAAG,SAAS,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE;AAChE,IAAI,OAAO;AACX,QAAQ,QAAQ,EAAE,OAAO;AACzB,QAAQ,OAAO,EAAE,OAAO;AACxB,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,YAAY,EAAE,YAAY;AAClC,QAAQ,UAAU,EAAE,EAAE;AACtB,QAAQ,UAAU,EAAE,IAAI;AACxB,KAAK,CAAC;AACN,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,iBAAiB,GAAG,SAAS,IAAI,EAAE;AAC5C,IAAI,OAAO;AACX,QAAQ,QAAQ,EAAE,UAAU;AAC5B,QAAQ,IAAI,EAAE,IAAI;AAClB,QAAQ,UAAU,EAAE,IAAI;AACxB,KAAK,CAAC;AACN,CAAC,CAAC;AACF;AACA,MAAM,cAAc,GAAG,SAAS,KAAK,EAAE;AACvC,IAAI,OAAO;AACX,QAAQ,QAAQ,EAAE,OAAO;AACzB,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,UAAU,EAAE,IAAI;AACxB,KAAK,CAAC;AACN,CAAC,CAAC;AACF;AACA;AACA,MAAM,WAAW,IAAI,QAAQ,CAAC,WAAW,GAAG,SAAS,UAAU,EAAE,OAAO,EAAE;AAC1E,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACxC,IAAI,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;AACpC,CAAC,CAAC,CAAC;AACH;AACA,MAAM,YAAY,IAAI,QAAQ,CAAC,YAAY,GAAG,SAAS,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE;AAC3F,IAAI,MAAM,YAAY,GAAG,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AACtE;AACA,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;AAC3D,IAAI,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;AACpC,CAAC,CAAC,CAAC;AACH;AACA,QAAQ,CAAC,kBAAkB,GAAG,SAAS,eAAe,EAAE,cAAc,EAAE;AACxE,IAAI,eAAe,CAAC,OAAO,GAAG,cAAc,CAAC;AAC7C,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,kBAAkB,GAAG,SAAS,eAAe,EAAE;AACxD,IAAI,OAAO,eAAe,CAAC,OAAO,CAAC;AACnC,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,eAAe,GAAG,SAAS,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE;AACxE,IAAI,IAAI,WAAW,GAAG,IAAI,CAAC;AAC3B;AACA,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzD,QAAQ,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,eAAe,EAAE;AACjE,YAAY,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACjD,YAAY,MAAM;AAClB,SAAS;AACT,KAAK;AACL;AACA,IAAI,IAAI,WAAW,EAAE;AACrB,QAAQ,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC;AAChC,QAAQ,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACxC,QAAQ,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACxC,KAAK,MAAM;AACX,QAAQ,WAAW,CAAC,QAAQ,EAAE;AAC9B,YAAY,QAAQ,EAAE,eAAe;AACrC,YAAY,IAAI,EAAE,IAAI;AACtB,YAAY,QAAQ,EAAE,QAAQ;AAC9B,YAAY,QAAQ,EAAE,QAAQ;AAC9B,SAAS,CAAC,CAAC;AACX,KAAK;AACL,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,eAAe,GAAG,SAAS,QAAQ,EAAE,IAAI,EAAE;AACpD,IAAI,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;AACzB,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,eAAe,GAAG,SAAS,QAAQ,EAAE;AAC9C,IAAI,OAAO,QAAQ,CAAC,IAAI,CAAC;AACzB,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,UAAU,GAAG,SAAS,IAAI,EAAE;AACrC,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;AACzB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC7D;AACA,QAAQ,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAClD,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC/B,KAAK;AACL,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,UAAU,GAAG,SAAS,UAAU,EAAE,IAAI,EAAE;AACjD,IAAI,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE;AACtC,QAAQ,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACjF;AACA,QAAQ,IAAI,QAAQ,CAAC,QAAQ,KAAK,OAAO,EAAE;AAC3C,YAAY,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC;AACnC,YAAY,OAAO;AACnB,SAAS;AACT,KAAK;AACL;AACA,IAAI,WAAW,CAAC,UAAU,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;AAClD,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,gBAAgB,GAAG,SAAS,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE;AACtE,IAAI,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7F;AACA,IAAI,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,KAAK,OAAO,EAAE;AACnD,QAAQ,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC;AAC/B,KAAK,MAAM;AACX,QAAQ,YAAY,CAAC,UAAU,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,CAAC;AACtE,KAAK;AACL,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,eAAe,GAAG,SAAS,SAAS,EAAE,KAAK,EAAE;AACtD,IAAI,MAAM,iBAAiB,GAAG,EAAE,CAAC;AACjC;AACA,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACrD,QAAQ,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACxD,KAAK;AACL;AACA,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC3C,QAAQ,IAAI,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;AAC7D,YAAY,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,SAAS;AACT,KAAK;AACL,CAAC,CAAC;AACF;AACA;AACA,QAAQ,CAAC,aAAa,GAAG,SAAS,IAAI,EAAE;AACxC,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC9B,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,aAAa,GAAG,SAAS,IAAI,EAAE;AACxC,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC;AAC3B,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,aAAa,GAAG,SAAS,IAAI,EAAE;AACxC,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC;AAC3B,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,WAAW,GAAG,SAAS,OAAO,EAAE;AACzC,IAAI,OAAO,OAAO,CAAC,KAAK,CAAC;AACzB,CAAC,CAAC;AACF;AACA;AACA,QAAQ,CAAC,UAAU,GAAG,SAAS,OAAO,EAAE;AACxC,IAAI,OAAO,OAAO,CAAC,OAAO,CAAC;AAC3B,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,eAAe,GAAG,SAAS,OAAO,EAAE;AAC7C,IAAI,OAAO,OAAO,CAAC,YAAY,CAAC;AAChC,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,kBAAkB,GAAG,SAAS,QAAQ,EAAE;AACjD,IAAI,OAAO,QAAQ,CAAC,KAAK,CAAC;AAC1B,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,qBAAqB,GAAG,SAAS,WAAW,EAAE;AACvD,IAAI,OAAO,WAAW,CAAC,IAAI,CAAC;AAC5B,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,uBAAuB,GAAG,SAAS,WAAW,EAAE;AACzD,IAAI,OAAO,WAAW,CAAC,IAAI,CAAC;AAC5B,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,2BAA2B,GAAG,SAAS,WAAW,EAAE;AAC7D,IAAI,OAAO,WAAW,CAAC,QAAQ,CAAC;AAChC,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,2BAA2B,GAAG,SAAS,WAAW,EAAE;AAC7D,IAAI,OAAO,WAAW,CAAC,QAAQ,CAAC;AAChC,CAAC,CAAC;AACF;AACA;AACA,QAAQ,CAAC,UAAU,GAAG,SAAS,IAAI,EAAE;AACrC,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC;AACrC,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,aAAa,GAAG,SAAS,IAAI,EAAE;AACxC,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,UAAU,CAAC;AACxC,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,kBAAkB,GAAG,SAAS,IAAI,EAAE;AAC7C,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,eAAe,CAAC;AAC7C,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,aAAa,GAAG,SAAS,IAAI,EAAE;AACxC,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;AAC1B,CAAC,CAAC;AACF;AACA;AACA,QAAQ,CAAC,yBAAyB,GAAG,SAAS,IAAI,EAAE,QAAQ,EAAE;AAC9D,IAAI,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC;AACvC,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,yBAAyB,GAAG,SAAS,IAAI,EAAE;AACpD,IAAI,OAAO,IAAI,CAAC,kBAAkB,CAAC;AACnC,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,4BAA4B,GAAG,SAAS,IAAI,EAAE,WAAW,EAAE;AACpE,IAAI,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;AAClF,CAAC,CAAC;AACF;AACA,IAAI,cAAc,GAAG,SAAS,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE;AAC9D,IAAI,OAAO,GAAG,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC7C;AACA,IAAI,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK;AAC1D,QAAQ,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI;AAC3C,YAAY,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AACtC,SAAS,CAAC,CAAC;AACX;AACA,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5B,CAAC,CAAC;AACF;AACA,IAAI,SAAS,GAAG,EAAE,CAAC;AACnB;AACA,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;AAC/B;AACA;AACA,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAClC,MAAM,eAAe,GAAG,qBAAqB,CAAC;AAC9C,MAAM,qBAAqB,GAAG,4DAA4D,CAAC;AAC3F;AACA,MAAM,8BAA8B,GAAG;AACvC,IAAI,4CAA4C;AAChD,IAAI,4CAA4C;AAChD,IAAI,sDAAsD;AAC1D,IAAI,iCAAiC;AACrC,IAAI,iCAAiC;AACrC,IAAI,wCAAwC;AAC5C,IAAI,wCAAwC;AAC5C,IAAI,gCAAgC;AACpC,IAAI,yBAAyB;AAC7B,IAAI,0BAA0B;AAC9B,IAAI,yBAAyB;AAC7B,IAAI,+BAA+B;AACnC,IAAI,yBAAyB;AAC7B,IAAI,uBAAuB;AAC3B,IAAI,6BAA6B;AACjC,IAAI,6BAA6B;AACjC,IAAI,6BAA6B;AACjC,IAAI,6BAA6B;AACjC,IAAI,oCAAoC;AACxC,IAAI,oCAAoC;AACxC,IAAI,oCAAoC;AACxC,IAAI,oCAAoC;AACxC,IAAI,4BAA4B;AAChC,IAAI,qBAAqB;AACzB,IAAI,0CAA0C;AAC9C,IAAI,uDAAuD;AAC3D,IAAI,gDAAgD;AACpD,IAAI,kDAAkD;AACtD,IAAI,uDAAuD;AAC3D,IAAI,gDAAgD;AACpD,IAAI,kDAAkD;AACtD,IAAI,qCAAqC;AACzC,IAAI,4CAA4C;AAChD,IAAI,4CAA4C;AAChD,IAAI,qDAAqD;AACzD,IAAI,6DAA6D;AACjE,IAAI,6CAA6C;AACjD,IAAI,gFAAgF;AACpF,IAAI,uEAAuE;AAC3E,IAAI,sCAAsC;AAC1C,IAAI,+CAA+C;AACnD,IAAI,sDAAsD;AAC1D,IAAI,iCAAiC;AACrC,IAAI,8BAA8B;AAClC,IAAI,8BAA8B;AAClC,IAAI,wBAAwB;AAC5B,IAAI,+BAA+B;AACnC,IAAI,iCAAiC;AACrC,IAAI,qCAAqC;AACzC,IAAI,0CAA0C;AAC9C,IAAI,wCAAwC;AAC5C,IAAI,uBAAuB;AAC3B,IAAI,2BAA2B;AAC/B,IAAI,qCAAqC;AACzC,IAAI,iCAAiC;AACrC,CAAC,CAAC;AACF;AACA,MAAM,2CAA2C,GAAG,8BAA8B,CAAC,MAAM,CAAC;AAC1F,IAAI,kCAAkC;AACtC,IAAI,sCAAsC;AAC1C,CAAC,CAAC,CAAC;AACH;AACA,MAAM,sBAAsB,GAAG,CAAC,sCAAsC,EAAE,oCAAoC,EAAE,MAAM,CAAC,CAAC;AACtH,MAAM,iCAAiC,GAAG,CAAC,kCAAkC,EAAE,sCAAsC,CAAC,CAAC;AACvH;AACA,MAAM,gDAAgD,GAAG,iCAAiC,CAAC,MAAM,CAAC;AAClG,IAAI,kCAAkC;AACtC,IAAI,sCAAsC;AAC1C,CAAC,CAAC,CAAC;AACH;AACA;AACA,SAAS,gBAAgB,CAAC,EAAE,EAAE;AAC9B,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;AACrD;AACA,IAAI,OAAO,KAAK,GAAG,EAAE,GAAG,KAAK,CAAC;AAC9B,CAAC;AACD;AACA,SAAS,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE;AACvC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC9C,QAAQ,IAAI,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AACjD,YAAY,OAAO,IAAI,CAAC;AACxB,SAAS;AACT,KAAK;AACL;AACA,IAAI,OAAO,KAAK,CAAC;AACjB,CAAC;AACD;AACA;AACA,SAAS,CAAC,YAAY,GAAG,SAAS,KAAK,EAAE;AACzC,IAAI;AACJ,QAAQ,KAAK,CAAC,IAAI,KAAK,kBAAkB;AACzC,QAAQ,KAAK,CAAC,QAAQ,KAAK,IAAI;AAC/B,SAAS,KAAK,CAAC,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC,QAAQ,KAAK,eAAe,CAAC;AACvE,MAAM;AACN,CAAC,CAAC;AACF;AACA,SAAS,CAAC,eAAe,GAAG,SAAS,KAAK,EAAE;AAC5C,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,EAAE;AAC3C,QAAQ,OAAO,aAAa,CAAC,MAAM,CAAC;AACpC,KAAK;AACL;AACA,IAAI,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;AACpC;AACA,IAAI,IAAI,QAAQ,IAAI,QAAQ,CAAC,WAAW,EAAE,KAAK,qBAAqB,EAAE;AACtE,QAAQ,OAAO,aAAa,CAAC,MAAM,CAAC;AACpC,KAAK;AACL;AACA,IAAI,IAAI,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;AAClC;AACA,IAAI,IAAI,QAAQ,KAAK,IAAI,EAAE;AAC3B,QAAQ,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;AAC1C;AACA,QAAQ,IAAI,sBAAsB,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3D,YAAY,OAAO,aAAa,CAAC,MAAM,CAAC;AACxC,SAAS;AACT;AACA,QAAQ,IAAI,QAAQ,GAAG,QAAQ,KAAK,IAAI,GAAG,2CAA2C,GAAG,8BAA8B,CAAC;AACxH;AACA,QAAQ,IAAI,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE;AAC3C,YAAY,OAAO,aAAa,CAAC,MAAM,CAAC;AACxC,SAAS;AACT;AACA,QAAQ,QAAQ;AAChB,YAAY,QAAQ,KAAK,IAAI,GAAG,iCAAiC,GAAG,gDAAgD,CAAC;AACrH;AACA,QAAQ,IAAI,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE;AAC3C,YAAY,OAAO,aAAa,CAAC,cAAc,CAAC;AAChD,SAAS;AACT,KAAK;AACL;AACA,IAAI,OAAO,aAAa,CAAC,SAAS,CAAC;AACnC,CAAC,CAAC;AACF;AACA,SAAS,CAAC,gBAAgB,GAAG,SAAS,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE;AAChE,IAAI,IAAI,GAAG,GAAG,WAAW,CAAC;AAC1B;AACA,IAAI,IAAI,IAAI,EAAE;AACd,QAAQ,GAAG,IAAI,IAAI,CAAC;AACpB,KAAK;AACL;AACA,IAAI,IAAI,QAAQ,EAAE;AAClB,QAAQ,GAAG,IAAI,UAAU,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AACvD,KAAK,MAAM,IAAI,QAAQ,EAAE;AACzB,QAAQ,GAAG,IAAI,SAAS,CAAC;AACzB,KAAK;AACL;AACA,IAAI,IAAI,QAAQ,KAAK,IAAI,EAAE;AAC3B,QAAQ,GAAG,IAAI,GAAG,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AAChD,KAAK;AACL;AACA,IAAI,OAAO,GAAG,CAAC;AACf,CAAC,CAAC;AACF;AACA,IAAI,gBAAgB,GAAG,EAAE,CAAC;AAC1B;AACA,MAAM,WAAW,GAAG,SAAS,CAAC;AAC9B,MAAM,MAAM,GAAG,IAAI,CAAC;AACpB;AACA;AACA,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC;AAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC;AAC/B,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC;AAC7B;AACA;AACA,MAAM,UAAU,GAAG;AACnB,IAAI,SAAS,EAAE,WAAW;AAC1B,IAAI,eAAe,EAAE,uBAAuB;AAC5C,CAAC,CAAC;AACF;AACA;AACA,MAAM,mBAAmB,GAAG,eAAe,CAAC;AAC5C,MAAM,4BAA4B,GAAG,eAAe,CAAC;AACrD,MAAM,wBAAwB,GAAG;AACjC,IAAI,aAAa,EAAE,eAAe;AAClC,IAAI,aAAa,EAAE,eAAe;AAClC,IAAI,aAAa,EAAE,eAAe;AAClC,IAAI,WAAW,EAAE,aAAa;AAC9B,IAAI,QAAQ,EAAE,UAAU;AACxB,IAAI,aAAa,EAAE,eAAe;AAClC,IAAI,eAAe,EAAE,iBAAiB;AACtC,IAAI,QAAQ,EAAE,UAAU;AACxB,IAAI,WAAW,EAAE,aAAa;AAC9B,IAAI,QAAQ,EAAE,UAAU;AACxB,IAAI,iBAAiB,EAAE,mBAAmB;AAC1C,IAAI,aAAa,EAAE,eAAe;AAClC,IAAI,YAAY,EAAE,cAAc;AAChC,IAAI,gBAAgB,EAAE,kBAAkB;AACxC,IAAI,SAAS,EAAE,WAAW;AAC1B,IAAI,UAAU,EAAE,YAAY;AAC5B,IAAI,QAAQ,EAAE,UAAU;AACxB,IAAI,YAAY,EAAE,cAAc;AAChC,IAAI,iBAAiB,EAAE,mBAAmB;AAC1C,IAAI,YAAY,EAAE,cAAc;AAChC,IAAI,WAAW,EAAE,aAAa;AAC9B,IAAI,WAAW,EAAE,aAAa;AAC9B,IAAI,gBAAgB,EAAE,kBAAkB;AACxC,IAAI,SAAS,EAAE,WAAW;AAC1B,IAAI,UAAU,EAAE,YAAY;AAC5B,IAAI,UAAU,EAAE,YAAY;AAC5B,IAAI,mBAAmB,EAAE,qBAAqB;AAC9C,IAAI,gBAAgB,EAAE,kBAAkB;AACxC,IAAI,YAAY,EAAE,cAAc;AAChC,IAAI,SAAS,EAAE,WAAW;AAC1B,IAAI,SAAS,EAAE,WAAW;AAC1B,IAAI,SAAS,EAAE,WAAW;AAC1B,IAAI,aAAa,EAAE,eAAe;AAClC,IAAI,mBAAmB,EAAE,qBAAqB;AAC9C,IAAI,cAAc,EAAE,gBAAgB;AACpC,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,WAAW,EAAE,aAAa;AAC9B,IAAI,SAAS,EAAE,WAAW;AAC1B,IAAI,kBAAkB,EAAE,oBAAoB;AAC5C,IAAI,gBAAgB,EAAE,kBAAkB;AACxC,IAAI,gBAAgB,EAAE,kBAAkB;AACxC,IAAI,gBAAgB,EAAE,kBAAkB;AACxC,IAAI,YAAY,EAAE,cAAc;AAChC,IAAI,WAAW,EAAE,aAAa;AAC9B,IAAI,YAAY,EAAE,cAAc;AAChC,IAAI,WAAW,EAAE,aAAa;AAC9B,IAAI,YAAY,EAAE,cAAc;AAChC,IAAI,cAAc,EAAE,gBAAgB;AACpC,IAAI,WAAW,EAAE,aAAa;AAC9B,IAAI,OAAO,EAAE,SAAS;AACtB,IAAI,OAAO,EAAE,SAAS;AACtB,IAAI,UAAU,EAAE,YAAY;AAC5B,IAAI,OAAO,EAAE,SAAS;AACtB,IAAI,UAAU,EAAE,YAAY;AAC5B,IAAI,gBAAgB,EAAE,kBAAkB;AACxC,IAAI,gBAAgB,EAAE,kBAAkB;AACxC,IAAI,UAAU,EAAE,YAAY;AAC5B,CAAC,CAAC;AACF;AACA,MAAM,wBAAwB,GAAG;AACjC,IAAI,eAAe,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE;AAChF,IAAI,eAAe,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE;AAChF,IAAI,YAAY,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE;AAC1E,IAAI,YAAY,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE;AAC1E,IAAI,YAAY,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE;AAC1E,IAAI,aAAa,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE;AAC5E,IAAI,YAAY,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE;AAC1E,IAAI,UAAU,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;AACpE,IAAI,UAAU,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;AACpE,IAAI,WAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;AACtE,IAAI,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE;AAC/D,IAAI,aAAa,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE;AAC5E,CAAC,CAAC;AACF;AACA;AACA,MAAM,4BAA4B,IAAI,gBAAgB,CAAC,4BAA4B,GAAG;AACtF,IAAI,QAAQ,EAAE,UAAU;AACxB,IAAI,WAAW,EAAE,aAAa;AAC9B,IAAI,YAAY,EAAE,cAAc;AAChC,IAAI,YAAY,EAAE,cAAc;AAChC,IAAI,aAAa,EAAE,eAAe;AAClC,IAAI,gBAAgB,EAAE,kBAAkB;AACxC,IAAI,QAAQ,EAAE,UAAU;AACxB,IAAI,OAAO,EAAE,SAAS;AACtB,IAAI,aAAa,EAAE,eAAe;AAClC,IAAI,mBAAmB,EAAE,qBAAqB;AAC9C,IAAI,WAAW,EAAE,aAAa;AAC9B,IAAI,gBAAgB,EAAE,kBAAkB;AACxC,IAAI,iBAAiB,EAAE,mBAAmB;AAC1C,IAAI,iBAAiB,EAAE,mBAAmB;AAC1C,IAAI,cAAc,EAAE,gBAAgB;AACpC,IAAI,OAAO,EAAE,SAAS;AACtB,IAAI,OAAO,EAAE,SAAS;AACtB,IAAI,OAAO,EAAE,SAAS;AACtB,IAAI,OAAO,EAAE,SAAS;AACtB,IAAI,OAAO,EAAE,SAAS;AACtB,IAAI,cAAc,EAAE,gBAAgB;AACpC,IAAI,OAAO,EAAE,SAAS;AACtB,IAAI,OAAO,EAAE,SAAS;AACtB,IAAI,WAAW,EAAE,aAAa;AAC9B,IAAI,YAAY,EAAE,cAAc;AAChC,IAAI,QAAQ,EAAE,UAAU;AACxB,IAAI,YAAY,EAAE,cAAc;AAChC,IAAI,kBAAkB,EAAE,oBAAoB;AAC5C,IAAI,WAAW,EAAE,aAAa;AAC9B,IAAI,MAAM,EAAE,QAAQ;AACpB,IAAI,YAAY,EAAE,cAAc;AAChC,IAAI,aAAa,EAAE,eAAe;AAClC,IAAI,QAAQ,EAAE,UAAU;AACxB,IAAI,cAAc,EAAE,gBAAgB;AACpC,IAAI,cAAc,EAAE,gBAAgB;AACpC,IAAI,QAAQ,EAAE,UAAU;AACxB,CAAC,CAAC,CAAC;AACH;AACA;AACA,MAAM,qBAAqB,GAAG;AAC9B,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI;AACjB,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI;AACnB,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI;AAC1B,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI;AACpB,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;AAClB,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI;AACtB,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI;AACpB,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;AAClB,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI;AACnB,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;AAClB,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;AAClB,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;AAClB,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI;AACrB,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;AAClB,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;AAClB,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;AAClB,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;AAClB,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;AAClB,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;AAClB,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI;AACpB,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;AAClB,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI;AACjB,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI;AACnB,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;AAClB,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI;AACvB,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI;AACpB,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI;AACpB,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI;AACpB,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;AAClB,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI;AACjB,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI;AACnB,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI;AACpB,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI;AACjB,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI;AACrB,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI;AACpB,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI;AACtB,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI;AACtB,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI;AACnB,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI;AACnB,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI;AACrB,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;AAClB,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI;AACjB,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;AAClB,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI;AACnB,CAAC,CAAC;AACF;AACA;AACA,gBAAgB,CAAC,UAAU,GAAG,SAAS,aAAa,EAAE;AACtD,IAAI,MAAM,EAAE,GAAG,aAAa,CAAC,OAAO,CAAC;AACrC,IAAI,MAAM,eAAe;AACzB,QAAQ,EAAE,KAAK,GAAG,CAAC,IAAI;AACvB,SAAS,WAAW,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI;AACxE,YAAY,WAAW,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI;AAC1E,YAAY,WAAW,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;AAC5E;AACA,IAAI,OAAO,eAAe,GAAG,IAAI,GAAG,qBAAqB,CAAC,EAAE,CAAC,CAAC;AAC9D,CAAC,CAAC;AACF;AACA;AACA,gBAAgB,CAAC,sBAAsB,GAAG,SAAS,KAAK,EAAE;AAC1D,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACjD,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,mBAAmB,EAAE;AACzD,YAAY,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,4BAA4B,CAAC;AAC/D,YAAY,MAAM;AAClB,SAAS;AACT,KAAK;AACL,CAAC,CAAC;AACF;AACA,gBAAgB,CAAC,mBAAmB,GAAG,SAAS,KAAK,EAAE;AACvD,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACjD,QAAQ,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC/E;AACA,QAAQ,IAAI,gBAAgB,EAAE;AAC9B,YAAY,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,gBAAgB,CAAC;AACnD,SAAS;AACT,KAAK;AACL,CAAC,CAAC;AACF;AACA,gBAAgB,CAAC,mBAAmB,GAAG,SAAS,KAAK,EAAE;AACvD,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACjD,QAAQ,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAChF;AACA,QAAQ,IAAI,iBAAiB,EAAE;AAC/B,YAAY,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC;AAC7D,YAAY,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC;AACzD,YAAY,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC;AACnE,SAAS;AACT,KAAK;AACL,CAAC,CAAC;AACF;AACA,gBAAgB,CAAC,qBAAqB,GAAG,SAAS,KAAK,EAAE;AACzD,IAAI,MAAM,eAAe,GAAG,4BAA4B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACxE;AACA,IAAI,IAAI,eAAe,EAAE;AACzB,QAAQ,KAAK,CAAC,OAAO,GAAG,eAAe,CAAC;AACxC,KAAK;AACL,CAAC,CAAC;AACF;AACA;AACA,SAAS,4BAA4B,CAAC,EAAE,EAAE,EAAE,EAAE;AAC9C,IAAI,OAAO,EAAE,KAAK,IAAI,CAAC,MAAM,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;AACxH,CAAC;AACD;AACA,SAAS,sBAAsB,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE;AAC/C,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,cAAc,EAAE;AACzD,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/C,YAAY,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,QAAQ,EAAE;AACpD,gBAAgB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;AAC3D;AACA,gBAAgB,OAAO,KAAK,KAAK,UAAU,CAAC,SAAS,IAAI,KAAK,KAAK,UAAU,CAAC,eAAe,CAAC;AAC9F,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA,IAAI,OAAO,EAAE,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,KAAK,GAAG,CAAC,cAAc,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,IAAI,EAAE,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;AACjG,CAAC;AACD;AACA,gBAAgB,CAAC,kBAAkB,GAAG,SAAS,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzE,IAAI,IAAI,CAAC,CAAC,SAAS,IAAI,SAAS,KAAK,IAAI,CAAC,IAAI,KAAK,sBAAsB,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE;AAC1F,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK;AACL;AACA,IAAI,IAAI,CAAC,CAAC,SAAS,IAAI,SAAS,KAAK,IAAI,CAAC,MAAM,KAAK,4BAA4B,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;AAC3F,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK;AACL;AACA,IAAI,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AACF;AACA,MAAM,SAAS,GAAG,SAAS,CAAC;AAC5B,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;AAC1C,MAAM,qBAAqB,GAAG,qBAAqB,CAAC;AACpD,MAAM,uBAAuB,GAAG,aAAa,CAAC;AAC9C,MAAM,yBAAyB,GAAG,WAAW,CAAC;AAC9C,MAAM,KAAK,GAAG,KAAK,CAAC;AACpB,MAAM,kBAAkB,GAAG,QAAQ,CAAC;AACpC,MAAM,YAAY,GAAG,cAAc,CAAC;AACpC,MAAM,OAAO,GAAG,SAAS,CAAC;AAC1B,MAAM,cAAc,GAAG,gBAAgB,CAAC;AACxC,MAAM,GAAG,GAAG,UAAU,CAAC;AACvB,MAAM,OAAO,GAAG,SAAS,CAAC;AAC1B,MAAM,IAAI,GAAG,IAAI,CAAC;AAClB;AACA;AACA,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;AACzB,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;AAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AACzB;AACA,MAAM,eAAe,GAAG;AACxB,IAAI,gBAAgB,EAAE,IAAI;AAC1B,IAAI,sBAAsB,EAAE,KAAK;AACjC,IAAI,YAAY,EAAE,IAAI;AACtB,IAAI,WAAW,EAAE,kBAAkB;AACnC,CAAC,CAAC;AACF;AACA;AACA,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AACnC;AACA;AACA,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAC7B,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAC7B;AACA;AACA,MAAM,YAAY,GAAG,cAAc,CAAC;AACpC,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAC5C,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAC5C,MAAM,YAAY,GAAG,cAAc,CAAC;AACpC,MAAM,sBAAsB,GAAG,wBAAwB,CAAC;AACxD,MAAM,eAAe,GAAG,iBAAiB,CAAC;AAC1C,MAAM,YAAY,GAAG,cAAc,CAAC;AACpC,MAAM,SAAS,GAAG,WAAW,CAAC;AAC9B,MAAM,aAAa,GAAG,eAAe,CAAC;AACtC,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AAChD,MAAM,eAAe,GAAG,iBAAiB,CAAC;AAC1C,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;AACpD,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AAChD,MAAM,WAAW,GAAG,aAAa,CAAC;AAClC,MAAM,YAAY,GAAG,cAAc,CAAC;AACpC,MAAM,cAAc,GAAG,gBAAgB,CAAC;AACxC,MAAM,uBAAuB,GAAG,yBAAyB,CAAC;AAC1D,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAC5C,MAAM,eAAe,GAAG,iBAAiB,CAAC;AAC1C,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAC5C,MAAM,mBAAmB,GAAG,qBAAqB,CAAC;AAClD,MAAM,qBAAqB,GAAG,uBAAuB,CAAC;AACtD,MAAM,yBAAyB,GAAG,2BAA2B,CAAC;AAC9D;AACA;AACA,MAAM,wBAAwB,GAAG;AACjC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,WAAW;AACvB,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,kBAAkB;AACjC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,kBAAkB;AACjC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,kBAAkB;AACjC,IAAI,CAAC,CAAC,CAAC,OAAO,GAAG,eAAe;AAChC,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,oBAAoB;AACtC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,aAAa;AAC5B,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,YAAY;AAC1B,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,gBAAgB;AAClC,CAAC,CAAC;AACF;AACA;AACA,MAAM,kCAAkC,GAAG;AAC3C,IAAI,CAAC,CAAC,CAAC,OAAO,GAAG,aAAa;AAC9B,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,aAAa;AAC/B,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,aAAa;AAC5B,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,aAAa;AAC5B,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,aAAa;AAC5B,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,oBAAoB;AACjC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,kBAAkB;AAC9B,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,WAAW;AACvB,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,WAAW;AACvB,CAAC,CAAC;AACF;AACA;AACA,MAAM,cAAc,GAAG;AACvB,IAAI,CAAC,YAAY,GAAG;AACpB,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,kBAAkB;AACvD,QAAQ,CAAC,SAAS,CAAC,oBAAoB,GAAG,kBAAkB;AAC5D,QAAQ,CAAC,SAAS,CAAC,0BAA0B,GAAG,WAAW;AAC3D,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,aAAa;AAChD,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,oBAAoB;AACvD,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,kBAAkB;AACvD,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,kBAAkB;AACrD,QAAQ,CAAC,SAAS,CAAC,SAAS,GAAG,kBAAkB;AACjD,KAAK;AACL,IAAI,CAAC,gBAAgB,GAAG;AACxB,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,eAAe;AACpD,QAAQ,CAAC,SAAS,CAAC,oBAAoB,GAAG,eAAe;AACzD,QAAQ,CAAC,SAAS,CAAC,0BAA0B,GAAG,WAAW;AAC3D,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,aAAa;AAChD,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,WAAW;AAC9C,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,kBAAkB;AACvD,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,gBAAgB;AACnD,QAAQ,CAAC,SAAS,CAAC,SAAS,GAAG,eAAe;AAC9C,KAAK;AACL,IAAI,CAAC,gBAAgB,GAAG;AACxB,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,eAAe;AACpD,QAAQ,CAAC,SAAS,CAAC,oBAAoB,GAAG,eAAe;AACzD,QAAQ,CAAC,SAAS,CAAC,0BAA0B,GAAG,WAAW;AAC3D,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,aAAa;AAChD,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,gBAAgB;AACnD,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,kBAAkB;AACvD,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,gBAAgB;AACnD,QAAQ,CAAC,SAAS,CAAC,SAAS,GAAG,eAAe;AAC9C,KAAK;AACL,IAAI,CAAC,YAAY,GAAG;AACpB,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AAChD,QAAQ,CAAC,SAAS,CAAC,oBAAoB,GAAG,WAAW;AACrD,QAAQ,CAAC,SAAS,CAAC,0BAA0B,GAAG,gBAAgB;AAChE,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,aAAa;AAChD,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,gBAAgB;AACnD,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,cAAc;AACnD,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,YAAY;AAC/C,QAAQ,CAAC,SAAS,CAAC,SAAS,GAAG,WAAW;AAC1C,KAAK;AACL,IAAI,CAAC,sBAAsB,GAAG;AAC9B,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,mBAAmB;AACxD,QAAQ,CAAC,SAAS,CAAC,oBAAoB,GAAG,mBAAmB;AAC7D,QAAQ,CAAC,SAAS,CAAC,0BAA0B,GAAG,gBAAgB;AAChE,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,aAAa;AAChD,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,gBAAgB;AACnD,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,sBAAsB;AAC3D,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,oBAAoB;AACvD,QAAQ,CAAC,SAAS,CAAC,SAAS,GAAG,mBAAmB;AAClD,KAAK;AACL,IAAI,CAAC,eAAe,GAAG;AACvB,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,cAAc;AACnD,QAAQ,CAAC,SAAS,CAAC,oBAAoB,GAAG,cAAc;AACxD,QAAQ,CAAC,SAAS,CAAC,0BAA0B,GAAG,gBAAgB;AAChE,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,aAAa;AAChD,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,gBAAgB;AACnD,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,iBAAiB;AACtD,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,eAAe;AAClD,QAAQ,CAAC,SAAS,CAAC,SAAS,GAAG,cAAc;AAC7C,KAAK;AACL,IAAI,CAAC,YAAY,GAAG;AACpB,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,eAAe;AACpD,QAAQ,CAAC,SAAS,CAAC,oBAAoB,GAAG,WAAW;AACrD,QAAQ,CAAC,SAAS,CAAC,0BAA0B,GAAG,yBAAyB;AACzE,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,aAAa;AAChD,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,WAAW;AAC9C,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,cAAc;AACnD,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,YAAY;AAC/C,QAAQ,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS;AACxC,KAAK;AACL,IAAI,CAAC,SAAS,GAAG;AACjB,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,gBAAgB;AACrD,QAAQ,CAAC,SAAS,CAAC,oBAAoB,GAAG,gBAAgB;AAC1D,QAAQ,CAAC,SAAS,CAAC,0BAA0B,GAAG,gBAAgB;AAChE,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,WAAW;AAC9C,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,WAAW;AAC9C,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AAChD,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,YAAY;AAC/C,QAAQ,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS;AACxC,KAAK;AACL,IAAI,CAAC,aAAa,GAAG;AACrB,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,gBAAgB;AACrD,QAAQ,CAAC,SAAS,CAAC,oBAAoB,GAAG,gBAAgB;AAC1D,QAAQ,CAAC,SAAS,CAAC,0BAA0B,GAAG,gBAAgB;AAChE,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,aAAa;AAChD,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,WAAW;AAC9C,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,eAAe;AACpD,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,aAAa;AAChD,QAAQ,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS;AACxC,KAAK;AACL,IAAI,CAAC,kBAAkB,GAAG;AAC1B,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,oBAAoB;AACzD,QAAQ,CAAC,SAAS,CAAC,oBAAoB,GAAG,WAAW;AACrD,QAAQ,CAAC,SAAS,CAAC,0BAA0B,GAAG,8BAA8B;AAC9E,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,gBAAgB;AACnD,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,gBAAgB;AACnD,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,gBAAgB;AACrD,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,gBAAgB;AACnD,QAAQ,CAAC,SAAS,CAAC,SAAS,GAAG,gBAAgB;AAC/C,KAAK;AACL,IAAI,CAAC,eAAe,GAAG;AACvB,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,eAAe;AACpD,QAAQ,CAAC,SAAS,CAAC,oBAAoB,GAAG,WAAW;AACrD,QAAQ,CAAC,SAAS,CAAC,0BAA0B,GAAG,yBAAyB;AACzE,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,aAAa;AAChD,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,WAAW;AAC9C,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,iBAAiB;AACtD,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,eAAe;AAClD,QAAQ,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS;AACxC,KAAK;AACL,IAAI,CAAC,oBAAoB,GAAG;AAC5B,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,kBAAkB;AACvD,QAAQ,CAAC,SAAS,CAAC,oBAAoB,GAAG,kBAAkB;AAC5D,QAAQ,CAAC,SAAS,CAAC,0BAA0B,GAAG,gBAAgB;AAChE,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,aAAa;AAChD,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,WAAW;AAC9C,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,qBAAqB;AAC1D,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,mBAAmB;AACtD,QAAQ,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS;AACxC,KAAK;AACL,IAAI,CAAC,kBAAkB,GAAG;AAC1B,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,gBAAgB;AACrD,QAAQ,CAAC,SAAS,CAAC,oBAAoB,GAAG,gBAAgB;AAC1D,QAAQ,CAAC,SAAS,CAAC,0BAA0B,GAAG,gBAAgB;AAChE,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,aAAa;AAChD,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,WAAW;AAC9C,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,mBAAmB;AACxD,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,iBAAiB;AACpD,QAAQ,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS;AACxC,KAAK;AACL,IAAI,CAAC,WAAW,GAAG;AACnB,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,gBAAgB;AACrD,QAAQ,CAAC,SAAS,CAAC,oBAAoB,GAAG,gBAAgB;AAC1D,QAAQ,CAAC,SAAS,CAAC,0BAA0B,GAAG,gBAAgB;AAChE,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,aAAa;AAChD,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,WAAW;AAC9C,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,aAAa;AAClD,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,WAAW;AAC9C,QAAQ,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS;AACxC,KAAK;AACL,IAAI,CAAC,YAAY,GAAG;AACpB,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,eAAe;AACpD,QAAQ,CAAC,SAAS,CAAC,oBAAoB,GAAG,WAAW;AACrD,QAAQ,CAAC,SAAS,CAAC,0BAA0B,GAAG,yBAAyB;AACzE,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,aAAa;AAChD,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,WAAW;AAC9C,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,cAAc;AACnD,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,YAAY;AAC/C,QAAQ,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS;AACxC,KAAK;AACL,IAAI,CAAC,cAAc,GAAG;AACtB,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,gBAAgB;AACrD,QAAQ,CAAC,SAAS,CAAC,oBAAoB,GAAG,WAAW;AACrD,QAAQ,CAAC,SAAS,CAAC,0BAA0B,GAAG,gBAAgB;AAChE,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,aAAa;AAChD,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,WAAW;AAC9C,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,gBAAgB;AACrD,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,cAAc;AACjD,QAAQ,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS;AACxC,KAAK;AACL,IAAI,CAAC,uBAAuB,GAAG;AAC/B,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,gBAAgB;AACrD,QAAQ,CAAC,SAAS,CAAC,oBAAoB,GAAG,WAAW;AACrD,QAAQ,CAAC,SAAS,CAAC,0BAA0B,GAAG,gBAAgB;AAChE,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,aAAa;AAChD,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,WAAW;AAC9C,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,uBAAuB;AAC5D,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,qBAAqB;AACxD,QAAQ,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS;AACxC,KAAK;AACL,IAAI,CAAC,gBAAgB,GAAG;AACxB,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,eAAe;AACpD,QAAQ,CAAC,SAAS,CAAC,oBAAoB,GAAG,WAAW;AACrD,QAAQ,CAAC,SAAS,CAAC,0BAA0B,GAAG,yBAAyB;AACzE,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,aAAa;AAChD,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,WAAW;AAC9C,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,kBAAkB;AACvD,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,gBAAgB;AACnD,QAAQ,CAAC,SAAS,CAAC,SAAS,GAAG,aAAa;AAC5C,KAAK;AACL,IAAI,CAAC,eAAe,GAAG;AACvB,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,cAAc;AACnD,QAAQ,CAAC,SAAS,CAAC,oBAAoB,GAAG,cAAc;AACxD,QAAQ,CAAC,SAAS,CAAC,0BAA0B,GAAG,yBAAyB;AACzE,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,8BAA8B;AACjE,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,WAAW;AAC9C,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,iBAAiB;AACtD,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,eAAe;AAClD,QAAQ,CAAC,SAAS,CAAC,SAAS,GAAG,WAAW;AAC1C,KAAK;AACL,IAAI,CAAC,gBAAgB,GAAG;AACxB,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AAChD,QAAQ,CAAC,SAAS,CAAC,oBAAoB,GAAG,WAAW;AACrD,QAAQ,CAAC,SAAS,CAAC,0BAA0B,GAAG,gBAAgB;AAChE,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,aAAa;AAChD,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,WAAW;AAC9C,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,kBAAkB;AACvD,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,gBAAgB;AACnD,QAAQ,CAAC,SAAS,CAAC,SAAS,GAAG,WAAW;AAC1C,KAAK;AACL,IAAI,CAAC,mBAAmB,GAAG;AAC3B,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AAChD,QAAQ,CAAC,SAAS,CAAC,oBAAoB,GAAG,WAAW;AACrD,QAAQ,CAAC,SAAS,CAAC,0BAA0B,GAAG,gBAAgB;AAChE,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,aAAa;AAChD,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,WAAW;AAC9C,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,qBAAqB;AAC1D,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,mBAAmB;AACtD,QAAQ,CAAC,SAAS,CAAC,SAAS,GAAG,WAAW;AAC1C,KAAK;AACL,IAAI,CAAC,qBAAqB,GAAG;AAC7B,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,mBAAmB;AACxD,QAAQ,CAAC,SAAS,CAAC,oBAAoB,GAAG,mBAAmB;AAC7D,QAAQ,CAAC,SAAS,CAAC,0BAA0B,GAAG,yBAAyB;AACzE,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,uBAAuB;AAC1D,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,WAAW;AAC9C,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,sBAAsB;AAC3D,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,mBAAmB;AACtD,QAAQ,CAAC,SAAS,CAAC,SAAS,GAAG,WAAW;AAC1C,KAAK;AACL,IAAI,CAAC,yBAAyB,GAAG;AACjC,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AAChD,QAAQ,CAAC,SAAS,CAAC,oBAAoB,GAAG,WAAW;AACrD,QAAQ,CAAC,SAAS,CAAC,0BAA0B,GAAG,yBAAyB;AACzE,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,uBAAuB;AAC1D,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,WAAW;AAC9C,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,0BAA0B;AAC/D,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,WAAW;AAC9C,QAAQ,CAAC,SAAS,CAAC,SAAS,GAAG,WAAW;AAC1C,KAAK;AACL,CAAC,CAAC;AACF;AACA;AACA,IAAI,QAAQ,GAAG,MAAM,MAAM,CAAC;AAC5B,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB,QAAQ,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;AAC9D;AACA,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;AACpD,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAClC;AACA,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE;AACjD,YAAY,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC;AACzD,SAAS;AACT;AACA,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;AACvC,YAAY,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,yBAAyB,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;AACxG,SAAS;AACT,KAAK;AACL;AACA;AACA,IAAI,KAAK,CAAC,IAAI,EAAE;AAChB,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;AAC3D;AACA,QAAQ,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACxC,QAAQ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACzC,QAAQ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AACnC;AACA,QAAQ,OAAO,QAAQ,CAAC;AACxB,KAAK;AACL;AACA,IAAI,aAAa,CAAC,IAAI,EAAE,eAAe,EAAE;AACzC;AACA;AACA,QAAQ,IAAI,CAAC,eAAe,EAAE;AAC9B,YAAY,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACtF,SAAS;AACT;AACA;AACA;AACA;AACA,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,cAAc,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACzF;AACA,QAAQ,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;AACvD;AACA,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;AACzE,YAAY,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;AAC1D,SAAS;AACT;AACA,QAAQ,IAAI,CAAC,gCAAgC,EAAE,CAAC;AAChD,QAAQ,IAAI,CAAC,sBAAsB,EAAE,CAAC;AACtC,QAAQ,IAAI,CAAC,mBAAmB,EAAE,CAAC;AACnC,QAAQ,IAAI,CAAC,0BAA0B,EAAE,CAAC;AAC1C,QAAQ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACzC,QAAQ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AACnC;AACA,QAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;AACzE,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE,CAAC;AACnE;AACA,QAAQ,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AAChD;AACA,QAAQ,OAAO,QAAQ,CAAC;AACxB,KAAK;AACL;AACA;AACA,IAAI,UAAU,CAAC,QAAQ,EAAE,eAAe,EAAE;AAC1C,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACrD;AACA,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AAC7B;AACA,QAAQ,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;AAC1C,QAAQ,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;AACxC;AACA,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACjC,QAAQ,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;AAC/C;AACA,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAChC,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAChC;AACA,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAClF,QAAQ,IAAI,CAAC,wBAAwB,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACpF;AACA,QAAQ,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC;AACzC,QAAQ,IAAI,CAAC,yBAAyB,GAAG,CAAC,CAAC,CAAC;AAC5C,QAAQ,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;AAC7C;AACA,QAAQ,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC;AACzC,QAAQ,IAAI,CAAC,qCAAqC,GAAG,KAAK,CAAC;AAC3D;AACA,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC/B,QAAQ,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AACrC,QAAQ,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;AAC5C,KAAK;AACL;AACA;AACA,IAAI,IAAI,GAAG;AACX;AACA,KAAK;AACL;AACA;AACA,IAAI,eAAe,CAAC,aAAa,EAAE;AACnC,QAAQ,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE;AAC9B,YAAY,IAAI,CAAC,wBAAwB,EAAE,CAAC;AAC5C;AACA,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;AACxD;AACA,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,iBAAiB,EAAE;AAC5D,gBAAgB,MAAM;AACtB,aAAa;AACb;AACA,YAAY,IAAI,IAAI,CAAC,eAAe,EAAE;AACtC,gBAAgB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAC7C;AACA,gBAAgB,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,0BAA0B,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;AACpG,oBAAoB,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAClD,wBAAwB,SAAS;AACjC,qBAAqB;AACrB;AACA,oBAAoB,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACxD,iBAAiB;AACjB,aAAa;AACb;AACA,YAAY,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAC3C;AACA,YAAY,IAAI,aAAa,IAAI,IAAI,CAAC,aAAa,EAAE;AACrD,gBAAgB,MAAM;AACtB,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA,IAAI,6BAA6B,CAAC,aAAa,EAAE,aAAa,EAAE;AAChE,QAAQ,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;AAC5C;AACA,QAAQ,IAAI,aAAa,IAAI,IAAI,CAAC,aAAa,EAAE;AACjD,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;AAC9C;AACA,YAAY,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AACtC;AACA,YAAY,aAAa,CAAC,MAAM,CAAC,CAAC;AAClC;AACA,YAAY,OAAO;AACnB,SAAS;AACT;AACA,QAAQ,IAAI,aAAa,EAAE;AAC3B,YAAY,aAAa,EAAE,CAAC;AAC5B,SAAS;AACT,KAAK;AACL;AACA;AACA,IAAI,wBAAwB,GAAG;AAC/B,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,0BAA0B,EAAE,CAAC;AAC1D;AACA,QAAQ,IAAI,CAAC,SAAS,CAAC,UAAU;AACjC,YAAY,OAAO;AACnB,YAAY,OAAO,KAAK,IAAI,CAAC,QAAQ;AACrC,YAAY,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,IAAI;AACjE,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC/C,KAAK;AACL;AACA,IAAI,oBAAoB,CAAC,YAAY,EAAE,kBAAkB,EAAE;AAC3D,QAAQ,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACnD,QAAQ,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,kBAAkB,CAAC;AAClD,QAAQ,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,aAAa,CAAC;AACxD,QAAQ,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;AACvC,KAAK;AACL;AACA,IAAI,wBAAwB,GAAG;AAC/B,QAAQ,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;AACvC,QAAQ,IAAI,CAAC,qBAAqB,GAAG,YAAY,CAAC;AAClD,QAAQ,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;AACxD,KAAK;AACL;AACA;AACA,IAAI,0BAA0B,GAAG;AACjC,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,KAAK,CAAC,IAAI,IAAI,CAAC,eAAe;AACvE,cAAc,IAAI,CAAC,eAAe;AAClC,cAAc,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;AACxC,KAAK;AACL;AACA,IAAI,0BAA0B,GAAG;AACjC,QAAQ,IAAI,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC;AACxC;AACA,QAAQ,GAAG;AACX,YAAY,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE;AAC9D,gBAAgB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxC,gBAAgB,MAAM;AACtB,aAAa;AACb;AACA,YAAY,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AACxD,SAAS,QAAQ,IAAI,EAAE;AACvB,KAAK;AACL;AACA,IAAI,gCAAgC,GAAG;AACvC,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE;AAChF,YAAY,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AACzE;AACA,YAAY,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;AACrD,gBAAgB,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AAC7D,aAAa,MAAM;AACnB,gBAAgB,EAAE,KAAK,CAAC,CAAC,KAAK;AAC9B,gBAAgB,EAAE,KAAK,CAAC,CAAC,GAAG;AAC5B,gBAAgB,EAAE,KAAK,CAAC,CAAC,MAAM;AAC/B,gBAAgB,EAAE,KAAK,CAAC,CAAC,OAAO;AAChC,gBAAgB,EAAE,KAAK,CAAC,CAAC,QAAQ;AACjC,gBAAgB,EAAE,KAAK,CAAC,CAAC,QAAQ;AACjC,cAAc;AACd,gBAAgB,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;AAC9D,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE;AACxC,gBAAgB,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC;AAClE,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,SAAS,EAAE;AAC3C,gBAAgB,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;AAChE,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA;AACA,IAAI,gBAAgB,CAAC,KAAK,EAAE;AAC5B,QAAQ,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;AACtC,QAAQ,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;AAC9C,QAAQ,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;AAC9C;AACA,QAAQ,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAClF,KAAK;AACL;AACA,IAAI,oBAAoB,CAAC,OAAO,EAAE;AAClC,QAAQ,IAAI,IAAI,CAAC,8BAA8B,EAAE,EAAE;AACnD,YAAY,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC/C,SAAS,MAAM;AACf,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,kBAAkB,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;AAC7F;AACA,YAAY,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC1D,SAAS;AACT,KAAK;AACL;AACA,IAAI,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE;AACxC,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;AACjG;AACA,QAAQ,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC3C,KAAK;AACL;AACA,IAAI,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE;AACxC,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;AACjG;AACA,QAAQ,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC3C,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACxC,KAAK;AACL;AACA,IAAI,kBAAkB,CAAC,OAAO,EAAE;AAChC,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAC7E;AACA,QAAQ,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC3C,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACxC,KAAK;AACL;AACA,IAAI,eAAe,CAAC,KAAK,EAAE;AAC3B,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;AACzF,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE,CAAC;AAClE;AACA,QAAQ,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC3D,QAAQ,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;AACxC,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrC,KAAK;AACL;AACA,IAAI,sBAAsB,GAAG;AAC7B,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAC5E;AACA,QAAQ,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACzE,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACxC,KAAK;AACL;AACA,IAAI,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE;AACtC,QAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC3E;AACA,QAAQ,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAC1D,KAAK;AACL;AACA,IAAI,iBAAiB,CAAC,KAAK,EAAE;AAC7B,QAAQ,IAAI,IAAI,CAAC,8BAA8B,EAAE,EAAE;AACnD,YAAY,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAChD,SAAS,MAAM;AACf,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,kBAAkB,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;AAC7F;AACA,YAAY,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;AAC7D,SAAS;AACT,KAAK;AACL;AACA,IAAI,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE;AAClC,QAAQ,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;AACtH,YAAY,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAC/C,YAAY,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AAC3D,SAAS;AACT,KAAK;AACL;AACA;AACA,IAAI,mCAAmC,CAAC,KAAK,EAAE;AAC/C,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,0BAA0B,EAAE,CAAC;AAC1D;AACA,QAAQ,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,IAAI,CAAC,QAAQ,EAAE;AACnD,YAAY,OAAO,KAAK,CAAC;AACzB,SAAS;AACT;AACA,QAAQ,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AAC7D;AACA,QAAQ,IAAI,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE;AAC5B,YAAY,OAAO,KAAK,CAAC;AACzB,SAAS;AACT;AACA,QAAQ;AACR,YAAY,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,cAAc;AACrE,YAAY,EAAE,KAAK,EAAE,CAAC,MAAM;AAC5B,YAAY,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,eAAe;AACpD,YAAY,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC,GAAG;AACnC,UAAU;AACV,YAAY,OAAO,KAAK,CAAC;AACzB,SAAS;AACT;AACA,QAAQ,MAAM,gBAAgB;AAC9B,YAAY,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,eAAe;AACpD,YAAY,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,oBAAoB;AACzD,YAAY,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,0BAA0B,CAAC;AAChE;AACA,QAAQ,MAAM,oBAAoB;AAClC,YAAY,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,eAAe,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC,UAAU,CAAC;AACrH;AACA,QAAQ,IAAI,CAAC,oBAAoB,IAAI,gBAAgB,KAAK,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE;AACxG,YAAY,OAAO,KAAK,CAAC;AACzB,SAAS;AACT;AACA,QAAQ;AACR,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,eAAe,IAAI,gBAAgB;AACzE,YAAY,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC;AACtD,UAAU;AACV,YAAY,OAAO,KAAK,CAAC;AACzB,SAAS;AACT;AACA,QAAQ,OAAO,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,SAAS,CAAC;AAClD,KAAK;AACL;AACA,IAAI,aAAa,CAAC,KAAK,EAAE;AACzB,QAAQ,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACpE,KAAK;AACL;AACA,IAAI,uBAAuB,CAAC,KAAK,EAAE;AACnC,QAAQ,cAAc,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC9D,KAAK;AACL;AACA,IAAI,6BAA6B,CAAC,KAAK,EAAE;AACzC,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,eAAe,EAAE;AACtD,YAAY,yBAAyB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACnD,SAAS,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,oBAAoB,EAAE;AAClE,YAAY,6BAA6B,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACvD,SAAS,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,0BAA0B,EAAE;AACxE,YAAY,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC1C,SAAS,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,aAAa,EAAE;AAC3D,YAAY,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACvC,SAAS,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,eAAe,EAAE;AAC7D,YAAY,wBAAwB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAClD,SAAS,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,aAAa,EAAE;AAC3D,YAAY,sBAAsB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAChD,SAAS;AACT,KAAK;AACL;AACA,IAAI,kBAAkB,CAAC,KAAK,EAAE;AAC9B,QAAQ,IAAI,IAAI,CAAC,mCAAmC,CAAC,KAAK,CAAC,EAAE;AAC7D,YAAY,IAAI,CAAC,6BAA6B,CAAC,KAAK,CAAC,CAAC;AACtD,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACtC,SAAS;AACT;AACA,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,eAAe,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE;AACpG,YAAY,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;AACzE,SAAS;AACT,KAAK;AACL;AACA;AACA,IAAI,mBAAmB,CAAC,OAAO,EAAE,SAAS,EAAE;AAC5C,QAAQ,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACxD,QAAQ,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AAC7D,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAC5D;AACA,QAAQ,OAAO,cAAc,CAAC,kBAAkB,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;AAC3E,KAAK;AACL;AACA;AACA,IAAI,oCAAoC,GAAG;AAC3C,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC;AAChE;AACA,QAAQ,IAAI,UAAU,EAAE;AACxB,YAAY,IAAI,SAAS,GAAG,UAAU,CAAC;AACvC,YAAY,IAAI,KAAK,GAAG,IAAI,CAAC;AAC7B;AACA,YAAY,GAAG;AACf,gBAAgB,SAAS,EAAE,CAAC;AAC5B,gBAAgB,KAAK,GAAG,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACzE;AACA,gBAAgB,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;AACpH,oBAAoB,SAAS,EAAE,CAAC;AAChC,oBAAoB,MAAM;AAC1B,iBAAiB;AACjB,aAAa,QAAQ,SAAS,GAAG,CAAC,EAAE;AACpC;AACA,YAAY,KAAK,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;AACzD,gBAAgB,KAAK,GAAG,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACjE,gBAAgB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AAClG,gBAAgB,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;AAC1D,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA;AACA,IAAI,eAAe,GAAG;AACtB,QAAQ,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC;AACnD,QAAQ,IAAI,CAAC,YAAY,CAAC,uBAAuB,EAAE,CAAC;AACpD,QAAQ,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,EAAE,CAAC;AAC1D,QAAQ,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC;AACzC,KAAK;AACL;AACA,IAAI,cAAc,GAAG;AACrB,QAAQ,IAAI,CAAC,YAAY,CAAC,mCAAmC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnE,QAAQ,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrD,KAAK;AACL;AACA;AACA,IAAI,mBAAmB,GAAG;AAC1B,QAAQ,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC5E,YAAY,IAAI,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACrD;AACA,YAAY,IAAI,CAAC,KAAK,CAAC,EAAE;AACzB,gBAAgB,IAAI,GAAG,IAAI,CAAC;AAC5B;AACA,gBAAgB,IAAI,IAAI,CAAC,eAAe,EAAE;AAC1C,oBAAoB,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC;AACnD,iBAAiB;AACjB,aAAa;AACb;AACA,YAAY,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAC5D,YAAY,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,EAAE,CAAC,CAAC;AAClE;AACA,YAAY,IAAI,gBAAgB,EAAE;AAClC,gBAAgB,IAAI,CAAC,aAAa,GAAG,gBAAgB,CAAC;AACtD,gBAAgB,MAAM;AACtB,aAAa,MAAM,IAAI,CAAC,IAAI,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE;AAC9D,gBAAgB,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;AAClD,gBAAgB,MAAM;AACtB,aAAa,MAAM,IAAI,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE;AAC/C,gBAAgB,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;AAClD,gBAAgB,MAAM;AACtB,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE;AACxC,gBAAgB,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC;AACrD,gBAAgB,MAAM;AACtB,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;AAC1C,gBAAgB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,wBAAwB,CAAC;AACnE,gBAAgB,MAAM;AACtB,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE;AACtC,gBAAgB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,GAAG,eAAe,GAAG,gBAAgB,CAAC;AAC3F,gBAAgB,MAAM;AACtB,aAAa,MAAM,IAAI,IAAI,EAAE;AAC7B,gBAAgB,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;AAClD,gBAAgB,MAAM;AACtB,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA,IAAI,4BAA4B,CAAC,SAAS,EAAE;AAC5C,QAAQ,IAAI,SAAS,GAAG,CAAC,EAAE;AAC3B,YAAY,KAAK,IAAI,CAAC,GAAG,SAAS,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACpD,gBAAgB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5D,gBAAgB,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACjE;AACA,gBAAgB,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;AACvC,oBAAoB,MAAM;AAC1B,iBAAiB,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE;AAC3C,oBAAoB,IAAI,CAAC,aAAa,GAAG,uBAAuB,CAAC;AACjE,oBAAoB,OAAO;AAC3B,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA,QAAQ,IAAI,CAAC,aAAa,GAAG,cAAc,CAAC;AAC5C,KAAK;AACL;AACA,IAAI,sBAAsB,CAAC,IAAI,EAAE;AACjC,QAAQ,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/C,QAAQ,IAAI,CAAC,yBAAyB,EAAE,CAAC;AACzC,QAAQ,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;AAC7C,KAAK;AACL;AACA,IAAI,qBAAqB,GAAG;AAC5B,QAAQ,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,CAAC;AAC1C,QAAQ,IAAI,CAAC,yBAAyB,EAAE,CAAC;AACzC,QAAQ,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;AACpG,KAAK;AACL;AACA;AACA,IAAI,+BAA+B,CAAC,OAAO,EAAE;AAC7C,QAAQ,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACxD;AACA,QAAQ,OAAO,EAAE,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;AACnG,KAAK;AACL;AACA,IAAI,8BAA8B,GAAG;AACrC,QAAQ,OAAO,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AAC9G,KAAK;AACL;AACA,IAAI,4BAA4B,GAAG;AACnC,QAAQ,MAAM,QAAQ,GAAG;AACzB,YAAY,MAAM,EAAE,IAAI;AACxB,YAAY,aAAa,EAAE,IAAI;AAC/B,SAAS,CAAC;AACV;AACA,QAAQ,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC9D,YAAY,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3D,YAAY,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChE,YAAY,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;AACrE;AACA,YAAY,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,IAAI,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE;AACrD,gBAAgB,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;AACnF,gBAAgB,MAAM;AACtB,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE;AACvC,gBAAgB,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;AAC9E;AACA,gBAAgB,IAAI,QAAQ,CAAC,MAAM,EAAE;AACrC,oBAAoB,QAAQ,CAAC,aAAa,GAAG,WAAW,CAAC;AACzD,iBAAiB,MAAM;AACvB,oBAAoB,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACrE,iBAAiB;AACjB;AACA,gBAAgB,MAAM;AACtB,aAAa;AACb,SAAS;AACT;AACA,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AAC9B,YAAY,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACzD,SAAS;AACT;AACA,QAAQ,OAAO,QAAQ,CAAC;AACxB,KAAK;AACL;AACA,IAAI,oBAAoB,CAAC,OAAO,EAAE;AAClC,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,4BAA4B,EAAE,CAAC;AAC7D;AACA,QAAQ,IAAI,QAAQ,CAAC,aAAa,EAAE;AACpC,YAAY,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;AAC5F,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACnE,SAAS;AACT,KAAK;AACL;AACA,IAAI,iBAAiB,CAAC,KAAK,EAAE;AAC7B,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,4BAA4B,EAAE,CAAC;AAC7D;AACA,QAAQ,IAAI,QAAQ,CAAC,aAAa,EAAE;AACpC,YAAY,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;AAC9F,SAAS,MAAM;AACf,YAAY,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAChE,SAAS;AACT,KAAK;AACL;AACA;AACA,IAAI,iBAAiB,CAAC,OAAO,EAAE;AAC/B,QAAQ,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACxD,QAAQ,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AAC7D;AACA,QAAQ,OAAO,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAC7C,KAAK;AACL,CAAC,CAAC;AACF;AACA,IAAI,MAAM,GAAG,QAAQ,CAAC;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,8BAA8B,CAAC,CAAC,EAAE,KAAK,EAAE;AAClD,IAAI,IAAI,sBAAsB,GAAG,CAAC,CAAC,wBAAwB,CAAC,iCAAiC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC7G;AACA,IAAI,IAAI,sBAAsB,EAAE;AAChC,QAAQ,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC,OAAO,CAAC,EAAE;AACtE,YAAY,CAAC,CAAC,wBAAwB,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;AAC3E,YAAY,sBAAsB,GAAG,IAAI,CAAC;AAC1C,SAAS,MAAM,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;AAC9D,YAAY,sBAAsB,GAAG,IAAI,CAAC;AAC1C,SAAS;AACT,KAAK,MAAM;AACX,QAAQ,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACtC,KAAK;AACL;AACA,IAAI,OAAO,sBAAsB,CAAC;AAClC,CAAC;AACD;AACA;AACA,SAAS,qBAAqB,CAAC,CAAC,EAAE,sBAAsB,EAAE;AAC1D,IAAI,IAAI,aAAa,GAAG,IAAI,CAAC;AAC7B;AACA,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACvD,QAAQ,MAAM,OAAO,GAAG,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChD;AACA,QAAQ,IAAI,OAAO,KAAK,sBAAsB,CAAC,OAAO,EAAE;AACxD,YAAY,MAAM;AAClB,SAAS;AACT;AACA,QAAQ,IAAI,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE;AAC1C,YAAY,aAAa,GAAG,OAAO,CAAC;AACpC,SAAS;AACT,KAAK;AACL;AACA,IAAI,IAAI,CAAC,aAAa,EAAE;AACxB,QAAQ,CAAC,CAAC,YAAY,CAAC,qBAAqB,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAC7E,QAAQ,CAAC,CAAC,wBAAwB,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;AACvE,KAAK;AACL;AACA,IAAI,OAAO,aAAa,CAAC;AACzB,CAAC;AACD;AACA;AACA,SAAS,WAAW,CAAC,CAAC,EAAE,aAAa,EAAE,iBAAiB,EAAE;AAC1D,IAAI,IAAI,WAAW,GAAG,aAAa,CAAC;AACpC,IAAI,IAAI,WAAW,GAAG,CAAC,CAAC,YAAY,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;AACtE;AACA,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,WAAW,EAAE,OAAO,KAAK,iBAAiB,EAAE,CAAC,EAAE,EAAE,OAAO,GAAG,WAAW,EAAE;AACtG;AACA,QAAQ,WAAW,GAAG,CAAC,CAAC,YAAY,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAChE;AACA,QAAQ,MAAM,YAAY,GAAG,CAAC,CAAC,wBAAwB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AACjF,QAAQ,MAAM,eAAe,GAAG,YAAY,IAAI,CAAC,IAAI,kBAAkB,CAAC;AACxE,QAAQ,MAAM,4BAA4B,GAAG,CAAC,YAAY,IAAI,eAAe,CAAC;AAC9E;AACA,QAAQ,IAAI,4BAA4B,EAAE;AAC1C,YAAY,IAAI,eAAe,EAAE;AACjC,gBAAgB,CAAC,CAAC,wBAAwB,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AACrE,aAAa;AACb;AACA,YAAY,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC3C,SAAS,MAAM;AACf,YAAY,OAAO,GAAG,0BAA0B,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;AAClE;AACA,YAAY,IAAI,WAAW,KAAK,aAAa,EAAE;AAC/C,gBAAgB,CAAC,CAAC,wBAAwB,CAAC,QAAQ,GAAG,YAAY,CAAC;AACnE,aAAa;AACb;AACA,YAAY,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAClD,YAAY,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AAC5D,YAAY,WAAW,GAAG,OAAO,CAAC;AAClC,SAAS;AACT,KAAK;AACL;AACA,IAAI,OAAO,WAAW,CAAC;AACvB,CAAC;AACD;AACA;AACA,SAAS,0BAA0B,CAAC,CAAC,EAAE,YAAY,EAAE;AACrD,IAAI,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AACnE,IAAI,MAAM,UAAU,GAAG,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC7G;AACA,IAAI,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AAC7D,IAAI,YAAY,CAAC,OAAO,GAAG,UAAU,CAAC;AACtC;AACA,IAAI,OAAO,UAAU,CAAC;AACtB,CAAC;AACD;AACA;AACA,SAAS,gCAAgC,CAAC,CAAC,EAAE,cAAc,EAAE,WAAW,EAAE;AAC1E,IAAI,IAAI,CAAC,CAAC,+BAA+B,CAAC,cAAc,CAAC,EAAE;AAC3D,QAAQ,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;AAC5C,KAAK,MAAM;AACX,QAAQ,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AAC5D,QAAQ,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;AACjE;AACA,QAAQ,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,IAAI,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE;AACjD,YAAY,cAAc,GAAG,CAAC,CAAC,WAAW,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;AAC9E,SAAS;AACT;AACA,QAAQ,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;AAC/D,KAAK;AACL,CAAC;AACD;AACA;AACA,SAAS,0BAA0B,CAAC,CAAC,EAAE,aAAa,EAAE,sBAAsB,EAAE;AAC9E,IAAI,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAC7E,IAAI,MAAM,KAAK,GAAG,sBAAsB,CAAC,KAAK,CAAC;AAC/C,IAAI,MAAM,UAAU,GAAG,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;AACnF;AACA,IAAI,CAAC,CAAC,WAAW,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;AAC7C,IAAI,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;AACzD;AACA,IAAI,CAAC,CAAC,wBAAwB,CAAC,0BAA0B,CAAC,UAAU,EAAE,sBAAsB,CAAC,KAAK,CAAC,CAAC;AACpG,IAAI,CAAC,CAAC,wBAAwB,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;AACnE;AACA,IAAI,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAC1D,IAAI,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;AAC1D,CAAC;AACD;AACA;AACA,SAAS,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE;AACtC,IAAI,IAAI,sBAAsB,CAAC;AAC/B;AACA,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,kBAAkB,EAAE,CAAC,EAAE,EAAE;AACjD,QAAQ,sBAAsB,GAAG,8BAA8B,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC1E;AACA,QAAQ,IAAI,CAAC,sBAAsB,EAAE;AACrC,YAAY,MAAM;AAClB,SAAS;AACT;AACA,QAAQ,MAAM,aAAa,GAAG,qBAAqB,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC;AAC/E;AACA,QAAQ,IAAI,CAAC,aAAa,EAAE;AAC5B,YAAY,MAAM;AAClB,SAAS;AACT;AACA,QAAQ,CAAC,CAAC,wBAAwB,CAAC,QAAQ,GAAG,sBAAsB,CAAC;AACrE;AACA,QAAQ,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,EAAE,aAAa,EAAE,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAC1F,QAAQ,MAAM,cAAc,GAAG,CAAC,CAAC,YAAY,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChG;AACA,QAAQ,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAC9C,QAAQ,gCAAgC,CAAC,CAAC,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;AACzE,QAAQ,0BAA0B,CAAC,CAAC,EAAE,aAAa,EAAE,sBAAsB,CAAC,CAAC;AAC7E,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA,SAAS,WAAW,GAAG;AACvB;AACA,CAAC;AACD;AACA,SAAS,gBAAgB,CAAC,CAAC,EAAE;AAC7B,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AACjC,CAAC;AACD;AACA,SAAS,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE;AACjC,IAAI,CAAC,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC,CAAC,YAAY,CAAC,kBAAkB,IAAI,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AAC7F,CAAC;AACD;AACA,SAAS,8BAA8B,CAAC,CAAC,EAAE,KAAK,EAAE;AAClD,IAAI,CAAC,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC;AACD;AACA,SAAS,uBAAuB,CAAC,CAAC,EAAE,KAAK,EAAE;AAC3C,IAAI,CAAC,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;AAC5C,CAAC;AACD;AACA,SAAS,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE;AACpC,IAAI,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AACD;AACA,SAAS,WAAW,CAAC,CAAC,EAAE;AACxB,IAAI,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;AACrB,CAAC;AACD;AACA;AACA;AACA,SAAS,oBAAoB,CAAC,CAAC,EAAE,KAAK,EAAE;AACxC,IAAI,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC9B;AACA,IAAI,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AAChG;AACA,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;AACtC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;AACzC,KAAK;AACL;AACA,IAAI,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACpD;AACA,IAAI,CAAC,CAAC,aAAa,GAAG,gBAAgB,CAAC;AACvC,CAAC;AACD;AACA,SAAS,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE;AACtC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;AACtD,IAAI,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AACzE,IAAI,CAAC,CAAC,aAAa,GAAG,gBAAgB,CAAC;AACvC,IAAI,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AACD;AACA;AACA;AACA,SAAS,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE;AACtC,IAAI,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC,IAAI,EAAE;AAClC,QAAQ,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACzC,QAAQ,CAAC,CAAC,aAAa,GAAG,gBAAgB,CAAC;AAC3C,KAAK,MAAM;AACX,QAAQ,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAClC,KAAK;AACL,CAAC;AACD;AACA,SAAS,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE;AACpC,IAAI,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7B;AACA,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE;AACxE,QAAQ,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAClC,KAAK;AACL,CAAC;AACD;AACA,SAAS,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE;AACnC,IAAI,CAAC,CAAC,sBAAsB,EAAE,CAAC;AAC/B,IAAI,CAAC,CAAC,aAAa,GAAG,gBAAgB,CAAC;AACvC,IAAI,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AACD;AACA;AACA;AACA,SAAS,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE;AACtC,IAAI,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7B;AACA,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE;AACvB,QAAQ,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjC,KAAK,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE;AAC9B,QAAQ,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACzC,QAAQ,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC;AAC/C,QAAQ,CAAC,CAAC,aAAa,GAAG,YAAY,CAAC;AACvC,KAAK,MAAM;AACX,QAAQ,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAClC,KAAK;AACL,CAAC;AACD;AACA,SAAS,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE;AACpC,IAAI,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7B;AACA,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE;AACxE,QAAQ,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAClC,KAAK,MAAM;AACX,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;AACrD,KAAK;AACL,CAAC;AACD;AACA,SAAS,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE;AACnC,IAAI,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACjC,IAAI,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC;AAC3C,IAAI,CAAC,CAAC,aAAa,GAAG,YAAY,CAAC;AACnC,IAAI,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AACD;AACA;AACA;AACA,SAAS,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE;AAClC,IAAI,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7B;AACA,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE;AACvB,QAAQ,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjC,KAAK,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE;AACzG,QAAQ,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACzC,QAAQ,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;AACpC,KAAK,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE;AAC/B,QAAQ,CAAC,CAAC,oBAAoB,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7D,KAAK,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;AAClC,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE;AACxC,YAAY,CAAC,CAAC,oBAAoB,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAClE,SAAS,MAAM;AACf,YAAY,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AAC7C,YAAY,CAAC,CAAC,aAAa,GAAG,sBAAsB,CAAC;AACrD,SAAS;AACT,KAAK,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE;AACpD,QAAQ,CAAC,CAAC,oBAAoB,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC9D,KAAK,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE;AAChC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAClE,KAAK,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;AAClC,QAAQ,CAAC,CAAC,eAAe,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AAC1C,QAAQ,CAAC,CAAC,wBAAwB,CAAC,YAAY,EAAE,CAAC;AAClD,QAAQ,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC;AAC7B,QAAQ,CAAC,CAAC,aAAa,GAAG,gBAAgB,CAAC;AAC3C,QAAQ,CAAC,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;AACnD,KAAK,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE;AAC9B,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;AACpD,KAAK,MAAM;AACX,QAAQ,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC9B,KAAK;AACL,CAAC;AACD;AACA,SAAS,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE;AAChC,IAAI,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7B;AACA,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE;AACvB,QAAQ,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;AAC7B,QAAQ,CAAC,CAAC,aAAa,GAAG,eAAe,CAAC;AAC1C,KAAK,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE;AAC9D,QAAQ,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC9B,KAAK,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;AAClC,QAAQ,IAAI,CAAC,CAAC,YAAY,CAAC,SAAS,GAAG,CAAC,EAAE;AAC1C,YAAY,CAAC,CAAC,YAAY,CAAC,gCAAgC,EAAE,CAAC;AAC9D;AACA,YAAY,IAAI,CAAC,CAAC,YAAY,CAAC,cAAc,KAAK,CAAC,CAAC,QAAQ,EAAE;AAC9D,gBAAgB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;AAClE,aAAa;AACb;AACA,YAAY,CAAC,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AAC7D,YAAY,CAAC,CAAC,wBAAwB,CAAC,iBAAiB,EAAE,CAAC;AAC3D,YAAY,CAAC,CAAC,qBAAqB,EAAE,CAAC;AACtC,YAAY,CAAC,CAAC,mBAAmB,EAAE,CAAC;AACpC,SAAS,MAAM;AACf,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;AACzD,SAAS;AACT,KAAK,MAAM;AACX,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;AACrD,KAAK;AACL,CAAC;AACD;AACA,SAAS,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE;AAC/B,IAAI,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;AACzB,IAAI,CAAC,CAAC,aAAa,GAAG,eAAe,CAAC;AACtC,IAAI,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AACD;AACA;AACA;AACA,SAAS,sBAAsB,CAAC,CAAC,EAAE,KAAK,EAAE;AAC1C,IAAI,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7B;AACA,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE;AACvB,QAAQ,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjC,KAAK,MAAM;AACX,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ;AACzB,QAAQ,EAAE,KAAK,CAAC,CAAC,OAAO;AACxB,QAAQ,EAAE,KAAK,CAAC,CAAC,IAAI;AACrB,QAAQ,EAAE,KAAK,CAAC,CAAC,IAAI;AACrB,QAAQ,EAAE,KAAK,CAAC,CAAC,IAAI;AACrB,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ;AACzB,QAAQ,EAAE,KAAK,CAAC,CAAC,KAAK;AACtB,MAAM;AACN,QAAQ,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjC,KAAK,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;AAClC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;AACzC,KAAK,MAAM;AACX,QAAQ,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACtC,KAAK;AACL,CAAC;AACD;AACA,SAAS,oBAAoB,CAAC,CAAC,EAAE,KAAK,EAAE;AACxC,IAAI,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7B;AACA,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;AAC3B,QAAQ,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;AAC7B,QAAQ,CAAC,CAAC,aAAa,GAAG,YAAY,CAAC;AACvC,KAAK,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE;AAC5B,QAAQ,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACtC,KAAK,MAAM;AACX,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;AACrD,KAAK;AACL,CAAC;AACD;AACA,SAAS,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE;AACvC,IAAI,MAAM,OAAO;AACjB,QAAQ,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,SAAS,GAAG,GAAG,CAAC,wBAAwB,GAAG,GAAG,CAAC,iCAAiC,CAAC;AAClH;AACA,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACpB,IAAI,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;AACzB,IAAI,CAAC,CAAC,aAAa,GAAG,YAAY,CAAC;AACnC,IAAI,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AACD;AACA;AACA;AACA,SAAS,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE;AACrC,IAAI,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7B;AACA,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE;AACvB,QAAQ,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjC,KAAK,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE;AAC9B,QAAQ,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACzC,QAAQ,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC;AAC7B,QAAQ,CAAC,CAAC,aAAa,GAAG,YAAY,CAAC;AACvC,KAAK,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;AAClC,QAAQ,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACzC,QAAQ,CAAC,CAAC,aAAa,GAAG,gBAAgB,CAAC;AAC3C,KAAK,MAAM;AACX,QAAQ,EAAE,KAAK,CAAC,CAAC,IAAI;AACrB,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ;AACzB,QAAQ,EAAE,KAAK,CAAC,CAAC,OAAO;AACxB,QAAQ,EAAE,KAAK,CAAC,CAAC,IAAI;AACrB,QAAQ,EAAE,KAAK,CAAC,CAAC,IAAI;AACrB,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ;AACzB,QAAQ,EAAE,KAAK,CAAC,CAAC,MAAM;AACvB,QAAQ,EAAE,KAAK,CAAC,CAAC,KAAK;AACtB,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ;AACzB,QAAQ,EAAE,KAAK,CAAC,CAAC,KAAK;AACtB,MAAM;AACN,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;AAC9C,QAAQ,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;AAC3C,QAAQ,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjC,QAAQ,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;AAC7C,KAAK,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE;AAC9B,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;AACpD,KAAK,MAAM;AACX,QAAQ,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjC,KAAK;AACL,CAAC;AACD;AACA,SAAS,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE;AACnC,IAAI,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7B;AACA,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE;AACvD,QAAQ,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjC,KAAK,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;AAClC,QAAQ,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/B,KAAK,MAAM;AACX,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;AACrD,KAAK;AACL,CAAC;AACD;AACA,SAAS,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE;AAClC,IAAI,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACjC,IAAI,CAAC,CAAC,aAAa,GAAG,YAAY,CAAC;AACnC,IAAI,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AACD;AACA;AACA;AACA,SAAS,yBAAyB,CAAC,CAAC,EAAE,KAAK,EAAE;AAC7C,IAAI,CAAC,CAAC,oCAAoC,EAAE,CAAC;AAC7C,IAAI,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AACD;AACA,SAAS,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE;AACnC,IAAI,CAAC,CAAC,oCAAoC,EAAE,CAAC;AAC7C,IAAI,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAC/B,IAAI,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC;AACzB,CAAC;AACD;AACA,SAAS,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE;AACtC,IAAI,IAAI,CAAC,CAAC,YAAY,CAAC,SAAS,KAAK,CAAC,EAAE;AACxC,QAAQ,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;AAC5E,KAAK;AACL,CAAC;AACD;AACA,SAAS,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE;AACtC,IAAI,MAAM,WAAW,GAAG,CAAC,CAAC,YAAY,CAAC,gCAAgC,EAAE,CAAC;AAC1E;AACA,IAAI,IAAI,WAAW,IAAI,CAAC,CAAC,YAAY,CAAC,SAAS,KAAK,CAAC,EAAE;AACvD,QAAQ,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC;AAC7B,QAAQ,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;AAChE,KAAK;AACL,CAAC;AACD;AACA,SAAS,sBAAsB,CAAC,CAAC,EAAE,KAAK,EAAE;AAC1C,IAAI,MAAM,WAAW,GAAG,CAAC,CAAC,YAAY,CAAC,gCAAgC,EAAE,CAAC;AAC1E;AACA,IAAI,IAAI,CAAC,CAAC,UAAU,IAAI,WAAW,EAAE;AACrC,QAAQ,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAC9C,QAAQ,CAAC,CAAC,YAAY,CAAC,qBAAqB,EAAE,CAAC;AAC/C,QAAQ,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACzC,QAAQ,CAAC,CAAC,aAAa,GAAG,gBAAgB,CAAC;AAC3C,KAAK;AACL,CAAC;AACD;AACA,SAAS,qBAAqB,CAAC,CAAC,EAAE,KAAK,EAAE;AACzC,IAAI,IAAI,CAAC,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC9C,QAAQ,CAAC,CAAC,cAAc,EAAE,CAAC;AAC3B,KAAK;AACL;AACA,IAAI,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC;AACD;AACA,SAAS,4BAA4B,CAAC,CAAC,EAAE,KAAK,EAAE;AAChD,IAAI,IAAI,CAAC,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC9C,QAAQ,CAAC,CAAC,cAAc,EAAE,CAAC;AAC3B,KAAK;AACL;AACA,IAAI,MAAM,EAAE,GAAG,CAAC,CAAC,YAAY,CAAC,cAAc,CAAC;AAC7C;AACA,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE;AAChG,QAAQ,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;AAC7B,KAAK;AACL;AACA,IAAI,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC;AACD;AACA,SAAS,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE;AACrC,IAAI,IAAI,CAAC,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC9C,QAAQ,CAAC,CAAC,cAAc,EAAE,CAAC;AAC3B,KAAK;AACL;AACA,IAAI,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACrC;AACA;AACA,IAAI,CAAC,CAAC,eAAe,GAAG,IAAI,CAAC;AAC7B,IAAI,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC;AACzB,CAAC;AACD;AACA,SAAS,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE;AACtC,IAAI,MAAM,UAAU,GAAG,CAAC,CAAC,YAAY,CAAC,SAAS,GAAG,CAAC,CAAC;AACpD;AACA,IAAI,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,UAAU,EAAE;AACtC,QAAQ,IAAI,CAAC,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAClD,YAAY,CAAC,CAAC,cAAc,EAAE,CAAC;AAC/B,SAAS;AACT;AACA,QAAQ,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACzC;AACA,QAAQ,IAAI,CAAC,UAAU,EAAE;AACzB,YAAY,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC;AACnD,SAAS;AACT,KAAK;AACL,CAAC;AACD;AACA,SAAS,sBAAsB,CAAC,CAAC,EAAE,KAAK,EAAE;AAC1C,IAAI,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC;AACzB;AACA,IAAI,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7B;AACA,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACvD,QAAQ,MAAM,OAAO,GAAG,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChD,QAAQ,MAAM,SAAS,GAAG,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAC5D,QAAQ,IAAI,OAAO,GAAG,IAAI,CAAC;AAC3B;AACA,QAAQ,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,EAAE;AAC/C,YAAY,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC;AAC3B,SAAS,MAAM,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,MAAM,SAAS,KAAK,CAAC,CAAC,EAAE,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE;AAC/F,YAAY,OAAO,GAAG,SAAS,CAAC;AAChC,SAAS;AACT;AACA,QAAQ,IAAI,OAAO,EAAE;AACrB,YAAY,CAAC,CAAC,YAAY,CAAC,mCAAmC,CAAC,OAAO,CAAC,CAAC;AACxE,YAAY,CAAC,CAAC,YAAY,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC1D,YAAY,MAAM;AAClB,SAAS;AACT;AACA,QAAQ,IAAI,SAAS,KAAK,CAAC,CAAC,OAAO,IAAI,SAAS,KAAK,CAAC,CAAC,GAAG,IAAI,SAAS,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE;AACjH,YAAY,MAAM;AAClB,SAAS;AACT,KAAK;AACL;AACA,IAAI,IAAI,CAAC,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC9C,QAAQ,CAAC,CAAC,cAAc,EAAE,CAAC;AAC3B,KAAK;AACL;AACA,IAAI,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC;AACD;AACA,SAAS,uBAAuB,CAAC,CAAC,EAAE,KAAK,EAAE;AAC3C,IAAI,IAAI,CAAC,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC9C,QAAQ,CAAC,CAAC,cAAc,EAAE,CAAC;AAC3B,KAAK;AACL;AACA,IAAI,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACrC,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;AACjD,CAAC;AACD;AACA,SAAS,oBAAoB,CAAC,CAAC,EAAE,KAAK,EAAE;AACxC,IAAI,IAAI,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;AAC7C,QAAQ,CAAC,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC;AAChD,QAAQ,CAAC,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AACvD,KAAK;AACL;AACA,IAAI,CAAC,CAAC,oCAAoC,EAAE,CAAC;AAC7C,IAAI,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACrC,IAAI,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC;AACzB,CAAC;AACD;AACA,SAAS,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE;AACnC,IAAI,MAAM,kBAAkB,GAAG,CAAC,CAAC,wBAAwB,CAAC,iCAAiC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjG;AACA,IAAI,IAAI,kBAAkB,EAAE;AAC5B,QAAQ,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACrC,QAAQ,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAC1D,QAAQ,CAAC,CAAC,wBAAwB,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;AACnE,KAAK;AACL;AACA,IAAI,CAAC,CAAC,oCAAoC,EAAE,CAAC;AAC7C,IAAI,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACrC,IAAI,CAAC,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAC1E,CAAC;AACD;AACA,SAAS,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE;AACnC,IAAI,CAAC,CAAC,oCAAoC,EAAE,CAAC;AAC7C,IAAI,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACrC,IAAI,CAAC,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAC1E,CAAC;AACD;AACA,SAAS,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE;AACtC,IAAI,CAAC,CAAC,oCAAoC,EAAE,CAAC;AAC7C;AACA,IAAI,IAAI,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AAC3C,QAAQ,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACrC,QAAQ,CAAC,CAAC,oCAAoC,EAAE,CAAC;AACjD,KAAK;AACL;AACA,IAAI,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACrC,IAAI,CAAC,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAC1E,CAAC;AACD;AACA,SAAS,oBAAoB,CAAC,CAAC,EAAE,KAAK,EAAE;AACxC,IAAI,CAAC,CAAC,oCAAoC,EAAE,CAAC;AAC7C,IAAI,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACrC,IAAI,CAAC,CAAC,wBAAwB,CAAC,YAAY,EAAE,CAAC;AAC9C,IAAI,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC;AACzB,CAAC;AACD;AACA,SAAS,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE;AACvC,IAAI;AACJ,QAAQ,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,MAAM;AAC/E,QAAQ,CAAC,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,MAAM;AACN,QAAQ,CAAC,CAAC,cAAc,EAAE,CAAC;AAC3B,KAAK;AACL;AACA,IAAI,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACrC,IAAI,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC;AACzB,IAAI,CAAC,CAAC,aAAa,GAAG,aAAa,CAAC;AACpC,CAAC;AACD;AACA,SAAS,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE;AACtC,IAAI,CAAC,CAAC,oCAAoC,EAAE,CAAC;AAC7C,IAAI,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACrC,IAAI,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC;AACzB,IAAI,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;AAChC,CAAC;AACD;AACA,SAAS,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE;AACvC,IAAI,CAAC,CAAC,oCAAoC,EAAE,CAAC;AAC7C,IAAI,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACrC;AACA,IAAI,MAAM,SAAS,GAAG,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;AAChE;AACA,IAAI,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,WAAW,EAAE,KAAK,iBAAiB,EAAE;AACrE,QAAQ,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC;AAC7B,KAAK;AACL;AACA,IAAI,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;AAChC,CAAC;AACD;AACA,SAAS,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE;AACvC,IAAI,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACrC,IAAI,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;AAChC,CAAC;AACD;AACA,SAAS,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE;AACpC,IAAI,IAAI,CAAC,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC9C,QAAQ,CAAC,CAAC,cAAc,EAAE,CAAC;AAC3B,KAAK;AACL;AACA,IAAI,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACrC,IAAI,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC;AACzB,IAAI,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;AAChC,CAAC;AACD;AACA,SAAS,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE;AACvC,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC;AAC1B,IAAI,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjC,CAAC;AACD;AACA,SAAS,sBAAsB,CAAC,CAAC,EAAE,KAAK,EAAE;AAC1C,IAAI,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACrC;AACA;AACA,IAAI,CAAC,CAAC,eAAe,GAAG,IAAI,CAAC;AAC7B,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AAC9C,IAAI,CAAC,CAAC,qBAAqB,GAAG,CAAC,CAAC,aAAa,CAAC;AAC9C,IAAI,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC;AACzB,IAAI,CAAC,CAAC,aAAa,GAAG,SAAS,CAAC;AAChC,CAAC;AACD;AACA,SAAS,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE;AACrC,IAAI,IAAI,CAAC,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC9C,QAAQ,CAAC,CAAC,cAAc,EAAE,CAAC;AAC3B,KAAK;AACL;AACA,IAAI,CAAC,CAAC,oCAAoC,EAAE,CAAC;AAC7C,IAAI,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC;AACzB,IAAI,CAAC,CAAC,oBAAoB,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC1D,CAAC;AACD;AACA,SAAS,oBAAoB,CAAC,CAAC,EAAE,KAAK,EAAE;AACxC,IAAI,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC;AACzB,IAAI,CAAC,CAAC,oBAAoB,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC1D,CAAC;AACD;AACA;AACA;AACA,SAAS,qBAAqB,CAAC,CAAC,EAAE,KAAK,EAAE;AACzC,IAAI,CAAC,CAAC,oBAAoB,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC1D,CAAC;AACD;AACA,SAAS,oBAAoB,CAAC,CAAC,EAAE,KAAK,EAAE;AACxC,IAAI,CAAC,CAAC,oCAAoC,EAAE,CAAC;AAC7C,IAAI,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACrC,IAAI,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC;AACzB;AACA,IAAI;AACJ,QAAQ,CAAC,CAAC,aAAa,KAAK,aAAa;AACzC,QAAQ,CAAC,CAAC,aAAa,KAAK,eAAe;AAC3C,QAAQ,CAAC,CAAC,aAAa,KAAK,kBAAkB;AAC9C,QAAQ,CAAC,CAAC,aAAa,KAAK,WAAW;AACvC,QAAQ,CAAC,CAAC,aAAa,KAAK,YAAY;AACxC,MAAM;AACN,QAAQ,CAAC,CAAC,aAAa,GAAG,uBAAuB,CAAC;AAClD,KAAK,MAAM;AACX,QAAQ,CAAC,CAAC,aAAa,GAAG,cAAc,CAAC;AACzC,KAAK;AACL,CAAC;AACD;AACA,SAAS,sBAAsB,CAAC,CAAC,EAAE,KAAK,EAAE;AAC1C,IAAI,IAAI,CAAC,CAAC,YAAY,CAAC,cAAc,KAAK,CAAC,CAAC,MAAM,EAAE;AACpD,QAAQ,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;AAC7B,KAAK;AACL;AACA,IAAI,CAAC,CAAC,oCAAoC,EAAE,CAAC;AAC7C,IAAI,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC;AACD;AACA,SAAS,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE;AACpC,IAAI,IAAI,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AAC3C,QAAQ,CAAC,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC;AAChD,KAAK;AACL;AACA,IAAI,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC;AACD;AACA,SAAS,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE;AACpC,IAAI,IAAI,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AAC3C,QAAQ,CAAC,CAAC,YAAY,CAAC,mCAAmC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAClE,KAAK;AACL;AACA,IAAI,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC;AACD;AACA,SAAS,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE;AACtC,IAAI,IAAI,CAAC,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC9C,QAAQ,CAAC,CAAC,cAAc,EAAE,CAAC;AAC3B,KAAK;AACL;AACA,IAAI,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC;AACD;AACA,SAAS,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE;AACtC,IAAI,CAAC,CAAC,oCAAoC,EAAE,CAAC;AAC7C;AACA,IAAI,cAAc,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;AACjD,IAAI,cAAc,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAC9C;AACA,IAAI,IAAI,KAAK,CAAC,WAAW,EAAE;AAC3B,QAAQ,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;AAC3C,KAAK,MAAM;AACX,QAAQ,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;AAC3C,KAAK;AACL;AACA,IAAI,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;AAChC,CAAC;AACD;AACA,SAAS,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE;AACrC,IAAI,CAAC,CAAC,oCAAoC,EAAE,CAAC;AAC7C;AACA,IAAI,cAAc,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAC9C,IAAI,cAAc,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAC9C;AACA,IAAI,IAAI,KAAK,CAAC,WAAW,EAAE;AAC3B,QAAQ,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;AACxC,KAAK,MAAM;AACX,QAAQ,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;AACxC,KAAK;AACL;AACA,IAAI,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;AAChC,CAAC;AACD;AACA,SAAS,qBAAqB,CAAC,CAAC,EAAE,KAAK,EAAE;AACzC,IAAI,CAAC,CAAC,oCAAoC,EAAE,CAAC;AAC7C,IAAI,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC;AACD;AACA;AACA;AACA,SAAS,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE;AAClC,IAAI,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7B;AACA,IAAI,QAAQ,EAAE,CAAC,MAAM;AACrB,QAAQ,KAAK,CAAC;AACd,YAAY,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE;AACtE,gBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC1C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE;AACnC,gBAAgB,qBAAqB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAChD,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE;AACnC,gBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC1C,aAAa,MAAM;AACnB,gBAAgB,qBAAqB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAChD,aAAa;AACb;AACA,YAAY,MAAM;AAClB;AACA,QAAQ,KAAK,CAAC;AACd,YAAY,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE;AAC3D,gBAAgB,qBAAqB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAChD,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE;AAC/G,gBAAgB,4BAA4B,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACvD,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE;AAClE,gBAAgB,sBAAsB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjD,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE;AACnD,gBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC1C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE;AACpC,gBAAgB,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC7C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE;AACpC,gBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC3C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE;AACpC,gBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC3C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE;AACnD,gBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC3C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE;AAClE,gBAAgB,qBAAqB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAChD,aAAa;AACb;AACA,YAAY,MAAM;AAClB;AACA,QAAQ,KAAK,CAAC;AACd,YAAY,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE;AAC9D,gBAAgB,qBAAqB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAChD,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE;AACrC,gBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC5C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE;AACrC,gBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC1C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE;AACrD,gBAAgB,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC7C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE;AACrC,gBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC5C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE;AACrC,gBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC5C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE;AACrC,gBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC3C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE;AACrC,gBAAgB,qBAAqB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAChD,aAAa;AACb;AACA,YAAY,MAAM;AAClB;AACA,QAAQ,KAAK,CAAC;AACd,YAAY,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE;AAC/B,gBAAgB,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC7C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE;AACxE,gBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACzC,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE;AACtC,gBAAgB,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC7C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE;AACvD,gBAAgB,qBAAqB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAChD,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE;AACtC,gBAAgB,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC7C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE;AACvD,gBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC1C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE;AACtC,gBAAgB,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC7C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE;AACtC,gBAAgB,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC7C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE;AACtC,gBAAgB,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC7C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE;AACtC,gBAAgB,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC7C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE;AACtC,gBAAgB,qBAAqB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAChD,aAAa;AACb;AACA,YAAY,MAAM;AAClB;AACA,QAAQ,KAAK,CAAC;AACd,YAAY,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE;AAClD,gBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACzC,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE;AACvC,gBAAgB,qBAAqB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAChD,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE;AACvC,gBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC1C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE;AACvC,gBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC9C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE;AACvC,gBAAgB,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC7C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE;AACvC,gBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC9C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE;AACzD,gBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC9C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE;AACvC,gBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC9C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE;AAC7F,gBAAgB,qBAAqB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAChD,aAAa;AACb;AACA,YAAY,MAAM;AAClB;AACA,QAAQ,KAAK,CAAC;AACd,YAAY,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE;AACjC,gBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACzC,aAAa,MAAM;AACnB,gBAAgB,EAAE,KAAK,CAAC,CAAC,MAAM;AAC/B,gBAAgB,EAAE,KAAK,CAAC,CAAC,MAAM;AAC/B,gBAAgB,EAAE,KAAK,CAAC,CAAC,MAAM;AAC/B,gBAAgB,EAAE,KAAK,CAAC,CAAC,MAAM;AAC/B,gBAAgB,EAAE,KAAK,CAAC,CAAC,MAAM;AAC/B,gBAAgB,EAAE,KAAK,CAAC,CAAC,MAAM;AAC/B,cAAc;AACd,gBAAgB,qBAAqB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAChD,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE;AACxC,gBAAgB,oBAAoB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE;AAC3D,gBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC1C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE;AAC3D,gBAAgB,oBAAoB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE;AACxC,gBAAgB,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC7C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE;AACxC,gBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC9C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE;AACxC,gBAAgB,oBAAoB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE;AACxC,gBAAgB,oBAAoB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE;AACxC,gBAAgB,sBAAsB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjD,aAAa,MAAM;AACnB,gBAAgB,qBAAqB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAChD,aAAa;AACb;AACA,YAAY,MAAM;AAClB;AACA,QAAQ,KAAK,CAAC;AACd,YAAY,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE;AAClC,gBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACzC,aAAa,MAAM;AACnB,gBAAgB,EAAE,KAAK,CAAC,CAAC,OAAO;AAChC,gBAAgB,EAAE,KAAK,CAAC,CAAC,OAAO;AAChC,gBAAgB,EAAE,KAAK,CAAC,CAAC,OAAO;AAChC,gBAAgB,EAAE,KAAK,CAAC,CAAC,OAAO;AAChC,gBAAgB,EAAE,KAAK,CAAC,CAAC,OAAO;AAChC,cAAc;AACd,gBAAgB,qBAAqB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAChD,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE;AACzC,gBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC5C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE;AACzC,gBAAgB,oBAAoB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE;AACzC,gBAAgB,qBAAqB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAChD,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE;AACzC,gBAAgB,qBAAqB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAChD,aAAa;AACb;AACA,YAAY,MAAM;AAClB;AACA,QAAQ,KAAK,CAAC;AACd,YAAY,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;AACnC,gBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACzC,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;AAC1C,gBAAgB,sBAAsB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjD,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;AAC1C,gBAAgB,qBAAqB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAChD,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;AAC1C,gBAAgB,sBAAsB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjD,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;AAC1C,gBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACzC,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;AAC1C,gBAAgB,IAAI,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE;AAChD,oBAAoB,qBAAqB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACpD,iBAAiB,MAAM;AACvB,oBAAoB,qBAAqB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACpD,iBAAiB;AACjB,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;AAC1C,gBAAgB,sBAAsB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjD,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;AAC1C,gBAAgB,qBAAqB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAChD,aAAa;AACb;AACA,YAAY,MAAM;AAClB;AACA,QAAQ,KAAK,CAAC;AACd,YAAY,IAAI,EAAE,KAAK,CAAC,CAAC,SAAS,EAAE;AACpC,gBAAgB,uBAAuB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAClD,aAAa,MAAM;AACnB,gBAAgB,qBAAqB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAChD,aAAa;AACb;AACA,YAAY,MAAM;AAClB;AACA,QAAQ,KAAK,EAAE;AACf,YAAY,IAAI,EAAE,KAAK,CAAC,CAAC,UAAU,IAAI,EAAE,KAAK,CAAC,CAAC,UAAU,EAAE;AAC5D,gBAAgB,qBAAqB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAChD,aAAa,MAAM;AACnB,gBAAgB,qBAAqB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAChD,aAAa;AACb;AACA,YAAY,MAAM;AAClB;AACA,QAAQ;AACR,YAAY,qBAAqB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC5C,KAAK;AACL,CAAC;AACD;AACA,SAAS,gBAAgB,CAAC,CAAC,EAAE;AAC7B,IAAI,IAAI,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AAC3C,QAAQ,CAAC,CAAC,aAAa,GAAG,eAAe,CAAC;AAC1C,KAAK;AACL,CAAC;AACD;AACA,SAAS,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE;AACpC,IAAI,IAAI,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AAC3C,QAAQ,CAAC,CAAC,aAAa,GAAG,eAAe,CAAC;AAC1C,QAAQ,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC/B,KAAK;AACL,CAAC;AACD;AACA,SAAS,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE;AACvC,IAAI,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7B;AACA,IAAI,IAAI,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE;AACvC,QAAQ,CAAC,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC;AAChD,QAAQ,CAAC,CAAC,YAAY,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;AACjD,KAAK;AACL,CAAC;AACD;AACA,SAAS,gBAAgB,CAAC,CAAC,EAAE;AAC7B,IAAI,MAAM,UAAU,GAAG,CAAC,CAAC,YAAY,CAAC,SAAS,GAAG,CAAC,CAAC;AACpD,IAAI,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;AACtC;AACA,IAAI,IAAI,CAAC,UAAU,EAAE;AACrB,QAAQ,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC;AAC7B,KAAK;AACL;AACA,IAAI,IAAI,CAAC,WAAW,IAAI,UAAU,KAAK,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AAC1E,QAAQ,CAAC,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC;AAChD;AACA,QAAQ,IAAI,UAAU,EAAE;AACxB,YAAY,CAAC,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACzD,SAAS,MAAM;AACf,YAAY,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAC/C,SAAS;AACT,KAAK;AACL,CAAC;AACD;AACA,SAAS,aAAa,CAAC,CAAC,EAAE;AAC1B,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC/C,QAAQ,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,KAAK;AACL;AACA,IAAI,CAAC,CAAC,cAAc,EAAE,CAAC;AACvB,CAAC;AACD;AACA,SAAS,cAAc,CAAC,CAAC,EAAE;AAC3B,IAAI,IAAI,CAAC,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;AACjD,QAAQ,CAAC,CAAC,YAAY,CAAC,mCAAmC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACjE,QAAQ,CAAC,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACnD,KAAK;AACL,CAAC;AACD;AACA,SAAS,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE;AAClC,IAAI,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7B;AACA,IAAI,IAAI,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE;AACvC,QAAQ,CAAC,CAAC,YAAY,CAAC,mCAAmC,CAAC,EAAE,CAAC,CAAC;AAC/D,QAAQ,CAAC,CAAC,YAAY,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;AACjD,KAAK;AACL,CAAC;AACD;AACA,SAAS,0BAA0B,CAAC,CAAC,EAAE;AACvC,IAAI,IAAI,CAAC,CAAC,YAAY,CAAC,wBAAwB,EAAE,EAAE;AACnD,QAAQ,CAAC,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC;AAChD,QAAQ,CAAC,CAAC,YAAY,CAAC,4BAA4B,EAAE,CAAC;AACtD,KAAK;AACL,CAAC;AACD;AACA,SAAS,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE;AACtC,IAAI,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7B;AACA,IAAI,IAAI,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE;AACvC,QAAQ,CAAC,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC;AAChD,QAAQ,CAAC,CAAC,YAAY,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;AACjD,QAAQ,CAAC,CAAC,wBAAwB,CAAC,iBAAiB,EAAE,CAAC;AACvD,KAAK;AACL,CAAC;AACD;AACA,SAAS,cAAc,CAAC,CAAC,EAAE;AAC3B,IAAI,CAAC,CAAC,oCAAoC,EAAE,CAAC;AAC7C,IAAI,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC/B,IAAI,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;AACzB,IAAI,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC;AACzB,CAAC;AACD;AACA,SAAS,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE;AACvC,IAAI,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7B;AACA,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACtD,QAAQ,MAAM,OAAO,GAAG,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChD;AACA,QAAQ,IAAI,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE;AACtD,YAAY,CAAC,CAAC,YAAY,CAAC,mCAAmC,CAAC,EAAE,CAAC,CAAC;AACnE,YAAY,CAAC,CAAC,YAAY,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC1D,YAAY,MAAM;AAClB,SAAS;AACT;AACA,QAAQ,IAAI,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE;AAC1C,YAAY,MAAM;AAClB,SAAS;AACT,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA,SAAS,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE;AAChC,IAAI,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7B;AACA,IAAI,QAAQ,EAAE,CAAC,MAAM;AACrB,QAAQ,KAAK,CAAC;AACd,YAAY,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE;AACpF,gBAAgB,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC7C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE;AACnC,gBAAgB,aAAa,CAAC,CAAC,CAAC,CAAC;AACjC,aAAa,MAAM;AACnB,gBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC9C,aAAa;AACb;AACA,YAAY,MAAM;AAClB;AACA,QAAQ,KAAK,CAAC;AACd,YAAY,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE;AAC3D,gBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC9C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE;AACpC,gBAAgB,cAAc,CAAC,CAAC,CAAC,CAAC;AAClC,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE;AACnD,gBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACzC,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE;AAC/G,gBAAgB,0BAA0B,CAAC,CAAC,CAAC,CAAC;AAC9C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE;AACpC,gBAAgB,cAAc,CAAC,CAAC,CAAC,CAAC;AAClC,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE;AACnD,gBAAgB,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC7C,aAAa,MAAM;AACnB,gBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC9C,aAAa;AACb;AACA,YAAY,MAAM;AAClB;AACA,QAAQ,KAAK,CAAC;AACd,YAAY,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE;AAC9B,gBAAgB,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC7C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE;AACrF,gBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC9C,aAAa,MAAM;AACnB,gBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC9C,aAAa;AACb;AACA,YAAY,MAAM;AAClB;AACA,QAAQ,KAAK,CAAC;AACd,YAAY,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE;AAC/B,gBAAgB,gBAAgB,CAAC,CAAC,CAAC,CAAC;AACpC,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE;AACtC,gBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC3C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE;AACtC,gBAAgB,gBAAgB,CAAC,CAAC,CAAC,CAAC;AACpC,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE;AACxE,gBAAgB,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC7C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE;AACvD,gBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC9C,aAAa,MAAM;AACnB,gBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC9C,aAAa;AACb;AACA,YAAY,MAAM;AAClB;AACA,QAAQ,KAAK,CAAC;AACd,YAAY,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE;AAChC,gBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC9C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE;AACvC,gBAAgB,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC7C,aAAa,MAAM;AACnB,gBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC9C,aAAa;AACb;AACA,YAAY,MAAM;AAClB;AACA,QAAQ,KAAK,CAAC;AACd,YAAY;AACZ,gBAAgB,EAAE,KAAK,CAAC,CAAC,MAAM;AAC/B,gBAAgB,EAAE,KAAK,CAAC,CAAC,MAAM;AAC/B,gBAAgB,EAAE,KAAK,CAAC,CAAC,MAAM;AAC/B,gBAAgB,EAAE,KAAK,CAAC,CAAC,MAAM;AAC/B,gBAAgB,EAAE,KAAK,CAAC,CAAC,MAAM;AAC/B,gBAAgB,EAAE,KAAK,CAAC,CAAC,MAAM;AAC/B,cAAc;AACd,gBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC9C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE;AAC3D,gBAAgB,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC7C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE;AAC3D,gBAAgB,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC7C,aAAa,MAAM;AACnB,gBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC9C,aAAa;AACb;AACA,YAAY,MAAM;AAClB;AACA,QAAQ,KAAK,CAAC;AACd,YAAY;AACZ,gBAAgB,EAAE,KAAK,CAAC,CAAC,OAAO;AAChC,gBAAgB,EAAE,KAAK,CAAC,CAAC,OAAO;AAChC,gBAAgB,EAAE,KAAK,CAAC,CAAC,OAAO;AAChC,gBAAgB,EAAE,KAAK,CAAC,CAAC,OAAO;AAChC,gBAAgB,EAAE,KAAK,CAAC,CAAC,OAAO;AAChC,gBAAgB,EAAE,KAAK,CAAC,CAAC,OAAO;AAChC,cAAc;AACd,gBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC9C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE;AACzC,gBAAgB,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC7C,aAAa,MAAM;AACnB,gBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC9C,aAAa;AACb;AACA,YAAY,MAAM;AAClB;AACA,QAAQ,KAAK,CAAC;AACd,YAAY,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;AACnC,gBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC9C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;AAC1C,gBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACvC,aAAa,MAAM;AACnB,gBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC9C,aAAa;AACb;AACA,YAAY,MAAM;AAClB;AACA,QAAQ,KAAK,EAAE;AACf,YAAY,IAAI,EAAE,KAAK,CAAC,CAAC,UAAU,IAAI,EAAE,KAAK,CAAC,CAAC,UAAU,EAAE;AAC5D,gBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC9C,aAAa,MAAM;AACnB,gBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC9C,aAAa;AACb;AACA,YAAY,MAAM;AAClB;AACA,QAAQ;AACR,YAAY,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC1C,KAAK;AACL,CAAC;AACD;AACA,SAAS,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE;AAC7B,IAAI,IAAI,CAAC,CAAC,yBAAyB,GAAG,CAAC,CAAC,EAAE;AAC1C,QAAQ,aAAa,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAChC,KAAK,MAAM;AACX,QAAQ,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;AACzB,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA,SAAS,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE;AAChC,IAAI,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,EAAE;AACpC,QAAQ,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC;AACjD,KAAK;AACL;AACA,IAAI,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;AACzB,IAAI,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,qBAAqB,CAAC;AAC9C,CAAC;AACD;AACA,SAAS,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE;AAC7B,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;AACnD,IAAI,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;AACzB,IAAI,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,qBAAqB,CAAC;AAC9C,IAAI,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AACD;AACA;AACA;AACA,SAAS,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE;AACpC,IAAI,MAAM,KAAK,GAAG,CAAC,CAAC,YAAY,CAAC,cAAc,CAAC;AAChD;AACA,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE;AAC5G,QAAQ,CAAC,CAAC,sBAAsB,GAAG,EAAE,CAAC;AACtC,QAAQ,CAAC,CAAC,qCAAqC,GAAG,KAAK,CAAC;AACxD,QAAQ,CAAC,CAAC,qBAAqB,GAAG,CAAC,CAAC,aAAa,CAAC;AAClD,QAAQ,CAAC,CAAC,aAAa,GAAG,kBAAkB,CAAC;AAC7C,QAAQ,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC/B,KAAK,MAAM;AACX,QAAQ,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/B,KAAK;AACL,CAAC;AACD;AACA,SAAS,sBAAsB,CAAC,CAAC,EAAE,KAAK,EAAE;AAC1C,IAAI,CAAC,CAAC,YAAY,CAAC,uBAAuB,EAAE,CAAC;AAC7C,IAAI,CAAC,CAAC,wBAAwB,CAAC,YAAY,EAAE,CAAC;AAC9C,IAAI,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACrC,IAAI,CAAC,CAAC,aAAa,GAAG,eAAe,CAAC;AACtC,CAAC;AACD;AACA,SAAS,uBAAuB,CAAC,CAAC,EAAE,KAAK,EAAE;AAC3C,IAAI,CAAC,CAAC,YAAY,CAAC,uBAAuB,EAAE,CAAC;AAC7C,IAAI,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACrC,IAAI,CAAC,CAAC,aAAa,GAAG,oBAAoB,CAAC;AAC3C,CAAC;AACD;AACA,SAAS,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE;AACtC,IAAI,CAAC,CAAC,YAAY,CAAC,uBAAuB,EAAE,CAAC;AAC7C,IAAI,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AACrC,IAAI,CAAC,CAAC,aAAa,GAAG,oBAAoB,CAAC;AAC3C,IAAI,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AACD;AACA,SAAS,oBAAoB,CAAC,CAAC,EAAE,KAAK,EAAE;AACxC,IAAI,CAAC,CAAC,YAAY,CAAC,uBAAuB,EAAE,CAAC;AAC7C,IAAI,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACrC,IAAI,CAAC,CAAC,aAAa,GAAG,kBAAkB,CAAC;AACzC,CAAC;AACD;AACA,SAAS,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE;AACrC,IAAI,CAAC,CAAC,YAAY,CAAC,uBAAuB,EAAE,CAAC;AAC7C,IAAI,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAClC,IAAI,CAAC,CAAC,aAAa,GAAG,kBAAkB,CAAC;AACzC,IAAI,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AACD;AACA,SAAS,oBAAoB,CAAC,CAAC,EAAE,KAAK,EAAE;AACxC,IAAI,IAAI,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AACjD,QAAQ,CAAC,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACtD,QAAQ,CAAC,CAAC,mBAAmB,EAAE,CAAC;AAChC,QAAQ,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC/B,KAAK;AACL,CAAC;AACD;AACA,SAAS,oBAAoB,CAAC,CAAC,EAAE,KAAK,EAAE;AACxC,IAAI,MAAM,SAAS,GAAG,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;AAChE;AACA,IAAI,IAAI,SAAS,IAAI,SAAS,CAAC,WAAW,EAAE,KAAK,iBAAiB,EAAE;AACpE,QAAQ,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACzC,KAAK,MAAM;AACX,QAAQ,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/B,KAAK;AACL;AACA,IAAI,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;AAChC,CAAC;AACD;AACA,SAAS,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE;AACvC,IAAI,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,YAAY,CAAC,SAAS,KAAK,CAAC,EAAE;AAC1D,QAAQ,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACzC,QAAQ,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC;AAC/C,QAAQ,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;AAC7B,KAAK;AACL,CAAC;AACD;AACA,SAAS,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE;AACnC,IAAI,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7B;AACA,IAAI,QAAQ,EAAE,CAAC,MAAM;AACrB,QAAQ,KAAK,CAAC;AACd,YAAY,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE;AAC3D,gBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC5C,aAAa,MAAM;AACnB,gBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACvC,aAAa;AACb;AACA,YAAY,MAAM;AAClB;AACA,QAAQ,KAAK,CAAC;AACd,YAAY,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE;AAC9B,gBAAgB,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC7C,aAAa,MAAM;AACnB,gBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACvC,aAAa;AACb;AACA,YAAY,MAAM;AAClB;AACA,QAAQ,KAAK,CAAC;AACd,YAAY,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE;AAC/B,gBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC9C,aAAa,MAAM;AACnB,gBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACvC,aAAa;AACb;AACA,YAAY,MAAM;AAClB;AACA,QAAQ,KAAK,CAAC;AACd,YAAY,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE;AAChC,gBAAgB,oBAAoB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE;AACvC,gBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACzC,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE;AAC3E,gBAAgB,oBAAoB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/C,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE;AACvC,gBAAgB,oBAAoB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/C,aAAa,MAAM;AACnB,gBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACvC,aAAa;AACb;AACA,YAAY,MAAM;AAClB;AACA,QAAQ,KAAK,CAAC;AACd,YAAY,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE;AACjC,gBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACzC,aAAa,MAAM;AACnB,gBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACvC,aAAa;AACb;AACA,YAAY,MAAM;AAClB;AACA,QAAQ,KAAK,CAAC;AACd,YAAY,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE;AAClC,gBAAgB,sBAAsB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjD,aAAa,MAAM;AACnB,gBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACvC,aAAa;AACb;AACA,YAAY,MAAM;AAClB;AACA,QAAQ,KAAK,CAAC;AACd,YAAY,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;AACnC,gBAAgB,uBAAuB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAClD,aAAa,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;AAC1C,gBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACzC,aAAa,MAAM;AACnB,gBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACvC,aAAa;AACb;AACA,YAAY,MAAM;AAClB;AACA,QAAQ;AACR,YAAY,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACnC,KAAK;AACL,CAAC;AACD;AACA,SAAS,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE;AACjC,IAAI,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7B;AACA,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE;AACxB,QAAQ,IAAI,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AACrD,YAAY,CAAC,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAC1D,YAAY,CAAC,CAAC,mBAAmB,EAAE,CAAC;AACpC,SAAS;AACT,KAAK,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;AAClC,QAAQ,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/B,KAAK,MAAM;AACX,QAAQ,EAAE,KAAK,CAAC,CAAC,IAAI;AACrB,QAAQ,EAAE,KAAK,CAAC,CAAC,OAAO;AACxB,QAAQ,EAAE,KAAK,CAAC,CAAC,GAAG;AACpB,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ;AACzB,QAAQ,EAAE,KAAK,CAAC,CAAC,IAAI;AACrB,QAAQ,EAAE,KAAK,CAAC,CAAC,KAAK;AACtB,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE;AACnB,QAAQ,EAAE,KAAK,CAAC,CAAC,KAAK;AACtB,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE;AACnB,QAAQ,EAAE,KAAK,CAAC,CAAC,KAAK;AACtB,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE;AACnB,MAAM;AACN,QAAQ,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/B,KAAK;AACL,CAAC;AACD;AACA,SAAS,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE;AAChC,IAAI,MAAM,yBAAyB,GAAG,CAAC,CAAC,sBAAsB,CAAC;AAC/D;AACA,IAAI,CAAC,CAAC,sBAAsB,GAAG,IAAI,CAAC;AACpC,IAAI,CAAC,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;AACrC,IAAI,CAAC,CAAC,sBAAsB,GAAG,yBAAyB,CAAC;AACzD,CAAC;AACD;AACA;AACA;AACA,SAAS,8BAA8B,CAAC,CAAC,EAAE,KAAK,EAAE;AAClD,IAAI,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC;AACD;AACA,SAAS,oBAAoB,CAAC,CAAC,EAAE,KAAK,EAAE;AACxC,IAAI,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzC,IAAI,CAAC,CAAC,qCAAqC,GAAG,IAAI,CAAC;AACnD,CAAC;AACD;AACA,SAAS,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE;AACpC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;AACd;AACA,IAAI,IAAI,CAAC,CAAC,qCAAqC,EAAE;AACjD,QAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,sBAAsB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzD,YAAY,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC;AACzD,SAAS;AACT,KAAK,MAAM;AACX,QAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,sBAAsB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzD,YAAY,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,SAAS;AACT,KAAK;AACL;AACA,IAAI,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,qBAAqB,CAAC;AAC9C,IAAI,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AACD;AACA;AACA;AACA,SAAS,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE;AACrC,IAAI,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7B;AACA,IAAI;AACJ,QAAQ,EAAE,KAAK,CAAC,CAAC,OAAO;AACxB,QAAQ,EAAE,KAAK,CAAC,CAAC,GAAG;AACpB,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ;AACzB,QAAQ,EAAE,KAAK,CAAC,CAAC,KAAK;AACtB,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE;AACnB,QAAQ,EAAE,KAAK,CAAC,CAAC,KAAK;AACtB,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE;AACnB,QAAQ,EAAE,KAAK,CAAC,CAAC,KAAK;AACtB,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE;AACnB,MAAM;AACN,QAAQ,IAAI,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AACvD,YAAY,CAAC,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC;AACpD,YAAY,CAAC,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAC5D,YAAY,CAAC,CAAC,wBAAwB,CAAC,iBAAiB,EAAE,CAAC;AAC3D,YAAY,CAAC,CAAC,aAAa,GAAG,aAAa,CAAC;AAC5C,YAAY,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACnC,SAAS;AACT,KAAK,MAAM;AACX,QAAQ,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjC,KAAK;AACL,CAAC;AACD;AACA,SAAS,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE;AACnC,IAAI,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7B;AACA,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE;AAC5C,QAAQ,IAAI,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AACvD,YAAY,CAAC,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC;AACpD,YAAY,CAAC,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAC5D,YAAY,CAAC,CAAC,wBAAwB,CAAC,iBAAiB,EAAE,CAAC;AAC3D,YAAY,CAAC,CAAC,aAAa,GAAG,aAAa,CAAC;AAC5C;AACA,YAAY,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE;AAChC,gBAAgB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACvC,aAAa;AACb,SAAS;AACT,KAAK,MAAM;AACX,QAAQ,EAAE,KAAK,CAAC,CAAC,IAAI;AACrB,QAAQ,EAAE,KAAK,CAAC,CAAC,GAAG;AACpB,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ;AACzB,QAAQ,EAAE,KAAK,CAAC,CAAC,IAAI;AACrB,QAAQ,EAAE,KAAK,CAAC,CAAC,KAAK;AACtB,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE;AACnB,QAAQ,EAAE,KAAK,CAAC,CAAC,KAAK;AACtB,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE;AACnB,QAAQ,EAAE,KAAK,CAAC,CAAC,KAAK;AACtB,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE;AACnB,MAAM;AACN,QAAQ,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/B,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA,SAAS,qBAAqB,CAAC,CAAC,EAAE,KAAK,EAAE;AACzC,IAAI,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7B;AACA,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE;AACvB,QAAQ,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjC,KAAK,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE;AAC7B,QAAQ,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACzC,QAAQ,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;AACpC,KAAK,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;AAClC,QAAQ,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjC,KAAK,MAAM;AACX,QAAQ,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACrC,KAAK;AACL,CAAC;AACD;AACA,SAAS,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE;AACvC,IAAI,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7B;AACA,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;AAC3B,QAAQ,IAAI,CAAC,CAAC,YAAY,CAAC,cAAc,KAAK,CAAC,CAAC,QAAQ,EAAE;AAC1D,YAAY,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;AACjC,YAAY,CAAC,CAAC,aAAa,GAAG,aAAa,CAAC;AAC5C,SAAS;AACT,KAAK,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;AAClC,QAAQ,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/B,KAAK,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE;AAC7B,QAAQ,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACrC,KAAK;AACL,CAAC;AACD;AACA,SAAS,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE;AACtC,IAAI,IAAI,CAAC,CAAC,YAAY,CAAC,cAAc,KAAK,CAAC,CAAC,QAAQ,EAAE;AACtD,QAAQ,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;AAC7B,QAAQ,CAAC,CAAC,aAAa,GAAG,aAAa,CAAC;AACxC,QAAQ,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC/B,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA,SAAS,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE;AACvC,IAAI,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7B;AACA,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE;AACrB,QAAQ,CAAC,CAAC,YAAY,CAAC,2BAA2B,EAAE,CAAC;AACrD,QAAQ,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACzC,QAAQ,CAAC,CAAC,aAAa,GAAG,WAAW,CAAC;AACtC,KAAK,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE;AAC3C,QAAQ,CAAC,CAAC,YAAY,CAAC,2BAA2B,EAAE,CAAC;AACrD,QAAQ,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACnC,QAAQ,CAAC,CAAC,aAAa,GAAG,WAAW,CAAC;AACtC,QAAQ,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC/B,KAAK,MAAM;AACX,QAAQ,EAAE,KAAK,CAAC,CAAC,OAAO;AACxB,QAAQ,EAAE,KAAK,CAAC,CAAC,GAAG;AACpB,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ;AACzB,QAAQ,EAAE,KAAK,CAAC,CAAC,KAAK;AACtB,QAAQ,EAAE,KAAK,CAAC,CAAC,KAAK;AACtB,QAAQ,EAAE,KAAK,CAAC,CAAC,KAAK;AACtB,MAAM;AACN,QAAQ,IAAI,CAAC,CAAC,YAAY,CAAC,+BAA+B,EAAE,EAAE;AAC9D,YAAY,CAAC,CAAC,YAAY,CAAC,2BAA2B,EAAE,CAAC;AACzD,YAAY,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;AACjC,YAAY,CAAC,CAAC,aAAa,GAAG,aAAa,CAAC;AAC5C,YAAY,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACnC,SAAS;AACT,KAAK,MAAM;AACX,QAAQ,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAClC,KAAK;AACL,CAAC;AACD;AACA,SAAS,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE;AACrC,IAAI,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7B;AACA,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE;AAC5D,QAAQ,IAAI,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE;AAChD,YAAY,CAAC,CAAC,YAAY,CAAC,2BAA2B,EAAE,CAAC;AACzD,YAAY,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;AACjC,YAAY,CAAC,CAAC,aAAa,GAAG,aAAa,CAAC;AAC5C,SAAS;AACT,KAAK,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE;AAC/B,QAAQ,IAAI,CAAC,CAAC,YAAY,CAAC,+BAA+B,EAAE,EAAE;AAC9D,YAAY,CAAC,CAAC,YAAY,CAAC,2BAA2B,EAAE,CAAC;AACzD,YAAY,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;AACjC,YAAY,CAAC,CAAC,aAAa,GAAG,aAAa,CAAC;AAC5C,YAAY,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACnC,SAAS;AACT,KAAK,MAAM;AACX,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ;AAC/E,SAAS,EAAE,KAAK,CAAC,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;AACpE,MAAM;AACN,QAAQ,aAAa,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAChC,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA,SAAS,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE;AACjC,IAAI,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7B;AACA,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE;AACpC,QAAQ,CAAC,CAAC,YAAY,CAAC,0BAA0B,EAAE,CAAC;AACpD,QAAQ,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACzC,QAAQ,CAAC,CAAC,aAAa,GAAG,YAAY,CAAC;AACvC,QAAQ,CAAC,CAAC,wBAAwB,CAAC,YAAY,EAAE,CAAC;AAClD,KAAK,MAAM;AACX,QAAQ,EAAE,KAAK,CAAC,CAAC,OAAO;AACxB,QAAQ,EAAE,KAAK,CAAC,CAAC,GAAG;AACpB,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ;AACzB,QAAQ,EAAE,KAAK,CAAC,CAAC,KAAK;AACtB,QAAQ,EAAE,KAAK,CAAC,CAAC,KAAK;AACtB,QAAQ,EAAE,KAAK,CAAC,CAAC,KAAK;AACtB,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE;AACnB,MAAM;AACN,QAAQ,IAAI,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;AAClD,YAAY,CAAC,CAAC,YAAY,CAAC,0BAA0B,EAAE,CAAC;AACxD,YAAY,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;AACjC,YAAY,CAAC,CAAC,aAAa,GAAG,kBAAkB,CAAC;AACjD,YAAY,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACnC,SAAS;AACT,KAAK,MAAM;AACX,QAAQ,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAClC,KAAK;AACL,CAAC;AACD;AACA,SAAS,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE;AAC/B,IAAI,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7B;AACA,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE;AACrB,QAAQ,IAAI,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;AAClD,YAAY,CAAC,CAAC,YAAY,CAAC,0BAA0B,EAAE,CAAC;AACxD,YAAY,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;AACjC,YAAY,CAAC,CAAC,aAAa,GAAG,kBAAkB,CAAC;AACjD,SAAS;AACT,KAAK,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE;AAC/B,QAAQ,IAAI,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;AAClD,YAAY,CAAC,CAAC,YAAY,CAAC,0BAA0B,EAAE,CAAC;AACxD,YAAY,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;AACjC,YAAY,CAAC,CAAC,aAAa,GAAG,kBAAkB,CAAC;AACjD,YAAY,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACnC,SAAS;AACT,KAAK,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE;AACnE,QAAQ,IAAI,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;AACxF,YAAY,CAAC,CAAC,YAAY,CAAC,0BAA0B,EAAE,CAAC;AACxD,YAAY,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;AACjC,YAAY,CAAC,CAAC,aAAa,GAAG,kBAAkB,CAAC;AACjD,YAAY,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACnC,SAAS;AACT,KAAK,MAAM;AACX,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ;AAC/E,SAAS,EAAE,KAAK,CAAC,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;AACrD,MAAM;AACN,QAAQ,aAAa,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAChC,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA,SAAS,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE;AAClC,IAAI,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7B;AACA,IAAI;AACJ,QAAQ,EAAE,KAAK,CAAC,CAAC,OAAO;AACxB,QAAQ,EAAE,KAAK,CAAC,CAAC,GAAG;AACpB,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ;AACzB,QAAQ,EAAE,KAAK,CAAC,CAAC,KAAK;AACtB,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE;AACnB,QAAQ,EAAE,KAAK,CAAC,CAAC,KAAK;AACtB,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE;AACnB,QAAQ,EAAE,KAAK,CAAC,CAAC,KAAK;AACtB,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE;AACnB,MAAM;AACN,QAAQ,IAAI,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;AAC1F,YAAY,CAAC,CAAC,eAAe,EAAE,CAAC;AAChC,YAAY,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACnC,SAAS;AACT,KAAK,MAAM;AACX,QAAQ,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjC,KAAK;AACL,CAAC;AACD;AACA,SAAS,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE;AAChC,IAAI,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7B;AACA,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE;AACpC,QAAQ,IAAI,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE;AAChD,YAAY,CAAC,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC;AACpD,YAAY,CAAC,CAAC,YAAY,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;AACrD,YAAY,CAAC,CAAC,wBAAwB,CAAC,iBAAiB,EAAE,CAAC;AAC3D,YAAY,CAAC,CAAC,aAAa,GAAG,WAAW,CAAC;AAC1C,SAAS;AACT,KAAK,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE;AACpG,QAAQ,IAAI,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE;AAChD,YAAY,CAAC,CAAC,eAAe,EAAE,CAAC;AAChC,YAAY,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACnC,SAAS;AACT,KAAK,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE;AACxG,QAAQ,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/B,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA,SAAS,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE;AACpC,IAAI,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7B;AACA,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE;AACvB,QAAQ,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjC,KAAK,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE;AAChC,QAAQ,IAAI,CAAC,CAAC,YAAY,CAAC,cAAc,KAAK,CAAC,CAAC,MAAM,EAAE;AACxD,YAAY,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;AACjC,SAAS;AACT;AACA,QAAQ,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACzC,KAAK,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;AAClC,QAAQ,IAAI,CAAC,CAAC,YAAY,CAAC,cAAc,KAAK,CAAC,CAAC,MAAM,EAAE;AACxD,YAAY,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;AACjC,SAAS;AACT;AACA,QAAQ,IAAI,CAAC,CAAC,YAAY,CAAC,cAAc,KAAK,CAAC,CAAC,QAAQ,EAAE;AAC1D,YAAY,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;AACjC,SAAS;AACT;AACA,QAAQ,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACzC,KAAK,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE;AAC1F,QAAQ,IAAI,CAAC,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;AACvD,YAAY,CAAC,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAC3D,YAAY,CAAC,CAAC,mBAAmB,EAAE,CAAC;AACpC;AACA,YAAY,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE;AACjC,gBAAgB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACvC,aAAa;AACb,SAAS;AACT,KAAK,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;AACrD,QAAQ,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjC,KAAK;AACL,CAAC;AACD;AACA,SAAS,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE;AAClC,IAAI,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7B;AACA,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;AAC3B,QAAQ,MAAM,eAAe,GAAG,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;AAClF,QAAQ,MAAM,iBAAiB,GAAG,eAAe,IAAI,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AAC/F;AACA,QAAQ,IAAI,CAAC,CAAC,YAAY,CAAC,cAAc,KAAK,CAAC,CAAC,MAAM,IAAI,iBAAiB,KAAK,CAAC,CAAC,QAAQ,EAAE;AAC5F,YAAY,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;AACjC,SAAS;AACT;AACA,QAAQ,IAAI,CAAC,CAAC,YAAY,CAAC,cAAc,KAAK,CAAC,CAAC,QAAQ,EAAE;AAC1D,YAAY,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;AACjC,SAAS;AACT,KAAK,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE;AAChC,QAAQ,IAAI,CAAC,CAAC,YAAY,CAAC,cAAc,KAAK,CAAC,CAAC,MAAM,EAAE;AACxD,YAAY,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;AACjC,SAAS;AACT,KAAK,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;AAC7E,QAAQ,CAAC,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AACvD,QAAQ,CAAC,CAAC,mBAAmB,EAAE,CAAC;AAChC,KAAK,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;AAClC,QAAQ,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/B,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA,SAAS,uBAAuB,CAAC,CAAC,EAAE,KAAK,EAAE;AAC3C,IAAI,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7B;AACA,IAAI;AACJ,QAAQ,EAAE,KAAK,CAAC,CAAC,OAAO;AACxB,QAAQ,EAAE,KAAK,CAAC,CAAC,KAAK;AACtB,QAAQ,EAAE,KAAK,CAAC,CAAC,KAAK;AACtB,QAAQ,EAAE,KAAK,CAAC,CAAC,KAAK;AACtB,QAAQ,EAAE,KAAK,CAAC,CAAC,KAAK;AACtB,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE;AACnB,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE;AACnB,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE;AACnB,MAAM;AACN,QAAQ,CAAC,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AACvD,QAAQ,CAAC,CAAC,mBAAmB,EAAE,CAAC;AAChC,QAAQ,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC/B,KAAK,MAAM;AACX,QAAQ,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACnC,KAAK;AACL,CAAC;AACD;AACA,SAAS,qBAAqB,CAAC,CAAC,EAAE,KAAK,EAAE;AACzC,IAAI,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7B;AACA,IAAI;AACJ,QAAQ,EAAE,KAAK,CAAC,CAAC,OAAO;AACxB,QAAQ,EAAE,KAAK,CAAC,CAAC,KAAK;AACtB,QAAQ,EAAE,KAAK,CAAC,CAAC,KAAK;AACtB,QAAQ,EAAE,KAAK,CAAC,CAAC,KAAK;AACtB,QAAQ,EAAE,KAAK,CAAC,CAAC,KAAK;AACtB,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE;AACnB,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE;AACnB,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE;AACnB,MAAM;AACN,QAAQ,IAAI,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE;AAChD,YAAY,CAAC,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAC3D,YAAY,CAAC,CAAC,mBAAmB,EAAE,CAAC;AACpC,YAAY,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACnC,SAAS;AACT,KAAK,MAAM;AACX,QAAQ,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjC,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA,SAAS,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE;AACtC,IAAI,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7B;AACA,IAAI;AACJ,QAAQ,EAAE,KAAK,CAAC,CAAC,IAAI;AACrB,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ;AACzB,QAAQ,EAAE,KAAK,CAAC,CAAC,OAAO;AACxB,QAAQ,EAAE,KAAK,CAAC,CAAC,IAAI;AACrB,QAAQ,EAAE,KAAK,CAAC,CAAC,IAAI;AACrB,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ;AACzB,QAAQ,EAAE,KAAK,CAAC,CAAC,MAAM;AACvB,QAAQ,EAAE,KAAK,CAAC,CAAC,KAAK;AACtB,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ;AACzB,QAAQ,EAAE,KAAK,CAAC,CAAC,KAAK;AACtB,MAAM;AACN,QAAQ,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjC,KAAK,MAAM;AACX,QAAQ,MAAM,gBAAgB,GAAG,kCAAkC,CAAC,EAAE,CAAC,IAAI,YAAY,CAAC;AACxF;AACA,QAAQ,CAAC,CAAC,qBAAqB,EAAE,CAAC;AAClC,QAAQ,CAAC,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;AACnD,QAAQ,CAAC,CAAC,aAAa,GAAG,gBAAgB,CAAC;AAC3C,QAAQ,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC/B,KAAK;AACL,CAAC;AACD;AACA,SAAS,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE;AACpC,IAAI,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC,QAAQ,EAAE;AACtC,QAAQ,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/B,KAAK;AACL,CAAC;AACD;AACA,SAAS,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE;AACjC,IAAI,IAAI,CAAC,CAAC,YAAY,CAAC,SAAS,GAAG,CAAC,EAAE;AACtC,QAAQ,CAAC,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AACzD,QAAQ,CAAC,CAAC,wBAAwB,CAAC,iBAAiB,EAAE,CAAC;AACvD,QAAQ,CAAC,CAAC,qBAAqB,EAAE,CAAC;AAClC,QAAQ,CAAC,CAAC,mBAAmB,EAAE,CAAC;AAChC,QAAQ,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC/B,KAAK,MAAM;AACX,QAAQ,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;AACzB,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA,SAAS,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE;AACrC,IAAI,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC,IAAI,EAAE;AAClC,QAAQ,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjC,KAAK,MAAM;AACX,QAAQ,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjC,KAAK;AACL,CAAC;AACD;AACA,SAAS,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE;AACnC,IAAI,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC,IAAI,EAAE;AAClC,QAAQ,IAAI,CAAC,CAAC,CAAC,eAAe,EAAE;AAChC,YAAY,CAAC,CAAC,aAAa,GAAG,qBAAqB,CAAC;AACpD,SAAS;AACT,KAAK,MAAM;AACX,QAAQ,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjC,KAAK;AACL,CAAC;AACD;AACA,SAAS,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE;AAClC,IAAI,CAAC,CAAC,aAAa,GAAG,YAAY,CAAC;AACnC,IAAI,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AACD;AACA;AACA;AACA,SAAS,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE;AACtC,IAAI,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7B;AACA,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE;AACvB,QAAQ,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjC,KAAK,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;AAClC,QAAQ,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACzC,KAAK,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE;AAC/B,QAAQ,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACzC,QAAQ,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;AACpC,KAAK,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;AAClC,QAAQ,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjC,KAAK;AACL,CAAC;AACD;AACA,SAAS,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE;AACpC,IAAI,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,wBAAwB,EAAE,EAAE;AACpF,QAAQ,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;AAC7B;AACA,QAAQ,IAAI,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC,YAAY,CAAC,cAAc,KAAK,CAAC,CAAC,QAAQ,EAAE;AAChF,YAAY,CAAC,CAAC,aAAa,GAAG,mBAAmB,CAAC;AAClD,SAAS;AACT,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA,SAAS,qBAAqB,CAAC,CAAC,EAAE,KAAK,EAAE;AACzC,IAAI,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7B;AACA,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE;AACvB,QAAQ,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjC,KAAK,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;AAClC,QAAQ,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjC,KAAK;AACL,CAAC;AACD;AACA,SAAS,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE;AACvC,IAAI,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC,IAAI,EAAE;AAClC,QAAQ,CAAC,CAAC,aAAa,GAAG,yBAAyB,CAAC;AACpD,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA,SAAS,sBAAsB,CAAC,CAAC,EAAE,KAAK,EAAE;AAC1C,IAAI,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC,IAAI,EAAE;AAClC,QAAQ,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjC,KAAK,MAAM;AACX,QAAQ,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACtC,KAAK;AACL,CAAC;AACD;AACA,SAAS,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE;AACvC,IAAI,CAAC,CAAC,aAAa,GAAG,YAAY,CAAC;AACnC,IAAI,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AACD;AACA;AACA;AACA,SAAS,0BAA0B,CAAC,CAAC,EAAE,KAAK,EAAE;AAC9C,IAAI,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7B;AACA,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE;AACvB,QAAQ,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjC,KAAK,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;AAClC,QAAQ,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjC,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA,SAAS,6BAA6B,CAAC,CAAC,EAAE,KAAK,EAAE;AACjD,IAAI,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,qBAAqB,CAAC;AAChD,IAAI,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AACD;AACA,SAAS,yBAAyB,CAAC,CAAC,EAAE,KAAK,EAAE;AAC7C,IAAI,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAC/B,IAAI,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC;AACzB,CAAC;AACD;AACA,SAAS,wBAAwB,CAAC,CAAC,EAAE,KAAK,EAAE;AAC5C,IAAI,IAAI,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,EAAE;AAChE,QAAQ;AACR,YAAY,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,IAAI;AAC7E,YAAY,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC;AAC1D,UAAU;AACV,YAAY,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;AACjC,SAAS;AACT;AACA,QAAQ,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC/B,KAAK,MAAM;AACX,QAAQ,MAAM,OAAO,GAAG,CAAC,CAAC,0BAA0B,EAAE,CAAC;AACvD,QAAQ,MAAM,SAAS,GAAG,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AACjE;AACA,QAAQ,IAAI,SAAS,KAAK,EAAE,CAAC,MAAM,EAAE;AACrC,YAAY,cAAc,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;AACzD,SAAS,MAAM,IAAI,SAAS,KAAK,EAAE,CAAC,GAAG,EAAE;AACzC,YAAY,cAAc,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AACxD,YAAY,cAAc,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACtD,SAAS;AACT;AACA,QAAQ,cAAc,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAClD;AACA,QAAQ,IAAI,KAAK,CAAC,WAAW,EAAE;AAC/B,YAAY,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AAC/C,SAAS,MAAM;AACf,YAAY,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AAC/C,SAAS;AACT;AACA,QAAQ,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;AACpC,KAAK;AACL,CAAC;AACD;AACA,SAAS,sBAAsB,CAAC,CAAC,EAAE,KAAK,EAAE;AAC1C,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACtD,QAAQ,MAAM,OAAO,GAAG,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChD;AACA,QAAQ,IAAI,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE;AAChE,YAAY,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACnC,YAAY,MAAM;AAClB,SAAS;AACT;AACA,QAAQ,IAAI,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE;AAC/E,YAAY,CAAC,CAAC,YAAY,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC1D,YAAY,MAAM;AAClB,SAAS;AACT,KAAK;AACL,CAAC;AACD;AACA,MAAM,MAAM,GAAG,MAAM,CAAC;AACtB;AACA,IAAI,aAAa,GAAG,SAAS,aAAa,CAAC,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE;AAC3E,IAAI,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE;AAC7C,QAAQ,OAAO,GAAG,IAAI,CAAC;AACvB,QAAQ,IAAI,GAAG,eAAe,CAAC;AAC/B,QAAQ,eAAe,GAAG,IAAI,CAAC;AAC/B,KAAK;AACL;AACA,IAAI,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;AACvC;AACA,IAAI,OAAO,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;AACvD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,yCAAyC,CAAC,IAAI,EAAE;AACzD,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;AACtC,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACrC,IAAI,IAAI,KAAK,CAAC,QAAQ,KAAK,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;AACrE,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL,IAAI,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACzC,IAAI,OAAO,QAAQ,CAAC,QAAQ,KAAK,OAAO,CAAC;AACzC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,yBAAyB,CAAC,QAAQ,EAAE;AAC7C;AACA,IAAI,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjE,IAAI,IAAI,CAAC,yCAAyC,CAAC,QAAQ,CAAC,EAAE;AAC9D,QAAQ,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;AAC1G,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,mBAAmB,CAAC,UAAU,EAAE;AACzC,IAAI,OAAO,UAAU;AACrB,SAAS,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;AACxG,SAAS,IAAI,CAAC,GAAG,CAAC,CAAC;AACnB,CAAC;AACD,SAAS,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE;AAChD,IAAI,OAAO,QAAQ;AACnB,SAAS,GAAG,CAAC,CAAC,KAAK,KAAK;AACxB,QAAQ,QAAQ,KAAK,CAAC,WAAW,CAAC;AAClC,YAAY,KAAK,YAAY,CAAC,IAAI;AAClC,gBAAgB,OAAO,oBAAoB,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC;AAC1E,YAAY,KAAK,YAAY,CAAC,OAAO;AACrC,gBAAgB,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACnE,YAAY,KAAK,YAAY,CAAC,GAAG;AACjC,gBAAgB,OAAO,KAAK,CAAC,YAAY,CAAC,CAAC;AAC3C,YAAY,KAAK,YAAY,CAAC,OAAO;AACrC,gBAAgB,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC/C,SAAS;AACT,KAAK,CAAC;AACN,SAAS,IAAI,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AACD,SAAS,mBAAmB,CAAC,UAAU,EAAE;AACzC,IAAI,MAAM,KAAK,GAAG,CAAC,CAAC,YAAY,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACtD,IAAI,IAAI,UAAU,CAAC,cAAc,EAAE;AACnC,QAAQ,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;AAC/C,KAAK;AACL,IAAI,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;AACzG,CAAC;AACD,SAAS,gBAAgB,CAAC,OAAO,EAAE;AACnC,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC;AACpB,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;AACpC,IAAI,MAAM,SAAS,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAChD,IAAI,MAAM,gBAAgB,GAAG,SAAS,KAAK,cAAc,CAAC;AAC1D,IAAI,MAAM,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AAC5D,IAAI,MAAM,KAAK,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,MAAM;AACnD,UAAU,CAAC,CAAC,EAAE,mBAAmB,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;AAC/D,UAAU,EAAE,CAAC;AACb,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AACpC;AACA,IAAI,IAAI,gBAAgB,IAAI,CAAC,WAAW,EAAE;AAC1C,QAAQ,MAAM,IAAI,IAAI,CAAC;AACvB,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK;AACL,IAAI,MAAM,IAAI,GAAG,CAAC;AAClB,IAAI,IAAI,OAAO,CAAC,iBAAiB,CAAC,EAAE;AACpC,QAAQ,MAAM,IAAI,mBAAmB,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAClE,KAAK;AACL,IAAI,MAAM,IAAI,mBAAmB,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC,CAAC;AACrE,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,WAAW,EAAE;AAC3D,QAAQ,MAAM,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AAClC,KAAK;AACL,IAAI,OAAO,MAAM,CAAC;AAClB,CAAC;AACD,SAAS,oBAAoB,CAAC,QAAQ,EAAE,OAAO,EAAE;AACjD,IAAI,IAAI,QAAQ,KAAK,EAAE,EAAE;AACzB,QAAQ,OAAO,QAAQ,CAAC;AACxB,KAAK;AACL,IAAI,IAAI,OAAO,KAAK,OAAO,EAAE;AAC7B;AACA;AACA;AACA,QAAQ,yBAAyB,CAAC,QAAQ,CAAC,CAAC;AAC5C;AACA,QAAQ,OAAO,QAAQ,CAAC;AACxB,KAAK;AACL,IAAI,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC;AAChC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,eAAe,GAAG;AACxB,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,OAAO;AACvC,IAAI,OAAO,EAAE,mBAAmB;AAChC,IAAI,CAAC,gBAAgB,GAAG,cAAc;AACtC,IAAI,CAAC,aAAa,GAAG,IAAI;AACzB,IAAI,CAAC,iBAAiB,GAAG,IAAI;AAC7B,IAAI,CAAC,eAAe,GAAG,EAAE;AACzB,IAAI,CAAC,iBAAiB,GAAG,EAAE;AAC3B,IAAI,CAAC,uBAAuB,GAAG,IAAI,GAAG,EAAE;AACxC,CAAC,CAAC;AACF,SAAS,eAAe,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,GAAG,EAAE,EAAE;AACpD,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AAC5B,QAAQ,MAAM,IAAI,SAAS,CAAC,CAAC,+EAA+E,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1H,KAAK;AACL,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;AAC7B,QAAQ,MAAM,IAAI,SAAS,CAAC,CAAC,qGAAqG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7I,KAAK;AACL,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;AAC3C,QAAQ,MAAM,IAAI,SAAS,CAAC,CAAC,gFAAgF,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACzH,KAAK;AACL,IAAI,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AACpD,IAAI,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;AACtC,QAAQ,IAAI,EAAE,MAAM;AACpB,QAAQ,KAAK,EAAE,IAAI;AACnB,QAAQ,OAAO;AACf,KAAK,CAAC,CAAC;AACP,IAAI,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACtD,QAAQ,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAC7B,KAAK;AACL,IAAI,OAAO,CAAC,aAAa,CAAC,GAAG,eAAe,CAAC;AAC7C,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAChC,IAAI,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,CAAC,gBAAgB,CAAC,CAAC;AACzB,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,aAAa,GAAG;AACzB,IAAI,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;AACnG,CAAC;AAGD;;;;;;;;;;;;;;;;;;;;;;;;;;"}