app-service.js 1.6 MB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168
  1. (this["webpackJsonp"] = this["webpackJsonp"] || []).push([["app-service"],[
  2. /* 0 */
  3. /*!**********************************************************************!*\
  4. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/main.js ***!
  5. \**********************************************************************/
  6. /*! no static exports found */
  7. /***/ (function(module, exports, __webpack_require__) {
  8. "use strict";
  9. eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nvar _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ 4));\n__webpack_require__(/*! uni-pages */ 6);\nvar _App = _interopRequireDefault(__webpack_require__(/*! ./App */ 94));\nvar _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 93));\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n_vue.default.config.productionTip = false;\n_App.default.mpType = 'app';\ntry {\n var isPromise = function isPromise(obj) {\n return !!obj && ((0, _typeof2.default)(obj) === \"object\" || typeof obj === \"function\") && typeof obj.then === \"function\";\n }; // 统一 vue2 API Promise 化返回格式与 vue3 保持一致\n uni.addInterceptor({\n returnValue: function returnValue(res) {\n if (!isPromise(res)) {\n return res;\n }\n return new Promise(function (resolve, reject) {\n res.then(function (res) {\n if (res[0]) {\n reject(res[0]);\n } else {\n resolve(res[1]);\n }\n });\n });\n }\n });\n} catch (error) {}\nvar app = new _vue.default(_objectSpread({}, _App.default));\napp.$mount();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vbWFpbi5qcyJdLCJuYW1lcyI6WyJWdWUiLCJjb25maWciLCJwcm9kdWN0aW9uVGlwIiwiQXBwIiwibXBUeXBlIiwiaXNQcm9taXNlIiwib2JqIiwidGhlbiIsInVuaSIsImFkZEludGVyY2VwdG9yIiwicmV0dXJuVmFsdWUiLCJyZXMiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsImVycm9yIiwiYXBwIiwiJG1vdW50Il0sIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQW1CO0FBR25CO0FBQXFCO0FBQUE7QUFDckJBLFlBQUcsQ0FBQ0MsTUFBTSxDQUFDQyxhQUFhLEdBQUcsS0FBSztBQUNoQ0MsWUFBRyxDQUFDQyxNQUFNLEdBQUcsS0FBSztBQUVsQixJQUFJO0VBQUEsSUFDT0MsU0FBUyxHQUFsQixTQUFTQSxTQUFTLENBQUNDLEdBQUcsRUFBRTtJQUN0QixPQUNFLENBQUMsQ0FBQ0EsR0FBRyxLQUNKLHNCQUFPQSxHQUFHLE1BQUssUUFBUSxJQUFJLE9BQU9BLEdBQUcsS0FBSyxVQUFVLENBQUMsSUFDdEQsT0FBT0EsR0FBRyxDQUFDQyxJQUFJLEtBQUssVUFBVTtFQUVsQyxDQUFDLEVBRUQ7RUFDQUMsR0FBRyxDQUFDQyxjQUFjLENBQUM7SUFDakJDLFdBQVcsdUJBQUNDLEdBQUcsRUFBRTtNQUNmLElBQUksQ0FBQ04sU0FBUyxDQUFDTSxHQUFHLENBQUMsRUFBRTtRQUNuQixPQUFPQSxHQUFHO01BQ1o7TUFDQSxPQUFPLElBQUlDLE9BQU8sQ0FBQyxVQUFDQyxPQUFPLEVBQUVDLE1BQU0sRUFBSztRQUN0Q0gsR0FBRyxDQUFDSixJQUFJLENBQUMsVUFBQ0ksR0FBRyxFQUFLO1VBQ2hCLElBQUlBLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNWRyxNQUFNLENBQUNILEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztVQUNoQixDQUFDLE1BQU07WUFDTEUsT0FBTyxDQUFDRixHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7VUFDakI7UUFDRixDQUFDLENBQUM7TUFDSixDQUFDLENBQUM7SUFDSjtFQUNGLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyxPQUFPSSxLQUFLLEVBQUUsQ0FBRTtBQUVsQixJQUFNQyxHQUFHLEdBQUcsSUFBSWhCLFlBQUcsbUJBQ2RHLFlBQUcsRUFDTjtBQUNGYSxHQUFHLENBQUNDLE1BQU0sRUFBRSIsImZpbGUiOiIwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICd1bmktcGFnZXMnO2ltcG9ydCBBcHAgZnJvbSAnLi9BcHAnXG5cblxuaW1wb3J0IFZ1ZSBmcm9tICd2dWUnXG5WdWUuY29uZmlnLnByb2R1Y3Rpb25UaXAgPSBmYWxzZVxuQXBwLm1wVHlwZSA9ICdhcHAnXG5cbnRyeSB7XG4gIGZ1bmN0aW9uIGlzUHJvbWlzZShvYmopIHtcbiAgICByZXR1cm4gKFxuICAgICAgISFvYmogJiZcbiAgICAgICh0eXBlb2Ygb2JqID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBvYmogPT09IFwiZnVuY3Rpb25cIikgJiZcbiAgICAgIHR5cGVvZiBvYmoudGhlbiA9PT0gXCJmdW5jdGlvblwiXG4gICAgKTtcbiAgfVxuXG4gIC8vIOe7n+S4gCB2dWUyIEFQSSBQcm9taXNlIOWMlui/lOWbnuagvOW8j+S4jiB2dWUzIOS/neaMgeS4gOiHtFxuICB1bmkuYWRkSW50ZXJjZXB0b3Ioe1xuICAgIHJldHVyblZhbHVlKHJlcykge1xuICAgICAgaWYgKCFpc1Byb21pc2UocmVzKSkge1xuICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgcmVzLnRoZW4oKHJlcykgPT4ge1xuICAgICAgICAgIGlmIChyZXNbMF0pIHtcbiAgICAgICAgICAgIHJlamVjdChyZXNbMF0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXNvbHZlKHJlc1sxXSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0sXG4gIH0pO1xufSBjYXRjaCAoZXJyb3IpIHsgfVxuXG5jb25zdCBhcHAgPSBuZXcgVnVlKHtcbiAgLi4uQXBwXG59KVxuYXBwLiRtb3VudCgpXG5cblxuXG5cblxuXG5cblxuXG5cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///0\n");
  10. /***/ }),
  11. /* 1 */
  12. /*!**********************************************************************!*\
  13. !*** ./node_modules/@babel/runtime/helpers/interopRequireDefault.js ***!
  14. \**********************************************************************/
  15. /*! no static exports found */
  16. /***/ (function(module, exports) {
  17. function _interopRequireDefault(obj) {
  18. return obj && obj.__esModule ? obj : {
  19. "default": obj
  20. };
  21. }
  22. module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports;
  23. /***/ }),
  24. /* 2 */
  25. /*!***************************************************************!*\
  26. !*** ./node_modules/@babel/runtime/helpers/defineProperty.js ***!
  27. \***************************************************************/
  28. /*! no static exports found */
  29. /***/ (function(module, exports, __webpack_require__) {
  30. var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ 3);
  31. function _defineProperty(obj, key, value) {
  32. key = toPropertyKey(key);
  33. if (key in obj) {
  34. Object.defineProperty(obj, key, {
  35. value: value,
  36. enumerable: true,
  37. configurable: true,
  38. writable: true
  39. });
  40. } else {
  41. obj[key] = value;
  42. }
  43. return obj;
  44. }
  45. module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports;
  46. /***/ }),
  47. /* 3 */
  48. /*!**************************************************************!*\
  49. !*** ./node_modules/@babel/runtime/helpers/toPropertyKey.js ***!
  50. \**************************************************************/
  51. /*! no static exports found */
  52. /***/ (function(module, exports, __webpack_require__) {
  53. var _typeof = __webpack_require__(/*! ./typeof.js */ 4)["default"];
  54. var toPrimitive = __webpack_require__(/*! ./toPrimitive.js */ 5);
  55. function _toPropertyKey(arg) {
  56. var key = toPrimitive(arg, "string");
  57. return _typeof(key) === "symbol" ? key : String(key);
  58. }
  59. module.exports = _toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports;
  60. /***/ }),
  61. /* 4 */
  62. /*!*******************************************************!*\
  63. !*** ./node_modules/@babel/runtime/helpers/typeof.js ***!
  64. \*******************************************************/
  65. /*! no static exports found */
  66. /***/ (function(module, exports) {
  67. function _typeof(obj) {
  68. "@babel/helpers - typeof";
  69. return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
  70. return typeof obj;
  71. } : function (obj) {
  72. return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
  73. }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(obj);
  74. }
  75. module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;
  76. /***/ }),
  77. /* 5 */
  78. /*!************************************************************!*\
  79. !*** ./node_modules/@babel/runtime/helpers/toPrimitive.js ***!
  80. \************************************************************/
  81. /*! no static exports found */
  82. /***/ (function(module, exports, __webpack_require__) {
  83. var _typeof = __webpack_require__(/*! ./typeof.js */ 4)["default"];
  84. function _toPrimitive(input, hint) {
  85. if (_typeof(input) !== "object" || input === null) return input;
  86. var prim = input[Symbol.toPrimitive];
  87. if (prim !== undefined) {
  88. var res = prim.call(input, hint || "default");
  89. if (_typeof(res) !== "object") return res;
  90. throw new TypeError("@@toPrimitive must return a primitive value.");
  91. }
  92. return (hint === "string" ? String : Number)(input);
  93. }
  94. module.exports = _toPrimitive, module.exports.__esModule = true, module.exports["default"] = module.exports;
  95. /***/ }),
  96. /* 6 */
  97. /*!*************************************************************************!*\
  98. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages.json ***!
  99. \*************************************************************************/
  100. /*! no static exports found */
  101. /***/ (function(module, exports, __webpack_require__) {
  102. if (typeof Promise !== 'undefined' && !Promise.prototype.finally) {
  103. Promise.prototype.finally = function (callback) {
  104. var promise = this.constructor;
  105. return this.then(function (value) {
  106. return promise.resolve(callback()).then(function () {
  107. return value;
  108. });
  109. }, function (reason) {
  110. return promise.resolve(callback()).then(function () {
  111. throw reason;
  112. });
  113. });
  114. };
  115. }
  116. if (typeof uni !== 'undefined' && uni && uni.requireGlobal) {
  117. var global = uni.requireGlobal();
  118. ArrayBuffer = global.ArrayBuffer;
  119. Int8Array = global.Int8Array;
  120. Uint8Array = global.Uint8Array;
  121. Uint8ClampedArray = global.Uint8ClampedArray;
  122. Int16Array = global.Int16Array;
  123. Uint16Array = global.Uint16Array;
  124. Int32Array = global.Int32Array;
  125. Uint32Array = global.Uint32Array;
  126. Float32Array = global.Float32Array;
  127. Float64Array = global.Float64Array;
  128. BigInt64Array = global.BigInt64Array;
  129. BigUint64Array = global.BigUint64Array;
  130. }
  131. if (uni.restoreGlobal) {
  132. uni.restoreGlobal(weex, plus, setTimeout, clearTimeout, setInterval, clearInterval);
  133. }
  134. __definePage('pages/home/home', function () {
  135. return Vue.extend(__webpack_require__(/*! pages/home/home.vue?mpType=page */ 7).default);
  136. });
  137. __definePage('pages/index/index', function () {
  138. return Vue.extend(__webpack_require__(/*! pages/index/index.vue?mpType=page */ 19).default);
  139. });
  140. /***/ }),
  141. /* 7 */
  142. /*!**********************************************************************************************!*\
  143. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/home/home.vue?mpType=page ***!
  144. \**********************************************************************************************/
  145. /*! no static exports found */
  146. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  147. "use strict";
  148. eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _home_vue_vue_type_template_id_44021cb6_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./home.vue?vue&type=template&id=44021cb6&mpType=page */ 8);\n/* harmony import */ var _home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./home.vue?vue&type=script&lang=js&mpType=page */ 10);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 18);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _home_vue_vue_type_template_id_44021cb6_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _home_vue_vue_type_template_id_44021cb6_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _home_vue_vue_type_template_id_44021cb6_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"pages/home/home.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBNEg7QUFDNUg7QUFDbUU7QUFDTDs7O0FBRzlEO0FBQ21OO0FBQ25OLGdCQUFnQixpTkFBVTtBQUMxQixFQUFFLHFGQUFNO0FBQ1IsRUFBRSwwRkFBTTtBQUNSLEVBQUUsbUdBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsOEZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiNy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zLCByZWN5Y2xhYmxlUmVuZGVyLCBjb21wb25lbnRzIH0gZnJvbSBcIi4vaG9tZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NDQwMjFjYjYmbXBUeXBlPXBhZ2VcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2hvbWUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJm1wVHlwZT1wYWdlXCJcbmV4cG9ydCAqIGZyb20gXCIuL2hvbWUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJm1wVHlwZT1wYWdlXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FwcGxpY2F0aW9ucy9IQnVpbGRlclguYXBwL0NvbnRlbnRzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwicGFnZXMvaG9tZS9ob21lLnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///7\n");
  149. /***/ }),
  150. /* 8 */
  151. /*!****************************************************************************************************************************!*\
  152. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/home/home.vue?vue&type=template&id=44021cb6&mpType=page ***!
  153. \****************************************************************************************************************************/
  154. /*! exports provided: render, staticRenderFns, recyclableRender, components */
  155. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  156. "use strict";
  157. __webpack_require__.r(__webpack_exports__);
  158. /* harmony import */ var _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_template_id_44021cb6_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./home.vue?vue&type=template&id=44021cb6&mpType=page */ 9);
  159. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_template_id_44021cb6_mpType_page__WEBPACK_IMPORTED_MODULE_0__["render"]; });
  160. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_template_id_44021cb6_mpType_page__WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
  161. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_template_id_44021cb6_mpType_page__WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
  162. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_template_id_44021cb6_mpType_page__WEBPACK_IMPORTED_MODULE_0__["components"]; });
  163. /***/ }),
  164. /* 9 */
  165. /*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  166. !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!/Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/home/home.vue?vue&type=template&id=44021cb6&mpType=page ***!
  167. \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
  168. /*! exports provided: render, staticRenderFns, recyclableRender, components */
  169. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  170. "use strict";
  171. __webpack_require__.r(__webpack_exports__);
  172. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
  173. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
  174. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
  175. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
  176. var components
  177. var render = function () {
  178. var _vm = this
  179. var _h = _vm.$createElement
  180. var _c = _vm._self._c || _h
  181. return _c(
  182. "view",
  183. { staticClass: _vm._$s(0, "sc", "container"), attrs: { _i: 0 } },
  184. [_c("homeNavigator", { attrs: { _i: 1 } })],
  185. 1
  186. )
  187. }
  188. var recyclableRender = false
  189. var staticRenderFns = []
  190. render._withStripped = true
  191. /***/ }),
  192. /* 10 */
  193. /*!**********************************************************************************************************************!*\
  194. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/home/home.vue?vue&type=script&lang=js&mpType=page ***!
  195. \**********************************************************************************************************************/
  196. /*! no static exports found */
  197. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  198. "use strict";
  199. eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./home.vue?vue&type=script&lang=js&mpType=page */ 11);\n/* harmony import */ var _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTJ1QixDQUFnQixxdEJBQUcsRUFBQyIsImZpbGUiOiIxMC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQXBwbGljYXRpb25zL0hCdWlsZGVyWC5hcHAvQ29udGVudHMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BcHBsaWNhdGlvbnMvSEJ1aWxkZXJYLmFwcC9Db250ZW50cy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNy0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FwcGxpY2F0aW9ucy9IQnVpbGRlclguYXBwL0NvbnRlbnRzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FwcGxpY2F0aW9ucy9IQnVpbGRlclguYXBwL0NvbnRlbnRzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2hvbWUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJm1wVHlwZT1wYWdlXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQXBwbGljYXRpb25zL0hCdWlsZGVyWC5hcHAvQ29udGVudHMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BcHBsaWNhdGlvbnMvSEJ1aWxkZXJYLmFwcC9Db250ZW50cy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNy0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FwcGxpY2F0aW9ucy9IQnVpbGRlclguYXBwL0NvbnRlbnRzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FwcGxpY2F0aW9ucy9IQnVpbGRlclguYXBwL0NvbnRlbnRzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2hvbWUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJm1wVHlwZT1wYWdlXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///10\n");
  200. /***/ }),
  201. /* 11 */
  202. /*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  203. !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!/Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/home/home.vue?vue&type=script&lang=js&mpType=page ***!
  204. \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
  205. /*! no static exports found */
  206. /***/ (function(module, exports, __webpack_require__) {
  207. "use strict";
  208. eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _homeNavigator = _interopRequireDefault(__webpack_require__(/*! ../../pages/home/home-navigator.vue */ 12));\n//\n//\n//\n//\n//\n//\nvar _default = {\n data: function data() {\n return {};\n },\n methods: {},\n components: {\n homeNavigator: _homeNavigator.default\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaG9tZS9ob21lLnZ1ZSJdLCJuYW1lcyI6WyJkYXRhIiwibWV0aG9kcyIsImNvbXBvbmVudHMiLCJob21lTmF2aWdhdG9yIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBT0E7QUFQQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQSxlQUdlO0VBQ2RBLElBQUksa0JBQUc7SUFDTixPQUFPLENBRVAsQ0FBQztFQUNGLENBQUM7RUFDREMsT0FBTyxFQUFFLENBRVQsQ0FBQztFQUNEQyxVQUFVLEVBQUU7SUFDWEMsYUFBYSxFQUFiQTtFQUNEO0FBQ0QsQ0FBQztBQUFBIiwiZmlsZSI6IjExLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuXG5pbXBvcnQgaG9tZU5hdmlnYXRvciBmcm9tICcuLi8uLi9wYWdlcy9ob21lL2hvbWUtbmF2aWdhdG9yLnZ1ZSdcbmV4cG9ydCBkZWZhdWx0IHtcblx0ZGF0YSgpIHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0XG5cdFx0fVxuXHR9LFxuXHRtZXRob2RzOiB7XG5cdFx0XG5cdH0sXG5cdGNvbXBvbmVudHM6IHtcblx0XHRob21lTmF2aWdhdG9yXG5cdH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///11\n");
  209. /***/ }),
  210. /* 12 */
  211. /*!********************************************************************************************!*\
  212. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/home/home-navigator.vue ***!
  213. \********************************************************************************************/
  214. /*! no static exports found */
  215. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  216. "use strict";
  217. eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _home_navigator_vue_vue_type_template_id_d86f32a0___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./home-navigator.vue?vue&type=template&id=d86f32a0& */ 13);\n/* harmony import */ var _home_navigator_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./home-navigator.vue?vue&type=script&lang=js& */ 16);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _home_navigator_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _home_navigator_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 18);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _home_navigator_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _home_navigator_vue_vue_type_template_id_d86f32a0___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _home_navigator_vue_vue_type_template_id_d86f32a0___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _home_navigator_vue_vue_type_template_id_d86f32a0___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"pages/home/home-navigator.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBMkg7QUFDM0g7QUFDa0U7QUFDTDs7O0FBRzdEO0FBQ21OO0FBQ25OLGdCQUFnQixpTkFBVTtBQUMxQixFQUFFLG9GQUFNO0FBQ1IsRUFBRSx5RkFBTTtBQUNSLEVBQUUsa0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsNkZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMTIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL2hvbWUtbmF2aWdhdG9yLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1kODZmMzJhMCZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2hvbWUtbmF2aWdhdG9yLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vaG9tZS1uYXZpZ2F0b3IudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BcHBsaWNhdGlvbnMvSEJ1aWxkZXJYLmFwcC9Db250ZW50cy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInBhZ2VzL2hvbWUvaG9tZS1uYXZpZ2F0b3IudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///12\n");
  218. /***/ }),
  219. /* 13 */
  220. /*!***************************************************************************************************************************!*\
  221. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/home/home-navigator.vue?vue&type=template&id=d86f32a0& ***!
  222. \***************************************************************************************************************************/
  223. /*! exports provided: render, staticRenderFns, recyclableRender, components */
  224. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  225. "use strict";
  226. __webpack_require__.r(__webpack_exports__);
  227. /* harmony import */ var _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_navigator_vue_vue_type_template_id_d86f32a0___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./home-navigator.vue?vue&type=template&id=d86f32a0& */ 14);
  228. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_navigator_vue_vue_type_template_id_d86f32a0___WEBPACK_IMPORTED_MODULE_0__["render"]; });
  229. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_navigator_vue_vue_type_template_id_d86f32a0___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
  230. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_navigator_vue_vue_type_template_id_d86f32a0___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
  231. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_navigator_vue_vue_type_template_id_d86f32a0___WEBPACK_IMPORTED_MODULE_0__["components"]; });
  232. /***/ }),
  233. /* 14 */
  234. /*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  235. !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!/Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/home/home-navigator.vue?vue&type=template&id=d86f32a0& ***!
  236. \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
  237. /*! exports provided: render, staticRenderFns, recyclableRender, components */
  238. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  239. "use strict";
  240. __webpack_require__.r(__webpack_exports__);
  241. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
  242. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
  243. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
  244. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
  245. var components
  246. var render = function () {
  247. var _vm = this
  248. var _h = _vm.$createElement
  249. var _c = _vm._self._c || _h
  250. return _c(
  251. "view",
  252. { staticClass: _vm._$s(0, "sc", "container"), attrs: { _i: 0 } },
  253. [
  254. _c("view", { staticClass: _vm._$s(1, "sc", "robot"), attrs: { _i: 1 } }, [
  255. _c("image", {
  256. attrs: {
  257. src: _vm._$s(2, "a-src", __webpack_require__(/*! ../../static/home/robot.png */ 15)),
  258. _i: 2,
  259. },
  260. }),
  261. ]),
  262. ]
  263. )
  264. }
  265. var recyclableRender = false
  266. var staticRenderFns = []
  267. render._withStripped = true
  268. /***/ }),
  269. /* 15 */
  270. /*!************************************************************************************!*\
  271. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/static/home/robot.png ***!
  272. \************************************************************************************/
  273. /*! no static exports found */
  274. /***/ (function(module, exports) {
  275. eval("module.exports = \"/static/home/robot.png\";//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjE1LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcIi9zdGF0aWMvaG9tZS9yb2JvdC5wbmdcIjsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///15\n");
  276. /***/ }),
  277. /* 16 */
  278. /*!*********************************************************************************************************************!*\
  279. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/home/home-navigator.vue?vue&type=script&lang=js& ***!
  280. \*********************************************************************************************************************/
  281. /*! no static exports found */
  282. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  283. "use strict";
  284. eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_navigator_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./home-navigator.vue?vue&type=script&lang=js& */ 17);\n/* harmony import */ var _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_navigator_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_navigator_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_navigator_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_navigator_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_navigator_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTB1QixDQUFnQixvdEJBQUcsRUFBQyIsImZpbGUiOiIxNi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQXBwbGljYXRpb25zL0hCdWlsZGVyWC5hcHAvQ29udGVudHMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BcHBsaWNhdGlvbnMvSEJ1aWxkZXJYLmFwcC9Db250ZW50cy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNy0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FwcGxpY2F0aW9ucy9IQnVpbGRlclguYXBwL0NvbnRlbnRzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FwcGxpY2F0aW9ucy9IQnVpbGRlclguYXBwL0NvbnRlbnRzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2hvbWUtbmF2aWdhdG9yLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BcHBsaWNhdGlvbnMvSEJ1aWxkZXJYLmFwcC9Db250ZW50cy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FwcGxpY2F0aW9ucy9IQnVpbGRlclguYXBwL0NvbnRlbnRzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQXBwbGljYXRpb25zL0hCdWlsZGVyWC5hcHAvQ29udGVudHMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXVuaS1hcHAtbG9hZGVyL3VzaW5nLWNvbXBvbmVudHMuanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQXBwbGljYXRpb25zL0hCdWlsZGVyWC5hcHAvQ29udGVudHMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vaG9tZS1uYXZpZ2F0b3IudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///16\n");
  285. /***/ }),
  286. /* 17 */
  287. /*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  288. !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!/Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/home/home-navigator.vue?vue&type=script&lang=js& ***!
  289. \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
  290. /*! no static exports found */
  291. /***/ (function(module, exports, __webpack_require__) {
  292. "use strict";
  293. eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n data: function data() {\n return {};\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaG9tZS9ob21lLW5hdmlnYXRvci52dWUiXSwibmFtZXMiOlsiZGF0YSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7ZUFTQTtFQUNBQTtJQUNBLFFBRUE7RUFDQTtBQUNBO0FBQUEiLCJmaWxlIjoiMTcuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XG5cdDx2aWV3IGNsYXNzPVwiY29udGFpbmVyXCI+XG5cdFx0PHZpZXcgY2xhc3M9XCJyb2JvdFwiPlxuXHRcdFx0PGltYWdlIHNyYz1cIi4uLy4uL3N0YXRpYy9ob21lL3JvYm90LnBuZ1wiIG1vZGU9XCJhc3BlY3RGaXRcIj48L2ltYWdlPlxuXHRcdDwvdmlldz5cblx0PC92aWV3PlxuPC90ZW1wbGF0ZT5cblxuPHNjcmlwdD5cblx0ZXhwb3J0IGRlZmF1bHQge1xuXHRcdGRhdGEoKSB7XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcblx0XHRcdH1cblx0XHR9XG5cdH1cbjwvc2NyaXB0PlxuXG48c3R5bGUgbGFuZz1cInNjc3NcIj5cblx0LmNvbnRhaW5lcntcblx0XHRwb3NpdGlvbjogZml4ZWQ7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiA2MHB4O1xuXHRcdHRvcDogMCU7XG5cdFx0bGVmdDogMDtcblx0XHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICMzMDMzNzMsICNDOUEzOTEpO1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHQucm9ib3R7XG5cdFx0XHRmbGV4LXNocmluazogMDtcblx0XHRcdHdpZHRoOiA0OHB4O1xuXHRcdFx0aGVpZ2h0OiA0OHB4O1xuXHRcdFx0bWFyZ2luLXRvcDogNnB4O1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDE1cHg7XG5cdFx0XHRpbWFnZXtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbjwvc3R5bGU+Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///17\n");
  294. /***/ }),
  295. /* 18 */
  296. /*!**********************************************************************************************************!*\
  297. !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js ***!
  298. \**********************************************************************************************************/
  299. /*! exports provided: default */
  300. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  301. "use strict";
  302. __webpack_require__.r(__webpack_exports__);
  303. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return normalizeComponent; });
  304. /* globals __VUE_SSR_CONTEXT__ */
  305. // IMPORTANT: Do NOT use ES2015 features in this file (except for modules).
  306. // This module is a runtime utility for cleaner component module output and will
  307. // be included in the final webpack user bundle.
  308. function normalizeComponent (
  309. scriptExports,
  310. render,
  311. staticRenderFns,
  312. functionalTemplate,
  313. injectStyles,
  314. scopeId,
  315. moduleIdentifier, /* server only */
  316. shadowMode, /* vue-cli only */
  317. components, // fixed by xxxxxx auto components
  318. renderjs // fixed by xxxxxx renderjs
  319. ) {
  320. // Vue.extend constructor export interop
  321. var options = typeof scriptExports === 'function'
  322. ? scriptExports.options
  323. : scriptExports
  324. // fixed by xxxxxx auto components
  325. if (components) {
  326. if (!options.components) {
  327. options.components = {}
  328. }
  329. var hasOwn = Object.prototype.hasOwnProperty
  330. for (var name in components) {
  331. if (hasOwn.call(components, name) && !hasOwn.call(options.components, name)) {
  332. options.components[name] = components[name]
  333. }
  334. }
  335. }
  336. // fixed by xxxxxx renderjs
  337. if (renderjs) {
  338. if(typeof renderjs.beforeCreate === 'function'){
  339. renderjs.beforeCreate = [renderjs.beforeCreate]
  340. }
  341. (renderjs.beforeCreate || (renderjs.beforeCreate = [])).unshift(function() {
  342. this[renderjs.__module] = this
  343. });
  344. (options.mixins || (options.mixins = [])).push(renderjs)
  345. }
  346. // render functions
  347. if (render) {
  348. options.render = render
  349. options.staticRenderFns = staticRenderFns
  350. options._compiled = true
  351. }
  352. // functional template
  353. if (functionalTemplate) {
  354. options.functional = true
  355. }
  356. // scopedId
  357. if (scopeId) {
  358. options._scopeId = 'data-v-' + scopeId
  359. }
  360. var hook
  361. if (moduleIdentifier) { // server build
  362. hook = function (context) {
  363. // 2.3 injection
  364. context =
  365. context || // cached call
  366. (this.$vnode && this.$vnode.ssrContext) || // stateful
  367. (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
  368. // 2.2 with runInNewContext: true
  369. if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
  370. context = __VUE_SSR_CONTEXT__
  371. }
  372. // inject component styles
  373. if (injectStyles) {
  374. injectStyles.call(this, context)
  375. }
  376. // register component module identifier for async chunk inferrence
  377. if (context && context._registeredComponents) {
  378. context._registeredComponents.add(moduleIdentifier)
  379. }
  380. }
  381. // used by ssr in case component is cached and beforeCreate
  382. // never gets called
  383. options._ssrRegister = hook
  384. } else if (injectStyles) {
  385. hook = shadowMode
  386. ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }
  387. : injectStyles
  388. }
  389. if (hook) {
  390. if (options.functional) {
  391. // for template-only hot-reload because in that case the render fn doesn't
  392. // go through the normalizer
  393. options._injectStyles = hook
  394. // register for functioal component in vue file
  395. var originalRender = options.render
  396. options.render = function renderWithStyleInjection (h, context) {
  397. hook.call(context)
  398. return originalRender(h, context)
  399. }
  400. } else {
  401. // inject component registration as beforeCreate hook
  402. var existing = options.beforeCreate
  403. options.beforeCreate = existing
  404. ? [].concat(existing, hook)
  405. : [hook]
  406. }
  407. }
  408. return {
  409. exports: scriptExports,
  410. options: options
  411. }
  412. }
  413. /***/ }),
  414. /* 19 */
  415. /*!************************************************************************************************!*\
  416. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/index/index.vue?mpType=page ***!
  417. \************************************************************************************************/
  418. /*! no static exports found */
  419. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  420. "use strict";
  421. eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.vue?vue&type=template&id=2be84a3c&mpType=page */ 20);\n/* harmony import */ var _index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.vue?vue&type=script&lang=js&mpType=page */ 24);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 18);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"pages/index/index.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBNkg7QUFDN0g7QUFDb0U7QUFDTDs7O0FBRy9EO0FBQ21OO0FBQ25OLGdCQUFnQixpTkFBVTtBQUMxQixFQUFFLHNGQUFNO0FBQ1IsRUFBRSwyRkFBTTtBQUNSLEVBQUUsb0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsK0ZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMTkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0yYmU4NGEzYyZtcFR5cGU9cGFnZVwiXG52YXIgcmVuZGVyanNcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJm1wVHlwZT1wYWdlXCJcbmV4cG9ydCAqIGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZtcFR5cGU9cGFnZVwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BcHBsaWNhdGlvbnMvSEJ1aWxkZXJYLmFwcC9Db250ZW50cy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInBhZ2VzL2luZGV4L2luZGV4LnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///19\n");
  422. /***/ }),
  423. /* 20 */
  424. /*!******************************************************************************************************************************!*\
  425. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/index/index.vue?vue&type=template&id=2be84a3c&mpType=page ***!
  426. \******************************************************************************************************************************/
  427. /*! exports provided: render, staticRenderFns, recyclableRender, components */
  428. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  429. "use strict";
  430. __webpack_require__.r(__webpack_exports__);
  431. /* harmony import */ var _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./index.vue?vue&type=template&id=2be84a3c&mpType=page */ 21);
  432. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__["render"]; });
  433. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
  434. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
  435. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__["components"]; });
  436. /***/ }),
  437. /* 21 */
  438. /*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  439. !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!/Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/index/index.vue?vue&type=template&id=2be84a3c&mpType=page ***!
  440. \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
  441. /*! exports provided: render, staticRenderFns, recyclableRender, components */
  442. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  443. "use strict";
  444. __webpack_require__.r(__webpack_exports__);
  445. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
  446. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
  447. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
  448. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
  449. var components
  450. var render = function () {
  451. var _vm = this
  452. var _h = _vm.$createElement
  453. var _c = _vm._self._c || _h
  454. return _c(
  455. "view",
  456. { staticClass: _vm._$s(0, "sc", "content"), attrs: { _i: 0 } },
  457. [
  458. _c(
  459. "scroll-view",
  460. {
  461. attrs: {
  462. "scroll-top": _vm._$s(1, "a-scroll-top", _vm.scroll_top),
  463. _i: 1,
  464. },
  465. },
  466. [
  467. _c(
  468. "view",
  469. {
  470. staticClass: _vm._$s(2, "sc", "scroll-view-text"),
  471. attrs: { _i: 2 },
  472. },
  473. _vm._l(
  474. _vm._$s(3, "f", { forItems: _vm.recvMsgQueue }),
  475. function (msgIndex, index, $20, $30) {
  476. return _c(
  477. "view",
  478. {
  479. key: _vm._$s(3, "f", { forIndex: $20, key: 3 + "-" + $30 }),
  480. },
  481. [
  482. _vm._$s(
  483. "4-" + $30,
  484. "i",
  485. _vm.isAItell(_vm.recvMsgQueue[index].who_msg)
  486. )
  487. ? _c("view", [
  488. _c("image", {
  489. attrs: {
  490. src: _vm._$s(
  491. "5-" + $30,
  492. "a-src",
  493. _vm.make_avatar(_vm.recvMsgQueue[index].who_msg)
  494. ),
  495. _i: "5-" + $30,
  496. },
  497. }),
  498. _c("view", [
  499. _c("view", {
  500. ref: "htmlContent",
  501. refInFor: true,
  502. staticClass: _vm._$s(
  503. "7-" + $30,
  504. "sc",
  505. "htmlContent"
  506. ),
  507. attrs: { _i: "7-" + $30 },
  508. domProps: {
  509. innerHTML: _vm._s(
  510. _vm._$s(
  511. "7-" + $30,
  512. "v-html",
  513. _vm.returnText(
  514. _vm.recvMsgQueue[index].msg_text
  515. )
  516. )
  517. ),
  518. },
  519. on: {
  520. click: function ($event) {
  521. return _vm.handleClick()
  522. },
  523. },
  524. }),
  525. _vm._$s(
  526. "8-" + $30,
  527. "i",
  528. _vm.recvStatus &&
  529. _vm.recvMsgQueue[index].isFinish == false
  530. )
  531. ? _c(
  532. "view",
  533. {
  534. attrs: { _i: "8-" + $30 },
  535. on: {
  536. click: function ($event) {
  537. return _vm.stopRecv()
  538. },
  539. },
  540. },
  541. [
  542. _c("image", {
  543. attrs: {
  544. src: _vm._$s(
  545. "9-" + $30,
  546. "a-src",
  547. __webpack_require__(/*! ../../static/closed.png */ 22)
  548. ),
  549. _i: "9-" + $30,
  550. },
  551. }),
  552. ]
  553. )
  554. : _vm._e(),
  555. ]),
  556. ])
  557. : _vm._e(),
  558. _vm._$s(
  559. "10-" + $30,
  560. "i",
  561. !_vm.isAItell(_vm.recvMsgQueue[index].who_msg)
  562. )
  563. ? _c("view", [
  564. _c("view", [
  565. _c("view", [
  566. _c("view"),
  567. _c("text", [
  568. _vm._v(
  569. _vm._$s(
  570. "14-" + $30,
  571. "t0-0",
  572. _vm._s(_vm.recvMsgQueue[index].msg_text)
  573. )
  574. ),
  575. ]),
  576. ]),
  577. _c("view", [
  578. _c("image", {
  579. attrs: {
  580. src: _vm._$s(
  581. "16-" + $30,
  582. "a-src",
  583. _vm.make_avatar(
  584. _vm.recvMsgQueue[index].who_msg
  585. )
  586. ),
  587. _i: "16-" + $30,
  588. },
  589. }),
  590. ]),
  591. ]),
  592. ])
  593. : _vm._e(),
  594. ]
  595. )
  596. }
  597. ),
  598. 0
  599. ),
  600. ]
  601. ),
  602. _c("view", [
  603. _c(
  604. "view",
  605. { staticClass: _vm._$s(18, "sc", "textarea-box"), attrs: { _i: 18 } },
  606. [
  607. _c("textarea", {
  608. directives: [
  609. {
  610. name: "model",
  611. rawName: "v-model",
  612. value: _vm.inputValue,
  613. expression: "inputValue",
  614. },
  615. ],
  616. staticClass: _vm._$s(19, "sc", "textarea"),
  617. attrs: {
  618. disabled: _vm._$s(19, "a-disabled", _vm.disabled),
  619. maxlength: _vm._$s(19, "a-maxlength", -1),
  620. _i: 19,
  621. },
  622. domProps: { value: _vm._$s(19, "v-model", _vm.inputValue) },
  623. on: {
  624. keyup: function ($event) {
  625. if (!$event.shiftKey) {
  626. return null
  627. }
  628. return _vm.onKeyup("shift")
  629. },
  630. keydown: [
  631. function ($event) {
  632. if (!$event.shiftKey) {
  633. return null
  634. }
  635. return _vm.onKeydown("shift")
  636. },
  637. function ($event) {
  638. if (
  639. !$event.type.indexOf("key") &&
  640. _vm._k($event.keyCode, "enter", 13, $event.key, "Enter")
  641. ) {
  642. return null
  643. }
  644. return _vm.onKeydown("enter")
  645. },
  646. ],
  647. input: function ($event) {
  648. if ($event.target.composing) {
  649. return
  650. }
  651. _vm.inputValue = $event.target.value
  652. },
  653. },
  654. }),
  655. ]
  656. ),
  657. _c("view", [
  658. _vm._$s(21, "i", _vm.recvStatus == false)
  659. ? _c("view", { attrs: { _i: 21 }, on: { click: _vm.sendMsg } })
  660. : _vm._e(),
  661. _c(
  662. "view",
  663. {
  664. style: _vm._$s(22, "s", _vm.ani_style),
  665. attrs: { animation: _vm._$s(22, "a-animation", _vm.ani), _i: 22 },
  666. },
  667. [
  668. _vm._$s(23, "i", _vm.recvStatus == true)
  669. ? _c("image", {
  670. attrs: {
  671. src: _vm._$s(
  672. 23,
  673. "a-src",
  674. __webpack_require__(/*! ../../static/apple.png */ 23)
  675. ),
  676. _i: 23,
  677. },
  678. })
  679. : _vm._e(),
  680. ]
  681. ),
  682. ]),
  683. ]),
  684. ]
  685. )
  686. }
  687. var recyclableRender = false
  688. var staticRenderFns = []
  689. render._withStripped = true
  690. /***/ }),
  691. /* 22 */
  692. /*!********************************************************************************!*\
  693. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/static/closed.png ***!
  694. \********************************************************************************/
  695. /*! no static exports found */
  696. /***/ (function(module, exports) {
  697. eval("module.exports = \"/static/closed.png\";//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjIyLmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcIi9zdGF0aWMvY2xvc2VkLnBuZ1wiOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///22\n");
  698. /***/ }),
  699. /* 23 */
  700. /*!*******************************************************************************!*\
  701. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/static/apple.png ***!
  702. \*******************************************************************************/
  703. /*! no static exports found */
  704. /***/ (function(module, exports) {
  705. eval("module.exports = \"/static/apple.png\";//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjIzLmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcIi9zdGF0aWMvYXBwbGUucG5nXCI7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///23\n");
  706. /***/ }),
  707. /* 24 */
  708. /*!************************************************************************************************************************!*\
  709. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/index/index.vue?vue&type=script&lang=js&mpType=page ***!
  710. \************************************************************************************************************************/
  711. /*! no static exports found */
  712. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  713. "use strict";
  714. eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./index.vue?vue&type=script&lang=js&mpType=page */ 25);\n/* harmony import */ var _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTR1QixDQUFnQixzdEJBQUcsRUFBQyIsImZpbGUiOiIyNC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQXBwbGljYXRpb25zL0hCdWlsZGVyWC5hcHAvQ29udGVudHMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BcHBsaWNhdGlvbnMvSEJ1aWxkZXJYLmFwcC9Db250ZW50cy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNy0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FwcGxpY2F0aW9ucy9IQnVpbGRlclguYXBwL0NvbnRlbnRzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FwcGxpY2F0aW9ucy9IQnVpbGRlclguYXBwL0NvbnRlbnRzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZtcFR5cGU9cGFnZVwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FwcGxpY2F0aW9ucy9IQnVpbGRlclguYXBwL0NvbnRlbnRzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQXBwbGljYXRpb25zL0hCdWlsZGVyWC5hcHAvQ29udGVudHMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BcHBsaWNhdGlvbnMvSEJ1aWxkZXJYLmFwcC9Db250ZW50cy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BcHBsaWNhdGlvbnMvSEJ1aWxkZXJYLmFwcC9Db250ZW50cy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9pbmRleC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmbXBUeXBlPXBhZ2VcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///24\n");
  715. /***/ }),
  716. /* 25 */
  717. /*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  718. !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!/Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/index/index.vue?vue&type=script&lang=js&mpType=page ***!
  719. \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
  720. /*! no static exports found */
  721. /***/ (function(module, exports, __webpack_require__) {
  722. "use strict";
  723. eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 27));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 29));\nvar _markedMin = _interopRequireDefault(__webpack_require__(/*! ../marked/marked.min.js */ 30));\nvar _config = _interopRequireDefault(__webpack_require__(/*! ./config.js */ 31));\nvar _common = _interopRequireDefault(__webpack_require__(/*! ../highlight.js/lib/common.js */ 32));\n__webpack_require__(/*! highlight.js/styles/atom-one-dark.css */ 91);\n__webpack_require__(/*! ./v-copy.js */ 92);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n// 键盘的shift键是否被按下\nvar shiftKeyPressed = false;\nvar _default = {\n components: {\n marked: _markedMin.default\n },\n mounted: function mounted() {\n _markedMin.default.setOptions({\n renderer: new _markedMin.default.Renderer(),\n gfm: true,\n tables: true,\n breaks: false,\n pedantic: false,\n sanitize: false,\n smartLists: true,\n smartypants: false,\n highlight: function highlight(code) {\n return _common.default.highlightAuto(code).value;\n },\n langPrefix: \"hljs language-\"\n });\n },\n data: function data() {\n return {\n code: '',\n title: 'Hello',\n disabled: false,\n socketOpen: false,\n socketMsgQueue: [],\n recvMsgQueue: [],\n sendMsgQueue: [],\n inputValue: '',\n _socketTask: null,\n scroll_text_: \"\\n\",\n sendStatus: false,\n recvStatus: false,\n all_src_list: [],\n src_index: 0,\n scroll_top: 0,\n ani: '',\n ani_style: {\n width: \"100upx\",\n height: \"100upx\",\n rotate: 0,\n left: \"25%\",\n right: \"25%\",\n position: \"absolute\"\n },\n angle: 359\n };\n },\n onLoad: function onLoad() {\n this.initTcp();\n },\n methods: {\n setCopy: function setCopy(content) {\n // 使用#ifdef H5和#endif控制各端调用情况\n\n // 该方法不支持h5\n\n uni.setClipboardData({\n data: String(content),\n // 必须字符串\n success: function success() {\n __f__(\"log\", 'success', \" at pages/index/index.vue:157\");\n }\n });\n\n // h5端赋值方法,使用创建节点\n },\n updateSrcList: function updateSrcList() {\n var self = this;\n var list = this.getIndexList(self.scroll_text_);\n for (var i = 0; i < list.length; i += 2) {\n var start = list[i];\n var end = list[i + 1];\n self.all_src_list.push(self.scroll_text_.substring(start, end));\n }\n __f__(\"log\", \"updateSrcList\", self.all_src_list, self.scroll_text_, \" at pages/index/index.vue:191\");\n },\n stopRecv: function stopRecv() {\n var self = this;\n self._socketTask.close();\n self.initTcp(true);\n self.finish_recv();\n },\n handleClick: function handleClick(e) {\n e = e || window.event;\n var target = e.target || e.srcElement;\n var name = target.tagName.toLowerCase();\n var self = this;\n if (name.substring(0, 3) == \"abc\") {\n var name_list = name.split('_');\n if (name_list.length > 0) {\n var _index = parseInt(name_list[1]) - 1;\n __f__(\"log\", \"handleClick\", _index, self.all_src_list, \" at pages/index/index.vue:208\");\n self.setCopy(self.all_src_list[_index]);\n }\n __f__(\"log\", \"handleClick\", self.all_src_list[index], \" at pages/index/index.vue:211\");\n __f__(\"log\", target.tagName.toLowerCase(), \" at pages/index/index.vue:212\");\n }\n __f__(\"log\", name.substring(0, 3), \" at pages/index/index.vue:214\");\n },\n copyUpdates: function copyUpdates() {\n var self = this;\n var str = self.recvMsgQueue[self.recvMsgQueue.length - 1].msg_text;\n var key = \"</code></pre>\";\n var index = self.all_src_list.length;\n while (str.indexOf(key) != -1) {\n index++;\n var s_tag = \"</code><abc_\" + index + \" class=\\\"copy-button\\\">Copy</abc_\" + index + \"></pre>\";\n __f__(\"log\", \"s_tag\", s_tag, \" at pages/index/index.vue:224\");\n str = str.replace(\"</code></pre>\", s_tag);\n }\n // str=str.replaceAll(\"</code></pre>\", \"</code><abc class=\\\"copy-button\\\">Copy</abc></pre>\")\n self.recvMsgQueue[self.recvMsgQueue.length - 1].msg_text = str;\n // console.log(\"copyUpdates\",str)\n self.$forceUpdate();\n },\n getIndexList: function getIndexList(box_str) {\n var box = box_str;\n var boxarr = [];\n var pos = box.indexOf('```');\n while (pos > -1) {\n boxarr.push(pos);\n pos = box.indexOf('```', pos + 1);\n }\n return boxarr;\n },\n returnText: function returnText(text) {\n return \"<style> pre {position: relative;}.copy-button { position: absolute; top: 0;right: 0;padding: 4px 8px;background-color: #333;color: #fff;cursor: pointer;user-select: none;} p {line-height: 2;} li{line-height: 1.5;} table {border-collapse: collapse;width: 100%;font-family: Arial, sans-serif;font-size: 14px;}table th,table td {border: 1px solid #ddd;padding: 8px;text-align: left;}</style>\" + text;\n },\n // 滚动窗口以显示最新的一条消息\n showLastMsg: function showLastMsg() {\n var self = this;\n var container = uni.createSelectorQuery().in(this).select(\".scroll-view-text\");\n // 利用uniapp提供的接口获取可视区域的高度和滚动高度\n // let query=uni.createSelectorQuery()\n // let container=query.select('.box');\n container.fields({\n // rect:true, //是否返回节点布局位置信息{left,top,right,bottom}\n size: true,\n //是否返回节点尺寸信息{width,height}\n scrollOffset: true //是否返回节点滚动信息{scrollLeft,scrollTop}\n }, function (res) {\n self.scroll_top = res.height;\n // console.log(res)\n }).exec();\n },\n isAItell: function isAItell(type) {\n if (type === _config.default.type_ai) {\n return true;\n }\n return false;\n },\n make_avatar: function make_avatar(type) {\n if (type === _config.default.type_ai) {\n return \"../../static/PubImgs_avatar_avatar7.png\";\n }\n return \"../../static/PubImgs_avatar_avatar8.png\";\n },\n isShow: function isShow(text) {\n return text != \"\";\n },\n initAni: function initAni() {\n var self = this;\n var action = uni.createAnimation({\n duration: 10000,\n transformOrigin: \"50% 50% 0\",\n timingFunction: \"ease\",\n delay: 0\n });\n self.angle += 360;\n action.rotate(self.angle).step();\n self.ani = action.export();\n setTimeout(self.initAni, 10000);\n },\n tryReConnect: function tryReConnect() {\n var self = this;\n uni.showLoading({\n title: \"正在尝试重新连接\"\n });\n self.disabled = false;\n self.socketOpen = false;\n self.initTcp();\n },\n initTcp: function initTcp() {\n var isStopRecv = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var self = this;\n self._socketTask = new WebSocket(\"ws://47.88.86.123:8000/ws\");\n self._socketTask.onopen = function (res) {\n __f__(\"log\", 'WebSocket连接已打开!', \" at pages/index/index.vue:304\");\n if (!isStopRecv) {\n uni.showLoading({\n title: \"登录成功\"\n });\n }\n self.socketMsgQueue = [];\n uni.hideLoading();\n self.socketOpen = true;\n };\n self._socketTask.onclose = function (res) {\n // uni.showModal({\n // \tshowCancel:false,\n // \ttitle:\"WebSocket is onclose \"\n // })\n __f__(\"log\", \"WebSocket is onclose\", \" at pages/index/index.vue:320\");\n self._socketTask.close();\n self.tryReConnect();\n };\n self._socketTask.onerror = function (res) {\n // uni.showModal({\n // \tshowCancel:false,\n // \ttitle:\"WebSocket连接打开失败,请检查\"\n // })\n __f__(\"log\", 'WebSocket连接打开失败,请检查!', \" at pages/index/index.vue:329\");\n };\n self._socketTask.onmessage = function (res) {\n // console.log('收到服务器内容:' + res.data);\n var content = '';\n var data = JSON.parse(res.data);\n content = data.content + '';\n if (self.sendStatus) {\n self.sendStatus = false;\n // content = '▪ ';\n self.scroll_text_ = '';\n // let index = self.recvMsgQueue.length>0?self.recvMsgQueue.length:0\n self.recvMsgQueue.push({\n who_msg: _config.default.type_ai,\n msg_type: 0,\n msg_text: '',\n isFinish: false\n });\n self.startUpdateView();\n }\n // 在dom渲染完毕后 使聊天窗口滚动到最后一条消息\n self.$nextTick(function () {\n self.showLastMsg();\n });\n // console.log('收到服务器内容:' +content );\n var finish_reason = data.finish_reason + '';\n if (content != 'null') {\n self.scroll_text_ += content;\n // if(content=='.'||content=='。'){\n // self.scroll_text_+='\\n▪ ';\n // }\n }\n\n if (finish_reason != 'null') {\n self.finish_recv();\n // self.recvStatus = false;\n // self.disabled = false;\n // clearTimeout(self.initAni)\n // self.scroll_text_+=\"\\n\"\n // console.log(\"self.recvMsgQueue\",self.scroll_text_)\n // self.stopUpdateView();\n // self.copyUpdates();\n // self.updateSrcList();\n // self.recvMsgQueue[self.recvMsgQueue.length-1].isFinish = true;\n } else {\n self.recvMsgQueue[self.recvMsgQueue.length - 1].msg_text = _markedMin.default.parse(self.scroll_text_);\n }\n // console.log(\"self.recvMsgQueue.length\",self.recvMsgQueue.length)\n };\n },\n finish_recv: function finish_recv() {\n var _this = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {\n var self;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n self = _this;\n self.recvStatus = false;\n self.disabled = false;\n clearTimeout(self.initAni);\n self.scroll_text_ += \"\\n\";\n __f__(\"log\", \"self.recvMsgQueue\", self.scroll_text_, \" at pages/index/index.vue:381\");\n self.stopUpdateView();\n self.copyUpdates();\n self.updateSrcList();\n self.recvMsgQueue[self.recvMsgQueue.length - 1].isFinish = true;\n case 10:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }))();\n },\n sendMsg: function sendMsg() {\n var _this2 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (_this2.inputValue) {\n _context2.next = 2;\n break;\n }\n return _context2.abrupt(\"return\", uni.showToast({\n // 提示内容\n title: '内容不能为空',\n // 不显示图标\n icon: 'none'\n }));\n case 2:\n _this2.sendSocketMessage(_this2.inputValue);\n case 3:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }))();\n },\n onKeyInput: function onKeyInput(event) {\n this.inputValue = event.target.value;\n },\n startUpdateView: function startUpdateView() {\n var self = this;\n self.$forceUpdate();\n setTimeout(self.startUpdateView, 500);\n },\n stopUpdateView: function stopUpdateView() {\n var self = this;\n clearTimeout(self.startUpdateView);\n },\n sendSocketMessage: function sendSocketMessage(msg) {\n var self = this;\n if (this.socketOpen) {\n // uni.showLoading({\n // title:\"正在发送\"\n // })\n self.sendStatus = true;\n self.disabled = true;\n self.ani_style.rotate = 0;\n self.inputValue = '';\n self.initAni();\n self.recvMsgQueue.push({\n who_msg: _config.default.type_self,\n msg_type: 0,\n msg_text: msg,\n isFinish: false\n });\n self.recvStatus = true;\n self._socketTask.send(msg);\n } else {\n this.socketMsgQueue.push(msg);\n }\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 26)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaW5kZXgvaW5kZXgudnVlIl0sIm5hbWVzIjpbImNvbXBvbmVudHMiLCJtYXJrZWQiLCJtb3VudGVkIiwicmVuZGVyZXIiLCJnZm0iLCJ0YWJsZXMiLCJicmVha3MiLCJwZWRhbnRpYyIsInNhbml0aXplIiwic21hcnRMaXN0cyIsInNtYXJ0eXBhbnRzIiwiaGlnaGxpZ2h0IiwibGFuZ1ByZWZpeCIsImRhdGEiLCJjb2RlIiwidGl0bGUiLCJkaXNhYmxlZCIsInNvY2tldE9wZW4iLCJzb2NrZXRNc2dRdWV1ZSIsInJlY3ZNc2dRdWV1ZSIsInNlbmRNc2dRdWV1ZSIsImlucHV0VmFsdWUiLCJfc29ja2V0VGFzayIsInNjcm9sbF90ZXh0XyIsInNlbmRTdGF0dXMiLCJyZWN2U3RhdHVzIiwiYWxsX3NyY19saXN0Iiwic3JjX2luZGV4Iiwic2Nyb2xsX3RvcCIsImFuaSIsImFuaV9zdHlsZSIsIndpZHRoIiwiaGVpZ2h0Iiwicm90YXRlIiwibGVmdCIsInJpZ2h0IiwicG9zaXRpb24iLCJhbmdsZSIsIm9uTG9hZCIsIm1ldGhvZHMiLCJzZXRDb3B5IiwidW5pIiwic3VjY2VzcyIsInVwZGF0ZVNyY0xpc3QiLCJzZWxmIiwic3RvcFJlY3YiLCJoYW5kbGVDbGljayIsImUiLCJjb3B5VXBkYXRlcyIsImluZGV4Iiwic3RyIiwiZ2V0SW5kZXhMaXN0IiwiYm94YXJyIiwicG9zIiwicmV0dXJuVGV4dCIsInNob3dMYXN0TXNnIiwiY29udGFpbmVyIiwic2l6ZSIsInNjcm9sbE9mZnNldCIsImlzQUl0ZWxsIiwibWFrZV9hdmF0YXIiLCJpc1Nob3ciLCJpbml0QW5pIiwiZHVyYXRpb24iLCJ0cmFuc2Zvcm1PcmlnaW4iLCJ0aW1pbmdGdW5jdGlvbiIsImRlbGF5IiwiYWN0aW9uIiwic2V0VGltZW91dCIsInRyeVJlQ29ubmVjdCIsImluaXRUY3AiLCJjb250ZW50Iiwid2hvX21zZyIsIm1zZ190eXBlIiwibXNnX3RleHQiLCJpc0ZpbmlzaCIsImZpbmlzaF9yZWN2IiwiY2xlYXJUaW1lb3V0Iiwic2VuZE1zZyIsImljb24iLCJvbktleUlucHV0Iiwic3RhcnRVcGRhdGVWaWV3Iiwic3RvcFVwZGF0ZVZpZXciLCJzZW5kU29ja2V0TWVzc2FnZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBb0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBO0FBQ0E7QUFBQSxlQUNBO0VBRUFBO0lBQ0FDO0VBQ0E7RUFFQUM7SUFDQUQ7TUFDQUU7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7UUFDQTtNQUNBO01BQ0FDO0lBQ0E7RUFHQTtFQUNBQztJQUNBO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO1FBQ0FDO1FBQUFDO1FBQUFDO1FBQUFDO1FBQUFDO1FBQUFDO01BQ0E7TUFDQUM7SUFDQTtFQUNBO0VBQ0FDO0lBQ0E7RUFDQTtFQUNBQztJQXNCQUM7TUFDQTs7TUFFQTs7TUFFQUM7UUFDQTVCO1FBQUE7UUFDQTZCO1VBQ0E7UUFDQTtNQUNBOztNQUdBO0lBb0JBO0lBQ0FDO01BQ0E7TUFDQTtNQUNBO1FBQ0E7UUFDQTtRQUNBQztNQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBO01BQ0FEO01BQ0FBO01BQ0FBO0lBQ0E7SUFDQUU7TUFDQUM7TUFDQTtNQUNBO01BQ0E7TUFDQTtRQUNBO1FBQ0E7VUFDQTtVQUNBO1VBQ0FIO1FBQ0E7UUFDQTtRQUNBO01BQ0E7TUFDQTtJQUNBO0lBQ0FJO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtRQUNBQztRQUNBO1FBQ0E7UUFDQUM7TUFDQTtNQUNBO01BQ0FOO01BQ0E7TUFDQUE7SUFDQTtJQUVBTztNQUNBO01BQ0E7TUFDQTtNQUNBO1FBQ0FDO1FBQ0FDO01BQ0E7TUFDQTtJQUVBO0lBQ0FDO01BQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBQztRQUNBO1FBQ0FDO1FBQUE7UUFDQUM7TUFDQTtRQUNBZDtRQUNBO01BQ0E7SUFDQTtJQUNBZTtNQUNBO1FBQ0E7TUFDQTtNQUNBO0lBQ0E7SUFDQUM7TUFDQTtRQUNBO01BQ0E7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7SUFDQTtJQUNBQztNQUNBO01BQ0E7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7TUFDQTtNQUNBdEI7TUFDQXVCO01BQ0F2QjtNQUNBd0I7SUFDQTtJQUNBQztNQUNBO01BQ0E1QjtRQUNBMUI7TUFDQTtNQUNBNkI7TUFDQUE7TUFDQUE7SUFDQTtJQUNBMEI7TUFBQTtNQUNBO01BQ0ExQjtNQUNBQTtRQUNBO1FBQ0E7VUFDQUg7WUFDQTFCO1VBQ0E7UUFDQTtRQUNBNkI7UUFDQUg7UUFDQUc7TUFFQTtNQUNBQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQUE7UUFDQUE7TUFDQTtNQUNBQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7TUFDQTtNQUVBQTtRQUNBO1FBQ0E7UUFDQTtRQUNBMkI7UUFDQTtVQUNBM0I7VUFDQTtVQUNBQTtVQUNBO1VBQ0FBO1lBQUE0QjtZQUFBQztZQUFBQztZQUFBQztVQUFBO1VBQ0EvQjtRQUNBO1FBQ0E7UUFDQUE7VUFDQUE7UUFDQTtRQUNBO1FBQ0E7UUFDQTtVQUNBQTtVQUNBO1VBQ0E7VUFDQTtRQUNBOztRQUNBO1VBQ0FBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1FBRUE7VUFDQUE7UUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBZ0M7TUFBQTtNQUFBO1FBQUE7UUFBQTtVQUFBO1lBQUE7Y0FBQTtnQkFDQWhDO2dCQUNBQTtnQkFDQUE7Z0JBQ0FpQztnQkFDQWpDO2dCQUNBO2dCQUNBQTtnQkFDQUE7Z0JBQ0FBO2dCQUNBQTtjQUFBO2NBQUE7Z0JBQUE7WUFBQTtVQUFBO1FBQUE7TUFBQTtJQUNBO0lBQ0FrQztNQUFBO01BQUE7UUFBQTtVQUFBO1lBQUE7Y0FBQTtnQkFBQSxJQUVBO2tCQUFBO2tCQUFBO2dCQUFBO2dCQUFBLGtDQUVBckM7a0JBQ0E7a0JBQ0ExQjtrQkFDQTtrQkFDQWdFO2dCQUNBO2NBQUE7Z0JBRUE7Y0FBQTtjQUFBO2dCQUFBO1lBQUE7VUFBQTtRQUFBO01BQUE7SUFDQTtJQUNBQztNQUNBO0lBQ0E7SUFDQUM7TUFDQTtNQUNBckM7TUFDQXdCO0lBQ0E7SUFDQWM7TUFDQTtNQUNBTDtJQUNBO0lBQ0FNO01BQ0E7TUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBdkM7UUFDQUE7UUFDQUE7UUFDQUE7UUFDQUE7UUFDQUE7VUFBQTRCO1VBQUFDO1VBQUFDO1VBQUFDO1FBQUE7UUFDQS9CO1FBQ0FBO01BQ0E7UUFDQTtNQUNBO0lBQ0E7RUFHQTtBQUNBO0FBQUEsMkIiLCJmaWxlIjoiMjUuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XG5cdDx2aWV3IGNsYXNzPVwiY29udGVudFwiPlxuXHRcdDwhLS0gPHZpZXcgY2xhc3M9XCJ2LWh0bWwtY2xpY2tcIiBAdGFwPVwiaGFuZGxlQ2xpY2soKVwiIHJlZj1cImh0bWxDb250ZW50XCIgdi1odG1sPVwiY29kZVwiPjwvdmlldz5cblx0XHQ8c3BhbiB2LWNvcHk9XCIxMjNcIj7lpI3liLY8L3NwYW4+IC0tPlxuXHRcdDxzY3JvbGwtdmlldyBzY3JvbGwteT1cInRydWVcIiA6c2Nyb2xsLXRvcD1cInNjcm9sbF90b3BcIiBzdHlsZT1cInRvcDogMCU7d2lkdGg6IDEwMHZ3O2hlaWdodDo5MHZoO1wiPlxuXHRcdFx0PHZpZXcgY2xhc3M9XCJzY3JvbGwtdmlldy10ZXh0XCI+XG5cdFx0XHRcdDx2aWV3ICBzdHlsZT1cIiBtYXJnaW4tcmlnaHQ6IDUlOyBtYXJnaW4tbGVmdDogNSU7IG1hcmdpbi10b3A6IDMlOyBkaXNwbGF5OiBmbGV4O3VzZXItc2VsZWN0OiB0ZXh0O1wiIHYtZm9yPVwiKG1zZ0luZGV4LGluZGV4KSBpbiByZWN2TXNnUXVldWUgXCI+XG5cdFx0XHRcdFx0PCEtLSBhaSDnmoTmtojmga/nu5PmnoTkvZMgLS0+XG5cdFx0XHRcdFx0PHZpZXcgdi1pZj1cImlzQUl0ZWxsKHJlY3ZNc2dRdWV1ZVtpbmRleF0ud2hvX21zZylcIiAgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyB3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7bWFyZ2luLWJvdHRvbTogMyU7XCI+XG5cdFx0XHRcdFx0XHQ8aW1hZ2UgIDpzcmM9XCJtYWtlX2F2YXRhcihyZWN2TXNnUXVldWVbaW5kZXhdLndob19tc2cpXCIgc3R5bGU9XCJ3aWR0aDogMTUwdXB4O2hlaWdodDogMTUwdXB4O21hcmdpbi1yaWdodDogMSU7XCI+PC9pbWFnZT5cblx0XHRcdFx0XHRcdDx2aWV3ICBzdHlsZT1cIm1hcmdpbi1ib3R0b206IDMlOyBtYXJnaW4tdG9wOiAxJTttYXJnaW4tbGVmdDogMSU7cGFkZGluZzogMSU7IHdpZHRoOiA3MHZ3O2JhY2tncm91bmQ6ICNFRkVGRUY7Ym9yZGVyLXJhZGl1czogMTBycHggMTBycHggMTBycHggMTBycHg7XCI+XG5cdFx0XHRcdFx0XHRcdDwhLS0gPHRleHQgIHN0eWxlPVwid2lkdGg6IDEwMCU7YWxpZ24tc2VsZjogYXV0bztcIj5cblx0XHRcdFx0XHRcdFx0XHR7e3JlY3ZNc2dRdWV1ZVtpbmRleF0ubXNnX3RleHR9fVxuXHRcdFx0XHRcdFx0XHQ8L3RleHQ+IC0tPlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBAdGFwPVwiaGFuZGxlQ2xpY2soKVwiIHN0eWxlPVwid2lkdGg6IDEwMCU7XCIgY2xhc3M9XCJodG1sQ29udGVudFwiIHJlZj1cImh0bWxDb250ZW50XCIgdi1odG1sPVwicmV0dXJuVGV4dChyZWN2TXNnUXVldWVbaW5kZXhdLm1zZ190ZXh0KVwiPjwvdmlldz5cblx0XHRcdFx0XHRcdFx0PHZpZXcgQGNsaWNrPVwic3RvcFJlY3YoKVwiIHYtaWY9XCJyZWN2U3RhdHVzJiZyZWN2TXNnUXVldWVbaW5kZXhdLmlzRmluaXNoPT1mYWxzZVwiIHN0eWxlPVwiZGlzcGxheTogZmxleDt3aWR0aDogMTAwJTthbGlnbi1pdGVtczogY2VudGVyO2p1c3RpZnktY29udGVudDogY2VudGVyO1wiPlxuXHRcdFx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIuLi8uLi9zdGF0aWMvY2xvc2VkLnBuZ1wiIHN0eWxlPVwid2lkdGg6IDUwdXB4O2hlaWdodDogNTB1cHg7YWxpZ24tc2VsZjogY2VudGVyO1wiPjwvaW1hZ2U+XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcblx0XHRcdFx0XHQ8IS0tIOaIkeWPkemAgSDnmoTmtojmga/nu5PmnoTkvZMgLS0+XG5cdFx0XHRcdFx0PHZpZXcgdi1pZj1cIiFpc0FJdGVsbChyZWN2TXNnUXVldWVbaW5kZXhdLndob19tc2cpXCIgIHN0eWxlPVwiZGlzcGxheTogZmxleDsgd2lkdGg6IDEwMCU7aGVpZ2h0OiAxMDAlO21hcmdpbi1ib3R0b206IDMlO1wiPlxuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cImp1c3RpZnktY29udGVudDogZW5kO2Rpc3BsYXk6IGZsZXg7IHdpZHRoOiAxMDAlO2hlaWdodDogMTAwJTsgXCI+XG5cdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwianVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyBkaXNwbGF5OiBmbGV4OzthbGlnbi1pdGVtczpjZW50ZXI7IHBhZGRpbmc6IDElO21hcmdpbi1yaWdodDogMiU7YmFja2dyb3VuZDpncmVlbjtib3JkZXItcmFkaXVzOiAxMHJweCAxMHJweCAxMHJweCAxMHJweDtcIj5cblx0XHRcdFx0XHRcdFx0XHQ8dmlldz48L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0PHRleHQgIHN0eWxlPVwiYWxpZ24tc2VsZjogYXV0bztjb2xvcjogYWxpY2VibHVlO1wiPlxuXHRcdFx0XHRcdFx0XHRcdFx0e3tyZWN2TXNnUXVldWVbaW5kZXhdLm1zZ190ZXh0fX1cblx0XHRcdFx0XHRcdFx0XHQ8L3RleHQ+IFxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDx2aWV3PlxuXHRcdFx0XHRcdFx0XHRcdDxpbWFnZSAgOnNyYz1cIm1ha2VfYXZhdGFyKHJlY3ZNc2dRdWV1ZVtpbmRleF0ud2hvX21zZylcIiBzdHlsZT1cIndpZHRoOiAxNTB1cHg7aGVpZ2h0OiAxNTB1cHg7cmlnaHQ6IDAlO1wiPjwvaW1hZ2U+XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XG5cdFx0XHRcdDwvdmlldz5cblx0XHRcdDwvdmlldz5cblx0XHQ8L3Njcm9sbC12aWV3PlxuXHRcdFxuXHRcdDx2aWV3IHN0eWxlPVwiZGlzcGxheTogZmxleDt3aWR0aDogMTAwdnc7aGVpZ2h0OiAxMHZoO2JvdHRvbTogMCU7XCI+XG5cdDwhLS0gXHRcdDx2aWV3IHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogZ2FpbnNib3JvO3dpZHRoOiA5MCU7XCI+XG5cdFx0XHRcdDxpbnB1dCA6ZGlzYWJsZWQ9XCJkaXNhYmxlZFwiICBwbGFjZWhvbGRlci1zdHlsZT1cIm1hcmdpbi1sZWZ0OiA1JTtcIiBzdHlsZT1cIndpZHRoOiAxMDAlO2hlaWdodDogMTB2aDtcIiBAaW5wdXQ9XCJvbktleUlucHV0XCIgOnZhbHVlPVwiaW5wdXRWYWx1ZVwiIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl5raI5oGv5YaF5a65KOS9v+eUqCBFbnRlciDlj5HpgIEpXCIvPlxuXHRcdFx0PC92aWV3PiAtLT5cblx0XHRcdDx2aWV3IHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogZ2FpbnNib3JvO3dpZHRoOiA5MCU7XCIgY2xhc3M9XCJ0ZXh0YXJlYS1ib3hcIj5cblx0XHRcdFx0PHRleHRhcmVhICB2LW1vZGVsPVwiaW5wdXRWYWx1ZVwiIDpjdXJzb3Itc3BhY2luZz1cIjE1XCIgY2xhc3M9XCJ0ZXh0YXJlYVwiIGF1dG8taGVpZ2h0PVwidHJ1ZVwiXG5cdFx0XHRcdFx0QGtleXVwLnNoaWZ0PVwib25LZXl1cCgnc2hpZnQnKVwiIEBrZXlkb3duLnNoaWZ0PVwib25LZXlkb3duKCdzaGlmdCcpXCJcblx0XHRcdFx0XHRAa2V5ZG93bi5lbnRlcj1cIm9uS2V5ZG93bignZW50ZXInKVwiIDpkaXNhYmxlZD1cImRpc2FibGVkXCJcblx0XHRcdFx0XHRwbGFjZWhvbGRlcj1cIuivt+i+k+WFpea2iOaBr+WGheWuuSjkvb/nlKggRW50ZXIg5Y+R6YCBKVwiIDptYXhsZW5ndGg9XCItMVwiIFxuXHRcdFx0XHRcdHBsYWNlaG9sZGVyLWNsYXNzPVwiaW5wdXQtcGxhY2Vob2xkZXJcIj48L3RleHRhcmVhPlxuXHRcdFx0PC92aWV3PlxuXHRcdFx0PHZpZXcgc3R5bGU9XCJ3aWR0aDogMTAlO3Bvc2l0aW9uOiByZWxhdGl2ZTtcIj5cblx0XHRcdFx0PHZpZXcgdi1pZj1cInJlY3ZTdGF0dXM9PWZhbHNlXCIgc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBkaXNwbGF5OiBmbGV4OyAgYmFja2dyb3VuZC1jb2xvcjpzbGF0ZWdyYXk7Y29sb3I6IGFsaWNlYmx1ZTthbGlnbi1pdGVtczogY2VudGVyO2p1c3RpZnktY29udGVudDogY2VudGVyXCIgQGNsaWNrPVwic2VuZE1zZ1wiPlxuXHRcdFx0XHRcdOWPkemAgVxuXHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdDx2aWV3IDphbmltYXRpb249XCJhbmlcIiA6c3R5bGU9XCJhbmlfc3R5bGVcIj5cblx0XHRcdFx0XHQ8aW1hZ2Ugdi1pZj1cInJlY3ZTdGF0dXM9PXRydWVcIiAgc3JjPVwiLi4vLi4vc3RhdGljL2FwcGxlLnBuZ1wiIHN0eWxlPVwid2lkdGg6IDEwMCU7aGVpZ2h0OiAxMDAlO1wiPjwvaW1hZ2U+XG5cdFx0XHRcdDwvdmlldz5cblx0XHRcdDwvdmlldz5cblx0XHQ8L3ZpZXc+XG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XG5cdGltcG9ydCBtYXJrZWQgZnJvbSAnLi4vbWFya2VkL21hcmtlZC5taW4uanMnO1xuXHRpbXBvcnQgY29uZmlnIGZyb20gJy4vY29uZmlnLmpzJztcblx0aW1wb3J0IGhsanMgZnJvbSBcIi4uL2hpZ2hsaWdodC5qcy9saWIvY29tbW9uLmpzXCI7XG5cdGltcG9ydCBcImhpZ2hsaWdodC5qcy9zdHlsZXMvYXRvbS1vbmUtZGFyay5jc3NcIjtcblx0aW1wb3J0ICAnLi92LWNvcHkuanMnO1xuXHQvLyDplK7nm5jnmoRzaGlmdOmUruaYr+WQpuiiq+aMieS4i1xuXHRsZXQgc2hpZnRLZXlQcmVzc2VkID0gZmFsc2VcclxuXHRleHBvcnQgZGVmYXVsdCB7XG5cdFx0XG5cdFx0Y29tcG9uZW50czp7XG5cdFx0XHRtYXJrZWRcblx0XHR9LFxuXHRcdFxuXHRcdG1vdW50ZWQoKXtcdFx0XHRcblx0XHRcdFx0bWFya2VkLnNldE9wdGlvbnMoe1xuXHRcdFx0XHQgICAgICAgICAgcmVuZGVyZXI6IG5ldyBtYXJrZWQuUmVuZGVyZXIoKSxcblx0XHRcdFx0ICAgICAgICAgIGdmbTogdHJ1ZSxcblx0XHRcdFx0ICAgICAgICAgIHRhYmxlczogdHJ1ZSxcblx0XHRcdFx0ICAgICAgICAgIGJyZWFrczogZmFsc2UsXG5cdFx0XHRcdCAgICAgICAgICBwZWRhbnRpYzogZmFsc2UsXG5cdFx0XHRcdCAgICAgICAgICBzYW5pdGl6ZTogZmFsc2UsXG5cdFx0XHRcdCAgICAgICAgICBzbWFydExpc3RzOiB0cnVlLFxuXHRcdFx0XHQgICAgICAgICAgc21hcnR5cGFudHM6IGZhbHNlLFxuXHRcdFx0XHRcdFx0ICBoaWdobGlnaHQ6IGZ1bmN0aW9uIChjb2RlKSB7XG5cdFx0XHRcdFx0XHQgIFx0XHRcdFx0XHRyZXR1cm4gaGxqcy5oaWdobGlnaHRBdXRvKGNvZGUpLnZhbHVlO1xuXHRcdFx0XHRcdFx0IH0sXG5cdFx0XHRcdFx0XHQgbGFuZ1ByZWZpeDpcImhsanMgbGFuZ3VhZ2UtXCJcblx0XHRcdFx0fSk7XG5cdFx0XHRcdFxuXHRcdFx0XG5cdFx0fSxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdGNvZGU6JycsXHJcblx0XHRcdFx0dGl0bGU6ICdIZWxsbycsXG5cdFx0XHRcdGRpc2FibGVkOiBmYWxzZSxcblx0XHRcdFx0c29ja2V0T3BlbjpmYWxzZSxcblx0XHRcdFx0c29ja2V0TXNnUXVldWU6W10sXG5cdFx0XHRcdHJlY3ZNc2dRdWV1ZTpbXSxcblx0XHRcdFx0c2VuZE1zZ1F1ZXVlOltdLFxuXHRcdFx0XHRpbnB1dFZhbHVlOiAnJyxcblx0XHRcdFx0X3NvY2tldFRhc2s6bnVsbCxcblx0XHRcdFx0c2Nyb2xsX3RleHRfOlwiXFxuXCIsXG5cdFx0XHRcdHNlbmRTdGF0dXM6ZmFsc2UsXG5cdFx0XHRcdHJlY3ZTdGF0dXM6ZmFsc2UsXG5cdFx0XHRcdGFsbF9zcmNfbGlzdDpbXSxcblx0XHRcdFx0c3JjX2luZGV4OjAsXG5cdFx0XHRcdHNjcm9sbF90b3A6MCxcblx0XHRcdFx0YW5pOicnLFxuXHRcdFx0XHRhbmlfc3R5bGU6e1xuXHRcdFx0XHRcdHdpZHRoOiBcIjEwMHVweFwiLGhlaWdodDogXCIxMDB1cHhcIixyb3RhdGU6IDAsbGVmdDpcIjI1JVwiLHJpZ2h0OlwiMjUlXCIscG9zaXRpb246XCJhYnNvbHV0ZVwiXG5cdFx0XHRcdH0sXG5cdFx0XHRcdGFuZ2xlOjM1OSxcclxuXHRcdFx0fVx0XHJcblx0XHR9LFxyXG5cdFx0b25Mb2FkKCkge1xyXG5cdFx0XHR0aGlzLmluaXRUY3AoKTtcclxuXHRcdH0sXHJcblx0XHRtZXRob2RzOiB7XG5cdFx0XHQvLyAjaWZkZWYgSDUgJiYgVlVFMlxuXHRcdFx0b25LZXlkb3duKGtleW5hbWUpIHtcblx0XHRcdFx0aWYgKGtleW5hbWUgPT0gJ3NoaWZ0Jykge1xuXHRcdFx0XHRcdC8v5oyJ5LiL5LqGc2hpZnTplK5cblx0XHRcdFx0XHRzaGlmdEtleVByZXNzZWQgPSB0cnVlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGxldCBzZWxmID0gdGhpcztcblx0XHRcdFx0Ly8g5oyJ5LiL5LqG5Zue6L2mIOS4lCDkuYvliY3msqHmjInkuIsgc2hpZnRcblx0XHRcdFx0aWYgKGtleW5hbWUgPT0gJ2VudGVyJyAmJiAhc2hpZnRLZXlQcmVzc2VkKSB7XG5cdFx0XHRcdFx0dGhpcy4kbmV4dFRpY2soKCkgPT4ge1xuXHRcdFx0XHRcdFx0Ly8gc2VsZi5zZW5kTXNnKCk7XG5cdFx0XHRcdFx0fSlcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHRcdG9uS2V5dXAoa2V5bmFtZSkge1xuXHRcdFx0XHRpZiAoa2V5bmFtZSA9PSAnc2hpZnQnKSB7XG5cdFx0XHRcdFx0Ly/mjInkuIvkuoZzaGlmdOmUrlxuXHRcdFx0XHRcdHNoaWZ0S2V5UHJlc3NlZCA9IGZhbHNlO1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0Ly8gI2VuZGlmXG5cdFx0XHRzZXRDb3B5KGNvbnRlbnQpe1xuXHRcdFx0ICAgIC8vIOS9v+eUqCNpZmRlZiBINeWSjCNlbmRpZuaOp+WItuWQhOerr+iwg+eUqOaDheWGtVxuXHRcdFx0XG5cdFx0XHQgICAgLy8g6K+l5pa55rOV5LiN5pSv5oyBaDVcblx0XHRcdCAgICAvLyNpZm5kZWYgSDVcblx0XHRcdCAgICB1bmkuc2V0Q2xpcGJvYXJkRGF0YSh7XG5cdFx0XHQgICAgICAgIGRhdGE6IFN0cmluZyhjb250ZW50KSwgLy8g5b+F6aG75a2X56ym5LiyXG5cdFx0XHQgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uICgpIHtcblx0XHRcdCAgICAgICAgICAgIGNvbnNvbGUubG9nKCdzdWNjZXNzJyk7XG5cdFx0XHQgICAgICAgIH1cblx0XHRcdCAgICB9KTtcblx0XHRcdCAgICAvLyNlbmRpZlxuXHRcdFx0XG5cdFx0XHQgICAgLy8gaDXnq6/otYvlgLzmlrnms5XvvIzkvb/nlKjliJvlu7roioLngrlcblx0XHRcdCAgICAvLyAjaWZkZWYgSDVcblx0XHRcdCAgICBpZiAoIWRvY3VtZW50LnF1ZXJ5Q29tbWFuZFN1cHBvcnRlZCgnY29weScpKSB7IC8vIOWFvOWuueafkOS6m+a1j+iniOWZqOeahOWIpOaWrVxuXHRcdFx0ICAgICAgICBjb25zb2xlLmxvZygn6K+l5rWP6KeI5Zmo5LiN5pSv5oyBJylcblx0XHRcdCAgICB9XG5cdFx0XHQgICAgbGV0IHRleHRhcmVhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInRleHRhcmVhXCIpXG5cdFx0XHQgICAgdGV4dGFyZWEudmFsdWUgPSBjb250ZW50XG5cdFx0XHQgICAgdGV4dGFyZWEucmVhZE9ubHkgPSBcInJlYWRPbmx5XCJcblx0XHRcdCAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRleHRhcmVhKVxuXHRcdFx0ICAgIHRleHRhcmVhLnNlbGVjdCgpIC8vIOmAieaLqeWvueixoVxuXHRcdFx0ICAgIHRleHRhcmVhLnNldFNlbGVjdGlvblJhbmdlKDAsIGNvbnRlbnQubGVuZ3RoKSAvLyDmoLjlv4Ncblx0XHRcdCAgICBsZXQgcmVzdWx0ID0gZG9jdW1lbnQuZXhlY0NvbW1hbmQoXCJjb3B5XCIpIC8vIOaJp+ihjOa1j+iniOWZqOWkjeWItuWRveS7pFxuXHRcdFx0ICAgIGlmIChyZXN1bHQpIHtcblx0XHRcdCAgICAgICAgdW5pLnNob3dUb2FzdCh7XG5cdFx0XHQgICAgICAgICAgICB0aXRsZTogJ+WkjeWItuaIkOWKnycsXG5cdFx0XHQgICAgICAgICAgICBkdXJhdGlvbjogMjAwMFxuXHRcdFx0ICAgICAgICB9KTtcblx0XHRcdCAgICB9XG5cdFx0XHQgICAgdGV4dGFyZWEucmVtb3ZlKClcblx0XHRcdCAgICAvLyAjZW5kaWZcblx0XHRcdH0sXG5cdFx0XHR1cGRhdGVTcmNMaXN0KCl7XG5cdFx0XHRcdGxldCBzZWxmID0gdGhpcztcblx0XHRcdFx0bGV0IGxpc3QgPSB0aGlzLmdldEluZGV4TGlzdChzZWxmLnNjcm9sbF90ZXh0Xyk7XG5cdFx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrPTIpIHtcblx0XHRcdFx0XHRsZXQgc3RhcnQgPSBsaXN0W2ldO1xuXHRcdFx0XHRcdGxldCBlbmQgPSBsaXN0W2krMV07XG5cdFx0XHRcdFx0c2VsZi5hbGxfc3JjX2xpc3QucHVzaChzZWxmLnNjcm9sbF90ZXh0Xy5zdWJzdHJpbmcoc3RhcnQsZW5kKSlcblx0XHRcdFx0fVx0XG5cdFx0XHRcdGNvbnNvbGUubG9nKFwidXBkYXRlU3JjTGlzdFwiLHNlbGYuYWxsX3NyY19saXN0LHNlbGYuc2Nyb2xsX3RleHRfKVxuXHRcdFx0fSxcblx0XHRcdHN0b3BSZWN2KCl7XG5cdFx0XHRcdGxldCBzZWxmID10aGlzO1xuXHRcdFx0XHRzZWxmLl9zb2NrZXRUYXNrLmNsb3NlKClcblx0XHRcdFx0c2VsZi5pbml0VGNwKHRydWUpO1xuXHRcdFx0XHRzZWxmLmZpbmlzaF9yZWN2KCk7XG5cdFx0XHR9LFxuXHRcdFx0IGhhbmRsZUNsaWNrKGUpIHtcblx0XHRcdFx0ZSA9IGUgfHwgd2luZG93LmV2ZW50O1xuXHRcdFx0XHRsZXQgdGFyZ2V0ID0gZS50YXJnZXQgfHwgZS5zcmNFbGVtZW50O1xuXHRcdFx0XHRsZXQgbmFtZSA9IHRhcmdldC50YWdOYW1lLnRvTG93ZXJDYXNlKCk7XG5cdFx0XHRcdGxldCBzZWxmID10aGlzO1xuXHRcdFx0XHRpZihuYW1lLnN1YnN0cmluZygwLDMpPT1cImFiY1wiKXtcblx0XHRcdFx0XHRsZXQgbmFtZV9saXN0ID0gbmFtZS5zcGxpdCgnXycpO1xuXHRcdFx0XHRcdGlmKG5hbWVfbGlzdC5sZW5ndGg+MCl7XG5cdFx0XHRcdFx0XHRsZXQgaW5kZXggPSBwYXJzZUludChuYW1lX2xpc3RbMV0pLTE7XG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhcImhhbmRsZUNsaWNrXCIsaW5kZXgsc2VsZi5hbGxfc3JjX2xpc3QpXG5cdFx0XHRcdFx0XHRzZWxmLnNldENvcHkoc2VsZi5hbGxfc3JjX2xpc3RbaW5kZXhdKVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRjb25zb2xlLmxvZyhcImhhbmRsZUNsaWNrXCIsc2VsZi5hbGxfc3JjX2xpc3RbaW5kZXhdKVxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKHRhcmdldC50YWdOYW1lLnRvTG93ZXJDYXNlKCkpXG5cdFx0XHRcdH1cblx0XHRcdFx0Y29uc29sZS5sb2cobmFtZS5zdWJzdHJpbmcoMCwzKSlcblx0XHRcdCAgfSxcblx0XHRcdGNvcHlVcGRhdGVzKCl7XG5cdFx0XHRcdGxldCBzZWxmID0gdGhpcztcblx0XHRcdFx0bGV0IHN0ciA9IHNlbGYucmVjdk1zZ1F1ZXVlW3NlbGYucmVjdk1zZ1F1ZXVlLmxlbmd0aC0xXS5tc2dfdGV4dFxuXHRcdFx0XHRsZXQga2V5ID0gXCI8L2NvZGU+PC9wcmU+XCI7XG5cdFx0XHRcdGxldCBpbmRleCA9IHNlbGYuYWxsX3NyY19saXN0Lmxlbmd0aDtcblx0XHRcdFx0d2hpbGUoc3RyLmluZGV4T2Yoa2V5KSAhPSAtMSl7XG5cdFx0XHRcdFx0aW5kZXgrKztcblx0XHRcdFx0XHRsZXQgc190YWcgPSAgIFwiPC9jb2RlPjxhYmNfXCIraW5kZXgrXCIgY2xhc3M9XFxcImNvcHktYnV0dG9uXFxcIj5Db3B5PC9hYmNfXCIraW5kZXgrXCI+PC9wcmU+XCJcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhcInNfdGFnXCIsc190YWcpXG5cdFx0XHRcdFx0c3RyPXN0ci5yZXBsYWNlKFwiPC9jb2RlPjwvcHJlPlwiLCBzX3RhZylcblx0XHRcdFx0fVxuXHRcdFx0XHQvLyBzdHI9c3RyLnJlcGxhY2VBbGwoXCI8L2NvZGU+PC9wcmU+XCIsIFwiPC9jb2RlPjxhYmMgY2xhc3M9XFxcImNvcHktYnV0dG9uXFxcIj5Db3B5PC9hYmM+PC9wcmU+XCIpXG5cdFx0XHRcdHNlbGYucmVjdk1zZ1F1ZXVlW3NlbGYucmVjdk1zZ1F1ZXVlLmxlbmd0aC0xXS5tc2dfdGV4dCA9IHN0clxuXHRcdFx0XHQvLyBjb25zb2xlLmxvZyhcImNvcHlVcGRhdGVzXCIsc3RyKVxuXHRcdFx0XHRzZWxmLiRmb3JjZVVwZGF0ZSgpO1xuXHRcdFx0fSxcdFxuXHRcdFx0XG5cdFx0XHRnZXRJbmRleExpc3QoYm94X3N0cil7XG5cdFx0XHRcdGxldCBib3ggPSBib3hfc3RyO1xuXHRcdFx0XHRsZXQgYm94YXJyPVtdO1xuXHRcdFx0XHRsZXQgcG9zID0gYm94LmluZGV4T2YoJ2BgYCcpO1xuXHRcdFx0XHR3aGlsZShwb3M+LTEpe1xuXHRcdFx0XHRcdGJveGFyci5wdXNoKHBvcyk7XG5cdFx0XHRcdFx0cG9zPSBib3guaW5kZXhPZignYGBgJyxwb3MrMSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIGJveGFyclxuXG5cdFx0XHR9LFxuXHRcdFx0cmV0dXJuVGV4dCh0ZXh0KXtcblx0XHRcdFx0cmV0dXJuIFwiPHN0eWxlPiBwcmUge3Bvc2l0aW9uOiByZWxhdGl2ZTt9LmNvcHktYnV0dG9uIHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7cmlnaHQ6IDA7cGFkZGluZzogNHB4IDhweDtiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO2NvbG9yOiAjZmZmO2N1cnNvcjogcG9pbnRlcjt1c2VyLXNlbGVjdDogbm9uZTt9IHAge2xpbmUtaGVpZ2h0OiAyO30gbGl7bGluZS1oZWlnaHQ6IDEuNTt9IHRhYmxlIHtib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO3dpZHRoOiAxMDAlO2ZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjtmb250LXNpemU6IDE0cHg7fXRhYmxlIHRoLHRhYmxlIHRkIHtib3JkZXI6IDFweCBzb2xpZCAjZGRkO3BhZGRpbmc6IDhweDt0ZXh0LWFsaWduOiBsZWZ0O308L3N0eWxlPlwiK3RleHRcblx0XHRcdH0sXG5cdFx0XHQvLyDmu5rliqjnqpflj6Pku6XmmL7npLrmnIDmlrDnmoTkuIDmnaHmtojmga9cblx0XHRcdHNob3dMYXN0TXNnKCkge1xuXHRcdFx0XHRsZXQgc2VsZiA9IHRoaXM7XG5cdFx0XHRcdGxldCBjb250YWluZXIgPSB1bmkuY3JlYXRlU2VsZWN0b3JRdWVyeSgpLmluKHRoaXMpLnNlbGVjdChcIi5zY3JvbGwtdmlldy10ZXh0XCIpO1xuXHRcdFx0XHQvLyDliKnnlKh1bmlhcHDmj5DkvpvnmoTmjqXlj6Pojrflj5blj6/op4bljLrln5/nmoTpq5jluqblkozmu5rliqjpq5jluqZcblx0XHRcdFx0XHQvLyBsZXQgcXVlcnk9dW5pLmNyZWF0ZVNlbGVjdG9yUXVlcnkoKVxuXHRcdFx0XHRcdC8vIGxldCBjb250YWluZXI9cXVlcnkuc2VsZWN0KCcuYm94Jyk7XG5cdFx0XHRcdFx0Y29udGFpbmVyLmZpZWxkcyh7XG5cdFx0XHRcdFx0XHQvLyByZWN0OnRydWUsICAgLy/mmK/lkKbov5Tlm57oioLngrnluIPlsYDkvY3nva7kv6Hmga97bGVmdCx0b3AscmlnaHQsYm90dG9tfVxuXHRcdFx0XHRcdFx0c2l6ZTp0cnVlLCAgLy/mmK/lkKbov5Tlm57oioLngrnlsLrlr7jkv6Hmga97d2lkdGjvvIxoZWlnaHR9XG5cdFx0XHRcdFx0XHRzY3JvbGxPZmZzZXQ6dHJ1ZSAvL+aYr+WQpui/lOWbnuiKgueCuea7muWKqOS/oeaBr3tzY3JvbGxMZWZ0LHNjcm9sbFRvcH1cblx0XHRcdFx0XHR9LChyZXMpPT57XG5cdFx0XHRcdFx0XHRzZWxmLnNjcm9sbF90b3AgPSByZXMuaGVpZ2h0O1xuXHRcdFx0XHRcdFx0Ly8gY29uc29sZS5sb2cocmVzKVxuXHRcdFx0XHR9KS5leGVjKClcblx0XHRcdH0sXG5cdFx0XHRpc0FJdGVsbCh0eXBlKXtcblx0XHRcdFx0aWYodHlwZT09PWNvbmZpZy50eXBlX2FpKXtcblx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHR9LFxuXHRcdFx0bWFrZV9hdmF0YXIodHlwZSl7XG5cdFx0XHRcdGlmKHR5cGU9PT1jb25maWcudHlwZV9haSl7XG5cdFx0XHRcdFx0cmV0dXJuIFwiLi4vLi4vc3RhdGljL1B1YkltZ3NfYXZhdGFyX2F2YXRhcjcucG5nXCI7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIFwiLi4vLi4vc3RhdGljL1B1YkltZ3NfYXZhdGFyX2F2YXRhcjgucG5nXCI7XG5cdFx0XHR9LFxuXHRcdFx0aXNTaG93KHRleHQpe1xuXHRcdFx0XHRyZXR1cm4gdGV4dCE9XCJcIjtcblx0XHRcdH0sXG5cdFx0XHRpbml0QW5pKCl7XG5cdFx0XHRcdGxldCBzZWxmID0gdGhpcztcblx0XHRcdFx0bGV0IGFjdGlvbiA9IHVuaS5jcmVhdGVBbmltYXRpb24oe1xuXHRcdFx0XHRcdFx0ICBkdXJhdGlvbjogMTAwMDAsXG5cdFx0XHRcdFx0XHQgIHRyYW5zZm9ybU9yaWdpbjpcIjUwJSA1MCUgMFwiLFxuXHRcdFx0XHRcdFx0ICB0aW1pbmdGdW5jdGlvbjogXCJlYXNlXCIsXG5cdFx0XHRcdFx0XHQgIGRlbGF5OiAwXG5cdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRzZWxmLmFuZ2xlKz0zNjA7XG5cdFx0XHRcdGFjdGlvbi5yb3RhdGUoc2VsZi5hbmdsZSkuc3RlcCgpXG5cdFx0XHRcdHNlbGYuYW5pID0gIGFjdGlvbi5leHBvcnQoKVxuXHRcdFx0XHRzZXRUaW1lb3V0KHNlbGYuaW5pdEFuaSwxMDAwMClcblx0XHRcdH0sXG5cdFx0XHR0cnlSZUNvbm5lY3QoKXtcblx0XHRcdFx0bGV0IHNlbGYgPSB0aGlzO1xuXHRcdFx0XHR1bmkuc2hvd0xvYWRpbmcoe1xuXHRcdFx0XHRcdHRpdGxlOlwi5q2j5Zyo5bCd6K+V6YeN5paw6L+e5o6lXCJcblx0XHRcdFx0fSlcdFxuXHRcdFx0XHRzZWxmLmRpc2FibGVkID0gZmFsc2U7XG5cdFx0XHRcdHNlbGYuc29ja2V0T3BlbiA9IGZhbHNlO1xuXHRcdFx0XHRzZWxmLmluaXRUY3AoKVxuXHRcdFx0fSxcclxuXHRcdFx0aW5pdFRjcChpc1N0b3BSZWN2PWZhbHNlKXtcblx0XHRcdFx0bGV0IHNlbGYgPSB0aGlzO1x0XHRcblx0XHRcdFx0c2VsZi5fc29ja2V0VGFzayA9IG5ldyBXZWJTb2NrZXQoXCJ3czovLzQ3Ljg4Ljg2LjEyMzo4MDAwL3dzXCIpIDtcblx0XHRcdFx0c2VsZi5fc29ja2V0VGFzay5vbm9wZW4gPSBmdW5jdGlvbiAocmVzKSB7XG5cdFx0XHRcdCAgY29uc29sZS5sb2coJ1dlYlNvY2tldOi/nuaOpeW3suaJk+W8gO+8gScpO1xuXHRcdFx0XHQgIGlmKCFpc1N0b3BSZWN2KXtcblx0XHRcdFx0XHQgIHVuaS5zaG93TG9hZGluZyh7XG5cdFx0XHRcdFx0ICBcdFx0XHRcdFx0XHR0aXRsZTpcIueZu+W9leaIkOWKn1wiXG5cdFx0XHRcdFx0ICB9KVxuXHRcdFx0XHQgIH1cblx0XHRcdFx0ICBzZWxmLnNvY2tldE1zZ1F1ZXVlID0gW107XG5cdFx0XHRcdCAgdW5pLmhpZGVMb2FkaW5nKClcblx0XHRcdFx0ICBzZWxmLnNvY2tldE9wZW4gPSB0cnVlO1xuXHRcdFx0XHRcdCAgXG5cdFx0XHRcdH07XG5cdFx0XHRcdHNlbGYuX3NvY2tldFRhc2sub25jbG9zZSA9IChyZXMpPT57XG5cdFx0XHRcdFx0Ly8gdW5pLnNob3dNb2RhbCh7XG5cdFx0XHRcdFx0Ly8gXHRzaG93Q2FuY2VsOmZhbHNlLFxuXHRcdFx0XHRcdC8vIFx0dGl0bGU6XCJXZWJTb2NrZXQgaXMgb25jbG9zZSBcIlxuXHRcdFx0XHRcdC8vIH0pXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coXCJXZWJTb2NrZXQgaXMgb25jbG9zZVwiKVxuXHRcdFx0XHRcdHNlbGYuX3NvY2tldFRhc2suY2xvc2UoKVxuXHRcdFx0XHRcdHNlbGYudHJ5UmVDb25uZWN0KClcblx0XHRcdFx0fTtcblx0XHRcdFx0c2VsZi5fc29ja2V0VGFzay5vbmVycm9yPSBmdW5jdGlvbiAocmVzKSB7XG5cdFx0XHRcdFx0Ly8gdW5pLnNob3dNb2RhbCh7XG5cdFx0XHRcdFx0Ly8gXHRzaG93Q2FuY2VsOmZhbHNlLFxuXHRcdFx0XHRcdC8vIFx0dGl0bGU6XCJXZWJTb2NrZXTov57mjqXmiZPlvIDlpLHotKXvvIzor7fmo4Dmn6VcIlxuXHRcdFx0XHRcdC8vIH0pXG5cdFx0XHRcdCAgY29uc29sZS5sb2coJ1dlYlNvY2tldOi/nuaOpeaJk+W8gOWksei0pe+8jOivt+ajgOafpe+8gScpO1xuXHRcdFx0XHR9O1xuXHRcdFx0XHRcblx0XHRcdFx0c2VsZi5fc29ja2V0VGFzay5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAocmVzKSB7XG5cdFx0XHRcdCAgLy8gY29uc29sZS5sb2coJ+aUtuWIsOacjeWKoeWZqOWGheWuue+8micgKyByZXMuZGF0YSk7XG5cdFx0XHRcdCAgbGV0IGNvbnRlbnQgPSAnJ1xuXHRcdFx0XHQgIGxldCBkYXRhID0gSlNPTi5wYXJzZShyZXMuZGF0YSk7XG5cdFx0XHRcdCAgY29udGVudCA9IGRhdGEuY29udGVudCsnJ1xuXHRcdFx0XHQgIGlmKHNlbGYuc2VuZFN0YXR1cyl7XG5cdFx0XHRcdFx0ICBzZWxmLnNlbmRTdGF0dXMgPSBmYWxzZTtcblx0XHRcdFx0XHQgIC8vIGNvbnRlbnQgPSAn4paqICc7XG5cdFx0XHRcdFx0ICBzZWxmLnNjcm9sbF90ZXh0XyA9ICcnO1xuXHRcdFx0XHRcdCAgLy8gbGV0IGluZGV4ID0gc2VsZi5yZWN2TXNnUXVldWUubGVuZ3RoPjA/c2VsZi5yZWN2TXNnUXVldWUubGVuZ3RoOjBcblx0XHRcdFx0XHQgIHNlbGYucmVjdk1zZ1F1ZXVlLnB1c2goe3dob19tc2c6Y29uZmlnLnR5cGVfYWksbXNnX3R5cGU6MCxtc2dfdGV4dDonJyxpc0ZpbmlzaDpmYWxzZX0pXG5cdFx0XHRcdFx0ICBzZWxmLnN0YXJ0VXBkYXRlVmlldygpXG5cdFx0XHRcdCAgfVxuXHRcdFx0XHRcdC8vIOWcqGRvbea4suafk+WujOavleWQjiDkvb/ogYrlpKnnqpflj6Pmu5rliqjliLDmnIDlkI7kuIDmnaHmtojmga9cblx0XHRcdFx0XHRzZWxmLiRuZXh0VGljaygoKSA9PiB7XG5cdFx0XHRcdFx0XHRzZWxmLnNob3dMYXN0TXNnKClcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHQgIC8vIGNvbnNvbGUubG9nKCfmlLbliLDmnI3liqHlmajlhoXlrrnvvJonICtjb250ZW50ICk7XG5cdFx0XHRcdCAgbGV0IGZpbmlzaF9yZWFzb24gPSBkYXRhLmZpbmlzaF9yZWFzb24rJydcblx0XHRcdFx0ICBpZihjb250ZW50IT0nbnVsbCcpe1xuXHRcdFx0XHRcdCAgc2VsZi5zY3JvbGxfdGV4dF8rPWNvbnRlbnQ7XG5cdFx0XHRcdFx0ICAvLyBpZihjb250ZW50PT0nLid8fGNvbnRlbnQ9PSfjgIInKXtcblx0XHRcdFx0XHRcdCAvLyAgc2VsZi5zY3JvbGxfdGV4dF8rPSdcXG7ilqogJztcblx0XHRcdFx0XHQgIC8vIH1cblx0XHRcdFx0ICB9XG5cdFx0XHRcdCAgaWYoZmluaXNoX3JlYXNvbiE9J251bGwnKXtcblx0XHRcdFx0XHQgIHNlbGYuZmluaXNoX3JlY3YoKVxuXHRcdFx0XHRcdCAgLy8gc2VsZi5yZWN2U3RhdHVzID0gZmFsc2U7XG5cdFx0XHRcdFx0ICAvLyBzZWxmLmRpc2FibGVkID0gZmFsc2U7XG5cdFx0XHRcdFx0ICAvLyBjbGVhclRpbWVvdXQoc2VsZi5pbml0QW5pKVxuXHRcdFx0XHRcdCAgLy8gc2VsZi5zY3JvbGxfdGV4dF8rPVwiXFxuXCJcblx0XHRcdFx0XHQgIC8vIGNvbnNvbGUubG9nKFwic2VsZi5yZWN2TXNnUXVldWVcIixzZWxmLnNjcm9sbF90ZXh0Xylcblx0XHRcdFx0XHQgIC8vIHNlbGYuc3RvcFVwZGF0ZVZpZXcoKTtcblx0XHRcdFx0XHQgIC8vIHNlbGYuY29weVVwZGF0ZXMoKTtcblx0XHRcdFx0XHQgIC8vIHNlbGYudXBkYXRlU3JjTGlzdCgpO1xuXHRcdFx0XHRcdCAgLy8gc2VsZi5yZWN2TXNnUXVldWVbc2VsZi5yZWN2TXNnUXVldWUubGVuZ3RoLTFdLmlzRmluaXNoID0gdHJ1ZTtcblx0XHRcdFx0XG5cdFx0XHRcdCAgfWVsc2V7XG5cdFx0XHRcdFx0c2VsZi5yZWN2TXNnUXVldWVbc2VsZi5yZWN2TXNnUXVldWUubGVuZ3RoLTFdLm1zZ190ZXh0ID0gbWFya2VkLnBhcnNlKHNlbGYuc2Nyb2xsX3RleHRfKTtcblx0XHRcdFx0ICB9XG5cdFx0XHRcdCAgLy8gY29uc29sZS5sb2coXCJzZWxmLnJlY3ZNc2dRdWV1ZS5sZW5ndGhcIixzZWxmLnJlY3ZNc2dRdWV1ZS5sZW5ndGgpXG5cdFx0XHRcdH07XG5cdFx0XHR9LFxuXHRcdFx0YXN5bmMgZmluaXNoX3JlY3YoKXtcblx0XHRcdFx0bGV0IHNlbGYgPSB0aGlzO1xuXHRcdFx0XHRzZWxmLnJlY3ZTdGF0dXMgPSBmYWxzZTtcblx0XHRcdFx0c2VsZi5kaXNhYmxlZCA9IGZhbHNlO1xuXHRcdFx0XHRjbGVhclRpbWVvdXQoc2VsZi5pbml0QW5pKVxuXHRcdFx0XHRzZWxmLnNjcm9sbF90ZXh0Xys9XCJcXG5cIlxuXHRcdFx0XHRjb25zb2xlLmxvZyhcInNlbGYucmVjdk1zZ1F1ZXVlXCIsc2VsZi5zY3JvbGxfdGV4dF8pXG5cdFx0XHRcdHNlbGYuc3RvcFVwZGF0ZVZpZXcoKTtcblx0XHRcdFx0c2VsZi5jb3B5VXBkYXRlcygpO1xuXHRcdFx0XHRzZWxmLnVwZGF0ZVNyY0xpc3QoKTtcblx0XHRcdFx0c2VsZi5yZWN2TXNnUXVldWVbc2VsZi5yZWN2TXNnUXVldWUubGVuZ3RoLTFdLmlzRmluaXNoID0gdHJ1ZTtcblx0XHRcdH0sXG5cdFx0XHRhc3luYyBzZW5kTXNnKCl7XG5cdFx0XHRcdC8vIOWmguaenOWGheWuueS4uuepulxuXHRcdFx0XHRpZiAoIXRoaXMuaW5wdXRWYWx1ZSkge1xuXHRcdFx0XHRcdC8vIOW8ueWHuuaPkOekuuahhlxuXHRcdFx0XHRcdHJldHVybiB1bmkuc2hvd1RvYXN0KHtcblx0XHRcdFx0XHRcdC8vIOaPkOekuuWGheWuuVxuXHRcdFx0XHRcdFx0dGl0bGU6ICflhoXlrrnkuI3og73kuLrnqbonLFxuXHRcdFx0XHRcdFx0Ly8g5LiN5pi+56S65Zu+5qCHXG5cdFx0XHRcdFx0XHRpY29uOiAnbm9uZSdcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLnNlbmRTb2NrZXRNZXNzYWdlKHRoaXMuaW5wdXRWYWx1ZSlcblx0XHRcdH0sXG5cdFx0XHRvbktleUlucHV0KGV2ZW50KSB7XG5cdFx0XHRcdHRoaXMuaW5wdXRWYWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZVxuXHRcdFx0fSxcblx0XHRcdHN0YXJ0VXBkYXRlVmlldygpe1xuXHRcdFx0XHRsZXQgc2VsZiA9IHRoaXM7XG5cdFx0XHRcdHNlbGYuJGZvcmNlVXBkYXRlKCk7XG5cdFx0XHRcdHNldFRpbWVvdXQoc2VsZi5zdGFydFVwZGF0ZVZpZXcsNTAwKVxuXHRcdFx0fSxcblx0XHRcdHN0b3BVcGRhdGVWaWV3KCl7XG5cdFx0XHRcdGxldCBzZWxmID0gdGhpcztcblx0XHRcdFx0Y2xlYXJUaW1lb3V0KHNlbGYuc3RhcnRVcGRhdGVWaWV3KVxuXHRcdFx0fSxcblx0XHRcdHNlbmRTb2NrZXRNZXNzYWdlKG1zZykge1xuXHRcdFx0XHRsZXQgc2VsZiA9IHRoaXM7XG5cdFx0XHQgIGlmICh0aGlzLnNvY2tldE9wZW4pIHtcblx0XHRcdFx0IC8vICB1bmkuc2hvd0xvYWRpbmcoe1xuXHRcdFx0XHRcdC8vIHRpdGxlOlwi5q2j5Zyo5Y+R6YCBXCJcblx0XHRcdFx0IC8vICB9KVxuXHRcdFx0XHRzZWxmLnNlbmRTdGF0dXMgPSB0cnVlO1xuXHRcdFx0XHRzZWxmLmRpc2FibGVkID0gdHJ1ZTtcblx0XHRcdFx0c2VsZi5hbmlfc3R5bGUucm90YXRlID0gMDtcblx0XHRcdFx0c2VsZi5pbnB1dFZhbHVlID0gJyc7XG5cdFx0XHRcdHNlbGYuaW5pdEFuaSgpO1xuXHRcdFx0XHRzZWxmLnJlY3ZNc2dRdWV1ZS5wdXNoKHt3aG9fbXNnOmNvbmZpZy50eXBlX3NlbGYsbXNnX3R5cGU6MCxtc2dfdGV4dDptc2csaXNGaW5pc2g6ZmFsc2V9KVxuXHRcdFx0XHRzZWxmLnJlY3ZTdGF0dXMgPSB0cnVlO1xuXHRcdFx0XHRzZWxmLl9zb2NrZXRUYXNrLnNlbmQobXNnKVxuXHRcdFx0ICB9IGVsc2Uge1xuXHRcdFx0ICAgIHRoaXMuc29ja2V0TXNnUXVldWUucHVzaChtc2cpO1xuXHRcdFx0ICB9XG5cdFx0XHR9LFxuXHRcdFxuXHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZT5cclxuXHQuY29udGVudCB7XG5cdFx0aGVpZ2h0OiAxMDB2aDtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRcdC8qIHBvc2l0aW9uOiByZWxhdGl2ZTsgKi9cclxuXHR9XHJcblx0LnRleHQtYXJlYSB7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblx0fVxyXG5cclxuXHQudGl0bGUge1xyXG5cdFx0Zm9udC1zaXplOiAzNnJweDtcclxuXHRcdGNvbG9yOiAjOGY4Zjk0O1xyXG5cdH1cblx0XG5cdC50ZXh0YXJlYS1ib3gsXG5cdC50ZXh0YXJlYSB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHR9LFxuXHR0ZXh0YXJlYS1ib3gge1xuXHRcdHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG5cdH1cblx0XG5cdC50ZXh0YXJlYS1ib3gsXG5cdC50ZXh0YXJlYSxcblx0dGV4dGFyZWEsXG5cdHRleHRhcmVhLWJveCB7XG5cdFx0LyogaGVpZ2h0OiAxMjBweDsgKi9cblx0fVxuXG5cdC50ZXh0YXJlYS1ib3gge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNGRkY7XG5cdH1cclxuPC9zdHlsZT5cblxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///25\n");
  724. /***/ }),
  725. /* 26 */
  726. /*!*********************************************************************!*\
  727. !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js ***!
  728. \*********************************************************************/
  729. /*! exports provided: log, default */
  730. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  731. "use strict";
  732. __webpack_require__.r(__webpack_exports__);
  733. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "log", function() { return log; });
  734. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return formatLog; });
  735. function typof (v) {
  736. var s = Object.prototype.toString.call(v)
  737. return s.substring(8, s.length - 1)
  738. }
  739. function isDebugMode () {
  740. /* eslint-disable no-undef */
  741. return typeof __channelId__ === 'string' && __channelId__
  742. }
  743. function jsonStringifyReplacer (k, p) {
  744. switch (typof(p)) {
  745. case 'Function':
  746. return 'function() { [native code] }'
  747. default :
  748. return p
  749. }
  750. }
  751. function log (type) {
  752. for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
  753. args[_key - 1] = arguments[_key]
  754. }
  755. console[type].apply(console, args)
  756. }
  757. function formatLog () {
  758. for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
  759. args[_key] = arguments[_key]
  760. }
  761. var type = args.shift()
  762. if (isDebugMode()) {
  763. args.push(args.pop().replace('at ', 'uni-app:///'))
  764. return console[type].apply(console, args)
  765. }
  766. var msgs = args.map(function (v) {
  767. var type = Object.prototype.toString.call(v).toLowerCase()
  768. if (type === '[object object]' || type === '[object array]') {
  769. try {
  770. v = '---BEGIN:JSON---' + JSON.stringify(v, jsonStringifyReplacer) + '---END:JSON---'
  771. } catch (e) {
  772. v = type
  773. }
  774. } else {
  775. if (v === null) {
  776. v = '---NULL---'
  777. } else if (v === undefined) {
  778. v = '---UNDEFINED---'
  779. } else {
  780. var vType = typof(v).toUpperCase()
  781. if (vType === 'NUMBER' || vType === 'BOOLEAN') {
  782. v = '---BEGIN:' + vType + '---' + v + '---END:' + vType + '---'
  783. } else {
  784. v = String(v)
  785. }
  786. }
  787. }
  788. return v
  789. })
  790. var msg = ''
  791. if (msgs.length > 1) {
  792. var lastMsg = msgs.pop()
  793. msg = msgs.join('---COMMA---')
  794. if (lastMsg.indexOf(' at ') === 0) {
  795. msg += lastMsg
  796. } else {
  797. msg += '---COMMA---' + lastMsg
  798. }
  799. } else {
  800. msg = msgs[0]
  801. }
  802. console[type](msg)
  803. }
  804. /***/ }),
  805. /* 27 */
  806. /*!**********************************************************!*\
  807. !*** ./node_modules/@babel/runtime/regenerator/index.js ***!
  808. \**********************************************************/
  809. /*! no static exports found */
  810. /***/ (function(module, exports, __webpack_require__) {
  811. var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4);
  812. // TODO(Babel 8): Remove this file.
  813. var runtime = __webpack_require__(/*! ../helpers/regeneratorRuntime */ 28)();
  814. module.exports = runtime;
  815. // Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=
  816. try {
  817. regeneratorRuntime = runtime;
  818. } catch (accidentalStrictMode) {
  819. if ((typeof globalThis === "undefined" ? "undefined" : _typeof(globalThis)) === "object") {
  820. globalThis.regeneratorRuntime = runtime;
  821. } else {
  822. Function("r", "regeneratorRuntime = r")(runtime);
  823. }
  824. }
  825. /***/ }),
  826. /* 28 */
  827. /*!*******************************************************************!*\
  828. !*** ./node_modules/@babel/runtime/helpers/regeneratorRuntime.js ***!
  829. \*******************************************************************/
  830. /*! no static exports found */
  831. /***/ (function(module, exports, __webpack_require__) {
  832. var _typeof = __webpack_require__(/*! ./typeof.js */ 4)["default"];
  833. function _regeneratorRuntime() {
  834. "use strict";
  835. /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
  836. module.exports = _regeneratorRuntime = function _regeneratorRuntime() {
  837. return exports;
  838. }, module.exports.__esModule = true, module.exports["default"] = module.exports;
  839. var exports = {},
  840. Op = Object.prototype,
  841. hasOwn = Op.hasOwnProperty,
  842. defineProperty = Object.defineProperty || function (obj, key, desc) {
  843. obj[key] = desc.value;
  844. },
  845. $Symbol = "function" == typeof Symbol ? Symbol : {},
  846. iteratorSymbol = $Symbol.iterator || "@@iterator",
  847. asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator",
  848. toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";
  849. function define(obj, key, value) {
  850. return Object.defineProperty(obj, key, {
  851. value: value,
  852. enumerable: !0,
  853. configurable: !0,
  854. writable: !0
  855. }), obj[key];
  856. }
  857. try {
  858. define({}, "");
  859. } catch (err) {
  860. define = function define(obj, key, value) {
  861. return obj[key] = value;
  862. };
  863. }
  864. function wrap(innerFn, outerFn, self, tryLocsList) {
  865. var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,
  866. generator = Object.create(protoGenerator.prototype),
  867. context = new Context(tryLocsList || []);
  868. return defineProperty(generator, "_invoke", {
  869. value: makeInvokeMethod(innerFn, self, context)
  870. }), generator;
  871. }
  872. function tryCatch(fn, obj, arg) {
  873. try {
  874. return {
  875. type: "normal",
  876. arg: fn.call(obj, arg)
  877. };
  878. } catch (err) {
  879. return {
  880. type: "throw",
  881. arg: err
  882. };
  883. }
  884. }
  885. exports.wrap = wrap;
  886. var ContinueSentinel = {};
  887. function Generator() {}
  888. function GeneratorFunction() {}
  889. function GeneratorFunctionPrototype() {}
  890. var IteratorPrototype = {};
  891. define(IteratorPrototype, iteratorSymbol, function () {
  892. return this;
  893. });
  894. var getProto = Object.getPrototypeOf,
  895. NativeIteratorPrototype = getProto && getProto(getProto(values([])));
  896. NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);
  897. var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);
  898. function defineIteratorMethods(prototype) {
  899. ["next", "throw", "return"].forEach(function (method) {
  900. define(prototype, method, function (arg) {
  901. return this._invoke(method, arg);
  902. });
  903. });
  904. }
  905. function AsyncIterator(generator, PromiseImpl) {
  906. function invoke(method, arg, resolve, reject) {
  907. var record = tryCatch(generator[method], generator, arg);
  908. if ("throw" !== record.type) {
  909. var result = record.arg,
  910. value = result.value;
  911. return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) {
  912. invoke("next", value, resolve, reject);
  913. }, function (err) {
  914. invoke("throw", err, resolve, reject);
  915. }) : PromiseImpl.resolve(value).then(function (unwrapped) {
  916. result.value = unwrapped, resolve(result);
  917. }, function (error) {
  918. return invoke("throw", error, resolve, reject);
  919. });
  920. }
  921. reject(record.arg);
  922. }
  923. var previousPromise;
  924. defineProperty(this, "_invoke", {
  925. value: function value(method, arg) {
  926. function callInvokeWithMethodAndArg() {
  927. return new PromiseImpl(function (resolve, reject) {
  928. invoke(method, arg, resolve, reject);
  929. });
  930. }
  931. return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();
  932. }
  933. });
  934. }
  935. function makeInvokeMethod(innerFn, self, context) {
  936. var state = "suspendedStart";
  937. return function (method, arg) {
  938. if ("executing" === state) throw new Error("Generator is already running");
  939. if ("completed" === state) {
  940. if ("throw" === method) throw arg;
  941. return doneResult();
  942. }
  943. for (context.method = method, context.arg = arg;;) {
  944. var delegate = context.delegate;
  945. if (delegate) {
  946. var delegateResult = maybeInvokeDelegate(delegate, context);
  947. if (delegateResult) {
  948. if (delegateResult === ContinueSentinel) continue;
  949. return delegateResult;
  950. }
  951. }
  952. if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) {
  953. if ("suspendedStart" === state) throw state = "completed", context.arg;
  954. context.dispatchException(context.arg);
  955. } else "return" === context.method && context.abrupt("return", context.arg);
  956. state = "executing";
  957. var record = tryCatch(innerFn, self, context);
  958. if ("normal" === record.type) {
  959. if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue;
  960. return {
  961. value: record.arg,
  962. done: context.done
  963. };
  964. }
  965. "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg);
  966. }
  967. };
  968. }
  969. function maybeInvokeDelegate(delegate, context) {
  970. var methodName = context.method,
  971. method = delegate.iterator[methodName];
  972. if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel;
  973. var record = tryCatch(method, delegate.iterator, context.arg);
  974. if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel;
  975. var info = record.arg;
  976. return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel);
  977. }
  978. function pushTryEntry(locs) {
  979. var entry = {
  980. tryLoc: locs[0]
  981. };
  982. 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);
  983. }
  984. function resetTryEntry(entry) {
  985. var record = entry.completion || {};
  986. record.type = "normal", delete record.arg, entry.completion = record;
  987. }
  988. function Context(tryLocsList) {
  989. this.tryEntries = [{
  990. tryLoc: "root"
  991. }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);
  992. }
  993. function values(iterable) {
  994. if (iterable) {
  995. var iteratorMethod = iterable[iteratorSymbol];
  996. if (iteratorMethod) return iteratorMethod.call(iterable);
  997. if ("function" == typeof iterable.next) return iterable;
  998. if (!isNaN(iterable.length)) {
  999. var i = -1,
  1000. next = function next() {
  1001. for (; ++i < iterable.length;) {
  1002. if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;
  1003. }
  1004. return next.value = undefined, next.done = !0, next;
  1005. };
  1006. return next.next = next;
  1007. }
  1008. }
  1009. return {
  1010. next: doneResult
  1011. };
  1012. }
  1013. function doneResult() {
  1014. return {
  1015. value: undefined,
  1016. done: !0
  1017. };
  1018. }
  1019. return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", {
  1020. value: GeneratorFunctionPrototype,
  1021. configurable: !0
  1022. }), defineProperty(GeneratorFunctionPrototype, "constructor", {
  1023. value: GeneratorFunction,
  1024. configurable: !0
  1025. }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) {
  1026. var ctor = "function" == typeof genFun && genFun.constructor;
  1027. return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name));
  1028. }, exports.mark = function (genFun) {
  1029. return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun;
  1030. }, exports.awrap = function (arg) {
  1031. return {
  1032. __await: arg
  1033. };
  1034. }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {
  1035. return this;
  1036. }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {
  1037. void 0 === PromiseImpl && (PromiseImpl = Promise);
  1038. var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);
  1039. return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {
  1040. return result.done ? result.value : iter.next();
  1041. });
  1042. }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () {
  1043. return this;
  1044. }), define(Gp, "toString", function () {
  1045. return "[object Generator]";
  1046. }), exports.keys = function (val) {
  1047. var object = Object(val),
  1048. keys = [];
  1049. for (var key in object) {
  1050. keys.push(key);
  1051. }
  1052. return keys.reverse(), function next() {
  1053. for (; keys.length;) {
  1054. var key = keys.pop();
  1055. if (key in object) return next.value = key, next.done = !1, next;
  1056. }
  1057. return next.done = !0, next;
  1058. };
  1059. }, exports.values = values, Context.prototype = {
  1060. constructor: Context,
  1061. reset: function reset(skipTempReset) {
  1062. if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) {
  1063. "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);
  1064. }
  1065. },
  1066. stop: function stop() {
  1067. this.done = !0;
  1068. var rootRecord = this.tryEntries[0].completion;
  1069. if ("throw" === rootRecord.type) throw rootRecord.arg;
  1070. return this.rval;
  1071. },
  1072. dispatchException: function dispatchException(exception) {
  1073. if (this.done) throw exception;
  1074. var context = this;
  1075. function handle(loc, caught) {
  1076. return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught;
  1077. }
  1078. for (var i = this.tryEntries.length - 1; i >= 0; --i) {
  1079. var entry = this.tryEntries[i],
  1080. record = entry.completion;
  1081. if ("root" === entry.tryLoc) return handle("end");
  1082. if (entry.tryLoc <= this.prev) {
  1083. var hasCatch = hasOwn.call(entry, "catchLoc"),
  1084. hasFinally = hasOwn.call(entry, "finallyLoc");
  1085. if (hasCatch && hasFinally) {
  1086. if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);
  1087. if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);
  1088. } else if (hasCatch) {
  1089. if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);
  1090. } else {
  1091. if (!hasFinally) throw new Error("try statement without catch or finally");
  1092. if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);
  1093. }
  1094. }
  1095. }
  1096. },
  1097. abrupt: function abrupt(type, arg) {
  1098. for (var i = this.tryEntries.length - 1; i >= 0; --i) {
  1099. var entry = this.tryEntries[i];
  1100. if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) {
  1101. var finallyEntry = entry;
  1102. break;
  1103. }
  1104. }
  1105. finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);
  1106. var record = finallyEntry ? finallyEntry.completion : {};
  1107. return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);
  1108. },
  1109. complete: function complete(record, afterLoc) {
  1110. if ("throw" === record.type) throw record.arg;
  1111. return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;
  1112. },
  1113. finish: function finish(finallyLoc) {
  1114. for (var i = this.tryEntries.length - 1; i >= 0; --i) {
  1115. var entry = this.tryEntries[i];
  1116. if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;
  1117. }
  1118. },
  1119. "catch": function _catch(tryLoc) {
  1120. for (var i = this.tryEntries.length - 1; i >= 0; --i) {
  1121. var entry = this.tryEntries[i];
  1122. if (entry.tryLoc === tryLoc) {
  1123. var record = entry.completion;
  1124. if ("throw" === record.type) {
  1125. var thrown = record.arg;
  1126. resetTryEntry(entry);
  1127. }
  1128. return thrown;
  1129. }
  1130. }
  1131. throw new Error("illegal catch attempt");
  1132. },
  1133. delegateYield: function delegateYield(iterable, resultName, nextLoc) {
  1134. return this.delegate = {
  1135. iterator: values(iterable),
  1136. resultName: resultName,
  1137. nextLoc: nextLoc
  1138. }, "next" === this.method && (this.arg = undefined), ContinueSentinel;
  1139. }
  1140. }, exports;
  1141. }
  1142. module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports;
  1143. /***/ }),
  1144. /* 29 */
  1145. /*!*****************************************************************!*\
  1146. !*** ./node_modules/@babel/runtime/helpers/asyncToGenerator.js ***!
  1147. \*****************************************************************/
  1148. /*! no static exports found */
  1149. /***/ (function(module, exports) {
  1150. function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
  1151. try {
  1152. var info = gen[key](arg);
  1153. var value = info.value;
  1154. } catch (error) {
  1155. reject(error);
  1156. return;
  1157. }
  1158. if (info.done) {
  1159. resolve(value);
  1160. } else {
  1161. Promise.resolve(value).then(_next, _throw);
  1162. }
  1163. }
  1164. function _asyncToGenerator(fn) {
  1165. return function () {
  1166. var self = this,
  1167. args = arguments;
  1168. return new Promise(function (resolve, reject) {
  1169. var gen = fn.apply(self, args);
  1170. function _next(value) {
  1171. asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
  1172. }
  1173. function _throw(err) {
  1174. asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
  1175. }
  1176. _next(undefined);
  1177. });
  1178. };
  1179. }
  1180. module.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports["default"] = module.exports;
  1181. /***/ }),
  1182. /* 30 */
  1183. /*!*****************************************************************************************!*\
  1184. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/marked/marked.min.js ***!
  1185. \*****************************************************************************************/
  1186. /*! no static exports found */
  1187. /***/ (function(module, exports, __webpack_require__) {
  1188. eval("/* WEBPACK VAR INJECTION */(function(__f__) {var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4);\n/**\n * marked v5.0.4 - a markdown parser\n * Copyright (c) 2011-2023, Christopher Jeffrey. (MIT Licensed)\n * https://github.com/markedjs/marked\n */\n!function (e, u) {\n \"object\" == ( false ? undefined : _typeof(exports)) && \"undefined\" != typeof module ? u(exports) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports], __WEBPACK_AMD_DEFINE_FACTORY__ = (u),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined;\n}(this, function (r) {\n \"use strict\";\n\n function i(e, u) {\n for (var t = 0; t < u.length; t++) {\n var n = u[t];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(e, function (e) {\n e = function (e, u) {\n if (\"object\" != _typeof(e) || null === e) return e;\n var t = e[Symbol.toPrimitive];\n if (void 0 === t) return (\"string\" === u ? String : Number)(e);\n t = t.call(e, u || \"default\");\n if (\"object\" != _typeof(t)) return t;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }(e, \"string\");\n return \"symbol\" == _typeof(e) ? e : String(e);\n }(n.key), n);\n }\n }\n function A() {\n return (A = Object.assign ? Object.assign.bind() : function (e) {\n for (var u = 1; u < arguments.length; u++) {\n var t,\n n = arguments[u];\n for (t in n) {\n Object.prototype.hasOwnProperty.call(n, t) && (e[t] = n[t]);\n }\n }\n return e;\n }).apply(this, arguments);\n }\n function s(e, u) {\n (null == u || u > e.length) && (u = e.length);\n for (var t = 0, n = new Array(u); t < u; t++) {\n n[t] = e[t];\n }\n return n;\n }\n function D(e, u) {\n var t,\n n = \"undefined\" != typeof Symbol && e[Symbol.iterator] || e[\"@@iterator\"];\n if (n) return (n = n.call(e)).next.bind(n);\n if (Array.isArray(e) || (n = function (e, u) {\n var t;\n if (e) return \"string\" == typeof e ? s(e, u) : \"Map\" === (t = \"Object\" === (t = Object.prototype.toString.call(e).slice(8, -1)) && e.constructor ? e.constructor.name : t) || \"Set\" === t ? Array.from(e) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? s(e, u) : void 0;\n }(e)) || u && e && \"number\" == typeof e.length) return n && (e = n), t = 0, function () {\n return t >= e.length ? {\n done: !0\n } : {\n done: !1,\n value: e[t++]\n };\n };\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n function e() {\n return {\n async: !1,\n baseUrl: null,\n breaks: !1,\n extensions: null,\n gfm: !0,\n headerIds: !0,\n headerPrefix: \"\",\n highlight: null,\n hooks: null,\n langPrefix: \"language-\",\n mangle: !0,\n pedantic: !1,\n renderer: null,\n sanitize: !1,\n sanitizer: null,\n silent: !1,\n smartypants: !1,\n tokenizer: null,\n walkTokens: null,\n xhtml: !1\n };\n }\n r.defaults = e();\n function t(e) {\n return u[e];\n }\n var n = /[&<>\"']/,\n a = new RegExp(n.source, \"g\"),\n l = /[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/,\n o = new RegExp(l.source, \"g\"),\n u = {\n \"&\": \"&amp;\",\n \"<\": \"&lt;\",\n \">\": \"&gt;\",\n '\"': \"&quot;\",\n \"'\": \"&#39;\"\n };\n function d(e, u) {\n if (u) {\n if (n.test(e)) return e.replace(a, t);\n } else if (l.test(e)) return e.replace(o, t);\n return e;\n }\n var c = /&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/gi;\n function m(e) {\n return e.replace(c, function (e, u) {\n return \"colon\" === (u = u.toLowerCase()) ? \":\" : \"#\" === u.charAt(0) ? \"x\" === u.charAt(1) ? String.fromCharCode(parseInt(u.substring(2), 16)) : String.fromCharCode(+u.substring(1)) : \"\";\n });\n }\n var p = /(^|[^\\[])\\^/g;\n function h(t, e) {\n t = \"string\" == typeof t ? t : t.source, e = e || \"\";\n var n = {\n replace: function replace(e, u) {\n return u = (u = u.source || u).replace(p, \"$1\"), t = t.replace(e, u), n;\n },\n getRegex: function getRegex() {\n return new RegExp(t, e);\n }\n };\n return n;\n }\n var F = /[^\\w:]/g,\n j = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;\n function f(e, u, t) {\n if (e) {\n try {\n n = decodeURIComponent(m(t)).replace(F, \"\").toLowerCase();\n } catch (e) {\n return null;\n }\n if (0 === n.indexOf(\"javascript:\") || 0 === n.indexOf(\"vbscript:\") || 0 === n.indexOf(\"data:\")) return null;\n }\n var n;\n u && !j.test(t) && (e = t, g[\" \" + (n = u)] || (Z.test(n) ? g[\" \" + n] = n + \"/\" : g[\" \" + n] = E(n, \"/\", !0)), u = -1 === (n = g[\" \" + n]).indexOf(\":\"), t = \"//\" === e.substring(0, 2) ? u ? e : n.replace(O, \"$1\") + e : \"/\" === e.charAt(0) ? u ? e : n.replace(q, \"$1\") + e : n + e);\n try {\n t = encodeURI(t).replace(/%25/g, \"%\");\n } catch (e) {\n return null;\n }\n return t;\n }\n var g = {},\n Z = /^[^:]+:\\/*[^/]*$/,\n O = /^([^:]+:)[\\s\\S]*$/,\n q = /^([^:]+:\\/*[^/]*)[\\s\\S]*$/;\n var k = {\n exec: function exec() {}\n };\n function C(e, u) {\n var t = e.replace(/\\|/g, function (e, u, t) {\n for (var n = !1, r = u; 0 <= --r && \"\\\\\" === t[r];) {\n n = !n;\n }\n return n ? \"|\" : \" |\";\n }).split(/ \\|/),\n n = 0;\n if (t[0].trim() || t.shift(), 0 < t.length && !t[t.length - 1].trim() && t.pop(), t.length > u) t.splice(u);else for (; t.length < u;) {\n t.push(\"\");\n }\n for (; n < t.length; n++) {\n t[n] = t[n].trim().replace(/\\\\\\|/g, \"|\");\n }\n return t;\n }\n function E(e, u, t) {\n var n = e.length;\n if (0 === n) return \"\";\n for (var r = 0; r < n;) {\n var i = e.charAt(n - r - 1);\n if ((i !== u || t) && (i === u || !t)) break;\n r++;\n }\n return e.slice(0, n - r);\n }\n function x(e, u, t, n) {\n var r = u.href,\n u = u.title ? d(u.title) : null,\n i = e[1].replace(/\\\\([\\[\\]])/g, \"$1\");\n return \"!\" !== e[0].charAt(0) ? (n.state.inLink = !0, e = {\n type: \"link\",\n raw: t,\n href: r,\n title: u,\n text: i,\n tokens: n.inlineTokens(i)\n }, n.state.inLink = !1, e) : {\n type: \"image\",\n raw: t,\n href: r,\n title: u,\n text: d(i)\n };\n }\n var b = function () {\n function e(e) {\n this.options = e || r.defaults;\n }\n var u = e.prototype;\n return u.space = function (e) {\n e = this.rules.block.newline.exec(e);\n if (e && 0 < e[0].length) return {\n type: \"space\",\n raw: e[0]\n };\n }, u.code = function (e) {\n var u,\n e = this.rules.block.code.exec(e);\n if (e) return u = e[0].replace(/^ {1,4}/gm, \"\"), {\n type: \"code\",\n raw: e[0],\n codeBlockStyle: \"indented\",\n text: this.options.pedantic ? u : E(u, \"\\n\")\n };\n }, u.fences = function (e) {\n var u,\n t,\n n,\n r,\n e = this.rules.block.fences.exec(e);\n if (e) return u = e[0], t = u, n = e[3] || \"\", t = null === (t = u.match(/^(\\s+)(?:```)/)) ? n : (r = t[1], n.split(\"\\n\").map(function (e) {\n var u = e.match(/^\\s+/);\n return null !== u && u[0].length >= r.length ? e.slice(r.length) : e;\n }).join(\"\\n\")), {\n type: \"code\",\n raw: u,\n lang: e[2] && e[2].trim().replace(this.rules.inline._escapes, \"$1\"),\n text: t\n };\n }, u.heading = function (e) {\n var u,\n t,\n e = this.rules.block.heading.exec(e);\n if (e) return u = e[2].trim(), /#$/.test(u) && (t = E(u, \"#\"), !this.options.pedantic && t && !/ $/.test(t) || (u = t.trim())), {\n type: \"heading\",\n raw: e[0],\n depth: e[1].length,\n text: u,\n tokens: this.lexer.inline(u)\n };\n }, u.hr = function (e) {\n e = this.rules.block.hr.exec(e);\n if (e) return {\n type: \"hr\",\n raw: e[0]\n };\n }, u.blockquote = function (e) {\n var u,\n t,\n n,\n e = this.rules.block.blockquote.exec(e);\n if (e) return u = e[0].replace(/^ *>[ \\t]?/gm, \"\"), t = this.lexer.state.top, this.lexer.state.top = !0, n = this.lexer.blockTokens(u), this.lexer.state.top = t, {\n type: \"blockquote\",\n raw: e[0],\n tokens: n,\n text: u\n };\n }, u.list = function (e) {\n var u = this.rules.block.list.exec(e);\n if (u) {\n var t,\n n,\n r,\n i,\n s,\n a,\n l,\n o,\n D,\n c,\n p,\n h = 1 < (f = u[1].trim()).length,\n F = {\n type: \"list\",\n raw: \"\",\n ordered: h,\n start: h ? +f.slice(0, -1) : \"\",\n loose: !1,\n items: []\n },\n f = h ? \"\\\\d{1,9}\\\\\" + f.slice(-1) : \"\\\\\" + f;\n this.options.pedantic && (f = h ? f : \"[*+-]\");\n for (var g = new RegExp(\"^( {0,3}\" + f + \")((?:[\\t ][^\\\\n]*)?(?:\\\\n|$))\"); e && (p = !1, u = g.exec(e)) && !this.rules.block.hr.test(e);) {\n if (t = u[0], e = e.substring(t.length), l = u[2].split(\"\\n\", 1)[0].replace(/^\\t+/, function (e) {\n return \" \".repeat(3 * e.length);\n }), o = e.split(\"\\n\", 1)[0], this.options.pedantic ? (i = 2, c = l.trimLeft()) : (i = u[2].search(/[^ ]/), c = l.slice(i = 4 < i ? 1 : i), i += u[1].length), s = !1, !l && /^ *$/.test(o) && (t += o + \"\\n\", e = e.substring(o.length + 1), p = !0), !p) for (var A = new RegExp(\"^ {0,\" + Math.min(3, i - 1) + \"}(?:[*+-]|\\\\d{1,9}[.)])((?:[ \\t][^\\\\n]*)?(?:\\\\n|$))\"), d = new RegExp(\"^ {0,\" + Math.min(3, i - 1) + \"}((?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$)\"), k = new RegExp(\"^ {0,\" + Math.min(3, i - 1) + \"}(?:```|~~~)\"), C = new RegExp(\"^ {0,\" + Math.min(3, i - 1) + \"}#\"); e && (o = D = e.split(\"\\n\", 1)[0], this.options.pedantic && (o = o.replace(/^ {1,4}(?=( {4})*[^ ])/g, \" \")), !k.test(o)) && !C.test(o) && !A.test(o) && !d.test(e);) {\n if (o.search(/[^ ]/) >= i || !o.trim()) c += \"\\n\" + o.slice(i);else {\n if (s) break;\n if (4 <= l.search(/[^ ]/)) break;\n if (k.test(l)) break;\n if (C.test(l)) break;\n if (d.test(l)) break;\n c += \"\\n\" + o;\n }\n s || o.trim() || (s = !0), t += D + \"\\n\", e = e.substring(D.length + 1), l = o.slice(i);\n }\n F.loose || (a ? F.loose = !0 : /\\n *\\n *$/.test(t) && (a = !0)), this.options.gfm && (n = /^\\[[ xX]\\] /.exec(c)) && (r = \"[ ] \" !== n[0], c = c.replace(/^\\[[ xX]\\] +/, \"\")), F.items.push({\n type: \"list_item\",\n raw: t,\n task: !!n,\n checked: r,\n loose: !1,\n text: c\n }), F.raw += t;\n }\n F.items[F.items.length - 1].raw = t.trimRight(), F.items[F.items.length - 1].text = c.trimRight(), F.raw = F.raw.trimRight();\n for (var E, m = F.items.length, x = 0; x < m; x++) {\n this.lexer.state.top = !1, F.items[x].tokens = this.lexer.blockTokens(F.items[x].text, []), F.loose || (E = 0 < (E = F.items[x].tokens.filter(function (e) {\n return \"space\" === e.type;\n })).length && E.some(function (e) {\n return /\\n.*\\n/.test(e.raw);\n }), F.loose = E);\n }\n if (F.loose) for (x = 0; x < m; x++) {\n F.items[x].loose = !0;\n }\n return F;\n }\n }, u.html = function (e) {\n var u,\n e = this.rules.block.html.exec(e);\n if (e) return u = {\n type: \"html\",\n block: !0,\n raw: e[0],\n pre: !this.options.sanitizer && (\"pre\" === e[1] || \"script\" === e[1] || \"style\" === e[1]),\n text: e[0]\n }, this.options.sanitize && (e = this.options.sanitizer ? this.options.sanitizer(e[0]) : d(e[0]), u.type = \"paragraph\", u.text = e, u.tokens = this.lexer.inline(e)), u;\n }, u.def = function (e) {\n var u,\n t,\n n,\n e = this.rules.block.def.exec(e);\n if (e) return u = e[1].toLowerCase().replace(/\\s+/g, \" \"), t = e[2] ? e[2].replace(/^<(.*)>$/, \"$1\").replace(this.rules.inline._escapes, \"$1\") : \"\", n = e[3] && e[3].substring(1, e[3].length - 1).replace(this.rules.inline._escapes, \"$1\"), {\n type: \"def\",\n tag: u,\n raw: e[0],\n href: t,\n title: n\n };\n }, u.table = function (e) {\n e = this.rules.block.table.exec(e);\n if (e) {\n var u = {\n type: \"table\",\n header: C(e[1]).map(function (e) {\n return {\n text: e\n };\n }),\n align: e[2].replace(/^ *|\\| *$/g, \"\").split(/ *\\| */),\n rows: e[3] && e[3].trim() ? e[3].replace(/\\n[ \\t]*$/, \"\").split(\"\\n\") : []\n };\n if (u.header.length === u.align.length) {\n u.raw = e[0];\n for (var t, n, r, i = u.align.length, s = 0; s < i; s++) {\n /^ *-+: *$/.test(u.align[s]) ? u.align[s] = \"right\" : /^ *:-+: *$/.test(u.align[s]) ? u.align[s] = \"center\" : /^ *:-+ *$/.test(u.align[s]) ? u.align[s] = \"left\" : u.align[s] = null;\n }\n for (i = u.rows.length, s = 0; s < i; s++) {\n u.rows[s] = C(u.rows[s], u.header.length).map(function (e) {\n return {\n text: e\n };\n });\n }\n for (i = u.header.length, t = 0; t < i; t++) {\n u.header[t].tokens = this.lexer.inline(u.header[t].text);\n }\n for (i = u.rows.length, t = 0; t < i; t++) {\n for (r = u.rows[t], n = 0; n < r.length; n++) {\n r[n].tokens = this.lexer.inline(r[n].text);\n }\n }\n return u;\n }\n }\n }, u.lheading = function (e) {\n e = this.rules.block.lheading.exec(e);\n if (e) return {\n type: \"heading\",\n raw: e[0],\n depth: \"=\" === e[2].charAt(0) ? 1 : 2,\n text: e[1],\n tokens: this.lexer.inline(e[1])\n };\n }, u.paragraph = function (e) {\n var u,\n e = this.rules.block.paragraph.exec(e);\n if (e) return u = \"\\n\" === e[1].charAt(e[1].length - 1) ? e[1].slice(0, -1) : e[1], {\n type: \"paragraph\",\n raw: e[0],\n text: u,\n tokens: this.lexer.inline(u)\n };\n }, u.text = function (e) {\n e = this.rules.block.text.exec(e);\n if (e) return {\n type: \"text\",\n raw: e[0],\n text: e[0],\n tokens: this.lexer.inline(e[0])\n };\n }, u.escape = function (e) {\n e = this.rules.inline.escape.exec(e);\n if (e) return {\n type: \"escape\",\n raw: e[0],\n text: d(e[1])\n };\n }, u.tag = function (e) {\n e = this.rules.inline.tag.exec(e);\n if (e) return !this.lexer.state.inLink && /^<a /i.test(e[0]) ? this.lexer.state.inLink = !0 : this.lexer.state.inLink && /^<\\/a>/i.test(e[0]) && (this.lexer.state.inLink = !1), !this.lexer.state.inRawBlock && /^<(pre|code|kbd|script)(\\s|>)/i.test(e[0]) ? this.lexer.state.inRawBlock = !0 : this.lexer.state.inRawBlock && /^<\\/(pre|code|kbd|script)(\\s|>)/i.test(e[0]) && (this.lexer.state.inRawBlock = !1), {\n type: this.options.sanitize ? \"text\" : \"html\",\n raw: e[0],\n inLink: this.lexer.state.inLink,\n inRawBlock: this.lexer.state.inRawBlock,\n block: !1,\n text: this.options.sanitize ? this.options.sanitizer ? this.options.sanitizer(e[0]) : d(e[0]) : e[0]\n };\n }, u.link = function (e) {\n e = this.rules.inline.link.exec(e);\n if (e) {\n var u = e[2].trim();\n if (!this.options.pedantic && /^</.test(u)) {\n if (!/>$/.test(u)) return;\n var t = E(u.slice(0, -1), \"\\\\\");\n if ((u.length - t.length) % 2 == 0) return;\n } else {\n t = function (e, u) {\n if (-1 !== e.indexOf(u[1])) for (var t = e.length, n = 0, r = 0; r < t; r++) {\n if (\"\\\\\" === e[r]) r++;else if (e[r] === u[0]) n++;else if (e[r] === u[1] && --n < 0) return r;\n }\n return -1;\n }(e[2], \"()\");\n -1 < t && (r = (0 === e[0].indexOf(\"!\") ? 5 : 4) + e[1].length + t, e[2] = e[2].substring(0, t), e[0] = e[0].substring(0, r).trim(), e[3] = \"\");\n }\n var n,\n t = e[2],\n r = \"\";\n return this.options.pedantic ? (n = /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/.exec(t)) && (t = n[1], r = n[3]) : r = e[3] ? e[3].slice(1, -1) : \"\", t = t.trim(), x(e, {\n href: (t = /^</.test(t) ? this.options.pedantic && !/>$/.test(u) ? t.slice(1) : t.slice(1, -1) : t) && t.replace(this.rules.inline._escapes, \"$1\"),\n title: r && r.replace(this.rules.inline._escapes, \"$1\")\n }, e[0], this.lexer);\n }\n }, u.reflink = function (e, u) {\n var t;\n if (t = (t = this.rules.inline.reflink.exec(e)) || this.rules.inline.nolink.exec(e)) return (e = u[(e = (t[2] || t[1]).replace(/\\s+/g, \" \")).toLowerCase()]) ? x(t, e, t[0], this.lexer) : {\n type: \"text\",\n raw: u = t[0].charAt(0),\n text: u\n };\n }, u.emStrong = function (e, u, t) {\n void 0 === t && (t = \"\");\n var n = this.rules.inline.emStrong.lDelim.exec(e);\n if (n && (!n[3] || !t.match(/(?:[0-9A-Za-z\\xAA\\xB2\\xB3\\xB5\\xB9\\xBA\\xBC-\\xBE\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u0660-\\u0669\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07C0-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088E\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0966-\\u096F\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09E6-\\u09F1\\u09F4-\\u09F9\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A6F\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AE6-\\u0AEF\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B66-\\u0B6F\\u0B71-\\u0B77\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0BE6-\\u0BF2\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5D\\u0C60\\u0C61\\u0C66-\\u0C6F\\u0C78-\\u0C7E\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDD\\u0CDE\\u0CE0\\u0CE1\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D58-\\u0D61\\u0D66-\\u0D78\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DE6-\\u0DEF\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F20-\\u0F33\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F-\\u1049\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u1090-\\u1099\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1369-\\u137C\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u17E0-\\u17E9\\u17F0-\\u17F9\\u1810-\\u1819\\u1820-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19DA\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B50-\\u1B59\\u1B83-\\u1BA0\\u1BAE-\\u1BE5\\u1C00-\\u1C23\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2070\\u2071\\u2074-\\u2079\\u207F-\\u2089\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2150-\\u2189\\u2460-\\u249B\\u24EA-\\u24FF\\u2776-\\u2793\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2CFD\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u3192-\\u3195\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3220-\\u3229\\u3248-\\u324F\\u3251-\\u325F\\u3280-\\u3289\\u32B1-\\u32BF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7CA\\uA7D0\\uA7D1\\uA7D3\\uA7D5-\\uA7D9\\uA7F2-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA830-\\uA835\\uA840-\\uA873\\uA882-\\uA8B3\\uA8D0-\\uA8D9\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA900-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF-\\uA9D9\\uA9E0-\\uA9E4\\uA9E6-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD07-\\uDD33\\uDD40-\\uDD78\\uDD8A\\uDD8B\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE1-\\uDEFB\\uDF00-\\uDF23\\uDF2D-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDD70-\\uDD7A\\uDD7C-\\uDD8A\\uDD8C-\\uDD92\\uDD94\\uDD95\\uDD97-\\uDDA1\\uDDA3-\\uDDB1\\uDDB3-\\uDDB9\\uDDBB\\uDDBC\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67\\uDF80-\\uDF85\\uDF87-\\uDFB0\\uDFB2-\\uDFBA]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC58-\\uDC76\\uDC79-\\uDC9E\\uDCA7-\\uDCAF\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDCFB-\\uDD1B\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBC-\\uDDCF\\uDDD2-\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE35\\uDE40-\\uDE48\\uDE60-\\uDE7E\\uDE80-\\uDE9F\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDEEB-\\uDEEF\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF58-\\uDF72\\uDF78-\\uDF91\\uDFA9-\\uDFAF]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2\\uDCFA-\\uDD23\\uDD30-\\uDD39\\uDE60-\\uDE7E\\uDE80-\\uDEA9\\uDEB0\\uDEB1\\uDF00-\\uDF27\\uDF30-\\uDF45\\uDF51-\\uDF54\\uDF70-\\uDF81\\uDFB0-\\uDFCB\\uDFE0-\\uDFF6]|\\uD804[\\uDC03-\\uDC37\\uDC52-\\uDC6F\\uDC71\\uDC72\\uDC75\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD03-\\uDD26\\uDD36-\\uDD3F\\uDD44\\uDD47\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDD0-\\uDDDA\\uDDDC\\uDDE1-\\uDDF4\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE3F\\uDE40\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDEF0-\\uDEF9\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC50-\\uDC59\\uDC5F-\\uDC61\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEAA\\uDEB8\\uDEC0-\\uDEC9\\uDF00-\\uDF1A\\uDF30-\\uDF3B\\uDF40-\\uDF46]|\\uD806[\\uDC00-\\uDC2B\\uDCA0-\\uDCF2\\uDCFF-\\uDD06\\uDD09\\uDD0C-\\uDD13\\uDD15\\uDD16\\uDD18-\\uDD2F\\uDD3F\\uDD41\\uDD50-\\uDD59\\uDDA0-\\uDDA7\\uDDAA-\\uDDD0\\uDDE1\\uDDE3\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE89\\uDE9D\\uDEB0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC50-\\uDC6C\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46\\uDD50-\\uDD59\\uDD60-\\uDD65\\uDD67\\uDD68\\uDD6A-\\uDD89\\uDD98\\uDDA0-\\uDDA9\\uDEE0-\\uDEF2\\uDF02\\uDF04-\\uDF10\\uDF12-\\uDF33\\uDF50-\\uDF59\\uDFB0\\uDFC0-\\uDFD4]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|\\uD80B[\\uDF90-\\uDFF0]|[\\uD80C\\uD81C-\\uD820\\uD822\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879\\uD880-\\uD883\\uD885-\\uD887][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2F\\uDC41-\\uDC46]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDE70-\\uDEBE\\uDEC0-\\uDEC9\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF5B-\\uDF61\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDE40-\\uDE96\\uDF00-\\uDF4A\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1\\uDFE3]|\\uD821[\\uDC00-\\uDFF7]|\\uD823[\\uDC00-\\uDCD5\\uDD00-\\uDD08]|\\uD82B[\\uDFF0-\\uDFF3\\uDFF5-\\uDFFB\\uDFFD\\uDFFE]|\\uD82C[\\uDC00-\\uDD22\\uDD32\\uDD50-\\uDD52\\uDD55\\uDD64-\\uDD67\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD834[\\uDEC0-\\uDED3\\uDEE0-\\uDEF3\\uDF60-\\uDF78]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD837[\\uDF00-\\uDF1E\\uDF25-\\uDF2A]|\\uD838[\\uDC30-\\uDC6D\\uDD00-\\uDD2C\\uDD37-\\uDD3D\\uDD40-\\uDD49\\uDD4E\\uDE90-\\uDEAD\\uDEC0-\\uDEEB\\uDEF0-\\uDEF9]|\\uD839[\\uDCD0-\\uDCEB\\uDCF0-\\uDCF9\\uDFE0-\\uDFE6\\uDFE8-\\uDFEB\\uDFED\\uDFEE\\uDFF0-\\uDFFE]|\\uD83A[\\uDC00-\\uDCC4\\uDCC7-\\uDCCF\\uDD00-\\uDD43\\uDD4B\\uDD50-\\uDD59]|\\uD83B[\\uDC71-\\uDCAB\\uDCAD-\\uDCAF\\uDCB1-\\uDCB4\\uDD01-\\uDD2D\\uDD2F-\\uDD3D\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD83C[\\uDD00-\\uDD0C]|\\uD83E[\\uDFF0-\\uDFF9]|\\uD869[\\uDC00-\\uDEDF\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF39\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uD884[\\uDC00-\\uDF4A\\uDF50-\\uDFFF]|\\uD888[\\uDC00-\\uDFAF])/))) {\n var r = n[1] || n[2] || \"\";\n if (!r || \"\" === t || this.rules.inline.punctuation.exec(t)) {\n var i = n[0].length - 1,\n s = i,\n a = 0,\n l = \"*\" === n[0][0] ? this.rules.inline.emStrong.rDelimAst : this.rules.inline.emStrong.rDelimUnd;\n for (l.lastIndex = 0, u = u.slice(-1 * e.length + i); null != (n = l.exec(u));) {\n var o,\n D = n[1] || n[2] || n[3] || n[4] || n[5] || n[6];\n if (D) if (o = D.length, n[3] || n[4]) s += o;else if ((n[5] || n[6]) && i % 3 && !((i + o) % 3)) a += o;else if (!(0 < (s -= o))) return o = Math.min(o, o + s + a), D = e.slice(0, i + n.index + (n[0].length - D.length) + o), Math.min(i, o) % 2 ? (o = D.slice(1, -1), {\n type: \"em\",\n raw: D,\n text: o,\n tokens: this.lexer.inlineTokens(o)\n }) : (o = D.slice(2, -2), {\n type: \"strong\",\n raw: D,\n text: o,\n tokens: this.lexer.inlineTokens(o)\n });\n }\n }\n }\n }, u.codespan = function (e) {\n var u,\n t,\n n,\n e = this.rules.inline.code.exec(e);\n if (e) return n = e[2].replace(/\\n/g, \" \"), u = /[^ ]/.test(n), t = /^ /.test(n) && / $/.test(n), n = d(n = u && t ? n.substring(1, n.length - 1) : n, !0), {\n type: \"codespan\",\n raw: e[0],\n text: n\n };\n }, u.br = function (e) {\n e = this.rules.inline.br.exec(e);\n if (e) return {\n type: \"br\",\n raw: e[0]\n };\n }, u.del = function (e) {\n e = this.rules.inline.del.exec(e);\n if (e) return {\n type: \"del\",\n raw: e[0],\n text: e[2],\n tokens: this.lexer.inlineTokens(e[2])\n };\n }, u.autolink = function (e, u) {\n var t,\n e = this.rules.inline.autolink.exec(e);\n if (e) return u = \"@\" === e[2] ? \"mailto:\" + (t = d(this.options.mangle ? u(e[1]) : e[1])) : t = d(e[1]), {\n type: \"link\",\n raw: e[0],\n text: t,\n href: u,\n tokens: [{\n type: \"text\",\n raw: t,\n text: t\n }]\n };\n }, u.url = function (e, u) {\n var t, n, r, i;\n if (t = this.rules.inline.url.exec(e)) {\n if (\"@\" === t[2]) r = \"mailto:\" + (n = d(this.options.mangle ? u(t[0]) : t[0]));else {\n for (; i = t[0], t[0] = this.rules.inline._backpedal.exec(t[0])[0], i !== t[0];) {\n ;\n }\n n = d(t[0]), r = \"www.\" === t[1] ? \"http://\" + t[0] : t[0];\n }\n return {\n type: \"link\",\n raw: t[0],\n text: n,\n href: r,\n tokens: [{\n type: \"text\",\n raw: n,\n text: n\n }]\n };\n }\n }, u.inlineText = function (e, u) {\n e = this.rules.inline.text.exec(e);\n if (e) return u = this.lexer.state.inRawBlock ? this.options.sanitize ? this.options.sanitizer ? this.options.sanitizer(e[0]) : d(e[0]) : e[0] : d(this.options.smartypants ? u(e[0]) : e[0]), {\n type: \"text\",\n raw: e[0],\n text: u\n };\n }, e;\n }(),\n B = {\n newline: /^(?: *(?:\\n|$))+/,\n code: /^( {4}[^\\n]+(?:\\n(?: *(?:\\n|$))*)?)+/,\n fences: /^ {0,3}(`{3,}(?=[^`\\n]*(?:\\n|$))|~{3,})([^\\n]*)(?:\\n|$)(?:|([\\s\\S]*?)(?:\\n|$))(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/,\n hr: /^ {0,3}((?:-[\\t ]*){3,}|(?:_[ \\t]*){3,}|(?:\\*[ \\t]*){3,})(?:\\n+|$)/,\n heading: /^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/,\n blockquote: /^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/,\n list: /^( {0,3}bull)([ \\t][^\\n]+?)?(?:\\n|$)/,\n html: \"^ {0,3}(?:<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:</\\\\1>[^\\\\n]*\\\\n+|$)|comment[^\\\\n]*(\\\\n+|$)|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)|<![A-Z][\\\\s\\\\S]*?(?:>\\\\n*|$)|<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?(?:\\\\]\\\\]>\\\\n*|$)|</?(tag)(?: +|\\\\n|/?>)[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)|</(?!script|pre|style|textarea)[a-z][\\\\w-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$))\",\n def: /^ {0,3}\\[(label)\\]: *(?:\\n *)?([^<\\s][^\\s]*|<.*?>)(?:(?: +(?:\\n *)?| *\\n *)(title))? *(?:\\n+|$)/,\n table: k,\n lheading: /^((?:(?!^bull ).|\\n(?!\\n|bull ))+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n _paragraph: /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/,\n text: /^[^\\n]+/,\n _label: /(?!\\s*\\])(?:\\\\.|[^\\[\\]\\\\])+/,\n _title: /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/\n },\n w = (B.def = h(B.def).replace(\"label\", B._label).replace(\"title\", B._title).getRegex(), B.bullet = /(?:[*+-]|\\d{1,9}[.)])/, B.listItemStart = h(/^( *)(bull) */).replace(\"bull\", B.bullet).getRegex(), B.list = h(B.list).replace(/bull/g, B.bullet).replace(\"hr\", \"\\\\n+(?=\\\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$))\").replace(\"def\", \"\\\\n+(?=\" + B.def.source + \")\").getRegex(), B._tag = \"address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul\", B._comment = /<!--(?!-?>)[\\s\\S]*?(?:-->|$)/, B.html = h(B.html, \"i\").replace(\"comment\", B._comment).replace(\"tag\", B._tag).replace(\"attribute\", / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/).getRegex(), B.lheading = h(B.lheading).replace(/bull/g, B.bullet).getRegex(), B.paragraph = h(B._paragraph).replace(\"hr\", B.hr).replace(\"heading\", \" {0,3}#{1,6} \").replace(\"|lheading\", \"\").replace(\"|table\", \"\").replace(\"blockquote\", \" {0,3}>\").replace(\"fences\", \" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\", \" {0,3}(?:[*+-]|1[.)]) \").replace(\"html\", \"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\", B._tag).getRegex(), B.blockquote = h(B.blockquote).replace(\"paragraph\", B.paragraph).getRegex(), B.normal = A({}, B), B.gfm = A({}, B.normal, {\n table: \"^ *([^\\\\n ].*\\\\|.*)\\\\n {0,3}(?:\\\\| *)?(:?-+:? *(?:\\\\| *:?-+:? *)*)(?:\\\\| *)?(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)\"\n }), B.gfm.table = h(B.gfm.table).replace(\"hr\", B.hr).replace(\"heading\", \" {0,3}#{1,6} \").replace(\"blockquote\", \" {0,3}>\").replace(\"code\", \" {4}[^\\\\n]\").replace(\"fences\", \" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\", \" {0,3}(?:[*+-]|1[.)]) \").replace(\"html\", \"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\", B._tag).getRegex(), B.gfm.paragraph = h(B._paragraph).replace(\"hr\", B.hr).replace(\"heading\", \" {0,3}#{1,6} \").replace(\"|lheading\", \"\").replace(\"table\", B.gfm.table).replace(\"blockquote\", \" {0,3}>\").replace(\"fences\", \" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\", \" {0,3}(?:[*+-]|1[.)]) \").replace(\"html\", \"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\", B._tag).getRegex(), B.pedantic = A({}, B.normal, {\n html: h(\"^ *(?:comment *(?:\\\\n|\\\\s*$)|<(tag)[\\\\s\\\\S]+?</\\\\1> *(?:\\\\n{2,}|\\\\s*$)|<tag(?:\\\"[^\\\"]*\\\"|'[^']*'|\\\\s[^'\\\"/>\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))\").replace(\"comment\", B._comment).replace(/tag/g, \"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b\").getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n fences: k,\n lheading: /^(.+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n paragraph: h(B.normal._paragraph).replace(\"hr\", B.hr).replace(\"heading\", \" *#{1,6} *[^\\n]\").replace(\"lheading\", B.lheading).replace(\"blockquote\", \" {0,3}>\").replace(\"|fences\", \"\").replace(\"|list\", \"\").replace(\"|html\", \"\").getRegex()\n }), {\n escape: /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,\n autolink: /^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/,\n url: k,\n tag: \"^comment|^</[a-zA-Z][\\\\w:-]*\\\\s*>|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>|^<\\\\?[\\\\s\\\\S]*?\\\\?>|^<![a-zA-Z]+\\\\s[\\\\s\\\\S]*?>|^<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>\",\n link: /^!?\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/,\n reflink: /^!?\\[(label)\\]\\[(ref)\\]/,\n nolink: /^!?\\[(ref)\\](?:\\[\\])?/,\n reflinkSearch: \"reflink|nolink(?!\\\\()\",\n emStrong: {\n lDelim: /^(?:\\*+(?:([punct_])|[^\\s*]))|^_+(?:([punct*])|([^\\s_]))/,\n rDelimAst: /^(?:[^_*\\\\]|\\\\.)*?\\_\\_(?:[^_*\\\\]|\\\\.)*?\\*(?:[^_*\\\\]|\\\\.)*?(?=\\_\\_)|(?:[^*\\\\]|\\\\.)+(?=[^*])|[punct_](\\*+)(?=[\\s]|$)|(?:[^punct*_\\s\\\\]|\\\\.)(\\*+)(?=[punct_\\s]|$)|[punct_\\s](\\*+)(?=[^punct*_\\s])|[\\s](\\*+)(?=[punct_])|[punct_](\\*+)(?=[punct_])|(?:[^punct*_\\s\\\\]|\\\\.)(\\*+)(?=[^punct*_\\s])/,\n rDelimUnd: /^(?:[^_*\\\\]|\\\\.)*?\\*\\*(?:[^_*\\\\]|\\\\.)*?\\_(?:[^_*\\\\]|\\\\.)*?(?=\\*\\*)|(?:[^_\\\\]|\\\\.)+(?=[^_])|[punct*](\\_+)(?=[\\s]|$)|(?:[^punct*_\\s\\\\]|\\\\.)(\\_+)(?=[punct*\\s]|$)|[punct*\\s](\\_+)(?=[^punct*_\\s])|[\\s](\\_+)(?=[punct*])|[punct*](\\_+)(?=[punct*])/\n },\n code: /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,\n br: /^( {2,}|\\\\)\\n(?!\\s*$)/,\n del: k,\n text: /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*_]|\\b_|$)|[^ ](?= {2,}\\n)))/,\n punctuation: /^([\\spunctuation])/\n });\n function P(e) {\n return e.replace(/---/g, \"—\").replace(/--/g, \"–\").replace(/(^|[-\\u2014/(\\[{\"\\s])'/g, \"$1‘\").replace(/'/g, \"’\").replace(/(^|[-\\u2014/(\\[{\\u2018\\s])\"/g, \"$1“\").replace(/\"/g, \"”\").replace(/\\.{3}/g, \"…\");\n }\n function v(e) {\n for (var u, t = \"\", n = e.length, r = 0; r < n; r++) {\n u = e.charCodeAt(r), t += \"&#\" + (u = .5 < Math.random() ? \"x\" + u.toString(16) : u) + \";\";\n }\n return t;\n }\n w._uc_punctuation = \"\\\\u00A1\\\\u00A7\\\\u00AB\\\\u00B6\\\\u00B7\\\\u00BB\\\\u00BF\\\\u037E\\\\u0387\\\\u055A-\\\\u055F\\\\u0589\\\\u058A\\\\u05BE\\\\u05C0\\\\u05C3\\\\u05C6\\\\u05F3\\\\u05F4\\\\u0609\\\\u060A\\\\u060C\\\\u060D\\\\u061B\\\\u061E\\\\u061F\\\\u066A-\\\\u066D\\\\u06D4\\\\u0700-\\\\u070D\\\\u07F7-\\\\u07F9\\\\u0830-\\\\u083E\\\\u085E\\\\u0964\\\\u0965\\\\u0970\\\\u0AF0\\\\u0DF4\\\\u0E4F\\\\u0E5A\\\\u0E5B\\\\u0F04-\\\\u0F12\\\\u0F14\\\\u0F3A-\\\\u0F3D\\\\u0F85\\\\u0FD0-\\\\u0FD4\\\\u0FD9\\\\u0FDA\\\\u104A-\\\\u104F\\\\u10FB\\\\u1360-\\\\u1368\\\\u1400\\\\u166D\\\\u166E\\\\u169B\\\\u169C\\\\u16EB-\\\\u16ED\\\\u1735\\\\u1736\\\\u17D4-\\\\u17D6\\\\u17D8-\\\\u17DA\\\\u1800-\\\\u180A\\\\u1944\\\\u1945\\\\u1A1E\\\\u1A1F\\\\u1AA0-\\\\u1AA6\\\\u1AA8-\\\\u1AAD\\\\u1B5A-\\\\u1B60\\\\u1BFC-\\\\u1BFF\\\\u1C3B-\\\\u1C3F\\\\u1C7E\\\\u1C7F\\\\u1CC0-\\\\u1CC7\\\\u1CD3\\\\u2010-\\\\u2027\\\\u2030-\\\\u2043\\\\u2045-\\\\u2051\\\\u2053-\\\\u205E\\\\u207D\\\\u207E\\\\u208D\\\\u208E\\\\u2308-\\\\u230B\\\\u2329\\\\u232A\\\\u2768-\\\\u2775\\\\u27C5\\\\u27C6\\\\u27E6-\\\\u27EF\\\\u2983-\\\\u2998\\\\u29D8-\\\\u29DB\\\\u29FC\\\\u29FD\\\\u2CF9-\\\\u2CFC\\\\u2CFE\\\\u2CFF\\\\u2D70\\\\u2E00-\\\\u2E2E\\\\u2E30-\\\\u2E42\\\\u3001-\\\\u3003\\\\u3008-\\\\u3011\\\\u3014-\\\\u301F\\\\u3030\\\\u303D\\\\u30A0\\\\u30FB\\\\uA4FE\\\\uA4FF\\\\uA60D-\\\\uA60F\\\\uA673\\\\uA67E\\\\uA6F2-\\\\uA6F7\\\\uA874-\\\\uA877\\\\uA8CE\\\\uA8CF\\\\uA8F8-\\\\uA8FA\\\\uA8FC\\\\uA92E\\\\uA92F\\\\uA95F\\\\uA9C1-\\\\uA9CD\\\\uA9DE\\\\uA9DF\\\\uAA5C-\\\\uAA5F\\\\uAADE\\\\uAADF\\\\uAAF0\\\\uAAF1\\\\uABEB\\\\uFD3E\\\\uFD3F\\\\uFE10-\\\\uFE19\\\\uFE30-\\\\uFE52\\\\uFE54-\\\\uFE61\\\\uFE63\\\\uFE68\\\\uFE6A\\\\uFE6B\\\\uFF01-\\\\uFF03\\\\uFF05-\\\\uFF0A\\\\uFF0C-\\\\uFF0F\\\\uFF1A\\\\uFF1B\\\\uFF1F\\\\uFF20\\\\uFF3B-\\\\uFF3D\\\\uFF3F\\\\uFF5B\\\\uFF5D\\\\uFF5F-\\\\uFF65\", w._punctuation = \"!\\\"#$%&'()+\\\\-.,/:;<=>?@\\\\[\\\\]`^{|}~\" + w._uc_punctuation, w.punctuation = h(w.punctuation).replace(/punctuation/g, w._punctuation).getRegex(), w.blockSkip = /\\[[^[\\]]*?\\]\\([^\\(\\)]*?\\)|`[^`]*?`|<[^<>]*?>/g, w.escapedEmSt = /(?:^|[^\\\\])(?:\\\\\\\\)*\\\\[*_]/g, w._comment = h(B._comment).replace(\"(?:--\\x3e|$)\", \"--\\x3e\").getRegex(), w.emStrong.lDelim = h(w.emStrong.lDelim).replace(/punct/g, w._punctuation).getRegex(), w.emStrong.rDelimAst = h(w.emStrong.rDelimAst, \"g\").replace(/punct/g, w._punctuation).getRegex(), w.emStrong.rDelimUnd = h(w.emStrong.rDelimUnd, \"g\").replace(/punct/g, w._punctuation).getRegex(), w._escapes = /\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/g, w._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/, w._email = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/, w.autolink = h(w.autolink).replace(\"scheme\", w._scheme).replace(\"email\", w._email).getRegex(), w._attribute = /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/, w.tag = h(w.tag).replace(\"comment\", w._comment).replace(\"attribute\", w._attribute).getRegex(), w._label = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/, w._href = /<(?:\\\\.|[^\\n<>\\\\])+>|[^\\s\\x00-\\x1f]*/, w._title = /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/, w.link = h(w.link).replace(\"label\", w._label).replace(\"href\", w._href).replace(\"title\", w._title).getRegex(), w.reflink = h(w.reflink).replace(\"label\", w._label).replace(\"ref\", B._label).getRegex(), w.nolink = h(w.nolink).replace(\"ref\", B._label).getRegex(), w.reflinkSearch = h(w.reflinkSearch, \"g\").replace(\"reflink\", w.reflink).replace(\"nolink\", w.nolink).getRegex(), w.normal = A({}, w), w.pedantic = A({}, w.normal, {\n strong: {\n start: /^__|\\*\\*/,\n middle: /^__(?=\\S)([\\s\\S]*?\\S)__(?!_)|^\\*\\*(?=\\S)([\\s\\S]*?\\S)\\*\\*(?!\\*)/,\n endAst: /\\*\\*(?!\\*)/g,\n endUnd: /__(?!_)/g\n },\n em: {\n start: /^_|\\*/,\n middle: /^()\\*(?=\\S)([\\s\\S]*?\\S)\\*(?!\\*)|^_(?=\\S)([\\s\\S]*?\\S)_(?!_)/,\n endAst: /\\*(?!\\*)/g,\n endUnd: /_(?!_)/g\n },\n link: h(/^!?\\[(label)\\]\\((.*?)\\)/).replace(\"label\", w._label).getRegex(),\n reflink: h(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/).replace(\"label\", w._label).getRegex()\n }), w.gfm = A({}, w.normal, {\n escape: h(w.escape).replace(\"])\", \"~|])\").getRegex(),\n _extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,\n url: /^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/,\n _backpedal: /(?:[^?!.,:;*_'\"~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'\"~)]+(?!$))+/,\n del: /^(~~?)(?=[^\\s~])([\\s\\S]*?[^\\s~])\\1(?=[^~]|$)/,\n text: /^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*~_]|\\b_|https?:\\/\\/|ftp:\\/\\/|www\\.|$)|[^ ](?= {2,}\\n)|[^a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-](?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)))/\n }), w.gfm.url = h(w.gfm.url, \"i\").replace(\"email\", w.gfm._extended_email).getRegex(), w.breaks = A({}, w.gfm, {\n br: h(w.br).replace(\"{2,}\", \"*\").getRegex(),\n text: h(w.gfm.text).replace(\"\\\\b_\", \"\\\\b_| {2,}\\\\n\").replace(/\\{2,\\}/g, \"*\").getRegex()\n });\n var y = function () {\n function t(e) {\n this.tokens = [], this.tokens.links = Object.create(null), this.options = e || r.defaults, this.options.tokenizer = this.options.tokenizer || new b(), this.tokenizer = this.options.tokenizer, this.tokenizer.options = this.options, (this.tokenizer.lexer = this).inlineQueue = [], this.state = {\n inLink: !1,\n inRawBlock: !1,\n top: !0\n };\n e = {\n block: B.normal,\n inline: w.normal\n };\n this.options.pedantic ? (e.block = B.pedantic, e.inline = w.pedantic) : this.options.gfm && (e.block = B.gfm, this.options.breaks ? e.inline = w.breaks : e.inline = w.gfm), this.tokenizer.rules = e;\n }\n t.lex = function (e, u) {\n return new t(u).lex(e);\n }, t.lexInline = function (e, u) {\n return new t(u).inlineTokens(e);\n };\n var e,\n u,\n n = t.prototype;\n return n.lex = function (e) {\n var u;\n for (e = e.replace(/\\r\\n|\\r/g, \"\\n\"), this.blockTokens(e, this.tokens); u = this.inlineQueue.shift();) {\n this.inlineTokens(u.src, u.tokens);\n }\n return this.tokens;\n }, n.blockTokens = function (r, i) {\n var s,\n a,\n l,\n o,\n D = this;\n for (void 0 === i && (i = []), r = this.options.pedantic ? r.replace(/\\t/g, \" \").replace(/^ +$/gm, \"\") : r.replace(/^( *)(\\t+)/gm, function (e, u, t) {\n return u + \" \".repeat(t.length);\n }); r;) {\n var e = function () {\n if (D.options.extensions && D.options.extensions.block && D.options.extensions.block.some(function (e) {\n return !!(s = e.call({\n lexer: D\n }, r, i)) && (r = r.substring(s.raw.length), i.push(s), !0);\n })) return \"continue\";\n if (s = D.tokenizer.space(r)) return r = r.substring(s.raw.length), 1 === s.raw.length && 0 < i.length ? i[i.length - 1].raw += \"\\n\" : i.push(s), \"continue\";\n if (s = D.tokenizer.code(r)) return r = r.substring(s.raw.length), !(a = i[i.length - 1]) || \"paragraph\" !== a.type && \"text\" !== a.type ? i.push(s) : (a.raw += \"\\n\" + s.raw, a.text += \"\\n\" + s.text, D.inlineQueue[D.inlineQueue.length - 1].src = a.text), \"continue\";\n if (s = D.tokenizer.fences(r)) return r = r.substring(s.raw.length), i.push(s), \"continue\";\n if (s = D.tokenizer.heading(r)) return r = r.substring(s.raw.length), i.push(s), \"continue\";\n if (s = D.tokenizer.hr(r)) return r = r.substring(s.raw.length), i.push(s), \"continue\";\n if (s = D.tokenizer.blockquote(r)) return r = r.substring(s.raw.length), i.push(s), \"continue\";\n if (s = D.tokenizer.list(r)) return r = r.substring(s.raw.length), i.push(s), \"continue\";\n if (s = D.tokenizer.html(r)) return r = r.substring(s.raw.length), i.push(s), \"continue\";\n if (s = D.tokenizer.def(r)) return r = r.substring(s.raw.length), !(a = i[i.length - 1]) || \"paragraph\" !== a.type && \"text\" !== a.type ? D.tokens.links[s.tag] || (D.tokens.links[s.tag] = {\n href: s.href,\n title: s.title\n }) : (a.raw += \"\\n\" + s.raw, a.text += \"\\n\" + s.raw, D.inlineQueue[D.inlineQueue.length - 1].src = a.text), \"continue\";\n if (s = D.tokenizer.table(r)) return r = r.substring(s.raw.length), i.push(s), \"continue\";\n if (s = D.tokenizer.lheading(r)) return r = r.substring(s.raw.length), i.push(s), \"continue\";\n var u, t, n;\n if (l = r, D.options.extensions && D.options.extensions.startBlock && (u = 1 / 0, t = r.slice(1), D.options.extensions.startBlock.forEach(function (e) {\n \"number\" == typeof (n = e.call({\n lexer: this\n }, t)) && 0 <= n && (u = Math.min(u, n));\n }), u < 1 / 0) && 0 <= u && (l = r.substring(0, u + 1)), D.state.top && (s = D.tokenizer.paragraph(l))) return a = i[i.length - 1], o && \"paragraph\" === a.type ? (a.raw += \"\\n\" + s.raw, a.text += \"\\n\" + s.text, D.inlineQueue.pop(), D.inlineQueue[D.inlineQueue.length - 1].src = a.text) : i.push(s), o = l.length !== r.length, r = r.substring(s.raw.length), \"continue\";\n if (s = D.tokenizer.text(r)) return r = r.substring(s.raw.length), (a = i[i.length - 1]) && \"text\" === a.type ? (a.raw += \"\\n\" + s.raw, a.text += \"\\n\" + s.text, D.inlineQueue.pop(), D.inlineQueue[D.inlineQueue.length - 1].src = a.text) : i.push(s), \"continue\";\n if (r) {\n var e = \"Infinite loop on byte: \" + r.charCodeAt(0);\n if (D.options.silent) return __f__(\"error\", e, \" at pages/marked/marked.min.js:6\"), \"break\";\n throw new Error(e);\n }\n }();\n if (\"continue\" !== e && \"break\" === e) break;\n }\n return this.state.top = !0, i;\n }, n.inline = function (e, u) {\n return this.inlineQueue.push({\n src: e,\n tokens: u = void 0 === u ? [] : u\n }), u;\n }, n.inlineTokens = function (r, i) {\n var s,\n a,\n l,\n e,\n o,\n D,\n c = this,\n p = (void 0 === i && (i = []), r);\n if (this.tokens.links) {\n var u = Object.keys(this.tokens.links);\n if (0 < u.length) for (; null != (e = this.tokenizer.rules.inline.reflinkSearch.exec(p));) {\n u.includes(e[0].slice(e[0].lastIndexOf(\"[\") + 1, -1)) && (p = p.slice(0, e.index) + \"[\" + \"a\".repeat(e[0].length - 2) + \"]\" + p.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex));\n }\n }\n for (; null != (e = this.tokenizer.rules.inline.blockSkip.exec(p));) {\n p = p.slice(0, e.index) + \"[\" + \"a\".repeat(e[0].length - 2) + \"]\" + p.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n }\n for (; null != (e = this.tokenizer.rules.inline.escapedEmSt.exec(p));) {\n p = p.slice(0, e.index + e[0].length - 2) + \"++\" + p.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex), this.tokenizer.rules.inline.escapedEmSt.lastIndex--;\n }\n for (; r;) {\n var t = function () {\n if (o || (D = \"\"), o = !1, c.options.extensions && c.options.extensions.inline && c.options.extensions.inline.some(function (e) {\n return !!(s = e.call({\n lexer: c\n }, r, i)) && (r = r.substring(s.raw.length), i.push(s), !0);\n })) return \"continue\";\n if (s = c.tokenizer.escape(r)) return r = r.substring(s.raw.length), i.push(s), \"continue\";\n if (s = c.tokenizer.tag(r)) return r = r.substring(s.raw.length), (a = i[i.length - 1]) && \"text\" === s.type && \"text\" === a.type ? (a.raw += s.raw, a.text += s.text) : i.push(s), \"continue\";\n if (s = c.tokenizer.link(r)) return r = r.substring(s.raw.length), i.push(s), \"continue\";\n if (s = c.tokenizer.reflink(r, c.tokens.links)) return r = r.substring(s.raw.length), (a = i[i.length - 1]) && \"text\" === s.type && \"text\" === a.type ? (a.raw += s.raw, a.text += s.text) : i.push(s), \"continue\";\n if (s = c.tokenizer.emStrong(r, p, D)) return r = r.substring(s.raw.length), i.push(s), \"continue\";\n if (s = c.tokenizer.codespan(r)) return r = r.substring(s.raw.length), i.push(s), \"continue\";\n if (s = c.tokenizer.br(r)) return r = r.substring(s.raw.length), i.push(s), \"continue\";\n if (s = c.tokenizer.del(r)) return r = r.substring(s.raw.length), i.push(s), \"continue\";\n if (s = c.tokenizer.autolink(r, v)) return r = r.substring(s.raw.length), i.push(s), \"continue\";\n if (!c.state.inLink && (s = c.tokenizer.url(r, v))) return r = r.substring(s.raw.length), i.push(s), \"continue\";\n var u, t, n;\n if (l = r, c.options.extensions && c.options.extensions.startInline && (u = 1 / 0, t = r.slice(1), c.options.extensions.startInline.forEach(function (e) {\n \"number\" == typeof (n = e.call({\n lexer: this\n }, t)) && 0 <= n && (u = Math.min(u, n));\n }), u < 1 / 0) && 0 <= u && (l = r.substring(0, u + 1)), s = c.tokenizer.inlineText(l, P)) return r = r.substring(s.raw.length), \"_\" !== s.raw.slice(-1) && (D = s.raw.slice(-1)), o = !0, (a = i[i.length - 1]) && \"text\" === a.type ? (a.raw += s.raw, a.text += s.text) : i.push(s), \"continue\";\n if (r) {\n var e = \"Infinite loop on byte: \" + r.charCodeAt(0);\n if (c.options.silent) return __f__(\"error\", e, \" at pages/marked/marked.min.js:6\"), \"break\";\n throw new Error(e);\n }\n }();\n if (\"continue\" !== t && \"break\" === t) break;\n }\n return i;\n }, n = t, u = [{\n key: \"rules\",\n get: function get() {\n return {\n block: B,\n inline: w\n };\n }\n }], (e = null) && i(n.prototype, e), u && i(n, u), Object.defineProperty(n, \"prototype\", {\n writable: !1\n }), t;\n }(),\n _ = function () {\n function e(e) {\n this.options = e || r.defaults;\n }\n var u = e.prototype;\n return u.code = function (e, u, t) {\n var n,\n u = (u || \"\").match(/\\S*/)[0];\n return this.options.highlight && null != (n = this.options.highlight(e, u)) && n !== e && (t = !0, e = n), e = e.replace(/\\n$/, \"\") + \"\\n\", u ? '<pre><code class=\"' + this.options.langPrefix + d(u) + '\">' + (t ? e : d(e, !0)) + \"</code></pre>\\n\" : \"<pre><code>\" + (t ? e : d(e, !0)) + \"</code></pre>\\n\";\n }, u.blockquote = function (e) {\n return \"<blockquote>\\n\" + e + \"</blockquote>\\n\";\n }, u.html = function (e, u) {\n return e;\n }, u.heading = function (e, u, t, n) {\n return this.options.headerIds ? \"<h\" + u + ' id=\"' + (this.options.headerPrefix + n.slug(t)) + '\">' + e + \"</h\" + u + \">\\n\" : \"<h\" + u + \">\" + e + \"</h\" + u + \">\\n\";\n }, u.hr = function () {\n return this.options.xhtml ? \"<hr/>\\n\" : \"<hr>\\n\";\n }, u.list = function (e, u, t) {\n var n = u ? \"ol\" : \"ul\";\n return \"<\" + n + (u && 1 !== t ? ' start=\"' + t + '\"' : \"\") + \">\\n\" + e + \"</\" + n + \">\\n\";\n }, u.listitem = function (e) {\n return \"<li>\" + e + \"</li>\\n\";\n }, u.checkbox = function (e) {\n return \"<input \" + (e ? 'checked=\"\" ' : \"\") + 'disabled=\"\" type=\"checkbox\"' + (this.options.xhtml ? \" /\" : \"\") + \"> \";\n }, u.paragraph = function (e) {\n return \"<p>\" + e + \"</p>\\n\";\n }, u.table = function (e, u) {\n return \"<table>\\n<thead>\\n\" + e + \"</thead>\\n\" + (u = u && \"<tbody>\" + u + \"</tbody>\") + \"</table>\\n\";\n }, u.tablerow = function (e) {\n return \"<tr>\\n\" + e + \"</tr>\\n\";\n }, u.tablecell = function (e, u) {\n var t = u.header ? \"th\" : \"td\";\n return (u.align ? \"<\" + t + ' align=\"' + u.align + '\">' : \"<\" + t + \">\") + e + \"</\" + t + \">\\n\";\n }, u.strong = function (e) {\n return \"<strong>\" + e + \"</strong>\";\n }, u.em = function (e) {\n return \"<em>\" + e + \"</em>\";\n }, u.codespan = function (e) {\n return \"<code>\" + e + \"</code>\";\n }, u.br = function () {\n return this.options.xhtml ? \"<br/>\" : \"<br>\";\n }, u.del = function (e) {\n return \"<del>\" + e + \"</del>\";\n }, u.link = function (e, u, t) {\n return null === (e = f(this.options.sanitize, this.options.baseUrl, e)) ? t : (e = '<a href=\"' + e + '\"', u && (e += ' title=\"' + u + '\"'), e + \">\" + t + \"</a>\");\n }, u.image = function (e, u, t) {\n return null === (e = f(this.options.sanitize, this.options.baseUrl, e)) ? t : (e = '<img src=\"' + e + '\" alt=\"' + t + '\"', u && (e += ' title=\"' + u + '\"'), e + (this.options.xhtml ? \"/>\" : \">\"));\n }, u.text = function (e) {\n return e;\n }, e;\n }(),\n z = function () {\n function e() {}\n var u = e.prototype;\n return u.strong = function (e) {\n return e;\n }, u.em = function (e) {\n return e;\n }, u.codespan = function (e) {\n return e;\n }, u.del = function (e) {\n return e;\n }, u.html = function (e) {\n return e;\n }, u.text = function (e) {\n return e;\n }, u.link = function (e, u, t) {\n return \"\" + t;\n }, u.image = function (e, u, t) {\n return \"\" + t;\n }, u.br = function () {\n return \"\";\n }, e;\n }(),\n $ = function () {\n function e() {\n this.seen = {};\n }\n var u = e.prototype;\n return u.serialize = function (e) {\n return e.toLowerCase().trim().replace(/<[!\\/a-z].*?>/gi, \"\").replace(/[\\u2000-\\u206F\\u2E00-\\u2E7F\\\\'!\"#$%&()*+,./:;<=>?@[\\]^`{|}~]/g, \"\").replace(/\\s/g, \"-\");\n }, u.getNextSafeSlug = function (e, u) {\n var t = e,\n n = 0;\n if (this.seen.hasOwnProperty(t)) for (n = this.seen[e]; t = e + \"-\" + ++n, this.seen.hasOwnProperty(t);) {\n ;\n }\n return u || (this.seen[e] = n, this.seen[t] = 0), t;\n }, u.slug = function (e, u) {\n void 0 === u && (u = {});\n e = this.serialize(e);\n return this.getNextSafeSlug(e, u.dryrun);\n }, e;\n }(),\n S = function () {\n function t(e) {\n this.options = e || r.defaults, this.options.renderer = this.options.renderer || new _(), this.renderer = this.options.renderer, this.renderer.options = this.options, this.textRenderer = new z(), this.slugger = new $();\n }\n t.parse = function (e, u) {\n return new t(u).parse(e);\n }, t.parseInline = function (e, u) {\n return new t(u).parseInline(e);\n };\n var e = t.prototype;\n return e.parse = function (e, u) {\n void 0 === u && (u = !0);\n for (var t, n, r, i, s, a, l, o, D, c, p, h, F, f, g, A, d = \"\", k = e.length, C = 0; C < k; C++) {\n if (o = e[C], this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[o.type] && (!1 !== (A = this.options.extensions.renderers[o.type].call({\n parser: this\n }, o)) || ![\"space\", \"hr\", \"heading\", \"code\", \"table\", \"blockquote\", \"list\", \"html\", \"paragraph\", \"text\"].includes(o.type))) d += A || \"\";else switch (o.type) {\n case \"space\":\n continue;\n case \"hr\":\n d += this.renderer.hr();\n continue;\n case \"heading\":\n d += this.renderer.heading(this.parseInline(o.tokens), o.depth, m(this.parseInline(o.tokens, this.textRenderer)), this.slugger);\n continue;\n case \"code\":\n d += this.renderer.code(o.text, o.lang, o.escaped);\n continue;\n case \"table\":\n for (a = D = \"\", r = o.header.length, t = 0; t < r; t++) {\n a += this.renderer.tablecell(this.parseInline(o.header[t].tokens), {\n header: !0,\n align: o.align[t]\n });\n }\n for (D += this.renderer.tablerow(a), l = \"\", r = o.rows.length, t = 0; t < r; t++) {\n for (a = \"\", i = (s = o.rows[t]).length, n = 0; n < i; n++) {\n a += this.renderer.tablecell(this.parseInline(s[n].tokens), {\n header: !1,\n align: o.align[n]\n });\n }\n l += this.renderer.tablerow(a);\n }\n d += this.renderer.table(D, l);\n continue;\n case \"blockquote\":\n l = this.parse(o.tokens), d += this.renderer.blockquote(l);\n continue;\n case \"list\":\n for (D = o.ordered, E = o.start, c = o.loose, r = o.items.length, l = \"\", t = 0; t < r; t++) {\n F = (h = o.items[t]).checked, f = h.task, p = \"\", h.task && (g = this.renderer.checkbox(F), c ? 0 < h.tokens.length && \"paragraph\" === h.tokens[0].type ? (h.tokens[0].text = g + \" \" + h.tokens[0].text, h.tokens[0].tokens && 0 < h.tokens[0].tokens.length && \"text\" === h.tokens[0].tokens[0].type && (h.tokens[0].tokens[0].text = g + \" \" + h.tokens[0].tokens[0].text)) : h.tokens.unshift({\n type: \"text\",\n text: g\n }) : p += g), p += this.parse(h.tokens, c), l += this.renderer.listitem(p, f, F);\n }\n d += this.renderer.list(l, D, E);\n continue;\n case \"html\":\n d += this.renderer.html(o.text, o.block);\n continue;\n case \"paragraph\":\n d += this.renderer.paragraph(this.parseInline(o.tokens));\n continue;\n case \"text\":\n for (l = o.tokens ? this.parseInline(o.tokens) : o.text; C + 1 < k && \"text\" === e[C + 1].type;) {\n l += \"\\n\" + ((o = e[++C]).tokens ? this.parseInline(o.tokens) : o.text);\n }\n d += u ? this.renderer.paragraph(l) : l;\n continue;\n default:\n var E = 'Token with \"' + o.type + '\" type was not found.';\n if (this.options.silent) return void __f__(\"error\", E, \" at pages/marked/marked.min.js:6\");\n throw new Error(E);\n }\n }\n return d;\n }, e.parseInline = function (e, u) {\n u = u || this.renderer;\n for (var t, n, r = \"\", i = e.length, s = 0; s < i; s++) {\n if (t = e[s], this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[t.type] && (!1 !== (n = this.options.extensions.renderers[t.type].call({\n parser: this\n }, t)) || ![\"escape\", \"html\", \"link\", \"image\", \"strong\", \"em\", \"codespan\", \"br\", \"del\", \"text\"].includes(t.type))) r += n || \"\";else switch (t.type) {\n case \"escape\":\n r += u.text(t.text);\n break;\n case \"html\":\n r += u.html(t.text);\n break;\n case \"link\":\n r += u.link(t.href, t.title, this.parseInline(t.tokens, u));\n break;\n case \"image\":\n r += u.image(t.href, t.title, t.text);\n break;\n case \"strong\":\n r += u.strong(this.parseInline(t.tokens, u));\n break;\n case \"em\":\n r += u.em(this.parseInline(t.tokens, u));\n break;\n case \"codespan\":\n r += u.codespan(t.text);\n break;\n case \"br\":\n r += u.br();\n break;\n case \"del\":\n r += u.del(this.parseInline(t.tokens, u));\n break;\n case \"text\":\n r += u.text(t.text);\n break;\n default:\n var a = 'Token with \"' + t.type + '\" type was not found.';\n if (this.options.silent) return void __f__(\"error\", a, \" at pages/marked/marked.min.js:6\");\n throw new Error(a);\n }\n }\n return r;\n }, t;\n }(),\n T = function () {\n function e(e) {\n this.options = e || r.defaults;\n }\n var u = e.prototype;\n return u.preprocess = function (e) {\n return e;\n }, u.postprocess = function (e) {\n return e;\n }, e;\n }();\n function R(f, g) {\n return function (e, t, n) {\n \"function\" == typeof t && (n = t, t = null);\n var r,\n i,\n s,\n u,\n a = A({}, t),\n l = (t = A({}, I.defaults, a), r = t.silent, i = t.async, s = n, function (e) {\n var u;\n if (e.message += \"\\nPlease report this to https://github.com/markedjs/marked.\", r) return u = \"<p>An error occurred:</p><pre>\" + d(e.message + \"\", !0) + \"</pre>\", i ? Promise.resolve(u) : s ? void s(null, u) : u;\n if (i) return Promise.reject(e);\n if (!s) throw e;\n s(e);\n });\n if (null == e) return l(new Error(\"marked(): input parameter is undefined or null\"));\n if (\"string\" != typeof e) return l(new Error(\"marked(): input parameter is of type \" + Object.prototype.toString.call(e) + \", string expected\"));\n if (a = n, (u = t) && !u.silent && (a && __f__(\"warn\", \"marked(): callback is deprecated since version 5.0.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/using_pro#async\", \" at pages/marked/marked.min.js:6\"), (u.sanitize || u.sanitizer) && __f__(\"warn\", \"marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options\", \" at pages/marked/marked.min.js:6\"), !u.highlight && \"language-\" === u.langPrefix || __f__(\"warn\", \"marked(): highlight and langPrefix parameters are deprecated since version 5.0.0, should not be used and will be removed in the future. Instead use https://www.npmjs.com/package/marked-highlight.\", \" at pages/marked/marked.min.js:6\"), u.mangle && __f__(\"warn\", \"marked(): mangle parameter is enabled by default, but is deprecated since version 5.0.0, and will be removed in the future. To clear this warning, install https://www.npmjs.com/package/marked-mangle, or disable by setting `{mangle: false}`.\", \" at pages/marked/marked.min.js:6\"), u.baseUrl && __f__(\"warn\", \"marked(): baseUrl parameter is deprecated since version 5.0.0, should not be used and will be removed in the future. Instead use https://www.npmjs.com/package/marked-base-url.\", \" at pages/marked/marked.min.js:6\"), u.smartypants && __f__(\"warn\", \"marked(): smartypants parameter is deprecated since version 5.0.0, should not be used and will be removed in the future. Instead use https://www.npmjs.com/package/marked-smartypants.\", \" at pages/marked/marked.min.js:6\"), u.xhtml && __f__(\"warn\", \"marked(): xhtml parameter is deprecated since version 5.0.0, should not be used and will be removed in the future. Instead use https://www.npmjs.com/package/marked-xhtml.\", \" at pages/marked/marked.min.js:6\"), u.headerIds || u.headerPrefix) && __f__(\"warn\", \"marked(): headerIds and headerPrefix parameters enabled by default, but are deprecated since version 5.0.0, and will be removed in the future. To clear this warning, install https://www.npmjs.com/package/marked-gfm-heading-id, or disable by setting `{headerIds: false}`.\", \" at pages/marked/marked.min.js:6\"), t.hooks && (t.hooks.options = t), n) {\n var o,\n D = t.highlight;\n try {\n t.hooks && (e = t.hooks.preprocess(e)), o = f(e, t);\n } catch (e) {\n return l(e);\n }\n var c,\n p = function p(u) {\n var e;\n if (!u) try {\n t.walkTokens && I.walkTokens(o, t.walkTokens), e = g(o, t), t.hooks && (e = t.hooks.postprocess(e));\n } catch (e) {\n u = e;\n }\n return t.highlight = D, u ? l(u) : n(null, e);\n };\n return !D || D.length < 3 ? p() : (delete t.highlight, o.length ? (c = 0, I.walkTokens(o, function (t) {\n \"code\" === t.type && (c++, setTimeout(function () {\n D(t.text, t.lang, function (e, u) {\n if (e) return p(e);\n null != u && u !== t.text && (t.text = u, t.escaped = !0), 0 === --c && p();\n });\n }, 0));\n }), void (0 === c && p())) : p());\n }\n if (t.async) return Promise.resolve(t.hooks ? t.hooks.preprocess(e) : e).then(function (e) {\n return f(e, t);\n }).then(function (e) {\n return t.walkTokens ? Promise.all(I.walkTokens(e, t.walkTokens)).then(function () {\n return e;\n }) : e;\n }).then(function (e) {\n return g(e, t);\n }).then(function (e) {\n return t.hooks ? t.hooks.postprocess(e) : e;\n }).catch(l);\n try {\n t.hooks && (e = t.hooks.preprocess(e));\n var h = f(e, t),\n F = (t.walkTokens && I.walkTokens(h, t.walkTokens), g(h, t));\n return F = t.hooks ? t.hooks.postprocess(F) : F;\n } catch (e) {\n return l(e);\n }\n };\n }\n function I(e, u, t) {\n return R(y.lex, S.parse)(e, u, t);\n }\n T.passThroughHooks = new Set([\"preprocess\", \"postprocess\"]), I.options = I.setOptions = function (e) {\n return I.defaults = A({}, I.defaults, e), e = I.defaults, r.defaults = e, I;\n }, I.getDefaults = e, I.defaults = r.defaults, I.use = function () {\n for (var D = I.defaults.extensions || {\n renderers: {},\n childTokens: {}\n }, e = arguments.length, u = new Array(e), t = 0; t < e; t++) {\n u[t] = arguments[t];\n }\n u.forEach(function (s) {\n var t,\n e = A({}, s);\n if (e.async = I.defaults.async || e.async || !1, s.extensions && (s.extensions.forEach(function (r) {\n if (!r.name) throw new Error(\"extension name required\");\n var i;\n if (r.renderer && (i = D.renderers[r.name], D.renderers[r.name] = i ? function () {\n for (var e = arguments.length, u = new Array(e), t = 0; t < e; t++) {\n u[t] = arguments[t];\n }\n var n = r.renderer.apply(this, u);\n return n = !1 === n ? i.apply(this, u) : n;\n } : r.renderer), r.tokenizer) {\n if (!r.level || \"block\" !== r.level && \"inline\" !== r.level) throw new Error(\"extension level must be 'block' or 'inline'\");\n D[r.level] ? D[r.level].unshift(r.tokenizer) : D[r.level] = [r.tokenizer], r.start && (\"block\" === r.level ? D.startBlock ? D.startBlock.push(r.start) : D.startBlock = [r.start] : \"inline\" === r.level && (D.startInline ? D.startInline.push(r.start) : D.startInline = [r.start]));\n }\n r.childTokens && (D.childTokens[r.name] = r.childTokens);\n }), e.extensions = D), s.renderer) {\n var u,\n a = I.defaults.renderer || new _();\n for (u in s.renderer) {\n !function (r) {\n var i = a[r];\n a[r] = function () {\n for (var e = arguments.length, u = new Array(e), t = 0; t < e; t++) {\n u[t] = arguments[t];\n }\n var n = s.renderer[r].apply(a, u);\n return n = !1 === n ? i.apply(a, u) : n;\n };\n }(u);\n }\n e.renderer = a;\n }\n if (s.tokenizer) {\n var n,\n l = I.defaults.tokenizer || new b();\n for (n in s.tokenizer) {\n !function (r) {\n var i = l[r];\n l[r] = function () {\n for (var e = arguments.length, u = new Array(e), t = 0; t < e; t++) {\n u[t] = arguments[t];\n }\n var n = s.tokenizer[r].apply(l, u);\n return n = !1 === n ? i.apply(l, u) : n;\n };\n }(n);\n }\n e.tokenizer = l;\n }\n if (s.hooks) {\n var r,\n o = I.defaults.hooks || new T();\n for (r in s.hooks) {\n !function (r) {\n var i = o[r];\n T.passThroughHooks.has(r) ? o[r] = function (e) {\n return I.defaults.async ? Promise.resolve(s.hooks[r].call(o, e)).then(function (e) {\n return i.call(o, e);\n }) : (e = s.hooks[r].call(o, e), i.call(o, e));\n } : o[r] = function () {\n for (var e = arguments.length, u = new Array(e), t = 0; t < e; t++) {\n u[t] = arguments[t];\n }\n var n = s.hooks[r].apply(o, u);\n return n = !1 === n ? i.apply(o, u) : n;\n };\n }(r);\n }\n e.hooks = o;\n }\n s.walkTokens && (t = I.defaults.walkTokens, e.walkTokens = function (e) {\n var u = [];\n return u.push(s.walkTokens.call(this, e)), u = t ? u.concat(t.call(this, e)) : u;\n }), I.setOptions(e);\n });\n }, I.walkTokens = function (e, a) {\n for (var l, o = [], u = D(e); !(l = u()).done;) {\n !function () {\n var u = l.value;\n switch (o = o.concat(a.call(I, u)), u.type) {\n case \"table\":\n for (var e = D(u.header); !(t = e()).done;) {\n var t = t.value;\n o = o.concat(I.walkTokens(t.tokens, a));\n }\n for (var n, r = D(u.rows); !(n = r()).done;) {\n for (var i = D(n.value); !(s = i()).done;) {\n var s = s.value;\n o = o.concat(I.walkTokens(s.tokens, a));\n }\n }\n break;\n case \"list\":\n o = o.concat(I.walkTokens(u.items, a));\n break;\n default:\n I.defaults.extensions && I.defaults.extensions.childTokens && I.defaults.extensions.childTokens[u.type] ? I.defaults.extensions.childTokens[u.type].forEach(function (e) {\n o = o.concat(I.walkTokens(u[e], a));\n }) : u.tokens && (o = o.concat(I.walkTokens(u.tokens, a)));\n }\n }();\n }\n return o;\n }, I.parseInline = R(y.lexInline, S.parseInline), I.Parser = S, I.parser = S.parse, I.Renderer = _, I.TextRenderer = z, I.Lexer = y, I.lexer = y.lex, I.Tokenizer = b, I.Slugger = $, I.Hooks = T;\n var k = (I.parse = I).options,\n L = I.setOptions,\n U = I.use,\n Q = I.walkTokens,\n M = I.parseInline,\n N = I,\n H = S.parse,\n X = y.lex;\n r.Hooks = T, r.Lexer = y, r.Parser = S, r.Renderer = _, r.Slugger = $, r.TextRenderer = z, r.Tokenizer = b, r.getDefaults = e, r.lexer = X, r.marked = I, r.options = k, r.parse = N, r.parseInline = M, r.parser = H, r.setOptions = L, r.use = U, r.walkTokens = Q;\n});\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 26)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvbWFya2VkL21hcmtlZC5taW4uanMiXSwibmFtZXMiOlsiZSIsInUiLCJleHBvcnRzIiwibW9kdWxlIiwiZGVmaW5lIiwiciIsImkiLCJ0IiwibGVuZ3RoIiwibiIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJTdHJpbmciLCJOdW1iZXIiLCJjYWxsIiwiVHlwZUVycm9yIiwia2V5IiwiQSIsImFzc2lnbiIsImJpbmQiLCJhcmd1bWVudHMiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImFwcGx5IiwicyIsIkFycmF5IiwiRCIsIml0ZXJhdG9yIiwibmV4dCIsImlzQXJyYXkiLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiZnJvbSIsInRlc3QiLCJkb25lIiwidmFsdWUiLCJhc3luYyIsImJhc2VVcmwiLCJicmVha3MiLCJleHRlbnNpb25zIiwiZ2ZtIiwiaGVhZGVySWRzIiwiaGVhZGVyUHJlZml4IiwiaGlnaGxpZ2h0IiwiaG9va3MiLCJsYW5nUHJlZml4IiwibWFuZ2xlIiwicGVkYW50aWMiLCJyZW5kZXJlciIsInNhbml0aXplIiwic2FuaXRpemVyIiwic2lsZW50Iiwic21hcnR5cGFudHMiLCJ0b2tlbml6ZXIiLCJ3YWxrVG9rZW5zIiwieGh0bWwiLCJkZWZhdWx0cyIsImEiLCJSZWdFeHAiLCJzb3VyY2UiLCJsIiwibyIsImQiLCJyZXBsYWNlIiwiYyIsIm0iLCJ0b0xvd2VyQ2FzZSIsImNoYXJBdCIsImZyb21DaGFyQ29kZSIsInBhcnNlSW50Iiwic3Vic3RyaW5nIiwicCIsImgiLCJnZXRSZWdleCIsIkYiLCJqIiwiZiIsImRlY29kZVVSSUNvbXBvbmVudCIsImluZGV4T2YiLCJnIiwiWiIsIkUiLCJPIiwicSIsImVuY29kZVVSSSIsImsiLCJleGVjIiwiQyIsInNwbGl0IiwidHJpbSIsInNoaWZ0IiwicG9wIiwic3BsaWNlIiwicHVzaCIsIngiLCJocmVmIiwidGl0bGUiLCJzdGF0ZSIsImluTGluayIsInR5cGUiLCJyYXciLCJ0ZXh0IiwidG9rZW5zIiwiaW5saW5lVG9rZW5zIiwiYiIsIm9wdGlvbnMiLCJzcGFjZSIsInJ1bGVzIiwiYmxvY2siLCJuZXdsaW5lIiwiY29kZSIsImNvZGVCbG9ja1N0eWxlIiwiZmVuY2VzIiwibWF0Y2giLCJtYXAiLCJqb2luIiwibGFuZyIsImlubGluZSIsIl9lc2NhcGVzIiwiaGVhZGluZyIsImRlcHRoIiwibGV4ZXIiLCJociIsImJsb2NrcXVvdGUiLCJ0b3AiLCJibG9ja1Rva2VucyIsImxpc3QiLCJvcmRlcmVkIiwic3RhcnQiLCJsb29zZSIsIml0ZW1zIiwicmVwZWF0IiwidHJpbUxlZnQiLCJzZWFyY2giLCJNYXRoIiwibWluIiwidGFzayIsImNoZWNrZWQiLCJ0cmltUmlnaHQiLCJmaWx0ZXIiLCJzb21lIiwiaHRtbCIsInByZSIsImRlZiIsInRhZyIsInRhYmxlIiwiaGVhZGVyIiwiYWxpZ24iLCJyb3dzIiwibGhlYWRpbmciLCJwYXJhZ3JhcGgiLCJlc2NhcGUiLCJpblJhd0Jsb2NrIiwibGluayIsInJlZmxpbmsiLCJub2xpbmsiLCJlbVN0cm9uZyIsImxEZWxpbSIsInB1bmN0dWF0aW9uIiwickRlbGltQXN0IiwickRlbGltVW5kIiwibGFzdEluZGV4IiwiaW5kZXgiLCJjb2Rlc3BhbiIsImJyIiwiZGVsIiwiYXV0b2xpbmsiLCJ1cmwiLCJfYmFja3BlZGFsIiwiaW5saW5lVGV4dCIsIkIiLCJfcGFyYWdyYXBoIiwiX2xhYmVsIiwiX3RpdGxlIiwidyIsImJ1bGxldCIsImxpc3RJdGVtU3RhcnQiLCJfdGFnIiwiX2NvbW1lbnQiLCJub3JtYWwiLCJyZWZsaW5rU2VhcmNoIiwiUCIsInYiLCJjaGFyQ29kZUF0IiwicmFuZG9tIiwiX3VjX3B1bmN0dWF0aW9uIiwiX3B1bmN0dWF0aW9uIiwiYmxvY2tTa2lwIiwiZXNjYXBlZEVtU3QiLCJfc2NoZW1lIiwiX2VtYWlsIiwiX2F0dHJpYnV0ZSIsIl9ocmVmIiwic3Ryb25nIiwibWlkZGxlIiwiZW5kQXN0IiwiZW5kVW5kIiwiZW0iLCJfZXh0ZW5kZWRfZW1haWwiLCJ5IiwibGlua3MiLCJjcmVhdGUiLCJpbmxpbmVRdWV1ZSIsImxleCIsImxleElubGluZSIsInNyYyIsInN0YXJ0QmxvY2siLCJmb3JFYWNoIiwiRXJyb3IiLCJrZXlzIiwiaW5jbHVkZXMiLCJsYXN0SW5kZXhPZiIsInN0YXJ0SW5saW5lIiwiZ2V0IiwiXyIsInNsdWciLCJsaXN0aXRlbSIsImNoZWNrYm94IiwidGFibGVyb3ciLCJ0YWJsZWNlbGwiLCJpbWFnZSIsInoiLCIkIiwic2VlbiIsInNlcmlhbGl6ZSIsImdldE5leHRTYWZlU2x1ZyIsImRyeXJ1biIsIlMiLCJ0ZXh0UmVuZGVyZXIiLCJzbHVnZ2VyIiwicGFyc2UiLCJwYXJzZUlubGluZSIsInJlbmRlcmVycyIsInBhcnNlciIsImVzY2FwZWQiLCJ1bnNoaWZ0IiwiVCIsInByZXByb2Nlc3MiLCJwb3N0cHJvY2VzcyIsIlIiLCJJIiwibWVzc2FnZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0Iiwic2V0VGltZW91dCIsInRoZW4iLCJhbGwiLCJjYXRjaCIsInBhc3NUaHJvdWdoSG9va3MiLCJTZXQiLCJzZXRPcHRpb25zIiwiZ2V0RGVmYXVsdHMiLCJ1c2UiLCJjaGlsZFRva2VucyIsImxldmVsIiwiaGFzIiwiY29uY2F0IiwiUGFyc2VyIiwiUmVuZGVyZXIiLCJUZXh0UmVuZGVyZXIiLCJMZXhlciIsIlRva2VuaXplciIsIlNsdWdnZXIiLCJIb29rcyIsIkwiLCJVIiwiUSIsIk0iLCJOIiwiSCIsIlgiLCJtYXJrZWQiXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxVQUFTQSxDQUFDLEVBQUNDLENBQUMsRUFBQztFQUFDLFFBQVEsV0FBZ0IsdUJBQVBDLE9BQU8sTUFBRSxXQUFXLElBQUUsT0FB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LENBQUNTLElBQUksQ0FBQ3ZDLENBQUMsQ0FBQyxHQUFDLFdBQVcsS0FBR08sQ0FBQyxJQUFFLDBDQUEwQyxDQUFDaUMsSUFBSSxDQUFDakMsQ0FBQyxDQUFDLEdBQUNzQixDQUFDLENBQUM3QixDQUFDLEVBQUNDLENBQUMsQ0FBQyxHQUFDLEtBQUssQ0FBQztJQUFBLENBQUMsQ0FBQ0QsQ0FBQyxDQUFDLENBQUMsSUFBRUMsQ0FBQyxJQUFFRCxDQUFDLElBQUUsUUFBUSxJQUFFLE9BQU9BLENBQUMsQ0FBQ1EsTUFBTSxFQUFDLE9BQU9DLENBQUMsS0FBR1QsQ0FBQyxHQUFDUyxDQUFDLENBQUMsRUFBQ0YsQ0FBQyxHQUFDLENBQUMsRUFBQyxZQUFVO01BQUMsT0FBT0EsQ0FBQyxJQUFFUCxDQUFDLENBQUNRLE1BQU0sR0FBQztRQUFDaUMsSUFBSSxFQUFDLENBQUM7TUFBQyxDQUFDLEdBQUM7UUFBQ0EsSUFBSSxFQUFDLENBQUMsQ0FBQztRQUFDQyxLQUFLLEVBQUMxQyxDQUFDLENBQUNPLENBQUMsRUFBRTtNQUFDLENBQUM7SUFBQSxDQUFDO0lBQUMsTUFBTSxJQUFJYSxTQUFTLENBQUMsdUlBQXVJLENBQUM7RUFBQTtFQUFDLFNBQVNwQixDQUFDLEdBQUU7SUFBQyxPQUFNO01BQUMyQyxLQUFLLEVBQUMsQ0FBQyxDQUFDO01BQUNDLE9BQU8sRUFBQyxJQUFJO01BQUNDLE1BQU0sRUFBQyxDQUFDLENBQUM7TUFBQ0MsVUFBVSxFQUFDLElBQUk7TUFBQ0MsR0FBRyxFQUFDLENBQUMsQ0FBQztNQUFDQyxTQUFTLEVBQUMsQ0FBQyxDQUFDO01BQUNDLFlBQVksRUFBQyxFQUFFO01BQUNDLFNBQVMsRUFBQyxJQUFJO01BQUNDLEtBQUssRUFBQyxJQUFJO01BQUNDLFVBQVUsRUFBQyxXQUFXO01BQUNDLE1BQU0sRUFBQyxDQUFDLENBQUM7TUFBQ0MsUUFBUSxFQUFDLENBQUMsQ0FBQztNQUFDQyxRQUFRLEVBQUMsSUFBSTtNQUFDQyxRQUFRLEVBQUMsQ0FBQyxDQUFDO01BQUNDLFNBQVMsRUFBQyxJQUFJ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QUMsQ0FBQzJHLE9BQU8sR0FBQ3BCLENBQUMsRUFBQ3ZGLENBQUMsQ0FBQ3dPLEtBQUssR0FBQ3VDLENBQUMsRUFBQy9RLENBQUMsQ0FBQ3lPLFdBQVcsR0FBQ3FDLENBQUMsRUFBQzlRLENBQUMsQ0FBQzJPLE1BQU0sR0FBQ3FDLENBQUMsRUFBQ2hSLENBQUMsQ0FBQzZQLFVBQVUsR0FBQ2MsQ0FBQyxFQUFDM1EsQ0FBQyxDQUFDK1AsR0FBRyxHQUFDYSxDQUFDLEVBQUM1USxDQUFDLENBQUN3RCxVQUFVLEdBQUNxTixDQUFDO0FBQUEsQ0FBQyxDQUFDLEMiLCJmaWxlIjoiMzAuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIG1hcmtlZCB2NS4wLjQgLSBhIG1hcmtkb3duIHBhcnNlclxuICogQ29weXJpZ2h0IChjKSAyMDExLTIwMjMsIENocmlzdG9waGVyIEplZmZyZXkuIChNSVQgTGljZW5zZWQpXG4gKiBodHRwczovL2dpdGh1Yi5jb20vbWFya2VkanMvbWFya2VkXG4gKi9cbiFmdW5jdGlvbihlLHUpe1wib2JqZWN0XCI9PXR5cGVvZiBleHBvcnRzJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgbW9kdWxlP3UoZXhwb3J0cyk6XCJmdW5jdGlvblwiPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShbXCJleHBvcnRzXCJdLHUpOnUoKGU9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIGdsb2JhbFRoaXM/Z2xvYmFsVGhpczplfHxzZWxmKS5tYXJrZWQ9e30pfSh0aGlzLGZ1bmN0aW9uKHIpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIGkoZSx1KXtmb3IodmFyIHQ9MDt0PHUubGVuZ3RoO3QrKyl7dmFyIG49dVt0XTtuLmVudW1lcmFibGU9bi5lbnVtZXJhYmxlfHwhMSxuLmNvbmZpZ3VyYWJsZT0hMCxcInZhbHVlXCJpbiBuJiYobi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsZnVuY3Rpb24oZSl7ZT1mdW5jdGlvbihlLHUpe2lmKFwib2JqZWN0XCIhPXR5cGVvZiBlfHxudWxsPT09ZSlyZXR1cm4gZTt2YXIgdD1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwPT09dClyZXR1cm4oXCJzdHJpbmdcIj09PXU/U3RyaW5nOk51bWJlcikoZSk7dD10LmNhbGwoZSx1fHxcImRlZmF1bHRcIik7aWYoXCJvYmplY3RcIiE9dHlwZW9mIHQpcmV0dXJuIHQ7dGhyb3cgbmV3IFR5cGVFcnJvcihcIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuXCIpfShlLFwic3RyaW5nXCIpO3JldHVyblwic3ltYm9sXCI9PXR5cGVvZiBlP2U6U3RyaW5nKGUpfShuLmtleSksbil9fWZ1bmN0aW9uIEEoKXtyZXR1cm4oQT1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdT0xO3U8YXJndW1lbnRzLmxlbmd0aDt1Kyspe3ZhciB0LG49YXJndW1lbnRzW3VdO2Zvcih0IGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4sdCkmJihlW3RdPW5bdF0pfXJldHVybiBlfSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHMoZSx1KXsobnVsbD09dXx8dT5lLmxlbmd0aCkmJih1PWUubGVuZ3RoKTtmb3IodmFyIHQ9MCxuPW5ldyBBcnJheSh1KTt0PHU7dCsrKW5bdF09ZVt0XTtyZXR1cm4gbn1mdW5jdGlvbiBEKGUsdSl7dmFyIHQsbj1cInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG4pcmV0dXJuKG49bi5jYWxsKGUpKS5uZXh0LmJpbmQobik7aWYoQXJyYXkuaXNBcnJheShlKXx8KG49ZnVuY3Rpb24oZSx1KXt2YXIgdDtpZihlKXJldHVyblwic3RyaW5nXCI9PXR5cGVvZiBlP3MoZSx1KTpcIk1hcFwiPT09KHQ9XCJPYmplY3RcIj09PSh0PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKSkmJmUuY29uc3RydWN0b3I/ZS5jb25zdHJ1Y3Rvci5uYW1lOnQpfHxcIlNldFwiPT09dD9BcnJheS5mcm9tKGUpOlwiQXJndW1lbnRzXCI9PT10fHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh0KT9zKGUsdSk6dm9pZCAwfShlKSl8fHUmJmUmJlwibnVtYmVyXCI9PXR5cGVvZiBlLmxlbmd0aClyZXR1cm4gbiYmKGU9biksdD0wLGZ1bmN0aW9uKCl7cmV0dXJuIHQ+PWUubGVuZ3RoP3tkb25lOiEwfTp7ZG9uZTohMSx2YWx1ZTplW3QrK119fTt0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGl0ZXJhdGUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9ZnVuY3Rpb24gZSgpe3JldHVybnthc3luYzohMSxiYXNlVXJsOm51bGwsYnJlYWtzOiExLGV4dGVuc2lvbnM6bnVsbCxnZm06ITAsaGVhZGVySWRzOiEwLGhlYWRlclByZWZpeDpcIlwiLGhpZ2hsaWdodDpudWxsLGhvb2tzOm51bGwsbGFuZ1ByZWZpeDpcImxhbmd1YWdlLVwiLG1hbmdsZTohMCxwZWRhbnRpYzohMSxyZW5kZXJlcjpudWxsLHNhbml0aXplOiExLHNhbml0aXplcjpudWxsLHNpbGVudDohMSxzbWFydHlwYW50czohMSx0b2tlbml6ZXI6bnVsbCx3YWxrVG9rZW5zOm51bGwseGh0bWw6ITF9fXIuZGVmYXVsdHM9ZSgpO2Z1bmN0aW9uIHQoZSl7cmV0dXJuIHVbZV19dmFyIG49L1smPD5cIiddLyxhPW5ldyBSZWdFeHAobi5zb3VyY2UsXCJnXCIpLGw9L1s8PlwiJ118Jig/ISgjXFxkezEsN318I1tYeF1bYS1mQS1GMC05XXsxLDZ9fFxcdyspOykvLG89bmV3IFJlZ0V4cChsLnNvdXJjZSxcImdcIiksdT17XCImXCI6XCImYW1wO1wiLFwiPFwiOlwiJmx0O1wiLFwiPlwiOlwiJmd0O1wiLCdcIic6XCImcXVvdDtcIixcIidcIjpcIiYjMzk7XCJ9O2Z1bmN0aW9uIGQoZSx1KXtpZih1KXtpZihuLnRlc3QoZSkpcmV0dXJuIGUucmVwbGFjZShhLHQpfWVsc2UgaWYobC50ZXN0KGUpKXJldHVybiBlLnJlcGxhY2Uobyx0KTtyZXR1cm4gZX12YXIgYz0vJigjKD86XFxkKyl8KD86I3hbMC05QS1GYS1mXSspfCg/OlxcdyspKTs/L2dpO2Z1bmN0aW9uIG0oZSl7cmV0dXJuIGUucmVwbGFjZShjLGZ1bmN0aW9uKGUsdSl7cmV0dXJuXCJjb2xvblwiPT09KHU9dS50b0xvd2VyQ2FzZSgpKT9cIjpcIjpcIiNcIj09PXUuY2hhckF0KDApP1wieFwiPT09dS5jaGFyQXQoMSk/U3RyaW5nLmZyb21DaGFyQ29kZShwYXJzZUludCh1LnN1YnN0cmluZygyKSwxNikpOlN0cmluZy5mcm9tQ2hhckNvZGUoK3Uuc3Vic3RyaW5nKDEpKTpcIlwifSl9dmFyIHA9LyhefFteXFxbXSlcXF4vZztmdW5jdGlvbiBoKHQsZSl7dD1cInN0cmluZ1wiPT10eXBlb2YgdD90OnQuc291cmNlLGU9ZXx8XCJcIjt2YXIgbj17cmVwbGFjZTpmdW5jdGlvbihlLHUpe3JldHVybiB1PSh1PXUuc291cmNlfHx1KS5yZXBsYWNlKHAsXCIkMVwiKSx0PXQucmVwbGFjZShlLHUpLG59LGdldFJlZ2V4OmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBSZWdFeHAodCxlKX19O3JldHVybiBufXZhciBGPS9bXlxcdzpdL2csaj0vXiR8XlthLXpdW2EtejAtOSsuLV0qOnxeWz8jXS9pO2Z1bmN0aW9uIGYoZSx1LHQpe2lmKGUpe3RyeXtuPWRlY29kZVVSSUNvbXBvbmVudChtKHQpKS5yZXBsYWNlKEYsXCJcIikudG9Mb3dlckNhc2UoKX1jYXRjaChlKXtyZXR1cm4gbnVsbH1pZigwPT09bi5pbmRleE9mKFwiamF2YXNjcmlwdDpcIil8fDA9PT1uLmluZGV4T2YoXCJ2YnNjcmlwdDpcIil8fDA9PT1uLmluZGV4T2YoXCJkYXRhOlwiKSlyZXR1cm4gbnVsbH12YXIgbjt1JiYhai50ZXN0KHQpJiYoZT10LGdbXCIgXCIrKG49dSldfHwoWi50ZXN0KG4pP2dbXCIgXCIrbl09bitcIi9cIjpnW1wiIFwiK25dPUUobixcIi9cIiwhMCkpLHU9LTE9PT0obj1nW1wiIFwiK25dKS5pbmRleE9mKFwiOlwiKSx0PVwiLy9cIj09PWUuc3Vic3RyaW5nKDAsMik/dT9lOm4ucmVwbGFjZShPLFwiJDFcIikrZTpcIi9cIj09PWUuY2hhckF0KDApP3U/ZTpuLnJlcGxhY2UocSxcIiQxXCIpK2U6bitlKTt0cnl7dD1lbmNvZGVVUkkodCkucmVwbGFjZSgvJTI1L2csXCIlXCIpfWNhdGNoKGUpe3JldHVybiBudWxsfXJldHVybiB0fXZhciBnPXt9LFo9L15bXjpdKzpcXC8qW14vXSokLyxPPS9eKFteOl0rOilbXFxzXFxTXSokLyxxPS9eKFteOl0rOlxcLypbXi9dKilbXFxzXFxTXSokLzt2YXIgaz17ZXhlYzpmdW5jdGlvbigpe319O2Z1bmN0aW9uIEMoZSx1KXt2YXIgdD1lLnJlcGxhY2UoL1xcfC9nLGZ1bmN0aW9uKGUsdSx0KXtmb3IodmFyIG49ITEscj11OzA8PS0tciYmXCJcXFxcXCI9PT10W3JdOyluPSFuO3JldHVybiBuP1wifFwiOlwiIHxcIn0pLnNwbGl0KC8gXFx8Lyksbj0wO2lmKHRbMF0udHJpbSgpfHx0LnNoaWZ0KCksMDx0Lmxlbmd0aCYmIXRbdC5sZW5ndGgtMV0udHJpbSgpJiZ0LnBvcCgpLHQubGVuZ3RoPnUpdC5zcGxpY2UodSk7ZWxzZSBmb3IoO3QubGVuZ3RoPHU7KXQucHVzaChcIlwiKTtmb3IoO248dC5sZW5ndGg7bisrKXRbbl09dFtuXS50cmltKCkucmVwbGFjZSgvXFxcXFxcfC9nLFwifFwiKTtyZXR1cm4gdH1mdW5jdGlvbiBFKGUsdSx0KXt2YXIgbj1lLmxlbmd0aDtpZigwPT09bilyZXR1cm5cIlwiO2Zvcih2YXIgcj0wO3I8bjspe3ZhciBpPWUuY2hhckF0KG4tci0xKTtpZigoaSE9PXV8fHQpJiYoaT09PXV8fCF0KSlicmVhaztyKyt9cmV0dXJuIGUuc2xpY2UoMCxuLXIpfWZ1bmN0aW9uIHgoZSx1LHQsbil7dmFyIHI9dS5ocmVmLHU9dS50aXRsZT9kKHUudGl0bGUpOm51bGwsaT1lWzFdLnJlcGxhY2UoL1xcXFwoW1xcW1xcXV0pL2csXCIkMVwiKTtyZXR1cm5cIiFcIiE9PWVbMF0uY2hhckF0KDApPyhuLnN0YXRlLmluTGluaz0hMCxlPXt0eXBlOlwibGlua1wiLHJhdzp0LGhyZWY6cix0aXRsZTp1LHRleHQ6aSx0b2tlbnM6bi5pbmxpbmVUb2tlbnMoaSl9LG4uc3RhdGUuaW5MaW5rPSExLGUpOnt0eXBlOlwiaW1hZ2VcIixyYXc6dCxocmVmOnIsdGl0bGU6dSx0ZXh0OmQoaSl9fXZhciBiPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlKXt0aGlzLm9wdGlvbnM9ZXx8ci5kZWZhdWx0c312YXIgdT1lLnByb3RvdHlwZTtyZXR1cm4gdS5zcGFjZT1mdW5jdGlvbihlKXtlPXRoaXMucnVsZXMuYmxvY2submV3bGluZS5leGVjKGUpO2lmKGUmJjA8ZVswXS5sZW5ndGgpcmV0dXJue3R5cGU6XCJzcGFjZVwiLHJhdzplWzBdfX0sdS5jb2RlPWZ1bmN0aW9uKGUpe3ZhciB1LGU9dGhpcy5ydWxlcy5ibG9jay5jb2RlLmV4ZWMoZSk7aWYoZSlyZXR1cm4gdT1lWzBdLnJlcGxhY2UoL14gezEsNH0vZ20sXCJcIikse3R5cGU6XCJjb2RlXCIscmF3OmVbMF0sY29kZUJsb2NrU3R5bGU6XCJpbmRlbnRlZFwiLHRleHQ6dGhpcy5vcHRpb25zLnBlZGFudGljP3U6RSh1LFwiXFxuXCIpfX0sdS5mZW5jZXM9ZnVuY3Rpb24oZSl7dmFyIHUsdCxuLHIsZT10aGlzLnJ1bGVzLmJsb2NrLmZlbmNlcy5leGVjKGUpO2lmKGUpcmV0dXJuIHU9ZVswXSx0PXUsbj1lWzNdfHxcIlwiLHQ9bnVsbD09PSh0PXUubWF0Y2goL14oXFxzKykoPzpgYGApLykpP246KHI9dFsxXSxuLnNwbGl0KFwiXFxuXCIpLm1hcChmdW5jdGlvbihlKXt2YXIgdT1lLm1hdGNoKC9eXFxzKy8pO3JldHVybiBudWxsIT09dSYmdVswXS5sZW5ndGg+PXIubGVuZ3RoP2Uuc2xpY2Uoci5sZW5ndGgpOmV9KS5qb2luKFwiXFxuXCIpKSx7dHlwZTpcImNvZGVcIixyYXc6dSxsYW5nOmVbMl0mJmVbMl0udHJpbSgpLnJlcGxhY2UodGhpcy5ydWxlcy5pbmxpbmUuX2VzY2FwZXMsXCIkMVwiKSx0ZXh0OnR9fSx1LmhlYWRpbmc9ZnVuY3Rpb24oZSl7dmFyIHUsdCxlPXRoaXMucnVsZXMuYmxvY2suaGVhZGluZy5leGVjKGUpO2lmKGUpcmV0dXJuIHU9ZVsyXS50cmltKCksLyMkLy50ZXN0KHUpJiYodD1FKHUsXCIjXCIpLCF0aGlzLm9wdGlvbnMucGVkYW50aWMmJnQmJiEvICQvLnRlc3QodCl8fCh1PXQudHJpbSgpKSkse3R5cGU6XCJoZWFkaW5nXCIscmF3OmVbMF0sZGVwdGg6ZVsxXS5sZW5ndGgsdGV4dDp1LHRva2Vuczp0aGlzLmxleGVyLmlubGluZSh1KX19LHUuaHI9ZnVuY3Rpb24oZSl7ZT10aGlzLnJ1bGVzLmJsb2NrLmhyLmV4ZWMoZSk7aWYoZSlyZXR1cm57dHlwZTpcImhyXCIscmF3OmVbMF19fSx1LmJsb2NrcXVvdGU9ZnVuY3Rpb24oZSl7dmFyIHUsdCxuLGU9dGhpcy5ydWxlcy5ibG9jay5ibG9ja3F1b3RlLmV4ZWMoZSk7aWYoZSlyZXR1cm4gdT1lWzBdLnJlcGxhY2UoL14gKj5bIFxcdF0/L2dtLFwiXCIpLHQ9dGhpcy5sZXhlci5zdGF0ZS50b3AsdGhpcy5sZXhlci5zdGF0ZS50b3A9ITAsbj10aGlzLmxleGVyLmJsb2NrVG9rZW5zKHUpLHRoaXMubGV4ZXIuc3RhdGUudG9wPXQse3R5cGU6XCJibG9ja3F1b3RlXCIscmF3OmVbMF0sdG9rZW5zOm4sdGV4dDp1fX0sdS5saXN0PWZ1bmN0aW9uKGUpe3ZhciB1PXRoaXMucnVsZXMuYmxvY2subGlzdC5leGVjKGUpO2lmKHUpe3ZhciB0LG4scixpLHMsYSxsLG8sRCxjLHAsaD0xPChmPXVbMV0udHJpbSgpKS5sZW5ndGgsRj17dHlwZTpcImxpc3RcIixyYXc6XCJcIixvcmRlcmVkOmgsc3RhcnQ6aD8rZi5zbGljZSgwLC0xKTpcIlwiLGxvb3NlOiExLGl0ZW1zOltdfSxmPWg/XCJcXFxcZHsxLDl9XFxcXFwiK2Yuc2xpY2UoLTEpOlwiXFxcXFwiK2Y7dGhpcy5vcHRpb25zLnBlZGFudGljJiYoZj1oP2Y6XCJbKistXVwiKTtmb3IodmFyIGc9bmV3IFJlZ0V4cChcIl4oIHswLDN9XCIrZitcIikoKD86W1xcdCBdW15cXFxcbl0qKT8oPzpcXFxcbnwkKSlcIik7ZSYmKHA9ITEsdT1nLmV4ZWMoZSkpJiYhdGhpcy5ydWxlcy5ibG9jay5oci50ZXN0KGUpOyl7aWYodD11WzBdLGU9ZS5zdWJzdHJpbmcodC5sZW5ndGgpLGw9dVsyXS5zcGxpdChcIlxcblwiLDEpWzBdLnJlcGxhY2UoL15cXHQrLyxmdW5jdGlvbihlKXtyZXR1cm5cIiBcIi5yZXBlYXQoMyplLmxlbmd0aCl9KSxvPWUuc3BsaXQoXCJcXG5cIiwxKVswXSx0aGlzLm9wdGlvbnMucGVkYW50aWM/KGk9MixjPWwudHJpbUxlZnQoKSk6KGk9dVsyXS5zZWFyY2goL1teIF0vKSxjPWwuc2xpY2UoaT00PGk/MTppKSxpKz11WzFdLmxlbmd0aCkscz0hMSwhbCYmL14gKiQvLnRlc3QobykmJih0Kz1vK1wiXFxuXCIsZT1lLnN1YnN0cmluZyhvLmxlbmd0aCsxKSxwPSEwKSwhcClmb3IodmFyIEE9bmV3IFJlZ0V4cChcIl4gezAsXCIrTWF0aC5taW4oMyxpLTEpK1wifSg/OlsqKy1dfFxcXFxkezEsOX1bLildKSgoPzpbIFxcdF1bXlxcXFxuXSopPyg/OlxcXFxufCQpKVwiKSxkPW5ldyBSZWdFeHAoXCJeIHswLFwiK01hdGgubWluKDMsaS0xKStcIn0oKD86LSAqKXszLH18KD86XyAqKXszLH18KD86XFxcXCogKil7Myx9KSg/OlxcXFxuK3wkKVwiKSxrPW5ldyBSZWdFeHAoXCJeIHswLFwiK01hdGgubWluKDMsaS0xKStcIn0oPzpgYGB8fn5+KVwiKSxDPW5ldyBSZWdFeHAoXCJeIHswLFwiK01hdGgubWluKDMsaS0xKStcIn0jXCIpO2UmJihvPUQ9ZS5zcGxpdChcIlxcblwiLDEpWzBdLHRoaXMub3B0aW9ucy5wZWRhbnRpYyYmKG89by5yZXBsYWNlKC9eIHsxLDR9KD89KCB7NH0pKlteIF0pL2csXCIgIFwiKSksIWsudGVzdChvKSkmJiFDLnRlc3QobykmJiFBLnRlc3QobykmJiFkLnRlc3QoZSk7KXtpZihvLnNlYXJjaCgvW14gXS8pPj1pfHwhby50cmltKCkpYys9XCJcXG5cIitvLnNsaWNlKGkpO2Vsc2V7aWYocylicmVhaztpZig0PD1sLnNlYXJjaCgvW14gXS8pKWJyZWFrO2lmKGsudGVzdChsKSlicmVhaztpZihDLnRlc3QobCkpYnJlYWs7aWYoZC50ZXN0KGwpKWJyZWFrO2MrPVwiXFxuXCIrb31zfHxvLnRyaW0oKXx8KHM9ITApLHQrPUQrXCJcXG5cIixlPWUuc3Vic3RyaW5nKEQubGVuZ3RoKzEpLGw9by5zbGljZShpKX1GLmxvb3NlfHwoYT9GLmxvb3NlPSEwOi9cXG4gKlxcbiAqJC8udGVzdCh0KSYmKGE9ITApKSx0aGlzLm9wdGlvbnMuZ2ZtJiYobj0vXlxcW1sgeFhdXFxdIC8uZXhlYyhjKSkmJihyPVwiWyBdIFwiIT09blswXSxjPWMucmVwbGFjZSgvXlxcW1sgeFhdXFxdICsvLFwiXCIpKSxGLml0ZW1zLnB1c2goe3R5cGU6XCJsaXN0X2l0ZW1cIixyYXc6dCx0YXNrOiEhbixjaGVja2VkOnIsbG9vc2U6ITEsdGV4dDpjfSksRi5yYXcrPXR9Ri5pdGVtc1tGLml0ZW1zLmxlbmd0aC0xXS5yYXc9dC50cmltUmlnaHQoKSxGLml0ZW1zW0YuaXRlbXMubGVuZ3RoLTFdLnRleHQ9Yy50cmltUmlnaHQoKSxGLnJhdz1GLnJhdy50cmltUmlnaHQoKTtmb3IodmFyIEUsbT1GLml0ZW1zLmxlbmd0aCx4PTA7eDxtO3grKyl0aGlzLmxleGVyLnN0YXRlLnRvcD0hMSxGLml0ZW1zW3hdLnRva2Vucz10aGlzLmxleGVyLmJsb2NrVG9rZW5zKEYuaXRlbXNbeF0udGV4dCxbXSksRi5sb29zZXx8KEU9MDwoRT1GLml0ZW1zW3hdLnRva2Vucy5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuXCJzcGFjZVwiPT09ZS50eXBlfSkpLmxlbmd0aCYmRS5zb21lKGZ1bmN0aW9uKGUpe3JldHVybi9cXG4uKlxcbi8udGVzdChlLnJhdyl9KSxGLmxvb3NlPUUpO2lmKEYubG9vc2UpZm9yKHg9MDt4PG07eCsrKUYuaXRlbXNbeF0ubG9vc2U9ITA7cmV0dXJuIEZ9fSx1Lmh0bWw9ZnVuY3Rpb24oZSl7dmFyIHUsZT10aGlzLnJ1bGVzLmJsb2NrLmh0bWwuZXhlYyhlKTtpZihlKXJldHVybiB1PXt0eXBlOlwiaHRtbFwiLGJsb2NrOiEwLHJhdzplWzBdLHByZTohdGhpcy5vcHRpb25zLnNhbml0aXplciYmKFwicHJlXCI9PT1lWzFdfHxcInNjcmlwdFwiPT09ZVsxXXx8XCJzdHlsZVwiPT09ZVsxXSksdGV4dDplWzBdfSx0aGlzLm9wdGlvbnMuc2FuaXRpemUmJihlPXRoaXMub3B0aW9ucy5zYW5pdGl6ZXI/dGhpcy5vcHRpb25zLnNhbml0aXplcihlWzBdKTpkKGVbMF0pLHUudHlwZT1cInBhcmFncmFwaFwiLHUudGV4dD1lLHUudG9rZW5zPXRoaXMubGV4ZXIuaW5saW5lKGUpKSx1fSx1LmRlZj1mdW5jdGlvbihlKXt2YXIgdSx0LG4sZT10aGlzLnJ1bGVzLmJsb2NrLmRlZi5leGVjKGUpO2lmKGUpcmV0dXJuIHU9ZVsxXS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1xccysvZyxcIiBcIiksdD1lWzJdP2VbMl0ucmVwbGFjZSgvXjwoLiopPiQvLFwiJDFcIikucmVwbGFjZSh0aGlzLnJ1bGVzLmlubGluZS5fZXNjYXBlcyxcIiQxXCIpOlwiXCIsbj1lWzNdJiZlWzNdLnN1YnN0cmluZygxLGVbM10ubGVuZ3RoLTEpLnJlcGxhY2UodGhpcy5ydWxlcy5pbmxpbmUuX2VzY2FwZXMsXCIkMVwiKSx7dHlwZTpcImRlZlwiLHRhZzp1LHJhdzplWzBdLGhyZWY6dCx0aXRsZTpufX0sdS50YWJsZT1mdW5jdGlvbihlKXtlPXRoaXMucnVsZXMuYmxvY2sudGFibGUuZXhlYyhlKTtpZihlKXt2YXIgdT17dHlwZTpcInRhYmxlXCIsaGVhZGVyOkMoZVsxXSkubWFwKGZ1bmN0aW9uKGUpe3JldHVybnt0ZXh0OmV9fSksYWxpZ246ZVsyXS5yZXBsYWNlKC9eICp8XFx8ICokL2csXCJcIikuc3BsaXQoLyAqXFx8ICovKSxyb3dzOmVbM10mJmVbM10udHJpbSgpP2VbM10ucmVwbGFjZSgvXFxuWyBcXHRdKiQvLFwiXCIpLnNwbGl0KFwiXFxuXCIpOltdfTtpZih1LmhlYWRlci5sZW5ndGg9PT11LmFsaWduLmxlbmd0aCl7dS5yYXc9ZVswXTtmb3IodmFyIHQsbixyLGk9dS5hbGlnbi5sZW5ndGgscz0wO3M8aTtzKyspL14gKi0rOiAqJC8udGVzdCh1LmFsaWduW3NdKT91LmFsaWduW3NdPVwicmlnaHRcIjovXiAqOi0rOiAqJC8udGVzdCh1LmFsaWduW3NdKT91LmFsaWduW3NdPVwiY2VudGVyXCI6L14gKjotKyAqJC8udGVzdCh1LmFsaWduW3NdKT91LmFsaWduW3NdPVwibGVmdFwiOnUuYWxpZ25bc109bnVsbDtmb3IoaT11LnJvd3MubGVuZ3RoLHM9MDtzPGk7cysrKXUucm93c1tzXT1DKHUucm93c1tzXSx1LmhlYWRlci5sZW5ndGgpLm1hcChmdW5jdGlvbihlKXtyZXR1cm57dGV4dDplfX0pO2ZvcihpPXUuaGVhZGVyLmxlbmd0aCx0PTA7dDxpO3QrKyl1LmhlYWRlclt0XS50b2tlbnM9dGhpcy5sZXhlci5pbmxpbmUodS5oZWFkZXJbdF0udGV4dCk7Zm9yKGk9dS5yb3dzLmxlbmd0aCx0PTA7dDxpO3QrKylmb3Iocj11LnJvd3NbdF0sbj0wO248ci5sZW5ndGg7bisrKXJbbl0udG9rZW5zPXRoaXMubGV4ZXIuaW5saW5lKHJbbl0udGV4dCk7cmV0dXJuIHV9fX0sdS5saGVhZGluZz1mdW5jdGlvbihlKXtlPXRoaXMucnVsZXMuYmxvY2subGhlYWRpbmcuZXhlYyhlKTtpZihlKXJldHVybnt0eXBlOlwiaGVhZGluZ1wiLHJhdzplWzBdLGRlcHRoOlwiPVwiPT09ZVsyXS5jaGFyQXQoMCk/MToyLHRleHQ6ZVsxXSx0b2tlbnM6dGhpcy5sZXhlci5pbmxpbmUoZVsxXSl9fSx1LnBhcmFncmFwaD1mdW5jdGlvbihlKXt2YXIgdSxlPXRoaXMucnVsZXMuYmxvY2sucGFyYWdyYXBoLmV4ZWMoZSk7aWYoZSlyZXR1cm4gdT1cIlxcblwiPT09ZVsxXS5jaGFyQXQoZVsxXS5sZW5ndGgtMSk/ZVsxXS5zbGljZSgwLC0xKTplWzFdLHt0eXBlOlwicGFyYWdyYXBoXCIscmF3OmVbMF0sdGV4dDp1LHRva2Vuczp0aGlzLmxleGVyLmlubGluZSh1KX19LHUudGV4dD1mdW5jdGlvbihlKXtlPXRoaXMucnVsZXMuYmxvY2sudGV4dC5leGVjKGUpO2lmKGUpcmV0dXJue3R5cGU6XCJ0ZXh0XCIscmF3OmVbMF0sdGV4dDplWzBdLHRva2Vuczp0aGlzLmxleGVyLmlubGluZShlWzBdKX19LHUuZXNjYXBlPWZ1bmN0aW9uKGUpe2U9dGhpcy5ydWxlcy5pbmxpbmUuZXNjYXBlLmV4ZWMoZSk7aWYoZSlyZXR1cm57dHlwZTpcImVzY2FwZVwiLHJhdzplWzBdLHRleHQ6ZChlWzFdKX19LHUudGFnPWZ1bmN0aW9uKGUpe2U9dGhpcy5ydWxlcy5pbmxpbmUudGFnLmV4ZWMoZSk7aWYoZSlyZXR1cm4hdGhpcy5sZXhlci5zdGF0ZS5pbkxpbmsmJi9ePGEgL2kudGVzdChlWzBdKT90aGlzLmxleGVyLnN0YXRlLmluTGluaz0hMDp0aGlzLmxleGVyLnN0YXRlLmluTGluayYmL148XFwvYT4vaS50ZXN0KGVbMF0pJiYodGhpcy5sZXhlci5zdGF0ZS5pbkxpbms9ITEpLCF0aGlzLmxleGVyLnN0YXRlLmluUmF3QmxvY2smJi9ePChwcmV8Y29kZXxrYmR8c2NyaXB0KShcXHN8PikvaS50ZXN0KGVbMF0pP3RoaXMubGV4ZXIuc3RhdGUuaW5SYXdCbG9jaz0hMDp0aGlzLmxleGVyLnN0YXRlLmluUmF3QmxvY2smJi9ePFxcLyhwcmV8Y29kZXxrYmR8c2NyaXB0KShcXHN8PikvaS50ZXN0KGVbMF0pJiYodGhpcy5sZXhlci5zdGF0ZS5pblJhd0Jsb2NrPSExKSx7dHlwZTp0aGlzLm9wdGlvbnMuc2FuaXRpemU/XCJ0ZXh0XCI6XCJodG1sXCIscmF3OmVbMF0saW5MaW5rOnRoaXMubGV4ZXIuc3RhdGUuaW5MaW5rLGluUmF3QmxvY2s6dGhpcy5sZXhlci5zdGF0ZS5pblJhd0Jsb2NrLGJsb2NrOiExLHRleHQ6dGhpcy5vcHRpb25zLnNhbml0aXplP3RoaXMub3B0aW9ucy5zYW5pdGl6ZXI/dGhpcy5vcHRpb25zLnNhbml0aXplcihlWzBdKTpkKGVbMF0pOmVbMF19fSx1Lmxpbms9ZnVuY3Rpb24oZSl7ZT10aGlzLnJ1bGVzLmlubGluZS5saW5rLmV4ZWMoZSk7aWYoZSl7dmFyIHU9ZVsyXS50cmltKCk7aWYoIXRoaXMub3B0aW9ucy5wZWRhbnRpYyYmL148Ly50ZXN0KHUpKXtpZighLz4kLy50ZXN0KHUpKXJldHVybjt2YXIgdD1FKHUuc2xpY2UoMCwtMSksXCJcXFxcXCIpO2lmKCh1Lmxlbmd0aC10Lmxlbmd0aCklMj09MClyZXR1cm59ZWxzZXt0PWZ1bmN0aW9uKGUsdSl7aWYoLTEhPT1lLmluZGV4T2YodVsxXSkpZm9yKHZhciB0PWUubGVuZ3RoLG49MCxyPTA7cjx0O3IrKylpZihcIlxcXFxcIj09PWVbcl0pcisrO2Vsc2UgaWYoZVtyXT09PXVbMF0pbisrO2Vsc2UgaWYoZVtyXT09PXVbMV0mJi0tbjwwKXJldHVybiByO3JldHVybi0xfShlWzJdLFwiKClcIik7LTE8dCYmKHI9KDA9PT1lWzBdLmluZGV4T2YoXCIhXCIpPzU6NCkrZVsxXS5sZW5ndGgrdCxlWzJdPWVbMl0uc3Vic3RyaW5nKDAsdCksZVswXT1lWzBdLnN1YnN0cmluZygwLHIpLnRyaW0oKSxlWzNdPVwiXCIpfXZhciBuLHQ9ZVsyXSxyPVwiXCI7cmV0dXJuIHRoaXMub3B0aW9ucy5wZWRhbnRpYz8obj0vXihbXidcIl0qW15cXHNdKVxccysoWydcIl0pKC4qKVxcMi8uZXhlYyh0KSkmJih0PW5bMV0scj1uWzNdKTpyPWVbM10/ZVszXS5zbGljZSgxLC0xKTpcIlwiLHQ9dC50cmltKCkseChlLHtocmVmOih0PS9ePC8udGVzdCh0KT90aGlzLm9wdGlvbnMucGVkYW50aWMmJiEvPiQvLnRlc3QodSk/dC5zbGljZSgxKTp0LnNsaWNlKDEsLTEpOnQpJiZ0LnJlcGxhY2UodGhpcy5ydWxlcy5pbmxpbmUuX2VzY2FwZXMsXCIkMVwiKSx0aXRsZTpyJiZyLnJlcGxhY2UodGhpcy5ydWxlcy5pbmxpbmUuX2VzY2FwZXMsXCIkMVwiKX0sZVswXSx0aGlzLmxleGVyKX19LHUucmVmbGluaz1mdW5jdGlvbihlLHUpe3ZhciB0O2lmKHQ9KHQ9dGhpcy5ydWxlcy5pbmxpbmUucmVmbGluay5leGVjKGUpKXx8dGhpcy5ydWxlcy5pbmxpbmUubm9saW5rLmV4ZWMoZSkpcmV0dXJuKGU9dVsoZT0odFsyXXx8dFsxXSkucmVwbGFjZSgvXFxzKy9nLFwiIFwiKSkudG9Mb3dlckNhc2UoKV0pP3godCxlLHRbMF0sdGhpcy5sZXhlcik6e3R5cGU6XCJ0ZXh0XCIscmF3OnU9dFswXS5jaGFyQXQoMCksdGV4dDp1fX0sdS5lbVN0cm9uZz1mdW5jdGlvbihlLHUsdCl7dm9pZCAwPT09dCYmKHQ9XCJcIik7dmFyIG49dGhpcy5ydWxlcy5pbmxpbmUuZW1TdHJvbmcubERlbGltLmV4ZWMoZSk7aWYobiYmKCFuWzNdfHwhdC5tYXRjaCgvKD86WzAtOUEtWmEtelxceEFBXFx4QjJcXHhCM1xceEI1XFx4QjlcXHhCQVxceEJDLVxceEJFXFx4QzAtXFx4RDZcXHhEOC1cXHhGNlxceEY4LVxcdTAyQzFcXHUwMkM2LVxcdTAyRDFcXHUwMkUwLVxcdTAyRTRcXHUwMkVDXFx1MDJFRVxcdTAzNzAtXFx1MDM3NFxcdTAzNzZcXHUwMzc3XFx1MDM3QS1cXHUwMzdEXFx1MDM3RlxcdTAzODZcXHUwMzg4LVxcdTAzOEFcXHUwMzhDXFx1MDM4RS1cXHUwM0ExXFx1MDNBMy1cXHUwM0Y1XFx1MDNGNy1cXHUwNDgxXFx1MDQ4QS1cXHUwNTJGXFx1MDUzMS1cXHUwNTU2XFx1MDU1OVxcdTA1NjAtXFx1MDU4OFxcdTA1RDAtXFx1MDVFQVxcdTA1RUYtXFx1MDVGMlxcdTA2MjAtXFx1MDY0QVxcdTA2NjAtXFx1MDY2OVxcdTA2NkVcXHUwNjZGXFx1MDY3MS1cXHUwNkQzXFx1MDZENVxcdTA2RTVcXHUwNkU2XFx1MDZFRS1cXHUwNkZDXFx1MDZGRlxcdTA3MTBcXHUwNzEyLVxcdTA3MkZcXHUwNzRELVxcdTA3QTVcXHUwN0IxXFx1MDdDMC1cXHUwN0VBXFx1MDdGNFxcdTA3RjVcXHUwN0ZBXFx1MDgwMC1cXHUwODE1XFx1MDgxQVxcdTA4MjRcXHUwODI4XFx1MDg0MC1cXHUwODU4XFx1MDg2MC1cXHUwODZBXFx1MDg3MC1cXHUwODg3XFx1MDg4OS1cXHUwODhFXFx1MDhBMC1cXHUwOEM5XFx1MDkwNC1cXHUwOTM5XFx1MDkzRFxcdTA5NTBcXHUwOTU4LVxcdTA5NjFcXHUwOTY2LVxcdTA5NkZcXHUwOTcxLVxcdTA5ODBcXHUwOTg1LVxcdTA5OENcXHUwOThGXFx1MDk5MFxcdTA5OTMtXFx1MDlBOFxcdTA5QUEtXFx1MDlCMFxcdTA5QjJcXHUwOUI2LVxcdTA5QjlcXHUwOUJEXFx1MDlDRVxcdTA5RENcXHUwOUREXFx1MDlERi1cXHUwOUUxXFx1MDlFNi1cXHUwOUYxXFx1MDlGNC1cXHUwOUY5XFx1MDlGQ1xcdTBBMDUtXFx1MEEwQVxcdTBBMEZcXHUwQTEwXFx1MEExMy1cXHUwQTI4XFx1MEEyQS1cXHUwQTMwXFx1MEEzMlxcdTBBMzNcXHUwQTM1XFx1MEEzNlxcdTBBMzhcXHUwQTM5XFx1MEE1OS1cXHUwQTVDXFx1MEE1RVxcdTBBNjYtXFx1MEE2RlxcdTBBNzItXFx1MEE3NFxcdTBBODUtXFx1MEE4RFxcdTBBOEYtXFx1MEE5MVxcdTBBOTMtXFx1MEFBOFxcdTBBQUEtXFx1MEFCMFxcdTBBQjJcXHUwQUIzXFx1MEFCNS1cXHUwQUI5XFx1MEFCRFxcdTBBRDBcXHUwQUUwXFx1MEFFMVxcdTBBRTYtXFx1MEFFRlxcdTBBRjlcXHUwQjA1LVxcdTBCMENcXHUwQjBGXFx1MEIxMFxcdTBCMTMtXFx1MEIyOFxcdTBCMkEtXFx1MEIzMFxcdTBCMzJcXHUwQjMzXFx1MEIzNS1cXHUwQjM5XFx1MEIzRFxcdTBCNUNcXHUwQjVEXFx1MEI1Ri1cXHUwQjYxXFx1MEI2Ni1cXHUwQjZGXFx1MEI3MS1cXHUwQjc3XFx1MEI4M1xcdTBCODUtXFx1MEI4QVxcdTBCOEUtXFx1MEI5MFxcdTBCOTItXFx1MEI5NVxcdTBCOTlcXHUwQjlBXFx1MEI5Q1xcdTBCOUVcXHUwQjlGXFx1MEJBM1xcdTBCQTRcXHUwQkE4LVxcdTBCQUFcXHUwQkFFLVxcdTBCQjlcXHUwQkQwXFx1MEJFNi1cXHUwQkYyXFx1MEMwNS1cXHUwQzBDXFx1MEMwRS1cXHUwQzEwXFx1MEMxMi1cXHUwQzI4XFx1MEMyQS1cXHUwQzM5XFx1MEMzRFxcdTBDNTgtXFx1MEM1QVxcdTBDNURcXHUwQzYwXFx1MEM2MVxcdTBDNjYtXFx1MEM2RlxcdTBDNzgtXFx1MEM3RVxcdTBDODBcXHUwQzg1LVxcdTBDOENcXHUwQzhFLVxcdTBDOTBcXHUwQzkyLVxcdTBDQThcXHUwQ0FBLVxcdTBDQjNcXHUwQ0I1LVxcdTBDQjlcXHUwQ0JEXFx1MENERFxcdTBDREVcXHUwQ0UwXFx1MENFMVxcdTBDRTYtXFx1MENFRlxcdTBDRjFcXHUwQ0YyXFx1MEQwNC1cXHUwRDBDXFx1MEQwRS1cXHUwRDEwXFx1MEQxMi1cXHUwRDNBXFx1MEQzRFxcdTBENEVcXHUwRDU0LVxcdTBENTZcXHUwRDU4LVxcdTBENjFcXHUwRDY2LVxcdTBENzhcXHUwRDdBLVxcdTBEN0ZcXHUwRDg1LVxcdTBEOTZcXHUwRDlBLVxcdTBEQjFcXHUwREIzLVxcdTBEQkJcXHUwREJEXFx1MERDMC1cXHUwREM2XFx1MERFNi1cXHUwREVGXFx1MEUwMS1cXHUwRTMwXFx1MEUzMlxcdTBFMzNcXHUwRTQwLVxcdTBFNDZcXHUwRTUwLVxcdTBFNTlcXHUwRTgxXFx1MEU4MlxcdTBFODRcXHUwRTg2LVxcdTBFOEFcXHUwRThDLVxcdTBFQTNcXHUwRUE1XFx1MEVBNy1cXHUwRUIwXFx1MEVCMlxcdTBFQjNcXHUwRUJEXFx1MEVDMC1cXHUwRUM0XFx1MEVDNlxcdTBFRDAtXFx1MEVEOVxcdTBFREMtXFx1MEVERlxcdTBGMDBcXHUwRjIwLVxcdTBGMzNcXHUwRjQwLVxcdTBGNDdcXHUwRjQ5LVxcdTBGNkNcXHUwRjg4LVxcdTBGOENcXHUxMDAwLVxcdTEwMkFcXHUxMDNGLVxcdTEwNDlcXHUxMDUwLVxcdTEwNTVcXHUxMDVBLVxcdTEwNURcXHUxMDYxXFx1MTA2NVxcdTEwNjZcXHUxMDZFLVxcdTEwNzBcXHUxMDc1LVxcdTEwODFcXHUxMDhFXFx1MTA5MC1cXHUxMDk5XFx1MTBBMC1cXHUxMEM1XFx1MTBDN1xcdTEwQ0RcXHUxMEQwLVxcdTEwRkFcXHUxMEZDLVxcdTEyNDhcXHUxMjRBLVxcdTEyNERcXHUxMjUwLVxcdTEyNTZcXHUxMjU4XFx1MTI1QS1cXHUxMjVEXFx1MTI2MC1cXHUxMjg4XFx1MTI4QS1cXHUxMjhEXFx1MTI5MC1cXHUxMkIwXFx1MTJCMi1cXHUxMkI1XFx1MTJCOC1cXHUxMkJFXFx1MTJDMFxcdTEyQzItXFx1MTJDNVxcdTEyQzgtXFx1MTJENlxcdTEyRDgtXFx1MTMxMFxcdTEzMTItXFx1MTMxNVxcdTEzMTgtXFx1MTM1QVxcdTEzNjktXFx1MTM3Q1xcdTEzODAtXFx1MTM4RlxcdTEzQTAtXFx1MTNGNVxcdTEzRjgtXFx1MTNGRFxcdTE0MDEtXFx1MTY2Q1xcdTE2NkYtXFx1MTY3RlxcdTE2ODEtXFx1MTY5QVxcdTE2QTAtXFx1MTZFQVxcdTE2RUUtXFx1MTZGOFxcdTE3MDAtXFx1MTcxMVxcdTE3MUYtXFx1MTczMVxcdTE3NDAtXFx1MTc1MVxcdTE3NjAtXFx1MTc2Q1xcdTE3NkUtXFx1MTc3MFxcdTE3ODAtXFx1MTdCM1xcdTE3RDdcXHUxN0RDXFx1MTdFMC1cXHUxN0U5XFx1MTdGMC1cXHUxN0Y5XFx1MTgxMC1cXHUxODE5XFx1MTgyMC1cXHUxODc4XFx1MTg4MC1cXHUxODg0XFx1MTg4Ny1cXHUxOEE4XFx1MThBQVxcdTE4QjAtXFx1MThGNVxcdTE5MDAtXFx1MTkxRVxcdTE5NDYtXFx1MTk2RFxcdTE5NzAtXFx1MTk3NFxcdTE5ODAtXFx1MTlBQlxcdTE5QjAtXFx1MTlDOVxcdTE5RDAtXFx1MTlEQVxcdTFBMDAtXFx1MUExNlxcdTFBMjAtXFx1MUE1NFxcdTFBODAtXFx1MUE4OVxcdTFBOTAtXFx1MUE5OVxcdTFBQTdcXHUxQjA1LVxcdTFCMzNcXHUxQjQ1LVxcdTFCNENcXHUxQjUwLVxcdTFCNTlcXHUxQjgzLVxcdTFCQTBcXHUxQkFFLVxcdTFCRTVcXHUxQzAwLVxcdTFDMjNcXHUxQzQwLVxcdTFDNDlcXHUxQzRELVxcdTFDN0RcXHUxQzgwLVxcdTFDODhcXHUxQzkwLVxcdTFDQkFcXHUxQ0JELVxcdTFDQkZcXHUxQ0U5LVxcdTFDRUNcXHUxQ0VFLVxcdTFDRjNcXHUxQ0Y1XFx1MUNGNlxcdTFDRkFcXHUxRDAwLVxcdTFEQkZcXHUxRTAwLVxcdTFGMTVcXHUxRjE4LVxcdTFGMURcXHUxRjIwLVxcdTFGNDVcXHUxRjQ4LVxcdTFGNERcXHUxRjUwLVxcdTFGNTdcXHUxRjU5XFx1MUY1QlxcdTFGNURcXHUxRjVGLVxcdTFGN0RcXHUxRjgwLVxcdTFGQjRcXHUxRkI2LVxcdTFGQkNcXHUxRkJFXFx1MUZDMi1cXHUxRkM0XFx1MUZDNi1cXHUxRkNDXFx1MUZEMC1cXHUxRkQzXFx1MUZENi1cXHUxRkRCXFx1MUZFMC1cXHUxRkVDXFx1MUZGMi1cXHUxRkY0XFx1MUZGNi1cXHUxRkZDXFx1MjA3MFxcdTIwNzFcXHUyMDc0LVxcdTIwNzlcXHUyMDdGLVxcdTIwODlcXHUyMDkwLVxcdTIwOUNcXHUyMTAyXFx1MjEwN1xcdTIxMEEtXFx1MjExM1xcdTIxMTVcXHUyMTE5LVxcdTIxMURcXHUyMTI0XFx1MjEyNlxcdTIxMjhcXHUyMTJBLVxcdTIxMkRcXHUyMTJGLVxcdTIxMzlcXHUyMTNDLVxcdTIxM0ZcXHUyMTQ1LVxcdTIxNDlcXHUyMTRFXFx1MjE1MC1cXHUyMTg5XFx1MjQ2MC1cXHUyNDlCXFx1MjRFQS1cXHUyNEZGXFx1Mjc3Ni1cXHUyNzkzXFx1MkMwMC1cXHUyQ0U0XFx1MkNFQi1cXHUyQ0VFXFx1MkNGMlxcdTJDRjNcXHUyQ0ZEXFx1MkQwMC1cXHUyRDI1XFx1MkQyN1xcdTJEMkRcXHUyRDMwLVxcdTJENjdcXHUyRDZGXFx1MkQ4MC1cXHUyRDk2XFx1MkRBMC1cXHUyREE2XFx1MkRBOC1cXHUyREFFXFx1MkRCMC1cXHUyREI2XFx1MkRCOC1cXHUyREJFXFx1MkRDMC1cXHUyREM2XFx1MkRDOC1cXHUyRENFXFx1MkREMC1cXHUyREQ2XFx1MkREOC1cXHUyRERFXFx1MkUyRlxcdTMwMDUtXFx1MzAwN1xcdTMwMjEtXFx1MzAyOVxcdTMwMzEtXFx1MzAzNVxcdTMwMzgtXFx1MzAzQ1xcdTMwNDEtXFx1MzA5NlxcdTMwOUQtXFx1MzA5RlxcdTMwQTEtXFx1MzBGQVxcdTMwRkMtXFx1MzBGRlxcdTMxMDUtXFx1MzEyRlxcdTMxMzEtXFx1MzE4RVxcdTMxOTItXFx1MzE5NVxcdTMxQTAtXFx1MzFCRlxcdTMxRjAtXFx1MzFGRlxcdTMyMjAtXFx1MzIyOVxcdTMyNDgtXFx1MzI0RlxcdTMyNTEtXFx1MzI1RlxcdTMyODAtXFx1MzI4OVxcdTMyQjEtXFx1MzJCRlxcdTM0MDAtXFx1NERCRlxcdTRFMDAtXFx1QTQ4Q1xcdUE0RDAtXFx1QTRGRFxcdUE1MDAtXFx1QTYwQ1xcdUE2MTAtXFx1QTYyQlxcdUE2NDAtXFx1QTY2RVxcdUE2N0YtXFx1QTY5RFxcdUE2QTAtXFx1QTZFRlxcdUE3MTctXFx1QTcxRlxcdUE3MjItXFx1QTc4OFxcdUE3OEItXFx1QTdDQVxcdUE3RDBcXHVBN0QxXFx1QTdEM1xcdUE3RDUtXFx1QTdEOVxcdUE3RjItXFx1QTgwMVxcdUE4MDMtXFx1QTgwNVxcdUE4MDctXFx1QTgwQVxcdUE4MEMtXFx1QTgyMlxcdUE4MzAtXFx1QTgzNVxcdUE4NDAtXFx1QTg3M1xcdUE4ODItXFx1QThCM1xcdUE4RDAtXFx1QThEOVxcdUE4RjItXFx1QThGN1xcdUE4RkJcXHVBOEZEXFx1QThGRVxcdUE5MDAtXFx1QTkyNVxcdUE5MzAtXFx1QTk0NlxcdUE5NjAtXFx1QTk3Q1xcdUE5ODQtXFx1QTlCMlxcdUE5Q0YtXFx1QTlEOVxcdUE5RTAtXFx1QTlFNFxcdUE5RTYtXFx1QTlGRVxcdUFBMDAtXFx1QUEyOFxcdUFBNDAtXFx1QUE0MlxcdUFBNDQtXFx1QUE0QlxcdUFBNTAtXFx1QUE1OVxcdUFBNjAtXFx1QUE3NlxcdUFBN0FcXHVBQTdFLVxcdUFBQUZcXHVBQUIxXFx1QUFCNVxcdUFBQjZcXHVBQUI5LVxcdUFBQkRcXHVBQUMwXFx1QUFDMlxcdUFBREItXFx1QUFERFxcdUFBRTAtXFx1QUFFQVxcdUFBRjItXFx1QUFGNFxcdUFCMDEtXFx1QUIwNlxcdUFCMDktXFx1QUIwRVxcdUFCMTEtXFx1QUIxNlxcdUFCMjAtXFx1QUIyNlxcdUFCMjgtXFx1QUIyRVxcdUFCMzAtXFx1QUI1QVxcdUFCNUMtXFx1QUI2OVxcdUFCNzAtXFx1QUJFMlxcdUFCRjAtXFx1QUJGOVxcdUFDMDAtXFx1RDdBM1xcdUQ3QjAtXFx1RDdDNlxcdUQ3Q0ItXFx1RDdGQlxcdUY5MDAtXFx1RkE2RFxcdUZBNzAtXFx1RkFEOVxcdUZCMDAtXFx1RkIwNlxcdUZCMTMtXFx1RkIxN1xcdUZCMURcXHVGQjFGLVxcdUZCMjhcXHVGQjJBLVxcdUZCMzZcXHVGQjM4LVxcdUZCM0NcXHVGQjNFXFx1RkI0MFxcdUZCNDFcXHVGQjQzXFx1RkI0NFxcdUZCNDYtXFx1RkJCMVxcdUZCRDMtXFx1RkQzRFxcdUZENTAtXFx1RkQ4RlxcdUZEOTItXFx1RkRDN1xcdUZERjAtXFx1RkRGQlxcdUZFNzAtXFx1RkU3NFxcdUZFNzYtXFx1RkVGQ1xcdUZGMTAtXFx1RkYxOVxcdUZGMjEtXFx1RkYzQVxcdUZGNDEtXFx1RkY1QVxcdUZGNjYtXFx1RkZCRVxcdUZGQzItXFx1RkZDN1xcdUZGQ0EtXFx1RkZDRlxcdUZGRDItXFx1RkZEN1xcdUZGREEtXFx1RkZEQ118XFx1RDgwMFtcXHVEQzAwLVxcdURDMEJcXHVEQzBELVxcdURDMjZcXHVEQzI4LVxcdURDM0FcXHVEQzNDXFx1REMzRFxcdURDM0YtXFx1REM0RFxcdURDNTAtXFx1REM1RFxcdURDODAtXFx1RENGQVxcdUREMDctXFx1REQzM1xcdURENDAtXFx1REQ3OFxcdUREOEFcXHVERDhCXFx1REU4MC1cXHVERTlDXFx1REVBMC1cXHVERUQwXFx1REVFMS1cXHVERUZCXFx1REYwMC1cXHVERjIzXFx1REYyRC1cXHVERjRBXFx1REY1MC1cXHVERjc1XFx1REY4MC1cXHVERjlEXFx1REZBMC1cXHVERkMzXFx1REZDOC1cXHVERkNGXFx1REZEMS1cXHVERkQ1XXxcXHVEODAxW1xcdURDMDAtXFx1REM5RFxcdURDQTAtXFx1RENBOVxcdURDQjAtXFx1RENEM1xcdURDRDgtXFx1RENGQlxcdUREMDAtXFx1REQyN1xcdUREMzAtXFx1REQ2M1xcdURENzAtXFx1REQ3QVxcdUREN0MtXFx1REQ4QVxcdUREOEMtXFx1REQ5MlxcdUREOTRcXHVERDk1XFx1REQ5Ny1cXHVEREExXFx1RERBMy1cXHVEREIxXFx1RERCMy1cXHVEREI5XFx1RERCQlxcdUREQkNcXHVERTAwLVxcdURGMzZcXHVERjQwLVxcdURGNTVcXHVERjYwLVxcdURGNjdcXHVERjgwLVxcdURGODVcXHVERjg3LVxcdURGQjBcXHVERkIyLVxcdURGQkFdfFxcdUQ4MDJbXFx1REMwMC1cXHVEQzA1XFx1REMwOFxcdURDMEEtXFx1REMzNVxcdURDMzdcXHVEQzM4XFx1REMzQ1xcdURDM0YtXFx1REM1NVxcdURDNTgtXFx1REM3NlxcdURDNzktXFx1REM5RVxcdURDQTctXFx1RENBRlxcdURDRTAtXFx1RENGMlxcdURDRjRcXHVEQ0Y1XFx1RENGQi1cXHVERDFCXFx1REQyMC1cXHVERDM5XFx1REQ4MC1cXHVEREI3XFx1RERCQy1cXHVERENGXFx1REREMi1cXHVERTAwXFx1REUxMC1cXHVERTEzXFx1REUxNS1cXHVERTE3XFx1REUxOS1cXHVERTM1XFx1REU0MC1cXHVERTQ4XFx1REU2MC1cXHVERTdFXFx1REU4MC1cXHVERTlGXFx1REVDMC1cXHVERUM3XFx1REVDOS1cXHVERUU0XFx1REVFQi1cXHVERUVGXFx1REYwMC1cXHVERjM1XFx1REY0MC1cXHVERjU1XFx1REY1OC1cXHVERjcyXFx1REY3OC1cXHVERjkxXFx1REZBOS1cXHVERkFGXXxcXHVEODAzW1xcdURDMDAtXFx1REM0OFxcdURDODAtXFx1RENCMlxcdURDQzAtXFx1RENGMlxcdURDRkEtXFx1REQyM1xcdUREMzAtXFx1REQzOVxcdURFNjAtXFx1REU3RVxcdURFODAtXFx1REVBOVxcdURFQjBcXHVERUIxXFx1REYwMC1cXHVERjI3XFx1REYzMC1cXHVERjQ1XFx1REY1MS1cXHVERjU0XFx1REY3MC1cXHVERjgxXFx1REZCMC1cXHVERkNCXFx1REZFMC1cXHVERkY2XXxcXHVEODA0W1xcdURDMDMtXFx1REMzN1xcdURDNTItXFx1REM2RlxcdURDNzFcXHVEQzcyXFx1REM3NVxcdURDODMtXFx1RENBRlxcdURDRDAtXFx1RENFOFxcdURDRjAtXFx1RENGOVxcdUREMDMtXFx1REQyNlxcdUREMzYtXFx1REQzRlxcdURENDRcXHVERDQ3XFx1REQ1MC1cXHVERDcyXFx1REQ3NlxcdUREODMtXFx1RERCMlxcdUREQzEtXFx1RERDNFxcdURERDAtXFx1REREQVxcdURERENcXHVEREUxLVxcdURERjRcXHVERTAwLVxcdURFMTFcXHVERTEzLVxcdURFMkJcXHVERTNGXFx1REU0MFxcdURFODAtXFx1REU4NlxcdURFODhcXHVERThBLVxcdURFOERcXHVERThGLVxcdURFOURcXHVERTlGLVxcdURFQThcXHVERUIwLVxcdURFREVcXHVERUYwLVxcdURFRjlcXHVERjA1LVxcdURGMENcXHVERjBGXFx1REYxMFxcdURGMTMtXFx1REYyOFxcdURGMkEtXFx1REYzMFxcdURGMzJcXHVERjMzXFx1REYzNS1cXHVERjM5XFx1REYzRFxcdURGNTBcXHVERjVELVxcdURGNjFdfFxcdUQ4MDVbXFx1REMwMC1cXHVEQzM0XFx1REM0Ny1cXHVEQzRBXFx1REM1MC1cXHVEQzU5XFx1REM1Ri1cXHVEQzYxXFx1REM4MC1cXHVEQ0FGXFx1RENDNFxcdURDQzVcXHVEQ0M3XFx1RENEMC1cXHVEQ0Q5XFx1REQ4MC1cXHVEREFFXFx1REREOC1cXHVERERCXFx1REUwMC1cXHVERTJGXFx1REU0NFxcdURFNTAtXFx1REU1OVxcdURFODAtXFx1REVBQVxcdURFQjhcXHVERUMwLVxcdURFQzlcXHVERjAwLVxcdURGMUFcXHVERjMwLVxcdURGM0JcXHVERjQwLVxcdURGNDZdfFxcdUQ4MDZbXFx1REMwMC1cXHVEQzJCXFx1RENBMC1cXHVEQ0YyXFx1RENGRi1cXHVERDA2XFx1REQwOVxcdUREMEMtXFx1REQxM1xcdUREMTVcXHVERDE2XFx1REQxOC1cXHVERDJGXFx1REQzRlxcdURENDFcXHVERDUwLVxcdURENTlcXHVEREEwLVxcdUREQTdcXHVEREFBLVxcdURERDBcXHVEREUxXFx1RERFM1xcdURFMDBcXHVERTBCLVxcdURFMzJcXHVERTNBXFx1REU1MFxcdURFNUMtXFx1REU4OVxcdURFOURcXHVERUIwLVxcdURFRjhdfFxcdUQ4MDdbXFx1REMwMC1cXHVEQzA4XFx1REMwQS1cXHVEQzJFXFx1REM0MFxcdURDNTAtXFx1REM2Q1xcdURDNzItXFx1REM4RlxcdUREMDAtXFx1REQwNlxcdUREMDhcXHVERDA5XFx1REQwQi1cXHVERDMwXFx1REQ0NlxcdURENTAtXFx1REQ1OVxcdURENjAtXFx1REQ2NVxcdURENjdcXHVERDY4XFx1REQ2QS1cXHVERDg5XFx1REQ5OFxcdUREQTAtXFx1RERBOVxcdURFRTAtXFx1REVGMlxcdURGMDJcXHVERjA0LVxcdURGMTBcXHVERjEyLVxcdURGMzNcXHVERjUwLVxcdURGNTlcXHVERkIwXFx1REZDMC1cXHVERkQ0XXxcXHVEODA4W1xcdURDMDAtXFx1REY5OV18XFx1RDgwOVtcXHVEQzAwLVxcdURDNkVcXHVEQzgwLVxcdURENDNdfFxcdUQ4MEJbXFx1REY5MC1cXHVERkYwXXxbXFx1RDgwQ1xcdUQ4MUMtXFx1RDgyMFxcdUQ4MjJcXHVEODQwLVxcdUQ4NjhcXHVEODZBLVxcdUQ4NkNcXHVEODZGLVxcdUQ4NzJcXHVEODc0LVxcdUQ4NzlcXHVEODgwLVxcdUQ4ODNcXHVEODg1LVxcdUQ4ODddW1xcdURDMDAtXFx1REZGRl18XFx1RDgwRFtcXHVEQzAwLVxcdURDMkZcXHVEQzQxLVxcdURDNDZdfFxcdUQ4MTFbXFx1REMwMC1cXHVERTQ2XXxcXHVEODFBW1xcdURDMDAtXFx1REUzOFxcdURFNDAtXFx1REU1RVxcdURFNjAtXFx1REU2OVxcdURFNzAtXFx1REVCRVxcdURFQzAtXFx1REVDOVxcdURFRDAtXFx1REVFRFxcdURGMDAtXFx1REYyRlxcdURGNDAtXFx1REY0M1xcdURGNTAtXFx1REY1OVxcdURGNUItXFx1REY2MVxcdURGNjMtXFx1REY3N1xcdURGN0QtXFx1REY4Rl18XFx1RDgxQltcXHVERTQwLVxcdURFOTZcXHVERjAwLVxcdURGNEFcXHVERjUwXFx1REY5My1cXHVERjlGXFx1REZFMFxcdURGRTFcXHVERkUzXXxcXHVEODIxW1xcdURDMDAtXFx1REZGN118XFx1RDgyM1tcXHVEQzAwLVxcdURDRDVcXHVERDAwLVxcdUREMDhdfFxcdUQ4MkJbXFx1REZGMC1cXHVERkYzXFx1REZGNS1cXHVERkZCXFx1REZGRFxcdURGRkVdfFxcdUQ4MkNbXFx1REMwMC1cXHVERDIyXFx1REQzMlxcdURENTAtXFx1REQ1MlxcdURENTVcXHVERDY0LVxcdURENjdcXHVERDcwLVxcdURFRkJdfFxcdUQ4MkZbXFx1REMwMC1cXHVEQzZBXFx1REM3MC1cXHVEQzdDXFx1REM4MC1cXHVEQzg4XFx1REM5MC1cXHVEQzk5XXxcXHVEODM0W1xcdURFQzAtXFx1REVEM1xcdURFRTAtXFx1REVGM1xcdURGNjAtXFx1REY3OF18XFx1RDgzNVtcXHVEQzAwLVxcdURDNTRcXHVEQzU2LVxcdURDOUNcXHVEQzlFXFx1REM5RlxcdURDQTJcXHVEQ0E1XFx1RENBNlxcdURDQTktXFx1RENBQ1xcdURDQUUtXFx1RENCOVxcdURDQkJcXHVEQ0JELVxcdURDQzNcXHVEQ0M1LVxcdUREMDVcXHVERDA3LVxcdUREMEFcXHVERDBELVxcdUREMTRcXHVERDE2LVxcdUREMUNcXHVERDFFLVxcdUREMzlcXHVERDNCLVxcdUREM0VcXHVERDQwLVxcdURENDRcXHVERDQ2XFx1REQ0QS1cXHVERDUwXFx1REQ1Mi1cXHVERUE1XFx1REVBOC1cXHVERUMwXFx1REVDMi1cXHVERURBXFx1REVEQy1cXHVERUZBXFx1REVGQy1cXHVERjE0XFx1REYxNi1cXHVERjM0XFx1REYzNi1cXHVERjRFXFx1REY1MC1cXHVERjZFXFx1REY3MC1cXHVERjg4XFx1REY4QS1cXHVERkE4XFx1REZBQS1cXHVERkMyXFx1REZDNC1cXHVERkNCXFx1REZDRS1cXHVERkZGXXxcXHVEODM3W1xcdURGMDAtXFx1REYxRVxcdURGMjUtXFx1REYyQV18XFx1RDgzOFtcXHVEQzMwLVxcdURDNkRcXHVERDAwLVxcdUREMkNcXHVERDM3LVxcdUREM0RcXHVERDQwLVxcdURENDlcXHVERDRFXFx1REU5MC1cXHVERUFEXFx1REVDMC1cXHVERUVCXFx1REVGMC1cXHVERUY5XXxcXHVEODM5W1xcdURDRDAtXFx1RENFQlxcdURDRjAtXFx1RENGOVxcdURGRTAtXFx1REZFNlxcdURGRTgtXFx1REZFQlxcdURGRURcXHVERkVFXFx1REZGMC1cXHVERkZFXXxcXHVEODNBW1xcdURDMDAtXFx1RENDNFxcdURDQzctXFx1RENDRlxcdUREMDAtXFx1REQ0M1xcdURENEJcXHVERDUwLVxcdURENTldfFxcdUQ4M0JbXFx1REM3MS1cXHVEQ0FCXFx1RENBRC1cXHVEQ0FGXFx1RENCMS1cXHVEQ0I0XFx1REQwMS1cXHVERDJEXFx1REQyRi1cXHVERDNEXFx1REUwMC1cXHVERTAzXFx1REUwNS1cXHVERTFGXFx1REUyMVxcdURFMjJcXHVERTI0XFx1REUyN1xcdURFMjktXFx1REUzMlxcdURFMzQtXFx1REUzN1xcdURFMzlcXHVERTNCXFx1REU0MlxcdURFNDdcXHVERTQ5XFx1REU0QlxcdURFNEQtXFx1REU0RlxcdURFNTFcXHVERTUyXFx1REU1NFxcdURFNTdcXHVERTU5XFx1REU1QlxcdURFNURcXHVERTVGXFx1REU2MVxcdURFNjJcXHVERTY0XFx1REU2Ny1cXHVERTZBXFx1REU2Qy1cXHVERTcyXFx1REU3NC1cXHVERTc3XFx1REU3OS1cXHVERTdDXFx1REU3RVxcdURFODAtXFx1REU4OVxcdURFOEItXFx1REU5QlxcdURFQTEtXFx1REVBM1xcdURFQTUtXFx1REVBOVxcdURFQUItXFx1REVCQl18XFx1RDgzQ1tcXHVERDAwLVxcdUREMENdfFxcdUQ4M0VbXFx1REZGMC1cXHVERkY5XXxcXHVEODY5W1xcdURDMDAtXFx1REVERlxcdURGMDAtXFx1REZGRl18XFx1RDg2RFtcXHVEQzAwLVxcdURGMzlcXHVERjQwLVxcdURGRkZdfFxcdUQ4NkVbXFx1REMwMC1cXHVEQzFEXFx1REMyMC1cXHVERkZGXXxcXHVEODczW1xcdURDMDAtXFx1REVBMVxcdURFQjAtXFx1REZGRl18XFx1RDg3QVtcXHVEQzAwLVxcdURGRTBdfFxcdUQ4N0VbXFx1REMwMC1cXHVERTFEXXxcXHVEODg0W1xcdURDMDAtXFx1REY0QVxcdURGNTAtXFx1REZGRl18XFx1RDg4OFtcXHVEQzAwLVxcdURGQUZdKS8pKSl7dmFyIHI9blsxXXx8blsyXXx8XCJcIjtpZighcnx8XCJcIj09PXR8fHRoaXMucnVsZXMuaW5saW5lLnB1bmN0dWF0aW9uLmV4ZWModCkpe3ZhciBpPW5bMF0ubGVuZ3RoLTEscz1pLGE9MCxsPVwiKlwiPT09blswXVswXT90aGlzLnJ1bGVzLmlubGluZS5lbVN0cm9uZy5yRGVsaW1Bc3Q6dGhpcy5ydWxlcy5pbmxpbmUuZW1TdHJvbmcuckRlbGltVW5kO2ZvcihsLmxhc3RJbmRleD0wLHU9dS5zbGljZSgtMSplLmxlbmd0aCtpKTtudWxsIT0obj1sLmV4ZWModSkpOyl7dmFyIG8sRD1uWzFdfHxuWzJdfHxuWzNdfHxuWzRdfHxuWzVdfHxuWzZdO2lmKEQpaWYobz1ELmxlbmd0aCxuWzNdfHxuWzRdKXMrPW87ZWxzZSBpZigobls1XXx8bls2XSkmJmklMyYmISgoaStvKSUzKSlhKz1vO2Vsc2UgaWYoISgwPChzLT1vKSkpcmV0dXJuIG89TWF0aC5taW4obyxvK3MrYSksRD1lLnNsaWNlKDAsaStuLmluZGV4KyhuWzBdLmxlbmd0aC1ELmxlbmd0aCkrbyksTWF0aC5taW4oaSxvKSUyPyhvPUQuc2xpY2UoMSwtMSkse3R5cGU6XCJlbVwiLHJhdzpELHRleHQ6byx0b2tlbnM6dGhpcy5sZXhlci5pbmxpbmVUb2tlbnMobyl9KToobz1ELnNsaWNlKDIsLTIpLHt0eXBlOlwic3Ryb25nXCIscmF3OkQsdGV4dDpvLHRva2Vuczp0aGlzLmxleGVyLmlubGluZVRva2VucyhvKX0pfX19fSx1LmNvZGVzcGFuPWZ1bmN0aW9uKGUpe3ZhciB1LHQsbixlPXRoaXMucnVsZXMuaW5saW5lLmNvZGUuZXhlYyhlKTtpZihlKXJldHVybiBuPWVbMl0ucmVwbGFjZSgvXFxuL2csXCIgXCIpLHU9L1teIF0vLnRlc3QobiksdD0vXiAvLnRlc3QobikmJi8gJC8udGVzdChuKSxuPWQobj11JiZ0P24uc3Vic3RyaW5nKDEsbi5sZW5ndGgtMSk6biwhMCkse3R5cGU6XCJjb2Rlc3BhblwiLHJhdzplWzBdLHRleHQ6bn19LHUuYnI9ZnVuY3Rpb24oZSl7ZT10aGlzLnJ1bGVzLmlubGluZS5ici5leGVjKGUpO2lmKGUpcmV0dXJue3R5cGU6XCJiclwiLHJhdzplWzBdfX0sdS5kZWw9ZnVuY3Rpb24oZSl7ZT10aGlzLnJ1bGVzLmlubGluZS5kZWwuZXhlYyhlKTtpZihlKXJldHVybnt0eXBlOlwiZGVsXCIscmF3OmVbMF0sdGV4dDplWzJdLHRva2Vuczp0aGlzLmxleGVyLmlubGluZVRva2VucyhlWzJdKX19LHUuYXV0b2xpbms9ZnVuY3Rpb24oZSx1KXt2YXIgdCxlPXRoaXMucnVsZXMuaW5saW5lLmF1dG9saW5rLmV4ZWMoZSk7aWYoZSlyZXR1cm4gdT1cIkBcIj09PWVbMl0/XCJtYWlsdG86XCIrKHQ9ZCh0aGlzLm9wdGlvbnMubWFuZ2xlP3UoZVsxXSk6ZVsxXSkpOnQ9ZChlWzFdKSx7dHlwZTpcImxpbmtcIixyYXc6ZVswXSx0ZXh0OnQsaHJlZjp1LHRva2Vuczpbe3R5cGU6XCJ0ZXh0XCIscmF3OnQsdGV4dDp0fV19fSx1LnVybD1mdW5jdGlvbihlLHUpe3ZhciB0LG4scixpO2lmKHQ9dGhpcy5ydWxlcy5pbmxpbmUudXJsLmV4ZWMoZSkpe2lmKFwiQFwiPT09dFsyXSlyPVwibWFpbHRvOlwiKyhuPWQodGhpcy5vcHRpb25zLm1hbmdsZT91KHRbMF0pOnRbMF0pKTtlbHNle2Zvcig7aT10WzBdLHRbMF09dGhpcy5ydWxlcy5pbmxpbmUuX2JhY2twZWRhbC5leGVjKHRbMF0pWzBdLGkhPT10WzBdOyk7bj1kKHRbMF0pLHI9XCJ3d3cuXCI9PT10WzFdP1wiaHR0cDovL1wiK3RbMF06dFswXX1yZXR1cm57dHlwZTpcImxpbmtcIixyYXc6dFswXSx0ZXh0Om4saHJlZjpyLHRva2Vuczpbe3R5cGU6XCJ0ZXh0XCIscmF3Om4sdGV4dDpufV19fX0sdS5pbmxpbmVUZXh0PWZ1bmN0aW9uKGUsdSl7ZT10aGlzLnJ1bGVzLmlubGluZS50ZXh0LmV4ZWMoZSk7aWYoZSlyZXR1cm4gdT10aGlzLmxleGVyLnN0YXRlLmluUmF3QmxvY2s/dGhpcy5vcHRpb25zLnNhbml0aXplP3RoaXMub3B0aW9ucy5zYW5pdGl6ZXI/dGhpcy5vcHRpb25zLnNhbml0aXplcihlWzBdKTpkKGVbMF0pOmVbMF06ZCh0aGlzLm9wdGlvbnMuc21hcnR5cGFudHM/dShlWzBdKTplWzBdKSx7dHlwZTpcInRleHRcIixyYXc6ZVswXSx0ZXh0OnV9fSxlfSgpLEI9e25ld2xpbmU6L14oPzogKig/OlxcbnwkKSkrLyxjb2RlOi9eKCB7NH1bXlxcbl0rKD86XFxuKD86ICooPzpcXG58JCkpKik/KSsvLGZlbmNlczovXiB7MCwzfShgezMsfSg/PVteYFxcbl0qKD86XFxufCQpKXx+ezMsfSkoW15cXG5dKikoPzpcXG58JCkoPzp8KFtcXHNcXFNdKj8pKD86XFxufCQpKSg/OiB7MCwzfVxcMVt+YF0qICooPz1cXG58JCl8JCkvLGhyOi9eIHswLDN9KCg/Oi1bXFx0IF0qKXszLH18KD86X1sgXFx0XSopezMsfXwoPzpcXCpbIFxcdF0qKXszLH0pKD86XFxuK3wkKS8saGVhZGluZzovXiB7MCwzfSgjezEsNn0pKD89XFxzfCQpKC4qKSg/Olxcbit8JCkvLGJsb2NrcXVvdGU6L14oIHswLDN9PiA/KHBhcmFncmFwaHxbXlxcbl0qKSg/OlxcbnwkKSkrLyxsaXN0Oi9eKCB7MCwzfWJ1bGwpKFsgXFx0XVteXFxuXSs/KT8oPzpcXG58JCkvLGh0bWw6XCJeIHswLDN9KD86PChzY3JpcHR8cHJlfHN0eWxlfHRleHRhcmVhKVtcXFxccz5dW1xcXFxzXFxcXFNdKj8oPzo8L1xcXFwxPlteXFxcXG5dKlxcXFxuK3wkKXxjb21tZW50W15cXFxcbl0qKFxcXFxuK3wkKXw8XFxcXD9bXFxcXHNcXFxcU10qPyg/OlxcXFw/PlxcXFxuKnwkKXw8IVtBLVpdW1xcXFxzXFxcXFNdKj8oPzo+XFxcXG4qfCQpfDwhXFxcXFtDREFUQVxcXFxbW1xcXFxzXFxcXFNdKj8oPzpcXFxcXVxcXFxdPlxcXFxuKnwkKXw8Lz8odGFnKSg/OiArfFxcXFxufC8/PilbXFxcXHNcXFxcU10qPyg/Oig/OlxcXFxuICopK1xcXFxufCQpfDwoPyFzY3JpcHR8cHJlfHN0eWxlfHRleHRhcmVhKShbYS16XVtcXFxcdy1dKikoPzphdHRyaWJ1dGUpKj8gKi8/Pig/PVsgXFxcXHRdKig/OlxcXFxufCQpKVtcXFxcc1xcXFxTXSo/KD86KD86XFxcXG4gKikrXFxcXG58JCl8PC8oPyFzY3JpcHR8cHJlfHN0eWxlfHRleHRhcmVhKVthLXpdW1xcXFx3LV0qXFxcXHMqPig/PVsgXFxcXHRdKig/OlxcXFxufCQpKVtcXFxcc1xcXFxTXSo/KD86KD86XFxcXG4gKikrXFxcXG58JCkpXCIsZGVmOi9eIHswLDN9XFxbKGxhYmVsKVxcXTogKig/OlxcbiAqKT8oW148XFxzXVteXFxzXSp8PC4qPz4pKD86KD86ICsoPzpcXG4gKik/fCAqXFxuICopKHRpdGxlKSk/ICooPzpcXG4rfCQpLyx0YWJsZTprLGxoZWFkaW5nOi9eKCg/Oig/IV5idWxsICkufFxcbig/IVxcbnxidWxsICkpKz8pXFxuIHswLDN9KD0rfC0rKSAqKD86XFxuK3wkKS8sX3BhcmFncmFwaDovXihbXlxcbl0rKD86XFxuKD8haHJ8aGVhZGluZ3xsaGVhZGluZ3xibG9ja3F1b3RlfGZlbmNlc3xsaXN0fGh0bWx8dGFibGV8ICtcXG4pW15cXG5dKykqKS8sdGV4dDovXlteXFxuXSsvLF9sYWJlbDovKD8hXFxzKlxcXSkoPzpcXFxcLnxbXlxcW1xcXVxcXFxdKSsvLF90aXRsZTovKD86XCIoPzpcXFxcXCI/fFteXCJcXFxcXSkqXCJ8J1teJ1xcbl0qKD86XFxuW14nXFxuXSspKlxcbj8nfFxcKFteKCldKlxcKSkvfSx3PShCLmRlZj1oKEIuZGVmKS5yZXBsYWNlKFwibGFiZWxcIixCLl9sYWJlbCkucmVwbGFjZShcInRpdGxlXCIsQi5fdGl0bGUpLmdldFJlZ2V4KCksQi5idWxsZXQ9Lyg/OlsqKy1dfFxcZHsxLDl9Wy4pXSkvLEIubGlzdEl0ZW1TdGFydD1oKC9eKCAqKShidWxsKSAqLykucmVwbGFjZShcImJ1bGxcIixCLmJ1bGxldCkuZ2V0UmVnZXgoKSxCLmxpc3Q9aChCLmxpc3QpLnJlcGxhY2UoL2J1bGwvZyxCLmJ1bGxldCkucmVwbGFjZShcImhyXCIsXCJcXFxcbisoPz1cXFxcMT8oPzooPzotICopezMsfXwoPzpfICopezMsfXwoPzpcXFxcKiAqKXszLH0pKD86XFxcXG4rfCQpKVwiKS5yZXBsYWNlKFwiZGVmXCIsXCJcXFxcbisoPz1cIitCLmRlZi5zb3VyY2UrXCIpXCIpLmdldFJlZ2V4KCksQi5fdGFnPVwiYWRkcmVzc3xhcnRpY2xlfGFzaWRlfGJhc2V8YmFzZWZvbnR8YmxvY2txdW90ZXxib2R5fGNhcHRpb258Y2VudGVyfGNvbHxjb2xncm91cHxkZHxkZXRhaWxzfGRpYWxvZ3xkaXJ8ZGl2fGRsfGR0fGZpZWxkc2V0fGZpZ2NhcHRpb258ZmlndXJlfGZvb3Rlcnxmb3JtfGZyYW1lfGZyYW1lc2V0fGhbMS02XXxoZWFkfGhlYWRlcnxocnxodG1sfGlmcmFtZXxsZWdlbmR8bGl8bGlua3xtYWlufG1lbnV8bWVudWl0ZW18bWV0YXxuYXZ8bm9mcmFtZXN8b2x8b3B0Z3JvdXB8b3B0aW9ufHB8cGFyYW18c2VjdGlvbnxzb3VyY2V8c3VtbWFyeXx0YWJsZXx0Ym9keXx0ZHx0Zm9vdHx0aHx0aGVhZHx0aXRsZXx0cnx0cmFja3x1bFwiLEIuX2NvbW1lbnQ9LzwhLS0oPyEtPz4pW1xcc1xcU10qPyg/Oi0tPnwkKS8sQi5odG1sPWgoQi5odG1sLFwiaVwiKS5yZXBsYWNlKFwiY29tbWVudFwiLEIuX2NvbW1lbnQpLnJlcGxhY2UoXCJ0YWdcIixCLl90YWcpLnJlcGxhY2UoXCJhdHRyaWJ1dGVcIiwvICtbYS16QS1aOl9dW1xcdy46LV0qKD86ICo9ICpcIlteXCJcXG5dKlwifCAqPSAqJ1teJ1xcbl0qJ3wgKj0gKlteXFxzXCInPTw+YF0rKT8vKS5nZXRSZWdleCgpLEIubGhlYWRpbmc9aChCLmxoZWFkaW5nKS5yZXBsYWNlKC9idWxsL2csQi5idWxsZXQpLmdldFJlZ2V4KCksQi5wYXJhZ3JhcGg9aChCLl9wYXJhZ3JhcGgpLnJlcGxhY2UoXCJoclwiLEIuaHIpLnJlcGxhY2UoXCJoZWFkaW5nXCIsXCIgezAsM30jezEsNn0gXCIpLnJlcGxhY2UoXCJ8bGhlYWRpbmdcIixcIlwiKS5yZXBsYWNlKFwifHRhYmxlXCIsXCJcIikucmVwbGFjZShcImJsb2NrcXVvdGVcIixcIiB7MCwzfT5cIikucmVwbGFjZShcImZlbmNlc1wiLFwiIHswLDN9KD86YHszLH0oPz1bXmBcXFxcbl0qXFxcXG4pfH57Myx9KVteXFxcXG5dKlxcXFxuXCIpLnJlcGxhY2UoXCJsaXN0XCIsXCIgezAsM30oPzpbKistXXwxWy4pXSkgXCIpLnJlcGxhY2UoXCJodG1sXCIsXCI8Lz8oPzp0YWcpKD86ICt8XFxcXG58Lz8+KXw8KD86c2NyaXB0fHByZXxzdHlsZXx0ZXh0YXJlYXwhLS0pXCIpLnJlcGxhY2UoXCJ0YWdcIixCLl90YWcpLmdldFJlZ2V4KCksQi5ibG9ja3F1b3RlPWgoQi5ibG9ja3F1b3RlKS5yZXBsYWNlKFwicGFyYWdyYXBoXCIsQi5wYXJhZ3JhcGgpLmdldFJlZ2V4KCksQi5ub3JtYWw9QSh7fSxCKSxCLmdmbT1BKHt9LEIubm9ybWFsLHt0YWJsZTpcIl4gKihbXlxcXFxuIF0uKlxcXFx8LiopXFxcXG4gezAsM30oPzpcXFxcfCAqKT8oOj8tKzo/ICooPzpcXFxcfCAqOj8tKzo/ICopKikoPzpcXFxcfCAqKT8oPzpcXFxcbigoPzooPyEgKlxcXFxufGhyfGhlYWRpbmd8YmxvY2txdW90ZXxjb2RlfGZlbmNlc3xsaXN0fGh0bWwpLiooPzpcXFxcbnwkKSkqKVxcXFxuKnwkKVwifSksQi5nZm0udGFibGU9aChCLmdmbS50YWJsZSkucmVwbGFjZShcImhyXCIsQi5ocikucmVwbGFjZShcImhlYWRpbmdcIixcIiB7MCwzfSN7MSw2fSBcIikucmVwbGFjZShcImJsb2NrcXVvdGVcIixcIiB7MCwzfT5cIikucmVwbGFjZShcImNvZGVcIixcIiB7NH1bXlxcXFxuXVwiKS5yZXBsYWNlKFwiZmVuY2VzXCIsXCIgezAsM30oPzpgezMsfSg/PVteYFxcXFxuXSpcXFxcbil8fnszLH0pW15cXFxcbl0qXFxcXG5cIikucmVwbGFjZShcImxpc3RcIixcIiB7MCwzfSg/OlsqKy1dfDFbLildKSBcIikucmVwbGFjZShcImh0bWxcIixcIjwvPyg/OnRhZykoPzogK3xcXFxcbnwvPz4pfDwoPzpzY3JpcHR8cHJlfHN0eWxlfHRleHRhcmVhfCEtLSlcIikucmVwbGFjZShcInRhZ1wiLEIuX3RhZykuZ2V0UmVnZXgoKSxCLmdmbS5wYXJhZ3JhcGg9aChCLl9wYXJhZ3JhcGgpLnJlcGxhY2UoXCJoclwiLEIuaHIpLnJlcGxhY2UoXCJoZWFkaW5nXCIsXCIgezAsM30jezEsNn0gXCIpLnJlcGxhY2UoXCJ8bGhlYWRpbmdcIixcIlwiKS5yZXBsYWNlKFwidGFibGVcIixCLmdmbS50YWJsZSkucmVwbGFjZShcImJsb2NrcXVvdGVcIixcIiB7MCwzfT5cIikucmVwbGFjZShcImZlbmNlc1wiLFwiIHswLDN9KD86YHszLH0oPz1bXmBcXFxcbl0qXFxcXG4pfH57Myx9KVteXFxcXG5dKlxcXFxuXCIpLnJlcGxhY2UoXCJsaXN0XCIsXCIgezAsM30oPzpbKistXXwxWy4pXSkgXCIpLnJlcGxhY2UoXCJodG1sXCIsXCI8Lz8oPzp0YWcpKD86ICt8XFxcXG58Lz8+KXw8KD86c2NyaXB0fHByZXxzdHlsZXx0ZXh0YXJlYXwhLS0pXCIpLnJlcGxhY2UoXCJ0YWdcIixCLl90YWcpLmdldFJlZ2V4KCksQi5wZWRhbnRpYz1BKHt9LEIubm9ybWFsLHtodG1sOmgoXCJeICooPzpjb21tZW50ICooPzpcXFxcbnxcXFxccyokKXw8KHRhZylbXFxcXHNcXFxcU10rPzwvXFxcXDE+ICooPzpcXFxcbnsyLH18XFxcXHMqJCl8PHRhZyg/OlxcXCJbXlxcXCJdKlxcXCJ8J1teJ10qJ3xcXFxcc1teJ1xcXCIvPlxcXFxzXSopKj8vPz4gKig/OlxcXFxuezIsfXxcXFxccyokKSlcIikucmVwbGFjZShcImNvbW1lbnRcIixCLl9jb21tZW50KS5yZXBsYWNlKC90YWcvZyxcIig/ISg/OmF8ZW18c3Ryb25nfHNtYWxsfHN8Y2l0ZXxxfGRmbnxhYmJyfGRhdGF8dGltZXxjb2RlfHZhcnxzYW1wfGtiZHxzdWJ8c3VwfGl8Ynx1fG1hcmt8cnVieXxydHxycHxiZGl8YmRvfHNwYW58YnJ8d2JyfGluc3xkZWx8aW1nKVxcXFxiKVxcXFx3Kyg/ITp8W15cXFxcd1xcXFxzQF0qQClcXFxcYlwiKS5nZXRSZWdleCgpLGRlZjovXiAqXFxbKFteXFxdXSspXFxdOiAqPD8oW15cXHM+XSspPj8oPzogKyhbXCIoXVteXFxuXStbXCIpXSkpPyAqKD86XFxuK3wkKS8saGVhZGluZzovXigjezEsNn0pKC4qKSg/Olxcbit8JCkvLGZlbmNlczprLGxoZWFkaW5nOi9eKC4rPylcXG4gezAsM30oPSt8LSspICooPzpcXG4rfCQpLyxwYXJhZ3JhcGg6aChCLm5vcm1hbC5fcGFyYWdyYXBoKS5yZXBsYWNlKFwiaHJcIixCLmhyKS5yZXBsYWNlKFwiaGVhZGluZ1wiLFwiICojezEsNn0gKlteXFxuXVwiKS5yZXBsYWNlKFwibGhlYWRpbmdcIixCLmxoZWFkaW5nKS5yZXBsYWNlKFwiYmxvY2txdW90ZVwiLFwiIHswLDN9PlwiKS5yZXBsYWNlKFwifGZlbmNlc1wiLFwiXCIpLnJlcGxhY2UoXCJ8bGlzdFwiLFwiXCIpLnJlcGxhY2UoXCJ8aHRtbFwiLFwiXCIpLmdldFJlZ2V4KCl9KSx7ZXNjYXBlOi9eXFxcXChbIVwiIyQlJicoKSorLFxcLS4vOjs8PT4/QFxcW1xcXVxcXFxeX2B7fH1+XSkvLGF1dG9saW5rOi9ePChzY2hlbWU6W15cXHNcXHgwMC1cXHgxZjw+XSp8ZW1haWwpPi8sdXJsOmssdGFnOlwiXmNvbW1lbnR8XjwvW2EtekEtWl1bXFxcXHc6LV0qXFxcXHMqPnxePFthLXpBLVpdW1xcXFx3LV0qKD86YXR0cmlidXRlKSo/XFxcXHMqLz8+fF48XFxcXD9bXFxcXHNcXFxcU10qP1xcXFw/PnxePCFbYS16QS1aXStcXFxcc1tcXFxcc1xcXFxTXSo/PnxePCFcXFxcW0NEQVRBXFxcXFtbXFxcXHNcXFxcU10qP1xcXFxdXFxcXF0+XCIsbGluazovXiE/XFxbKGxhYmVsKVxcXVxcKFxccyooaHJlZikoPzpcXHMrKHRpdGxlKSk/XFxzKlxcKS8scmVmbGluazovXiE/XFxbKGxhYmVsKVxcXVxcWyhyZWYpXFxdLyxub2xpbms6L14hP1xcWyhyZWYpXFxdKD86XFxbXFxdKT8vLHJlZmxpbmtTZWFyY2g6XCJyZWZsaW5rfG5vbGluayg/IVxcXFwoKVwiLGVtU3Ryb25nOntsRGVsaW06L14oPzpcXCorKD86KFtwdW5jdF9dKXxbXlxccypdKSl8Xl8rKD86KFtwdW5jdCpdKXwoW15cXHNfXSkpLyxyRGVsaW1Bc3Q6L14oPzpbXl8qXFxcXF18XFxcXC4pKj9cXF9cXF8oPzpbXl8qXFxcXF18XFxcXC4pKj9cXCooPzpbXl8qXFxcXF18XFxcXC4pKj8oPz1cXF9cXF8pfCg/OlteKlxcXFxdfFxcXFwuKSsoPz1bXipdKXxbcHVuY3RfXShcXCorKSg/PVtcXHNdfCQpfCg/OltecHVuY3QqX1xcc1xcXFxdfFxcXFwuKShcXCorKSg/PVtwdW5jdF9cXHNdfCQpfFtwdW5jdF9cXHNdKFxcKispKD89W15wdW5jdCpfXFxzXSl8W1xcc10oXFwqKykoPz1bcHVuY3RfXSl8W3B1bmN0X10oXFwqKykoPz1bcHVuY3RfXSl8KD86W15wdW5jdCpfXFxzXFxcXF18XFxcXC4pKFxcKispKD89W15wdW5jdCpfXFxzXSkvLHJEZWxpbVVuZDovXig/OlteXypcXFxcXXxcXFxcLikqP1xcKlxcKig/OlteXypcXFxcXXxcXFxcLikqP1xcXyg/OlteXypcXFxcXXxcXFxcLikqPyg/PVxcKlxcKil8KD86W15fXFxcXF18XFxcXC4pKyg/PVteX10pfFtwdW5jdCpdKFxcXyspKD89W1xcc118JCl8KD86W15wdW5jdCpfXFxzXFxcXF18XFxcXC4pKFxcXyspKD89W3B1bmN0Klxcc118JCl8W3B1bmN0Klxcc10oXFxfKykoPz1bXnB1bmN0Kl9cXHNdKXxbXFxzXShcXF8rKSg/PVtwdW5jdCpdKXxbcHVuY3QqXShcXF8rKSg/PVtwdW5jdCpdKS99LGNvZGU6L14oYCspKFteYF18W15gXVtcXHNcXFNdKj9bXmBdKVxcMSg/IWApLyxicjovXiggezIsfXxcXFxcKVxcbig/IVxccyokKS8sZGVsOmssdGV4dDovXihgK3xbXmBdKSg/Oig/PSB7Mix9XFxuKXxbXFxzXFxTXSo/KD86KD89W1xcXFw8IVxcW2AqX118XFxiX3wkKXxbXiBdKD89IHsyLH1cXG4pKSkvLHB1bmN0dWF0aW9uOi9eKFtcXHNwdW5jdHVhdGlvbl0pL30pO2Z1bmN0aW9uIFAoZSl7cmV0dXJuIGUucmVwbGFjZSgvLS0tL2csXCLigJRcIikucmVwbGFjZSgvLS0vZyxcIuKAk1wiKS5yZXBsYWNlKC8oXnxbLVxcdTIwMTQvKFxcW3tcIlxcc10pJy9nLFwiJDHigJhcIikucmVwbGFjZSgvJy9nLFwi4oCZXCIpLnJlcGxhY2UoLyhefFstXFx1MjAxNC8oXFxbe1xcdTIwMThcXHNdKVwiL2csXCIkMeKAnFwiKS5yZXBsYWNlKC9cIi9nLFwi4oCdXCIpLnJlcGxhY2UoL1xcLnszfS9nLFwi4oCmXCIpfWZ1bmN0aW9uIHYoZSl7Zm9yKHZhciB1LHQ9XCJcIixuPWUubGVuZ3RoLHI9MDtyPG47cisrKXU9ZS5jaGFyQ29kZUF0KHIpLHQrPVwiJiNcIisodT0uNTxNYXRoLnJhbmRvbSgpP1wieFwiK3UudG9TdHJpbmcoMTYpOnUpK1wiO1wiO3JldHVybiB0fXcuX3VjX3B1bmN0dWF0aW9uPVwiXFxcXHUwMEExXFxcXHUwMEE3XFxcXHUwMEFCXFxcXHUwMEI2XFxcXHUwMEI3XFxcXHUwMEJCXFxcXHUwMEJGXFxcXHUwMzdFXFxcXHUwMzg3XFxcXHUwNTVBLVxcXFx1MDU1RlxcXFx1MDU4OVxcXFx1MDU4QVxcXFx1MDVCRVxcXFx1MDVDMFxcXFx1MDVDM1xcXFx1MDVDNlxcXFx1MDVGM1xcXFx1MDVGNFxcXFx1MDYwOVxcXFx1MDYwQVxcXFx1MDYwQ1xcXFx1MDYwRFxcXFx1MDYxQlxcXFx1MDYxRVxcXFx1MDYxRlxcXFx1MDY2QS1cXFxcdTA2NkRcXFxcdTA2RDRcXFxcdTA3MDAtXFxcXHUwNzBEXFxcXHUwN0Y3LVxcXFx1MDdGOVxcXFx1MDgzMC1cXFxcdTA4M0VcXFxcdTA4NUVcXFxcdTA5NjRcXFxcdTA5NjVcXFxcdTA5NzBcXFxcdTBBRjBcXFxcdTBERjRcXFxcdTBFNEZcXFxcdTBFNUFcXFxcdTBFNUJcXFxcdTBGMDQtXFxcXHUwRjEyXFxcXHUwRjE0XFxcXHUwRjNBLVxcXFx1MEYzRFxcXFx1MEY4NVxcXFx1MEZEMC1cXFxcdTBGRDRcXFxcdTBGRDlcXFxcdTBGREFcXFxcdTEwNEEtXFxcXHUxMDRGXFxcXHUxMEZCXFxcXHUxMzYwLVxcXFx1MTM2OFxcXFx1MTQwMFxcXFx1MTY2RFxcXFx1MTY2RVxcXFx1MTY5QlxcXFx1MTY5Q1xcXFx1MTZFQi1cXFxcdTE2RURcXFxcdTE3MzVcXFxcdTE3MzZcXFxcdTE3RDQtXFxcXHUxN0Q2XFxcXHUxN0Q4LVxcXFx1MTdEQVxcXFx1MTgwMC1cXFxcdTE4MEFcXFxcdTE5NDRcXFxcdTE5NDVcXFxcdTFBMUVcXFxcdTFBMUZcXFxcdTFBQTAtXFxcXHUxQUE2XFxcXHUxQUE4LVxcXFx1MUFBRFxcXFx1MUI1QS1cXFxcdTFCNjBcXFxcdTFCRkMtXFxcXHUxQkZGXFxcXHUxQzNCLVxcXFx1MUMzRlxcXFx1MUM3RVxcXFx1MUM3RlxcXFx1MUNDMC1cXFxcdTFDQzdcXFxcdTFDRDNcXFxcdTIwMTAtXFxcXHUyMDI3XFxcXHUyMDMwLVxcXFx1MjA0M1xcXFx1MjA0NS1cXFxcdTIwNTFcXFxcdTIwNTMtXFxcXHUyMDVFXFxcXHUyMDdEXFxcXHUyMDdFXFxcXHUyMDhEXFxcXHUyMDhFXFxcXHUyMzA4LVxcXFx1MjMwQlxcXFx1MjMyOVxcXFx1MjMyQVxcXFx1Mjc2OC1cXFxcdTI3NzVcXFxcdTI3QzVcXFxcdTI3QzZcXFxcdTI3RTYtXFxcXHUyN0VGXFxcXHUyOTgzLVxcXFx1Mjk5OFxcXFx1MjlEOC1cXFxcdTI5REJcXFxcdTI5RkNcXFxcdTI5RkRcXFxcdTJDRjktXFxcXHUyQ0ZDXFxcXHUyQ0ZFXFxcXHUyQ0ZGXFxcXHUyRDcwXFxcXHUyRTAwLVxcXFx1MkUyRVxcXFx1MkUzMC1cXFxcdTJFNDJcXFxcdTMwMDEtXFxcXHUzMDAzXFxcXHUzMDA4LVxcXFx1MzAxMVxcXFx1MzAxNC1cXFxcdTMwMUZcXFxcdTMwMzBcXFxcdTMwM0RcXFxcdTMwQTBcXFxcdTMwRkJcXFxcdUE0RkVcXFxcdUE0RkZcXFxcdUE2MEQtXFxcXHVBNjBGXFxcXHVBNjczXFxcXHVBNjdFXFxcXHVBNkYyLVxcXFx1QTZGN1xcXFx1QTg3NC1cXFxcdUE4NzdcXFxcdUE4Q0VcXFxcdUE4Q0ZcXFxcdUE4RjgtXFxcXHVBOEZBXFxcXHVBOEZDXFxcXHVBOTJFXFxcXHVBOTJGXFxcXHVBOTVGXFxcXHVBOUMxLVxcXFx1QTlDRFxcXFx1QTlERVxcXFx1QTlERlxcXFx1QUE1Qy1cXFxcdUFBNUZcXFxcdUFBREVcXFxcdUFBREZcXFxcdUFBRjBcXFxcdUFBRjFcXFxcdUFCRUJcXFxcdUZEM0VcXFxcdUZEM0ZcXFxcdUZFMTAtXFxcXHVGRTE5XFxcXHVGRTMwLVxcXFx1RkU1MlxcXFx1RkU1NC1cXFxcdUZFNjFcXFxcdUZFNjNcXFxcdUZFNjhcXFxcdUZFNkFcXFxcdUZFNkJcXFxcdUZGMDEtXFxcXHVGRjAzXFxcXHVGRjA1LVxcXFx1RkYwQVxcXFx1RkYwQy1cXFxcdUZGMEZcXFxcdUZGMUFcXFxcdUZGMUJcXFxcdUZGMUZcXFxcdUZGMjBcXFxcdUZGM0ItXFxcXHVGRjNEXFxcXHVGRjNGXFxcXHVGRjVCXFxcXHVGRjVEXFxcXHVGRjVGLVxcXFx1RkY2NVwiLHcuX3B1bmN0dWF0aW9uPVwiIVxcXCIjJCUmJygpK1xcXFwtLiwvOjs8PT4/QFxcXFxbXFxcXF1gXnt8fX5cIit3Ll91Y19wdW5jdHVhdGlvbix3LnB1bmN0dWF0aW9uPWgody5wdW5jdHVhdGlvbikucmVwbGFjZSgvcHVuY3R1YXRpb24vZyx3Ll9wdW5jdHVhdGlvbikuZ2V0UmVnZXgoKSx3LmJsb2NrU2tpcD0vXFxbW15bXFxdXSo/XFxdXFwoW15cXChcXCldKj9cXCl8YFteYF0qP2B8PFtePD5dKj8+L2csdy5lc2NhcGVkRW1TdD0vKD86XnxbXlxcXFxdKSg/OlxcXFxcXFxcKSpcXFxcWypfXS9nLHcuX2NvbW1lbnQ9aChCLl9jb21tZW50KS5yZXBsYWNlKFwiKD86LS1cXHgzZXwkKVwiLFwiLS1cXHgzZVwiKS5nZXRSZWdleCgpLHcuZW1TdHJvbmcubERlbGltPWgody5lbVN0cm9uZy5sRGVsaW0pLnJlcGxhY2UoL3B1bmN0L2csdy5fcHVuY3R1YXRpb24pLmdldFJlZ2V4KCksdy5lbVN0cm9uZy5yRGVsaW1Bc3Q9aCh3LmVtU3Ryb25nLnJEZWxpbUFzdCxcImdcIikucmVwbGFjZSgvcHVuY3QvZyx3Ll9wdW5jdHVhdGlvbikuZ2V0UmVnZXgoKSx3LmVtU3Ryb25nLnJEZWxpbVVuZD1oKHcuZW1TdHJvbmcuckRlbGltVW5kLFwiZ1wiKS5yZXBsYWNlKC9wdW5jdC9nLHcuX3B1bmN0dWF0aW9uKS5nZXRSZWdleCgpLHcuX2VzY2FwZXM9L1xcXFwoWyFcIiMkJSYnKCkqKyxcXC0uLzo7PD0+P0BcXFtcXF1cXFxcXl9ge3x9fl0pL2csdy5fc2NoZW1lPS9bYS16QS1aXVthLXpBLVowLTkrLi1dezEsMzF9Lyx3Ll9lbWFpbD0vW2EtekEtWjAtOS4hIyQlJicqKy89P15fYHt8fX4tXSsoQClbYS16QS1aMC05XSg/OlthLXpBLVowLTktXXswLDYxfVthLXpBLVowLTldKT8oPzpcXC5bYS16QS1aMC05XSg/OlthLXpBLVowLTktXXswLDYxfVthLXpBLVowLTldKT8pKyg/IVstX10pLyx3LmF1dG9saW5rPWgody5hdXRvbGluaykucmVwbGFjZShcInNjaGVtZVwiLHcuX3NjaGVtZSkucmVwbGFjZShcImVtYWlsXCIsdy5fZW1haWwpLmdldFJlZ2V4KCksdy5fYXR0cmlidXRlPS9cXHMrW2EtekEtWjpfXVtcXHcuOi1dKig/Olxccyo9XFxzKlwiW15cIl0qXCJ8XFxzKj1cXHMqJ1teJ10qJ3xcXHMqPVxccypbXlxcc1wiJz08PmBdKyk/Lyx3LnRhZz1oKHcudGFnKS5yZXBsYWNlKFwiY29tbWVudFwiLHcuX2NvbW1lbnQpLnJlcGxhY2UoXCJhdHRyaWJ1dGVcIix3Ll9hdHRyaWJ1dGUpLmdldFJlZ2V4KCksdy5fbGFiZWw9Lyg/OlxcWyg/OlxcXFwufFteXFxbXFxdXFxcXF0pKlxcXXxcXFxcLnxgW15gXSpgfFteXFxbXFxdXFxcXGBdKSo/Lyx3Ll9ocmVmPS88KD86XFxcXC58W15cXG48PlxcXFxdKSs+fFteXFxzXFx4MDAtXFx4MWZdKi8sdy5fdGl0bGU9L1wiKD86XFxcXFwiP3xbXlwiXFxcXF0pKlwifCcoPzpcXFxcJz98W14nXFxcXF0pKid8XFwoKD86XFxcXFxcKT98W14pXFxcXF0pKlxcKS8sdy5saW5rPWgody5saW5rKS5yZXBsYWNlKFwibGFiZWxcIix3Ll9sYWJlbCkucmVwbGFjZShcImhyZWZcIix3Ll9ocmVmKS5yZXBsYWNlKFwidGl0bGVcIix3Ll90aXRsZSkuZ2V0UmVnZXgoKSx3LnJlZmxpbms9aCh3LnJlZmxpbmspLnJlcGxhY2UoXCJsYWJlbFwiLHcuX2xhYmVsKS5yZXBsYWNlKFwicmVmXCIsQi5fbGFiZWwpLmdldFJlZ2V4KCksdy5ub2xpbms9aCh3Lm5vbGluaykucmVwbGFjZShcInJlZlwiLEIuX2xhYmVsKS5nZXRSZWdleCgpLHcucmVmbGlua1NlYXJjaD1oKHcucmVmbGlua1NlYXJjaCxcImdcIikucmVwbGFjZShcInJlZmxpbmtcIix3LnJlZmxpbmspLnJlcGxhY2UoXCJub2xpbmtcIix3Lm5vbGluaykuZ2V0UmVnZXgoKSx3Lm5vcm1hbD1BKHt9LHcpLHcucGVkYW50aWM9QSh7fSx3Lm5vcm1hbCx7c3Ryb25nOntzdGFydDovXl9ffFxcKlxcKi8sbWlkZGxlOi9eX18oPz1cXFMpKFtcXHNcXFNdKj9cXFMpX18oPyFfKXxeXFwqXFwqKD89XFxTKShbXFxzXFxTXSo/XFxTKVxcKlxcKig/IVxcKikvLGVuZEFzdDovXFwqXFwqKD8hXFwqKS9nLGVuZFVuZDovX18oPyFfKS9nfSxlbTp7c3RhcnQ6L15ffFxcKi8sbWlkZGxlOi9eKClcXCooPz1cXFMpKFtcXHNcXFNdKj9cXFMpXFwqKD8hXFwqKXxeXyg/PVxcUykoW1xcc1xcU10qP1xcUylfKD8hXykvLGVuZEFzdDovXFwqKD8hXFwqKS9nLGVuZFVuZDovXyg/IV8pL2d9LGxpbms6aCgvXiE/XFxbKGxhYmVsKVxcXVxcKCguKj8pXFwpLykucmVwbGFjZShcImxhYmVsXCIsdy5fbGFiZWwpLmdldFJlZ2V4KCkscmVmbGluazpoKC9eIT9cXFsobGFiZWwpXFxdXFxzKlxcWyhbXlxcXV0qKVxcXS8pLnJlcGxhY2UoXCJsYWJlbFwiLHcuX2xhYmVsKS5nZXRSZWdleCgpfSksdy5nZm09QSh7fSx3Lm5vcm1hbCx7ZXNjYXBlOmgody5lc2NhcGUpLnJlcGxhY2UoXCJdKVwiLFwifnxdKVwiKS5nZXRSZWdleCgpLF9leHRlbmRlZF9lbWFpbDovW0EtWmEtejAtOS5fKy1dKyhAKVthLXpBLVowLTktX10rKD86XFwuW2EtekEtWjAtOS1fXSpbYS16QS1aMC05XSkrKD8hWy1fXSkvLHVybDovXigoPzpmdHB8aHR0cHM/KTpcXC9cXC98d3d3XFwuKSg/OlthLXpBLVowLTlcXC1dK1xcLj8pK1teXFxzPF0qfF5lbWFpbC8sX2JhY2twZWRhbDovKD86W14/IS4sOjsqXydcIn4oKSZdK3xcXChbXildKlxcKXwmKD8hW2EtekEtWjAtOV0rOyQpfFs/IS4sOjsqXydcIn4pXSsoPyEkKSkrLyxkZWw6L14ofn4/KSg/PVteXFxzfl0pKFtcXHNcXFNdKj9bXlxcc35dKVxcMSg/PVtefl18JCkvLHRleHQ6L14oW2B+XSt8W15gfl0pKD86KD89IHsyLH1cXG4pfCg/PVthLXpBLVowLTkuISMkJSYnKitcXC89P19ge1xcfH1+LV0rQCl8W1xcc1xcU10qPyg/Oig/PVtcXFxcPCFcXFtgKn5fXXxcXGJffGh0dHBzPzpcXC9cXC98ZnRwOlxcL1xcL3x3d3dcXC58JCl8W14gXSg/PSB7Mix9XFxuKXxbXmEtekEtWjAtOS4hIyQlJicqK1xcLz0/X2B7XFx8fX4tXSg/PVthLXpBLVowLTkuISMkJSYnKitcXC89P19ge1xcfH1+LV0rQCkpKS99KSx3LmdmbS51cmw9aCh3LmdmbS51cmwsXCJpXCIpLnJlcGxhY2UoXCJlbWFpbFwiLHcuZ2ZtLl9leHRlbmRlZF9lbWFpbCkuZ2V0UmVnZXgoKSx3LmJyZWFrcz1BKHt9LHcuZ2ZtLHticjpoKHcuYnIpLnJlcGxhY2UoXCJ7Mix9XCIsXCIqXCIpLmdldFJlZ2V4KCksdGV4dDpoKHcuZ2ZtLnRleHQpLnJlcGxhY2UoXCJcXFxcYl9cIixcIlxcXFxiX3wgezIsfVxcXFxuXCIpLnJlcGxhY2UoL1xcezIsXFx9L2csXCIqXCIpLmdldFJlZ2V4KCl9KTt2YXIgeT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7dGhpcy50b2tlbnM9W10sdGhpcy50b2tlbnMubGlua3M9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLm9wdGlvbnM9ZXx8ci5kZWZhdWx0cyx0aGlzLm9wdGlvbnMudG9rZW5pemVyPXRoaXMub3B0aW9ucy50b2tlbml6ZXJ8fG5ldyBiLHRoaXMudG9rZW5pemVyPXRoaXMub3B0aW9ucy50b2tlbml6ZXIsdGhpcy50b2tlbml6ZXIub3B0aW9ucz10aGlzLm9wdGlvbnMsKHRoaXMudG9rZW5pemVyLmxleGVyPXRoaXMpLmlubGluZVF1ZXVlPVtdLHRoaXMuc3RhdGU9e2luTGluazohMSxpblJhd0Jsb2NrOiExLHRvcDohMH07ZT17YmxvY2s6Qi5ub3JtYWwsaW5saW5lOncubm9ybWFsfTt0aGlzLm9wdGlvbnMucGVkYW50aWM/KGUuYmxvY2s9Qi5wZWRhbnRpYyxlLmlubGluZT13LnBlZGFudGljKTp0aGlzLm9wdGlvbnMuZ2ZtJiYoZS5ibG9jaz1CLmdmbSx0aGlzLm9wdGlvbnMuYnJlYWtzP2UuaW5saW5lPXcuYnJlYWtzOmUuaW5saW5lPXcuZ2ZtKSx0aGlzLnRva2VuaXplci5ydWxlcz1lfXQubGV4PWZ1bmN0aW9uKGUsdSl7cmV0dXJuIG5ldyB0KHUpLmxleChlKX0sdC5sZXhJbmxpbmU9ZnVuY3Rpb24oZSx1KXtyZXR1cm4gbmV3IHQodSkuaW5saW5lVG9rZW5zKGUpfTt2YXIgZSx1LG49dC5wcm90b3R5cGU7cmV0dXJuIG4ubGV4PWZ1bmN0aW9uKGUpe3ZhciB1O2ZvcihlPWUucmVwbGFjZSgvXFxyXFxufFxcci9nLFwiXFxuXCIpLHRoaXMuYmxvY2tUb2tlbnMoZSx0aGlzLnRva2Vucyk7dT10aGlzLmlubGluZVF1ZXVlLnNoaWZ0KCk7KXRoaXMuaW5saW5lVG9rZW5zKHUuc3JjLHUudG9rZW5zKTtyZXR1cm4gdGhpcy50b2tlbnN9LG4uYmxvY2tUb2tlbnM9ZnVuY3Rpb24ocixpKXt2YXIgcyxhLGwsbyxEPXRoaXM7Zm9yKHZvaWQgMD09PWkmJihpPVtdKSxyPXRoaXMub3B0aW9ucy5wZWRhbnRpYz9yLnJlcGxhY2UoL1xcdC9nLFwiICAgIFwiKS5yZXBsYWNlKC9eICskL2dtLFwiXCIpOnIucmVwbGFjZSgvXiggKikoXFx0KykvZ20sZnVuY3Rpb24oZSx1LHQpe3JldHVybiB1K1wiICAgIFwiLnJlcGVhdCh0Lmxlbmd0aCl9KTtyOyl7dmFyIGU9ZnVuY3Rpb24oKXtpZihELm9wdGlvbnMuZXh0ZW5zaW9ucyYmRC5vcHRpb25zLmV4dGVuc2lvbnMuYmxvY2smJkQub3B0aW9ucy5leHRlbnNpb25zLmJsb2NrLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuISEocz1lLmNhbGwoe2xleGVyOkR9LHIsaSkpJiYocj1yLnN1YnN0cmluZyhzLnJhdy5sZW5ndGgpLGkucHVzaChzKSwhMCl9KSlyZXR1cm5cImNvbnRpbnVlXCI7aWYocz1ELnRva2VuaXplci5zcGFjZShyKSlyZXR1cm4gcj1yLnN1YnN0cmluZyhzLnJhdy5sZW5ndGgpLDE9PT1zLnJhdy5sZW5ndGgmJjA8aS5sZW5ndGg/aVtpLmxlbmd0aC0xXS5yYXcrPVwiXFxuXCI6aS5wdXNoKHMpLFwiY29udGludWVcIjtpZihzPUQudG9rZW5pemVyLmNvZGUocikpcmV0dXJuIHI9ci5zdWJzdHJpbmcocy5yYXcubGVuZ3RoKSwhKGE9aVtpLmxlbmd0aC0xXSl8fFwicGFyYWdyYXBoXCIhPT1hLnR5cGUmJlwidGV4dFwiIT09YS50eXBlP2kucHVzaChzKTooYS5yYXcrPVwiXFxuXCIrcy5yYXcsYS50ZXh0Kz1cIlxcblwiK3MudGV4dCxELmlubGluZVF1ZXVlW0QuaW5saW5lUXVldWUubGVuZ3RoLTFdLnNyYz1hLnRleHQpLFwiY29udGludWVcIjtpZihzPUQudG9rZW5pemVyLmZlbmNlcyhyKSlyZXR1cm4gcj1yLnN1YnN0cmluZyhzLnJhdy5sZW5ndGgpLGkucHVzaChzKSxcImNvbnRpbnVlXCI7aWYocz1ELnRva2VuaXplci5oZWFkaW5nKHIpKXJldHVybiByPXIuc3Vic3RyaW5nKHMucmF3Lmxlbmd0aCksaS5wdXNoKHMpLFwiY29udGludWVcIjtpZihzPUQudG9rZW5pemVyLmhyKHIpKXJldHVybiByPXIuc3Vic3RyaW5nKHMucmF3Lmxlbmd0aCksaS5wdXNoKHMpLFwiY29udGludWVcIjtpZihzPUQudG9rZW5pemVyLmJsb2NrcXVvdGUocikpcmV0dXJuIHI9ci5zdWJzdHJpbmcocy5yYXcubGVuZ3RoKSxpLnB1c2gocyksXCJjb250aW51ZVwiO2lmKHM9RC50b2tlbml6ZXIubGlzdChyKSlyZXR1cm4gcj1yLnN1YnN0cmluZyhzLnJhdy5sZW5ndGgpLGkucHVzaChzKSxcImNvbnRpbnVlXCI7aWYocz1ELnRva2VuaXplci5odG1sKHIpKXJldHVybiByPXIuc3Vic3RyaW5nKHMucmF3Lmxlbmd0aCksaS5wdXNoKHMpLFwiY29udGludWVcIjtpZihzPUQudG9rZW5pemVyLmRlZihyKSlyZXR1cm4gcj1yLnN1YnN0cmluZyhzLnJhdy5sZW5ndGgpLCEoYT1pW2kubGVuZ3RoLTFdKXx8XCJwYXJhZ3JhcGhcIiE9PWEudHlwZSYmXCJ0ZXh0XCIhPT1hLnR5cGU/RC50b2tlbnMubGlua3Nbcy50YWddfHwoRC50b2tlbnMubGlua3Nbcy50YWddPXtocmVmOnMuaHJlZix0aXRsZTpzLnRpdGxlfSk6KGEucmF3Kz1cIlxcblwiK3MucmF3LGEudGV4dCs9XCJcXG5cIitzLnJhdyxELmlubGluZVF1ZXVlW0QuaW5saW5lUXVldWUubGVuZ3RoLTFdLnNyYz1hLnRleHQpLFwiY29udGludWVcIjtpZihzPUQudG9rZW5pemVyLnRhYmxlKHIpKXJldHVybiByPXIuc3Vic3RyaW5nKHMucmF3Lmxlbmd0aCksaS5wdXNoKHMpLFwiY29udGludWVcIjtpZihzPUQudG9rZW5pemVyLmxoZWFkaW5nKHIpKXJldHVybiByPXIuc3Vic3RyaW5nKHMucmF3Lmxlbmd0aCksaS5wdXNoKHMpLFwiY29udGludWVcIjt2YXIgdSx0LG47aWYobD1yLEQub3B0aW9ucy5leHRlbnNpb25zJiZELm9wdGlvbnMuZXh0ZW5zaW9ucy5zdGFydEJsb2NrJiYodT0xLzAsdD1yLnNsaWNlKDEpLEQub3B0aW9ucy5leHRlbnNpb25zLnN0YXJ0QmxvY2suZm9yRWFjaChmdW5jdGlvbihlKXtcIm51bWJlclwiPT10eXBlb2Yobj1lLmNhbGwoe2xleGVyOnRoaXN9LHQpKSYmMDw9biYmKHU9TWF0aC5taW4odSxuKSl9KSx1PDEvMCkmJjA8PXUmJihsPXIuc3Vic3RyaW5nKDAsdSsxKSksRC5zdGF0ZS50b3AmJihzPUQudG9rZW5pemVyLnBhcmFncmFwaChsKSkpcmV0dXJuIGE9aVtpLmxlbmd0aC0xXSxvJiZcInBhcmFncmFwaFwiPT09YS50eXBlPyhhLnJhdys9XCJcXG5cIitzLnJhdyxhLnRleHQrPVwiXFxuXCIrcy50ZXh0LEQuaW5saW5lUXVldWUucG9wKCksRC5pbmxpbmVRdWV1ZVtELmlubGluZVF1ZXVlLmxlbmd0aC0xXS5zcmM9YS50ZXh0KTppLnB1c2gocyksbz1sLmxlbmd0aCE9PXIubGVuZ3RoLHI9ci5zdWJzdHJpbmcocy5yYXcubGVuZ3RoKSxcImNvbnRpbnVlXCI7aWYocz1ELnRva2VuaXplci50ZXh0KHIpKXJldHVybiByPXIuc3Vic3RyaW5nKHMucmF3Lmxlbmd0aCksKGE9aVtpLmxlbmd0aC0xXSkmJlwidGV4dFwiPT09YS50eXBlPyhhLnJhdys9XCJcXG5cIitzLnJhdyxhLnRleHQrPVwiXFxuXCIrcy50ZXh0LEQuaW5saW5lUXVldWUucG9wKCksRC5pbmxpbmVRdWV1ZVtELmlubGluZVF1ZXVlLmxlbmd0aC0xXS5zcmM9YS50ZXh0KTppLnB1c2gocyksXCJjb250aW51ZVwiO2lmKHIpe3ZhciBlPVwiSW5maW5pdGUgbG9vcCBvbiBieXRlOiBcIityLmNoYXJDb2RlQXQoMCk7aWYoRC5vcHRpb25zLnNpbGVudClyZXR1cm4gY29uc29sZS5lcnJvcihlKSxcImJyZWFrXCI7dGhyb3cgbmV3IEVycm9yKGUpfX0oKTtpZihcImNvbnRpbnVlXCIhPT1lJiZcImJyZWFrXCI9PT1lKWJyZWFrfXJldHVybiB0aGlzLnN0YXRlLnRvcD0hMCxpfSxuLmlubGluZT1mdW5jdGlvbihlLHUpe3JldHVybiB0aGlzLmlubGluZVF1ZXVlLnB1c2goe3NyYzplLHRva2Vuczp1PXZvaWQgMD09PXU/W106dX0pLHV9LG4uaW5saW5lVG9rZW5zPWZ1bmN0aW9uKHIsaSl7dmFyIHMsYSxsLGUsbyxELGM9dGhpcyxwPSh2b2lkIDA9PT1pJiYoaT1bXSkscik7aWYodGhpcy50b2tlbnMubGlua3Mpe3ZhciB1PU9iamVjdC5rZXlzKHRoaXMudG9rZW5zLmxpbmtzKTtpZigwPHUubGVuZ3RoKWZvcig7bnVsbCE9KGU9dGhpcy50b2tlbml6ZXIucnVsZXMuaW5saW5lLnJlZmxpbmtTZWFyY2guZXhlYyhwKSk7KXUuaW5jbHVkZXMoZVswXS5zbGljZShlWzBdLmxhc3RJbmRleE9mKFwiW1wiKSsxLC0xKSkmJihwPXAuc2xpY2UoMCxlLmluZGV4KStcIltcIitcImFcIi5yZXBlYXQoZVswXS5sZW5ndGgtMikrXCJdXCIrcC5zbGljZSh0aGlzLnRva2VuaXplci5ydWxlcy5pbmxpbmUucmVmbGlua1NlYXJjaC5sYXN0SW5kZXgpKX1mb3IoO251bGwhPShlPXRoaXMudG9rZW5pemVyLnJ1bGVzLmlubGluZS5ibG9ja1NraXAuZXhlYyhwKSk7KXA9cC5zbGljZSgwLGUuaW5kZXgpK1wiW1wiK1wiYVwiLnJlcGVhdChlWzBdLmxlbmd0aC0yKStcIl1cIitwLnNsaWNlKHRoaXMudG9rZW5pemVyLnJ1bGVzLmlubGluZS5ibG9ja1NraXAubGFzdEluZGV4KTtmb3IoO251bGwhPShlPXRoaXMudG9rZW5pemVyLnJ1bGVzLmlubGluZS5lc2NhcGVkRW1TdC5leGVjKHApKTspcD1wLnNsaWNlKDAsZS5pbmRleCtlWzBdLmxlbmd0aC0yKStcIisrXCIrcC5zbGljZSh0aGlzLnRva2VuaXplci5ydWxlcy5pbmxpbmUuZXNjYXBlZEVtU3QubGFzdEluZGV4KSx0aGlzLnRva2VuaXplci5ydWxlcy5pbmxpbmUuZXNjYXBlZEVtU3QubGFzdEluZGV4LS07Zm9yKDtyOyl7dmFyIHQ9ZnVuY3Rpb24oKXtpZihvfHwoRD1cIlwiKSxvPSExLGMub3B0aW9ucy5leHRlbnNpb25zJiZjLm9wdGlvbnMuZXh0ZW5zaW9ucy5pbmxpbmUmJmMub3B0aW9ucy5leHRlbnNpb25zLmlubGluZS5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiEhKHM9ZS5jYWxsKHtsZXhlcjpjfSxyLGkpKSYmKHI9ci5zdWJzdHJpbmcocy5yYXcubGVuZ3RoKSxpLnB1c2gocyksITApfSkpcmV0dXJuXCJjb250aW51ZVwiO2lmKHM9Yy50b2tlbml6ZXIuZXNjYXBlKHIpKXJldHVybiByPXIuc3Vic3RyaW5nKHMucmF3Lmxlbmd0aCksaS5wdXNoKHMpLFwiY29udGludWVcIjtpZihzPWMudG9rZW5pemVyLnRhZyhyKSlyZXR1cm4gcj1yLnN1YnN0cmluZyhzLnJhdy5sZW5ndGgpLChhPWlbaS5sZW5ndGgtMV0pJiZcInRleHRcIj09PXMudHlwZSYmXCJ0ZXh0XCI9PT1hLnR5cGU/KGEucmF3Kz1zLnJhdyxhLnRleHQrPXMudGV4dCk6aS5wdXNoKHMpLFwiY29udGludWVcIjtpZihzPWMudG9rZW5pemVyLmxpbmsocikpcmV0dXJuIHI9ci5zdWJzdHJpbmcocy5yYXcubGVuZ3RoKSxpLnB1c2gocyksXCJjb250aW51ZVwiO2lmKHM9Yy50b2tlbml6ZXIucmVmbGluayhyLGMudG9rZW5zLmxpbmtzKSlyZXR1cm4gcj1yLnN1YnN0cmluZyhzLnJhdy5sZW5ndGgpLChhPWlbaS5sZW5ndGgtMV0pJiZcInRleHRcIj09PXMudHlwZSYmXCJ0ZXh0XCI9PT1hLnR5cGU/KGEucmF3Kz1zLnJhdyxhLnRleHQrPXMudGV4dCk6aS5wdXNoKHMpLFwiY29udGludWVcIjtpZihzPWMudG9rZW5pemVyLmVtU3Ryb25nKHIscCxEKSlyZXR1cm4gcj1yLnN1YnN0cmluZyhzLnJhdy5sZW5ndGgpLGkucHVzaChzKSxcImNvbnRpbnVlXCI7aWYocz1jLnRva2VuaXplci5jb2Rlc3BhbihyKSlyZXR1cm4gcj1yLnN1YnN0cmluZyhzLnJhdy5sZW5ndGgpLGkucHVzaChzKSxcImNvbnRpbnVlXCI7aWYocz1jLnRva2VuaXplci5icihyKSlyZXR1cm4gcj1yLnN1YnN0cmluZyhzLnJhdy5sZW5ndGgpLGkucHVzaChzKSxcImNvbnRpbnVlXCI7aWYocz1jLnRva2VuaXplci5kZWwocikpcmV0dXJuIHI9ci5zdWJzdHJpbmcocy5yYXcubGVuZ3RoKSxpLnB1c2gocyksXCJjb250aW51ZVwiO2lmKHM9Yy50b2tlbml6ZXIuYXV0b2xpbmsocix2KSlyZXR1cm4gcj1yLnN1YnN0cmluZyhzLnJhdy5sZW5ndGgpLGkucHVzaChzKSxcImNvbnRpbnVlXCI7aWYoIWMuc3RhdGUuaW5MaW5rJiYocz1jLnRva2VuaXplci51cmwocix2KSkpcmV0dXJuIHI9ci5zdWJzdHJpbmcocy5yYXcubGVuZ3RoKSxpLnB1c2gocyksXCJjb250aW51ZVwiO3ZhciB1LHQsbjtpZihsPXIsYy5vcHRpb25zLmV4dGVuc2lvbnMmJmMub3B0aW9ucy5leHRlbnNpb25zLnN0YXJ0SW5saW5lJiYodT0xLzAsdD1yLnNsaWNlKDEpLGMub3B0aW9ucy5leHRlbnNpb25zLnN0YXJ0SW5saW5lLmZvckVhY2goZnVuY3Rpb24oZSl7XCJudW1iZXJcIj09dHlwZW9mKG49ZS5jYWxsKHtsZXhlcjp0aGlzfSx0KSkmJjA8PW4mJih1PU1hdGgubWluKHUsbikpfSksdTwxLzApJiYwPD11JiYobD1yLnN1YnN0cmluZygwLHUrMSkpLHM9Yy50b2tlbml6ZXIuaW5saW5lVGV4dChsLFApKXJldHVybiByPXIuc3Vic3RyaW5nKHMucmF3Lmxlbmd0aCksXCJfXCIhPT1zLnJhdy5zbGljZSgtMSkmJihEPXMucmF3LnNsaWNlKC0xKSksbz0hMCwoYT1pW2kubGVuZ3RoLTFdKSYmXCJ0ZXh0XCI9PT1hLnR5cGU/KGEucmF3Kz1zLnJhdyxhLnRleHQrPXMudGV4dCk6aS5wdXNoKHMpLFwiY29udGludWVcIjtpZihyKXt2YXIgZT1cIkluZmluaXRlIGxvb3Agb24gYnl0ZTogXCIrci5jaGFyQ29kZUF0KDApO2lmKGMub3B0aW9ucy5zaWxlbnQpcmV0dXJuIGNvbnNvbGUuZXJyb3IoZSksXCJicmVha1wiO3Rocm93IG5ldyBFcnJvcihlKX19KCk7aWYoXCJjb250aW51ZVwiIT09dCYmXCJicmVha1wiPT09dClicmVha31yZXR1cm4gaX0sbj10LHU9W3trZXk6XCJydWxlc1wiLGdldDpmdW5jdGlvbigpe3JldHVybntibG9jazpCLGlubGluZTp3fX19XSwoZT1udWxsKSYmaShuLnByb3RvdHlwZSxlKSx1JiZpKG4sdSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sXCJwcm90b3R5cGVcIix7d3JpdGFibGU6ITF9KSx0fSgpLF89ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUpe3RoaXMub3B0aW9ucz1lfHxyLmRlZmF1bHRzfXZhciB1PWUucHJvdG90eXBlO3JldHVybiB1LmNvZGU9ZnVuY3Rpb24oZSx1LHQpe3ZhciBuLHU9KHV8fFwiXCIpLm1hdGNoKC9cXFMqLylbMF07cmV0dXJuIHRoaXMub3B0aW9ucy5oaWdobGlnaHQmJm51bGwhPShuPXRoaXMub3B0aW9ucy5oaWdobGlnaHQoZSx1KSkmJm4hPT1lJiYodD0hMCxlPW4pLGU9ZS5yZXBsYWNlKC9cXG4kLyxcIlwiKStcIlxcblwiLHU/JzxwcmU+PGNvZGUgY2xhc3M9XCInK3RoaXMub3B0aW9ucy5sYW5nUHJlZml4K2QodSkrJ1wiPicrKHQ/ZTpkKGUsITApKStcIjwvY29kZT48L3ByZT5cXG5cIjpcIjxwcmU+PGNvZGU+XCIrKHQ/ZTpkKGUsITApKStcIjwvY29kZT48L3ByZT5cXG5cIn0sdS5ibG9ja3F1b3RlPWZ1bmN0aW9uKGUpe3JldHVyblwiPGJsb2NrcXVvdGU+XFxuXCIrZStcIjwvYmxvY2txdW90ZT5cXG5cIn0sdS5odG1sPWZ1bmN0aW9uKGUsdSl7cmV0dXJuIGV9LHUuaGVhZGluZz1mdW5jdGlvbihlLHUsdCxuKXtyZXR1cm4gdGhpcy5vcHRpb25zLmhlYWRlcklkcz9cIjxoXCIrdSsnIGlkPVwiJysodGhpcy5vcHRpb25zLmhlYWRlclByZWZpeCtuLnNsdWcodCkpKydcIj4nK2UrXCI8L2hcIit1K1wiPlxcblwiOlwiPGhcIit1K1wiPlwiK2UrXCI8L2hcIit1K1wiPlxcblwifSx1LmhyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3B0aW9ucy54aHRtbD9cIjxoci8+XFxuXCI6XCI8aHI+XFxuXCJ9LHUubGlzdD1mdW5jdGlvbihlLHUsdCl7dmFyIG49dT9cIm9sXCI6XCJ1bFwiO3JldHVyblwiPFwiK24rKHUmJjEhPT10Pycgc3RhcnQ9XCInK3QrJ1wiJzpcIlwiKStcIj5cXG5cIitlK1wiPC9cIituK1wiPlxcblwifSx1Lmxpc3RpdGVtPWZ1bmN0aW9uKGUpe3JldHVyblwiPGxpPlwiK2UrXCI8L2xpPlxcblwifSx1LmNoZWNrYm94PWZ1bmN0aW9uKGUpe3JldHVyblwiPGlucHV0IFwiKyhlPydjaGVja2VkPVwiXCIgJzpcIlwiKSsnZGlzYWJsZWQ9XCJcIiB0eXBlPVwiY2hlY2tib3hcIicrKHRoaXMub3B0aW9ucy54aHRtbD9cIiAvXCI6XCJcIikrXCI+IFwifSx1LnBhcmFncmFwaD1mdW5jdGlvbihlKXtyZXR1cm5cIjxwPlwiK2UrXCI8L3A+XFxuXCJ9LHUudGFibGU9ZnVuY3Rpb24oZSx1KXtyZXR1cm5cIjx0YWJsZT5cXG48dGhlYWQ+XFxuXCIrZStcIjwvdGhlYWQ+XFxuXCIrKHU9dSYmXCI8dGJvZHk+XCIrdStcIjwvdGJvZHk+XCIpK1wiPC90YWJsZT5cXG5cIn0sdS50YWJsZXJvdz1mdW5jdGlvbihlKXtyZXR1cm5cIjx0cj5cXG5cIitlK1wiPC90cj5cXG5cIn0sdS50YWJsZWNlbGw9ZnVuY3Rpb24oZSx1KXt2YXIgdD11LmhlYWRlcj9cInRoXCI6XCJ0ZFwiO3JldHVybih1LmFsaWduP1wiPFwiK3QrJyBhbGlnbj1cIicrdS5hbGlnbisnXCI+JzpcIjxcIit0K1wiPlwiKStlK1wiPC9cIit0K1wiPlxcblwifSx1LnN0cm9uZz1mdW5jdGlvbihlKXtyZXR1cm5cIjxzdHJvbmc+XCIrZStcIjwvc3Ryb25nPlwifSx1LmVtPWZ1bmN0aW9uKGUpe3JldHVyblwiPGVtPlwiK2UrXCI8L2VtPlwifSx1LmNvZGVzcGFuPWZ1bmN0aW9uKGUpe3JldHVyblwiPGNvZGU+XCIrZStcIjwvY29kZT5cIn0sdS5icj1mdW5jdGlvbigpe3JldHVybiB0aGlzLm9wdGlvbnMueGh0bWw/XCI8YnIvPlwiOlwiPGJyPlwifSx1LmRlbD1mdW5jdGlvbihlKXtyZXR1cm5cIjxkZWw+XCIrZStcIjwvZGVsPlwifSx1Lmxpbms9ZnVuY3Rpb24oZSx1LHQpe3JldHVybiBudWxsPT09KGU9Zih0aGlzLm9wdGlvbnMuc2FuaXRpemUsdGhpcy5vcHRpb25zLmJhc2VVcmwsZSkpP3Q6KGU9JzxhIGhyZWY9XCInK2UrJ1wiJyx1JiYoZSs9JyB0aXRsZT1cIicrdSsnXCInKSxlK1wiPlwiK3QrXCI8L2E+XCIpfSx1LmltYWdlPWZ1bmN0aW9uKGUsdSx0KXtyZXR1cm4gbnVsbD09PShlPWYodGhpcy5vcHRpb25zLnNhbml0aXplLHRoaXMub3B0aW9ucy5iYXNlVXJsLGUpKT90OihlPSc8aW1nIHNyYz1cIicrZSsnXCIgYWx0PVwiJyt0KydcIicsdSYmKGUrPScgdGl0bGU9XCInK3UrJ1wiJyksZSsodGhpcy5vcHRpb25zLnhodG1sP1wiLz5cIjpcIj5cIikpfSx1LnRleHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGV9LGV9KCksej1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXt9dmFyIHU9ZS5wcm90b3R5cGU7cmV0dXJuIHUuc3Ryb25nPWZ1bmN0aW9uKGUpe3JldHVybiBlfSx1LmVtPWZ1bmN0aW9uKGUpe3JldHVybiBlfSx1LmNvZGVzcGFuPWZ1bmN0aW9uKGUpe3JldHVybiBlfSx1LmRlbD1mdW5jdGlvbihlKXtyZXR1cm4gZX0sdS5odG1sPWZ1bmN0aW9uKGUpe3JldHVybiBlfSx1LnRleHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGV9LHUubGluaz1mdW5jdGlvbihlLHUsdCl7cmV0dXJuXCJcIit0fSx1LmltYWdlPWZ1bmN0aW9uKGUsdSx0KXtyZXR1cm5cIlwiK3R9LHUuYnI9ZnVuY3Rpb24oKXtyZXR1cm5cIlwifSxlfSgpLCQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7dGhpcy5zZWVuPXt9fXZhciB1PWUucHJvdG90eXBlO3JldHVybiB1LnNlcmlhbGl6ZT1mdW5jdGlvbihlKXtyZXR1cm4gZS50b0xvd2VyQ2FzZSgpLnRyaW0oKS5yZXBsYWNlKC88WyFcXC9hLXpdLio/Pi9naSxcIlwiKS5yZXBsYWNlKC9bXFx1MjAwMC1cXHUyMDZGXFx1MkUwMC1cXHUyRTdGXFxcXCchXCIjJCUmKCkqKywuLzo7PD0+P0BbXFxdXmB7fH1+XS9nLFwiXCIpLnJlcGxhY2UoL1xccy9nLFwiLVwiKX0sdS5nZXROZXh0U2FmZVNsdWc9ZnVuY3Rpb24oZSx1KXt2YXIgdD1lLG49MDtpZih0aGlzLnNlZW4uaGFzT3duUHJvcGVydHkodCkpZm9yKG49dGhpcy5zZWVuW2VdO3Q9ZStcIi1cIisgKytuLHRoaXMuc2Vlbi5oYXNPd25Qcm9wZXJ0eSh0KTspO3JldHVybiB1fHwodGhpcy5zZWVuW2VdPW4sdGhpcy5zZWVuW3RdPTApLHR9LHUuc2x1Zz1mdW5jdGlvbihlLHUpe3ZvaWQgMD09PXUmJih1PXt9KTtlPXRoaXMuc2VyaWFsaXplKGUpO3JldHVybiB0aGlzLmdldE5leHRTYWZlU2x1ZyhlLHUuZHJ5cnVuKX0sZX0oKSxTPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXt0aGlzLm9wdGlvbnM9ZXx8ci5kZWZhdWx0cyx0aGlzLm9wdGlvbnMucmVuZGVyZXI9dGhpcy5vcHRpb25zLnJlbmRlcmVyfHxuZXcgXyx0aGlzLnJlbmRlcmVyPXRoaXMub3B0aW9ucy5yZW5kZXJlcix0aGlzLnJlbmRlcmVyLm9wdGlvbnM9dGhpcy5vcHRpb25zLHRoaXMudGV4dFJlbmRlcmVyPW5ldyB6LHRoaXMuc2x1Z2dlcj1uZXcgJH10LnBhcnNlPWZ1bmN0aW9uKGUsdSl7cmV0dXJuIG5ldyB0KHUpLnBhcnNlKGUpfSx0LnBhcnNlSW5saW5lPWZ1bmN0aW9uKGUsdSl7cmV0dXJuIG5ldyB0KHUpLnBhcnNlSW5saW5lKGUpfTt2YXIgZT10LnByb3RvdHlwZTtyZXR1cm4gZS5wYXJzZT1mdW5jdGlvbihlLHUpe3ZvaWQgMD09PXUmJih1PSEwKTtmb3IodmFyIHQsbixyLGkscyxhLGwsbyxELGMscCxoLEYsZixnLEEsZD1cIlwiLGs9ZS5sZW5ndGgsQz0wO0M8aztDKyspaWYobz1lW0NdLHRoaXMub3B0aW9ucy5leHRlbnNpb25zJiZ0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5yZW5kZXJlcnMmJnRoaXMub3B0aW9ucy5leHRlbnNpb25zLnJlbmRlcmVyc1tvLnR5cGVdJiYoITEhPT0oQT10aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5yZW5kZXJlcnNbby50eXBlXS5jYWxsKHtwYXJzZXI6dGhpc30sbykpfHwhW1wic3BhY2VcIixcImhyXCIsXCJoZWFkaW5nXCIsXCJjb2RlXCIsXCJ0YWJsZVwiLFwiYmxvY2txdW90ZVwiLFwibGlzdFwiLFwiaHRtbFwiLFwicGFyYWdyYXBoXCIsXCJ0ZXh0XCJdLmluY2x1ZGVzKG8udHlwZSkpKWQrPUF8fFwiXCI7ZWxzZSBzd2l0Y2goby50eXBlKXtjYXNlXCJzcGFjZVwiOmNvbnRpbnVlO2Nhc2VcImhyXCI6ZCs9dGhpcy5yZW5kZXJlci5ocigpO2NvbnRpbnVlO2Nhc2VcImhlYWRpbmdcIjpkKz10aGlzLnJlbmRlcmVyLmhlYWRpbmcodGhpcy5wYXJzZUlubGluZShvLnRva2Vucyksby5kZXB0aCxtKHRoaXMucGFyc2VJbmxpbmUoby50b2tlbnMsdGhpcy50ZXh0UmVuZGVyZXIpKSx0aGlzLnNsdWdnZXIpO2NvbnRpbnVlO2Nhc2VcImNvZGVcIjpkKz10aGlzLnJlbmRlcmVyLmNvZGUoby50ZXh0LG8ubGFuZyxvLmVzY2FwZWQpO2NvbnRpbnVlO2Nhc2VcInRhYmxlXCI6Zm9yKGE9RD1cIlwiLHI9by5oZWFkZXIubGVuZ3RoLHQ9MDt0PHI7dCsrKWErPXRoaXMucmVuZGVyZXIudGFibGVjZWxsKHRoaXMucGFyc2VJbmxpbmUoby5oZWFkZXJbdF0udG9rZW5zKSx7aGVhZGVyOiEwLGFsaWduOm8uYWxpZ25bdF19KTtmb3IoRCs9dGhpcy5yZW5kZXJlci50YWJsZXJvdyhhKSxsPVwiXCIscj1vLnJvd3MubGVuZ3RoLHQ9MDt0PHI7dCsrKXtmb3IoYT1cIlwiLGk9KHM9by5yb3dzW3RdKS5sZW5ndGgsbj0wO248aTtuKyspYSs9dGhpcy5yZW5kZXJlci50YWJsZWNlbGwodGhpcy5wYXJzZUlubGluZShzW25dLnRva2Vucykse2hlYWRlcjohMSxhbGlnbjpvLmFsaWduW25dfSk7bCs9dGhpcy5yZW5kZXJlci50YWJsZXJvdyhhKX1kKz10aGlzLnJlbmRlcmVyLnRhYmxlKEQsbCk7Y29udGludWU7Y2FzZVwiYmxvY2txdW90ZVwiOmw9dGhpcy5wYXJzZShvLnRva2VucyksZCs9dGhpcy5yZW5kZXJlci5ibG9ja3F1b3RlKGwpO2NvbnRpbnVlO2Nhc2VcImxpc3RcIjpmb3IoRD1vLm9yZGVyZWQsRT1vLnN0YXJ0LGM9by5sb29zZSxyPW8uaXRlbXMubGVuZ3RoLGw9XCJcIix0PTA7dDxyO3QrKylGPShoPW8uaXRlbXNbdF0pLmNoZWNrZWQsZj1oLnRhc2sscD1cIlwiLGgudGFzayYmKGc9dGhpcy5yZW5kZXJlci5jaGVja2JveChGKSxjPzA8aC50b2tlbnMubGVuZ3RoJiZcInBhcmFncmFwaFwiPT09aC50b2tlbnNbMF0udHlwZT8oaC50b2tlbnNbMF0udGV4dD1nK1wiIFwiK2gudG9rZW5zWzBdLnRleHQsaC50b2tlbnNbMF0udG9rZW5zJiYwPGgudG9rZW5zWzBdLnRva2Vucy5sZW5ndGgmJlwidGV4dFwiPT09aC50b2tlbnNbMF0udG9rZW5zWzBdLnR5cGUmJihoLnRva2Vuc1swXS50b2tlbnNbMF0udGV4dD1nK1wiIFwiK2gudG9rZW5zWzBdLnRva2Vuc1swXS50ZXh0KSk6aC50b2tlbnMudW5zaGlmdCh7dHlwZTpcInRleHRcIix0ZXh0Omd9KTpwKz1nKSxwKz10aGlzLnBhcnNlKGgudG9rZW5zLGMpLGwrPXRoaXMucmVuZGVyZXIubGlzdGl0ZW0ocCxmLEYpO2QrPXRoaXMucmVuZGVyZXIubGlzdChsLEQsRSk7Y29udGludWU7Y2FzZVwiaHRtbFwiOmQrPXRoaXMucmVuZGVyZXIuaHRtbChvLnRleHQsby5ibG9jayk7Y29udGludWU7Y2FzZVwicGFyYWdyYXBoXCI6ZCs9dGhpcy5yZW5kZXJlci5wYXJhZ3JhcGgodGhpcy5wYXJzZUlubGluZShvLnRva2VucykpO2NvbnRpbnVlO2Nhc2VcInRleHRcIjpmb3IobD1vLnRva2Vucz90aGlzLnBhcnNlSW5saW5lKG8udG9rZW5zKTpvLnRleHQ7QysxPGsmJlwidGV4dFwiPT09ZVtDKzFdLnR5cGU7KWwrPVwiXFxuXCIrKChvPWVbKytDXSkudG9rZW5zP3RoaXMucGFyc2VJbmxpbmUoby50b2tlbnMpOm8udGV4dCk7ZCs9dT90aGlzLnJlbmRlcmVyLnBhcmFncmFwaChsKTpsO2NvbnRpbnVlO2RlZmF1bHQ6dmFyIEU9J1Rva2VuIHdpdGggXCInK28udHlwZSsnXCIgdHlwZSB3YXMgbm90IGZvdW5kLic7aWYodGhpcy5vcHRpb25zLnNpbGVudClyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKEUpO3Rocm93IG5ldyBFcnJvcihFKX1yZXR1cm4gZH0sZS5wYXJzZUlubGluZT1mdW5jdGlvbihlLHUpe3U9dXx8dGhpcy5yZW5kZXJlcjtmb3IodmFyIHQsbixyPVwiXCIsaT1lLmxlbmd0aCxzPTA7czxpO3MrKylpZih0PWVbc10sdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMmJnRoaXMub3B0aW9ucy5leHRlbnNpb25zLnJlbmRlcmVycyYmdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMucmVuZGVyZXJzW3QudHlwZV0mJighMSE9PShuPXRoaXMub3B0aW9ucy5leHRlbnNpb25zLnJlbmRlcmVyc1t0LnR5cGVdLmNhbGwoe3BhcnNlcjp0aGlzfSx0KSl8fCFbXCJlc2NhcGVcIixcImh0bWxcIixcImxpbmtcIixcImltYWdlXCIsXCJzdHJvbmdcIixcImVtXCIsXCJjb2Rlc3BhblwiLFwiYnJcIixcImRlbFwiLFwidGV4dFwiXS5pbmNsdWRlcyh0LnR5cGUpKSlyKz1ufHxcIlwiO2Vsc2Ugc3dpdGNoKHQudHlwZSl7Y2FzZVwiZXNjYXBlXCI6cis9dS50ZXh0KHQudGV4dCk7YnJlYWs7Y2FzZVwiaHRtbFwiOnIrPXUuaHRtbCh0LnRleHQpO2JyZWFrO2Nhc2VcImxpbmtcIjpyKz11LmxpbmsodC5ocmVmLHQudGl0bGUsdGhpcy5wYXJzZUlubGluZSh0LnRva2Vucyx1KSk7YnJlYWs7Y2FzZVwiaW1hZ2VcIjpyKz11LmltYWdlKHQuaHJlZix0LnRpdGxlLHQudGV4dCk7YnJlYWs7Y2FzZVwic3Ryb25nXCI6cis9dS5zdHJvbmcodGhpcy5wYXJzZUlubGluZSh0LnRva2Vucyx1KSk7YnJlYWs7Y2FzZVwiZW1cIjpyKz11LmVtKHRoaXMucGFyc2VJbmxpbmUodC50b2tlbnMsdSkpO2JyZWFrO2Nhc2VcImNvZGVzcGFuXCI6cis9dS5jb2Rlc3Bhbih0LnRleHQpO2JyZWFrO2Nhc2VcImJyXCI6cis9dS5icigpO2JyZWFrO2Nhc2VcImRlbFwiOnIrPXUuZGVsKHRoaXMucGFyc2VJbmxpbmUodC50b2tlbnMsdSkpO2JyZWFrO2Nhc2VcInRleHRcIjpyKz11LnRleHQodC50ZXh0KTticmVhaztkZWZhdWx0OnZhciBhPSdUb2tlbiB3aXRoIFwiJyt0LnR5cGUrJ1wiIHR5cGUgd2FzIG5vdCBmb3VuZC4nO2lmKHRoaXMub3B0aW9ucy5zaWxlbnQpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcihhKTt0aHJvdyBuZXcgRXJyb3IoYSl9cmV0dXJuIHJ9LHR9KCksVD1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSl7dGhpcy5vcHRpb25zPWV8fHIuZGVmYXVsdHN9dmFyIHU9ZS5wcm90b3R5cGU7cmV0dXJuIHUucHJlcHJvY2Vzcz1mdW5jdGlvbihlKXtyZXR1cm4gZX0sdS5wb3N0cHJvY2Vzcz1mdW5jdGlvbihlKXtyZXR1cm4gZX0sZX0oKTtmdW5jdGlvbiBSKGYsZyl7cmV0dXJuIGZ1bmN0aW9uKGUsdCxuKXtcImZ1bmN0aW9uXCI9PXR5cGVvZiB0JiYobj10LHQ9bnVsbCk7dmFyIHIsaSxzLHUsYT1BKHt9LHQpLGw9KHQ9QSh7fSxJLmRlZmF1bHRzLGEpLHI9dC5zaWxlbnQsaT10LmFzeW5jLHM9bixmdW5jdGlvbihlKXt2YXIgdTtpZihlLm1lc3NhZ2UrPVwiXFxuUGxlYXNlIHJlcG9ydCB0aGlzIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9tYXJrZWRqcy9tYXJrZWQuXCIscilyZXR1cm4gdT1cIjxwPkFuIGVycm9yIG9jY3VycmVkOjwvcD48cHJlPlwiK2QoZS5tZXNzYWdlK1wiXCIsITApK1wiPC9wcmU+XCIsaT9Qcm9taXNlLnJlc29sdmUodSk6cz92b2lkIHMobnVsbCx1KTp1O2lmKGkpcmV0dXJuIFByb21pc2UucmVqZWN0KGUpO2lmKCFzKXRocm93IGU7cyhlKX0pO2lmKG51bGw9PWUpcmV0dXJuIGwobmV3IEVycm9yKFwibWFya2VkKCk6IGlucHV0IHBhcmFtZXRlciBpcyB1bmRlZmluZWQgb3IgbnVsbFwiKSk7aWYoXCJzdHJpbmdcIiE9dHlwZW9mIGUpcmV0dXJuIGwobmV3IEVycm9yKFwibWFya2VkKCk6IGlucHV0IHBhcmFtZXRlciBpcyBvZiB0eXBlIFwiK09iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKStcIiwgc3RyaW5nIGV4cGVjdGVkXCIpKTtpZihhPW4sKHU9dCkmJiF1LnNpbGVudCYmKGEmJmNvbnNvbGUud2FybihcIm1hcmtlZCgpOiBjYWxsYmFjayBpcyBkZXByZWNhdGVkIHNpbmNlIHZlcnNpb24gNS4wLjAsIHNob3VsZCBub3QgYmUgdXNlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBmdXR1cmUuIFJlYWQgbW9yZSBoZXJlOiBodHRwczovL21hcmtlZC5qcy5vcmcvdXNpbmdfcHJvI2FzeW5jXCIpLCh1LnNhbml0aXplfHx1LnNhbml0aXplcikmJmNvbnNvbGUud2FybihcIm1hcmtlZCgpOiBzYW5pdGl6ZSBhbmQgc2FuaXRpemVyIHBhcmFtZXRlcnMgYXJlIGRlcHJlY2F0ZWQgc2luY2UgdmVyc2lvbiAwLjcuMCwgc2hvdWxkIG5vdCBiZSB1c2VkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIGZ1dHVyZS4gUmVhZCBtb3JlIGhlcmU6IGh0dHBzOi8vbWFya2VkLmpzLm9yZy8jL1VTSU5HX0FEVkFOQ0VELm1kI29wdGlvbnNcIiksIXUuaGlnaGxpZ2h0JiZcImxhbmd1YWdlLVwiPT09dS5sYW5nUHJlZml4fHxjb25zb2xlLndhcm4oXCJtYXJrZWQoKTogaGlnaGxpZ2h0IGFuZCBsYW5nUHJlZml4IHBhcmFtZXRlcnMgYXJlIGRlcHJlY2F0ZWQgc2luY2UgdmVyc2lvbiA1LjAuMCwgc2hvdWxkIG5vdCBiZSB1c2VkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIGZ1dHVyZS4gSW5zdGVhZCB1c2UgaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvbWFya2VkLWhpZ2hsaWdodC5cIiksdS5tYW5nbGUmJmNvbnNvbGUud2FybihcIm1hcmtlZCgpOiBtYW5nbGUgcGFyYW1ldGVyIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCwgYnV0IGlzIGRlcHJlY2F0ZWQgc2luY2UgdmVyc2lvbiA1LjAuMCwgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgZnV0dXJlLiBUbyBjbGVhciB0aGlzIHdhcm5pbmcsIGluc3RhbGwgaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvbWFya2VkLW1hbmdsZSwgb3IgZGlzYWJsZSBieSBzZXR0aW5nIGB7bWFuZ2xlOiBmYWxzZX1gLlwiKSx1LmJhc2VVcmwmJmNvbnNvbGUud2FybihcIm1hcmtlZCgpOiBiYXNlVXJsIHBhcmFtZXRlciBpcyBkZXByZWNhdGVkIHNpbmNlIHZlcnNpb24gNS4wLjAsIHNob3VsZCBub3QgYmUgdXNlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBmdXR1cmUuIEluc3RlYWQgdXNlIGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL21hcmtlZC1iYXNlLXVybC5cIiksdS5zbWFydHlwYW50cyYmY29uc29sZS53YXJuKFwibWFya2VkKCk6IHNtYXJ0eXBhbnRzIHBhcmFtZXRlciBpcyBkZXByZWNhdGVkIHNpbmNlIHZlcnNpb24gNS4wLjAsIHNob3VsZCBub3QgYmUgdXNlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBmdXR1cmUuIEluc3RlYWQgdXNlIGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL21hcmtlZC1zbWFydHlwYW50cy5cIiksdS54aHRtbCYmY29uc29sZS53YXJuKFwibWFya2VkKCk6IHhodG1sIHBhcmFtZXRlciBpcyBkZXByZWNhdGVkIHNpbmNlIHZlcnNpb24gNS4wLjAsIHNob3VsZCBub3QgYmUgdXNlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBmdXR1cmUuIEluc3RlYWQgdXNlIGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL21hcmtlZC14aHRtbC5cIiksdS5oZWFkZXJJZHN8fHUuaGVhZGVyUHJlZml4KSYmY29uc29sZS53YXJuKFwibWFya2VkKCk6IGhlYWRlcklkcyBhbmQgaGVhZGVyUHJlZml4IHBhcmFtZXRlcnMgZW5hYmxlZCBieSBkZWZhdWx0LCBidXQgYXJlIGRlcHJlY2F0ZWQgc2luY2UgdmVyc2lvbiA1LjAuMCwgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgZnV0dXJlLiBUbyBjbGVhciB0aGlzIHdhcm5pbmcsIGluc3RhbGwgIGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL21hcmtlZC1nZm0taGVhZGluZy1pZCwgb3IgZGlzYWJsZSBieSBzZXR0aW5nIGB7aGVhZGVySWRzOiBmYWxzZX1gLlwiKSx0Lmhvb2tzJiYodC5ob29rcy5vcHRpb25zPXQpLG4pe3ZhciBvLEQ9dC5oaWdobGlnaHQ7dHJ5e3QuaG9va3MmJihlPXQuaG9va3MucHJlcHJvY2VzcyhlKSksbz1mKGUsdCl9Y2F0Y2goZSl7cmV0dXJuIGwoZSl9dmFyIGMscD1mdW5jdGlvbih1KXt2YXIgZTtpZighdSl0cnl7dC53YWxrVG9rZW5zJiZJLndhbGtUb2tlbnMobyx0LndhbGtUb2tlbnMpLGU9ZyhvLHQpLHQuaG9va3MmJihlPXQuaG9va3MucG9zdHByb2Nlc3MoZSkpfWNhdGNoKGUpe3U9ZX1yZXR1cm4gdC5oaWdobGlnaHQ9RCx1P2wodSk6bihudWxsLGUpfTtyZXR1cm4hRHx8RC5sZW5ndGg8Mz9wKCk6KGRlbGV0ZSB0LmhpZ2hsaWdodCxvLmxlbmd0aD8oYz0wLEkud2Fsa1Rva2VucyhvLGZ1bmN0aW9uKHQpe1wiY29kZVwiPT09dC50eXBlJiYoYysrLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtEKHQudGV4dCx0LmxhbmcsZnVuY3Rpb24oZSx1KXtpZihlKXJldHVybiBwKGUpO251bGwhPXUmJnUhPT10LnRleHQmJih0LnRleHQ9dSx0LmVzY2FwZWQ9ITApLDA9PT0tLWMmJnAoKX0pfSwwKSl9KSx2b2lkKDA9PT1jJiZwKCkpKTpwKCkpfWlmKHQuYXN5bmMpcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0Lmhvb2tzP3QuaG9va3MucHJlcHJvY2VzcyhlKTplKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBmKGUsdCl9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiB0LndhbGtUb2tlbnM/UHJvbWlzZS5hbGwoSS53YWxrVG9rZW5zKGUsdC53YWxrVG9rZW5zKSkudGhlbihmdW5jdGlvbigpe3JldHVybiBlfSk6ZX0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGcoZSx0KX0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIHQuaG9va3M/dC5ob29rcy5wb3N0cHJvY2VzcyhlKTplfSkuY2F0Y2gobCk7dHJ5e3QuaG9va3MmJihlPXQuaG9va3MucHJlcHJvY2VzcyhlKSk7dmFyIGg9ZihlLHQpLEY9KHQud2Fsa1Rva2VucyYmSS53YWxrVG9rZW5zKGgsdC53YWxrVG9rZW5zKSxnKGgsdCkpO3JldHVybiBGPXQuaG9va3M/dC5ob29rcy5wb3N0cHJvY2VzcyhGKTpGfWNhdGNoKGUpe3JldHVybiBsKGUpfX19ZnVuY3Rpb24gSShlLHUsdCl7cmV0dXJuIFIoeS5sZXgsUy5wYXJzZSkoZSx1LHQpfVQucGFzc1Rocm91Z2hIb29rcz1uZXcgU2V0KFtcInByZXByb2Nlc3NcIixcInBvc3Rwcm9jZXNzXCJdKSxJLm9wdGlvbnM9SS5zZXRPcHRpb25zPWZ1bmN0aW9uKGUpe3JldHVybiBJLmRlZmF1bHRzPUEoe30sSS5kZWZhdWx0cyxlKSxlPUkuZGVmYXVsdHMsci5kZWZhdWx0cz1lLEl9LEkuZ2V0RGVmYXVsdHM9ZSxJLmRlZmF1bHRzPXIuZGVmYXVsdHMsSS51c2U9ZnVuY3Rpb24oKXtmb3IodmFyIEQ9SS5kZWZhdWx0cy5leHRlbnNpb25zfHx7cmVuZGVyZXJzOnt9LGNoaWxkVG9rZW5zOnt9fSxlPWFyZ3VtZW50cy5sZW5ndGgsdT1uZXcgQXJyYXkoZSksdD0wO3Q8ZTt0KyspdVt0XT1hcmd1bWVudHNbdF07dS5mb3JFYWNoKGZ1bmN0aW9uKHMpe3ZhciB0LGU9QSh7fSxzKTtpZihlLmFzeW5jPUkuZGVmYXVsdHMuYXN5bmN8fGUuYXN5bmN8fCExLHMuZXh0ZW5zaW9ucyYmKHMuZXh0ZW5zaW9ucy5mb3JFYWNoKGZ1bmN0aW9uKHIpe2lmKCFyLm5hbWUpdGhyb3cgbmV3IEVycm9yKFwiZXh0ZW5zaW9uIG5hbWUgcmVxdWlyZWRcIik7dmFyIGk7aWYoci5yZW5kZXJlciYmKGk9RC5yZW5kZXJlcnNbci5uYW1lXSxELnJlbmRlcmVyc1tyLm5hbWVdPWk/ZnVuY3Rpb24oKXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCx1PW5ldyBBcnJheShlKSx0PTA7dDxlO3QrKyl1W3RdPWFyZ3VtZW50c1t0XTt2YXIgbj1yLnJlbmRlcmVyLmFwcGx5KHRoaXMsdSk7cmV0dXJuIG49ITE9PT1uP2kuYXBwbHkodGhpcyx1KTpufTpyLnJlbmRlcmVyKSxyLnRva2VuaXplcil7aWYoIXIubGV2ZWx8fFwiYmxvY2tcIiE9PXIubGV2ZWwmJlwiaW5saW5lXCIhPT1yLmxldmVsKXRocm93IG5ldyBFcnJvcihcImV4dGVuc2lvbiBsZXZlbCBtdXN0IGJlICdibG9jaycgb3IgJ2lubGluZSdcIik7RFtyLmxldmVsXT9EW3IubGV2ZWxdLnVuc2hpZnQoci50b2tlbml6ZXIpOkRbci5sZXZlbF09W3IudG9rZW5pemVyXSxyLnN0YXJ0JiYoXCJibG9ja1wiPT09ci5sZXZlbD9ELnN0YXJ0QmxvY2s/RC5zdGFydEJsb2NrLnB1c2goci5zdGFydCk6RC5zdGFydEJsb2NrPVtyLnN0YXJ0XTpcImlubGluZVwiPT09ci5sZXZlbCYmKEQuc3RhcnRJbmxpbmU/RC5zdGFydElubGluZS5wdXNoKHIuc3RhcnQpOkQuc3RhcnRJbmxpbmU9W3Iuc3RhcnRdKSl9ci5jaGlsZFRva2VucyYmKEQuY2hpbGRUb2tlbnNbci5uYW1lXT1yLmNoaWxkVG9rZW5zKX0pLGUuZXh0ZW5zaW9ucz1EKSxzLnJlbmRlcmVyKXt2YXIgdSxhPUkuZGVmYXVsdHMucmVuZGVyZXJ8fG5ldyBfO2Zvcih1IGluIHMucmVuZGVyZXIpIWZ1bmN0aW9uKHIpe3ZhciBpPWFbcl07YVtyXT1mdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHU9bmV3IEFycmF5KGUpLHQ9MDt0PGU7dCsrKXVbdF09YXJndW1lbnRzW3RdO3ZhciBuPXMucmVuZGVyZXJbcl0uYXBwbHkoYSx1KTtyZXR1cm4gbj0hMT09PW4/aS5hcHBseShhLHUpOm59fSh1KTtlLnJlbmRlcmVyPWF9aWYocy50b2tlbml6ZXIpe3ZhciBuLGw9SS5kZWZhdWx0cy50b2tlbml6ZXJ8fG5ldyBiO2ZvcihuIGluIHMudG9rZW5pemVyKSFmdW5jdGlvbihyKXt2YXIgaT1sW3JdO2xbcl09ZnVuY3Rpb24oKXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCx1PW5ldyBBcnJheShlKSx0PTA7dDxlO3QrKyl1W3RdPWFyZ3VtZW50c1t0XTt2YXIgbj1zLnRva2VuaXplcltyXS5hcHBseShsLHUpO3JldHVybiBuPSExPT09bj9pLmFwcGx5KGwsdSk6bn19KG4pO2UudG9rZW5pemVyPWx9aWYocy5ob29rcyl7dmFyIHIsbz1JLmRlZmF1bHRzLmhvb2tzfHxuZXcgVDtmb3IociBpbiBzLmhvb2tzKSFmdW5jdGlvbihyKXt2YXIgaT1vW3JdO1QucGFzc1Rocm91Z2hIb29rcy5oYXMocik/b1tyXT1mdW5jdGlvbihlKXtyZXR1cm4gSS5kZWZhdWx0cy5hc3luYz9Qcm9taXNlLnJlc29sdmUocy5ob29rc1tyXS5jYWxsKG8sZSkpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGkuY2FsbChvLGUpfSk6KGU9cy5ob29rc1tyXS5jYWxsKG8sZSksaS5jYWxsKG8sZSkpfTpvW3JdPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgsdT1uZXcgQXJyYXkoZSksdD0wO3Q8ZTt0KyspdVt0XT1hcmd1bWVudHNbdF07dmFyIG49cy5ob29rc1tyXS5hcHBseShvLHUpO3JldHVybiBuPSExPT09bj9pLmFwcGx5KG8sdSk6bn19KHIpO2UuaG9va3M9b31zLndhbGtUb2tlbnMmJih0PUkuZGVmYXVsdHMud2Fsa1Rva2VucyxlLndhbGtUb2tlbnM9ZnVuY3Rpb24oZSl7dmFyIHU9W107cmV0dXJuIHUucHVzaChzLndhbGtUb2tlbnMuY2FsbCh0aGlzLGUpKSx1PXQ/dS5jb25jYXQodC5jYWxsKHRoaXMsZSkpOnV9KSxJLnNldE9wdGlvbnMoZSl9KX0sSS53YWxrVG9rZW5zPWZ1bmN0aW9uKGUsYSl7Zm9yKHZhciBsLG89W10sdT1EKGUpOyEobD11KCkpLmRvbmU7KSFmdW5jdGlvbigpe3ZhciB1PWwudmFsdWU7c3dpdGNoKG89by5jb25jYXQoYS5jYWxsKEksdSkpLHUudHlwZSl7Y2FzZVwidGFibGVcIjpmb3IodmFyIGU9RCh1LmhlYWRlcik7ISh0PWUoKSkuZG9uZTspe3ZhciB0PXQudmFsdWU7bz1vLmNvbmNhdChJLndhbGtUb2tlbnModC50b2tlbnMsYSkpfWZvcih2YXIgbixyPUQodS5yb3dzKTshKG49cigpKS5kb25lOylmb3IodmFyIGk9RChuLnZhbHVlKTshKHM9aSgpKS5kb25lOyl7dmFyIHM9cy52YWx1ZTtvPW8uY29uY2F0KEkud2Fsa1Rva2VucyhzLnRva2VucyxhKSl9YnJlYWs7Y2FzZVwibGlzdFwiOm89by5jb25jYXQoSS53YWxrVG9rZW5zKHUuaXRlbXMsYSkpO2JyZWFrO2RlZmF1bHQ6SS5kZWZhdWx0cy5leHRlbnNpb25zJiZJLmRlZmF1bHRzLmV4dGVuc2lvbnMuY2hpbGRUb2tlbnMmJkkuZGVmYXVsdHMuZXh0ZW5zaW9ucy5jaGlsZFRva2Vuc1t1LnR5cGVdP0kuZGVmYXVsdHMuZXh0ZW5zaW9ucy5jaGlsZFRva2Vuc1t1LnR5cGVdLmZvckVhY2goZnVuY3Rpb24oZSl7bz1vLmNvbmNhdChJLndhbGtUb2tlbnModVtlXSxhKSl9KTp1LnRva2VucyYmKG89by5jb25jYXQoSS53YWxrVG9rZW5zKHUudG9rZW5zLGEpKSl9fSgpO3JldHVybiBvfSxJLnBhcnNlSW5saW5lPVIoeS5sZXhJbmxpbmUsUy5wYXJzZUlubGluZSksSS5QYXJzZXI9UyxJLnBhcnNlcj1TLnBhcnNlLEkuUmVuZGVyZXI9XyxJLlRleHRSZW5kZXJlcj16LEkuTGV4ZXI9eSxJLmxleGVyPXkubGV4LEkuVG9rZW5pemVyPWIsSS5TbHVnZ2VyPSQsSS5Ib29rcz1UO3ZhciBrPShJLnBhcnNlPUkpLm9wdGlvbnMsTD1JLnNldE9wdGlvbnMsVT1JLnVzZSxRPUkud2Fsa1Rva2VucyxNPUkucGFyc2VJbmxpbmUsTj1JLEg9Uy5wYXJzZSxYPXkubGV4O3IuSG9va3M9VCxyLkxleGVyPXksci5QYXJzZXI9UyxyLlJlbmRlcmVyPV8sci5TbHVnZ2VyPSQsci5UZXh0UmVuZGVyZXI9eixyLlRva2VuaXplcj1iLHIuZ2V0RGVmYXVsdHM9ZSxyLmxleGVyPVgsci5tYXJrZWQ9SSxyLm9wdGlvbnM9ayxyLnBhcnNlPU4sci5wYXJzZUlubGluZT1NLHIucGFyc2VyPUgsci5zZXRPcHRpb25zPUwsci51c2U9VSxyLndhbGtUb2tlbnM9UX0pOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///30\n");
  1189. /***/ }),
  1190. /* 31 */
  1191. /*!************************************************************************************!*\
  1192. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/index/config.js ***!
  1193. \************************************************************************************/
  1194. /*! no static exports found */
  1195. /***/ (function(module, exports) {
  1196. eval("var config = {\n post: \"POST\",\n get: \"GET\",\n openid: 'openid',\n type_ai: 'type_ai',\n type_self: 'type_self'\n};\nmodule.exports = config;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaW5kZXgvY29uZmlnLmpzIl0sIm5hbWVzIjpbImNvbmZpZyIsInBvc3QiLCJnZXQiLCJvcGVuaWQiLCJ0eXBlX2FpIiwidHlwZV9zZWxmIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBTUEsTUFBTSxHQUFHO0VBQ2RDLElBQUksRUFBQyxNQUFNO0VBQ1hDLEdBQUcsRUFBQyxLQUFLO0VBQ1RDLE1BQU0sRUFBQyxRQUFRO0VBQ2ZDLE9BQU8sRUFBQyxTQUFTO0VBQ2pCQyxTQUFTLEVBQUM7QUFDWCxDQUFDO0FBQ0RDLE1BQU0sQ0FBQ0MsT0FBTyxHQUFHUCxNQUFNIiwiZmlsZSI6IjMxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgY29uZmlnID0ge1xuXHRwb3N0OlwiUE9TVFwiLFxuXHRnZXQ6XCJHRVRcIixcblx0b3BlbmlkOidvcGVuaWQnLFxuXHR0eXBlX2FpOid0eXBlX2FpJyxcblx0dHlwZV9zZWxmOid0eXBlX3NlbGYnLFxufTtcbm1vZHVsZS5leHBvcnRzID0gY29uZmlnOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///31\n");
  1197. /***/ }),
  1198. /* 32 */
  1199. /*!***********************************************************************************************!*\
  1200. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/highlight.js/lib/common.js ***!
  1201. \***********************************************************************************************/
  1202. /*! no static exports found */
  1203. /***/ (function(module, exports, __webpack_require__) {
  1204. eval("var hljs = __webpack_require__(/*! ./core */ 33);\nhljs.registerLanguage('xml', __webpack_require__(/*! ./languages/xml */ 55));\nhljs.registerLanguage('bash', __webpack_require__(/*! ./languages/bash */ 56));\nhljs.registerLanguage('c', __webpack_require__(/*! ./languages/c */ 57));\nhljs.registerLanguage('cpp', __webpack_require__(/*! ./languages/cpp */ 58));\nhljs.registerLanguage('csharp', __webpack_require__(/*! ./languages/csharp */ 59));\nhljs.registerLanguage('css', __webpack_require__(/*! ./languages/css */ 60));\nhljs.registerLanguage('markdown', __webpack_require__(/*! ./languages/markdown */ 61));\nhljs.registerLanguage('diff', __webpack_require__(/*! ./languages/diff */ 62));\nhljs.registerLanguage('ruby', __webpack_require__(/*! ./languages/ruby */ 63));\nhljs.registerLanguage('go', __webpack_require__(/*! ./languages/go */ 64));\nhljs.registerLanguage('graphql', __webpack_require__(/*! ./languages/graphql */ 65));\nhljs.registerLanguage('ini', __webpack_require__(/*! ./languages/ini */ 66));\nhljs.registerLanguage('java', __webpack_require__(/*! ./languages/java */ 67));\nhljs.registerLanguage('javascript', __webpack_require__(/*! ./languages/javascript */ 68));\nhljs.registerLanguage('json', __webpack_require__(/*! ./languages/json */ 69));\nhljs.registerLanguage('kotlin', __webpack_require__(/*! ./languages/kotlin */ 70));\nhljs.registerLanguage('less', __webpack_require__(/*! ./languages/less */ 71));\nhljs.registerLanguage('lua', __webpack_require__(/*! ./languages/lua */ 72));\nhljs.registerLanguage('makefile', __webpack_require__(/*! ./languages/makefile */ 73));\nhljs.registerLanguage('perl', __webpack_require__(/*! ./languages/perl */ 74));\nhljs.registerLanguage('objectivec', __webpack_require__(/*! ./languages/objectivec */ 75));\nhljs.registerLanguage('php', __webpack_require__(/*! ./languages/php */ 76));\nhljs.registerLanguage('php-template', __webpack_require__(/*! ./languages/php-template */ 77));\nhljs.registerLanguage('plaintext', __webpack_require__(/*! ./languages/plaintext */ 78));\nhljs.registerLanguage('python', __webpack_require__(/*! ./languages/python */ 79));\nhljs.registerLanguage('python-repl', __webpack_require__(/*! ./languages/python-repl */ 80));\nhljs.registerLanguage('r', __webpack_require__(/*! ./languages/r */ 81));\nhljs.registerLanguage('rust', __webpack_require__(/*! ./languages/rust */ 82));\nhljs.registerLanguage('scss', __webpack_require__(/*! ./languages/scss */ 83));\nhljs.registerLanguage('shell', __webpack_require__(/*! ./languages/shell */ 84));\nhljs.registerLanguage('sql', __webpack_require__(/*! ./languages/sql */ 85));\nhljs.registerLanguage('swift', __webpack_require__(/*! ./languages/swift */ 86));\nhljs.registerLanguage('yaml', __webpack_require__(/*! ./languages/yaml */ 87));\nhljs.registerLanguage('typescript', __webpack_require__(/*! ./languages/typescript */ 88));\nhljs.registerLanguage('vbnet', __webpack_require__(/*! ./languages/vbnet */ 89));\nhljs.registerLanguage('wasm', __webpack_require__(/*! ./languages/wasm */ 90));\nhljs.HighlightJS = hljs;\nhljs.default = hljs;\nmodule.exports = hljs;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaGlnaGxpZ2h0LmpzL2xpYi9jb21tb24uanMiXSwibmFtZXMiOlsiaGxqcyIsInJlcXVpcmUiLCJyZWdpc3Rlckxhbmd1YWdlIiwiSGlnaGxpZ2h0SlMiLCJkZWZhdWx0IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsSUFBSSxHQUFHQyxtQkFBTyxDQUFDLGdCQUFRLENBQUM7QUFFNUJELElBQUksQ0FBQ0UsZ0JBQWdCLENBQUMsS0FBSyxFQUFFRCxtQkFBTyxDQUFDLHlCQUFpQixDQUFDLENBQUM7QUFDeERELElBQUksQ0FBQ0UsZ0JBQWdCLENBQUMsTUFBTSxFQUFFRCxtQkFBTyxDQUFDLDBCQUFrQixDQUFDLENBQUM7QUFDMURELElBQUksQ0FBQ0UsZ0JBQWdCLENBQUMsR0FBRyxFQUFFRCxtQkFBTyxDQUFDLHVCQUFlLENBQUMsQ0FBQztBQUNwREQsSUFBSSxDQUFDRSxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUVELG1CQUFPLENBQUMseUJBQWlCLENBQUMsQ0FBQztBQUN4REQsSUFBSSxDQUFDRSxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUVELG1CQUFPLENBQUMsNEJBQW9CLENBQUMsQ0FBQztBQUM5REQsSUFBSSxDQUFDRSxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUVELG1CQUFPLENBQUMseUJBQWlCLENBQUMsQ0FBQztBQUN4REQsSUFBSSxDQUFDRSxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUVELG1CQUFPLENBQUMsOEJBQXNCLENBQUMsQ0FBQztBQUNsRUQsSUFBSSxDQUFDRSxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUVELG1CQUFPLENBQUMsMEJBQWtCLENBQUMsQ0FBQztBQUMxREQsSUFBSSxDQUFDRSxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUVELG1CQUFPLENBQUMsMEJBQWtCLENBQUMsQ0FBQztBQUMxREQsSUFBSSxDQUFDRSxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUVELG1CQUFPLENBQUMsd0JBQWdCLENBQUMs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RTFERCxJQUFJLENBQUNHLFdBQVcsR0FBR0gsSUFBSTtBQUN2QkEsSUFBSSxDQUFDSSxPQUFPLEdBQUdKLElBQUk7QUFDbkJLLE1BQU0sQ0FBQ0MsT0FBTyxHQUFHTixJQUFJIiwiZmlsZSI6IjMyLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGhsanMgPSByZXF1aXJlKCcuL2NvcmUnKTtcblxuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCd4bWwnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy94bWwnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2Jhc2gnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9iYXNoJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdjJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvYycpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnY3BwJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvY3BwJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdjc2hhcnAnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9jc2hhcnAnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2NzcycsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2NzcycpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnbWFya2Rvd24nLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9tYXJrZG93bicpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnZGlmZicsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2RpZmYnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3J1YnknLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9ydWJ5JykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdnbycsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2dvJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdncmFwaHFsJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvZ3JhcGhxbCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnaW5pJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvaW5pJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdqYXZhJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvamF2YScpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnamF2YXNjcmlwdCcsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2phdmFzY3JpcHQnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2pzb24nLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9qc29uJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdrb3RsaW4nLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9rb3RsaW4nKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2xlc3MnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9sZXNzJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdsdWEnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9sdWEnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ21ha2VmaWxlJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvbWFrZWZpbGUnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3BlcmwnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9wZXJsJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdvYmplY3RpdmVjJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvb2JqZWN0aXZlYycpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgncGhwJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvcGhwJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdwaHAtdGVtcGxhdGUnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9waHAtdGVtcGxhdGUnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3BsYWludGV4dCcsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL3BsYWludGV4dCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgncHl0aG9uJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvcHl0aG9uJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdweXRob24tcmVwbCcsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL3B5dGhvbi1yZXBsJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdyJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvcicpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgncnVzdCcsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL3J1c3QnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3Njc3MnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9zY3NzJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdzaGVsbCcsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL3NoZWxsJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdzcWwnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9zcWwnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3N3aWZ0JywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvc3dpZnQnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3lhbWwnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy95YW1sJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCd0eXBlc2NyaXB0JywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvdHlwZXNjcmlwdCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgndmJuZXQnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy92Ym5ldCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnd2FzbScsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL3dhc20nKSk7XG5cbmhsanMuSGlnaGxpZ2h0SlMgPSBobGpzXG5obGpzLmRlZmF1bHQgPSBobGpzXG5tb2R1bGUuZXhwb3J0cyA9IGhsanM7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///32\n");
  1205. /***/ }),
  1206. /* 33 */
  1207. /*!*********************************************************************************************!*\
  1208. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/highlight.js/lib/core.js ***!
  1209. \*********************************************************************************************/
  1210. /*! no static exports found */
  1211. /***/ (function(module, exports, __webpack_require__) {
  1212. eval("/* WEBPACK VAR INJECTION */(function(__f__) {var _wrapNativeSuper = __webpack_require__(/*! @babel/runtime/helpers/wrapNativeSuper */ 34);\nvar _slicedToArray = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ 40);\nvar _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ 46);\nvar _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ 47);\nvar _getPrototypeOf = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ 35);\nvar _toConsumableArray = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ 49);\nvar _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ 53);\nvar _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ 54);\nvar _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4);\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n/* eslint-disable no-multi-assign */\n\nfunction deepFreeze(obj) {\n if (obj instanceof Map) {\n obj.clear = obj.delete = obj.set = function () {\n throw new Error('map is read-only');\n };\n } else if (obj instanceof Set) {\n obj.add = obj.clear = obj.delete = function () {\n throw new Error('set is read-only');\n };\n }\n\n // Freeze self\n Object.freeze(obj);\n Object.getOwnPropertyNames(obj).forEach(function (name) {\n var prop = obj[name];\n var type = _typeof(prop);\n\n // Freeze prop if it is an object or function and also not already frozen\n if ((type === 'object' || type === 'function') && !Object.isFrozen(prop)) {\n deepFreeze(prop);\n }\n });\n return obj;\n}\n\n/** @typedef {import('highlight.js').CallbackResponse} CallbackResponse */\n/** @typedef {import('highlight.js').CompiledMode} CompiledMode */\n/** @implements CallbackResponse */\nvar Response = /*#__PURE__*/function () {\n \"use strict\";\n\n /**\n * @param {CompiledMode} mode\n */\n function Response(mode) {\n _classCallCheck(this, Response);\n // eslint-disable-next-line no-undefined\n if (mode.data === undefined) mode.data = {};\n this.data = mode.data;\n this.isMatchIgnored = false;\n }\n _createClass(Response, [{\n key: \"ignoreMatch\",\n value: function ignoreMatch() {\n this.isMatchIgnored = true;\n }\n }]);\n return Response;\n}();\n/**\n * @param {string} value\n * @returns {string}\n */\nfunction escapeHTML(value) {\n return value.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/\"/g, '&quot;').replace(/'/g, '&#x27;');\n}\n\n/**\n * performs a shallow merge of multiple objects into one\n *\n * @template T\n * @param {T} original\n * @param {Record<string,any>[]} objects\n * @returns {T} a single new object\n */\nfunction inherit$1(original) {\n /** @type Record<string,any> */\n var result = Object.create(null);\n for (var key in original) {\n result[key] = original[key];\n }\n for (var _len = arguments.length, objects = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n objects[_key - 1] = arguments[_key];\n }\n objects.forEach(function (obj) {\n for (var _key2 in obj) {\n result[_key2] = obj[_key2];\n }\n });\n return (/** @type {T} */result\n );\n}\n\n/**\n * @typedef {object} Renderer\n * @property {(text: string) => void} addText\n * @property {(node: Node) => void} openNode\n * @property {(node: Node) => void} closeNode\n * @property {() => string} value\n */\n\n/** @typedef {{scope?: string, language?: string, sublanguage?: boolean}} Node */\n/** @typedef {{walk: (r: Renderer) => void}} Tree */\n/** */\n\nvar SPAN_CLOSE = '</span>';\n\n/**\n * Determines if a node needs to be wrapped in <span>\n *\n * @param {Node} node */\nvar emitsWrappingTags = function emitsWrappingTags(node) {\n // rarely we can have a sublanguage where language is undefined\n // TODO: track down why\n return !!node.scope;\n};\n\n/**\n *\n * @param {string} name\n * @param {{prefix:string}} options\n */\nvar scopeToCSSClass = function scopeToCSSClass(name, _ref) {\n var prefix = _ref.prefix;\n // sub-language\n if (name.startsWith(\"language:\")) {\n return name.replace(\"language:\", \"language-\");\n }\n // tiered scope: comment.line\n if (name.includes(\".\")) {\n var pieces = name.split(\".\");\n return [\"\".concat(prefix).concat(pieces.shift())].concat(_toConsumableArray(pieces.map(function (x, i) {\n return \"\".concat(x).concat(\"_\".repeat(i + 1));\n }))).join(\" \");\n }\n // simple scope\n return \"\".concat(prefix).concat(name);\n};\n\n/** @type {Renderer} */\nvar HTMLRenderer = /*#__PURE__*/function () {\n \"use strict\";\n\n /**\n * Creates a new HTMLRenderer\n *\n * @param {Tree} parseTree - the parse tree (must support `walk` API)\n * @param {{classPrefix: string}} options\n */\n function HTMLRenderer(parseTree, options) {\n _classCallCheck(this, HTMLRenderer);\n this.buffer = \"\";\n this.classPrefix = options.classPrefix;\n parseTree.walk(this);\n }\n\n /**\n * Adds texts to the output stream\n *\n * @param {string} text */\n _createClass(HTMLRenderer, [{\n key: \"addText\",\n value: function addText(text) {\n this.buffer += escapeHTML(text);\n }\n\n /**\n * Adds a node open to the output stream (if needed)\n *\n * @param {Node} node */\n }, {\n key: \"openNode\",\n value: function openNode(node) {\n if (!emitsWrappingTags(node)) return;\n var className = scopeToCSSClass(node.scope, {\n prefix: this.classPrefix\n });\n this.span(className);\n }\n\n /**\n * Adds a node close to the output stream (if needed)\n *\n * @param {Node} node */\n }, {\n key: \"closeNode\",\n value: function closeNode(node) {\n if (!emitsWrappingTags(node)) return;\n this.buffer += SPAN_CLOSE;\n }\n\n /**\n * returns the accumulated buffer\n */\n }, {\n key: \"value\",\n value: function value() {\n return this.buffer;\n }\n\n // helpers\n\n /**\n * Builds a span element\n *\n * @param {string} className */\n }, {\n key: \"span\",\n value: function span(className) {\n this.buffer += \"<span class=\\\"\".concat(className, \"\\\">\");\n }\n }]);\n return HTMLRenderer;\n}();\n/** @typedef {{scope?: string, language?: string, sublanguage?: boolean, children: Node[]} | string} Node */\n/** @typedef {{scope?: string, language?: string, sublanguage?: boolean, children: Node[]} } DataNode */\n/** @typedef {import('highlight.js').Emitter} Emitter */\n/** */\n/** @returns {DataNode} */\nvar newNode = function newNode() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n /** @type DataNode */\n var result = {\n children: []\n };\n Object.assign(result, opts);\n return result;\n};\nvar TokenTree = /*#__PURE__*/function () {\n \"use strict\";\n\n function TokenTree() {\n _classCallCheck(this, TokenTree);\n /** @type DataNode */\n this.rootNode = newNode();\n this.stack = [this.rootNode];\n }\n _createClass(TokenTree, [{\n key: \"top\",\n get: function get() {\n return this.stack[this.stack.length - 1];\n }\n }, {\n key: \"root\",\n get: function get() {\n return this.rootNode;\n }\n\n /** @param {Node} node */\n }, {\n key: \"add\",\n value: function add(node) {\n this.top.children.push(node);\n }\n\n /** @param {string} scope */\n }, {\n key: \"openNode\",\n value: function openNode(scope) {\n /** @type Node */\n var node = newNode({\n scope: scope\n });\n this.add(node);\n this.stack.push(node);\n }\n }, {\n key: \"closeNode\",\n value: function closeNode() {\n if (this.stack.length > 1) {\n return this.stack.pop();\n }\n // eslint-disable-next-line no-undefined\n return undefined;\n }\n }, {\n key: \"closeAllNodes\",\n value: function closeAllNodes() {\n while (this.closeNode()) {\n ;\n }\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return JSON.stringify(this.rootNode, null, 4);\n }\n\n /**\n * @typedef { import(\"./html_renderer\").Renderer } Renderer\n * @param {Renderer} builder\n */\n }, {\n key: \"walk\",\n value: function walk(builder) {\n // this does not\n return this.constructor._walk(builder, this.rootNode);\n // this works\n // return TokenTree._walk(builder, this.rootNode);\n }\n\n /**\n * @param {Renderer} builder\n * @param {Node} node\n */\n }], [{\n key: \"_walk\",\n value: function _walk(builder, node) {\n var _this = this;\n if (typeof node === \"string\") {\n builder.addText(node);\n } else if (node.children) {\n builder.openNode(node);\n node.children.forEach(function (child) {\n return _this._walk(builder, child);\n });\n builder.closeNode(node);\n }\n return builder;\n }\n\n /**\n * @param {Node} node\n */\n }, {\n key: \"_collapse\",\n value: function _collapse(node) {\n if (typeof node === \"string\") return;\n if (!node.children) return;\n if (node.children.every(function (el) {\n return typeof el === \"string\";\n })) {\n // node.text = node.children.join(\"\");\n // delete node.children;\n node.children = [node.children.join(\"\")];\n } else {\n node.children.forEach(function (child) {\n TokenTree._collapse(child);\n });\n }\n }\n }]);\n return TokenTree;\n}();\n/**\n Currently this is all private API, but this is the minimal API necessary\n that an Emitter must implement to fully support the parser.\n\n Minimal interface:\n\n - addText(text)\n - __addSublanguage(emitter, subLanguageName)\n - startScope(scope)\n - endScope()\n - finalize()\n - toHTML()\n\n*/\n/**\n * @implements {Emitter}\n */\nvar TokenTreeEmitter = /*#__PURE__*/function (_TokenTree) {\n \"use strict\";\n\n _inherits(TokenTreeEmitter, _TokenTree);\n var _super = _createSuper(TokenTreeEmitter);\n /**\n * @param {*} options\n */\n function TokenTreeEmitter(options) {\n var _this2;\n _classCallCheck(this, TokenTreeEmitter);\n _this2 = _super.call(this);\n _this2.options = options;\n return _this2;\n }\n\n /**\n * @param {string} text\n */\n _createClass(TokenTreeEmitter, [{\n key: \"addText\",\n value: function addText(text) {\n if (text === \"\") {\n return;\n }\n this.add(text);\n }\n\n /** @param {string} scope */\n }, {\n key: \"startScope\",\n value: function startScope(scope) {\n this.openNode(scope);\n }\n }, {\n key: \"endScope\",\n value: function endScope() {\n this.closeNode();\n }\n\n /**\n * @param {Emitter & {root: DataNode}} emitter\n * @param {string} name\n */\n }, {\n key: \"__addSublanguage\",\n value: function __addSublanguage(emitter, name) {\n /** @type DataNode */\n var node = emitter.root;\n if (name) node.scope = \"language:\".concat(name);\n this.add(node);\n }\n }, {\n key: \"toHTML\",\n value: function toHTML() {\n var renderer = new HTMLRenderer(this, this.options);\n return renderer.value();\n }\n }, {\n key: \"finalize\",\n value: function finalize() {\n this.closeAllNodes();\n return true;\n }\n }]);\n return TokenTreeEmitter;\n}(TokenTree);\n/**\n * @param {string} value\n * @returns {RegExp}\n * */\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n return concat('(?=', re, ')');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction anyNumberOfTimes(re) {\n return concat('(?:', re, ')*');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction optional(re) {\n return concat('(?:', re, ')?');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key3 = 0; _key3 < _len2; _key3++) {\n args[_key3] = arguments[_key3];\n }\n var joined = args.map(function (x) {\n return source(x);\n }).join(\"\");\n return joined;\n}\n\n/**\n * @param { Array<string | RegExp | Object> } args\n * @returns {object}\n */\nfunction stripOptionsFromArgs(args) {\n var opts = args[args.length - 1];\n if (_typeof(opts) === 'object' && opts.constructor === Object) {\n args.splice(args.length - 1, 1);\n return opts;\n } else {\n return {};\n }\n}\n\n/** @typedef { {capture?: boolean} } RegexEitherOptions */\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] | [...(RegExp | string)[], RegexEitherOptions]} args\n * @returns {string}\n */\nfunction either() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key4 = 0; _key4 < _len3; _key4++) {\n args[_key4] = arguments[_key4];\n }\n /** @type { object & {capture?: boolean} } */\n var opts = stripOptionsFromArgs(args);\n var joined = '(' + (opts.capture ? \"\" : \"?:\") + args.map(function (x) {\n return source(x);\n }).join(\"|\") + \")\";\n return joined;\n}\n\n/**\n * @param {RegExp | string} re\n * @returns {number}\n */\nfunction countMatchGroups(re) {\n return new RegExp(re.toString() + '|').exec('').length - 1;\n}\n\n/**\n * Does lexeme start with a regular expression match at the beginning\n * @param {RegExp} re\n * @param {string} lexeme\n */\nfunction startsWith(re, lexeme) {\n var match = re && re.exec(lexeme);\n return match && match.index === 0;\n}\n\n// BACKREF_RE matches an open parenthesis or backreference. To avoid\n// an incorrect parse, it additionally matches the following:\n// - [...] elements, where the meaning of parentheses and escapes change\n// - other escape sequences, so we do not misparse escape sequences as\n// interesting elements\n// - non-matching or lookahead parentheses, which do not capture. These\n// follow the '(' with a '?'.\nvar BACKREF_RE = /\\[(?:[^\\\\\\]]|\\\\.)*\\]|\\(\\??|\\\\([1-9][0-9]*)|\\\\./;\n\n// **INTERNAL** Not intended for outside usage\n// join logically computes regexps.join(separator), but fixes the\n// backreferences so they continue to match.\n// it also places each individual regular expression into it's own\n// match group, keeping track of the sequencing of those match groups\n// is currently an exercise for the caller. :-)\n/**\n * @param {(string | RegExp)[]} regexps\n * @param {{joinWith: string}} opts\n * @returns {string}\n */\nfunction _rewriteBackreferences(regexps, _ref2) {\n var joinWith = _ref2.joinWith;\n var numCaptures = 0;\n return regexps.map(function (regex) {\n numCaptures += 1;\n var offset = numCaptures;\n var re = source(regex);\n var out = '';\n while (re.length > 0) {\n var match = BACKREF_RE.exec(re);\n if (!match) {\n out += re;\n break;\n }\n out += re.substring(0, match.index);\n re = re.substring(match.index + match[0].length);\n if (match[0][0] === '\\\\' && match[1]) {\n // Adjust the backreference.\n out += '\\\\' + String(Number(match[1]) + offset);\n } else {\n out += match[0];\n if (match[0] === '(') {\n numCaptures++;\n }\n }\n }\n return out;\n }).map(function (re) {\n return \"(\".concat(re, \")\");\n }).join(joinWith);\n}\n\n/** @typedef {import('highlight.js').Mode} Mode */\n/** @typedef {import('highlight.js').ModeCallback} ModeCallback */\n\n// Common regexps\nvar MATCH_NOTHING_RE = /\\b\\B/;\nvar IDENT_RE = '[a-zA-Z]\\\\w*';\nvar UNDERSCORE_IDENT_RE = '[a-zA-Z_]\\\\w*';\nvar NUMBER_RE = '\\\\b\\\\d+(\\\\.\\\\d+)?';\nvar C_NUMBER_RE = '(-?)(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)'; // 0x..., 0..., decimal, float\nvar BINARY_NUMBER_RE = '\\\\b(0b[01]+)'; // 0b...\nvar RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\\\*|\\\\*=|\\\\+|\\\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\\\?|\\\\[|\\\\{|\\\\(|\\\\^|\\\\^=|\\\\||\\\\|=|\\\\|\\\\||~';\n\n/**\n* @param { Partial<Mode> & {binary?: string | RegExp} } opts\n*/\nvar SHEBANG = function SHEBANG() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var beginShebang = /^#![ ]*\\//;\n if (opts.binary) {\n opts.begin = concat(beginShebang, /.*\\b/, opts.binary, /\\b.*/);\n }\n return inherit$1({\n scope: 'meta',\n begin: beginShebang,\n end: /$/,\n relevance: 0,\n /** @type {ModeCallback} */\n \"on:begin\": function onBegin(m, resp) {\n if (m.index !== 0) resp.ignoreMatch();\n }\n }, opts);\n};\n\n// Common modes\nvar BACKSLASH_ESCAPE = {\n begin: '\\\\\\\\[\\\\s\\\\S]',\n relevance: 0\n};\nvar APOS_STRING_MODE = {\n scope: 'string',\n begin: '\\'',\n end: '\\'',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nvar QUOTE_STRING_MODE = {\n scope: 'string',\n begin: '\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nvar PHRASAL_WORDS_MODE = {\n begin: /\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b/\n};\n/**\n * Creates a comment mode\n *\n * @param {string | RegExp} begin\n * @param {string | RegExp} end\n * @param {Mode | {}} [modeOptions]\n * @returns {Partial<Mode>}\n */\nvar COMMENT = function COMMENT(begin, end) {\n var modeOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var mode = inherit$1({\n scope: 'comment',\n begin: begin,\n end: end,\n contains: []\n }, modeOptions);\n mode.contains.push({\n scope: 'doctag',\n // hack to avoid the space from being included. the space is necessary to\n // match here to prevent the plain text rule below from gobbling up doctags\n begin: '[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)',\n end: /(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,\n excludeBegin: true,\n relevance: 0\n });\n var ENGLISH_WORD = either(\n // list of common 1 and 2 letter words in English\n \"I\", \"a\", \"is\", \"so\", \"us\", \"to\", \"at\", \"if\", \"in\", \"it\", \"on\",\n // note: this is not an exhaustive list of contractions, just popular ones\n /[A-Za-z]+['](d|ve|re|ll|t|s|n)/,\n // contractions - can't we'd they're let's, etc\n /[A-Za-z]+[-][a-z]+/,\n // `no-way`, etc.\n /[A-Za-z][a-z]{2,}/ // allow capitalized words at beginning of sentences\n );\n // looking like plain text, more likely to be a comment\n mode.contains.push({\n // TODO: how to include \", (, ) without breaking grammars that use these for\n // comment delimiters?\n // begin: /[ ]+([()\"]?([A-Za-z'-]{3,}|is|a|I|so|us|[tT][oO]|at|if|in|it|on)[.]?[()\":]?([.][ ]|[ ]|\\))){3}/\n // ---\n\n // this tries to find sequences of 3 english words in a row (without any\n // \"programming\" type syntax) this gives us a strong signal that we've\n // TRULY found a comment - vs perhaps scanning with the wrong language.\n // It's possible to find something that LOOKS like the start of the\n // comment - but then if there is no readable text - good chance it is a\n // false match and not a comment.\n //\n // for a visual example please see:\n // https://github.com/highlightjs/highlight.js/issues/2827\n\n begin: concat(/[ ]+/,\n // necessary to prevent us gobbling up doctags like /* @author Bob Mcgill */\n '(', ENGLISH_WORD, /[.]?[:]?([.][ ]|[ ])/, '){3}') // look for 3 words in a row\n });\n\n return mode;\n};\nvar C_LINE_COMMENT_MODE = COMMENT('//', '$');\nvar C_BLOCK_COMMENT_MODE = COMMENT('/\\\\*', '\\\\*/');\nvar HASH_COMMENT_MODE = COMMENT('#', '$');\nvar NUMBER_MODE = {\n scope: 'number',\n begin: NUMBER_RE,\n relevance: 0\n};\nvar C_NUMBER_MODE = {\n scope: 'number',\n begin: C_NUMBER_RE,\n relevance: 0\n};\nvar BINARY_NUMBER_MODE = {\n scope: 'number',\n begin: BINARY_NUMBER_RE,\n relevance: 0\n};\nvar REGEXP_MODE = {\n // this outer rule makes sure we actually have a WHOLE regex and not simply\n // an expression such as:\n //\n // 3 / something\n //\n // (which will then blow up when regex's `illegal` sees the newline)\n begin: /(?=\\/[^/\\n]*\\/)/,\n contains: [{\n scope: 'regexp',\n begin: /\\//,\n end: /\\/[gimuy]*/,\n illegal: /\\n/,\n contains: [BACKSLASH_ESCAPE, {\n begin: /\\[/,\n end: /\\]/,\n relevance: 0,\n contains: [BACKSLASH_ESCAPE]\n }]\n }]\n};\nvar TITLE_MODE = {\n scope: 'title',\n begin: IDENT_RE,\n relevance: 0\n};\nvar UNDERSCORE_TITLE_MODE = {\n scope: 'title',\n begin: UNDERSCORE_IDENT_RE,\n relevance: 0\n};\nvar METHOD_GUARD = {\n // excludes method names from keyword processing\n begin: '\\\\.\\\\s*' + UNDERSCORE_IDENT_RE,\n relevance: 0\n};\n\n/**\n * Adds end same as begin mechanics to a mode\n *\n * Your mode must include at least a single () match group as that first match\n * group is what is used for comparison\n * @param {Partial<Mode>} mode\n */\nvar END_SAME_AS_BEGIN = function END_SAME_AS_BEGIN(mode) {\n return Object.assign(mode, {\n /** @type {ModeCallback} */\n 'on:begin': function onBegin(m, resp) {\n resp.data._beginMatch = m[1];\n },\n /** @type {ModeCallback} */\n 'on:end': function onEnd(m, resp) {\n if (resp.data._beginMatch !== m[1]) resp.ignoreMatch();\n }\n });\n};\nvar MODES = /*#__PURE__*/Object.freeze({\n __proto__: null,\n MATCH_NOTHING_RE: MATCH_NOTHING_RE,\n IDENT_RE: IDENT_RE,\n UNDERSCORE_IDENT_RE: UNDERSCORE_IDENT_RE,\n NUMBER_RE: NUMBER_RE,\n C_NUMBER_RE: C_NUMBER_RE,\n BINARY_NUMBER_RE: BINARY_NUMBER_RE,\n RE_STARTERS_RE: RE_STARTERS_RE,\n SHEBANG: SHEBANG,\n BACKSLASH_ESCAPE: BACKSLASH_ESCAPE,\n APOS_STRING_MODE: APOS_STRING_MODE,\n QUOTE_STRING_MODE: QUOTE_STRING_MODE,\n PHRASAL_WORDS_MODE: PHRASAL_WORDS_MODE,\n COMMENT: COMMENT,\n C_LINE_COMMENT_MODE: C_LINE_COMMENT_MODE,\n C_BLOCK_COMMENT_MODE: C_BLOCK_COMMENT_MODE,\n HASH_COMMENT_MODE: HASH_COMMENT_MODE,\n NUMBER_MODE: NUMBER_MODE,\n C_NUMBER_MODE: C_NUMBER_MODE,\n BINARY_NUMBER_MODE: BINARY_NUMBER_MODE,\n REGEXP_MODE: REGEXP_MODE,\n TITLE_MODE: TITLE_MODE,\n UNDERSCORE_TITLE_MODE: UNDERSCORE_TITLE_MODE,\n METHOD_GUARD: METHOD_GUARD,\n END_SAME_AS_BEGIN: END_SAME_AS_BEGIN\n});\n\n/**\n@typedef {import('highlight.js').CallbackResponse} CallbackResponse\n@typedef {import('highlight.js').CompilerExt} CompilerExt\n*/\n\n// Grammar extensions / plugins\n// See: https://github.com/highlightjs/highlight.js/issues/2833\n\n// Grammar extensions allow \"syntactic sugar\" to be added to the grammar modes\n// without requiring any underlying changes to the compiler internals.\n\n// `compileMatch` being the perfect small example of now allowing a grammar\n// author to write `match` when they desire to match a single expression rather\n// than being forced to use `begin`. The extension then just moves `match` into\n// `begin` when it runs. Ie, no features have been added, but we've just made\n// the experience of writing (and reading grammars) a little bit nicer.\n\n// ------\n\n// TODO: We need negative look-behind support to do this properly\n/**\n * Skip a match if it has a preceding dot\n *\n * This is used for `beginKeywords` to prevent matching expressions such as\n * `bob.keyword.do()`. The mode compiler automatically wires this up as a\n * special _internal_ 'on:begin' callback for modes with `beginKeywords`\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\nfunction skipIfHasPrecedingDot(match, response) {\n var before = match.input[match.index - 1];\n if (before === \".\") {\n response.ignoreMatch();\n }\n}\n\n/**\n *\n * @type {CompilerExt}\n */\nfunction scopeClassName(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.className !== undefined) {\n mode.scope = mode.className;\n delete mode.className;\n }\n}\n\n/**\n * `beginKeywords` syntactic sugar\n * @type {CompilerExt}\n */\nfunction beginKeywords(mode, parent) {\n if (!parent) return;\n if (!mode.beginKeywords) return;\n\n // for languages with keywords that include non-word characters checking for\n // a word boundary is not sufficient, so instead we check for a word boundary\n // or whitespace - this does no harm in any case since our keyword engine\n // doesn't allow spaces in keywords anyways and we still check for the boundary\n // first\n mode.begin = '\\\\b(' + mode.beginKeywords.split(' ').join('|') + ')(?!\\\\.)(?=\\\\b|\\\\s)';\n mode.__beforeBegin = skipIfHasPrecedingDot;\n mode.keywords = mode.keywords || mode.beginKeywords;\n delete mode.beginKeywords;\n\n // prevents double relevance, the keywords themselves provide\n // relevance, the mode doesn't need to double it\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 0;\n}\n\n/**\n * Allow `illegal` to contain an array of illegal values\n * @type {CompilerExt}\n */\nfunction compileIllegal(mode, _parent) {\n if (!Array.isArray(mode.illegal)) return;\n mode.illegal = either.apply(void 0, _toConsumableArray(mode.illegal));\n}\n\n/**\n * `match` to match a single expression for readability\n * @type {CompilerExt}\n */\nfunction compileMatch(mode, _parent) {\n if (!mode.match) return;\n if (mode.begin || mode.end) throw new Error(\"begin & end are not supported with match\");\n mode.begin = mode.match;\n delete mode.match;\n}\n\n/**\n * provides the default 1 relevance to all modes\n * @type {CompilerExt}\n */\nfunction compileRelevance(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 1;\n}\n\n// allow beforeMatch to act as a \"qualifier\" for the match\n// the full match begin must be [beforeMatch][begin]\nvar beforeMatchExt = function beforeMatchExt(mode, parent) {\n if (!mode.beforeMatch) return;\n // starts conflicts with endsParent which we need to make sure the child\n // rule is not matched multiple times\n if (mode.starts) throw new Error(\"beforeMatch cannot be used with starts\");\n var originalMode = Object.assign({}, mode);\n Object.keys(mode).forEach(function (key) {\n delete mode[key];\n });\n mode.keywords = originalMode.keywords;\n mode.begin = concat(originalMode.beforeMatch, lookahead(originalMode.begin));\n mode.starts = {\n relevance: 0,\n contains: [Object.assign(originalMode, {\n endsParent: true\n })]\n };\n mode.relevance = 0;\n delete originalMode.beforeMatch;\n};\n\n// keywords that should have no default relevance value\nvar COMMON_KEYWORDS = ['of', 'and', 'for', 'in', 'not', 'or', 'if', 'then', 'parent',\n// common variable name\n'list',\n// common variable name\n'value' // common variable name\n];\n\nvar DEFAULT_KEYWORD_SCOPE = \"keyword\";\n\n/**\n * Given raw keywords from a language definition, compile them.\n *\n * @param {string | Record<string,string|string[]> | Array<string>} rawKeywords\n * @param {boolean} caseInsensitive\n */\nfunction compileKeywords(rawKeywords, caseInsensitive) {\n var scopeName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_KEYWORD_SCOPE;\n /** @type {import(\"highlight.js/private\").KeywordDict} */\n var compiledKeywords = Object.create(null);\n\n // input can be a string of keywords, an array of keywords, or a object with\n // named keys representing scopeName (which can then point to a string or array)\n if (typeof rawKeywords === 'string') {\n compileList(scopeName, rawKeywords.split(\" \"));\n } else if (Array.isArray(rawKeywords)) {\n compileList(scopeName, rawKeywords);\n } else {\n Object.keys(rawKeywords).forEach(function (scopeName) {\n // collapse all our objects back into the parent object\n Object.assign(compiledKeywords, compileKeywords(rawKeywords[scopeName], caseInsensitive, scopeName));\n });\n }\n return compiledKeywords;\n\n // ---\n\n /**\n * Compiles an individual list of keywords\n *\n * Ex: \"for if when while|5\"\n *\n * @param {string} scopeName\n * @param {Array<string>} keywordList\n */\n function compileList(scopeName, keywordList) {\n if (caseInsensitive) {\n keywordList = keywordList.map(function (x) {\n return x.toLowerCase();\n });\n }\n keywordList.forEach(function (keyword) {\n var pair = keyword.split('|');\n compiledKeywords[pair[0]] = [scopeName, scoreForKeyword(pair[0], pair[1])];\n });\n }\n}\n\n/**\n * Returns the proper score for a given keyword\n *\n * Also takes into account comment keywords, which will be scored 0 UNLESS\n * another score has been manually assigned.\n * @param {string} keyword\n * @param {string} [providedScore]\n */\nfunction scoreForKeyword(keyword, providedScore) {\n // manual scores always win over common keywords\n // so you can force a score of 1 if you really insist\n if (providedScore) {\n return Number(providedScore);\n }\n return commonKeyword(keyword) ? 0 : 1;\n}\n\n/**\n * Determines if a given keyword is common or not\n *\n * @param {string} keyword */\nfunction commonKeyword(keyword) {\n return COMMON_KEYWORDS.includes(keyword.toLowerCase());\n}\n\n/*\n\nFor the reasoning behind this please see:\nhttps://github.com/highlightjs/highlight.js/issues/2880#issuecomment-747275419\n\n*/\n\n/**\n * @type {Record<string, boolean>}\n */\nvar seenDeprecations = {};\n\n/**\n * @param {string} message\n */\nvar error = function error(message) {\n __f__(\"error\", message, \" at pages/highlight.js/lib/core.js:987\");\n};\n\n/**\n * @param {string} message\n * @param {any} args\n */\nvar warn = function warn(message) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key5 = 1; _key5 < _len4; _key5++) {\n args[_key5 - 1] = arguments[_key5];\n }\n __f__.apply(void 0, [\"log\", \"WARN: \".concat(message)].concat(args, [\" at pages/highlight.js/lib/core.js:995\"]));\n};\n\n/**\n * @param {string} version\n * @param {string} message\n */\nvar deprecated = function deprecated(version, message) {\n if (seenDeprecations[\"\".concat(version, \"/\").concat(message)]) return;\n __f__(\"log\", \"Deprecated as of \".concat(version, \". \").concat(message), \" at pages/highlight.js/lib/core.js:1005\");\n seenDeprecations[\"\".concat(version, \"/\").concat(message)] = true;\n};\n\n/* eslint-disable no-throw-literal */\n\n/**\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n*/\n\nvar MultiClassError = new Error();\n\n/**\n * Renumbers labeled scope names to account for additional inner match\n * groups that otherwise would break everything.\n *\n * Lets say we 3 match scopes:\n *\n * { 1 => ..., 2 => ..., 3 => ... }\n *\n * So what we need is a clean match like this:\n *\n * (a)(b)(c) => [ \"a\", \"b\", \"c\" ]\n *\n * But this falls apart with inner match groups:\n *\n * (a)(((b)))(c) => [\"a\", \"b\", \"b\", \"b\", \"c\" ]\n *\n * Our scopes are now \"out of alignment\" and we're repeating `b` 3 times.\n * What needs to happen is the numbers are remapped:\n *\n * { 1 => ..., 2 => ..., 5 => ... }\n *\n * We also need to know that the ONLY groups that should be output\n * are 1, 2, and 5. This function handles this behavior.\n *\n * @param {CompiledMode} mode\n * @param {Array<RegExp | string>} regexes\n * @param {{key: \"beginScope\"|\"endScope\"}} opts\n */\nfunction remapScopeNames(mode, regexes, _ref3) {\n var key = _ref3.key;\n var offset = 0;\n var scopeNames = mode[key];\n /** @type Record<number,boolean> */\n var emit = {};\n /** @type Record<number,string> */\n var positions = {};\n for (var i = 1; i <= regexes.length; i++) {\n positions[i + offset] = scopeNames[i];\n emit[i + offset] = true;\n offset += countMatchGroups(regexes[i - 1]);\n }\n // we use _emit to keep track of which match groups are \"top-level\" to avoid double\n // output from inside match groups\n mode[key] = positions;\n mode[key]._emit = emit;\n mode[key]._multi = true;\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction beginMultiClass(mode) {\n if (!Array.isArray(mode.begin)) return;\n if (mode.skip || mode.excludeBegin || mode.returnBegin) {\n error(\"skip, excludeBegin, returnBegin not compatible with beginScope: {}\");\n throw MultiClassError;\n }\n if (_typeof(mode.beginScope) !== \"object\" || mode.beginScope === null) {\n error(\"beginScope must be object\");\n throw MultiClassError;\n }\n remapScopeNames(mode, mode.begin, {\n key: \"beginScope\"\n });\n mode.begin = _rewriteBackreferences(mode.begin, {\n joinWith: \"\"\n });\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction endMultiClass(mode) {\n if (!Array.isArray(mode.end)) return;\n if (mode.skip || mode.excludeEnd || mode.returnEnd) {\n error(\"skip, excludeEnd, returnEnd not compatible with endScope: {}\");\n throw MultiClassError;\n }\n if (_typeof(mode.endScope) !== \"object\" || mode.endScope === null) {\n error(\"endScope must be object\");\n throw MultiClassError;\n }\n remapScopeNames(mode, mode.end, {\n key: \"endScope\"\n });\n mode.end = _rewriteBackreferences(mode.end, {\n joinWith: \"\"\n });\n}\n\n/**\n * this exists only to allow `scope: {}` to be used beside `match:`\n * Otherwise `beginScope` would necessary and that would look weird\n\n {\n match: [ /def/, /\\w+/ ]\n scope: { 1: \"keyword\" , 2: \"title\" }\n }\n\n * @param {CompiledMode} mode\n */\nfunction scopeSugar(mode) {\n if (mode.scope && _typeof(mode.scope) === \"object\" && mode.scope !== null) {\n mode.beginScope = mode.scope;\n delete mode.scope;\n }\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction MultiClass(mode) {\n scopeSugar(mode);\n if (typeof mode.beginScope === \"string\") {\n mode.beginScope = {\n _wrap: mode.beginScope\n };\n }\n if (typeof mode.endScope === \"string\") {\n mode.endScope = {\n _wrap: mode.endScope\n };\n }\n beginMultiClass(mode);\n endMultiClass(mode);\n}\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').CompiledLanguage} CompiledLanguage\n*/\n\n// compilation\n\n/**\n * Compiles a language definition result\n *\n * Given the raw result of a language definition (Language), compiles this so\n * that it is ready for highlighting code.\n * @param {Language} language\n * @returns {CompiledLanguage}\n */\nfunction compileLanguage(language) {\n /**\n * Builds a regex with the case sensitivity of the current language\n *\n * @param {RegExp | string} value\n * @param {boolean} [global]\n */\n function langRe(value, global) {\n return new RegExp(source(value), 'm' + (language.case_insensitive ? 'i' : '') + (language.unicodeRegex ? 'u' : '') + (global ? 'g' : ''));\n }\n\n /**\n Stores multiple regular expressions and allows you to quickly search for\n them all in a string simultaneously - returning the first match. It does\n this by creating a huge (a|b|c) regex - each individual item wrapped with ()\n and joined by `|` - using match groups to track position. When a match is\n found checking which position in the array has content allows us to figure\n out which of the original regexes / match groups triggered the match.\n The match object itself (the result of `Regex.exec`) is returned but also\n enhanced by merging in any meta-data that was registered with the regex.\n This is how we keep track of which mode matched, and what type of rule\n (`illegal`, `begin`, end, etc).\n */\n var MultiRegex = /*#__PURE__*/function () {\n \"use strict\";\n\n function MultiRegex() {\n _classCallCheck(this, MultiRegex);\n this.matchIndexes = {};\n // @ts-ignore\n this.regexes = [];\n this.matchAt = 1;\n this.position = 0;\n }\n\n // @ts-ignore\n _createClass(MultiRegex, [{\n key: \"addRule\",\n value: function addRule(re, opts) {\n opts.position = this.position++;\n // @ts-ignore\n this.matchIndexes[this.matchAt] = opts;\n this.regexes.push([opts, re]);\n this.matchAt += countMatchGroups(re) + 1;\n }\n }, {\n key: \"compile\",\n value: function compile() {\n if (this.regexes.length === 0) {\n // avoids the need to check length every time exec is called\n // @ts-ignore\n this.exec = function () {\n return null;\n };\n }\n var terminators = this.regexes.map(function (el) {\n return el[1];\n });\n this.matcherRe = langRe(_rewriteBackreferences(terminators, {\n joinWith: '|'\n }), true);\n this.lastIndex = 0;\n }\n\n /** @param {string} s */\n }, {\n key: \"exec\",\n value: function exec(s) {\n this.matcherRe.lastIndex = this.lastIndex;\n var match = this.matcherRe.exec(s);\n if (!match) {\n return null;\n }\n\n // eslint-disable-next-line no-undefined\n var i = match.findIndex(function (el, i) {\n return i > 0 && el !== undefined;\n });\n // @ts-ignore\n var matchData = this.matchIndexes[i];\n // trim off any earlier non-relevant match groups (ie, the other regex\n // match groups that make up the multi-matcher)\n match.splice(0, i);\n return Object.assign(match, matchData);\n }\n }]);\n return MultiRegex;\n }();\n /*\n Created to solve the key deficiently with MultiRegex - there is no way to\n test for multiple matches at a single location. Why would we need to do\n that? In the future a more dynamic engine will allow certain matches to be\n ignored. An example: if we matched say the 3rd regex in a large group but\n decided to ignore it - we'd need to started testing again at the 4th\n regex... but MultiRegex itself gives us no real way to do that.\n So what this class creates MultiRegexs on the fly for whatever search\n position they are needed.\n NOTE: These additional MultiRegex objects are created dynamically. For most\n grammars most of the time we will never actually need anything more than the\n first MultiRegex - so this shouldn't have too much overhead.\n Say this is our search group, and we match regex3, but wish to ignore it.\n regex1 | regex2 | regex3 | regex4 | regex5 ' ie, startAt = 0\n What we need is a new MultiRegex that only includes the remaining\n possibilities:\n regex4 | regex5 ' ie, startAt = 3\n This class wraps all that complexity up in a simple API... `startAt` decides\n where in the array of expressions to start doing the matching. It\n auto-increments, so if a match is found at position 2, then startAt will be\n set to 3. If the end is reached startAt will return to 0.\n MOST of the time the parser will be setting startAt manually to 0.\n */\n var ResumableMultiRegex = /*#__PURE__*/function () {\n \"use strict\";\n\n function ResumableMultiRegex() {\n _classCallCheck(this, ResumableMultiRegex);\n // @ts-ignore\n this.rules = [];\n // @ts-ignore\n this.multiRegexes = [];\n this.count = 0;\n this.lastIndex = 0;\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n _createClass(ResumableMultiRegex, [{\n key: \"getMatcher\",\n value: function getMatcher(index) {\n if (this.multiRegexes[index]) return this.multiRegexes[index];\n var matcher = new MultiRegex();\n this.rules.slice(index).forEach(function (_ref4) {\n var _ref5 = _slicedToArray(_ref4, 2),\n re = _ref5[0],\n opts = _ref5[1];\n return matcher.addRule(re, opts);\n });\n matcher.compile();\n this.multiRegexes[index] = matcher;\n return matcher;\n }\n }, {\n key: \"resumingScanAtSamePosition\",\n value: function resumingScanAtSamePosition() {\n return this.regexIndex !== 0;\n }\n }, {\n key: \"considerAll\",\n value: function considerAll() {\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n }, {\n key: \"addRule\",\n value: function addRule(re, opts) {\n this.rules.push([re, opts]);\n if (opts.type === \"begin\") this.count++;\n }\n\n /** @param {string} s */\n }, {\n key: \"exec\",\n value: function exec(s) {\n var m = this.getMatcher(this.regexIndex);\n m.lastIndex = this.lastIndex;\n var result = m.exec(s);\n\n // The following is because we have no easy way to say \"resume scanning at the\n // existing position but also skip the current rule ONLY\". What happens is\n // all prior rules are also skipped which can result in matching the wrong\n // thing. Example of matching \"booger\":\n\n // our matcher is [string, \"booger\", number]\n //\n // ....booger....\n\n // if \"booger\" is ignored then we'd really need a regex to scan from the\n // SAME position for only: [string, number] but ignoring \"booger\" (if it\n // was the first match), a simple resume would scan ahead who knows how\n // far looking only for \"number\", ignoring potential string matches (or\n // future \"booger\" matches that might be valid.)\n\n // So what we do: We execute two matchers, one resuming at the same\n // position, but the second full matcher starting at the position after:\n\n // /--- resume first regex match here (for [number])\n // |/---- full match here for [string, \"booger\", number]\n // vv\n // ....booger....\n\n // Which ever results in a match first is then used. So this 3-4 step\n // process essentially allows us to say \"match at this position, excluding\n // a prior rule that was ignored\".\n //\n // 1. Match \"booger\" first, ignore. Also proves that [string] does non match.\n // 2. Resume matching for [number]\n // 3. Match at index + 1 for [string, \"booger\", number]\n // 4. If #2 and #3 result in matches, which came first?\n if (this.resumingScanAtSamePosition()) {\n if (result && result.index === this.lastIndex) ;else {\n // use the second matcher result\n var m2 = this.getMatcher(0);\n m2.lastIndex = this.lastIndex + 1;\n result = m2.exec(s);\n }\n }\n if (result) {\n this.regexIndex += result.position + 1;\n if (this.regexIndex === this.count) {\n // wrap-around to considering all matches again\n this.considerAll();\n }\n }\n return result;\n }\n }]);\n return ResumableMultiRegex;\n }();\n /**\n * Given a mode, builds a huge ResumableMultiRegex that can be used to walk\n * the content and find matches.\n *\n * @param {CompiledMode} mode\n * @returns {ResumableMultiRegex}\n */\n function buildModeRegex(mode) {\n var mm = new ResumableMultiRegex();\n mode.contains.forEach(function (term) {\n return mm.addRule(term.begin, {\n rule: term,\n type: \"begin\"\n });\n });\n if (mode.terminatorEnd) {\n mm.addRule(mode.terminatorEnd, {\n type: \"end\"\n });\n }\n if (mode.illegal) {\n mm.addRule(mode.illegal, {\n type: \"illegal\"\n });\n }\n return mm;\n }\n\n /** skip vs abort vs ignore\n *\n * @skip - The mode is still entered and exited normally (and contains rules apply),\n * but all content is held and added to the parent buffer rather than being\n * output when the mode ends. Mostly used with `sublanguage` to build up\n * a single large buffer than can be parsed by sublanguage.\n *\n * - The mode begin ands ends normally.\n * - Content matched is added to the parent mode buffer.\n * - The parser cursor is moved forward normally.\n *\n * @abort - A hack placeholder until we have ignore. Aborts the mode (as if it\n * never matched) but DOES NOT continue to match subsequent `contains`\n * modes. Abort is bad/suboptimal because it can result in modes\n * farther down not getting applied because an earlier rule eats the\n * content but then aborts.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is added to the mode buffer.\n * - The parser cursor is moved forward accordingly.\n *\n * @ignore - Ignores the mode (as if it never matched) and continues to match any\n * subsequent `contains` modes. Ignore isn't technically possible with\n * the current parser implementation.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is ignored.\n * - The parser cursor is not moved forward.\n */\n\n /**\n * Compiles an individual mode\n *\n * This can raise an error if the mode contains certain detectable known logic\n * issues.\n * @param {Mode} mode\n * @param {CompiledMode | null} [parent]\n * @returns {CompiledMode | never}\n */\n function compileMode(mode, parent) {\n var _ref6;\n var cmode = /** @type CompiledMode */mode;\n if (mode.isCompiled) return cmode;\n [scopeClassName,\n // do this early so compiler extensions generally don't have to worry about\n // the distinction between match/begin\n compileMatch, MultiClass, beforeMatchExt].forEach(function (ext) {\n return ext(mode, parent);\n });\n language.compilerExtensions.forEach(function (ext) {\n return ext(mode, parent);\n });\n\n // __beforeBegin is considered private API, internal use only\n mode.__beforeBegin = null;\n [beginKeywords,\n // do this later so compiler extensions that come earlier have access to the\n // raw array if they wanted to perhaps manipulate it, etc.\n compileIllegal,\n // default to 1 relevance if not specified\n compileRelevance].forEach(function (ext) {\n return ext(mode, parent);\n });\n mode.isCompiled = true;\n var keywordPattern = null;\n if (_typeof(mode.keywords) === \"object\" && mode.keywords.$pattern) {\n // we need a copy because keywords might be compiled multiple times\n // so we can't go deleting $pattern from the original on the first\n // pass\n mode.keywords = Object.assign({}, mode.keywords);\n keywordPattern = mode.keywords.$pattern;\n delete mode.keywords.$pattern;\n }\n keywordPattern = keywordPattern || /\\w+/;\n if (mode.keywords) {\n mode.keywords = compileKeywords(mode.keywords, language.case_insensitive);\n }\n cmode.keywordPatternRe = langRe(keywordPattern, true);\n if (parent) {\n if (!mode.begin) mode.begin = /\\B|\\b/;\n cmode.beginRe = langRe(cmode.begin);\n if (!mode.end && !mode.endsWithParent) mode.end = /\\B|\\b/;\n if (mode.end) cmode.endRe = langRe(cmode.end);\n cmode.terminatorEnd = source(cmode.end) || '';\n if (mode.endsWithParent && parent.terminatorEnd) {\n cmode.terminatorEnd += (mode.end ? '|' : '') + parent.terminatorEnd;\n }\n }\n if (mode.illegal) cmode.illegalRe = langRe( /** @type {RegExp | string} */mode.illegal);\n if (!mode.contains) mode.contains = [];\n mode.contains = (_ref6 = []).concat.apply(_ref6, _toConsumableArray(mode.contains.map(function (c) {\n return expandOrCloneMode(c === 'self' ? mode : c);\n })));\n mode.contains.forEach(function (c) {\n compileMode( /** @type Mode */c, cmode);\n });\n if (mode.starts) {\n compileMode(mode.starts, parent);\n }\n cmode.matcher = buildModeRegex(cmode);\n return cmode;\n }\n if (!language.compilerExtensions) language.compilerExtensions = [];\n\n // self is not valid at the top-level\n if (language.contains && language.contains.includes('self')) {\n throw new Error(\"ERR: contains `self` is not supported at the top-level of a language. See documentation.\");\n }\n\n // we need a null object, which inherit will guarantee\n language.classNameAliases = inherit$1(language.classNameAliases || {});\n return compileMode( /** @type Mode */language);\n}\n\n/**\n * Determines if a mode has a dependency on it's parent or not\n *\n * If a mode does have a parent dependency then often we need to clone it if\n * it's used in multiple places so that each copy points to the correct parent,\n * where-as modes without a parent can often safely be re-used at the bottom of\n * a mode chain.\n *\n * @param {Mode | null} mode\n * @returns {boolean} - is there a dependency on the parent?\n * */\nfunction dependencyOnParent(mode) {\n if (!mode) return false;\n return mode.endsWithParent || dependencyOnParent(mode.starts);\n}\n\n/**\n * Expands a mode or clones it if necessary\n *\n * This is necessary for modes with parental dependenceis (see notes on\n * `dependencyOnParent`) and for nodes that have `variants` - which must then be\n * exploded into their own individual modes at compile time.\n *\n * @param {Mode} mode\n * @returns {Mode | Mode[]}\n * */\nfunction expandOrCloneMode(mode) {\n if (mode.variants && !mode.cachedVariants) {\n mode.cachedVariants = mode.variants.map(function (variant) {\n return inherit$1(mode, {\n variants: null\n }, variant);\n });\n }\n\n // EXPAND\n // if we have variants then essentially \"replace\" the mode with the variants\n // this happens in compileMode, where this function is called from\n if (mode.cachedVariants) {\n return mode.cachedVariants;\n }\n\n // CLONE\n // if we have dependencies on parents then we need a unique\n // instance of ourselves, so we can be reused with many\n // different parents without issue\n if (dependencyOnParent(mode)) {\n return inherit$1(mode, {\n starts: mode.starts ? inherit$1(mode.starts) : null\n });\n }\n if (Object.isFrozen(mode)) {\n return inherit$1(mode);\n }\n\n // no special dependency issues, just return ourselves\n return mode;\n}\nvar version = \"11.8.0\";\nvar HTMLInjectionError = /*#__PURE__*/function (_Error) {\n \"use strict\";\n\n _inherits(HTMLInjectionError, _Error);\n var _super2 = _createSuper(HTMLInjectionError);\n function HTMLInjectionError(reason, html) {\n var _this3;\n _classCallCheck(this, HTMLInjectionError);\n _this3 = _super2.call(this, reason);\n _this3.name = \"HTMLInjectionError\";\n _this3.html = html;\n return _this3;\n }\n return _createClass(HTMLInjectionError);\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n/*\nSyntax highlighting with language autodetection.\nhttps://highlightjs.org/\n*/\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').CompiledScope} CompiledScope\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSApi} HLJSApi\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').PluginEvent} PluginEvent\n@typedef {import('highlight.js').HLJSOptions} HLJSOptions\n@typedef {import('highlight.js').LanguageFn} LanguageFn\n@typedef {import('highlight.js').HighlightedHTMLElement} HighlightedHTMLElement\n@typedef {import('highlight.js').BeforeHighlightContext} BeforeHighlightContext\n@typedef {import('highlight.js/private').MatchType} MatchType\n@typedef {import('highlight.js/private').KeywordData} KeywordData\n@typedef {import('highlight.js/private').EnhancedMatch} EnhancedMatch\n@typedef {import('highlight.js/private').AnnotatedError} AnnotatedError\n@typedef {import('highlight.js').AutoHighlightResult} AutoHighlightResult\n@typedef {import('highlight.js').HighlightOptions} HighlightOptions\n@typedef {import('highlight.js').HighlightResult} HighlightResult\n*/\nvar escape = escapeHTML;\nvar inherit = inherit$1;\nvar NO_MATCH = Symbol(\"nomatch\");\nvar MAX_KEYWORD_HITS = 7;\n\n/**\n * @param {any} hljs - object that is extended (legacy)\n * @returns {HLJSApi}\n */\nvar HLJS = function HLJS(hljs) {\n // Global internal variables used within the highlight.js library.\n /** @type {Record<string, Language>} */\n var languages = Object.create(null);\n /** @type {Record<string, string>} */\n var aliases = Object.create(null);\n /** @type {HLJSPlugin[]} */\n var plugins = [];\n\n // safe/production mode - swallows more errors, tries to keep running\n // even if a single syntax or parse hits a fatal error\n var SAFE_MODE = true;\n var LANGUAGE_NOT_FOUND = \"Could not find the language '{}', did you forget to load/include a language module?\";\n /** @type {Language} */\n var PLAINTEXT_LANGUAGE = {\n disableAutodetect: true,\n name: 'Plain text',\n contains: []\n };\n\n // Global options used when within external APIs. This is modified when\n // calling the `hljs.configure` function.\n /** @type HLJSOptions */\n var options = {\n ignoreUnescapedHTML: false,\n throwUnescapedHTML: false,\n noHighlightRe: /^(no-?highlight)$/i,\n languageDetectRe: /\\blang(?:uage)?-([\\w-]+)\\b/i,\n classPrefix: 'hljs-',\n cssSelector: 'pre code',\n languages: null,\n // beta configuration options, subject to change, welcome to discuss\n // https://github.com/highlightjs/highlight.js/issues/1086\n __emitter: TokenTreeEmitter\n };\n\n /* Utility functions */\n\n /**\n * Tests a language name to see if highlighting should be skipped\n * @param {string} languageName\n */\n function shouldNotHighlight(languageName) {\n return options.noHighlightRe.test(languageName);\n }\n\n /**\n * @param {HighlightedHTMLElement} block - the HTML element to determine language for\n */\n function blockLanguage(block) {\n var classes = block.className + ' ';\n classes += block.parentNode ? block.parentNode.className : '';\n\n // language-* takes precedence over non-prefixed class names.\n var match = options.languageDetectRe.exec(classes);\n if (match) {\n var language = getLanguage(match[1]);\n if (!language) {\n warn(LANGUAGE_NOT_FOUND.replace(\"{}\", match[1]));\n warn(\"Falling back to no-highlight mode for this block.\", block);\n }\n return language ? match[1] : 'no-highlight';\n }\n return classes.split(/\\s+/).find(function (_class) {\n return shouldNotHighlight(_class) || getLanguage(_class);\n });\n }\n\n /**\n * Core highlighting function.\n *\n * OLD API\n * highlight(lang, code, ignoreIllegals, continuation)\n *\n * NEW API\n * highlight(code, {lang, ignoreIllegals})\n *\n * @param {string} codeOrLanguageName - the language to use for highlighting\n * @param {string | HighlightOptions} optionsOrCode - the code to highlight\n * @param {boolean} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n *\n * @returns {HighlightResult} Result - an object that represents the result\n * @property {string} language - the language name\n * @property {number} relevance - the relevance score\n * @property {string} value - the highlighted HTML code\n * @property {string} code - the original raw code\n * @property {CompiledMode} top - top of the current mode stack\n * @property {boolean} illegal - indicates whether any illegal matches were found\n */\n function highlight(codeOrLanguageName, optionsOrCode, ignoreIllegals) {\n var code = \"\";\n var languageName = \"\";\n if (_typeof(optionsOrCode) === \"object\") {\n code = codeOrLanguageName;\n ignoreIllegals = optionsOrCode.ignoreIllegals;\n languageName = optionsOrCode.language;\n } else {\n // old API\n deprecated(\"10.7.0\", \"highlight(lang, code, ...args) has been deprecated.\");\n deprecated(\"10.7.0\", \"Please use highlight(code, options) instead.\\nhttps://github.com/highlightjs/highlight.js/issues/2277\");\n languageName = codeOrLanguageName;\n code = optionsOrCode;\n }\n\n // https://github.com/highlightjs/highlight.js/issues/3149\n // eslint-disable-next-line no-undefined\n if (ignoreIllegals === undefined) {\n ignoreIllegals = true;\n }\n\n /** @type {BeforeHighlightContext} */\n var context = {\n code: code,\n language: languageName\n };\n // the plugin can change the desired language or the code to be highlighted\n // just be changing the object it was passed\n fire(\"before:highlight\", context);\n\n // a before plugin can usurp the result completely by providing it's own\n // in which case we don't even need to call highlight\n var result = context.result ? context.result : _highlight(context.language, context.code, ignoreIllegals);\n result.code = context.code;\n // the plugin can change anything in result to suite it\n fire(\"after:highlight\", result);\n return result;\n }\n\n /**\n * private highlight that's used internally and does not fire callbacks\n *\n * @param {string} languageName - the language to use for highlighting\n * @param {string} codeToHighlight - the code to highlight\n * @param {boolean?} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n * @param {CompiledMode?} [continuation] - current continuation mode, if any\n * @returns {HighlightResult} - result of the highlight operation\n */\n function _highlight(languageName, codeToHighlight, ignoreIllegals, continuation) {\n var keywordHits = Object.create(null);\n\n /**\n * Return keyword data if a match is a keyword\n * @param {CompiledMode} mode - current mode\n * @param {string} matchText - the textual match\n * @returns {KeywordData | false}\n */\n function keywordData(mode, matchText) {\n return mode.keywords[matchText];\n }\n function processKeywords() {\n if (!top.keywords) {\n emitter.addText(modeBuffer);\n return;\n }\n var lastIndex = 0;\n top.keywordPatternRe.lastIndex = 0;\n var match = top.keywordPatternRe.exec(modeBuffer);\n var buf = \"\";\n while (match) {\n buf += modeBuffer.substring(lastIndex, match.index);\n var word = language.case_insensitive ? match[0].toLowerCase() : match[0];\n var data = keywordData(top, word);\n if (data) {\n var _data = _slicedToArray(data, 2),\n kind = _data[0],\n keywordRelevance = _data[1];\n emitter.addText(buf);\n buf = \"\";\n keywordHits[word] = (keywordHits[word] || 0) + 1;\n if (keywordHits[word] <= MAX_KEYWORD_HITS) relevance += keywordRelevance;\n if (kind.startsWith(\"_\")) {\n // _ implied for relevance only, do not highlight\n // by applying a class name\n buf += match[0];\n } else {\n var cssClass = language.classNameAliases[kind] || kind;\n emitKeyword(match[0], cssClass);\n }\n } else {\n buf += match[0];\n }\n lastIndex = top.keywordPatternRe.lastIndex;\n match = top.keywordPatternRe.exec(modeBuffer);\n }\n buf += modeBuffer.substring(lastIndex);\n emitter.addText(buf);\n }\n function processSubLanguage() {\n if (modeBuffer === \"\") return;\n /** @type HighlightResult */\n var result = null;\n if (typeof top.subLanguage === 'string') {\n if (!languages[top.subLanguage]) {\n emitter.addText(modeBuffer);\n return;\n }\n result = _highlight(top.subLanguage, modeBuffer, true, continuations[top.subLanguage]);\n continuations[top.subLanguage] = /** @type {CompiledMode} */result._top;\n } else {\n result = highlightAuto(modeBuffer, top.subLanguage.length ? top.subLanguage : null);\n }\n\n // Counting embedded language score towards the host language may be disabled\n // with zeroing the containing mode relevance. Use case in point is Markdown that\n // allows XML everywhere and makes every XML snippet to have a much larger Markdown\n // score.\n if (top.relevance > 0) {\n relevance += result.relevance;\n }\n emitter.__addSublanguage(result._emitter, result.language);\n }\n function processBuffer() {\n if (top.subLanguage != null) {\n processSubLanguage();\n } else {\n processKeywords();\n }\n modeBuffer = '';\n }\n\n /**\n * @param {string} text\n * @param {string} scope\n */\n function emitKeyword(keyword, scope) {\n if (keyword === \"\") return;\n emitter.startScope(scope);\n emitter.addText(keyword);\n emitter.endScope();\n }\n\n /**\n * @param {CompiledScope} scope\n * @param {RegExpMatchArray} match\n */\n function emitMultiClass(scope, match) {\n var i = 1;\n var max = match.length - 1;\n while (i <= max) {\n if (!scope._emit[i]) {\n i++;\n continue;\n }\n var klass = language.classNameAliases[scope[i]] || scope[i];\n var text = match[i];\n if (klass) {\n emitKeyword(text, klass);\n } else {\n modeBuffer = text;\n processKeywords();\n modeBuffer = \"\";\n }\n i++;\n }\n }\n\n /**\n * @param {CompiledMode} mode - new mode to start\n * @param {RegExpMatchArray} match\n */\n function startNewMode(mode, match) {\n if (mode.scope && typeof mode.scope === \"string\") {\n emitter.openNode(language.classNameAliases[mode.scope] || mode.scope);\n }\n if (mode.beginScope) {\n // beginScope just wraps the begin match itself in a scope\n if (mode.beginScope._wrap) {\n emitKeyword(modeBuffer, language.classNameAliases[mode.beginScope._wrap] || mode.beginScope._wrap);\n modeBuffer = \"\";\n } else if (mode.beginScope._multi) {\n // at this point modeBuffer should just be the match\n emitMultiClass(mode.beginScope, match);\n modeBuffer = \"\";\n }\n }\n top = Object.create(mode, {\n parent: {\n value: top\n }\n });\n return top;\n }\n\n /**\n * @param {CompiledMode } mode - the mode to potentially end\n * @param {RegExpMatchArray} match - the latest match\n * @param {string} matchPlusRemainder - match plus remainder of content\n * @returns {CompiledMode | void} - the next mode, or if void continue on in current mode\n */\n function endOfMode(mode, match, matchPlusRemainder) {\n var matched = startsWith(mode.endRe, matchPlusRemainder);\n if (matched) {\n if (mode[\"on:end\"]) {\n var resp = new Response(mode);\n mode[\"on:end\"](match, resp);\n if (resp.isMatchIgnored) matched = false;\n }\n if (matched) {\n while (mode.endsParent && mode.parent) {\n mode = mode.parent;\n }\n return mode;\n }\n }\n // even if on:end fires an `ignore` it's still possible\n // that we might trigger the end node because of a parent mode\n if (mode.endsWithParent) {\n return endOfMode(mode.parent, match, matchPlusRemainder);\n }\n }\n\n /**\n * Handle matching but then ignoring a sequence of text\n *\n * @param {string} lexeme - string containing full match text\n */\n function doIgnore(lexeme) {\n if (top.matcher.regexIndex === 0) {\n // no more regexes to potentially match here, so we move the cursor forward one\n // space\n modeBuffer += lexeme[0];\n return 1;\n } else {\n // no need to move the cursor, we still have additional regexes to try and\n // match at this very spot\n resumeScanAtSamePosition = true;\n return 0;\n }\n }\n\n /**\n * Handle the start of a new potential mode match\n *\n * @param {EnhancedMatch} match - the current match\n * @returns {number} how far to advance the parse cursor\n */\n function doBeginMatch(match) {\n var lexeme = match[0];\n var newMode = match.rule;\n var resp = new Response(newMode);\n // first internal before callbacks, then the public ones\n var beforeCallbacks = [newMode.__beforeBegin, newMode[\"on:begin\"]];\n for (var _i = 0, _beforeCallbacks = beforeCallbacks; _i < _beforeCallbacks.length; _i++) {\n var cb = _beforeCallbacks[_i];\n if (!cb) continue;\n cb(match, resp);\n if (resp.isMatchIgnored) return doIgnore(lexeme);\n }\n if (newMode.skip) {\n modeBuffer += lexeme;\n } else {\n if (newMode.excludeBegin) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (!newMode.returnBegin && !newMode.excludeBegin) {\n modeBuffer = lexeme;\n }\n }\n startNewMode(newMode, match);\n return newMode.returnBegin ? 0 : lexeme.length;\n }\n\n /**\n * Handle the potential end of mode\n *\n * @param {RegExpMatchArray} match - the current match\n */\n function doEndMatch(match) {\n var lexeme = match[0];\n var matchPlusRemainder = codeToHighlight.substring(match.index);\n var endMode = endOfMode(top, match, matchPlusRemainder);\n if (!endMode) {\n return NO_MATCH;\n }\n var origin = top;\n if (top.endScope && top.endScope._wrap) {\n processBuffer();\n emitKeyword(lexeme, top.endScope._wrap);\n } else if (top.endScope && top.endScope._multi) {\n processBuffer();\n emitMultiClass(top.endScope, match);\n } else if (origin.skip) {\n modeBuffer += lexeme;\n } else {\n if (!(origin.returnEnd || origin.excludeEnd)) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (origin.excludeEnd) {\n modeBuffer = lexeme;\n }\n }\n do {\n if (top.scope) {\n emitter.closeNode();\n }\n if (!top.skip && !top.subLanguage) {\n relevance += top.relevance;\n }\n top = top.parent;\n } while (top !== endMode.parent);\n if (endMode.starts) {\n startNewMode(endMode.starts, match);\n }\n return origin.returnEnd ? 0 : lexeme.length;\n }\n function processContinuations() {\n var list = [];\n for (var current = top; current !== language; current = current.parent) {\n if (current.scope) {\n list.unshift(current.scope);\n }\n }\n list.forEach(function (item) {\n return emitter.openNode(item);\n });\n }\n\n /** @type {{type?: MatchType, index?: number, rule?: Mode}}} */\n var lastMatch = {};\n\n /**\n * Process an individual match\n *\n * @param {string} textBeforeMatch - text preceding the match (since the last match)\n * @param {EnhancedMatch} [match] - the match itself\n */\n function processLexeme(textBeforeMatch, match) {\n var lexeme = match && match[0];\n\n // add non-matched text to the current mode buffer\n modeBuffer += textBeforeMatch;\n if (lexeme == null) {\n processBuffer();\n return 0;\n }\n\n // we've found a 0 width match and we're stuck, so we need to advance\n // this happens when we have badly behaved rules that have optional matchers to the degree that\n // sometimes they can end up matching nothing at all\n // Ref: https://github.com/highlightjs/highlight.js/issues/2140\n if (lastMatch.type === \"begin\" && match.type === \"end\" && lastMatch.index === match.index && lexeme === \"\") {\n // spit the \"skipped\" character that our regex choked on back into the output sequence\n modeBuffer += codeToHighlight.slice(match.index, match.index + 1);\n if (!SAFE_MODE) {\n /** @type {AnnotatedError} */\n var err = new Error(\"0 width match regex (\".concat(languageName, \")\"));\n err.languageName = languageName;\n err.badRule = lastMatch.rule;\n throw err;\n }\n return 1;\n }\n lastMatch = match;\n if (match.type === \"begin\") {\n return doBeginMatch(match);\n } else if (match.type === \"illegal\" && !ignoreIllegals) {\n // illegal match, we do not continue processing\n /** @type {AnnotatedError} */\n var _err = new Error('Illegal lexeme \"' + lexeme + '\" for mode \"' + (top.scope || '<unnamed>') + '\"');\n _err.mode = top;\n throw _err;\n } else if (match.type === \"end\") {\n var processed = doEndMatch(match);\n if (processed !== NO_MATCH) {\n return processed;\n }\n }\n\n // edge case for when illegal matches $ (end of line) which is technically\n // a 0 width match but not a begin/end match so it's not caught by the\n // first handler (when ignoreIllegals is true)\n if (match.type === \"illegal\" && lexeme === \"\") {\n // advance so we aren't stuck in an infinite loop\n return 1;\n }\n\n // infinite loops are BAD, this is a last ditch catch all. if we have a\n // decent number of iterations yet our index (cursor position in our\n // parsing) still 3x behind our index then something is very wrong\n // so we bail\n if (iterations > 100000 && iterations > match.index * 3) {\n var _err2 = new Error('potential infinite loop, way more iterations than matches');\n throw _err2;\n }\n\n /*\n Why might be find ourselves here? An potential end match that was\n triggered but could not be completed. IE, `doEndMatch` returned NO_MATCH.\n (this could be because a callback requests the match be ignored, etc)\n This causes no real harm other than stopping a few times too many.\n */\n\n modeBuffer += lexeme;\n return lexeme.length;\n }\n var language = getLanguage(languageName);\n if (!language) {\n error(LANGUAGE_NOT_FOUND.replace(\"{}\", languageName));\n throw new Error('Unknown language: \"' + languageName + '\"');\n }\n var md = compileLanguage(language);\n var result = '';\n /** @type {CompiledMode} */\n var top = continuation || md;\n /** @type Record<string,CompiledMode> */\n var continuations = {}; // keep continuations for sub-languages\n var emitter = new options.__emitter(options);\n processContinuations();\n var modeBuffer = '';\n var relevance = 0;\n var index = 0;\n var iterations = 0;\n var resumeScanAtSamePosition = false;\n try {\n if (!language.__emitTokens) {\n top.matcher.considerAll();\n for (;;) {\n iterations++;\n if (resumeScanAtSamePosition) {\n // only regexes not matched previously will now be\n // considered for a potential match\n resumeScanAtSamePosition = false;\n } else {\n top.matcher.considerAll();\n }\n top.matcher.lastIndex = index;\n var match = top.matcher.exec(codeToHighlight);\n // console.log(\"match\", match[0], match.rule && match.rule.begin)\n\n if (!match) break;\n var beforeMatch = codeToHighlight.substring(index, match.index);\n var processedCount = processLexeme(beforeMatch, match);\n index = match.index + processedCount;\n }\n processLexeme(codeToHighlight.substring(index));\n } else {\n language.__emitTokens(codeToHighlight, emitter);\n }\n emitter.finalize();\n result = emitter.toHTML();\n return {\n language: languageName,\n value: result,\n relevance: relevance,\n illegal: false,\n _emitter: emitter,\n _top: top\n };\n } catch (err) {\n if (err.message && err.message.includes('Illegal')) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: true,\n relevance: 0,\n _illegalBy: {\n message: err.message,\n index: index,\n context: codeToHighlight.slice(index - 100, index + 100),\n mode: err.mode,\n resultSoFar: result\n },\n _emitter: emitter\n };\n } else if (SAFE_MODE) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: false,\n relevance: 0,\n errorRaised: err,\n _emitter: emitter,\n _top: top\n };\n } else {\n throw err;\n }\n }\n }\n\n /**\n * returns a valid highlight result, without actually doing any actual work,\n * auto highlight starts with this and it's possible for small snippets that\n * auto-detection may not find a better match\n * @param {string} code\n * @returns {HighlightResult}\n */\n function justTextHighlightResult(code) {\n var result = {\n value: escape(code),\n illegal: false,\n relevance: 0,\n _top: PLAINTEXT_LANGUAGE,\n _emitter: new options.__emitter(options)\n };\n result._emitter.addText(code);\n return result;\n }\n\n /**\n Highlighting with language detection. Accepts a string with the code to\n highlight. Returns an object with the following properties:\n - language (detected language)\n - relevance (int)\n - value (an HTML string with highlighting markup)\n - secondBest (object with the same structure for second-best heuristically\n detected language, may be absent)\n @param {string} code\n @param {Array<string>} [languageSubset]\n @returns {AutoHighlightResult}\n */\n function highlightAuto(code, languageSubset) {\n languageSubset = languageSubset || options.languages || Object.keys(languages);\n var plaintext = justTextHighlightResult(code);\n var results = languageSubset.filter(getLanguage).filter(autoDetection).map(function (name) {\n return _highlight(name, code, false);\n });\n results.unshift(plaintext); // plaintext is always an option\n\n var sorted = results.sort(function (a, b) {\n // sort base on relevance\n if (a.relevance !== b.relevance) return b.relevance - a.relevance;\n\n // always award the tie to the base language\n // ie if C++ and Arduino are tied, it's more likely to be C++\n if (a.language && b.language) {\n if (getLanguage(a.language).supersetOf === b.language) {\n return 1;\n } else if (getLanguage(b.language).supersetOf === a.language) {\n return -1;\n }\n }\n\n // otherwise say they are equal, which has the effect of sorting on\n // relevance while preserving the original ordering - which is how ties\n // have historically been settled, ie the language that comes first always\n // wins in the case of a tie\n return 0;\n });\n var _sorted = _slicedToArray(sorted, 2),\n best = _sorted[0],\n secondBest = _sorted[1];\n\n /** @type {AutoHighlightResult} */\n var result = best;\n result.secondBest = secondBest;\n return result;\n }\n\n /**\n * Builds new class name for block given the language name\n *\n * @param {HTMLElement} element\n * @param {string} [currentLang]\n * @param {string} [resultLang]\n */\n function updateClassName(element, currentLang, resultLang) {\n var language = currentLang && aliases[currentLang] || resultLang;\n element.classList.add(\"hljs\");\n element.classList.add(\"language-\".concat(language));\n }\n\n /**\n * Applies highlighting to a DOM node containing code.\n *\n * @param {HighlightedHTMLElement} element - the HTML element to highlight\n */\n function highlightElement(element) {\n /** @type HTMLElement */\n var node = null;\n var language = blockLanguage(element);\n if (shouldNotHighlight(language)) return;\n fire(\"before:highlightElement\", {\n el: element,\n language: language\n });\n\n // we should be all text, no child nodes (unescaped HTML) - this is possibly\n // an HTML injection attack - it's likely too late if this is already in\n // production (the code has likely already done its damage by the time\n // we're seeing it)... but we yell loudly about this so that hopefully it's\n // more likely to be caught in development before making it to production\n if (element.children.length > 0) {\n if (!options.ignoreUnescapedHTML) {\n __f__(\"warn\", \"One of your code blocks includes unescaped HTML. This is a potentially serious security risk.\", \" at pages/highlight.js/lib/core.js:2313\");\n __f__(\"warn\", \"https://github.com/highlightjs/highlight.js/wiki/security\", \" at pages/highlight.js/lib/core.js:2314\");\n __f__(\"warn\", \"The element with unescaped HTML:\", \" at pages/highlight.js/lib/core.js:2315\");\n __f__(\"warn\", element, \" at pages/highlight.js/lib/core.js:2316\");\n }\n if (options.throwUnescapedHTML) {\n var err = new HTMLInjectionError(\"One of your code blocks includes unescaped HTML.\", element.innerHTML);\n throw err;\n }\n }\n node = element;\n var text = node.textContent;\n var result = language ? highlight(text, {\n language: language,\n ignoreIllegals: true\n }) : highlightAuto(text);\n element.innerHTML = result.value;\n updateClassName(element, language, result.language);\n element.result = {\n language: result.language,\n // TODO: remove with version 11.0\n re: result.relevance,\n relevance: result.relevance\n };\n if (result.secondBest) {\n element.secondBest = {\n language: result.secondBest.language,\n relevance: result.secondBest.relevance\n };\n }\n fire(\"after:highlightElement\", {\n el: element,\n result: result,\n text: text\n });\n }\n\n /**\n * Updates highlight.js global options with the passed options\n *\n * @param {Partial<HLJSOptions>} userOptions\n */\n function configure(userOptions) {\n options = inherit(options, userOptions);\n }\n\n // TODO: remove v12, deprecated\n var initHighlighting = function initHighlighting() {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlighting() deprecated. Use highlightAll() now.\");\n };\n\n // TODO: remove v12, deprecated\n function initHighlightingOnLoad() {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlightingOnLoad() deprecated. Use highlightAll() now.\");\n }\n var wantsHighlight = false;\n\n /**\n * auto-highlights all pre>code elements on the page\n */\n function highlightAll() {\n // if we are called too early in the loading process\n if (document.readyState === \"loading\") {\n wantsHighlight = true;\n return;\n }\n var blocks = document.querySelectorAll(options.cssSelector);\n blocks.forEach(highlightElement);\n }\n function boot() {\n // if a highlight was requested before DOM was loaded, do now\n if (wantsHighlight) highlightAll();\n }\n\n // make sure we are in the browser environment\n if (typeof window !== 'undefined' && window.addEventListener) {\n window.addEventListener('DOMContentLoaded', boot, false);\n }\n\n /**\n * Register a language grammar module\n *\n * @param {string} languageName\n * @param {LanguageFn} languageDefinition\n */\n function registerLanguage(languageName, languageDefinition) {\n var lang = null;\n try {\n lang = languageDefinition(hljs);\n } catch (error$1) {\n error(\"Language definition for '{}' could not be registered.\".replace(\"{}\", languageName));\n // hard or soft error\n if (!SAFE_MODE) {\n throw error$1;\n } else {\n error(error$1);\n }\n // languages that have serious errors are replaced with essentially a\n // \"plaintext\" stand-in so that the code blocks will still get normal\n // css classes applied to them - and one bad language won't break the\n // entire highlighter\n lang = PLAINTEXT_LANGUAGE;\n }\n // give it a temporary name if it doesn't have one in the meta-data\n if (!lang.name) lang.name = languageName;\n languages[languageName] = lang;\n lang.rawDefinition = languageDefinition.bind(null, hljs);\n if (lang.aliases) {\n registerAliases(lang.aliases, {\n languageName: languageName\n });\n }\n }\n\n /**\n * Remove a language grammar module\n *\n * @param {string} languageName\n */\n function unregisterLanguage(languageName) {\n delete languages[languageName];\n for (var _i2 = 0, _Object$keys = Object.keys(aliases); _i2 < _Object$keys.length; _i2++) {\n var alias = _Object$keys[_i2];\n if (aliases[alias] === languageName) {\n delete aliases[alias];\n }\n }\n }\n\n /**\n * @returns {string[]} List of language internal names\n */\n function listLanguages() {\n return Object.keys(languages);\n }\n\n /**\n * @param {string} name - name of the language to retrieve\n * @returns {Language | undefined}\n */\n function getLanguage(name) {\n name = (name || '').toLowerCase();\n return languages[name] || languages[aliases[name]];\n }\n\n /**\n *\n * @param {string|string[]} aliasList - single alias or list of aliases\n * @param {{languageName: string}} opts\n */\n function registerAliases(aliasList, _ref7) {\n var languageName = _ref7.languageName;\n if (typeof aliasList === 'string') {\n aliasList = [aliasList];\n }\n aliasList.forEach(function (alias) {\n aliases[alias.toLowerCase()] = languageName;\n });\n }\n\n /**\n * Determines if a given language has auto-detection enabled\n * @param {string} name - name of the language\n */\n function autoDetection(name) {\n var lang = getLanguage(name);\n return lang && !lang.disableAutodetect;\n }\n\n /**\n * Upgrades the old highlightBlock plugins to the new\n * highlightElement API\n * @param {HLJSPlugin} plugin\n */\n function upgradePluginAPI(plugin) {\n // TODO: remove with v12\n if (plugin[\"before:highlightBlock\"] && !plugin[\"before:highlightElement\"]) {\n plugin[\"before:highlightElement\"] = function (data) {\n plugin[\"before:highlightBlock\"](Object.assign({\n block: data.el\n }, data));\n };\n }\n if (plugin[\"after:highlightBlock\"] && !plugin[\"after:highlightElement\"]) {\n plugin[\"after:highlightElement\"] = function (data) {\n plugin[\"after:highlightBlock\"](Object.assign({\n block: data.el\n }, data));\n };\n }\n }\n\n /**\n * @param {HLJSPlugin} plugin\n */\n function addPlugin(plugin) {\n upgradePluginAPI(plugin);\n plugins.push(plugin);\n }\n\n /**\n * @param {HLJSPlugin} plugin\n */\n function removePlugin(plugin) {\n var index = plugins.indexOf(plugin);\n if (index !== -1) {\n plugins.splice(index, 1);\n }\n }\n\n /**\n *\n * @param {PluginEvent} event\n * @param {any} args\n */\n function fire(event, args) {\n var cb = event;\n plugins.forEach(function (plugin) {\n if (plugin[cb]) {\n plugin[cb](args);\n }\n });\n }\n\n /**\n * DEPRECATED\n * @param {HighlightedHTMLElement} el\n */\n function deprecateHighlightBlock(el) {\n deprecated(\"10.7.0\", \"highlightBlock will be removed entirely in v12.0\");\n deprecated(\"10.7.0\", \"Please use highlightElement now.\");\n return highlightElement(el);\n }\n\n /* Interface definition */\n Object.assign(hljs, {\n highlight: highlight,\n highlightAuto: highlightAuto,\n highlightAll: highlightAll,\n highlightElement: highlightElement,\n // TODO: Remove with v12 API\n highlightBlock: deprecateHighlightBlock,\n configure: configure,\n initHighlighting: initHighlighting,\n initHighlightingOnLoad: initHighlightingOnLoad,\n registerLanguage: registerLanguage,\n unregisterLanguage: unregisterLanguage,\n listLanguages: listLanguages,\n getLanguage: getLanguage,\n registerAliases: registerAliases,\n autoDetection: autoDetection,\n inherit: inherit,\n addPlugin: addPlugin,\n removePlugin: removePlugin\n });\n hljs.debugMode = function () {\n SAFE_MODE = false;\n };\n hljs.safeMode = function () {\n SAFE_MODE = true;\n };\n hljs.versionString = version;\n hljs.regex = {\n concat: concat,\n lookahead: lookahead,\n either: either,\n optional: optional,\n anyNumberOfTimes: anyNumberOfTimes\n };\n for (var key in MODES) {\n // @ts-ignore\n if (_typeof(MODES[key]) === \"object\") {\n // @ts-ignore\n deepFreeze(MODES[key]);\n }\n }\n\n // merge all the modes/regexes into our main object\n Object.assign(hljs, MODES);\n return hljs;\n};\n\n// Other names for the variable may break build script\nvar highlight = HLJS({});\n\n// returns a new instance of the highlighter to be used for extensions\n// check https://github.com/wooorm/lowlight/issues/47\nhighlight.newInstance = function () {\n return HLJS({});\n};\nmodule.exports = highlight;\nhighlight.HighlightJS = highlight;\nhighlight.default = highlight;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 26)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaGlnaGxpZ2h0LmpzL2xpYi9jb3JlLmpzIl0sIm5hbWVzIjpbImRlZXBGcmVlemUiLCJvYmoiLCJNYXAiLCJjbGVhciIsImRlbGV0ZSIsInNldCIsIkVycm9yIiwiU2V0IiwiYWRkIiwiT2JqZWN0IiwiZnJlZXplIiwiZ2V0T3duUHJvcGVydHlOYW1lcyIsImZvckVhY2giLCJuYW1lIiwicHJvcCIsInR5cGUiLCJpc0Zyb3plbiIsIlJlc3BvbnNlIiwibW9kZSIsImRhdGEiLCJ1bmRlZmluZWQiLCJpc01hdGNoSWdub3JlZCIsImVzY2FwZUhUTUwiLCJ2YWx1ZSIsInJlcGxhY2UiLCJpbmhlcml0JDEiLCJvcmlnaW5hbCIsInJlc3VsdCIsImNyZWF0ZSIsImtleSIsIm9iamVjdHMiLCJTUEFOX0NMT1NFIiwiZW1pdHNXcmFwcGluZ1RhZ3MiLCJub2RlIiwic2NvcGUiLCJzY29wZVRvQ1NTQ2xhc3MiLCJwcmVmaXgiLCJzdGFydHNXaXRoIiwiaW5jbHVkZXMiLCJwaWVjZXMiLCJzcGxpdCIsInNoaWZ0IiwibWFwIiwieCIsImkiLCJyZXBlYXQiLCJqb2luIiwiSFRNTFJlbmRlcmVyIiwicGFyc2VUcmVlIiwib3B0aW9ucyIsImJ1ZmZlciIsImNsYXNzUHJlZml4Iiwid2FsayIsInRleHQiLCJjbGFzc05hbWUiLCJzcGFuIiwibmV3Tm9kZSIsIm9wdHMiLCJjaGlsZHJlbiIsImFzc2lnbiIsIlRva2VuVHJlZSIsInJvb3ROb2RlIiwic3RhY2siLCJsZW5ndGgiLCJ0b3AiLCJwdXNoIiwicG9wIiwiY2xvc2VOb2RlIiwiSlNPTiIsInN0cmluZ2lmeSIsImJ1aWxkZXIiLCJjb25zdHJ1Y3RvciIsIl93YWxrIiwiYWRkVGV4dCIsIm9wZW5Ob2RlIiwiY2hpbGQiLCJldmVyeSIsImVsIiwiX2NvbGxhcHNlIiwiVG9rZW5UcmVlRW1pdHRlciIsImVtaXR0ZXIiLCJyb290IiwicmVuZGVyZXIiLCJjbG9zZUFsbE5vZGVzIiwic291cmNlIiwicmUiLCJsb29rYWhlYWQiLCJjb25jYXQiLCJhbnlOdW1iZXJPZlRpbWVzIiwib3B0aW9uYWwiLCJhcmdzIiwiam9pbmVkIiwic3RyaXBPcHRpb25zRnJvbUFyZ3MiLCJzcGxpY2UiLCJlaXRoZXIiLCJjYXB0dXJlIiwiY291bnRNYXRjaEdyb3VwcyIsIlJlZ0V4cCIsInRvU3RyaW5nIiwiZXhlYyIsImxleGVtZSIsIm1hdGNoIiwiaW5kZXgiLCJCQUNLUkVGX1JFIiwiX3Jld3JpdGVCYWNrcmVmZXJlbmNlcyIsInJlZ2V4cHMiLCJqb2luV2l0aCIsIm51bUNhcHR1cmVzIiwicmVnZXgiLCJvZmZzZXQiLCJvdXQiLCJzdWJzdHJpbmciLCJTdHJpbmciLCJOdW1iZXIiLCJNQVRDSF9OT1RISU5HX1JFIiwiSURFTlRfUkUiLCJVTkRFUlNDT1JFX0lERU5UX1JFIiwiTlVNQkVSX1JFIiwiQ19OVU1CRVJfUkUiLCJCSU5BUllfTlVNQkVSX1JFIiwiUkVfU1RBUlRFUlNfUkUiLCJTSEVCQU5HIiwiYmVnaW5TaGViYW5nIiwiYmluYXJ5IiwiYmVnaW4iLCJlbmQiLCJyZWxldmFuY2UiLCJtIiwicmVzcCIsImlnbm9yZU1hdGNoIiwiQkFDS1NMQVNIX0VTQ0FQRSIsIkFQT1NfU1RSSU5HX01PREUiLCJpbGxlZ2FsIiwiY29udGFpbnMiLCJRVU9URV9TVFJJTkdfTU9ERSIsIlBIUkFTQUxfV09SRFNfTU9ERSIsIkNPTU1FTlQiLCJtb2RlT3B0aW9ucyIsImV4Y2x1ZGVCZWdpbiIsIkVOR0xJU0hfV09SRCIsIkNfTElORV9DT01NRU5UX01PREUiLCJDX0JMT0NLX0NPTU1FTlRfTU9ERSIsIkhBU0hfQ09NTUVOVF9NT0RFIiwiTlVNQkVSX01PREUiLCJDX05VTUJFUl9NT0RFIiwiQklOQVJZX05VTUJFUl9NT0RFIiwiUkVHRVhQX01PREUiLCJUSVRMRV9NT0RFIiwiVU5ERVJTQ09SRV9USVRMRV9NT0RFIiwiTUVUSE9EX0dVQVJEIiwiRU5EX1NBTUVfQVNfQkVHSU4iLCJfYmVnaW5NYXRjaCIsIk1PREVTIiwiX19wcm90b19fIiwic2tpcElmSGFzUHJlY2VkaW5nRG90IiwicmVzcG9uc2UiLCJiZWZvcmUiLCJpbnB1dCIsInNjb3BlQ2xhc3NOYW1lIiwiX3BhcmVudCIsImJlZ2luS2V5d29yZHMiLCJwYXJlbnQiLCJfX2JlZm9yZUJlZ2luIiwia2V5d29yZHMiLCJjb21waWxlSWxsZWdhbCIsIkFycmF5IiwiaXNBcnJheSIsImNvbXBpbGVNYXRjaCIsImNvbXBpbGVSZWxldmFuY2UiLCJiZWZvcmVNYXRjaEV4dCIsImJlZm9yZU1hdGNoIiwic3RhcnRzIiwib3JpZ2luYWxNb2RlIiwia2V5cyIsImVuZHNQYXJlbnQiLCJDT01NT05fS0VZV09SRFMiLCJERUZBVUxUX0tFWVdPUkRfU0NPUEUiLCJjb21waWxlS2V5d29yZHMiLCJyYXdLZXl3b3JkcyIsImNhc2VJbnNlbnNpdGl2ZSIsInNjb3BlTmFtZSIsImNvbXBpbGVkS2V5d29yZHMiLCJjb21waWxlTGlzdCIsImtleXdvcmRMaXN0IiwidG9Mb3dlckNhc2UiLCJrZXl3b3JkIiwicGFpciIsInNjb3JlRm9yS2V5d29yZCIsInByb3ZpZGVkU2NvcmUiLCJjb21tb25LZXl3b3JkIiwic2VlbkRlcHJlY2F0aW9ucyIsImVycm9yIiwibWVzc2FnZSIsIndhcm4iLCJkZXByZWNhdGVkIiwidmVyc2lvbiIsIk11bHRpQ2xhc3NFcnJvciIsInJlbWFwU2NvcGVOYW1lcyIsInJlZ2V4ZXMiLCJzY29wZU5hbWVzIiwiZW1pdCIsInBvc2l0aW9ucyIsIl9lbWl0IiwiX211bHRpIiwiYmVnaW5NdWx0aUNsYXNzIiwic2tpcCIsInJldHVybkJlZ2luIiwiYmVnaW5TY29wZSIsImVuZE11bHRpQ2xhc3MiLCJleGNsdWRlRW5kIiwicmV0dXJuRW5kIiwiZW5kU2NvcGUiLCJzY29wZVN1Z2FyIiwiTXVsdGlDbGFzcyIsIl93cmFwIiwiY29tcGlsZUxhbmd1YWdlIiwibGFuZ3VhZ2UiLCJsYW5nUmUiLCJnbG9iYWwiLCJjYXNlX2luc2Vuc2l0aXZlIiwidW5pY29kZVJlZ2V4IiwiTXVsdGlSZWdleCIsIm1hdGNoSW5kZXhlcyIsIm1hdGNoQXQiLCJwb3NpdGlvbiIsInRlcm1pbmF0b3JzIiwibWF0Y2hlclJlIiwibGFzdEluZGV4IiwicyIsImZpbmRJbmRleCIsIm1hdGNoRGF0YSIsIlJlc3VtYWJsZU11bHRpUmVnZXgiLCJydWxlcyIsIm11bHRpUmVnZXhlcyIsImNvdW50IiwicmVnZXhJbmRleCIsIm1hdGNoZXIiLCJzbGljZSIsImFkZFJ1bGUiLCJjb21waWxlIiwiZ2V0TWF0Y2hlciIsInJlc3VtaW5nU2NhbkF0U2FtZVBvc2l0aW9uIiwibTIiLCJjb25zaWRlckFsbCIsImJ1aWxkTW9kZVJlZ2V4IiwibW0iLCJ0ZXJtIiwicnVsZSIsInRlcm1pbmF0b3JFbmQiLCJjb21waWxlTW9kZSIsImNtb2RlIiwiaXNDb21waWxlZCIsImV4dCIsImNvbXBpbGVyRXh0ZW5zaW9ucyIsImtleXdvcmRQYXR0ZXJuIiwiJHBhdHRlcm4iLCJrZXl3b3JkUGF0dGVyblJlIiwiYmVnaW5SZSIsImVuZHNXaXRoUGFyZW50IiwiZW5kUmUiLCJpbGxlZ2FsUmUiLCJjIiwiZXhwYW5kT3JDbG9uZU1vZGUiLCJjbGFzc05hbWVBbGlhc2VzIiwiZGVwZW5kZW5jeU9uUGFyZW50IiwidmFyaWFudHMiLCJjYWNoZWRWYXJpYW50cyIsInZhcmlhbnQiLCJIVE1MSW5qZWN0aW9uRXJyb3IiLCJyZWFzb24iLCJodG1sIiwiZXNjYXBlIiwiaW5oZXJpdCIsIk5PX01BVENIIiwiU3ltYm9sIiwiTUFYX0tFWVdPUkRfSElUUyIsIkhMSlMiLCJobGpzIiwibGFuZ3VhZ2VzIiwiYWxpYXNlcyIsInBsdWdpbnMiLCJTQUZFX01PREUiLCJMQU5HVUFHRV9OT1RfRk9VTkQiLCJQTEFJTlRFWFRfTEFOR1VBR0UiLCJkaXNhYmxlQXV0b2RldGVjdCIsImlnbm9yZVVuZXNjYXBlZEhUTUwiLCJ0aHJvd1VuZXNjYXBlZEhUTUwiLCJub0hpZ2hsaWdodFJlIiwibGFuZ3VhZ2VEZXRlY3RSZSIsImNzc1NlbGVjdG9yIiwiX19lbWl0dGVyIiwic2hvdWxkTm90SGlnaGxpZ2h0IiwibGFuZ3VhZ2VOYW1lIiwidGVzdCIsImJsb2NrTGFuZ3VhZ2UiLCJibG9jayIsImNsYXNzZXMiLCJwYXJlbnROb2RlIiwiZ2V0TGFuZ3VhZ2UiLCJmaW5kIiwiX2NsYXNzIiwiaGlnaGxpZ2h0IiwiY29kZU9yTGFuZ3VhZ2VOYW1lIiwib3B0aW9uc09yQ29kZSIsImlnbm9yZUlsbGVnYWxzIiwiY29kZSIsImNvbnRleHQiLCJmaXJlIiwiX2hpZ2hsaWdodCIsImNvZGVUb0hpZ2hsaWdodCIsImNvbnRpbnVhdGlvbiIsImtleXdvcmRIaXRzIiwia2V5d29yZERhdGEiLCJtYXRjaFRleHQiLCJwcm9jZXNzS2V5d29yZHMiLCJtb2RlQnVmZmVyIiwiYnVmIiwid29yZCIsImtpbmQiLCJrZXl3b3JkUmVsZXZhbmNlIiwiY3NzQ2xhc3MiLCJlbWl0S2V5d29yZCIsInByb2Nlc3NTdWJMYW5ndWFnZSIsInN1Ykxhbmd1YWdlIiwiY29udGludWF0aW9ucyIsIl90b3AiLCJoaWdobGlnaHRBdXRvIiwiX19hZGRTdWJsYW5ndWFnZSIsIl9lbWl0dGVyIiwicHJvY2Vzc0J1ZmZlciIsInN0YXJ0U2NvcGUiLCJlbWl0TXVsdGlDbGFzcyIsIm1heCIsImtsYXNzIiwic3RhcnROZXdNb2RlIiwiZW5kT2ZNb2RlIiwibWF0Y2hQbHVzUmVtYWluZGVyIiwibWF0Y2hlZCIsImRvSWdub3JlIiwicmVzdW1lU2NhbkF0U2FtZVBvc2l0aW9uIiwiZG9CZWdpbk1hdGNoIiwibmV3TW9kZSIsImJlZm9yZUNhbGxiYWNrcyIsImNiIiwiZG9FbmRNYXRjaCIsImVuZE1vZGUiLCJvcmlnaW4iLCJwcm9jZXNzQ29udGludWF0aW9ucyIsImxpc3QiLCJjdXJyZW50IiwidW5zaGlmdCIsIml0ZW0iLCJsYXN0TWF0Y2giLCJwcm9jZXNzTGV4ZW1lIiwidGV4dEJlZm9yZU1hdGNoIiwiZXJyIiwiYmFkUnVsZSIsInByb2Nlc3NlZCIsIml0ZXJhdGlvbnMiLCJtZCIsIl9fZW1pdFRva2VucyIsInByb2Nlc3NlZENvdW50IiwiZmluYWxpemUiLCJ0b0hUTUwiLCJfaWxsZWdhbEJ5IiwicmVzdWx0U29GYXIiLCJlcnJvclJhaXNlZCIsImp1c3RUZXh0SGlnaGxpZ2h0UmVzdWx0IiwibGFuZ3VhZ2VTdWJzZXQiLCJwbGFpbnRleHQiLCJyZXN1bHRzIiwiZmlsdGVyIiwiYXV0b0RldGVjdGlvbiIsInNvcnRlZCIsInNvcnQiLCJhIiwiYiIsInN1cGVyc2V0T2YiLCJiZXN0Iiwic2Vjb25kQmVzdCIsInVwZGF0ZUNsYXNzTmFtZSIsImVsZW1lbnQiLCJjdXJyZW50TGFuZyIsInJlc3VsdExhbmciLCJjbGFzc0xpc3QiLCJoaWdobGlnaHRFbGVtZW50IiwiaW5uZXJIVE1MIiwidGV4dENvbnRlbnQiLCJjb25maWd1cmUiLCJ1c2VyT3B0aW9ucyIsImluaXRIaWdobGlnaHRpbmciLCJoaWdobGlnaHRBbGwiLCJpbml0SGlnaGxpZ2h0aW5nT25Mb2FkIiwid2FudHNIaWdobGlnaHQiLCJkb2N1bWVudCIsInJlYWR5U3RhdGUiLCJibG9ja3MiLCJxdWVyeVNlbGVjdG9yQWxsIiwiYm9vdCIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZWdpc3Rlckxhbmd1YWdlIiwibGFuZ3VhZ2VEZWZpbml0aW9uIiwibGFuZyIsImVycm9yJDEiLCJyYXdEZWZpbml0aW9uIiwiYmluZCIsInJlZ2lzdGVyQWxpYXNlcyIsInVucmVnaXN0ZXJMYW5ndWFnZSIsImFsaWFzIiwibGlzdExhbmd1YWdlcyIsImFsaWFzTGlzdCIsInVwZ3JhZGVQbHVnaW5BUEkiLCJwbHVnaW4iLCJhZGRQbHVnaW4iLCJyZW1vdmVQbHVnaW4iLCJpbmRleE9mIiwiZXZlbnQiLCJkZXByZWNhdGVIaWdobGlnaHRCbG9jayIsImhpZ2hsaWdodEJsb2NrIiwiZGVidWdNb2RlIiwic2FmZU1vZGUiLCJ2ZXJzaW9uU3RyaW5nIiwibmV3SW5zdGFuY2UiLCJtb2R1bGUiLCJleHBvcnRzIiwiSGlnaGxpZ2h0SlMiLCJkZWZhdWx0Il0sIm1h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QyxDQUFDOztBQUUxQjtBQUNBO0FBQ0F5QixTQUFTLENBQUMwSCxXQUFXLEdBQUc7RUFBQSxPQUFNbkosSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQUE7QUFFdENvSixNQUFNLENBQUNDLE9BQU8sR0FBRzVILFNBQVM7QUFDMUJBLFNBQVMsQ0FBQzZILFdBQVcsR0FBRzdILFNBQVM7QUFDakNBLFNBQVMsQ0FBQzhILE9BQU8sR0FBRzlILFNBQVMsQyIsImZpbGUiOiIzMy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLW11bHRpLWFzc2lnbiAqL1xuXG5mdW5jdGlvbiBkZWVwRnJlZXplKG9iaikge1xuICBpZiAob2JqIGluc3RhbmNlb2YgTWFwKSB7XG4gICAgb2JqLmNsZWFyID1cbiAgICAgIG9iai5kZWxldGUgPVxuICAgICAgb2JqLnNldCA9XG4gICAgICAgIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ21hcCBpcyByZWFkLW9ubHknKTtcbiAgICAgICAgfTtcbiAgfSBlbHNlIGlmIChvYmogaW5zdGFuY2VvZiBTZXQpIHtcbiAgICBvYmouYWRkID1cbiAgICAgIG9iai5jbGVhciA9XG4gICAgICBvYmouZGVsZXRlID1cbiAgICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignc2V0IGlzIHJlYWQtb25seScpO1xuICAgICAgICB9O1xuICB9XG5cbiAgLy8gRnJlZXplIHNlbGZcbiAgT2JqZWN0LmZyZWV6ZShvYmopO1xuXG4gIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iaikuZm9yRWFjaCgobmFtZSkgPT4ge1xuICAgIGNvbnN0IHByb3AgPSBvYmpbbmFtZV07XG4gICAgY29uc3QgdHlwZSA9IHR5cGVvZiBwcm9wO1xuXG4gICAgLy8gRnJlZXplIHByb3AgaWYgaXQgaXMgYW4gb2JqZWN0IG9yIGZ1bmN0aW9uIGFuZCBhbHNvIG5vdCBhbHJlYWR5IGZyb3plblxuICAgIGlmICgodHlwZSA9PT0gJ29iamVjdCcgfHwgdHlwZSA9PT0gJ2Z1bmN0aW9uJykgJiYgIU9iamVjdC5pc0Zyb3plbihwcm9wKSkge1xuICAgICAgZGVlcEZyZWV6ZShwcm9wKTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBvYmo7XG59XG5cbi8qKiBAdHlwZWRlZiB7aW1wb3J0KCdoaWdobGlnaHQuanMnKS5DYWxsYmFja1Jlc3BvbnNlfSBDYWxsYmFja1Jlc3BvbnNlICovXG4vKiogQHR5cGVkZWYge2ltcG9ydCgnaGlnaGxpZ2h0LmpzJykuQ29tcGlsZWRNb2RlfSBDb21waWxlZE1vZGUgKi9cbi8qKiBAaW1wbGVtZW50cyBDYWxsYmFja1Jlc3BvbnNlICovXG5cbmNsYXNzIFJlc3BvbnNlIHtcbiAgLyoqXG4gICAqIEBwYXJhbSB7Q29tcGlsZWRNb2RlfSBtb2RlXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihtb2RlKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVmaW5lZFxuICAgIGlmIChtb2RlLmRhdGEgPT09IHVuZGVmaW5lZCkgbW9kZS5kYXRhID0ge307XG5cbiAgICB0aGlzLmRhdGEgPSBtb2RlLmRhdGE7XG4gICAgdGhpcy5pc01hdGNoSWdub3JlZCA9IGZhbHNlO1xuICB9XG5cbiAgaWdub3JlTWF0Y2goKSB7XG4gICAgdGhpcy5pc01hdGNoSWdub3JlZCA9IHRydWU7XG4gIH1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGVzY2FwZUhUTUwodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlXG4gICAgLnJlcGxhY2UoLyYvZywgJyZhbXA7JylcbiAgICAucmVwbGFjZSgvPC9nLCAnJmx0OycpXG4gICAgLnJlcGxhY2UoLz4vZywgJyZndDsnKVxuICAgIC5yZXBsYWNlKC9cIi9nLCAnJnF1b3Q7JylcbiAgICAucmVwbGFjZSgvJy9nLCAnJiN4Mjc7Jyk7XG59XG5cbi8qKlxuICogcGVyZm9ybXMgYSBzaGFsbG93IG1lcmdlIG9mIG11bHRpcGxlIG9iamVjdHMgaW50byBvbmVcbiAqXG4gKiBAdGVtcGxhdGUgVFxuICogQHBhcmFtIHtUfSBvcmlnaW5hbFxuICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLGFueT5bXX0gb2JqZWN0c1xuICogQHJldHVybnMge1R9IGEgc2luZ2xlIG5ldyBvYmplY3RcbiAqL1xuZnVuY3Rpb24gaW5oZXJpdCQxKG9yaWdpbmFsLCAuLi5vYmplY3RzKSB7XG4gIC8qKiBAdHlwZSBSZWNvcmQ8c3RyaW5nLGFueT4gKi9cbiAgY29uc3QgcmVzdWx0ID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcblxuICBmb3IgKGNvbnN0IGtleSBpbiBvcmlnaW5hbCkge1xuICAgIHJlc3VsdFtrZXldID0gb3JpZ2luYWxba2V5XTtcbiAgfVxuICBvYmplY3RzLmZvckVhY2goZnVuY3Rpb24ob2JqKSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gb2JqKSB7XG4gICAgICByZXN1bHRba2V5XSA9IG9ialtrZXldO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiAvKiogQHR5cGUge1R9ICovIChyZXN1bHQpO1xufVxuXG4vKipcbiAqIEB0eXBlZGVmIHtvYmplY3R9IFJlbmRlcmVyXG4gKiBAcHJvcGVydHkgeyh0ZXh0OiBzdHJpbmcpID0+IHZvaWR9IGFkZFRleHRcbiAqIEBwcm9wZXJ0eSB7KG5vZGU6IE5vZGUpID0+IHZvaWR9IG9wZW5Ob2RlXG4gKiBAcHJvcGVydHkgeyhub2RlOiBOb2RlKSA9PiB2b2lkfSBjbG9zZU5vZGVcbiAqIEBwcm9wZXJ0eSB7KCkgPT4gc3RyaW5nfSB2YWx1ZVxuICovXG5cbi8qKiBAdHlwZWRlZiB7e3Njb3BlPzogc3RyaW5nLCBsYW5ndWFnZT86IHN0cmluZywgc3VibGFuZ3VhZ2U/OiBib29sZWFufX0gTm9kZSAqL1xuLyoqIEB0eXBlZGVmIHt7d2FsazogKHI6IFJlbmRlcmVyKSA9PiB2b2lkfX0gVHJlZSAqL1xuLyoqICovXG5cbmNvbnN0IFNQQU5fQ0xPU0UgPSAnPC9zcGFuPic7XG5cbi8qKlxuICogRGV0ZXJtaW5lcyBpZiBhIG5vZGUgbmVlZHMgdG8gYmUgd3JhcHBlZCBpbiA8c3Bhbj5cbiAqXG4gKiBAcGFyYW0ge05vZGV9IG5vZGUgKi9cbmNvbnN0IGVtaXRzV3JhcHBpbmdUYWdzID0gKG5vZGUpID0+IHtcbiAgLy8gcmFyZWx5IHdlIGNhbiBoYXZlIGEgc3VibGFuZ3VhZ2Ugd2hlcmUgbGFuZ3VhZ2UgaXMgdW5kZWZpbmVkXG4gIC8vIFRPRE86IHRyYWNrIGRvd24gd2h5XG4gIHJldHVybiAhIW5vZGUuc2NvcGU7XG59O1xuXG4vKipcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICogQHBhcmFtIHt7cHJlZml4OnN0cmluZ319IG9wdGlvbnNcbiAqL1xuY29uc3Qgc2NvcGVUb0NTU0NsYXNzID0gKG5hbWUsIHsgcHJlZml4IH0pID0+IHtcbiAgLy8gc3ViLWxhbmd1YWdlXG4gIGlmIChuYW1lLnN0YXJ0c1dpdGgoXCJsYW5ndWFnZTpcIikpIHtcbiAgICByZXR1cm4gbmFtZS5yZXBsYWNlKFwibGFuZ3VhZ2U6XCIsIFwibGFuZ3VhZ2UtXCIpO1xuICB9XG4gIC8vIHRpZXJlZCBzY29wZTogY29tbWVudC5saW5lXG4gIGlmIChuYW1lLmluY2x1ZGVzKFwiLlwiKSkge1xuICAgIGNvbnN0IHBpZWNlcyA9IG5hbWUuc3BsaXQoXCIuXCIpO1xuICAgIHJldHVybiBbXG4gICAgICBgJHtwcmVmaXh9JHtwaWVjZXMuc2hpZnQoKX1gLFxuICAgICAgLi4uKHBpZWNlcy5tYXAoKHgsIGkpID0+IGAke3h9JHtcIl9cIi5yZXBlYXQoaSArIDEpfWApKVxuICAgIF0uam9pbihcIiBcIik7XG4gIH1cbiAgLy8gc2ltcGxlIHNjb3BlXG4gIHJldHVybiBgJHtwcmVmaXh9JHtuYW1lfWA7XG59O1xuXG4vKiogQHR5cGUge1JlbmRlcmVyfSAqL1xuY2xhc3MgSFRNTFJlbmRlcmVyIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgSFRNTFJlbmRlcmVyXG4gICAqXG4gICAqIEBwYXJhbSB7VHJlZX0gcGFyc2VUcmVlIC0gdGhlIHBhcnNlIHRyZWUgKG11c3Qgc3VwcG9ydCBgd2Fsa2AgQVBJKVxuICAgKiBAcGFyYW0ge3tjbGFzc1ByZWZpeDogc3RyaW5nfX0gb3B0aW9uc1xuICAgKi9cbiAgY29uc3RydWN0b3IocGFyc2VUcmVlLCBvcHRpb25zKSB7XG4gICAgdGhpcy5idWZmZXIgPSBcIlwiO1xuICAgIHRoaXMuY2xhc3NQcmVmaXggPSBvcHRpb25zLmNsYXNzUHJlZml4O1xuICAgIHBhcnNlVHJlZS53YWxrKHRoaXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgdGV4dHMgdG8gdGhlIG91dHB1dCBzdHJlYW1cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRleHQgKi9cbiAgYWRkVGV4dCh0ZXh0KSB7XG4gICAgdGhpcy5idWZmZXIgKz0gZXNjYXBlSFRNTCh0ZXh0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgbm9kZSBvcGVuIHRvIHRoZSBvdXRwdXQgc3RyZWFtIChpZiBuZWVkZWQpXG4gICAqXG4gICAqIEBwYXJhbSB7Tm9kZX0gbm9kZSAqL1xuICBvcGVuTm9kZShub2RlKSB7XG4gICAgaWYgKCFlbWl0c1dyYXBwaW5nVGFncyhub2RlKSkgcmV0dXJuO1xuXG4gICAgY29uc3QgY2xhc3NOYW1lID0gc2NvcGVUb0NTU0NsYXNzKG5vZGUuc2NvcGUsXG4gICAgICB7IHByZWZpeDogdGhpcy5jbGFzc1ByZWZpeCB9KTtcbiAgICB0aGlzLnNwYW4oY2xhc3NOYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgbm9kZSBjbG9zZSB0byB0aGUgb3V0cHV0IHN0cmVhbSAoaWYgbmVlZGVkKVxuICAgKlxuICAgKiBAcGFyYW0ge05vZGV9IG5vZGUgKi9cbiAgY2xvc2VOb2RlKG5vZGUpIHtcbiAgICBpZiAoIWVtaXRzV3JhcHBpbmdUYWdzKG5vZGUpKSByZXR1cm47XG5cbiAgICB0aGlzLmJ1ZmZlciArPSBTUEFOX0NMT1NFO1xuICB9XG5cbiAgLyoqXG4gICAqIHJldHVybnMgdGhlIGFjY3VtdWxhdGVkIGJ1ZmZlclxuICAqL1xuICB2YWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5idWZmZXI7XG4gIH1cblxuICAvLyBoZWxwZXJzXG5cbiAgLyoqXG4gICAqIEJ1aWxkcyBhIHNwYW4gZWxlbWVudFxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gY2xhc3NOYW1lICovXG4gIHNwYW4oY2xhc3NOYW1lKSB7XG4gICAgdGhpcy5idWZmZXIgKz0gYDxzcGFuIGNsYXNzPVwiJHtjbGFzc05hbWV9XCI+YDtcbiAgfVxufVxuXG4vKiogQHR5cGVkZWYge3tzY29wZT86IHN0cmluZywgbGFuZ3VhZ2U/OiBzdHJpbmcsIHN1Ymxhbmd1YWdlPzogYm9vbGVhbiwgY2hpbGRyZW46IE5vZGVbXX0gfCBzdHJpbmd9IE5vZGUgKi9cbi8qKiBAdHlwZWRlZiB7e3Njb3BlPzogc3RyaW5nLCBsYW5ndWFnZT86IHN0cmluZywgc3VibGFuZ3VhZ2U/OiBib29sZWFuLCBjaGlsZHJlbjogTm9kZVtdfSB9IERhdGFOb2RlICovXG4vKiogQHR5cGVkZWYge2ltcG9ydCgnaGlnaGxpZ2h0LmpzJykuRW1pdHRlcn0gRW1pdHRlciAqL1xuLyoqICAqL1xuXG4vKiogQHJldHVybnMge0RhdGFOb2RlfSAqL1xuY29uc3QgbmV3Tm9kZSA9IChvcHRzID0ge30pID0+IHtcbiAgLyoqIEB0eXBlIERhdGFOb2RlICovXG4gIGNvbnN0IHJlc3VsdCA9IHsgY2hpbGRyZW46IFtdIH07XG4gIE9iamVjdC5hc3NpZ24ocmVzdWx0LCBvcHRzKTtcbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmNsYXNzIFRva2VuVHJlZSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8qKiBAdHlwZSBEYXRhTm9kZSAqL1xuICAgIHRoaXMucm9vdE5vZGUgPSBuZXdOb2RlKCk7XG4gICAgdGhpcy5zdGFjayA9IFt0aGlzLnJvb3ROb2RlXTtcbiAgfVxuXG4gIGdldCB0b3AoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGggLSAxXTtcbiAgfVxuXG4gIGdldCByb290KCkgeyByZXR1cm4gdGhpcy5yb290Tm9kZTsgfVxuXG4gIC8qKiBAcGFyYW0ge05vZGV9IG5vZGUgKi9cbiAgYWRkKG5vZGUpIHtcbiAgICB0aGlzLnRvcC5jaGlsZHJlbi5wdXNoKG5vZGUpO1xuICB9XG5cbiAgLyoqIEBwYXJhbSB7c3RyaW5nfSBzY29wZSAqL1xuICBvcGVuTm9kZShzY29wZSkge1xuICAgIC8qKiBAdHlwZSBOb2RlICovXG4gICAgY29uc3Qgbm9kZSA9IG5ld05vZGUoeyBzY29wZSB9KTtcbiAgICB0aGlzLmFkZChub2RlKTtcbiAgICB0aGlzLnN0YWNrLnB1c2gobm9kZSk7XG4gIH1cblxuICBjbG9zZU5vZGUoKSB7XG4gICAgaWYgKHRoaXMuc3RhY2subGVuZ3RoID4gMSkge1xuICAgICAgcmV0dXJuIHRoaXMuc3RhY2sucG9wKCk7XG4gICAgfVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlZmluZWRcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY2xvc2VBbGxOb2RlcygpIHtcbiAgICB3aGlsZSAodGhpcy5jbG9zZU5vZGUoKSk7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMucm9vdE5vZGUsIG51bGwsIDQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEB0eXBlZGVmIHsgaW1wb3J0KFwiLi9odG1sX3JlbmRlcmVyXCIpLlJlbmRlcmVyIH0gUmVuZGVyZXJcbiAgICogQHBhcmFtIHtSZW5kZXJlcn0gYnVpbGRlclxuICAgKi9cbiAgd2FsayhidWlsZGVyKSB7XG4gICAgLy8gdGhpcyBkb2VzIG5vdFxuICAgIHJldHVybiB0aGlzLmNvbnN0cnVjdG9yLl93YWxrKGJ1aWxkZXIsIHRoaXMucm9vdE5vZGUpO1xuICAgIC8vIHRoaXMgd29ya3NcbiAgICAvLyByZXR1cm4gVG9rZW5UcmVlLl93YWxrKGJ1aWxkZXIsIHRoaXMucm9vdE5vZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7UmVuZGVyZXJ9IGJ1aWxkZXJcbiAgICogQHBhcmFtIHtOb2RlfSBub2RlXG4gICAqL1xuICBzdGF0aWMgX3dhbGsoYnVpbGRlciwgbm9kZSkge1xuICAgIGlmICh0eXBlb2Ygbm9kZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgYnVpbGRlci5hZGRUZXh0KG5vZGUpO1xuICAgIH0gZWxzZSBpZiAobm9kZS5jaGlsZHJlbikge1xuICAgICAgYnVpbGRlci5vcGVuTm9kZShub2RlKTtcbiAgICAgIG5vZGUuY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGQpID0+IHRoaXMuX3dhbGsoYnVpbGRlciwgY2hpbGQpKTtcbiAgICAgIGJ1aWxkZXIuY2xvc2VOb2RlKG5vZGUpO1xuICAgIH1cbiAgICByZXR1cm4gYnVpbGRlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge05vZGV9IG5vZGVcbiAgICovXG4gIHN0YXRpYyBfY29sbGFwc2Uobm9kZSkge1xuICAgIGlmICh0eXBlb2Ygbm9kZSA9PT0gXCJzdHJpbmdcIikgcmV0dXJuO1xuICAgIGlmICghbm9kZS5jaGlsZHJlbikgcmV0dXJuO1xuXG4gICAgaWYgKG5vZGUuY2hpbGRyZW4uZXZlcnkoZWwgPT4gdHlwZW9mIGVsID09PSBcInN0cmluZ1wiKSkge1xuICAgICAgLy8gbm9kZS50ZXh0ID0gbm9kZS5jaGlsZHJlbi5qb2luKFwiXCIpO1xuICAgICAgLy8gZGVsZXRlIG5vZGUuY2hpbGRyZW47XG4gICAgICBub2RlLmNoaWxkcmVuID0gW25vZGUuY2hpbGRyZW4uam9pbihcIlwiKV07XG4gICAgfSBlbHNlIHtcbiAgICAgIG5vZGUuY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGQpID0+IHtcbiAgICAgICAgVG9rZW5UcmVlLl9jb2xsYXBzZShjaGlsZCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gIEN1cnJlbnRseSB0aGlzIGlzIGFsbCBwcml2YXRlIEFQSSwgYnV0IHRoaXMgaXMgdGhlIG1pbmltYWwgQVBJIG5lY2Vzc2FyeVxuICB0aGF0IGFuIEVtaXR0ZXIgbXVzdCBpbXBsZW1lbnQgdG8gZnVsbHkgc3VwcG9ydCB0aGUgcGFyc2VyLlxuXG4gIE1pbmltYWwgaW50ZXJmYWNlOlxuXG4gIC0gYWRkVGV4dCh0ZXh0KVxuICAtIF9fYWRkU3VibGFuZ3VhZ2UoZW1pdHRlciwgc3ViTGFuZ3VhZ2VOYW1lKVxuICAtIHN0YXJ0U2NvcGUoc2NvcGUpXG4gIC0gZW5kU2NvcGUoKVxuICAtIGZpbmFsaXplKClcbiAgLSB0b0hUTUwoKVxuXG4qL1xuXG4vKipcbiAqIEBpbXBsZW1lbnRzIHtFbWl0dGVyfVxuICovXG5jbGFzcyBUb2tlblRyZWVFbWl0dGVyIGV4dGVuZHMgVG9rZW5UcmVlIHtcbiAgLyoqXG4gICAqIEBwYXJhbSB7Kn0gb3B0aW9uc1xuICAgKi9cbiAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dFxuICAgKi9cbiAgYWRkVGV4dCh0ZXh0KSB7XG4gICAgaWYgKHRleHQgPT09IFwiXCIpIHsgcmV0dXJuOyB9XG5cbiAgICB0aGlzLmFkZCh0ZXh0KTtcbiAgfVxuXG4gIC8qKiBAcGFyYW0ge3N0cmluZ30gc2NvcGUgKi9cbiAgc3RhcnRTY29wZShzY29wZSkge1xuICAgIHRoaXMub3Blbk5vZGUoc2NvcGUpO1xuICB9XG5cbiAgZW5kU2NvcGUoKSB7XG4gICAgdGhpcy5jbG9zZU5vZGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge0VtaXR0ZXIgJiB7cm9vdDogRGF0YU5vZGV9fSBlbWl0dGVyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lXG4gICAqL1xuICBfX2FkZFN1Ymxhbmd1YWdlKGVtaXR0ZXIsIG5hbWUpIHtcbiAgICAvKiogQHR5cGUgRGF0YU5vZGUgKi9cbiAgICBjb25zdCBub2RlID0gZW1pdHRlci5yb290O1xuICAgIGlmIChuYW1lKSBub2RlLnNjb3BlID0gYGxhbmd1YWdlOiR7bmFtZX1gO1xuXG4gICAgdGhpcy5hZGQobm9kZSk7XG4gIH1cblxuICB0b0hUTUwoKSB7XG4gICAgY29uc3QgcmVuZGVyZXIgPSBuZXcgSFRNTFJlbmRlcmVyKHRoaXMsIHRoaXMub3B0aW9ucyk7XG4gICAgcmV0dXJuIHJlbmRlcmVyLnZhbHVlKCk7XG4gIH1cblxuICBmaW5hbGl6ZSgpIHtcbiAgICB0aGlzLmNsb3NlQWxsTm9kZXMoKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHJldHVybnMge1JlZ0V4cH1cbiAqICovXG5cbi8qKlxuICogQHBhcmFtIHtSZWdFeHAgfCBzdHJpbmcgfSByZVxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gc291cmNlKHJlKSB7XG4gIGlmICghcmUpIHJldHVybiBudWxsO1xuICBpZiAodHlwZW9mIHJlID09PSBcInN0cmluZ1wiKSByZXR1cm4gcmU7XG5cbiAgcmV0dXJuIHJlLnNvdXJjZTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge1JlZ0V4cCB8IHN0cmluZyB9IHJlXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBsb29rYWhlYWQocmUpIHtcbiAgcmV0dXJuIGNvbmNhdCgnKD89JywgcmUsICcpJyk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtSZWdFeHAgfCBzdHJpbmcgfSByZVxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gYW55TnVtYmVyT2ZUaW1lcyhyZSkge1xuICByZXR1cm4gY29uY2F0KCcoPzonLCByZSwgJykqJyk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtSZWdFeHAgfCBzdHJpbmcgfSByZVxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gb3B0aW9uYWwocmUpIHtcbiAgcmV0dXJuIGNvbmNhdCgnKD86JywgcmUsICcpPycpO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7Li4uKFJlZ0V4cCB8IHN0cmluZykgfSBhcmdzXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBjb25jYXQoLi4uYXJncykge1xuICBjb25zdCBqb2luZWQgPSBhcmdzLm1hcCgoeCkgPT4gc291cmNlKHgpKS5qb2luKFwiXCIpO1xuICByZXR1cm4gam9pbmVkO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7IEFycmF5PHN0cmluZyB8IFJlZ0V4cCB8IE9iamVjdD4gfSBhcmdzXG4gKiBAcmV0dXJucyB7b2JqZWN0fVxuICovXG5mdW5jdGlvbiBzdHJpcE9wdGlvbnNGcm9tQXJncyhhcmdzKSB7XG4gIGNvbnN0IG9wdHMgPSBhcmdzW2FyZ3MubGVuZ3RoIC0gMV07XG5cbiAgaWYgKHR5cGVvZiBvcHRzID09PSAnb2JqZWN0JyAmJiBvcHRzLmNvbnN0cnVjdG9yID09PSBPYmplY3QpIHtcbiAgICBhcmdzLnNwbGljZShhcmdzLmxlbmd0aCAtIDEsIDEpO1xuICAgIHJldHVybiBvcHRzO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB7fTtcbiAgfVxufVxuXG4vKiogQHR5cGVkZWYgeyB7Y2FwdHVyZT86IGJvb2xlYW59IH0gUmVnZXhFaXRoZXJPcHRpb25zICovXG5cbi8qKlxuICogQW55IG9mIHRoZSBwYXNzZWQgZXhwcmVzc3Npb25zIG1heSBtYXRjaFxuICpcbiAqIENyZWF0ZXMgYSBodWdlIHRoaXMgfCB0aGlzIHwgdGhhdCB8IHRoYXQgbWF0Y2hcbiAqIEBwYXJhbSB7KFJlZ0V4cCB8IHN0cmluZylbXSB8IFsuLi4oUmVnRXhwIHwgc3RyaW5nKVtdLCBSZWdleEVpdGhlck9wdGlvbnNdfSBhcmdzXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBlaXRoZXIoLi4uYXJncykge1xuICAvKiogQHR5cGUgeyBvYmplY3QgJiB7Y2FwdHVyZT86IGJvb2xlYW59IH0gICovXG4gIGNvbnN0IG9wdHMgPSBzdHJpcE9wdGlvbnNGcm9tQXJncyhhcmdzKTtcbiAgY29uc3Qgam9pbmVkID0gJygnXG4gICAgKyAob3B0cy5jYXB0dXJlID8gXCJcIiA6IFwiPzpcIilcbiAgICArIGFyZ3MubWFwKCh4KSA9PiBzb3VyY2UoeCkpLmpvaW4oXCJ8XCIpICsgXCIpXCI7XG4gIHJldHVybiBqb2luZWQ7XG59XG5cbi8qKlxuICogQHBhcmFtIHtSZWdFeHAgfCBzdHJpbmd9IHJlXG4gKiBAcmV0dXJucyB7bnVtYmVyfVxuICovXG5mdW5jdGlvbiBjb3VudE1hdGNoR3JvdXBzKHJlKSB7XG4gIHJldHVybiAobmV3IFJlZ0V4cChyZS50b1N0cmluZygpICsgJ3wnKSkuZXhlYygnJykubGVuZ3RoIC0gMTtcbn1cblxuLyoqXG4gKiBEb2VzIGxleGVtZSBzdGFydCB3aXRoIGEgcmVndWxhciBleHByZXNzaW9uIG1hdGNoIGF0IHRoZSBiZWdpbm5pbmdcbiAqIEBwYXJhbSB7UmVnRXhwfSByZVxuICogQHBhcmFtIHtzdHJpbmd9IGxleGVtZVxuICovXG5mdW5jdGlvbiBzdGFydHNXaXRoKHJlLCBsZXhlbWUpIHtcbiAgY29uc3QgbWF0Y2ggPSByZSAmJiByZS5leGVjKGxleGVtZSk7XG4gIHJldHVybiBtYXRjaCAmJiBtYXRjaC5pbmRleCA9PT0gMDtcbn1cblxuLy8gQkFDS1JFRl9SRSBtYXRjaGVzIGFuIG9wZW4gcGFyZW50aGVzaXMgb3IgYmFja3JlZmVyZW5jZS4gVG8gYXZvaWRcbi8vIGFuIGluY29ycmVjdCBwYXJzZSwgaXQgYWRkaXRpb25hbGx5IG1hdGNoZXMgdGhlIGZvbGxvd2luZzpcbi8vIC0gWy4uLl0gZWxlbWVudHMsIHdoZXJlIHRoZSBtZWFuaW5nIG9mIHBhcmVudGhlc2VzIGFuZCBlc2NhcGVzIGNoYW5nZVxuLy8gLSBvdGhlciBlc2NhcGUgc2VxdWVuY2VzLCBzbyB3ZSBkbyBub3QgbWlzcGFyc2UgZXNjYXBlIHNlcXVlbmNlcyBhc1xuLy8gICBpbnRlcmVzdGluZyBlbGVtZW50c1xuLy8gLSBub24tbWF0Y2hpbmcgb3IgbG9va2FoZWFkIHBhcmVudGhlc2VzLCB3aGljaCBkbyBub3QgY2FwdHVyZS4gVGhlc2Vcbi8vICAgZm9sbG93IHRoZSAnKCcgd2l0aCBhICc/Jy5cbmNvbnN0IEJBQ0tSRUZfUkUgPSAvXFxbKD86W15cXFxcXFxdXXxcXFxcLikqXFxdfFxcKFxcPz98XFxcXChbMS05XVswLTldKil8XFxcXC4vO1xuXG4vLyAqKklOVEVSTkFMKiogTm90IGludGVuZGVkIGZvciBvdXRzaWRlIHVzYWdlXG4vLyBqb2luIGxvZ2ljYWxseSBjb21wdXRlcyByZWdleHBzLmpvaW4oc2VwYXJhdG9yKSwgYnV0IGZpeGVzIHRoZVxuLy8gYmFja3JlZmVyZW5jZXMgc28gdGhleSBjb250aW51ZSB0byBtYXRjaC5cbi8vIGl0IGFsc28gcGxhY2VzIGVhY2ggaW5kaXZpZHVhbCByZWd1bGFyIGV4cHJlc3Npb24gaW50byBpdCdzIG93blxuLy8gbWF0Y2ggZ3JvdXAsIGtlZXBpbmcgdHJhY2sgb2YgdGhlIHNlcXVlbmNpbmcgb2YgdGhvc2UgbWF0Y2ggZ3JvdXBzXG4vLyBpcyBjdXJyZW50bHkgYW4gZXhlcmNpc2UgZm9yIHRoZSBjYWxsZXIuIDotKVxuLyoqXG4gKiBAcGFyYW0geyhzdHJpbmcgfCBSZWdFeHApW119IHJlZ2V4cHNcbiAqIEBwYXJhbSB7e2pvaW5XaXRoOiBzdHJpbmd9fSBvcHRzXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBfcmV3cml0ZUJhY2tyZWZlcmVuY2VzKHJlZ2V4cHMsIHsgam9pbldpdGggfSkge1xuICBsZXQgbnVtQ2FwdHVyZXMgPSAwO1xuXG4gIHJldHVybiByZWdleHBzLm1hcCgocmVnZXgpID0+IHtcbiAgICBudW1DYXB0dXJlcyArPSAxO1xuICAgIGNvbnN0IG9mZnNldCA9IG51bUNhcHR1cmVzO1xuICAgIGxldCByZSA9IHNvdXJjZShyZWdleCk7XG4gICAgbGV0IG91dCA9ICcnO1xuXG4gICAgd2hpbGUgKHJlLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IG1hdGNoID0gQkFDS1JFRl9SRS5leGVjKHJlKTtcbiAgICAgIGlmICghbWF0Y2gpIHtcbiAgICAgICAgb3V0ICs9IHJlO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIG91dCArPSByZS5zdWJzdHJpbmcoMCwgbWF0Y2guaW5kZXgpO1xuICAgICAgcmUgPSByZS5zdWJzdHJpbmcobWF0Y2guaW5kZXggKyBtYXRjaFswXS5sZW5ndGgpO1xuICAgICAgaWYgKG1hdGNoWzBdWzBdID09PSAnXFxcXCcgJiYgbWF0Y2hbMV0pIHtcbiAgICAgICAgLy8gQWRqdXN0IHRoZSBiYWNrcmVmZXJlbmNlLlxuICAgICAgICBvdXQgKz0gJ1xcXFwnICsgU3RyaW5nKE51bWJlcihtYXRjaFsxXSkgKyBvZmZzZXQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3V0ICs9IG1hdGNoWzBdO1xuICAgICAgICBpZiAobWF0Y2hbMF0gPT09ICcoJykge1xuICAgICAgICAgIG51bUNhcHR1cmVzKys7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG91dDtcbiAgfSkubWFwKHJlID0+IGAoJHtyZX0pYCkuam9pbihqb2luV2l0aCk7XG59XG5cbi8qKiBAdHlwZWRlZiB7aW1wb3J0KCdoaWdobGlnaHQuanMnKS5Nb2RlfSBNb2RlICovXG4vKiogQHR5cGVkZWYge2ltcG9ydCgnaGlnaGxpZ2h0LmpzJykuTW9kZUNhbGxiYWNrfSBNb2RlQ2FsbGJhY2sgKi9cblxuLy8gQ29tbW9uIHJlZ2V4cHNcbmNvbnN0IE1BVENIX05PVEhJTkdfUkUgPSAvXFxiXFxCLztcbmNvbnN0IElERU5UX1JFID0gJ1thLXpBLVpdXFxcXHcqJztcbmNvbnN0IFVOREVSU0NPUkVfSURFTlRfUkUgPSAnW2EtekEtWl9dXFxcXHcqJztcbmNvbnN0IE5VTUJFUl9SRSA9ICdcXFxcYlxcXFxkKyhcXFxcLlxcXFxkKyk/JztcbmNvbnN0IENfTlVNQkVSX1JFID0gJygtPykoXFxcXGIwW3hYXVthLWZBLUYwLTldK3woXFxcXGJcXFxcZCsoXFxcXC5cXFxcZCopP3xcXFxcLlxcXFxkKykoW2VFXVstK10/XFxcXGQrKT8pJzsgLy8gMHguLi4sIDAuLi4sIGRlY2ltYWwsIGZsb2F0XG5jb25zdCBCSU5BUllfTlVNQkVSX1JFID0gJ1xcXFxiKDBiWzAxXSspJzsgLy8gMGIuLi5cbmNvbnN0IFJFX1NUQVJURVJTX1JFID0gJyF8IT18IT09fCV8JT18JnwmJnwmPXxcXFxcKnxcXFxcKj18XFxcXCt8XFxcXCs9fCx8LXwtPXwvPXwvfDp8O3w8PHw8PD18PD18PHw9PT18PT18PXw+Pj49fD4+PXw+PXw+Pj58Pj58PnxcXFxcP3xcXFxcW3xcXFxce3xcXFxcKHxcXFxcXnxcXFxcXj18XFxcXHx8XFxcXHw9fFxcXFx8XFxcXHx8fic7XG5cbi8qKlxuKiBAcGFyYW0geyBQYXJ0aWFsPE1vZGU+ICYge2JpbmFyeT86IHN0cmluZyB8IFJlZ0V4cH0gfSBvcHRzXG4qL1xuY29uc3QgU0hFQkFORyA9IChvcHRzID0ge30pID0+IHtcbiAgY29uc3QgYmVnaW5TaGViYW5nID0gL14jIVsgXSpcXC8vO1xuICBpZiAob3B0cy5iaW5hcnkpIHtcbiAgICBvcHRzLmJlZ2luID0gY29uY2F0KFxuICAgICAgYmVnaW5TaGViYW5nLFxuICAgICAgLy4qXFxiLyxcbiAgICAgIG9wdHMuYmluYXJ5LFxuICAgICAgL1xcYi4qLyk7XG4gIH1cbiAgcmV0dXJuIGluaGVyaXQkMSh7XG4gICAgc2NvcGU6ICdtZXRhJyxcbiAgICBiZWdpbjogYmVnaW5TaGViYW5nLFxuICAgIGVuZDogLyQvLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICAvKiogQHR5cGUge01vZGVDYWxsYmFja30gKi9cbiAgICBcIm9uOmJlZ2luXCI6IChtLCByZXNwKSA9PiB7XG4gICAgICBpZiAobS5pbmRleCAhPT0gMCkgcmVzcC5pZ25vcmVNYXRjaCgpO1xuICAgIH1cbiAgfSwgb3B0cyk7XG59O1xuXG4vLyBDb21tb24gbW9kZXNcbmNvbnN0IEJBQ0tTTEFTSF9FU0NBUEUgPSB7XG4gIGJlZ2luOiAnXFxcXFxcXFxbXFxcXHNcXFxcU10nLCByZWxldmFuY2U6IDBcbn07XG5jb25zdCBBUE9TX1NUUklOR19NT0RFID0ge1xuICBzY29wZTogJ3N0cmluZycsXG4gIGJlZ2luOiAnXFwnJyxcbiAgZW5kOiAnXFwnJyxcbiAgaWxsZWdhbDogJ1xcXFxuJyxcbiAgY29udGFpbnM6IFtCQUNLU0xBU0hfRVNDQVBFXVxufTtcbmNvbnN0IFFVT1RFX1NUUklOR19NT0RFID0ge1xuICBzY29wZTogJ3N0cmluZycsXG4gIGJlZ2luOiAnXCInLFxuICBlbmQ6ICdcIicsXG4gIGlsbGVnYWw6ICdcXFxcbicsXG4gIGNvbnRhaW5zOiBbQkFDS1NMQVNIX0VTQ0FQRV1cbn07XG5jb25zdCBQSFJBU0FMX1dPUkRTX01PREUgPSB7XG4gIGJlZ2luOiAvXFxiKGF8YW58dGhlfGFyZXxJJ218aXNuJ3R8ZG9uJ3R8ZG9lc24ndHx3b24ndHxidXR8anVzdHxzaG91bGR8cHJldHR5fHNpbXBseXxlbm91Z2h8Z29ubmF8Z29pbmd8d3RmfHNvfHN1Y2h8d2lsbHx5b3V8eW91cnx0aGV5fGxpa2V8bW9yZSlcXGIvXG59O1xuLyoqXG4gKiBDcmVhdGVzIGEgY29tbWVudCBtb2RlXG4gKlxuICogQHBhcmFtIHtzdHJpbmcgfCBSZWdFeHB9IGJlZ2luXG4gKiBAcGFyYW0ge3N0cmluZyB8IFJlZ0V4cH0gZW5kXG4gKiBAcGFyYW0ge01vZGUgfCB7fX0gW21vZGVPcHRpb25zXVxuICogQHJldHVybnMge1BhcnRpYWw8TW9kZT59XG4gKi9cbmNvbnN0IENPTU1FTlQgPSBmdW5jdGlvbihiZWdpbiwgZW5kLCBtb2RlT3B0aW9ucyA9IHt9KSB7XG4gIGNvbnN0IG1vZGUgPSBpbmhlcml0JDEoXG4gICAge1xuICAgICAgc2NvcGU6ICdjb21tZW50JyxcbiAgICAgIGJlZ2luLFxuICAgICAgZW5kLFxuICAgICAgY29udGFpbnM6IFtdXG4gICAgfSxcbiAgICBtb2RlT3B0aW9uc1xuICApO1xuICBtb2RlLmNvbnRhaW5zLnB1c2goe1xuICAgIHNjb3BlOiAnZG9jdGFnJyxcbiAgICAvLyBoYWNrIHRvIGF2b2lkIHRoZSBzcGFjZSBmcm9tIGJlaW5nIGluY2x1ZGVkLiB0aGUgc3BhY2UgaXMgbmVjZXNzYXJ5IHRvXG4gICAgLy8gbWF0Y2ggaGVyZSB0byBwcmV2ZW50IHRoZSBwbGFpbiB0ZXh0IHJ1bGUgYmVsb3cgZnJvbSBnb2JibGluZyB1cCBkb2N0YWdzXG4gICAgYmVnaW46ICdbIF0qKD89KFRPRE98RklYTUV8Tk9URXxCVUd8T1BUSU1JWkV8SEFDS3xYWFgpOiknLFxuICAgIGVuZDogLyhUT0RPfEZJWE1FfE5PVEV8QlVHfE9QVElNSVpFfEhBQ0t8WFhYKTovLFxuICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSxcbiAgICByZWxldmFuY2U6IDBcbiAgfSk7XG4gIGNvbnN0IEVOR0xJU0hfV09SRCA9IGVpdGhlcihcbiAgICAvLyBsaXN0IG9mIGNvbW1vbiAxIGFuZCAyIGxldHRlciB3b3JkcyBpbiBFbmdsaXNoXG4gICAgXCJJXCIsXG4gICAgXCJhXCIsXG4gICAgXCJpc1wiLFxuICAgIFwic29cIixcbiAgICBcInVzXCIsXG4gICAgXCJ0b1wiLFxuICAgIFwiYXRcIixcbiAgICBcImlmXCIsXG4gICAgXCJpblwiLFxuICAgIFwiaXRcIixcbiAgICBcIm9uXCIsXG4gICAgLy8gbm90ZTogdGhpcyBpcyBub3QgYW4gZXhoYXVzdGl2ZSBsaXN0IG9mIGNvbnRyYWN0aW9ucywganVzdCBwb3B1bGFyIG9uZXNcbiAgICAvW0EtWmEtel0rWyddKGR8dmV8cmV8bGx8dHxzfG4pLywgLy8gY29udHJhY3Rpb25zIC0gY2FuJ3Qgd2UnZCB0aGV5J3JlIGxldCdzLCBldGNcbiAgICAvW0EtWmEtel0rWy1dW2Etel0rLywgLy8gYG5vLXdheWAsIGV0Yy5cbiAgICAvW0EtWmEtel1bYS16XXsyLH0vIC8vIGFsbG93IGNhcGl0YWxpemVkIHdvcmRzIGF0IGJlZ2lubmluZyBvZiBzZW50ZW5jZXNcbiAgKTtcbiAgLy8gbG9va2luZyBsaWtlIHBsYWluIHRleHQsIG1vcmUgbGlrZWx5IHRvIGJlIGEgY29tbWVudFxuICBtb2RlLmNvbnRhaW5zLnB1c2goXG4gICAge1xuICAgICAgLy8gVE9ETzogaG93IHRvIGluY2x1ZGUgXCIsICgsICkgd2l0aG91dCBicmVha2luZyBncmFtbWFycyB0aGF0IHVzZSB0aGVzZSBmb3JcbiAgICAgIC8vIGNvbW1lbnQgZGVsaW1pdGVycz9cbiAgICAgIC8vIGJlZ2luOiAvWyBdKyhbKClcIl0/KFtBLVphLXonLV17Myx9fGlzfGF8SXxzb3x1c3xbdFRdW29PXXxhdHxpZnxpbnxpdHxvbilbLl0/WygpXCI6XT8oWy5dWyBdfFsgXXxcXCkpKXszfS9cbiAgICAgIC8vIC0tLVxuXG4gICAgICAvLyB0aGlzIHRyaWVzIHRvIGZpbmQgc2VxdWVuY2VzIG9mIDMgZW5nbGlzaCB3b3JkcyBpbiBhIHJvdyAod2l0aG91dCBhbnlcbiAgICAgIC8vIFwicHJvZ3JhbW1pbmdcIiB0eXBlIHN5bnRheCkgdGhpcyBnaXZlcyB1cyBhIHN0cm9uZyBzaWduYWwgdGhhdCB3ZSd2ZVxuICAgICAgLy8gVFJVTFkgZm91bmQgYSBjb21tZW50IC0gdnMgcGVyaGFwcyBzY2FubmluZyB3aXRoIHRoZSB3cm9uZyBsYW5ndWFnZS5cbiAgICAgIC8vIEl0J3MgcG9zc2libGUgdG8gZmluZCBzb21ldGhpbmcgdGhhdCBMT09LUyBsaWtlIHRoZSBzdGFydCBvZiB0aGVcbiAgICAgIC8vIGNvbW1lbnQgLSBidXQgdGhlbiBpZiB0aGVyZSBpcyBubyByZWFkYWJsZSB0ZXh0IC0gZ29vZCBjaGFuY2UgaXQgaXMgYVxuICAgICAgLy8gZmFsc2UgbWF0Y2ggYW5kIG5vdCBhIGNvbW1lbnQuXG4gICAgICAvL1xuICAgICAgLy8gZm9yIGEgdmlzdWFsIGV4YW1wbGUgcGxlYXNlIHNlZTpcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9oaWdobGlnaHRqcy9oaWdobGlnaHQuanMvaXNzdWVzLzI4MjdcblxuICAgICAgYmVnaW46IGNvbmNhdChcbiAgICAgICAgL1sgXSsvLCAvLyBuZWNlc3NhcnkgdG8gcHJldmVudCB1cyBnb2JibGluZyB1cCBkb2N0YWdzIGxpa2UgLyogQGF1dGhvciBCb2IgTWNnaWxsICovXG4gICAgICAgICcoJyxcbiAgICAgICAgRU5HTElTSF9XT1JELFxuICAgICAgICAvWy5dP1s6XT8oWy5dWyBdfFsgXSkvLFxuICAgICAgICAnKXszfScpIC8vIGxvb2sgZm9yIDMgd29yZHMgaW4gYSByb3dcbiAgICB9XG4gICk7XG4gIHJldHVybiBtb2RlO1xufTtcbmNvbnN0IENfTElORV9DT01NRU5UX01PREUgPSBDT01NRU5UKCcvLycsICckJyk7XG5jb25zdCBDX0JMT0NLX0NPTU1FTlRfTU9ERSA9IENPTU1FTlQoJy9cXFxcKicsICdcXFxcKi8nKTtcbmNvbnN0IEhBU0hfQ09NTUVOVF9NT0RFID0gQ09NTUVOVCgnIycsICckJyk7XG5jb25zdCBOVU1CRVJfTU9ERSA9IHtcbiAgc2NvcGU6ICdudW1iZXInLFxuICBiZWdpbjogTlVNQkVSX1JFLFxuICByZWxldmFuY2U6IDBcbn07XG5jb25zdCBDX05VTUJFUl9NT0RFID0ge1xuICBzY29wZTogJ251bWJlcicsXG4gIGJlZ2luOiBDX05VTUJFUl9SRSxcbiAgcmVsZXZhbmNlOiAwXG59O1xuY29uc3QgQklOQVJZX05VTUJFUl9NT0RFID0ge1xuICBzY29wZTogJ251bWJlcicsXG4gIGJlZ2luOiBCSU5BUllfTlVNQkVSX1JFLFxuICByZWxldmFuY2U6IDBcbn07XG5jb25zdCBSRUdFWFBfTU9ERSA9IHtcbiAgLy8gdGhpcyBvdXRlciBydWxlIG1ha2VzIHN1cmUgd2UgYWN0dWFsbHkgaGF2ZSBhIFdIT0xFIHJlZ2V4IGFuZCBub3Qgc2ltcGx5XG4gIC8vIGFuIGV4cHJlc3Npb24gc3VjaCBhczpcbiAgLy9cbiAgLy8gICAgIDMgLyBzb21ldGhpbmdcbiAgLy9cbiAgLy8gKHdoaWNoIHdpbGwgdGhlbiBibG93IHVwIHdoZW4gcmVnZXgncyBgaWxsZWdhbGAgc2VlcyB0aGUgbmV3bGluZSlcbiAgYmVnaW46IC8oPz1cXC9bXi9cXG5dKlxcLykvLFxuICBjb250YWluczogW3tcbiAgICBzY29wZTogJ3JlZ2V4cCcsXG4gICAgYmVnaW46IC9cXC8vLFxuICAgIGVuZDogL1xcL1tnaW11eV0qLyxcbiAgICBpbGxlZ2FsOiAvXFxuLyxcbiAgICBjb250YWluczogW1xuICAgICAgQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXFsvLFxuICAgICAgICBlbmQ6IC9cXF0vLFxuICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgIGNvbnRhaW5zOiBbQkFDS1NMQVNIX0VTQ0FQRV1cbiAgICAgIH1cbiAgICBdXG4gIH1dXG59O1xuY29uc3QgVElUTEVfTU9ERSA9IHtcbiAgc2NvcGU6ICd0aXRsZScsXG4gIGJlZ2luOiBJREVOVF9SRSxcbiAgcmVsZXZhbmNlOiAwXG59O1xuY29uc3QgVU5ERVJTQ09SRV9USVRMRV9NT0RFID0ge1xuICBzY29wZTogJ3RpdGxlJyxcbiAgYmVnaW46IFVOREVSU0NPUkVfSURFTlRfUkUsXG4gIHJlbGV2YW5jZTogMFxufTtcbmNvbnN0IE1FVEhPRF9HVUFSRCA9IHtcbiAgLy8gZXhjbHVkZXMgbWV0aG9kIG5hbWVzIGZyb20ga2V5d29yZCBwcm9jZXNzaW5nXG4gIGJlZ2luOiAnXFxcXC5cXFxccyonICsgVU5ERVJTQ09SRV9JREVOVF9SRSxcbiAgcmVsZXZhbmNlOiAwXG59O1xuXG4vKipcbiAqIEFkZHMgZW5kIHNhbWUgYXMgYmVnaW4gbWVjaGFuaWNzIHRvIGEgbW9kZVxuICpcbiAqIFlvdXIgbW9kZSBtdXN0IGluY2x1ZGUgYXQgbGVhc3QgYSBzaW5nbGUgKCkgbWF0Y2ggZ3JvdXAgYXMgdGhhdCBmaXJzdCBtYXRjaFxuICogZ3JvdXAgaXMgd2hhdCBpcyB1c2VkIGZvciBjb21wYXJpc29uXG4gKiBAcGFyYW0ge1BhcnRpYWw8TW9kZT59IG1vZGVcbiAqL1xuY29uc3QgRU5EX1NBTUVfQVNfQkVHSU4gPSBmdW5jdGlvbihtb2RlKSB7XG4gIHJldHVybiBPYmplY3QuYXNzaWduKG1vZGUsXG4gICAge1xuICAgICAgLyoqIEB0eXBlIHtNb2RlQ2FsbGJhY2t9ICovXG4gICAgICAnb246YmVnaW4nOiAobSwgcmVzcCkgPT4geyByZXNwLmRhdGEuX2JlZ2luTWF0Y2ggPSBtWzFdOyB9LFxuICAgICAgLyoqIEB0eXBlIHtNb2RlQ2FsbGJhY2t9ICovXG4gICAgICAnb246ZW5kJzogKG0sIHJlc3ApID0+IHsgaWYgKHJlc3AuZGF0YS5fYmVnaW5NYXRjaCAhPT0gbVsxXSkgcmVzcC5pZ25vcmVNYXRjaCgpOyB9XG4gICAgfSk7XG59O1xuXG52YXIgTU9ERVMgPSAvKiNfX1BVUkVfXyovT2JqZWN0LmZyZWV6ZSh7XG4gIF9fcHJvdG9fXzogbnVsbCxcbiAgTUFUQ0hfTk9USElOR19SRTogTUFUQ0hfTk9USElOR19SRSxcbiAgSURFTlRfUkU6IElERU5UX1JFLFxuICBVTkRFUlNDT1JFX0lERU5UX1JFOiBVTkRFUlNDT1JFX0lERU5UX1JFLFxuICBOVU1CRVJfUkU6IE5VTUJFUl9SRSxcbiAgQ19OVU1CRVJfUkU6IENfTlVNQkVSX1JFLFxuICBCSU5BUllfTlVNQkVSX1JFOiBCSU5BUllfTlVNQkVSX1JFLFxuICBSRV9TVEFSVEVSU19SRTogUkVfU1RBUlRFUlNfUkUsXG4gIFNIRUJBTkc6IFNIRUJBTkcsXG4gIEJBQ0tTTEFTSF9FU0NBUEU6IEJBQ0tTTEFTSF9FU0NBUEUsXG4gIEFQT1NfU1RSSU5HX01PREU6IEFQT1NfU1RSSU5HX01PREUsXG4gIFFVT1RFX1NUUklOR19NT0RFOiBRVU9URV9TVFJJTkdfTU9ERSxcbiAgUEhSQVNBTF9XT1JEU19NT0RFOiBQSFJBU0FMX1dPUkRTX01PREUsXG4gIENPTU1FTlQ6IENPTU1FTlQsXG4gIENfTElORV9DT01NRU5UX01PREU6IENfTElORV9DT01NRU5UX01PREUsXG4gIENfQkxPQ0tfQ09NTUVOVF9NT0RFOiBDX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgSEFTSF9DT01NRU5UX01PREU6IEhBU0hfQ09NTUVOVF9NT0RFLFxuICBOVU1CRVJfTU9ERTogTlVNQkVSX01PREUsXG4gIENfTlVNQkVSX01PREU6IENfTlVNQkVSX01PREUsXG4gIEJJTkFSWV9OVU1CRVJfTU9ERTogQklOQVJZX05VTUJFUl9NT0RFLFxuICBSRUdFWFBfTU9ERTogUkVHRVhQX01PREUsXG4gIFRJVExFX01PREU6IFRJVExFX01PREUsXG4gIFVOREVSU0NPUkVfVElUTEVfTU9ERTogVU5ERVJTQ09SRV9USVRMRV9NT0RFLFxuICBNRVRIT0RfR1VBUkQ6IE1FVEhPRF9HVUFSRCxcbiAgRU5EX1NBTUVfQVNfQkVHSU46IEVORF9TQU1FX0FTX0JFR0lOXG59KTtcblxuLyoqXG5AdHlwZWRlZiB7aW1wb3J0KCdoaWdobGlnaHQuanMnKS5DYWxsYmFja1Jlc3BvbnNlfSBDYWxsYmFja1Jlc3BvbnNlXG5AdHlwZWRlZiB7aW1wb3J0KCdoaWdobGlnaHQuanMnKS5Db21waWxlckV4dH0gQ29tcGlsZXJFeHRcbiovXG5cbi8vIEdyYW1tYXIgZXh0ZW5zaW9ucyAvIHBsdWdpbnNcbi8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2hpZ2hsaWdodGpzL2hpZ2hsaWdodC5qcy9pc3N1ZXMvMjgzM1xuXG4vLyBHcmFtbWFyIGV4dGVuc2lvbnMgYWxsb3cgXCJzeW50YWN0aWMgc3VnYXJcIiB0byBiZSBhZGRlZCB0byB0aGUgZ3JhbW1hciBtb2Rlc1xuLy8gd2l0aG91dCByZXF1aXJpbmcgYW55IHVuZGVybHlpbmcgY2hhbmdlcyB0byB0aGUgY29tcGlsZXIgaW50ZXJuYWxzLlxuXG4vLyBgY29tcGlsZU1hdGNoYCBiZWluZyB0aGUgcGVyZmVjdCBzbWFsbCBleGFtcGxlIG9mIG5vdyBhbGxvd2luZyBhIGdyYW1tYXJcbi8vIGF1dGhvciB0byB3cml0ZSBgbWF0Y2hgIHdoZW4gdGhleSBkZXNpcmUgdG8gbWF0Y2ggYSBzaW5nbGUgZXhwcmVzc2lvbiByYXRoZXJcbi8vIHRoYW4gYmVpbmcgZm9yY2VkIHRvIHVzZSBgYmVnaW5gLiAgVGhlIGV4dGVuc2lvbiB0aGVuIGp1c3QgbW92ZXMgYG1hdGNoYCBpbnRvXG4vLyBgYmVnaW5gIHdoZW4gaXQgcnVucy4gIEllLCBubyBmZWF0dXJlcyBoYXZlIGJlZW4gYWRkZWQsIGJ1dCB3ZSd2ZSBqdXN0IG1hZGVcbi8vIHRoZSBleHBlcmllbmNlIG9mIHdyaXRpbmcgKGFuZCByZWFkaW5nIGdyYW1tYXJzKSBhIGxpdHRsZSBiaXQgbmljZXIuXG5cbi8vIC0tLS0tLVxuXG4vLyBUT0RPOiBXZSBuZWVkIG5lZ2F0aXZlIGxvb2stYmVoaW5kIHN1cHBvcnQgdG8gZG8gdGhpcyBwcm9wZXJseVxuLyoqXG4gKiBTa2lwIGEgbWF0Y2ggaWYgaXQgaGFzIGEgcHJlY2VkaW5nIGRvdFxuICpcbiAqIFRoaXMgaXMgdXNlZCBmb3IgYGJlZ2luS2V5d29yZHNgIHRvIHByZXZlbnQgbWF0Y2hpbmcgZXhwcmVzc2lvbnMgc3VjaCBhc1xuICogYGJvYi5rZXl3b3JkLmRvKClgLiBUaGUgbW9kZSBjb21waWxlciBhdXRvbWF0aWNhbGx5IHdpcmVzIHRoaXMgdXAgYXMgYVxuICogc3BlY2lhbCBfaW50ZXJuYWxfICdvbjpiZWdpbicgY2FsbGJhY2sgZm9yIG1vZGVzIHdpdGggYGJlZ2luS2V5d29yZHNgXG4gKiBAcGFyYW0ge1JlZ0V4cE1hdGNoQXJyYXl9IG1hdGNoXG4gKiBAcGFyYW0ge0NhbGxiYWNrUmVzcG9uc2V9IHJlc3BvbnNlXG4gKi9cbmZ1bmN0aW9uIHNraXBJZkhhc1ByZWNlZGluZ0RvdChtYXRjaCwgcmVzcG9uc2UpIHtcbiAgY29uc3QgYmVmb3JlID0gbWF0Y2guaW5wdXRbbWF0Y2guaW5kZXggLSAxXTtcbiAgaWYgKGJlZm9yZSA9PT0gXCIuXCIpIHtcbiAgICByZXNwb25zZS5pZ25vcmVNYXRjaCgpO1xuICB9XG59XG5cbi8qKlxuICpcbiAqIEB0eXBlIHtDb21waWxlckV4dH1cbiAqL1xuZnVuY3Rpb24gc2NvcGVDbGFzc05hbWUobW9kZSwgX3BhcmVudCkge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZWZpbmVkXG4gIGlmIChtb2RlLmNsYXNzTmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgbW9kZS5zY29wZSA9IG1vZGUuY2xhc3NOYW1lO1xuICAgIGRlbGV0ZSBtb2RlLmNsYXNzTmFtZTtcbiAgfVxufVxuXG4vKipcbiAqIGBiZWdpbktleXdvcmRzYCBzeW50YWN0aWMgc3VnYXJcbiAqIEB0eXBlIHtDb21waWxlckV4dH1cbiAqL1xuZnVuY3Rpb24gYmVnaW5LZXl3b3Jkcyhtb2RlLCBwYXJlbnQpIHtcbiAgaWYgKCFwYXJlbnQpIHJldHVybjtcbiAgaWYgKCFtb2RlLmJlZ2luS2V5d29yZHMpIHJldHVybjtcblxuICAvLyBmb3IgbGFuZ3VhZ2VzIHdpdGgga2V5d29yZHMgdGhhdCBpbmNsdWRlIG5vbi13b3JkIGNoYXJhY3RlcnMgY2hlY2tpbmcgZm9yXG4gIC8vIGEgd29yZCBib3VuZGFyeSBpcyBub3Qgc3VmZmljaWVudCwgc28gaW5zdGVhZCB3ZSBjaGVjayBmb3IgYSB3b3JkIGJvdW5kYXJ5XG4gIC8vIG9yIHdoaXRlc3BhY2UgLSB0aGlzIGRvZXMgbm8gaGFybSBpbiBhbnkgY2FzZSBzaW5jZSBvdXIga2V5d29yZCBlbmdpbmVcbiAgLy8gZG9lc24ndCBhbGxvdyBzcGFjZXMgaW4ga2V5d29yZHMgYW55d2F5cyBhbmQgd2Ugc3RpbGwgY2hlY2sgZm9yIHRoZSBib3VuZGFyeVxuICAvLyBmaXJzdFxuICBtb2RlLmJlZ2luID0gJ1xcXFxiKCcgKyBtb2RlLmJlZ2luS2V5d29yZHMuc3BsaXQoJyAnKS5qb2luKCd8JykgKyAnKSg/IVxcXFwuKSg/PVxcXFxifFxcXFxzKSc7XG4gIG1vZGUuX19iZWZvcmVCZWdpbiA9IHNraXBJZkhhc1ByZWNlZGluZ0RvdDtcbiAgbW9kZS5rZXl3b3JkcyA9IG1vZGUua2V5d29yZHMgfHwgbW9kZS5iZWdpbktleXdvcmRzO1xuICBkZWxldGUgbW9kZS5iZWdpbktleXdvcmRzO1xuXG4gIC8vIHByZXZlbnRzIGRvdWJsZSByZWxldmFuY2UsIHRoZSBrZXl3b3JkcyB0aGVtc2VsdmVzIHByb3ZpZGVcbiAgLy8gcmVsZXZhbmNlLCB0aGUgbW9kZSBkb2Vzbid0IG5lZWQgdG8gZG91YmxlIGl0XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlZmluZWRcbiAgaWYgKG1vZGUucmVsZXZhbmNlID09PSB1bmRlZmluZWQpIG1vZGUucmVsZXZhbmNlID0gMDtcbn1cblxuLyoqXG4gKiBBbGxvdyBgaWxsZWdhbGAgdG8gY29udGFpbiBhbiBhcnJheSBvZiBpbGxlZ2FsIHZhbHVlc1xuICogQHR5cGUge0NvbXBpbGVyRXh0fVxuICovXG5mdW5jdGlvbiBjb21waWxlSWxsZWdhbChtb2RlLCBfcGFyZW50KSB7XG4gIGlmICghQXJyYXkuaXNBcnJheShtb2RlLmlsbGVnYWwpKSByZXR1cm47XG5cbiAgbW9kZS5pbGxlZ2FsID0gZWl0aGVyKC4uLm1vZGUuaWxsZWdhbCk7XG59XG5cbi8qKlxuICogYG1hdGNoYCB0byBtYXRjaCBhIHNpbmdsZSBleHByZXNzaW9uIGZvciByZWFkYWJpbGl0eVxuICogQHR5cGUge0NvbXBpbGVyRXh0fVxuICovXG5mdW5jdGlvbiBjb21waWxlTWF0Y2gobW9kZSwgX3BhcmVudCkge1xuICBpZiAoIW1vZGUubWF0Y2gpIHJldHVybjtcbiAgaWYgKG1vZGUuYmVnaW4gfHwgbW9kZS5lbmQpIHRocm93IG5ldyBFcnJvcihcImJlZ2luICYgZW5kIGFyZSBub3Qgc3VwcG9ydGVkIHdpdGggbWF0Y2hcIik7XG5cbiAgbW9kZS5iZWdpbiA9IG1vZGUubWF0Y2g7XG4gIGRlbGV0ZSBtb2RlLm1hdGNoO1xufVxuXG4vKipcbiAqIHByb3ZpZGVzIHRoZSBkZWZhdWx0IDEgcmVsZXZhbmNlIHRvIGFsbCBtb2Rlc1xuICogQHR5cGUge0NvbXBpbGVyRXh0fVxuICovXG5mdW5jdGlvbiBjb21waWxlUmVsZXZhbmNlKG1vZGUsIF9wYXJlbnQpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVmaW5lZFxuICBpZiAobW9kZS5yZWxldmFuY2UgPT09IHVuZGVmaW5lZCkgbW9kZS5yZWxldmFuY2UgPSAxO1xufVxuXG4vLyBhbGxvdyBiZWZvcmVNYXRjaCB0byBhY3QgYXMgYSBcInF1YWxpZmllclwiIGZvciB0aGUgbWF0Y2hcbi8vIHRoZSBmdWxsIG1hdGNoIGJlZ2luIG11c3QgYmUgW2JlZm9yZU1hdGNoXVtiZWdpbl1cbmNvbnN0IGJlZm9yZU1hdGNoRXh0ID0gKG1vZGUsIHBhcmVudCkgPT4ge1xuICBpZiAoIW1vZGUuYmVmb3JlTWF0Y2gpIHJldHVybjtcbiAgLy8gc3RhcnRzIGNvbmZsaWN0cyB3aXRoIGVuZHNQYXJlbnQgd2hpY2ggd2UgbmVlZCB0byBtYWtlIHN1cmUgdGhlIGNoaWxkXG4gIC8vIHJ1bGUgaXMgbm90IG1hdGNoZWQgbXVsdGlwbGUgdGltZXNcbiAgaWYgKG1vZGUuc3RhcnRzKSB0aHJvdyBuZXcgRXJyb3IoXCJiZWZvcmVNYXRjaCBjYW5ub3QgYmUgdXNlZCB3aXRoIHN0YXJ0c1wiKTtcblxuICBjb25zdCBvcmlnaW5hbE1vZGUgPSBPYmplY3QuYXNzaWduKHt9LCBtb2RlKTtcbiAgT2JqZWN0LmtleXMobW9kZSkuZm9yRWFjaCgoa2V5KSA9PiB7IGRlbGV0ZSBtb2RlW2tleV07IH0pO1xuXG4gIG1vZGUua2V5d29yZHMgPSBvcmlnaW5hbE1vZGUua2V5d29yZHM7XG4gIG1vZGUuYmVnaW4gPSBjb25jYXQob3JpZ2luYWxNb2RlLmJlZm9yZU1hdGNoLCBsb29rYWhlYWQob3JpZ2luYWxNb2RlLmJlZ2luKSk7XG4gIG1vZGUuc3RhcnRzID0ge1xuICAgIHJlbGV2YW5jZTogMCxcbiAgICBjb250YWluczogW1xuICAgICAgT2JqZWN0LmFzc2lnbihvcmlnaW5hbE1vZGUsIHsgZW5kc1BhcmVudDogdHJ1ZSB9KVxuICAgIF1cbiAgfTtcbiAgbW9kZS5yZWxldmFuY2UgPSAwO1xuXG4gIGRlbGV0ZSBvcmlnaW5hbE1vZGUuYmVmb3JlTWF0Y2g7XG59O1xuXG4vLyBrZXl3b3JkcyB0aGF0IHNob3VsZCBoYXZlIG5vIGRlZmF1bHQgcmVsZXZhbmNlIHZhbHVlXG5jb25zdCBDT01NT05fS0VZV09SRFMgPSBbXG4gICdvZicsXG4gICdhbmQnLFxuICAnZm9yJyxcbiAgJ2luJyxcbiAgJ25vdCcsXG4gICdvcicsXG4gICdpZicsXG4gICd0aGVuJyxcbiAgJ3BhcmVudCcsIC8vIGNvbW1vbiB2YXJpYWJsZSBuYW1lXG4gICdsaXN0JywgLy8gY29tbW9uIHZhcmlhYmxlIG5hbWVcbiAgJ3ZhbHVlJyAvLyBjb21tb24gdmFyaWFibGUgbmFtZVxuXTtcblxuY29uc3QgREVGQVVMVF9LRVlXT1JEX1NDT1BFID0gXCJrZXl3b3JkXCI7XG5cbi8qKlxuICogR2l2ZW4gcmF3IGtleXdvcmRzIGZyb20gYSBsYW5ndWFnZSBkZWZpbml0aW9uLCBjb21waWxlIHRoZW0uXG4gKlxuICogQHBhcmFtIHtzdHJpbmcgfCBSZWNvcmQ8c3RyaW5nLHN0cmluZ3xzdHJpbmdbXT4gfCBBcnJheTxzdHJpbmc+fSByYXdLZXl3b3Jkc1xuICogQHBhcmFtIHtib29sZWFufSBjYXNlSW5zZW5zaXRpdmVcbiAqL1xuZnVuY3Rpb24gY29tcGlsZUtleXdvcmRzKHJhd0tleXdvcmRzLCBjYXNlSW5zZW5zaXRpdmUsIHNjb3BlTmFtZSA9IERFRkFVTFRfS0VZV09SRF9TQ09QRSkge1xuICAvKiogQHR5cGUge2ltcG9ydChcImhpZ2hsaWdodC5qcy9wcml2YXRlXCIpLktleXdvcmREaWN0fSAqL1xuICBjb25zdCBjb21waWxlZEtleXdvcmRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcblxuICAvLyBpbnB1dCBjYW4gYmUgYSBzdHJpbmcgb2Yga2V5d29yZHMsIGFuIGFycmF5IG9mIGtleXdvcmRzLCBvciBhIG9iamVjdCB3aXRoXG4gIC8vIG5hbWVkIGtleXMgcmVwcmVzZW50aW5nIHNjb3BlTmFtZSAod2hpY2ggY2FuIHRoZW4gcG9pbnQgdG8gYSBzdHJpbmcgb3IgYXJyYXkpXG4gIGlmICh0eXBlb2YgcmF3S2V5d29yZHMgPT09ICdzdHJpbmcnKSB7XG4gICAgY29tcGlsZUxpc3Qoc2NvcGVOYW1lLCByYXdLZXl3b3Jkcy5zcGxpdChcIiBcIikpO1xuICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkocmF3S2V5d29yZHMpKSB7XG4gICAgY29tcGlsZUxpc3Qoc2NvcGVOYW1lLCByYXdLZXl3b3Jkcyk7XG4gIH0gZWxzZSB7XG4gICAgT2JqZWN0LmtleXMocmF3S2V5d29yZHMpLmZvckVhY2goZnVuY3Rpb24oc2NvcGVOYW1lKSB7XG4gICAgICAvLyBjb2xsYXBzZSBhbGwgb3VyIG9iamVjdHMgYmFjayBpbnRvIHRoZSBwYXJlbnQgb2JqZWN0XG4gICAgICBPYmplY3QuYXNzaWduKFxuICAgICAgICBjb21waWxlZEtleXdvcmRzLFxuICAgICAgICBjb21waWxlS2V5d29yZHMocmF3S2V5d29yZHNbc2NvcGVOYW1lXSwgY2FzZUluc2Vuc2l0aXZlLCBzY29wZU5hbWUpXG4gICAgICApO1xuICAgIH0pO1xuICB9XG4gIHJldHVybiBjb21waWxlZEtleXdvcmRzO1xuXG4gIC8vIC0tLVxuXG4gIC8qKlxuICAgKiBDb21waWxlcyBhbiBpbmRpdmlkdWFsIGxpc3Qgb2Yga2V5d29yZHNcbiAgICpcbiAgICogRXg6IFwiZm9yIGlmIHdoZW4gd2hpbGV8NVwiXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzY29wZU5hbWVcbiAgICogQHBhcmFtIHtBcnJheTxzdHJpbmc+fSBrZXl3b3JkTGlzdFxuICAgKi9cbiAgZnVuY3Rpb24gY29tcGlsZUxpc3Qoc2NvcGVOYW1lLCBrZXl3b3JkTGlzdCkge1xuICAgIGlmIChjYXNlSW5zZW5zaXRpdmUpIHtcbiAgICAgIGtleXdvcmRMaXN0ID0ga2V5d29yZExpc3QubWFwKHggPT4geC50b0xvd2VyQ2FzZSgpKTtcbiAgICB9XG4gICAga2V5d29yZExpc3QuZm9yRWFjaChmdW5jdGlvbihrZXl3b3JkKSB7XG4gICAgICBjb25zdCBwYWlyID0ga2V5d29yZC5zcGxpdCgnfCcpO1xuICAgICAgY29tcGlsZWRLZXl3b3Jkc1twYWlyWzBdXSA9IFtzY29wZU5hbWUsIHNjb3JlRm9yS2V5d29yZChwYWlyWzBdLCBwYWlyWzFdKV07XG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBwcm9wZXIgc2NvcmUgZm9yIGEgZ2l2ZW4ga2V5d29yZFxuICpcbiAqIEFsc28gdGFrZXMgaW50byBhY2NvdW50IGNvbW1lbnQga2V5d29yZHMsIHdoaWNoIHdpbGwgYmUgc2NvcmVkIDAgVU5MRVNTXG4gKiBhbm90aGVyIHNjb3JlIGhhcyBiZWVuIG1hbnVhbGx5IGFzc2lnbmVkLlxuICogQHBhcmFtIHtzdHJpbmd9IGtleXdvcmRcbiAqIEBwYXJhbSB7c3RyaW5nfSBbcHJvdmlkZWRTY29yZV1cbiAqL1xuZnVuY3Rpb24gc2NvcmVGb3JLZXl3b3JkKGtleXdvcmQsIHByb3ZpZGVkU2NvcmUpIHtcbiAgLy8gbWFudWFsIHNjb3JlcyBhbHdheXMgd2luIG92ZXIgY29tbW9uIGtleXdvcmRzXG4gIC8vIHNvIHlvdSBjYW4gZm9yY2UgYSBzY29yZSBvZiAxIGlmIHlvdSByZWFsbHkgaW5zaXN0XG4gIGlmIChwcm92aWRlZFNjb3JlKSB7XG4gICAgcmV0dXJuIE51bWJlcihwcm92aWRlZFNjb3JlKTtcbiAgfVxuXG4gIHJldHVybiBjb21tb25LZXl3b3JkKGtleXdvcmQpID8gMCA6IDE7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyBpZiBhIGdpdmVuIGtleXdvcmQgaXMgY29tbW9uIG9yIG5vdFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXl3b3JkICovXG5mdW5jdGlvbiBjb21tb25LZXl3b3JkKGtleXdvcmQpIHtcbiAgcmV0dXJuIENPTU1PTl9LRVlXT1JEUy5pbmNsdWRlcyhrZXl3b3JkLnRvTG93ZXJDYXNlKCkpO1xufVxuXG4vKlxuXG5Gb3IgdGhlIHJlYXNvbmluZyBiZWhpbmQgdGhpcyBwbGVhc2Ugc2VlOlxuaHR0cHM6Ly9naXRodWIuY29tL2hpZ2hsaWdodGpzL2hpZ2hsaWdodC5qcy9pc3N1ZXMvMjg4MCNpc3N1ZWNvbW1lbnQtNzQ3Mjc1NDE5XG5cbiovXG5cbi8qKlxuICogQHR5cGUge1JlY29yZDxzdHJpbmcsIGJvb2xlYW4+fVxuICovXG5jb25zdCBzZWVuRGVwcmVjYXRpb25zID0ge307XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IG1lc3NhZ2VcbiAqL1xuY29uc3QgZXJyb3IgPSAobWVzc2FnZSkgPT4ge1xuICBjb25zb2xlLmVycm9yKG1lc3NhZ2UpO1xufTtcblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZVxuICogQHBhcmFtIHthbnl9IGFyZ3NcbiAqL1xuY29uc3Qgd2FybiA9IChtZXNzYWdlLCAuLi5hcmdzKSA9PiB7XG4gIGNvbnNvbGUubG9nKGBXQVJOOiAke21lc3NhZ2V9YCwgLi4uYXJncyk7XG59O1xuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2ZXJzaW9uXG4gKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZVxuICovXG5jb25zdCBkZXByZWNhdGVkID0gKHZlcnNpb24sIG1lc3NhZ2UpID0+IHtcbiAgaWYgKHNlZW5EZXByZWNhdGlvbnNbYCR7dmVyc2lvbn0vJHttZXNzYWdlfWBdKSByZXR1cm47XG5cbiAgY29uc29sZS5sb2coYERlcHJlY2F0ZWQgYXMgb2YgJHt2ZXJzaW9ufS4gJHttZXNzYWdlfWApO1xuICBzZWVuRGVwcmVjYXRpb25zW2Ake3ZlcnNpb259LyR7bWVzc2FnZX1gXSA9IHRydWU7XG59O1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBuby10aHJvdy1saXRlcmFsICovXG5cbi8qKlxuQHR5cGVkZWYge2ltcG9ydCgnaGlnaGxpZ2h0LmpzJykuQ29tcGlsZWRNb2RlfSBDb21waWxlZE1vZGVcbiovXG5cbmNvbnN0IE11bHRpQ2xhc3NFcnJvciA9IG5ldyBFcnJvcigpO1xuXG4vKipcbiAqIFJlbnVtYmVycyBsYWJlbGVkIHNjb3BlIG5hbWVzIHRvIGFjY291bnQgZm9yIGFkZGl0aW9uYWwgaW5uZXIgbWF0Y2hcbiAqIGdyb3VwcyB0aGF0IG90aGVyd2lzZSB3b3VsZCBicmVhayBldmVyeXRoaW5nLlxuICpcbiAqIExldHMgc2F5IHdlIDMgbWF0Y2ggc2NvcGVzOlxuICpcbiAqICAgeyAxID0+IC4uLiwgMiA9PiAuLi4sIDMgPT4gLi4uIH1cbiAqXG4gKiBTbyB3aGF0IHdlIG5lZWQgaXMgYSBjbGVhbiBtYXRjaCBsaWtlIHRoaXM6XG4gKlxuICogICAoYSkoYikoYykgPT4gWyBcImFcIiwgXCJiXCIsIFwiY1wiIF1cbiAqXG4gKiBCdXQgdGhpcyBmYWxscyBhcGFydCB3aXRoIGlubmVyIG1hdGNoIGdyb3VwczpcbiAqXG4gKiAoYSkoKChiKSkpKGMpID0+IFtcImFcIiwgXCJiXCIsIFwiYlwiLCBcImJcIiwgXCJjXCIgXVxuICpcbiAqIE91ciBzY29wZXMgYXJlIG5vdyBcIm91dCBvZiBhbGlnbm1lbnRcIiBhbmQgd2UncmUgcmVwZWF0aW5nIGBiYCAzIHRpbWVzLlxuICogV2hhdCBuZWVkcyB0byBoYXBwZW4gaXMgdGhlIG51bWJlcnMgYXJlIHJlbWFwcGVkOlxuICpcbiAqICAgeyAxID0+IC4uLiwgMiA9PiAuLi4sIDUgPT4gLi4uIH1cbiAqXG4gKiBXZSBhbHNvIG5lZWQgdG8ga25vdyB0aGF0IHRoZSBPTkxZIGdyb3VwcyB0aGF0IHNob3VsZCBiZSBvdXRwdXRcbiAqIGFyZSAxLCAyLCBhbmQgNS4gIFRoaXMgZnVuY3Rpb24gaGFuZGxlcyB0aGlzIGJlaGF2aW9yLlxuICpcbiAqIEBwYXJhbSB7Q29tcGlsZWRNb2RlfSBtb2RlXG4gKiBAcGFyYW0ge0FycmF5PFJlZ0V4cCB8IHN0cmluZz59IHJlZ2V4ZXNcbiAqIEBwYXJhbSB7e2tleTogXCJiZWdpblNjb3BlXCJ8XCJlbmRTY29wZVwifX0gb3B0c1xuICovXG5mdW5jdGlvbiByZW1hcFNjb3BlTmFtZXMobW9kZSwgcmVnZXhlcywgeyBrZXkgfSkge1xuICBsZXQgb2Zmc2V0ID0gMDtcbiAgY29uc3Qgc2NvcGVOYW1lcyA9IG1vZGVba2V5XTtcbiAgLyoqIEB0eXBlIFJlY29yZDxudW1iZXIsYm9vbGVhbj4gKi9cbiAgY29uc3QgZW1pdCA9IHt9O1xuICAvKiogQHR5cGUgUmVjb3JkPG51bWJlcixzdHJpbmc+ICovXG4gIGNvbnN0IHBvc2l0aW9ucyA9IHt9O1xuXG4gIGZvciAobGV0IGkgPSAxOyBpIDw9IHJlZ2V4ZXMubGVuZ3RoOyBpKyspIHtcbiAgICBwb3NpdGlvbnNbaSArIG9mZnNldF0gPSBzY29wZU5hbWVzW2ldO1xuICAgIGVtaXRbaSArIG9mZnNldF0gPSB0cnVlO1xuICAgIG9mZnNldCArPSBjb3VudE1hdGNoR3JvdXBzKHJlZ2V4ZXNbaSAtIDFdKTtcbiAgfVxuICAvLyB3ZSB1c2UgX2VtaXQgdG8ga2VlcCB0cmFjayBvZiB3aGljaCBtYXRjaCBncm91cHMgYXJlIFwidG9wLWxldmVsXCIgdG8gYXZvaWQgZG91YmxlXG4gIC8vIG91dHB1dCBmcm9tIGluc2lkZSBtYXRjaCBncm91cHNcbiAgbW9kZVtrZXldID0gcG9zaXRpb25zO1xuICBtb2RlW2tleV0uX2VtaXQgPSBlbWl0O1xuICBtb2RlW2tleV0uX211bHRpID0gdHJ1ZTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge0NvbXBpbGVkTW9kZX0gbW9kZVxuICovXG5mdW5jdGlvbiBiZWdpbk11bHRpQ2xhc3MobW9kZSkge1xuICBpZiAoIUFycmF5LmlzQXJyYXkobW9kZS5iZWdpbikpIHJldHVybjtcblxuICBpZiAobW9kZS5za2lwIHx8IG1vZGUuZXhjbHVkZUJlZ2luIHx8IG1vZGUucmV0dXJuQmVnaW4pIHtcbiAgICBlcnJvcihcInNraXAsIGV4Y2x1ZGVCZWdpbiwgcmV0dXJuQmVnaW4gbm90IGNvbXBhdGlibGUgd2l0aCBiZWdpblNjb3BlOiB7fVwiKTtcbiAgICB0aHJvdyBNdWx0aUNsYXNzRXJyb3I7XG4gIH1cblxuICBpZiAodHlwZW9mIG1vZGUuYmVnaW5TY29wZSAhPT0gXCJvYmplY3RcIiB8fCBtb2RlLmJlZ2luU2NvcGUgPT09IG51bGwpIHtcbiAgICBlcnJvcihcImJlZ2luU2NvcGUgbXVzdCBiZSBvYmplY3RcIik7XG4gICAgdGhyb3cgTXVsdGlDbGFzc0Vycm9yO1xuICB9XG5cbiAgcmVtYXBTY29wZU5hbWVzKG1vZGUsIG1vZGUuYmVnaW4sIHsga2V5OiBcImJlZ2luU2NvcGVcIiB9KTtcbiAgbW9kZS5iZWdpbiA9IF9yZXdyaXRlQmFja3JlZmVyZW5jZXMobW9kZS5iZWdpbiwgeyBqb2luV2l0aDogXCJcIiB9KTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge0NvbXBpbGVkTW9kZX0gbW9kZVxuICovXG5mdW5jdGlvbiBlbmRNdWx0aUNsYXNzKG1vZGUpIHtcbiAgaWYgKCFBcnJheS5pc0FycmF5KG1vZGUuZW5kKSkgcmV0dXJuO1xuXG4gIGlmIChtb2RlLnNraXAgfHwgbW9kZS5leGNsdWRlRW5kIHx8IG1vZGUucmV0dXJuRW5kKSB7XG4gICAgZXJyb3IoXCJza2lwLCBleGNsdWRlRW5kLCByZXR1cm5FbmQgbm90IGNvbXBhdGlibGUgd2l0aCBlbmRTY29wZToge31cIik7XG4gICAgdGhyb3cgTXVsdGlDbGFzc0Vycm9yO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBtb2RlLmVuZFNjb3BlICE9PSBcIm9iamVjdFwiIHx8IG1vZGUuZW5kU2NvcGUgPT09IG51bGwpIHtcbiAgICBlcnJvcihcImVuZFNjb3BlIG11c3QgYmUgb2JqZWN0XCIpO1xuICAgIHRocm93IE11bHRpQ2xhc3NFcnJvcjtcbiAgfVxuXG4gIHJlbWFwU2NvcGVOYW1lcyhtb2RlLCBtb2RlLmVuZCwgeyBrZXk6IFwiZW5kU2NvcGVcIiB9KTtcbiAgbW9kZS5lbmQgPSBfcmV3cml0ZUJhY2tyZWZlcmVuY2VzKG1vZGUuZW5kLCB7IGpvaW5XaXRoOiBcIlwiIH0pO1xufVxuXG4vKipcbiAqIHRoaXMgZXhpc3RzIG9ubHkgdG8gYWxsb3cgYHNjb3BlOiB7fWAgdG8gYmUgdXNlZCBiZXNpZGUgYG1hdGNoOmBcbiAqIE90aGVyd2lzZSBgYmVnaW5TY29wZWAgd291bGQgbmVjZXNzYXJ5IGFuZCB0aGF0IHdvdWxkIGxvb2sgd2VpcmRcblxuICB7XG4gICAgbWF0Y2g6IFsgL2RlZi8sIC9cXHcrLyBdXG4gICAgc2NvcGU6IHsgMTogXCJrZXl3b3JkXCIgLCAyOiBcInRpdGxlXCIgfVxuICB9XG5cbiAqIEBwYXJhbSB7Q29tcGlsZWRNb2RlfSBtb2RlXG4gKi9cbmZ1bmN0aW9uIHNjb3BlU3VnYXIobW9kZSkge1xuICBpZiAobW9kZS5zY29wZSAmJiB0eXBlb2YgbW9kZS5zY29wZSA9PT0gXCJvYmplY3RcIiAmJiBtb2RlLnNjb3BlICE9PSBudWxsKSB7XG4gICAgbW9kZS5iZWdpblNjb3BlID0gbW9kZS5zY29wZTtcbiAgICBkZWxldGUgbW9kZS5zY29wZTtcbiAgfVxufVxuXG4vKipcbiAqIEBwYXJhbSB7Q29tcGlsZWRNb2RlfSBtb2RlXG4gKi9cbmZ1bmN0aW9uIE11bHRpQ2xhc3MobW9kZSkge1xuICBzY29wZVN1Z2FyKG1vZGUpO1xuXG4gIGlmICh0eXBlb2YgbW9kZS5iZWdpblNjb3BlID09PSBcInN0cmluZ1wiKSB7XG4gICAgbW9kZS5iZWdpblNjb3BlID0geyBfd3JhcDogbW9kZS5iZWdpblNjb3BlIH07XG4gIH1cbiAgaWYgKHR5cGVvZiBtb2RlLmVuZFNjb3BlID09PSBcInN0cmluZ1wiKSB7XG4gICAgbW9kZS5lbmRTY29wZSA9IHsgX3dyYXA6IG1vZGUuZW5kU2NvcGUgfTtcbiAgfVxuXG4gIGJlZ2luTXVsdGlDbGFzcyhtb2RlKTtcbiAgZW5kTXVsdGlDbGFzcyhtb2RlKTtcbn1cblxuLyoqXG5AdHlwZWRlZiB7aW1wb3J0KCdoaWdobGlnaHQuanMnKS5Nb2RlfSBNb2RlXG5AdHlwZWRlZiB7aW1wb3J0KCdoaWdobGlnaHQuanMnKS5Db21waWxlZE1vZGV9IENvbXBpbGVkTW9kZVxuQHR5cGVkZWYge2ltcG9ydCgnaGlnaGxpZ2h0LmpzJykuTGFuZ3VhZ2V9IExhbmd1YWdlXG5AdHlwZWRlZiB7aW1wb3J0KCdoaWdobGlnaHQuanMnKS5ITEpTUGx1Z2lufSBITEpTUGx1Z2luXG5AdHlwZWRlZiB7aW1wb3J0KCdoaWdobGlnaHQuanMnKS5Db21waWxlZExhbmd1YWdlfSBDb21waWxlZExhbmd1YWdlXG4qL1xuXG4vLyBjb21waWxhdGlvblxuXG4vKipcbiAqIENvbXBpbGVzIGEgbGFuZ3VhZ2UgZGVmaW5pdGlvbiByZXN1bHRcbiAqXG4gKiBHaXZlbiB0aGUgcmF3IHJlc3VsdCBvZiBhIGxhbmd1YWdlIGRlZmluaXRpb24gKExhbmd1YWdlKSwgY29tcGlsZXMgdGhpcyBzb1xuICogdGhhdCBpdCBpcyByZWFkeSBmb3IgaGlnaGxpZ2h0aW5nIGNvZGUuXG4gKiBAcGFyYW0ge0xhbmd1YWdlfSBsYW5ndWFnZVxuICogQHJldHVybnMge0NvbXBpbGVkTGFuZ3VhZ2V9XG4gKi9cbmZ1bmN0aW9uIGNvbXBpbGVMYW5ndWFnZShsYW5ndWFnZSkge1xuICAvKipcbiAgICogQnVpbGRzIGEgcmVnZXggd2l0aCB0aGUgY2FzZSBzZW5zaXRpdml0eSBvZiB0aGUgY3VycmVudCBsYW5ndWFnZVxuICAgKlxuICAgKiBAcGFyYW0ge1JlZ0V4cCB8IHN0cmluZ30gdmFsdWVcbiAgICogQHBhcmFtIHtib29sZWFufSBbZ2xvYmFsXVxuICAgKi9cbiAgZnVuY3Rpb24gbGFuZ1JlKHZhbHVlLCBnbG9iYWwpIHtcbiAgICByZXR1cm4gbmV3IFJlZ0V4cChcbiAgICAgIHNvdXJjZSh2YWx1ZSksXG4gICAgICAnbSdcbiAgICAgICsgKGxhbmd1YWdlLmNhc2VfaW5zZW5zaXRpdmUgPyAnaScgOiAnJylcbiAgICAgICsgKGxhbmd1YWdlLnVuaWNvZGVSZWdleCA/ICd1JyA6ICcnKVxuICAgICAgKyAoZ2xvYmFsID8gJ2cnIDogJycpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgIFN0b3JlcyBtdWx0aXBsZSByZWd1bGFyIGV4cHJlc3Npb25zIGFuZCBhbGxvd3MgeW91IHRvIHF1aWNrbHkgc2VhcmNoIGZvclxuICAgIHRoZW0gYWxsIGluIGEgc3RyaW5nIHNpbXVsdGFuZW91c2x5IC0gcmV0dXJuaW5nIHRoZSBmaXJzdCBtYXRjaC4gIEl0IGRvZXNcbiAgICB0aGlzIGJ5IGNyZWF0aW5nIGEgaHVnZSAoYXxifGMpIHJlZ2V4IC0gZWFjaCBpbmRpdmlkdWFsIGl0ZW0gd3JhcHBlZCB3aXRoICgpXG4gICAgYW5kIGpvaW5lZCBieSBgfGAgLSB1c2luZyBtYXRjaCBncm91cHMgdG8gdHJhY2sgcG9zaXRpb24uICBXaGVuIGEgbWF0Y2ggaXNcbiAgICBmb3VuZCBjaGVja2luZyB3aGljaCBwb3NpdGlvbiBpbiB0aGUgYXJyYXkgaGFzIGNvbnRlbnQgYWxsb3dzIHVzIHRvIGZpZ3VyZVxuICAgIG91dCB3aGljaCBvZiB0aGUgb3JpZ2luYWwgcmVnZXhlcyAvIG1hdGNoIGdyb3VwcyB0cmlnZ2VyZWQgdGhlIG1hdGNoLlxuXG4gICAgVGhlIG1hdGNoIG9iamVjdCBpdHNlbGYgKHRoZSByZXN1bHQgb2YgYFJlZ2V4LmV4ZWNgKSBpcyByZXR1cm5lZCBidXQgYWxzb1xuICAgIGVuaGFuY2VkIGJ5IG1lcmdpbmcgaW4gYW55IG1ldGEtZGF0YSB0aGF0IHdhcyByZWdpc3RlcmVkIHdpdGggdGhlIHJlZ2V4LlxuICAgIFRoaXMgaXMgaG93IHdlIGtlZXAgdHJhY2sgb2Ygd2hpY2ggbW9kZSBtYXRjaGVkLCBhbmQgd2hhdCB0eXBlIG9mIHJ1bGVcbiAgICAoYGlsbGVnYWxgLCBgYmVnaW5gLCBlbmQsIGV0YykuXG4gICovXG4gIGNsYXNzIE11bHRpUmVnZXgge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgdGhpcy5tYXRjaEluZGV4ZXMgPSB7fTtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHRoaXMucmVnZXhlcyA9IFtdO1xuICAgICAgdGhpcy5tYXRjaEF0ID0gMTtcbiAgICAgIHRoaXMucG9zaXRpb24gPSAwO1xuICAgIH1cblxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBhZGRSdWxlKHJlLCBvcHRzKSB7XG4gICAgICBvcHRzLnBvc2l0aW9uID0gdGhpcy5wb3NpdGlvbisrO1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgdGhpcy5tYXRjaEluZGV4ZXNbdGhpcy5tYXRjaEF0XSA9IG9wdHM7XG4gICAgICB0aGlzLnJlZ2V4ZXMucHVzaChbb3B0cywgcmVdKTtcbiAgICAgIHRoaXMubWF0Y2hBdCArPSBjb3VudE1hdGNoR3JvdXBzKHJlKSArIDE7XG4gICAgfVxuXG4gICAgY29tcGlsZSgpIHtcbiAgICAgIGlmICh0aGlzLnJlZ2V4ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIC8vIGF2b2lkcyB0aGUgbmVlZCB0byBjaGVjayBsZW5ndGggZXZlcnkgdGltZSBleGVjIGlzIGNhbGxlZFxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHRoaXMuZXhlYyA9ICgpID0+IG51bGw7XG4gICAgICB9XG4gICAgICBjb25zdCB0ZXJtaW5hdG9ycyA9IHRoaXMucmVnZXhlcy5tYXAoZWwgPT4gZWxbMV0pO1xuICAgICAgdGhpcy5tYXRjaGVyUmUgPSBsYW5nUmUoX3Jld3JpdGVCYWNrcmVmZXJlbmNlcyh0ZXJtaW5hdG9ycywgeyBqb2luV2l0aDogJ3wnIH0pLCB0cnVlKTtcbiAgICAgIHRoaXMubGFzdEluZGV4ID0gMDtcbiAgICB9XG5cbiAgICAvKiogQHBhcmFtIHtzdHJpbmd9IHMgKi9cbiAgICBleGVjKHMpIHtcbiAgICAgIHRoaXMubWF0Y2hlclJlLmxhc3RJbmRleCA9IHRoaXMubGFzdEluZGV4O1xuICAgICAgY29uc3QgbWF0Y2ggPSB0aGlzLm1hdGNoZXJSZS5leGVjKHMpO1xuICAgICAgaWYgKCFtYXRjaCkgeyByZXR1cm4gbnVsbDsgfVxuXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZWZpbmVkXG4gICAgICBjb25zdCBpID0gbWF0Y2guZmluZEluZGV4KChlbCwgaSkgPT4gaSA+IDAgJiYgZWwgIT09IHVuZGVmaW5lZCk7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBjb25zdCBtYXRjaERhdGEgPSB0aGlzLm1hdGNoSW5kZXhlc1tpXTtcbiAgICAgIC8vIHRyaW0gb2ZmIGFueSBlYXJsaWVyIG5vbi1yZWxldmFudCBtYXRjaCBncm91cHMgKGllLCB0aGUgb3RoZXIgcmVnZXhcbiAgICAgIC8vIG1hdGNoIGdyb3VwcyB0aGF0IG1ha2UgdXAgdGhlIG11bHRpLW1hdGNoZXIpXG4gICAgICBtYXRjaC5zcGxpY2UoMCwgaSk7XG5cbiAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKG1hdGNoLCBtYXRjaERhdGEpO1xuICAgIH1cbiAgfVxuXG4gIC8qXG4gICAgQ3JlYXRlZCB0byBzb2x2ZSB0aGUga2V5IGRlZmljaWVudGx5IHdpdGggTXVsdGlSZWdleCAtIHRoZXJlIGlzIG5vIHdheSB0b1xuICAgIHRlc3QgZm9yIG11bHRpcGxlIG1hdGNoZXMgYXQgYSBzaW5nbGUgbG9jYXRpb24uICBXaHkgd291bGQgd2UgbmVlZCB0byBkb1xuICAgIHRoYXQ/ICBJbiB0aGUgZnV0dXJlIGEgbW9yZSBkeW5hbWljIGVuZ2luZSB3aWxsIGFsbG93IGNlcnRhaW4gbWF0Y2hlcyB0byBiZVxuICAgIGlnbm9yZWQuICBBbiBleGFtcGxlOiBpZiB3ZSBtYXRjaGVkIHNheSB0aGUgM3JkIHJlZ2V4IGluIGEgbGFyZ2UgZ3JvdXAgYnV0XG4gICAgZGVjaWRlZCB0byBpZ25vcmUgaXQgLSB3ZSdkIG5lZWQgdG8gc3RhcnRlZCB0ZXN0aW5nIGFnYWluIGF0IHRoZSA0dGhcbiAgICByZWdleC4uLiBidXQgTXVsdGlSZWdleCBpdHNlbGYgZ2l2ZXMgdXMgbm8gcmVhbCB3YXkgdG8gZG8gdGhhdC5cblxuICAgIFNvIHdoYXQgdGhpcyBjbGFzcyBjcmVhdGVzIE11bHRpUmVnZXhzIG9uIHRoZSBmbHkgZm9yIHdoYXRldmVyIHNlYXJjaFxuICAgIHBvc2l0aW9uIHRoZXkgYXJlIG5lZWRlZC5cblxuICAgIE5PVEU6IFRoZXNlIGFkZGl0aW9uYWwgTXVsdGlSZWdleCBvYmplY3RzIGFyZSBjcmVhdGVkIGR5bmFtaWNhbGx5LiAgRm9yIG1vc3RcbiAgICBncmFtbWFycyBtb3N0IG9mIHRoZSB0aW1lIHdlIHdpbGwgbmV2ZXIgYWN0dWFsbHkgbmVlZCBhbnl0aGluZyBtb3JlIHRoYW4gdGhlXG4gICAgZmlyc3QgTXVsdGlSZWdleCAtIHNvIHRoaXMgc2hvdWxkbid0IGhhdmUgdG9vIG11Y2ggb3ZlcmhlYWQuXG5cbiAgICBTYXkgdGhpcyBpcyBvdXIgc2VhcmNoIGdyb3VwLCBhbmQgd2UgbWF0Y2ggcmVnZXgzLCBidXQgd2lzaCB0byBpZ25vcmUgaXQuXG5cbiAgICAgIHJlZ2V4MSB8IHJlZ2V4MiB8IHJlZ2V4MyB8IHJlZ2V4NCB8IHJlZ2V4NSAgICAnIGllLCBzdGFydEF0ID0gMFxuXG4gICAgV2hhdCB3ZSBuZWVkIGlzIGEgbmV3IE11bHRpUmVnZXggdGhhdCBvbmx5IGluY2x1ZGVzIHRoZSByZW1haW5pbmdcbiAgICBwb3NzaWJpbGl0aWVzOlxuXG4gICAgICByZWdleDQgfCByZWdleDUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyBpZSwgc3RhcnRBdCA9IDNcblxuICAgIFRoaXMgY2xhc3Mgd3JhcHMgYWxsIHRoYXQgY29tcGxleGl0eSB1cCBpbiBhIHNpbXBsZSBBUEkuLi4gYHN0YXJ0QXRgIGRlY2lkZXNcbiAgICB3aGVyZSBpbiB0aGUgYXJyYXkgb2YgZXhwcmVzc2lvbnMgdG8gc3RhcnQgZG9pbmcgdGhlIG1hdGNoaW5nLiBJdFxuICAgIGF1dG8taW5jcmVtZW50cywgc28gaWYgYSBtYXRjaCBpcyBmb3VuZCBhdCBwb3NpdGlvbiAyLCB0aGVuIHN0YXJ0QXQgd2lsbCBiZVxuICAgIHNldCB0byAzLiAgSWYgdGhlIGVuZCBpcyByZWFjaGVkIHN0YXJ0QXQgd2lsbCByZXR1cm4gdG8gMC5cblxuICAgIE1PU1Qgb2YgdGhlIHRpbWUgdGhlIHBhcnNlciB3aWxsIGJlIHNldHRpbmcgc3RhcnRBdCBtYW51YWxseSB0byAwLlxuICAqL1xuICBjbGFzcyBSZXN1bWFibGVNdWx0aVJlZ2V4IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHRoaXMucnVsZXMgPSBbXTtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHRoaXMubXVsdGlSZWdleGVzID0gW107XG4gICAgICB0aGlzLmNvdW50ID0gMDtcblxuICAgICAgdGhpcy5sYXN0SW5kZXggPSAwO1xuICAgICAgdGhpcy5yZWdleEluZGV4ID0gMDtcbiAgICB9XG5cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgZ2V0TWF0Y2hlcihpbmRleCkge1xuICAgICAgaWYgKHRoaXMubXVsdGlSZWdleGVzW2luZGV4XSkgcmV0dXJuIHRoaXMubXVsdGlSZWdleGVzW2luZGV4XTtcblxuICAgICAgY29uc3QgbWF0Y2hlciA9IG5ldyBNdWx0aVJlZ2V4KCk7XG4gICAgICB0aGlzLnJ1bGVzLnNsaWNlKGluZGV4KS5mb3JFYWNoKChbcmUsIG9wdHNdKSA9PiBtYXRjaGVyLmFkZFJ1bGUocmUsIG9wdHMpKTtcbiAgICAgIG1hdGNoZXIuY29tcGlsZSgpO1xuICAgICAgdGhpcy5tdWx0aVJlZ2V4ZXNbaW5kZXhdID0gbWF0Y2hlcjtcbiAgICAgIHJldHVybiBtYXRjaGVyO1xuICAgIH1cblxuICAgIHJlc3VtaW5nU2NhbkF0U2FtZVBvc2l0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXMucmVnZXhJbmRleCAhPT0gMDtcbiAgICB9XG5cbiAgICBjb25zaWRlckFsbCgpIHtcbiAgICAgIHRoaXMucmVnZXhJbmRleCA9IDA7XG4gICAgfVxuXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGFkZFJ1bGUocmUsIG9wdHMpIHtcbiAgICAgIHRoaXMucnVsZXMucHVzaChbcmUsIG9wdHNdKTtcbiAgICAgIGlmIChvcHRzLnR5cGUgPT09IFwiYmVnaW5cIikgdGhpcy5jb3VudCsrO1xuICAgIH1cblxuICAgIC8qKiBAcGFyYW0ge3N0cmluZ30gcyAqL1xuICAgIGV4ZWMocykge1xuICAgICAgY29uc3QgbSA9IHRoaXMuZ2V0TWF0Y2hlcih0aGlzLnJlZ2V4SW5kZXgpO1xuICAgICAgbS5sYXN0SW5kZXggPSB0aGlzLmxhc3RJbmRleDtcbiAgICAgIGxldCByZXN1bHQgPSBtLmV4ZWMocyk7XG5cbiAgICAgIC8vIFRoZSBmb2xsb3dpbmcgaXMgYmVjYXVzZSB3ZSBoYXZlIG5vIGVhc3kgd2F5IHRvIHNheSBcInJlc3VtZSBzY2FubmluZyBhdCB0aGVcbiAgICAgIC8vIGV4aXN0aW5nIHBvc2l0aW9uIGJ1dCBhbHNvIHNraXAgdGhlIGN1cnJlbnQgcnVsZSBPTkxZXCIuIFdoYXQgaGFwcGVucyBpc1xuICAgICAgLy8gYWxsIHByaW9yIHJ1bGVzIGFyZSBhbHNvIHNraXBwZWQgd2hpY2ggY2FuIHJlc3VsdCBpbiBtYXRjaGluZyB0aGUgd3JvbmdcbiAgICAgIC8vIHRoaW5nLiBFeGFtcGxlIG9mIG1hdGNoaW5nIFwiYm9vZ2VyXCI6XG5cbiAgICAgIC8vIG91ciBtYXRjaGVyIGlzIFtzdHJpbmcsIFwiYm9vZ2VyXCIsIG51bWJlcl1cbiAgICAgIC8vXG4gICAgICAvLyAuLi4uYm9vZ2VyLi4uLlxuXG4gICAgICAvLyBpZiBcImJvb2dlclwiIGlzIGlnbm9yZWQgdGhlbiB3ZSdkIHJlYWxseSBuZWVkIGEgcmVnZXggdG8gc2NhbiBmcm9tIHRoZVxuICAgICAgLy8gU0FNRSBwb3NpdGlvbiBmb3Igb25seTogW3N0cmluZywgbnVtYmVyXSBidXQgaWdub3JpbmcgXCJib29nZXJcIiAoaWYgaXRcbiAgICAgIC8vIHdhcyB0aGUgZmlyc3QgbWF0Y2gpLCBhIHNpbXBsZSByZXN1bWUgd291bGQgc2NhbiBhaGVhZCB3aG8ga25vd3MgaG93XG4gICAgICAvLyBmYXIgbG9va2luZyBvbmx5IGZvciBcIm51bWJlclwiLCBpZ25vcmluZyBwb3RlbnRpYWwgc3RyaW5nIG1hdGNoZXMgKG9yXG4gICAgICAvLyBmdXR1cmUgXCJib29nZXJcIiBtYXRjaGVzIHRoYXQgbWlnaHQgYmUgdmFsaWQuKVxuXG4gICAgICAvLyBTbyB3aGF0IHdlIGRvOiBXZSBleGVjdXRlIHR3byBtYXRjaGVycywgb25lIHJlc3VtaW5nIGF0IHRoZSBzYW1lXG4gICAgICAvLyBwb3NpdGlvbiwgYnV0IHRoZSBzZWNvbmQgZnVsbCBtYXRjaGVyIHN0YXJ0aW5nIGF0IHRoZSBwb3NpdGlvbiBhZnRlcjpcblxuICAgICAgLy8gICAgIC8tLS0gcmVzdW1lIGZpcnN0IHJlZ2V4IG1hdGNoIGhlcmUgKGZvciBbbnVtYmVyXSlcbiAgICAgIC8vICAgICB8Ly0tLS0gZnVsbCBtYXRjaCBoZXJlIGZvciBbc3RyaW5nLCBcImJvb2dlclwiLCBudW1iZXJdXG4gICAgICAvLyAgICAgdnZcbiAgICAgIC8vIC4uLi5ib29nZXIuLi4uXG5cbiAgICAgIC8vIFdoaWNoIGV2ZXIgcmVzdWx0cyBpbiBhIG1hdGNoIGZpcnN0IGlzIHRoZW4gdXNlZC4gU28gdGhpcyAzLTQgc3RlcFxuICAgICAgLy8gcHJvY2VzcyBlc3NlbnRpYWxseSBhbGxvd3MgdXMgdG8gc2F5IFwibWF0Y2ggYXQgdGhpcyBwb3NpdGlvbiwgZXhjbHVkaW5nXG4gICAgICAvLyBhIHByaW9yIHJ1bGUgdGhhdCB3YXMgaWdub3JlZFwiLlxuICAgICAgLy9cbiAgICAgIC8vIDEuIE1hdGNoIFwiYm9vZ2VyXCIgZmlyc3QsIGlnbm9yZS4gQWxzbyBwcm92ZXMgdGhhdCBbc3RyaW5nXSBkb2VzIG5vbiBtYXRjaC5cbiAgICAgIC8vIDIuIFJlc3VtZSBtYXRjaGluZyBmb3IgW251bWJlcl1cbiAgICAgIC8vIDMuIE1hdGNoIGF0IGluZGV4ICsgMSBmb3IgW3N0cmluZywgXCJib29nZXJcIiwgbnVtYmVyXVxuICAgICAgLy8gNC4gSWYgIzIgYW5kICMzIHJlc3VsdCBpbiBtYXRjaGVzLCB3aGljaCBjYW1lIGZpcnN0P1xuICAgICAgaWYgKHRoaXMucmVzdW1pbmdTY2FuQXRTYW1lUG9zaXRpb24oKSkge1xuICAgICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC5pbmRleCA9PT0gdGhpcy5sYXN0SW5kZXgpIDsgZWxzZSB7IC8vIHVzZSB0aGUgc2Vjb25kIG1hdGNoZXIgcmVzdWx0XG4gICAgICAgICAgY29uc3QgbTIgPSB0aGlzLmdldE1hdGNoZXIoMCk7XG4gICAgICAgICAgbTIubGFzdEluZGV4ID0gdGhpcy5sYXN0SW5kZXggKyAxO1xuICAgICAgICAgIHJlc3VsdCA9IG0yLmV4ZWMocyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICB0aGlzLnJlZ2V4SW5kZXggKz0gcmVzdWx0LnBvc2l0aW9uICsgMTtcbiAgICAgICAgaWYgKHRoaXMucmVnZXhJbmRleCA9PT0gdGhpcy5jb3VudCkge1xuICAgICAgICAgIC8vIHdyYXAtYXJvdW5kIHRvIGNvbnNpZGVyaW5nIGFsbCBtYXRjaGVzIGFnYWluXG4gICAgICAgICAgdGhpcy5jb25zaWRlckFsbCgpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdpdmVuIGEgbW9kZSwgYnVpbGRzIGEgaHVnZSBSZXN1bWFibGVNdWx0aVJlZ2V4IHRoYXQgY2FuIGJlIHVzZWQgdG8gd2Fsa1xuICAgKiB0aGUgY29udGVudCBhbmQgZmluZCBtYXRjaGVzLlxuICAgKlxuICAgKiBAcGFyYW0ge0NvbXBpbGVkTW9kZX0gbW9kZVxuICAgKiBAcmV0dXJucyB7UmVzdW1hYmxlTXVsdGlSZWdleH1cbiAgICovXG4gIGZ1bmN0aW9uIGJ1aWxkTW9kZVJlZ2V4KG1vZGUpIHtcbiAgICBjb25zdCBtbSA9IG5ldyBSZXN1bWFibGVNdWx0aVJlZ2V4KCk7XG5cbiAgICBtb2RlLmNvbnRhaW5zLmZvckVhY2godGVybSA9PiBtbS5hZGRSdWxlKHRlcm0uYmVnaW4sIHsgcnVsZTogdGVybSwgdHlwZTogXCJiZWdpblwiIH0pKTtcblxuICAgIGlmIChtb2RlLnRlcm1pbmF0b3JFbmQpIHtcbiAgICAgIG1tLmFkZFJ1bGUobW9kZS50ZXJtaW5hdG9yRW5kLCB7IHR5cGU6IFwiZW5kXCIgfSk7XG4gICAgfVxuICAgIGlmIChtb2RlLmlsbGVnYWwpIHtcbiAgICAgIG1tLmFkZFJ1bGUobW9kZS5pbGxlZ2FsLCB7IHR5cGU6IFwiaWxsZWdhbFwiIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBtbTtcbiAgfVxuXG4gIC8qKiBza2lwIHZzIGFib3J0IHZzIGlnbm9yZVxuICAgKlxuICAgKiBAc2tpcCAgIC0gVGhlIG1vZGUgaXMgc3RpbGwgZW50ZXJlZCBhbmQgZXhpdGVkIG5vcm1hbGx5IChhbmQgY29udGFpbnMgcnVsZXMgYXBwbHkpLFxuICAgKiAgICAgICAgICAgYnV0IGFsbCBjb250ZW50IGlzIGhlbGQgYW5kIGFkZGVkIHRvIHRoZSBwYXJlbnQgYnVmZmVyIHJhdGhlciB0aGFuIGJlaW5nXG4gICAqICAgICAgICAgICBvdXRwdXQgd2hlbiB0aGUgbW9kZSBlbmRzLiAgTW9zdGx5IHVzZWQgd2l0aCBgc3VibGFuZ3VhZ2VgIHRvIGJ1aWxkIHVwXG4gICAqICAgICAgICAgICBhIHNpbmdsZSBsYXJnZSBidWZmZXIgdGhhbiBjYW4gYmUgcGFyc2VkIGJ5IHN1Ymxhbmd1YWdlLlxuICAgKlxuICAgKiAgICAgICAgICAgICAtIFRoZSBtb2RlIGJlZ2luIGFuZHMgZW5kcyBub3JtYWxseS5cbiAgICogICAgICAgICAgICAgLSBDb250ZW50IG1hdGNoZWQgaXMgYWRkZWQgdG8gdGhlIHBhcmVudCBtb2RlIGJ1ZmZlci5cbiAgICogICAgICAgICAgICAgLSBUaGUgcGFyc2VyIGN1cnNvciBpcyBtb3ZlZCBmb3J3YXJkIG5vcm1hbGx5LlxuICAgKlxuICAgKiBAYWJvcnQgIC0gQSBoYWNrIHBsYWNlaG9sZGVyIHVudGlsIHdlIGhhdmUgaWdub3JlLiAgQWJvcnRzIHRoZSBtb2RlIChhcyBpZiBpdFxuICAgKiAgICAgICAgICAgbmV2ZXIgbWF0Y2hlZCkgYnV0IERPRVMgTk9UIGNvbnRpbnVlIHRvIG1hdGNoIHN1YnNlcXVlbnQgYGNvbnRhaW5zYFxuICAgKiAgICAgICAgICAgbW9kZXMuICBBYm9ydCBpcyBiYWQvc3Vib3B0aW1hbCBiZWNhdXNlIGl0IGNhbiByZXN1bHQgaW4gbW9kZXNcbiAgICogICAgICAgICAgIGZhcnRoZXIgZG93biBub3QgZ2V0dGluZyBhcHBsaWVkIGJlY2F1c2UgYW4gZWFybGllciBydWxlIGVhdHMgdGhlXG4gICAqICAgICAgICAgICBjb250ZW50IGJ1dCB0aGVuIGFib3J0cy5cbiAgICpcbiAgICogICAgICAgICAgICAgLSBUaGUgbW9kZSBkb2VzIG5vdCBiZWdpbi5cbiAgICogICAgICAgICAgICAgLSBDb250ZW50IG1hdGNoZWQgYnkgYGJlZ2luYCBpcyBhZGRlZCB0byB0aGUgbW9kZSBidWZmZXIuXG4gICAqICAgICAgICAgICAgIC0gVGhlIHBhcnNlciBjdXJzb3IgaXMgbW92ZWQgZm9yd2FyZCBhY2NvcmRpbmdseS5cbiAgICpcbiAgICogQGlnbm9yZSAtIElnbm9yZXMgdGhlIG1vZGUgKGFzIGlmIGl0IG5ldmVyIG1hdGNoZWQpIGFuZCBjb250aW51ZXMgdG8gbWF0Y2ggYW55XG4gICAqICAgICAgICAgICBzdWJzZXF1ZW50IGBjb250YWluc2AgbW9kZXMuICBJZ25vcmUgaXNuJ3QgdGVjaG5pY2FsbHkgcG9zc2libGUgd2l0aFxuICAgKiAgICAgICAgICAgdGhlIGN1cnJlbnQgcGFyc2VyIGltcGxlbWVudGF0aW9uLlxuICAgKlxuICAgKiAgICAgICAgICAgICAtIFRoZSBtb2RlIGRvZXMgbm90IGJlZ2luLlxuICAgKiAgICAgICAgICAgICAtIENvbnRlbnQgbWF0Y2hlZCBieSBgYmVnaW5gIGlzIGlnbm9yZWQuXG4gICAqICAgICAgICAgICAgIC0gVGhlIHBhcnNlciBjdXJzb3IgaXMgbm90IG1vdmVkIGZvcndhcmQuXG4gICAqL1xuXG4gIC8qKlxuICAgKiBDb21waWxlcyBhbiBpbmRpdmlkdWFsIG1vZGVcbiAgICpcbiAgICogVGhpcyBjYW4gcmFpc2UgYW4gZXJyb3IgaWYgdGhlIG1vZGUgY29udGFpbnMgY2VydGFpbiBkZXRlY3RhYmxlIGtub3duIGxvZ2ljXG4gICAqIGlzc3Vlcy5cbiAgICogQHBhcmFtIHtNb2RlfSBtb2RlXG4gICAqIEBwYXJhbSB7Q29tcGlsZWRNb2RlIHwgbnVsbH0gW3BhcmVudF1cbiAgICogQHJldHVybnMge0NvbXBpbGVkTW9kZSB8IG5ldmVyfVxuICAgKi9cbiAgZnVuY3Rpb24gY29tcGlsZU1vZGUobW9kZSwgcGFyZW50KSB7XG4gICAgY29uc3QgY21vZGUgPSAvKiogQHR5cGUgQ29tcGlsZWRNb2RlICovIChtb2RlKTtcbiAgICBpZiAobW9kZS5pc0NvbXBpbGVkKSByZXR1cm4gY21vZGU7XG5cbiAgICBbXG4gICAgICBzY29wZUNsYXNzTmFtZSxcbiAgICAgIC8vIGRvIHRoaXMgZWFybHkgc28gY29tcGlsZXIgZXh0ZW5zaW9ucyBnZW5lcmFsbHkgZG9uJ3QgaGF2ZSB0byB3b3JyeSBhYm91dFxuICAgICAgLy8gdGhlIGRpc3RpbmN0aW9uIGJldHdlZW4gbWF0Y2gvYmVnaW5cbiAgICAgIGNvbXBpbGVNYXRjaCxcbiAgICAgIE11bHRpQ2xhc3MsXG4gICAgICBiZWZvcmVNYXRjaEV4dFxuICAgIF0uZm9yRWFjaChleHQgPT4gZXh0KG1vZGUsIHBhcmVudCkpO1xuXG4gICAgbGFuZ3VhZ2UuY29tcGlsZXJFeHRlbnNpb25zLmZvckVhY2goZXh0ID0+IGV4dChtb2RlLCBwYXJlbnQpKTtcblxuICAgIC8vIF9fYmVmb3JlQmVnaW4gaXMgY29uc2lkZXJlZCBwcml2YXRlIEFQSSwgaW50ZXJuYWwgdXNlIG9ubHlcbiAgICBtb2RlLl9fYmVmb3JlQmVnaW4gPSBudWxsO1xuXG4gICAgW1xuICAgICAgYmVnaW5LZXl3b3JkcyxcbiAgICAgIC8vIGRvIHRoaXMgbGF0ZXIgc28gY29tcGlsZXIgZXh0ZW5zaW9ucyB0aGF0IGNvbWUgZWFybGllciBoYXZlIGFjY2VzcyB0byB0aGVcbiAgICAgIC8vIHJhdyBhcnJheSBpZiB0aGV5IHdhbnRlZCB0byBwZXJoYXBzIG1hbmlwdWxhdGUgaXQsIGV0Yy5cbiAgICAgIGNvbXBpbGVJbGxlZ2FsLFxuICAgICAgLy8gZGVmYXVsdCB0byAxIHJlbGV2YW5jZSBpZiBub3Qgc3BlY2lmaWVkXG4gICAgICBjb21waWxlUmVsZXZhbmNlXG4gICAgXS5mb3JFYWNoKGV4dCA9PiBleHQobW9kZSwgcGFyZW50KSk7XG5cbiAgICBtb2RlLmlzQ29tcGlsZWQgPSB0cnVlO1xuXG4gICAgbGV0IGtleXdvcmRQYXR0ZXJuID0gbnVsbDtcbiAgICBpZiAodHlwZW9mIG1vZGUua2V5d29yZHMgPT09IFwib2JqZWN0XCIgJiYgbW9kZS5rZXl3b3Jkcy4kcGF0dGVybikge1xuICAgICAgLy8gd2UgbmVlZCBhIGNvcHkgYmVjYXVzZSBrZXl3b3JkcyBtaWdodCBiZSBjb21waWxlZCBtdWx0aXBsZSB0aW1lc1xuICAgICAgLy8gc28gd2UgY2FuJ3QgZ28gZGVsZXRpbmcgJHBhdHRlcm4gZnJvbSB0aGUgb3JpZ2luYWwgb24gdGhlIGZpcnN0XG4gICAgICAvLyBwYXNzXG4gICAgICBtb2RlLmtleXdvcmRzID0gT2JqZWN0LmFzc2lnbih7fSwgbW9kZS5rZXl3b3Jkcyk7XG4gICAgICBrZXl3b3JkUGF0dGVybiA9IG1vZGUua2V5d29yZHMuJHBhdHRlcm47XG4gICAgICBkZWxldGUgbW9kZS5rZXl3b3Jkcy4kcGF0dGVybjtcbiAgICB9XG4gICAga2V5d29yZFBhdHRlcm4gPSBrZXl3b3JkUGF0dGVybiB8fCAvXFx3Ky87XG5cbiAgICBpZiAobW9kZS5rZXl3b3Jkcykge1xuICAgICAgbW9kZS5rZXl3b3JkcyA9IGNvbXBpbGVLZXl3b3Jkcyhtb2RlLmtleXdvcmRzLCBsYW5ndWFnZS5jYXNlX2luc2Vuc2l0aXZlKTtcbiAgICB9XG5cbiAgICBjbW9kZS5rZXl3b3JkUGF0dGVyblJlID0gbGFuZ1JlKGtleXdvcmRQYXR0ZXJuLCB0cnVlKTtcblxuICAgIGlmIChwYXJlbnQpIHtcbiAgICAgIGlmICghbW9kZS5iZWdpbikgbW9kZS5iZWdpbiA9IC9cXEJ8XFxiLztcbiAgICAgIGNtb2RlLmJlZ2luUmUgPSBsYW5nUmUoY21vZGUuYmVnaW4pO1xuICAgICAgaWYgKCFtb2RlLmVuZCAmJiAhbW9kZS5lbmRzV2l0aFBhcmVudCkgbW9kZS5lbmQgPSAvXFxCfFxcYi87XG4gICAgICBpZiAobW9kZS5lbmQpIGNtb2RlLmVuZFJlID0gbGFuZ1JlKGNtb2RlLmVuZCk7XG4gICAgICBjbW9kZS50ZXJtaW5hdG9yRW5kID0gc291cmNlKGNtb2RlLmVuZCkgfHwgJyc7XG4gICAgICBpZiAobW9kZS5lbmRzV2l0aFBhcmVudCAmJiBwYXJlbnQudGVybWluYXRvckVuZCkge1xuICAgICAgICBjbW9kZS50ZXJtaW5hdG9yRW5kICs9IChtb2RlLmVuZCA/ICd8JyA6ICcnKSArIHBhcmVudC50ZXJtaW5hdG9yRW5kO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAobW9kZS5pbGxlZ2FsKSBjbW9kZS5pbGxlZ2FsUmUgPSBsYW5nUmUoLyoqIEB0eXBlIHtSZWdFeHAgfCBzdHJpbmd9ICovIChtb2RlLmlsbGVnYWwpKTtcbiAgICBpZiAoIW1vZGUuY29udGFpbnMpIG1vZGUuY29udGFpbnMgPSBbXTtcblxuICAgIG1vZGUuY29udGFpbnMgPSBbXS5jb25jYXQoLi4ubW9kZS5jb250YWlucy5tYXAoZnVuY3Rpb24oYykge1xuICAgICAgcmV0dXJuIGV4cGFuZE9yQ2xvbmVNb2RlKGMgPT09ICdzZWxmJyA/IG1vZGUgOiBjKTtcbiAgICB9KSk7XG4gICAgbW9kZS5jb250YWlucy5mb3JFYWNoKGZ1bmN0aW9uKGMpIHsgY29tcGlsZU1vZGUoLyoqIEB0eXBlIE1vZGUgKi8gKGMpLCBjbW9kZSk7IH0pO1xuXG4gICAgaWYgKG1vZGUuc3RhcnRzKSB7XG4gICAgICBjb21waWxlTW9kZShtb2RlLnN0YXJ0cywgcGFyZW50KTtcbiAgICB9XG5cbiAgICBjbW9kZS5tYXRjaGVyID0gYnVpbGRNb2RlUmVnZXgoY21vZGUpO1xuICAgIHJldHVybiBjbW9kZTtcbiAgfVxuXG4gIGlmICghbGFuZ3VhZ2UuY29tcGlsZXJFeHRlbnNpb25zKSBsYW5ndWFnZS5jb21waWxlckV4dGVuc2lvbnMgPSBbXTtcblxuICAvLyBzZWxmIGlzIG5vdCB2YWxpZCBhdCB0aGUgdG9wLWxldmVsXG4gIGlmIChsYW5ndWFnZS5jb250YWlucyAmJiBsYW5ndWFnZS5jb250YWlucy5pbmNsdWRlcygnc2VsZicpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiRVJSOiBjb250YWlucyBgc2VsZmAgaXMgbm90IHN1cHBvcnRlZCBhdCB0aGUgdG9wLWxldmVsIG9mIGEgbGFuZ3VhZ2UuICBTZWUgZG9jdW1lbnRhdGlvbi5cIik7XG4gIH1cblxuICAvLyB3ZSBuZWVkIGEgbnVsbCBvYmplY3QsIHdoaWNoIGluaGVyaXQgd2lsbCBndWFyYW50ZWVcbiAgbGFuZ3VhZ2UuY2xhc3NOYW1lQWxpYXNlcyA9IGluaGVyaXQkMShsYW5ndWFnZS5jbGFzc05hbWVBbGlhc2VzIHx8IHt9KTtcblxuICByZXR1cm4gY29tcGlsZU1vZGUoLyoqIEB0eXBlIE1vZGUgKi8gKGxhbmd1YWdlKSk7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyBpZiBhIG1vZGUgaGFzIGEgZGVwZW5kZW5jeSBvbiBpdCdzIHBhcmVudCBvciBub3RcbiAqXG4gKiBJZiBhIG1vZGUgZG9lcyBoYXZlIGEgcGFyZW50IGRlcGVuZGVuY3kgdGhlbiBvZnRlbiB3ZSBuZWVkIHRvIGNsb25lIGl0IGlmXG4gKiBpdCdzIHVzZWQgaW4gbXVsdGlwbGUgcGxhY2VzIHNvIHRoYXQgZWFjaCBjb3B5IHBvaW50cyB0byB0aGUgY29ycmVjdCBwYXJlbnQsXG4gKiB3aGVyZS1hcyBtb2RlcyB3aXRob3V0IGEgcGFyZW50IGNhbiBvZnRlbiBzYWZlbHkgYmUgcmUtdXNlZCBhdCB0aGUgYm90dG9tIG9mXG4gKiBhIG1vZGUgY2hhaW4uXG4gKlxuICogQHBhcmFtIHtNb2RlIHwgbnVsbH0gbW9kZVxuICogQHJldHVybnMge2Jvb2xlYW59IC0gaXMgdGhlcmUgYSBkZXBlbmRlbmN5IG9uIHRoZSBwYXJlbnQ/XG4gKiAqL1xuZnVuY3Rpb24gZGVwZW5kZW5jeU9uUGFyZW50KG1vZGUpIHtcbiAgaWYgKCFtb2RlKSByZXR1cm4gZmFsc2U7XG5cbiAgcmV0dXJuIG1vZGUuZW5kc1dpdGhQYXJlbnQgfHwgZGVwZW5kZW5jeU9uUGFyZW50KG1vZGUuc3RhcnRzKTtcbn1cblxuLyoqXG4gKiBFeHBhbmRzIGEgbW9kZSBvciBjbG9uZXMgaXQgaWYgbmVjZXNzYXJ5XG4gKlxuICogVGhpcyBpcyBuZWNlc3NhcnkgZm9yIG1vZGVzIHdpdGggcGFyZW50YWwgZGVwZW5kZW5jZWlzIChzZWUgbm90ZXMgb25cbiAqIGBkZXBlbmRlbmN5T25QYXJlbnRgKSBhbmQgZm9yIG5vZGVzIHRoYXQgaGF2ZSBgdmFyaWFudHNgIC0gd2hpY2ggbXVzdCB0aGVuIGJlXG4gKiBleHBsb2RlZCBpbnRvIHRoZWlyIG93biBpbmRpdmlkdWFsIG1vZGVzIGF0IGNvbXBpbGUgdGltZS5cbiAqXG4gKiBAcGFyYW0ge01vZGV9IG1vZGVcbiAqIEByZXR1cm5zIHtNb2RlIHwgTW9kZVtdfVxuICogKi9cbmZ1bmN0aW9uIGV4cGFuZE9yQ2xvbmVNb2RlKG1vZGUpIHtcbiAgaWYgKG1vZGUudmFyaWFudHMgJiYgIW1vZGUuY2FjaGVkVmFyaWFudHMpIHtcbiAgICBtb2RlLmNhY2hlZFZhcmlhbnRzID0gbW9kZS52YXJpYW50cy5tYXAoZnVuY3Rpb24odmFyaWFudCkge1xuICAgICAgcmV0dXJuIGluaGVyaXQkMShtb2RlLCB7IHZhcmlhbnRzOiBudWxsIH0sIHZhcmlhbnQpO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gRVhQQU5EXG4gIC8vIGlmIHdlIGhhdmUgdmFyaWFudHMgdGhlbiBlc3NlbnRpYWxseSBcInJlcGxhY2VcIiB0aGUgbW9kZSB3aXRoIHRoZSB2YXJpYW50c1xuICAvLyB0aGlzIGhhcHBlbnMgaW4gY29tcGlsZU1vZGUsIHdoZXJlIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGZyb21cbiAgaWYgKG1vZGUuY2FjaGVkVmFyaWFudHMpIHtcbiAgICByZXR1cm4gbW9kZS5jYWNoZWRWYXJpYW50cztcbiAgfVxuXG4gIC8vIENMT05FXG4gIC8vIGlmIHdlIGhhdmUgZGVwZW5kZW5jaWVzIG9uIHBhcmVudHMgdGhlbiB3ZSBuZWVkIGEgdW5pcXVlXG4gIC8vIGluc3RhbmNlIG9mIG91cnNlbHZlcywgc28gd2UgY2FuIGJlIHJldXNlZCB3aXRoIG1hbnlcbiAgLy8gZGlmZmVyZW50IHBhcmVudHMgd2l0aG91dCBpc3N1ZVxuICBpZiAoZGVwZW5kZW5jeU9uUGFyZW50KG1vZGUpKSB7XG4gICAgcmV0dXJuIGluaGVyaXQkMShtb2RlLCB7IHN0YXJ0czogbW9kZS5zdGFydHMgPyBpbmhlcml0JDEobW9kZS5zdGFydHMpIDogbnVsbCB9KTtcbiAgfVxuXG4gIGlmIChPYmplY3QuaXNGcm96ZW4obW9kZSkpIHtcbiAgICByZXR1cm4gaW5oZXJpdCQxKG1vZGUpO1xuICB9XG5cbiAgLy8gbm8gc3BlY2lhbCBkZXBlbmRlbmN5IGlzc3VlcywganVzdCByZXR1cm4gb3Vyc2VsdmVzXG4gIHJldHVybiBtb2RlO1xufVxuXG52YXIgdmVyc2lvbiA9IFwiMTEuOC4wXCI7XG5cbmNsYXNzIEhUTUxJbmplY3Rpb25FcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IocmVhc29uLCBodG1sKSB7XG4gICAgc3VwZXIocmVhc29uKTtcbiAgICB0aGlzLm5hbWUgPSBcIkhUTUxJbmplY3Rpb25FcnJvclwiO1xuICAgIHRoaXMuaHRtbCA9IGh0bWw7XG4gIH1cbn1cblxuLypcblN5bnRheCBoaWdobGlnaHRpbmcgd2l0aCBsYW5ndWFnZSBhdXRvZGV0ZWN0aW9uLlxuaHR0cHM6Ly9oaWdobGlnaHRqcy5vcmcvXG4qL1xuXG5cbi8qKlxuQHR5cGVkZWYge2ltcG9ydCgnaGlnaGxpZ2h0LmpzJykuTW9kZX0gTW9kZVxuQHR5cGVkZWYge2ltcG9ydCgnaGlnaGxpZ2h0LmpzJykuQ29tcGlsZWRNb2RlfSBDb21waWxlZE1vZGVcbkB0eXBlZGVmIHtpbXBvcnQoJ2hpZ2hsaWdodC5qcycpLkNvbXBpbGVkU2NvcGV9IENvbXBpbGVkU2NvcGVcbkB0eXBlZGVmIHtpbXBvcnQoJ2hpZ2hsaWdodC5qcycpLkxhbmd1YWdlfSBMYW5ndWFnZVxuQHR5cGVkZWYge2ltcG9ydCgnaGlnaGxpZ2h0LmpzJykuSExKU0FwaX0gSExKU0FwaVxuQHR5cGVkZWYge2ltcG9ydCgnaGlnaGxpZ2h0LmpzJykuSExKU1BsdWdpbn0gSExKU1BsdWdpblxuQHR5cGVkZWYge2ltcG9ydCgnaGlnaGxpZ2h0LmpzJykuUGx1Z2luRXZlbnR9IFBsdWdpbkV2ZW50XG5AdHlwZWRlZiB7aW1wb3J0KCdoaWdobGlnaHQuanMnKS5ITEpTT3B0aW9uc30gSExKU09wdGlvbnNcbkB0eXBlZGVmIHtpbXBvcnQoJ2hpZ2hsaWdodC5qcycpLkxhbmd1YWdlRm59IExhbmd1YWdlRm5cbkB0eXBlZGVmIHtpbXBvcnQoJ2hpZ2hsaWdodC5qcycpLkhpZ2hsaWdodGVkSFRNTEVsZW1lbnR9IEhpZ2hsaWdodGVkSFRNTEVsZW1lbnRcbkB0eXBlZGVmIHtpbXBvcnQoJ2hpZ2hsaWdodC5qcycpLkJlZm9yZUhpZ2hsaWdodENvbnRleHR9IEJlZm9yZUhpZ2hsaWdodENvbnRleHRcbkB0eXBlZGVmIHtpbXBvcnQoJ2hpZ2hsaWdodC5qcy9wcml2YXRlJykuTWF0Y2hUeXBlfSBNYXRjaFR5cGVcbkB0eXBlZGVmIHtpbXBvcnQoJ2hpZ2hsaWdodC5qcy9wcml2YXRlJykuS2V5d29yZERhdGF9IEtleXdvcmREYXRhXG5AdHlwZWRlZiB7aW1wb3J0KCdoaWdobGlnaHQuanMvcHJpdmF0ZScpLkVuaGFuY2VkTWF0Y2h9IEVuaGFuY2VkTWF0Y2hcbkB0eXBlZGVmIHtpbXBvcnQoJ2hpZ2hsaWdodC5qcy9wcml2YXRlJykuQW5ub3RhdGVkRXJyb3J9IEFubm90YXRlZEVycm9yXG5AdHlwZWRlZiB7aW1wb3J0KCdoaWdobGlnaHQuanMnKS5BdXRvSGlnaGxpZ2h0UmVzdWx0fSBBdXRvSGlnaGxpZ2h0UmVzdWx0XG5AdHlwZWRlZiB7aW1wb3J0KCdoaWdobGlnaHQuanMnKS5IaWdobGlnaHRPcHRpb25zfSBIaWdobGlnaHRPcHRpb25zXG5AdHlwZWRlZiB7aW1wb3J0KCdoaWdobGlnaHQuanMnKS5IaWdobGlnaHRSZXN1bHR9IEhpZ2hsaWdodFJlc3VsdFxuKi9cblxuXG5jb25zdCBlc2NhcGUgPSBlc2NhcGVIVE1MO1xuY29uc3QgaW5oZXJpdCA9IGluaGVyaXQkMTtcbmNvbnN0IE5PX01BVENIID0gU3ltYm9sKFwibm9tYXRjaFwiKTtcbmNvbnN0IE1BWF9LRVlXT1JEX0hJVFMgPSA3O1xuXG4vKipcbiAqIEBwYXJhbSB7YW55fSBobGpzIC0gb2JqZWN0IHRoYXQgaXMgZXh0ZW5kZWQgKGxlZ2FjeSlcbiAqIEByZXR1cm5zIHtITEpTQXBpfVxuICovXG5jb25zdCBITEpTID0gZnVuY3Rpb24oaGxqcykge1xuICAvLyBHbG9iYWwgaW50ZXJuYWwgdmFyaWFibGVzIHVzZWQgd2l0aGluIHRoZSBoaWdobGlnaHQuanMgbGlicmFyeS5cbiAgLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBMYW5ndWFnZT59ICovXG4gIGNvbnN0IGxhbmd1YWdlcyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gIC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gKi9cbiAgY29uc3QgYWxpYXNlcyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gIC8qKiBAdHlwZSB7SExKU1BsdWdpbltdfSAqL1xuICBjb25zdCBwbHVnaW5zID0gW107XG5cbiAgLy8gc2FmZS9wcm9kdWN0aW9uIG1vZGUgLSBzd2FsbG93cyBtb3JlIGVycm9ycywgdHJpZXMgdG8ga2VlcCBydW5uaW5nXG4gIC8vIGV2ZW4gaWYgYSBzaW5nbGUgc3ludGF4IG9yIHBhcnNlIGhpdHMgYSBmYXRhbCBlcnJvclxuICBsZXQgU0FGRV9NT0RFID0gdHJ1ZTtcbiAgY29uc3QgTEFOR1VBR0VfTk9UX0ZPVU5EID0gXCJDb3VsZCBub3QgZmluZCB0aGUgbGFuZ3VhZ2UgJ3t9JywgZGlkIHlvdSBmb3JnZXQgdG8gbG9hZC9pbmNsdWRlIGEgbGFuZ3VhZ2UgbW9kdWxlP1wiO1xuICAvKiogQHR5cGUge0xhbmd1YWdlfSAqL1xuICBjb25zdCBQTEFJTlRFWFRfTEFOR1VBR0UgPSB7IGRpc2FibGVBdXRvZGV0ZWN0OiB0cnVlLCBuYW1lOiAnUGxhaW4gdGV4dCcsIGNvbnRhaW5zOiBbXSB9O1xuXG4gIC8vIEdsb2JhbCBvcHRpb25zIHVzZWQgd2hlbiB3aXRoaW4gZXh0ZXJuYWwgQVBJcy4gVGhpcyBpcyBtb2RpZmllZCB3aGVuXG4gIC8vIGNhbGxpbmcgdGhlIGBobGpzLmNvbmZpZ3VyZWAgZnVuY3Rpb24uXG4gIC8qKiBAdHlwZSBITEpTT3B0aW9ucyAqL1xuICBsZXQgb3B0aW9ucyA9IHtcbiAgICBpZ25vcmVVbmVzY2FwZWRIVE1MOiBmYWxzZSxcbiAgICB0aHJvd1VuZXNjYXBlZEhUTUw6IGZhbHNlLFxuICAgIG5vSGlnaGxpZ2h0UmU6IC9eKG5vLT9oaWdobGlnaHQpJC9pLFxuICAgIGxhbmd1YWdlRGV0ZWN0UmU6IC9cXGJsYW5nKD86dWFnZSk/LShbXFx3LV0rKVxcYi9pLFxuICAgIGNsYXNzUHJlZml4OiAnaGxqcy0nLFxuICAgIGNzc1NlbGVjdG9yOiAncHJlIGNvZGUnLFxuICAgIGxhbmd1YWdlczogbnVsbCxcbiAgICAvLyBiZXRhIGNvbmZpZ3VyYXRpb24gb3B0aW9ucywgc3ViamVjdCB0byBjaGFuZ2UsIHdlbGNvbWUgdG8gZGlzY3Vzc1xuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9oaWdobGlnaHRqcy9oaWdobGlnaHQuanMvaXNzdWVzLzEwODZcbiAgICBfX2VtaXR0ZXI6IFRva2VuVHJlZUVtaXR0ZXJcbiAgfTtcblxuICAvKiBVdGlsaXR5IGZ1bmN0aW9ucyAqL1xuXG4gIC8qKlxuICAgKiBUZXN0cyBhIGxhbmd1YWdlIG5hbWUgdG8gc2VlIGlmIGhpZ2hsaWdodGluZyBzaG91bGQgYmUgc2tpcHBlZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gbGFuZ3VhZ2VOYW1lXG4gICAqL1xuICBmdW5jdGlvbiBzaG91bGROb3RIaWdobGlnaHQobGFuZ3VhZ2VOYW1lKSB7XG4gICAgcmV0dXJuIG9wdGlvbnMubm9IaWdobGlnaHRSZS50ZXN0KGxhbmd1YWdlTmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtIaWdobGlnaHRlZEhUTUxFbGVtZW50fSBibG9jayAtIHRoZSBIVE1MIGVsZW1lbnQgdG8gZGV0ZXJtaW5lIGxhbmd1YWdlIGZvclxuICAgKi9cbiAgZnVuY3Rpb24gYmxvY2tMYW5ndWFnZShibG9jaykge1xuICAgIGxldCBjbGFzc2VzID0gYmxvY2suY2xhc3NOYW1lICsgJyAnO1xuXG4gICAgY2xhc3NlcyArPSBibG9jay5wYXJlbnROb2RlID8gYmxvY2sucGFyZW50Tm9kZS5jbGFzc05hbWUgOiAnJztcblxuICAgIC8vIGxhbmd1YWdlLSogdGFrZXMgcHJlY2VkZW5jZSBvdmVyIG5vbi1wcmVmaXhlZCBjbGFzcyBuYW1lcy5cbiAgICBjb25zdCBtYXRjaCA9IG9wdGlvbnMubGFuZ3VhZ2VEZXRlY3RSZS5leGVjKGNsYXNzZXMpO1xuICAgIGlmIChtYXRjaCkge1xuICAgICAgY29uc3QgbGFuZ3VhZ2UgPSBnZXRMYW5ndWFnZShtYXRjaFsxXSk7XG4gICAgICBpZiAoIWxhbmd1YWdlKSB7XG4gICAgICAgIHdhcm4oTEFOR1VBR0VfTk9UX0ZPVU5ELnJlcGxhY2UoXCJ7fVwiLCBtYXRjaFsxXSkpO1xuICAgICAgICB3YXJuKFwiRmFsbGluZyBiYWNrIHRvIG5vLWhpZ2hsaWdodCBtb2RlIGZvciB0aGlzIGJsb2NrLlwiLCBibG9jayk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbGFuZ3VhZ2UgPyBtYXRjaFsxXSA6ICduby1oaWdobGlnaHQnO1xuICAgIH1cblxuICAgIHJldHVybiBjbGFzc2VzXG4gICAgICAuc3BsaXQoL1xccysvKVxuICAgICAgLmZpbmQoKF9jbGFzcykgPT4gc2hvdWxkTm90SGlnaGxpZ2h0KF9jbGFzcykgfHwgZ2V0TGFuZ3VhZ2UoX2NsYXNzKSk7XG4gIH1cblxuICAvKipcbiAgICogQ29yZSBoaWdobGlnaHRpbmcgZnVuY3Rpb24uXG4gICAqXG4gICAqIE9MRCBBUElcbiAgICogaGlnaGxpZ2h0KGxhbmcsIGNvZGUsIGlnbm9yZUlsbGVnYWxzLCBjb250aW51YXRpb24pXG4gICAqXG4gICAqIE5FVyBBUElcbiAgICogaGlnaGxpZ2h0KGNvZGUsIHtsYW5nLCBpZ25vcmVJbGxlZ2Fsc30pXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjb2RlT3JMYW5ndWFnZU5hbWUgLSB0aGUgbGFuZ3VhZ2UgdG8gdXNlIGZvciBoaWdobGlnaHRpbmdcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBIaWdobGlnaHRPcHRpb25zfSBvcHRpb25zT3JDb2RlIC0gdGhlIGNvZGUgdG8gaGlnaGxpZ2h0XG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lnbm9yZUlsbGVnYWxzXSAtIHdoZXRoZXIgdG8gaWdub3JlIGlsbGVnYWwgbWF0Y2hlcywgZGVmYXVsdCBpcyB0byBiYWlsXG4gICAqXG4gICAqIEByZXR1cm5zIHtIaWdobGlnaHRSZXN1bHR9IFJlc3VsdCAtIGFuIG9iamVjdCB0aGF0IHJlcHJlc2VudHMgdGhlIHJlc3VsdFxuICAgKiBAcHJvcGVydHkge3N0cmluZ30gbGFuZ3VhZ2UgLSB0aGUgbGFuZ3VhZ2UgbmFtZVxuICAgKiBAcHJvcGVydHkge251bWJlcn0gcmVsZXZhbmNlIC0gdGhlIHJlbGV2YW5jZSBzY29yZVxuICAgKiBAcHJvcGVydHkge3N0cmluZ30gdmFsdWUgLSB0aGUgaGlnaGxpZ2h0ZWQgSFRNTCBjb2RlXG4gICAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBjb2RlIC0gdGhlIG9yaWdpbmFsIHJhdyBjb2RlXG4gICAqIEBwcm9wZXJ0eSB7Q29tcGlsZWRNb2RlfSB0b3AgLSB0b3Agb2YgdGhlIGN1cnJlbnQgbW9kZSBzdGFja1xuICAgKiBAcHJvcGVydHkge2Jvb2xlYW59IGlsbGVnYWwgLSBpbmRpY2F0ZXMgd2hldGhlciBhbnkgaWxsZWdhbCBtYXRjaGVzIHdlcmUgZm91bmRcbiAgKi9cbiAgZnVuY3Rpb24gaGlnaGxpZ2h0KGNvZGVPckxhbmd1YWdlTmFtZSwgb3B0aW9uc09yQ29kZSwgaWdub3JlSWxsZWdhbHMpIHtcbiAgICBsZXQgY29kZSA9IFwiXCI7XG4gICAgbGV0IGxhbmd1YWdlTmFtZSA9IFwiXCI7XG4gICAgaWYgKHR5cGVvZiBvcHRpb25zT3JDb2RlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICBjb2RlID0gY29kZU9yTGFuZ3VhZ2VOYW1lO1xuICAgICAgaWdub3JlSWxsZWdhbHMgPSBvcHRpb25zT3JDb2RlLmlnbm9yZUlsbGVnYWxzO1xuICAgICAgbGFuZ3VhZ2VOYW1lID0gb3B0aW9uc09yQ29kZS5sYW5ndWFnZTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gb2xkIEFQSVxuICAgICAgZGVwcmVjYXRlZChcIjEwLjcuMFwiLCBcImhpZ2hsaWdodChsYW5nLCBjb2RlLCAuLi5hcmdzKSBoYXMgYmVlbiBkZXByZWNhdGVkLlwiKTtcbiAgICAgIGRlcHJlY2F0ZWQoXCIxMC43LjBcIiwgXCJQbGVhc2UgdXNlIGhpZ2hsaWdodChjb2RlLCBvcHRpb25zKSBpbnN0ZWFkLlxcbmh0dHBzOi8vZ2l0aHViLmNvbS9oaWdobGlnaHRqcy9oaWdobGlnaHQuanMvaXNzdWVzLzIyNzdcIik7XG4gICAgICBsYW5ndWFnZU5hbWUgPSBjb2RlT3JMYW5ndWFnZU5hbWU7XG4gICAgICBjb2RlID0gb3B0aW9uc09yQ29kZTtcbiAgICB9XG5cbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vaGlnaGxpZ2h0anMvaGlnaGxpZ2h0LmpzL2lzc3Vlcy8zMTQ5XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVmaW5lZFxuICAgIGlmIChpZ25vcmVJbGxlZ2FscyA9PT0gdW5kZWZpbmVkKSB7IGlnbm9yZUlsbGVnYWxzID0gdHJ1ZTsgfVxuXG4gICAgLyoqIEB0eXBlIHtCZWZvcmVIaWdobGlnaHRDb250ZXh0fSAqL1xuICAgIGNvbnN0IGNvbnRleHQgPSB7XG4gICAgICBjb2RlLFxuICAgICAgbGFuZ3VhZ2U6IGxhbmd1YWdlTmFtZVxuICAgIH07XG4gICAgLy8gdGhlIHBsdWdpbiBjYW4gY2hhbmdlIHRoZSBkZXNpcmVkIGxhbmd1YWdlIG9yIHRoZSBjb2RlIHRvIGJlIGhpZ2hsaWdodGVkXG4gICAgLy8ganVzdCBiZSBjaGFuZ2luZyB0aGUgb2JqZWN0IGl0IHdhcyBwYXNzZWRcbiAgICBmaXJlKFwiYmVmb3JlOmhpZ2hsaWdodFwiLCBjb250ZXh0KTtcblxuICAgIC8vIGEgYmVmb3JlIHBsdWdpbiBjYW4gdXN1cnAgdGhlIHJlc3VsdCBjb21wbGV0ZWx5IGJ5IHByb3ZpZGluZyBpdCdzIG93blxuICAgIC8vIGluIHdoaWNoIGNhc2Ugd2UgZG9uJ3QgZXZlbiBuZWVkIHRvIGNhbGwgaGlnaGxpZ2h0XG4gICAgY29uc3QgcmVzdWx0ID0gY29udGV4dC5yZXN1bHRcbiAgICAgID8gY29udGV4dC5yZXN1bHRcbiAgICAgIDogX2hpZ2hsaWdodChjb250ZXh0Lmxhbmd1YWdlLCBjb250ZXh0LmNvZGUsIGlnbm9yZUlsbGVnYWxzKTtcblxuICAgIHJlc3VsdC5jb2RlID0gY29udGV4dC5jb2RlO1xuICAgIC8vIHRoZSBwbHVnaW4gY2FuIGNoYW5nZSBhbnl0aGluZyBpbiByZXN1bHQgdG8gc3VpdGUgaXRcbiAgICBmaXJlKFwiYWZ0ZXI6aGlnaGxpZ2h0XCIsIHJlc3VsdCk7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIHByaXZhdGUgaGlnaGxpZ2h0IHRoYXQncyB1c2VkIGludGVybmFsbHkgYW5kIGRvZXMgbm90IGZpcmUgY2FsbGJhY2tzXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBsYW5ndWFnZU5hbWUgLSB0aGUgbGFuZ3VhZ2UgdG8gdXNlIGZvciBoaWdobGlnaHRpbmdcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNvZGVUb0hpZ2hsaWdodCAtIHRoZSBjb2RlIHRvIGhpZ2hsaWdodFxuICAgKiBAcGFyYW0ge2Jvb2xlYW4/fSBbaWdub3JlSWxsZWdhbHNdIC0gd2hldGhlciB0byBpZ25vcmUgaWxsZWdhbCBtYXRjaGVzLCBkZWZhdWx0IGlzIHRvIGJhaWxcbiAgICogQHBhcmFtIHtDb21waWxlZE1vZGU/fSBbY29udGludWF0aW9uXSAtIGN1cnJlbnQgY29udGludWF0aW9uIG1vZGUsIGlmIGFueVxuICAgKiBAcmV0dXJucyB7SGlnaGxpZ2h0UmVzdWx0fSAtIHJlc3VsdCBvZiB0aGUgaGlnaGxpZ2h0IG9wZXJhdGlvblxuICAqL1xuICBmdW5jdGlvbiBfaGlnaGxpZ2h0KGxhbmd1YWdlTmFtZSwgY29kZVRvSGlnaGxpZ2h0LCBpZ25vcmVJbGxlZ2FscywgY29udGludWF0aW9uKSB7XG4gICAgY29uc3Qga2V5d29yZEhpdHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuXG4gICAgLyoqXG4gICAgICogUmV0dXJuIGtleXdvcmQgZGF0YSBpZiBhIG1hdGNoIGlzIGEga2V5d29yZFxuICAgICAqIEBwYXJhbSB7Q29tcGlsZWRNb2RlfSBtb2RlIC0gY3VycmVudCBtb2RlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG1hdGNoVGV4dCAtIHRoZSB0ZXh0dWFsIG1hdGNoXG4gICAgICogQHJldHVybnMge0tleXdvcmREYXRhIHwgZmFsc2V9XG4gICAgICovXG4gICAgZnVuY3Rpb24ga2V5d29yZERhdGEobW9kZSwgbWF0Y2hUZXh0KSB7XG4gICAgICByZXR1cm4gbW9kZS5rZXl3b3Jkc1ttYXRjaFRleHRdO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHByb2Nlc3NLZXl3b3JkcygpIHtcbiAgICAgIGlmICghdG9wLmtleXdvcmRzKSB7XG4gICAgICAgIGVtaXR0ZXIuYWRkVGV4dChtb2RlQnVmZmVyKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBsZXQgbGFzdEluZGV4ID0gMDtcbiAgICAgIHRvcC5rZXl3b3JkUGF0dGVyblJlLmxhc3RJbmRleCA9IDA7XG4gICAgICBsZXQgbWF0Y2ggPSB0b3Aua2V5d29yZFBhdHRlcm5SZS5leGVjKG1vZGVCdWZmZXIpO1xuICAgICAgbGV0IGJ1ZiA9IFwiXCI7XG5cbiAgICAgIHdoaWxlIChtYXRjaCkge1xuICAgICAgICBidWYgKz0gbW9kZUJ1ZmZlci5zdWJzdHJpbmcobGFzdEluZGV4LCBtYXRjaC5pbmRleCk7XG4gICAgICAgIGNvbnN0IHdvcmQgPSBsYW5ndWFnZS5jYXNlX2luc2Vuc2l0aXZlID8gbWF0Y2hbMF0udG9Mb3dlckNhc2UoKSA6IG1hdGNoWzBdO1xuICAgICAgICBjb25zdCBkYXRhID0ga2V5d29yZERhdGEodG9wLCB3b3JkKTtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICBjb25zdCBba2luZCwga2V5d29yZFJlbGV2YW5jZV0gPSBkYXRhO1xuICAgICAgICAgIGVtaXR0ZXIuYWRkVGV4dChidWYpO1xuICAgICAgICAgIGJ1ZiA9IFwiXCI7XG5cbiAgICAgICAgICBrZXl3b3JkSGl0c1t3b3JkXSA9IChrZXl3b3JkSGl0c1t3b3JkXSB8fCAwKSArIDE7XG4gICAgICAgICAgaWYgKGtleXdvcmRIaXRzW3dvcmRdIDw9IE1BWF9LRVlXT1JEX0hJVFMpIHJlbGV2YW5jZSArPSBrZXl3b3JkUmVsZXZhbmNlO1xuICAgICAgICAgIGlmIChraW5kLnN0YXJ0c1dpdGgoXCJfXCIpKSB7XG4gICAgICAgICAgICAvLyBfIGltcGxpZWQgZm9yIHJlbGV2YW5jZSBvbmx5LCBkbyBub3QgaGlnaGxpZ2h0XG4gICAgICAgICAgICAvLyBieSBhcHBseWluZyBhIGNsYXNzIG5hbWVcbiAgICAgICAgICAgIGJ1ZiArPSBtYXRjaFswXTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgY3NzQ2xhc3MgPSBsYW5ndWFnZS5jbGFzc05hbWVBbGlhc2VzW2tpbmRdIHx8IGtpbmQ7XG4gICAgICAgICAgICBlbWl0S2V5d29yZChtYXRjaFswXSwgY3NzQ2xhc3MpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBidWYgKz0gbWF0Y2hbMF07XG4gICAgICAgIH1cbiAgICAgICAgbGFzdEluZGV4ID0gdG9wLmtleXdvcmRQYXR0ZXJuUmUubGFzdEluZGV4O1xuICAgICAgICBtYXRjaCA9IHRvcC5rZXl3b3JkUGF0dGVyblJlLmV4ZWMobW9kZUJ1ZmZlcik7XG4gICAgICB9XG4gICAgICBidWYgKz0gbW9kZUJ1ZmZlci5zdWJzdHJpbmcobGFzdEluZGV4KTtcbiAgICAgIGVtaXR0ZXIuYWRkVGV4dChidWYpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHByb2Nlc3NTdWJMYW5ndWFnZSgpIHtcbiAgICAgIGlmIChtb2RlQnVmZmVyID09PSBcIlwiKSByZXR1cm47XG4gICAgICAvKiogQHR5cGUgSGlnaGxpZ2h0UmVzdWx0ICovXG4gICAgICBsZXQgcmVzdWx0ID0gbnVsbDtcblxuICAgICAgaWYgKHR5cGVvZiB0b3Auc3ViTGFuZ3VhZ2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGlmICghbGFuZ3VhZ2VzW3RvcC5zdWJMYW5ndWFnZV0pIHtcbiAgICAgICAgICBlbWl0dGVyLmFkZFRleHQobW9kZUJ1ZmZlcik7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHJlc3VsdCA9IF9oaWdobGlnaHQodG9wLnN1Ykxhbmd1YWdlLCBtb2RlQnVmZmVyLCB0cnVlLCBjb250aW51YXRpb25zW3RvcC5zdWJMYW5ndWFnZV0pO1xuICAgICAgICBjb250aW51YXRpb25zW3RvcC5zdWJMYW5ndWFnZV0gPSAvKiogQHR5cGUge0NvbXBpbGVkTW9kZX0gKi8gKHJlc3VsdC5fdG9wKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdCA9IGhpZ2hsaWdodEF1dG8obW9kZUJ1ZmZlciwgdG9wLnN1Ykxhbmd1YWdlLmxlbmd0aCA/IHRvcC5zdWJMYW5ndWFnZSA6IG51bGwpO1xuICAgICAgfVxuXG4gICAgICAvLyBDb3VudGluZyBlbWJlZGRlZCBsYW5ndWFnZSBzY29yZSB0b3dhcmRzIHRoZSBob3N0IGxhbmd1YWdlIG1heSBiZSBkaXNhYmxlZFxuICAgICAgLy8gd2l0aCB6ZXJvaW5nIHRoZSBjb250YWluaW5nIG1vZGUgcmVsZXZhbmNlLiBVc2UgY2FzZSBpbiBwb2ludCBpcyBNYXJrZG93biB0aGF0XG4gICAgICAvLyBhbGxvd3MgWE1MIGV2ZXJ5d2hlcmUgYW5kIG1ha2VzIGV2ZXJ5IFhNTCBzbmlwcGV0IHRvIGhhdmUgYSBtdWNoIGxhcmdlciBNYXJrZG93blxuICAgICAgLy8gc2NvcmUuXG4gICAgICBpZiAodG9wLnJlbGV2YW5jZSA+IDApIHtcbiAgICAgICAgcmVsZXZhbmNlICs9IHJlc3VsdC5yZWxldmFuY2U7XG4gICAgICB9XG4gICAgICBlbWl0dGVyLl9fYWRkU3VibGFuZ3VhZ2UocmVzdWx0Ll9lbWl0dGVyLCByZXN1bHQubGFuZ3VhZ2UpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHByb2Nlc3NCdWZmZXIoKSB7XG4gICAgICBpZiAodG9wLnN1Ykxhbmd1YWdlICE9IG51bGwpIHtcbiAgICAgICAgcHJvY2Vzc1N1Ykxhbmd1YWdlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwcm9jZXNzS2V5d29yZHMoKTtcbiAgICAgIH1cbiAgICAgIG1vZGVCdWZmZXIgPSAnJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzY29wZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGVtaXRLZXl3b3JkKGtleXdvcmQsIHNjb3BlKSB7XG4gICAgICBpZiAoa2V5d29yZCA9PT0gXCJcIikgcmV0dXJuO1xuXG4gICAgICBlbWl0dGVyLnN0YXJ0U2NvcGUoc2NvcGUpO1xuICAgICAgZW1pdHRlci5hZGRUZXh0KGtleXdvcmQpO1xuICAgICAgZW1pdHRlci5lbmRTY29wZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSB7Q29tcGlsZWRTY29wZX0gc2NvcGVcbiAgICAgKiBAcGFyYW0ge1JlZ0V4cE1hdGNoQXJyYXl9IG1hdGNoXG4gICAgICovXG4gICAgZnVuY3Rpb24gZW1pdE11bHRpQ2xhc3Moc2NvcGUsIG1hdGNoKSB7XG4gICAgICBsZXQgaSA9IDE7XG4gICAgICBjb25zdCBtYXggPSBtYXRjaC5sZW5ndGggLSAxO1xuICAgICAgd2hpbGUgKGkgPD0gbWF4KSB7XG4gICAgICAgIGlmICghc2NvcGUuX2VtaXRbaV0pIHsgaSsrOyBjb250aW51ZTsgfVxuICAgICAgICBjb25zdCBrbGFzcyA9IGxhbmd1YWdlLmNsYXNzTmFtZUFsaWFzZXNbc2NvcGVbaV1dIHx8IHNjb3BlW2ldO1xuICAgICAgICBjb25zdCB0ZXh0ID0gbWF0Y2hbaV07XG4gICAgICAgIGlmIChrbGFzcykge1xuICAgICAgICAgIGVtaXRLZXl3b3JkKHRleHQsIGtsYXNzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBtb2RlQnVmZmVyID0gdGV4dDtcbiAgICAgICAgICBwcm9jZXNzS2V5d29yZHMoKTtcbiAgICAgICAgICBtb2RlQnVmZmVyID0gXCJcIjtcbiAgICAgICAgfVxuICAgICAgICBpKys7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIHtDb21waWxlZE1vZGV9IG1vZGUgLSBuZXcgbW9kZSB0byBzdGFydFxuICAgICAqIEBwYXJhbSB7UmVnRXhwTWF0Y2hBcnJheX0gbWF0Y2hcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzdGFydE5ld01vZGUobW9kZSwgbWF0Y2gpIHtcbiAgICAgIGlmIChtb2RlLnNjb3BlICYmIHR5cGVvZiBtb2RlLnNjb3BlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGVtaXR0ZXIub3Blbk5vZGUobGFuZ3VhZ2UuY2xhc3NOYW1lQWxpYXNlc1ttb2RlLnNjb3BlXSB8fCBtb2RlLnNjb3BlKTtcbiAgICAgIH1cbiAgICAgIGlmIChtb2RlLmJlZ2luU2NvcGUpIHtcbiAgICAgICAgLy8gYmVnaW5TY29wZSBqdXN0IHdyYXBzIHRoZSBiZWdpbiBtYXRjaCBpdHNlbGYgaW4gYSBzY29wZVxuICAgICAgICBpZiAobW9kZS5iZWdpblNjb3BlLl93cmFwKSB7XG4gICAgICAgICAgZW1pdEtleXdvcmQobW9kZUJ1ZmZlciwgbGFuZ3VhZ2UuY2xhc3NOYW1lQWxpYXNlc1ttb2RlLmJlZ2luU2NvcGUuX3dyYXBdIHx8IG1vZGUuYmVnaW5TY29wZS5fd3JhcCk7XG4gICAgICAgICAgbW9kZUJ1ZmZlciA9IFwiXCI7XG4gICAgICAgIH0gZWxzZSBpZiAobW9kZS5iZWdpblNjb3BlLl9tdWx0aSkge1xuICAgICAgICAgIC8vIGF0IHRoaXMgcG9pbnQgbW9kZUJ1ZmZlciBzaG91bGQganVzdCBiZSB0aGUgbWF0Y2hcbiAgICAgICAgICBlbWl0TXVsdGlDbGFzcyhtb2RlLmJlZ2luU2NvcGUsIG1hdGNoKTtcbiAgICAgICAgICBtb2RlQnVmZmVyID0gXCJcIjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0b3AgPSBPYmplY3QuY3JlYXRlKG1vZGUsIHsgcGFyZW50OiB7IHZhbHVlOiB0b3AgfSB9KTtcbiAgICAgIHJldHVybiB0b3A7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIHtDb21waWxlZE1vZGUgfSBtb2RlIC0gdGhlIG1vZGUgdG8gcG90ZW50aWFsbHkgZW5kXG4gICAgICogQHBhcmFtIHtSZWdFeHBNYXRjaEFycmF5fSBtYXRjaCAtIHRoZSBsYXRlc3QgbWF0Y2hcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbWF0Y2hQbHVzUmVtYWluZGVyIC0gbWF0Y2ggcGx1cyByZW1haW5kZXIgb2YgY29udGVudFxuICAgICAqIEByZXR1cm5zIHtDb21waWxlZE1vZGUgfCB2b2lkfSAtIHRoZSBuZXh0IG1vZGUsIG9yIGlmIHZvaWQgY29udGludWUgb24gaW4gY3VycmVudCBtb2RlXG4gICAgICovXG4gICAgZnVuY3Rpb24gZW5kT2ZNb2RlKG1vZGUsIG1hdGNoLCBtYXRjaFBsdXNSZW1haW5kZXIpIHtcbiAgICAgIGxldCBtYXRjaGVkID0gc3RhcnRzV2l0aChtb2RlLmVuZFJlLCBtYXRjaFBsdXNSZW1haW5kZXIpO1xuXG4gICAgICBpZiAobWF0Y2hlZCkge1xuICAgICAgICBpZiAobW9kZVtcIm9uOmVuZFwiXSkge1xuICAgICAgICAgIGNvbnN0IHJlc3AgPSBuZXcgUmVzcG9uc2UobW9kZSk7XG4gICAgICAgICAgbW9kZVtcIm9uOmVuZFwiXShtYXRjaCwgcmVzcCk7XG4gICAgICAgICAgaWYgKHJlc3AuaXNNYXRjaElnbm9yZWQpIG1hdGNoZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChtYXRjaGVkKSB7XG4gICAgICAgICAgd2hpbGUgKG1vZGUuZW5kc1BhcmVudCAmJiBtb2RlLnBhcmVudCkge1xuICAgICAgICAgICAgbW9kZSA9IG1vZGUucGFyZW50O1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbW9kZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gZXZlbiBpZiBvbjplbmQgZmlyZXMgYW4gYGlnbm9yZWAgaXQncyBzdGlsbCBwb3NzaWJsZVxuICAgICAgLy8gdGhhdCB3ZSBtaWdodCB0cmlnZ2VyIHRoZSBlbmQgbm9kZSBiZWNhdXNlIG9mIGEgcGFyZW50IG1vZGVcbiAgICAgIGlmIChtb2RlLmVuZHNXaXRoUGFyZW50KSB7XG4gICAgICAgIHJldHVybiBlbmRPZk1vZGUobW9kZS5wYXJlbnQsIG1hdGNoLCBtYXRjaFBsdXNSZW1haW5kZXIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhhbmRsZSBtYXRjaGluZyBidXQgdGhlbiBpZ25vcmluZyBhIHNlcXVlbmNlIG9mIHRleHRcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBsZXhlbWUgLSBzdHJpbmcgY29udGFpbmluZyBmdWxsIG1hdGNoIHRleHRcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBkb0lnbm9yZShsZXhlbWUpIHtcbiAgICAgIGlmICh0b3AubWF0Y2hlci5yZWdleEluZGV4ID09PSAwKSB7XG4gICAgICAgIC8vIG5vIG1vcmUgcmVnZXhlcyB0byBwb3RlbnRpYWxseSBtYXRjaCBoZXJlLCBzbyB3ZSBtb3ZlIHRoZSBjdXJzb3IgZm9yd2FyZCBvbmVcbiAgICAgICAgLy8gc3BhY2VcbiAgICAgICAgbW9kZUJ1ZmZlciArPSBsZXhlbWVbMF07XG4gICAgICAgIHJldHVybiAxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gbm8gbmVlZCB0byBtb3ZlIHRoZSBjdXJzb3IsIHdlIHN0aWxsIGhhdmUgYWRkaXRpb25hbCByZWdleGVzIHRvIHRyeSBhbmRcbiAgICAgICAgLy8gbWF0Y2ggYXQgdGhpcyB2ZXJ5IHNwb3RcbiAgICAgICAgcmVzdW1lU2NhbkF0U2FtZVBvc2l0aW9uID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGFuZGxlIHRoZSBzdGFydCBvZiBhIG5ldyBwb3RlbnRpYWwgbW9kZSBtYXRjaFxuICAgICAqXG4gICAgICogQHBhcmFtIHtFbmhhbmNlZE1hdGNofSBtYXRjaCAtIHRoZSBjdXJyZW50IG1hdGNoXG4gICAgICogQHJldHVybnMge251bWJlcn0gaG93IGZhciB0byBhZHZhbmNlIHRoZSBwYXJzZSBjdXJzb3JcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBkb0JlZ2luTWF0Y2gobWF0Y2gpIHtcbiAgICAgIGNvbnN0IGxleGVtZSA9IG1hdGNoWzBdO1xuICAgICAgY29uc3QgbmV3TW9kZSA9IG1hdGNoLnJ1bGU7XG5cbiAgICAgIGNvbnN0IHJlc3AgPSBuZXcgUmVzcG9uc2UobmV3TW9kZSk7XG4gICAgICAvLyBmaXJzdCBpbnRlcm5hbCBiZWZvcmUgY2FsbGJhY2tzLCB0aGVuIHRoZSBwdWJsaWMgb25lc1xuICAgICAgY29uc3QgYmVmb3JlQ2FsbGJhY2tzID0gW25ld01vZGUuX19iZWZvcmVCZWdpbiwgbmV3TW9kZVtcIm9uOmJlZ2luXCJdXTtcbiAgICAgIGZvciAoY29uc3QgY2Igb2YgYmVmb3JlQ2FsbGJhY2tzKSB7XG4gICAgICAgIGlmICghY2IpIGNvbnRpbnVlO1xuICAgICAgICBjYihtYXRjaCwgcmVzcCk7XG4gICAgICAgIGlmIChyZXNwLmlzTWF0Y2hJZ25vcmVkKSByZXR1cm4gZG9JZ25vcmUobGV4ZW1lKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG5ld01vZGUuc2tpcCkge1xuICAgICAgICBtb2RlQnVmZmVyICs9IGxleGVtZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChuZXdNb2RlLmV4Y2x1ZGVCZWdpbikge1xuICAgICAgICAgIG1vZGVCdWZmZXIgKz0gbGV4ZW1lO1xuICAgICAgICB9XG4gICAgICAgIHByb2Nlc3NCdWZmZXIoKTtcbiAgICAgICAgaWYgKCFuZXdNb2RlLnJldHVybkJlZ2luICYmICFuZXdNb2RlLmV4Y2x1ZGVCZWdpbikge1xuICAgICAgICAgIG1vZGVCdWZmZXIgPSBsZXhlbWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHN0YXJ0TmV3TW9kZShuZXdNb2RlLCBtYXRjaCk7XG4gICAgICByZXR1cm4gbmV3TW9kZS5yZXR1cm5CZWdpbiA/IDAgOiBsZXhlbWUubGVuZ3RoO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhhbmRsZSB0aGUgcG90ZW50aWFsIGVuZCBvZiBtb2RlXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge1JlZ0V4cE1hdGNoQXJyYXl9IG1hdGNoIC0gdGhlIGN1cnJlbnQgbWF0Y2hcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBkb0VuZE1hdGNoKG1hdGNoKSB7XG4gICAgICBjb25zdCBsZXhlbWUgPSBtYXRjaFswXTtcbiAgICAgIGNvbnN0IG1hdGNoUGx1c1JlbWFpbmRlciA9IGNvZGVUb0hpZ2hsaWdodC5zdWJzdHJpbmcobWF0Y2guaW5kZXgpO1xuXG4gICAgICBjb25zdCBlbmRNb2RlID0gZW5kT2ZNb2RlKHRvcCwgbWF0Y2gsIG1hdGNoUGx1c1JlbWFpbmRlcik7XG4gICAgICBpZiAoIWVuZE1vZGUpIHsgcmV0dXJuIE5PX01BVENIOyB9XG5cbiAgICAgIGNvbnN0IG9yaWdpbiA9IHRvcDtcbiAgICAgIGlmICh0b3AuZW5kU2NvcGUgJiYgdG9wLmVuZFNjb3BlLl93cmFwKSB7XG4gICAgICAgIHByb2Nlc3NCdWZmZXIoKTtcbiAgICAgICAgZW1pdEtleXdvcmQobGV4ZW1lLCB0b3AuZW5kU2NvcGUuX3dyYXApO1xuICAgICAgfSBlbHNlIGlmICh0b3AuZW5kU2NvcGUgJiYgdG9wLmVuZFNjb3BlLl9tdWx0aSkge1xuICAgICAgICBwcm9jZXNzQnVmZmVyKCk7XG4gICAgICAgIGVtaXRNdWx0aUNsYXNzKHRvcC5lbmRTY29wZSwgbWF0Y2gpO1xuICAgICAgfSBlbHNlIGlmIChvcmlnaW4uc2tpcCkge1xuICAgICAgICBtb2RlQnVmZmVyICs9IGxleGVtZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICghKG9yaWdpbi5yZXR1cm5FbmQgfHwgb3JpZ2luLmV4Y2x1ZGVFbmQpKSB7XG4gICAgICAgICAgbW9kZUJ1ZmZlciArPSBsZXhlbWU7XG4gICAgICAgIH1cbiAgICAgICAgcHJvY2Vzc0J1ZmZlcigpO1xuICAgICAgICBpZiAob3JpZ2luLmV4Y2x1ZGVFbmQpIHtcbiAgICAgICAgICBtb2RlQnVmZmVyID0gbGV4ZW1lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBkbyB7XG4gICAgICAgIGlmICh0b3Auc2NvcGUpIHtcbiAgICAgICAgICBlbWl0dGVyLmNsb3NlTm9kZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdG9wLnNraXAgJiYgIXRvcC5zdWJMYW5ndWFnZSkge1xuICAgICAgICAgIHJlbGV2YW5jZSArPSB0b3AucmVsZXZhbmNlO1xuICAgICAgICB9XG4gICAgICAgIHRvcCA9IHRvcC5wYXJlbnQ7XG4gICAgICB9IHdoaWxlICh0b3AgIT09IGVuZE1vZGUucGFyZW50KTtcbiAgICAgIGlmIChlbmRNb2RlLnN0YXJ0cykge1xuICAgICAgICBzdGFydE5ld01vZGUoZW5kTW9kZS5zdGFydHMsIG1hdGNoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBvcmlnaW4ucmV0dXJuRW5kID8gMCA6IGxleGVtZS5sZW5ndGg7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcHJvY2Vzc0NvbnRpbnVhdGlvbnMoKSB7XG4gICAgICBjb25zdCBsaXN0ID0gW107XG4gICAgICBmb3IgKGxldCBjdXJyZW50ID0gdG9wOyBjdXJyZW50ICE9PSBsYW5ndWFnZTsgY3VycmVudCA9IGN1cnJlbnQucGFyZW50KSB7XG4gICAgICAgIGlmIChjdXJyZW50LnNjb3BlKSB7XG4gICAgICAgICAgbGlzdC51bnNoaWZ0KGN1cnJlbnQuc2NvcGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBsaXN0LmZvckVhY2goaXRlbSA9PiBlbWl0dGVyLm9wZW5Ob2RlKGl0ZW0pKTtcbiAgICB9XG5cbiAgICAvKiogQHR5cGUge3t0eXBlPzogTWF0Y2hUeXBlLCBpbmRleD86IG51bWJlciwgcnVsZT86IE1vZGV9fX0gKi9cbiAgICBsZXQgbGFzdE1hdGNoID0ge307XG5cbiAgICAvKipcbiAgICAgKiAgUHJvY2VzcyBhbiBpbmRpdmlkdWFsIG1hdGNoXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dEJlZm9yZU1hdGNoIC0gdGV4dCBwcmVjZWRpbmcgdGhlIG1hdGNoIChzaW5jZSB0aGUgbGFzdCBtYXRjaClcbiAgICAgKiBAcGFyYW0ge0VuaGFuY2VkTWF0Y2h9IFttYXRjaF0gLSB0aGUgbWF0Y2ggaXRzZWxmXG4gICAgICovXG4gICAgZnVuY3Rpb24gcHJvY2Vzc0xleGVtZSh0ZXh0QmVmb3JlTWF0Y2gsIG1hdGNoKSB7XG4gICAgICBjb25zdCBsZXhlbWUgPSBtYXRjaCAmJiBtYXRjaFswXTtcblxuICAgICAgLy8gYWRkIG5vbi1tYXRjaGVkIHRleHQgdG8gdGhlIGN1cnJlbnQgbW9kZSBidWZmZXJcbiAgICAgIG1vZGVCdWZmZXIgKz0gdGV4dEJlZm9yZU1hdGNoO1xuXG4gICAgICBpZiAobGV4ZW1lID09IG51bGwpIHtcbiAgICAgICAgcHJvY2Vzc0J1ZmZlcigpO1xuICAgICAgICByZXR1cm4gMDtcbiAgICAgIH1cblxuICAgICAgLy8gd2UndmUgZm91bmQgYSAwIHdpZHRoIG1hdGNoIGFuZCB3ZSdyZSBzdHVjaywgc28gd2UgbmVlZCB0byBhZHZhbmNlXG4gICAgICAvLyB0aGlzIGhhcHBlbnMgd2hlbiB3ZSBoYXZlIGJhZGx5IGJlaGF2ZWQgcnVsZXMgdGhhdCBoYXZlIG9wdGlvbmFsIG1hdGNoZXJzIHRvIHRoZSBkZWdyZWUgdGhhdFxuICAgICAgLy8gc29tZXRpbWVzIHRoZXkgY2FuIGVuZCB1cCBtYXRjaGluZyBub3RoaW5nIGF0IGFsbFxuICAgICAgLy8gUmVmOiBodHRwczovL2dpdGh1Yi5jb20vaGlnaGxpZ2h0anMvaGlnaGxpZ2h0LmpzL2lzc3Vlcy8yMTQwXG4gICAgICBpZiAobGFzdE1hdGNoLnR5cGUgPT09IFwiYmVnaW5cIiAmJiBtYXRjaC50eXBlID09PSBcImVuZFwiICYmIGxhc3RNYXRjaC5pbmRleCA9PT0gbWF0Y2guaW5kZXggJiYgbGV4ZW1lID09PSBcIlwiKSB7XG4gICAgICAgIC8vIHNwaXQgdGhlIFwic2tpcHBlZFwiIGNoYXJhY3RlciB0aGF0IG91ciByZWdleCBjaG9rZWQgb24gYmFjayBpbnRvIHRoZSBvdXRwdXQgc2VxdWVuY2VcbiAgICAgICAgbW9kZUJ1ZmZlciArPSBjb2RlVG9IaWdobGlnaHQuc2xpY2UobWF0Y2guaW5kZXgsIG1hdGNoLmluZGV4ICsgMSk7XG4gICAgICAgIGlmICghU0FGRV9NT0RFKSB7XG4gICAgICAgICAgLyoqIEB0eXBlIHtBbm5vdGF0ZWRFcnJvcn0gKi9cbiAgICAgICAgICBjb25zdCBlcnIgPSBuZXcgRXJyb3IoYDAgd2lkdGggbWF0Y2ggcmVnZXggKCR7bGFuZ3VhZ2VOYW1lfSlgKTtcbiAgICAgICAgICBlcnIubGFuZ3VhZ2VOYW1lID0gbGFuZ3VhZ2VOYW1lO1xuICAgICAgICAgIGVyci5iYWRSdWxlID0gbGFzdE1hdGNoLnJ1bGU7XG4gICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAxO1xuICAgICAgfVxuICAgICAgbGFzdE1hdGNoID0gbWF0Y2g7XG5cbiAgICAgIGlmIChtYXRjaC50eXBlID09PSBcImJlZ2luXCIpIHtcbiAgICAgICAgcmV0dXJuIGRvQmVnaW5NYXRjaChtYXRjaCk7XG4gICAgICB9IGVsc2UgaWYgKG1hdGNoLnR5cGUgPT09IFwiaWxsZWdhbFwiICYmICFpZ25vcmVJbGxlZ2Fscykge1xuICAgICAgICAvLyBpbGxlZ2FsIG1hdGNoLCB3ZSBkbyBub3QgY29udGludWUgcHJvY2Vzc2luZ1xuICAgICAgICAvKiogQHR5cGUge0Fubm90YXRlZEVycm9yfSAqL1xuICAgICAgICBjb25zdCBlcnIgPSBuZXcgRXJyb3IoJ0lsbGVnYWwgbGV4ZW1lIFwiJyArIGxleGVtZSArICdcIiBmb3IgbW9kZSBcIicgKyAodG9wLnNjb3BlIHx8ICc8dW5uYW1lZD4nKSArICdcIicpO1xuICAgICAgICBlcnIubW9kZSA9IHRvcDtcbiAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgfSBlbHNlIGlmIChtYXRjaC50eXBlID09PSBcImVuZFwiKSB7XG4gICAgICAgIGNvbnN0IHByb2Nlc3NlZCA9IGRvRW5kTWF0Y2gobWF0Y2gpO1xuICAgICAgICBpZiAocHJvY2Vzc2VkICE9PSBOT19NQVRDSCkge1xuICAgICAgICAgIHJldHVybiBwcm9jZXNzZWQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gZWRnZSBjYXNlIGZvciB3aGVuIGlsbGVnYWwgbWF0Y2hlcyAkIChlbmQgb2YgbGluZSkgd2hpY2ggaXMgdGVjaG5pY2FsbHlcbiAgICAgIC8vIGEgMCB3aWR0aCBtYXRjaCBidXQgbm90IGEgYmVnaW4vZW5kIG1hdGNoIHNvIGl0J3Mgbm90IGNhdWdodCBieSB0aGVcbiAgICAgIC8vIGZpcnN0IGhhbmRsZXIgKHdoZW4gaWdub3JlSWxsZWdhbHMgaXMgdHJ1ZSlcbiAgICAgIGlmIChtYXRjaC50eXBlID09PSBcImlsbGVnYWxcIiAmJiBsZXhlbWUgPT09IFwiXCIpIHtcbiAgICAgICAgLy8gYWR2YW5jZSBzbyB3ZSBhcmVuJ3Qgc3R1Y2sgaW4gYW4gaW5maW5pdGUgbG9vcFxuICAgICAgICByZXR1cm4gMTtcbiAgICAgIH1cblxuICAgICAgLy8gaW5maW5pdGUgbG9vcHMgYXJlIEJBRCwgdGhpcyBpcyBhIGxhc3QgZGl0Y2ggY2F0Y2ggYWxsLiBpZiB3ZSBoYXZlIGFcbiAgICAgIC8vIGRlY2VudCBudW1iZXIgb2YgaXRlcmF0aW9ucyB5ZXQgb3VyIGluZGV4IChjdXJzb3IgcG9zaXRpb24gaW4gb3VyXG4gICAgICAvLyBwYXJzaW5nKSBzdGlsbCAzeCBiZWhpbmQgb3VyIGluZGV4IHRoZW4gc29tZXRoaW5nIGlzIHZlcnkgd3JvbmdcbiAgICAgIC8vIHNvIHdlIGJhaWxcbiAgICAgIGlmIChpdGVyYXRpb25zID4gMTAwMDAwICYmIGl0ZXJhdGlvbnMgPiBtYXRjaC5pbmRleCAqIDMpIHtcbiAgICAgICAgY29uc3QgZXJyID0gbmV3IEVycm9yKCdwb3RlbnRpYWwgaW5maW5pdGUgbG9vcCwgd2F5IG1vcmUgaXRlcmF0aW9ucyB0aGFuIG1hdGNoZXMnKTtcbiAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgfVxuXG4gICAgICAvKlxuICAgICAgV2h5IG1pZ2h0IGJlIGZpbmQgb3Vyc2VsdmVzIGhlcmU/ICBBbiBwb3RlbnRpYWwgZW5kIG1hdGNoIHRoYXQgd2FzXG4gICAgICB0cmlnZ2VyZWQgYnV0IGNvdWxkIG5vdCBiZSBjb21wbGV0ZWQuICBJRSwgYGRvRW5kTWF0Y2hgIHJldHVybmVkIE5PX01BVENILlxuICAgICAgKHRoaXMgY291bGQgYmUgYmVjYXVzZSBhIGNhbGxiYWNrIHJlcXVlc3RzIHRoZSBtYXRjaCBiZSBpZ25vcmVkLCBldGMpXG5cbiAgICAgIFRoaXMgY2F1c2VzIG5vIHJlYWwgaGFybSBvdGhlciB0aGFuIHN0b3BwaW5nIGEgZmV3IHRpbWVzIHRvbyBtYW55LlxuICAgICAgKi9cblxuICAgICAgbW9kZUJ1ZmZlciArPSBsZXhlbWU7XG4gICAgICByZXR1cm4gbGV4ZW1lLmxlbmd0aDtcbiAgICB9XG5cbiAgICBjb25zdCBsYW5ndWFnZSA9IGdldExhbmd1YWdlKGxhbmd1YWdlTmFtZSk7XG4gICAgaWYgKCFsYW5ndWFnZSkge1xuICAgICAgZXJyb3IoTEFOR1VBR0VfTk9UX0ZPVU5ELnJlcGxhY2UoXCJ7fVwiLCBsYW5ndWFnZU5hbWUpKTtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVW5rbm93biBsYW5ndWFnZTogXCInICsgbGFuZ3VhZ2VOYW1lICsgJ1wiJyk7XG4gICAgfVxuXG4gICAgY29uc3QgbWQgPSBjb21waWxlTGFuZ3VhZ2UobGFuZ3VhZ2UpO1xuICAgIGxldCByZXN1bHQgPSAnJztcbiAgICAvKiogQHR5cGUge0NvbXBpbGVkTW9kZX0gKi9cbiAgICBsZXQgdG9wID0gY29udGludWF0aW9uIHx8IG1kO1xuICAgIC8qKiBAdHlwZSBSZWNvcmQ8c3RyaW5nLENvbXBpbGVkTW9kZT4gKi9cbiAgICBjb25zdCBjb250aW51YXRpb25zID0ge307IC8vIGtlZXAgY29udGludWF0aW9ucyBmb3Igc3ViLWxhbmd1YWdlc1xuICAgIGNvbnN0IGVtaXR0ZXIgPSBuZXcgb3B0aW9ucy5fX2VtaXR0ZXIob3B0aW9ucyk7XG4gICAgcHJvY2Vzc0NvbnRpbnVhdGlvbnMoKTtcbiAgICBsZXQgbW9kZUJ1ZmZlciA9ICcnO1xuICAgIGxldCByZWxldmFuY2UgPSAwO1xuICAgIGxldCBpbmRleCA9IDA7XG4gICAgbGV0IGl0ZXJhdGlvbnMgPSAwO1xuICAgIGxldCByZXN1bWVTY2FuQXRTYW1lUG9zaXRpb24gPSBmYWxzZTtcblxuICAgIHRyeSB7XG4gICAgICBpZiAoIWxhbmd1YWdlLl9fZW1pdFRva2Vucykge1xuICAgICAgICB0b3AubWF0Y2hlci5jb25zaWRlckFsbCgpO1xuXG4gICAgICAgIGZvciAoOzspIHtcbiAgICAgICAgICBpdGVyYXRpb25zKys7XG4gICAgICAgICAgaWYgKHJlc3VtZVNjYW5BdFNhbWVQb3NpdGlvbikge1xuICAgICAgICAgICAgLy8gb25seSByZWdleGVzIG5vdCBtYXRjaGVkIHByZXZpb3VzbHkgd2lsbCBub3cgYmVcbiAgICAgICAgICAgIC8vIGNvbnNpZGVyZWQgZm9yIGEgcG90ZW50aWFsIG1hdGNoXG4gICAgICAgICAgICByZXN1bWVTY2FuQXRTYW1lUG9zaXRpb24gPSBmYWxzZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdG9wLm1hdGNoZXIuY29uc2lkZXJBbGwoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdG9wLm1hdGNoZXIubGFzdEluZGV4ID0gaW5kZXg7XG5cbiAgICAgICAgICBjb25zdCBtYXRjaCA9IHRvcC5tYXRjaGVyLmV4ZWMoY29kZVRvSGlnaGxpZ2h0KTtcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIm1hdGNoXCIsIG1hdGNoWzBdLCBtYXRjaC5ydWxlICYmIG1hdGNoLnJ1bGUuYmVnaW4pXG5cbiAgICAgICAgICBpZiAoIW1hdGNoKSBicmVhaztcblxuICAgICAgICAgIGNvbnN0IGJlZm9yZU1hdGNoID0gY29kZVRvSGlnaGxpZ2h0LnN1YnN0cmluZyhpbmRleCwgbWF0Y2guaW5kZXgpO1xuICAgICAgICAgIGNvbnN0IHByb2Nlc3NlZENvdW50ID0gcHJvY2Vzc0xleGVtZShiZWZvcmVNYXRjaCwgbWF0Y2gpO1xuICAgICAgICAgIGluZGV4ID0gbWF0Y2guaW5kZXggKyBwcm9jZXNzZWRDb3VudDtcbiAgICAgICAgfVxuICAgICAgICBwcm9jZXNzTGV4ZW1lKGNvZGVUb0hpZ2hsaWdodC5zdWJzdHJpbmcoaW5kZXgpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxhbmd1YWdlLl9fZW1pdFRva2Vucyhjb2RlVG9IaWdobGlnaHQsIGVtaXR0ZXIpO1xuICAgICAgfVxuXG4gICAgICBlbWl0dGVyLmZpbmFsaXplKCk7XG4gICAgICByZXN1bHQgPSBlbWl0dGVyLnRvSFRNTCgpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBsYW5ndWFnZTogbGFuZ3VhZ2VOYW1lLFxuICAgICAgICB2YWx1ZTogcmVzdWx0LFxuICAgICAgICByZWxldmFuY2UsXG4gICAgICAgIGlsbGVnYWw6IGZhbHNlLFxuICAgICAgICBfZW1pdHRlcjogZW1pdHRlcixcbiAgICAgICAgX3RvcDogdG9wXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgaWYgKGVyci5tZXNzYWdlICYmIGVyci5tZXNzYWdlLmluY2x1ZGVzKCdJbGxlZ2FsJykpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBsYW5ndWFnZTogbGFuZ3VhZ2VOYW1lLFxuICAgICAgICAgIHZhbHVlOiBlc2NhcGUoY29kZVRvSGlnaGxpZ2h0KSxcbiAgICAgICAgICBpbGxlZ2FsOiB0cnVlLFxuICAgICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgICBfaWxsZWdhbEJ5OiB7XG4gICAgICAgICAgICBtZXNzYWdlOiBlcnIubWVzc2FnZSxcbiAgICAgICAgICAgIGluZGV4LFxuICAgICAgICAgICAgY29udGV4dDogY29kZVRvSGlnaGxpZ2h0LnNsaWNlKGluZGV4IC0gMTAwLCBpbmRleCArIDEwMCksXG4gICAgICAgICAgICBtb2RlOiBlcnIubW9kZSxcbiAgICAgICAgICAgIHJlc3VsdFNvRmFyOiByZXN1bHRcbiAgICAgICAgICB9LFxuICAgICAgICAgIF9lbWl0dGVyOiBlbWl0dGVyXG4gICAgICAgIH07XG4gICAgICB9IGVsc2UgaWYgKFNBRkVfTU9ERSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGxhbmd1YWdlOiBsYW5ndWFnZU5hbWUsXG4gICAgICAgICAgdmFsdWU6IGVzY2FwZShjb2RlVG9IaWdobGlnaHQpLFxuICAgICAgICAgIGlsbGVnYWw6IGZhbHNlLFxuICAgICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgICBlcnJvclJhaXNlZDogZXJyLFxuICAgICAgICAgIF9lbWl0dGVyOiBlbWl0dGVyLFxuICAgICAgICAgIF90b3A6IHRvcFxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiByZXR1cm5zIGEgdmFsaWQgaGlnaGxpZ2h0IHJlc3VsdCwgd2l0aG91dCBhY3R1YWxseSBkb2luZyBhbnkgYWN0dWFsIHdvcmssXG4gICAqIGF1dG8gaGlnaGxpZ2h0IHN0YXJ0cyB3aXRoIHRoaXMgYW5kIGl0J3MgcG9zc2libGUgZm9yIHNtYWxsIHNuaXBwZXRzIHRoYXRcbiAgICogYXV0by1kZXRlY3Rpb24gbWF5IG5vdCBmaW5kIGEgYmV0dGVyIG1hdGNoXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjb2RlXG4gICAqIEByZXR1cm5zIHtIaWdobGlnaHRSZXN1bHR9XG4gICAqL1xuICBmdW5jdGlvbiBqdXN0VGV4dEhpZ2hsaWdodFJlc3VsdChjb2RlKSB7XG4gICAgY29uc3QgcmVzdWx0ID0ge1xuICAgICAgdmFsdWU6IGVzY2FwZShjb2RlKSxcbiAgICAgIGlsbGVnYWw6IGZhbHNlLFxuICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgX3RvcDogUExBSU5URVhUX0xBTkdVQUdFLFxuICAgICAgX2VtaXR0ZXI6IG5ldyBvcHRpb25zLl9fZW1pdHRlcihvcHRpb25zKVxuICAgIH07XG4gICAgcmVzdWx0Ll9lbWl0dGVyLmFkZFRleHQoY29kZSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICBIaWdobGlnaHRpbmcgd2l0aCBsYW5ndWFnZSBkZXRlY3Rpb24uIEFjY2VwdHMgYSBzdHJpbmcgd2l0aCB0aGUgY29kZSB0b1xuICBoaWdobGlnaHQuIFJldHVybnMgYW4gb2JqZWN0IHdpdGggdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzOlxuXG4gIC0gbGFuZ3VhZ2UgKGRldGVjdGVkIGxhbmd1YWdlKVxuICAtIHJlbGV2YW5jZSAoaW50KVxuICAtIHZhbHVlIChhbiBIVE1MIHN0cmluZyB3aXRoIGhpZ2hsaWdodGluZyBtYXJrdXApXG4gIC0gc2Vjb25kQmVzdCAob2JqZWN0IHdpdGggdGhlIHNhbWUgc3RydWN0dXJlIGZvciBzZWNvbmQtYmVzdCBoZXVyaXN0aWNhbGx5XG4gICAgZGV0ZWN0ZWQgbGFuZ3VhZ2UsIG1heSBiZSBhYnNlbnQpXG5cbiAgICBAcGFyYW0ge3N0cmluZ30gY29kZVxuICAgIEBwYXJhbSB7QXJyYXk8c3RyaW5nPn0gW2xhbmd1YWdlU3Vic2V0XVxuICAgIEByZXR1cm5zIHtBdXRvSGlnaGxpZ2h0UmVzdWx0fVxuICAqL1xuICBmdW5jdGlvbiBoaWdobGlnaHRBdXRvKGNvZGUsIGxhbmd1YWdlU3Vic2V0KSB7XG4gICAgbGFuZ3VhZ2VTdWJzZXQgPSBsYW5ndWFnZVN1YnNldCB8fCBvcHRpb25zLmxhbmd1YWdlcyB8fCBPYmplY3Qua2V5cyhsYW5ndWFnZXMpO1xuICAgIGNvbnN0IHBsYWludGV4dCA9IGp1c3RUZXh0SGlnaGxpZ2h0UmVzdWx0KGNvZGUpO1xuXG4gICAgY29uc3QgcmVzdWx0cyA9IGxhbmd1YWdlU3Vic2V0LmZpbHRlcihnZXRMYW5ndWFnZSkuZmlsdGVyKGF1dG9EZXRlY3Rpb24pLm1hcChuYW1lID0+XG4gICAgICBfaGlnaGxpZ2h0KG5hbWUsIGNvZGUsIGZhbHNlKVxuICAgICk7XG4gICAgcmVzdWx0cy51bnNoaWZ0KHBsYWludGV4dCk7IC8vIHBsYWludGV4dCBpcyBhbHdheXMgYW4gb3B0aW9uXG5cbiAgICBjb25zdCBzb3J0ZWQgPSByZXN1bHRzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgIC8vIHNvcnQgYmFzZSBvbiByZWxldmFuY2VcbiAgICAgIGlmIChhLnJlbGV2YW5jZSAhPT0gYi5yZWxldmFuY2UpIHJldHVybiBiLnJlbGV2YW5jZSAtIGEucmVsZXZhbmNlO1xuXG4gICAgICAvLyBhbHdheXMgYXdhcmQgdGhlIHRpZSB0byB0aGUgYmFzZSBsYW5ndWFnZVxuICAgICAgLy8gaWUgaWYgQysrIGFuZCBBcmR1aW5vIGFyZSB0aWVkLCBpdCdzIG1vcmUgbGlrZWx5IHRvIGJlIEMrK1xuICAgICAgaWYgKGEubGFuZ3VhZ2UgJiYgYi5sYW5ndWFnZSkge1xuICAgICAgICBpZiAoZ2V0TGFuZ3VhZ2UoYS5sYW5ndWFnZSkuc3VwZXJzZXRPZiA9PT0gYi5sYW5ndWFnZSkge1xuICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICB9IGVsc2UgaWYgKGdldExhbmd1YWdlKGIubGFuZ3VhZ2UpLnN1cGVyc2V0T2YgPT09IGEubGFuZ3VhZ2UpIHtcbiAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gb3RoZXJ3aXNlIHNheSB0aGV5IGFyZSBlcXVhbCwgd2hpY2ggaGFzIHRoZSBlZmZlY3Qgb2Ygc29ydGluZyBvblxuICAgICAgLy8gcmVsZXZhbmNlIHdoaWxlIHByZXNlcnZpbmcgdGhlIG9yaWdpbmFsIG9yZGVyaW5nIC0gd2hpY2ggaXMgaG93IHRpZXNcbiAgICAgIC8vIGhhdmUgaGlzdG9yaWNhbGx5IGJlZW4gc2V0dGxlZCwgaWUgdGhlIGxhbmd1YWdlIHRoYXQgY29tZXMgZmlyc3QgYWx3YXlzXG4gICAgICAvLyB3aW5zIGluIHRoZSBjYXNlIG9mIGEgdGllXG4gICAgICByZXR1cm4gMDtcbiAgICB9KTtcblxuICAgIGNvbnN0IFtiZXN0LCBzZWNvbmRCZXN0XSA9IHNvcnRlZDtcblxuICAgIC8qKiBAdHlwZSB7QXV0b0hpZ2hsaWdodFJlc3VsdH0gKi9cbiAgICBjb25zdCByZXN1bHQgPSBiZXN0O1xuICAgIHJlc3VsdC5zZWNvbmRCZXN0ID0gc2Vjb25kQmVzdDtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGRzIG5ldyBjbGFzcyBuYW1lIGZvciBibG9jayBnaXZlbiB0aGUgbGFuZ3VhZ2UgbmFtZVxuICAgKlxuICAgKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBlbGVtZW50XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbY3VycmVudExhbmddXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbcmVzdWx0TGFuZ11cbiAgICovXG4gIGZ1bmN0aW9uIHVwZGF0ZUNsYXNzTmFtZShlbGVtZW50LCBjdXJyZW50TGFuZywgcmVzdWx0TGFuZykge1xuICAgIGNvbnN0IGxhbmd1YWdlID0gKGN1cnJlbnRMYW5nICYmIGFsaWFzZXNbY3VycmVudExhbmddKSB8fCByZXN1bHRMYW5nO1xuXG4gICAgZWxlbWVudC5jbGFzc0xpc3QuYWRkKFwiaGxqc1wiKTtcbiAgICBlbGVtZW50LmNsYXNzTGlzdC5hZGQoYGxhbmd1YWdlLSR7bGFuZ3VhZ2V9YCk7XG4gIH1cblxuICAvKipcbiAgICogQXBwbGllcyBoaWdobGlnaHRpbmcgdG8gYSBET00gbm9kZSBjb250YWluaW5nIGNvZGUuXG4gICAqXG4gICAqIEBwYXJhbSB7SGlnaGxpZ2h0ZWRIVE1MRWxlbWVudH0gZWxlbWVudCAtIHRoZSBIVE1MIGVsZW1lbnQgdG8gaGlnaGxpZ2h0XG4gICovXG4gIGZ1bmN0aW9uIGhpZ2hsaWdodEVsZW1lbnQoZWxlbWVudCkge1xuICAgIC8qKiBAdHlwZSBIVE1MRWxlbWVudCAqL1xuICAgIGxldCBub2RlID0gbnVsbDtcbiAgICBjb25zdCBsYW5ndWFnZSA9IGJsb2NrTGFuZ3VhZ2UoZWxlbWVudCk7XG5cbiAgICBpZiAoc2hvdWxkTm90SGlnaGxpZ2h0KGxhbmd1YWdlKSkgcmV0dXJuO1xuXG4gICAgZmlyZShcImJlZm9yZTpoaWdobGlnaHRFbGVtZW50XCIsXG4gICAgICB7IGVsOiBlbGVtZW50LCBsYW5ndWFnZSB9KTtcblxuICAgIC8vIHdlIHNob3VsZCBiZSBhbGwgdGV4dCwgbm8gY2hpbGQgbm9kZXMgKHVuZXNjYXBlZCBIVE1MKSAtIHRoaXMgaXMgcG9zc2libHlcbiAgICAvLyBhbiBIVE1MIGluamVjdGlvbiBhdHRhY2sgLSBpdCdzIGxpa2VseSB0b28gbGF0ZSBpZiB0aGlzIGlzIGFscmVhZHkgaW5cbiAgICAvLyBwcm9kdWN0aW9uICh0aGUgY29kZSBoYXMgbGlrZWx5IGFscmVhZHkgZG9uZSBpdHMgZGFtYWdlIGJ5IHRoZSB0aW1lXG4gICAgLy8gd2UncmUgc2VlaW5nIGl0KS4uLiBidXQgd2UgeWVsbCBsb3VkbHkgYWJvdXQgdGhpcyBzbyB0aGF0IGhvcGVmdWxseSBpdCdzXG4gICAgLy8gbW9yZSBsaWtlbHkgdG8gYmUgY2F1Z2h0IGluIGRldmVsb3BtZW50IGJlZm9yZSBtYWtpbmcgaXQgdG8gcHJvZHVjdGlvblxuICAgIGlmIChlbGVtZW50LmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgIGlmICghb3B0aW9ucy5pZ25vcmVVbmVzY2FwZWRIVE1MKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcIk9uZSBvZiB5b3VyIGNvZGUgYmxvY2tzIGluY2x1ZGVzIHVuZXNjYXBlZCBIVE1MLiBUaGlzIGlzIGEgcG90ZW50aWFsbHkgc2VyaW91cyBzZWN1cml0eSByaXNrLlwiKTtcbiAgICAgICAgY29uc29sZS53YXJuKFwiaHR0cHM6Ly9naXRodWIuY29tL2hpZ2hsaWdodGpzL2hpZ2hsaWdodC5qcy93aWtpL3NlY3VyaXR5XCIpO1xuICAgICAgICBjb25zb2xlLndhcm4oXCJUaGUgZWxlbWVudCB3aXRoIHVuZXNjYXBlZCBIVE1MOlwiKTtcbiAgICAgICAgY29uc29sZS53YXJuKGVsZW1lbnQpO1xuICAgICAgfVxuICAgICAgaWYgKG9wdGlvbnMudGhyb3dVbmVzY2FwZWRIVE1MKSB7XG4gICAgICAgIGNvbnN0IGVyciA9IG5ldyBIVE1MSW5qZWN0aW9uRXJyb3IoXG4gICAgICAgICAgXCJPbmUgb2YgeW91ciBjb2RlIGJsb2NrcyBpbmNsdWRlcyB1bmVzY2FwZWQgSFRNTC5cIixcbiAgICAgICAgICBlbGVtZW50LmlubmVySFRNTFxuICAgICAgICApO1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbm9kZSA9IGVsZW1lbnQ7XG4gICAgY29uc3QgdGV4dCA9IG5vZGUudGV4dENvbnRlbnQ7XG4gICAgY29uc3QgcmVzdWx0ID0gbGFuZ3VhZ2UgPyBoaWdobGlnaHQodGV4dCwgeyBsYW5ndWFnZSwgaWdub3JlSWxsZWdhbHM6IHRydWUgfSkgOiBoaWdobGlnaHRBdXRvKHRleHQpO1xuXG4gICAgZWxlbWVudC5pbm5lckhUTUwgPSByZXN1bHQudmFsdWU7XG4gICAgdXBkYXRlQ2xhc3NOYW1lKGVsZW1lbnQsIGxhbmd1YWdlLCByZXN1bHQubGFuZ3VhZ2UpO1xuICAgIGVsZW1lbnQucmVzdWx0ID0ge1xuICAgICAgbGFuZ3VhZ2U6IHJlc3VsdC5sYW5ndWFnZSxcbiAgICAgIC8vIFRPRE86IHJlbW92ZSB3aXRoIHZlcnNpb24gMTEuMFxuICAgICAgcmU6IHJlc3VsdC5yZWxldmFuY2UsXG4gICAgICByZWxldmFuY2U6IHJlc3VsdC5yZWxldmFuY2VcbiAgICB9O1xuICAgIGlmIChyZXN1bHQuc2Vjb25kQmVzdCkge1xuICAgICAgZWxlbWVudC5zZWNvbmRCZXN0ID0ge1xuICAgICAgICBsYW5ndWFnZTogcmVzdWx0LnNlY29uZEJlc3QubGFuZ3VhZ2UsXG4gICAgICAgIHJlbGV2YW5jZTogcmVzdWx0LnNlY29uZEJlc3QucmVsZXZhbmNlXG4gICAgICB9O1xuICAgIH1cblxuICAgIGZpcmUoXCJhZnRlcjpoaWdobGlnaHRFbGVtZW50XCIsIHsgZWw6IGVsZW1lbnQsIHJlc3VsdCwgdGV4dCB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIGhpZ2hsaWdodC5qcyBnbG9iYWwgb3B0aW9ucyB3aXRoIHRoZSBwYXNzZWQgb3B0aW9uc1xuICAgKlxuICAgKiBAcGFyYW0ge1BhcnRpYWw8SExKU09wdGlvbnM+fSB1c2VyT3B0aW9uc1xuICAgKi9cbiAgZnVuY3Rpb24gY29uZmlndXJlKHVzZXJPcHRpb25zKSB7XG4gICAgb3B0aW9ucyA9IGluaGVyaXQob3B0aW9ucywgdXNlck9wdGlvbnMpO1xuICB9XG5cbiAgLy8gVE9ETzogcmVtb3ZlIHYxMiwgZGVwcmVjYXRlZFxuICBjb25zdCBpbml0SGlnaGxpZ2h0aW5nID0gKCkgPT4ge1xuICAgIGhpZ2hsaWdodEFsbCgpO1xuICAgIGRlcHJlY2F0ZWQoXCIxMC42LjBcIiwgXCJpbml0SGlnaGxpZ2h0aW5nKCkgZGVwcmVjYXRlZC4gIFVzZSBoaWdobGlnaHRBbGwoKSBub3cuXCIpO1xuICB9O1xuXG4gIC8vIFRPRE86IHJlbW92ZSB2MTIsIGRlcHJlY2F0ZWRcbiAgZnVuY3Rpb24gaW5pdEhpZ2hsaWdodGluZ09uTG9hZCgpIHtcbiAgICBoaWdobGlnaHRBbGwoKTtcbiAgICBkZXByZWNhdGVkKFwiMTAuNi4wXCIsIFwiaW5pdEhpZ2hsaWdodGluZ09uTG9hZCgpIGRlcHJlY2F0ZWQuICBVc2UgaGlnaGxpZ2h0QWxsKCkgbm93LlwiKTtcbiAgfVxuXG4gIGxldCB3YW50c0hpZ2hsaWdodCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBhdXRvLWhpZ2hsaWdodHMgYWxsIHByZT5jb2RlIGVsZW1lbnRzIG9uIHRoZSBwYWdlXG4gICAqL1xuICBmdW5jdGlvbiBoaWdobGlnaHRBbGwoKSB7XG4gICAgLy8gaWYgd2UgYXJlIGNhbGxlZCB0b28gZWFybHkgaW4gdGhlIGxvYWRpbmcgcHJvY2Vzc1xuICAgIGlmIChkb2N1bWVudC5yZWFkeVN0YXRlID09PSBcImxvYWRpbmdcIikge1xuICAgICAgd2FudHNIaWdobGlnaHQgPSB0cnVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGJsb2NrcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwob3B0aW9ucy5jc3NTZWxlY3Rvcik7XG4gICAgYmxvY2tzLmZvckVhY2goaGlnaGxpZ2h0RWxlbWVudCk7XG4gIH1cblxuICBmdW5jdGlvbiBib290KCkge1xuICAgIC8vIGlmIGEgaGlnaGxpZ2h0IHdhcyByZXF1ZXN0ZWQgYmVmb3JlIERPTSB3YXMgbG9hZGVkLCBkbyBub3dcbiAgICBpZiAod2FudHNIaWdobGlnaHQpIGhpZ2hsaWdodEFsbCgpO1xuICB9XG5cbiAgLy8gbWFrZSBzdXJlIHdlIGFyZSBpbiB0aGUgYnJvd3NlciBlbnZpcm9ubWVudFxuICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIpIHtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGJvb3QsIGZhbHNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlciBhIGxhbmd1YWdlIGdyYW1tYXIgbW9kdWxlXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBsYW5ndWFnZU5hbWVcbiAgICogQHBhcmFtIHtMYW5ndWFnZUZufSBsYW5ndWFnZURlZmluaXRpb25cbiAgICovXG4gIGZ1bmN0aW9uIHJlZ2lzdGVyTGFuZ3VhZ2UobGFuZ3VhZ2VOYW1lLCBsYW5ndWFnZURlZmluaXRpb24pIHtcbiAgICBsZXQgbGFuZyA9IG51bGw7XG4gICAgdHJ5IHtcbiAgICAgIGxhbmcgPSBsYW5ndWFnZURlZmluaXRpb24oaGxqcyk7XG4gICAgfSBjYXRjaCAoZXJyb3IkMSkge1xuICAgICAgZXJyb3IoXCJMYW5ndWFnZSBkZWZpbml0aW9uIGZvciAne30nIGNvdWxkIG5vdCBiZSByZWdpc3RlcmVkLlwiLnJlcGxhY2UoXCJ7fVwiLCBsYW5ndWFnZU5hbWUpKTtcbiAgICAgIC8vIGhhcmQgb3Igc29mdCBlcnJvclxuICAgICAgaWYgKCFTQUZFX01PREUpIHsgdGhyb3cgZXJyb3IkMTsgfSBlbHNlIHsgZXJyb3IoZXJyb3IkMSk7IH1cbiAgICAgIC8vIGxhbmd1YWdlcyB0aGF0IGhhdmUgc2VyaW91cyBlcnJvcnMgYXJlIHJlcGxhY2VkIHdpdGggZXNzZW50aWFsbHkgYVxuICAgICAgLy8gXCJwbGFpbnRleHRcIiBzdGFuZC1pbiBzbyB0aGF0IHRoZSBjb2RlIGJsb2NrcyB3aWxsIHN0aWxsIGdldCBub3JtYWxcbiAgICAgIC8vIGNzcyBjbGFzc2VzIGFwcGxpZWQgdG8gdGhlbSAtIGFuZCBvbmUgYmFkIGxhbmd1YWdlIHdvbid0IGJyZWFrIHRoZVxuICAgICAgLy8gZW50aXJlIGhpZ2hsaWdodGVyXG4gICAgICBsYW5nID0gUExBSU5URVhUX0xBTkdVQUdFO1xuICAgIH1cbiAgICAvLyBnaXZlIGl0IGEgdGVtcG9yYXJ5IG5hbWUgaWYgaXQgZG9lc24ndCBoYXZlIG9uZSBpbiB0aGUgbWV0YS1kYXRhXG4gICAgaWYgKCFsYW5nLm5hbWUpIGxhbmcubmFtZSA9IGxhbmd1YWdlTmFtZTtcbiAgICBsYW5ndWFnZXNbbGFuZ3VhZ2VOYW1lXSA9IGxhbmc7XG4gICAgbGFuZy5yYXdEZWZpbml0aW9uID0gbGFuZ3VhZ2VEZWZpbml0aW9uLmJpbmQobnVsbCwgaGxqcyk7XG5cbiAgICBpZiAobGFuZy5hbGlhc2VzKSB7XG4gICAgICByZWdpc3RlckFsaWFzZXMobGFuZy5hbGlhc2VzLCB7IGxhbmd1YWdlTmFtZSB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGEgbGFuZ3VhZ2UgZ3JhbW1hciBtb2R1bGVcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGxhbmd1YWdlTmFtZVxuICAgKi9cbiAgZnVuY3Rpb24gdW5yZWdpc3Rlckxhbmd1YWdlKGxhbmd1YWdlTmFtZSkge1xuICAgIGRlbGV0ZSBsYW5ndWFnZXNbbGFuZ3VhZ2VOYW1lXTtcbiAgICBmb3IgKGNvbnN0IGFsaWFzIG9mIE9iamVjdC5rZXlzKGFsaWFzZXMpKSB7XG4gICAgICBpZiAoYWxpYXNlc1thbGlhc10gPT09IGxhbmd1YWdlTmFtZSkge1xuICAgICAgICBkZWxldGUgYWxpYXNlc1thbGlhc107XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtzdHJpbmdbXX0gTGlzdCBvZiBsYW5ndWFnZSBpbnRlcm5hbCBuYW1lc1xuICAgKi9cbiAgZnVuY3Rpb24gbGlzdExhbmd1YWdlcygpIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMobGFuZ3VhZ2VzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAtIG5hbWUgb2YgdGhlIGxhbmd1YWdlIHRvIHJldHJpZXZlXG4gICAqIEByZXR1cm5zIHtMYW5ndWFnZSB8IHVuZGVmaW5lZH1cbiAgICovXG4gIGZ1bmN0aW9uIGdldExhbmd1YWdlKG5hbWUpIHtcbiAgICBuYW1lID0gKG5hbWUgfHwgJycpLnRvTG93ZXJDYXNlKCk7XG4gICAgcmV0dXJuIGxhbmd1YWdlc1tuYW1lXSB8fCBsYW5ndWFnZXNbYWxpYXNlc1tuYW1lXV07XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd8c3RyaW5nW119IGFsaWFzTGlzdCAtIHNpbmdsZSBhbGlhcyBvciBsaXN0IG9mIGFsaWFzZXNcbiAgICogQHBhcmFtIHt7bGFuZ3VhZ2VOYW1lOiBzdHJpbmd9fSBvcHRzXG4gICAqL1xuICBmdW5jdGlvbiByZWdpc3RlckFsaWFzZXMoYWxpYXNMaXN0LCB7IGxhbmd1YWdlTmFtZSB9KSB7XG4gICAgaWYgKHR5cGVvZiBhbGlhc0xpc3QgPT09ICdzdHJpbmcnKSB7XG4gICAgICBhbGlhc0xpc3QgPSBbYWxpYXNMaXN0XTtcbiAgICB9XG4gICAgYWxpYXNMaXN0LmZvckVhY2goYWxpYXMgPT4geyBhbGlhc2VzW2FsaWFzLnRvTG93ZXJDYXNlKCldID0gbGFuZ3VhZ2VOYW1lOyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIGEgZ2l2ZW4gbGFuZ3VhZ2UgaGFzIGF1dG8tZGV0ZWN0aW9uIGVuYWJsZWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgLSBuYW1lIG9mIHRoZSBsYW5ndWFnZVxuICAgKi9cbiAgZnVuY3Rpb24gYXV0b0RldGVjdGlvbihuYW1lKSB7XG4gICAgY29uc3QgbGFuZyA9IGdldExhbmd1YWdlKG5hbWUpO1xuICAgIHJldHVybiBsYW5nICYmICFsYW5nLmRpc2FibGVBdXRvZGV0ZWN0O1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZ3JhZGVzIHRoZSBvbGQgaGlnaGxpZ2h0QmxvY2sgcGx1Z2lucyB0byB0aGUgbmV3XG4gICAqIGhpZ2hsaWdodEVsZW1lbnQgQVBJXG4gICAqIEBwYXJhbSB7SExKU1BsdWdpbn0gcGx1Z2luXG4gICAqL1xuICBmdW5jdGlvbiB1cGdyYWRlUGx1Z2luQVBJKHBsdWdpbikge1xuICAgIC8vIFRPRE86IHJlbW92ZSB3aXRoIHYxMlxuICAgIGlmIChwbHVnaW5bXCJiZWZvcmU6aGlnaGxpZ2h0QmxvY2tcIl0gJiYgIXBsdWdpbltcImJlZm9yZTpoaWdobGlnaHRFbGVtZW50XCJdKSB7XG4gICAgICBwbHVnaW5bXCJiZWZvcmU6aGlnaGxpZ2h0RWxlbWVudFwiXSA9IChkYXRhKSA9PiB7XG4gICAgICAgIHBsdWdpbltcImJlZm9yZTpoaWdobGlnaHRCbG9ja1wiXShcbiAgICAgICAgICBPYmplY3QuYXNzaWduKHsgYmxvY2s6IGRhdGEuZWwgfSwgZGF0YSlcbiAgICAgICAgKTtcbiAgICAgIH07XG4gICAgfVxuICAgIGlmIChwbHVnaW5bXCJhZnRlcjpoaWdobGlnaHRCbG9ja1wiXSAmJiAhcGx1Z2luW1wiYWZ0ZXI6aGlnaGxpZ2h0RWxlbWVudFwiXSkge1xuICAgICAgcGx1Z2luW1wiYWZ0ZXI6aGlnaGxpZ2h0RWxlbWVudFwiXSA9IChkYXRhKSA9PiB7XG4gICAgICAgIHBsdWdpbltcImFmdGVyOmhpZ2hsaWdodEJsb2NrXCJdKFxuICAgICAgICAgIE9iamVjdC5hc3NpZ24oeyBibG9jazogZGF0YS5lbCB9LCBkYXRhKVxuICAgICAgICApO1xuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtITEpTUGx1Z2lufSBwbHVnaW5cbiAgICovXG4gIGZ1bmN0aW9uIGFkZFBsdWdpbihwbHVnaW4pIHtcbiAgICB1cGdyYWRlUGx1Z2luQVBJKHBsdWdpbik7XG4gICAgcGx1Z2lucy5wdXNoKHBsdWdpbik7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtITEpTUGx1Z2lufSBwbHVnaW5cbiAgICovXG4gIGZ1bmN0aW9uIHJlbW92ZVBsdWdpbihwbHVnaW4pIHtcbiAgICBjb25zdCBpbmRleCA9IHBsdWdpbnMuaW5kZXhPZihwbHVnaW4pO1xuICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgIHBsdWdpbnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHtQbHVnaW5FdmVudH0gZXZlbnRcbiAgICogQHBhcmFtIHthbnl9IGFyZ3NcbiAgICovXG4gIGZ1bmN0aW9uIGZpcmUoZXZlbnQsIGFyZ3MpIHtcbiAgICBjb25zdCBjYiA9IGV2ZW50O1xuICAgIHBsdWdpbnMuZm9yRWFjaChmdW5jdGlvbihwbHVnaW4pIHtcbiAgICAgIGlmIChwbHVnaW5bY2JdKSB7XG4gICAgICAgIHBsdWdpbltjYl0oYXJncyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogREVQUkVDQVRFRFxuICAgKiBAcGFyYW0ge0hpZ2hsaWdodGVkSFRNTEVsZW1lbnR9IGVsXG4gICAqL1xuICBmdW5jdGlvbiBkZXByZWNhdGVIaWdobGlnaHRCbG9jayhlbCkge1xuICAgIGRlcHJlY2F0ZWQoXCIxMC43LjBcIiwgXCJoaWdobGlnaHRCbG9jayB3aWxsIGJlIHJlbW92ZWQgZW50aXJlbHkgaW4gdjEyLjBcIik7XG4gICAgZGVwcmVjYXRlZChcIjEwLjcuMFwiLCBcIlBsZWFzZSB1c2UgaGlnaGxpZ2h0RWxlbWVudCBub3cuXCIpO1xuXG4gICAgcmV0dXJuIGhpZ2hsaWdodEVsZW1lbnQoZWwpO1xuICB9XG5cbiAgLyogSW50ZXJmYWNlIGRlZmluaXRpb24gKi9cbiAgT2JqZWN0LmFzc2lnbihobGpzLCB7XG4gICAgaGlnaGxpZ2h0LFxuICAgIGhpZ2hsaWdodEF1dG8sXG4gICAgaGlnaGxpZ2h0QWxsLFxuICAgIGhpZ2hsaWdodEVsZW1lbnQsXG4gICAgLy8gVE9ETzogUmVtb3ZlIHdpdGggdjEyIEFQSVxuICAgIGhpZ2hsaWdodEJsb2NrOiBkZXByZWNhdGVIaWdobGlnaHRCbG9jayxcbiAgICBjb25maWd1cmUsXG4gICAgaW5pdEhpZ2hsaWdodGluZyxcbiAgICBpbml0SGlnaGxpZ2h0aW5nT25Mb2FkLFxuICAgIHJlZ2lzdGVyTGFuZ3VhZ2UsXG4gICAgdW5yZWdpc3Rlckxhbmd1YWdlLFxuICAgIGxpc3RMYW5ndWFnZXMsXG4gICAgZ2V0TGFuZ3VhZ2UsXG4gICAgcmVnaXN0ZXJBbGlhc2VzLFxuICAgIGF1dG9EZXRlY3Rpb24sXG4gICAgaW5oZXJpdCxcbiAgICBhZGRQbHVnaW4sXG4gICAgcmVtb3ZlUGx1Z2luXG4gIH0pO1xuXG4gIGhsanMuZGVidWdNb2RlID0gZnVuY3Rpb24oKSB7IFNBRkVfTU9ERSA9IGZhbHNlOyB9O1xuICBobGpzLnNhZmVNb2RlID0gZnVuY3Rpb24oKSB7IFNBRkVfTU9ERSA9IHRydWU7IH07XG4gIGhsanMudmVyc2lvblN0cmluZyA9IHZlcnNpb247XG5cbiAgaGxqcy5yZWdleCA9IHtcbiAgICBjb25jYXQ6IGNvbmNhdCxcbiAgICBsb29rYWhlYWQ6IGxvb2thaGVhZCxcbiAgICBlaXRoZXI6IGVpdGhlcixcbiAgICBvcHRpb25hbDogb3B0aW9uYWwsXG4gICAgYW55TnVtYmVyT2ZUaW1lczogYW55TnVtYmVyT2ZUaW1lc1xuICB9O1xuXG4gIGZvciAoY29uc3Qga2V5IGluIE1PREVTKSB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGlmICh0eXBlb2YgTU9ERVNba2V5XSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgZGVlcEZyZWV6ZShNT0RFU1trZXldKTtcbiAgICB9XG4gIH1cblxuICAvLyBtZXJnZSBhbGwgdGhlIG1vZGVzL3JlZ2V4ZXMgaW50byBvdXIgbWFpbiBvYmplY3RcbiAgT2JqZWN0LmFzc2lnbihobGpzLCBNT0RFUyk7XG5cbiAgcmV0dXJuIGhsanM7XG59O1xuXG4vLyBPdGhlciBuYW1lcyBmb3IgdGhlIHZhcmlhYmxlIG1heSBicmVhayBidWlsZCBzY3JpcHRcbmNvbnN0IGhpZ2hsaWdodCA9IEhMSlMoe30pO1xuXG4vLyByZXR1cm5zIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBoaWdobGlnaHRlciB0byBiZSB1c2VkIGZvciBleHRlbnNpb25zXG4vLyBjaGVjayBodHRwczovL2dpdGh1Yi5jb20vd29vb3JtL2xvd2xpZ2h0L2lzc3Vlcy80N1xuaGlnaGxpZ2h0Lm5ld0luc3RhbmNlID0gKCkgPT4gSExKUyh7fSk7XG5cbm1vZHVsZS5leHBvcnRzID0gaGlnaGxpZ2h0O1xuaGlnaGxpZ2h0LkhpZ2hsaWdodEpTID0gaGlnaGxpZ2h0O1xuaGlnaGxpZ2h0LmRlZmF1bHQgPSBoaWdobGlnaHQ7XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///33\n");
  1213. /***/ }),
  1214. /* 34 */
  1215. /*!****************************************************************!*\
  1216. !*** ./node_modules/@babel/runtime/helpers/wrapNativeSuper.js ***!
  1217. \****************************************************************/
  1218. /*! no static exports found */
  1219. /***/ (function(module, exports, __webpack_require__) {
  1220. var getPrototypeOf = __webpack_require__(/*! ./getPrototypeOf.js */ 35);
  1221. var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ 36);
  1222. var isNativeFunction = __webpack_require__(/*! ./isNativeFunction.js */ 37);
  1223. var construct = __webpack_require__(/*! ./construct.js */ 38);
  1224. function _wrapNativeSuper(Class) {
  1225. var _cache = typeof Map === "function" ? new Map() : undefined;
  1226. module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {
  1227. if (Class === null || !isNativeFunction(Class)) return Class;
  1228. if (typeof Class !== "function") {
  1229. throw new TypeError("Super expression must either be null or a function");
  1230. }
  1231. if (typeof _cache !== "undefined") {
  1232. if (_cache.has(Class)) return _cache.get(Class);
  1233. _cache.set(Class, Wrapper);
  1234. }
  1235. function Wrapper() {
  1236. return construct(Class, arguments, getPrototypeOf(this).constructor);
  1237. }
  1238. Wrapper.prototype = Object.create(Class.prototype, {
  1239. constructor: {
  1240. value: Wrapper,
  1241. enumerable: false,
  1242. writable: true,
  1243. configurable: true
  1244. }
  1245. });
  1246. return setPrototypeOf(Wrapper, Class);
  1247. }, module.exports.__esModule = true, module.exports["default"] = module.exports;
  1248. return _wrapNativeSuper(Class);
  1249. }
  1250. module.exports = _wrapNativeSuper, module.exports.__esModule = true, module.exports["default"] = module.exports;
  1251. /***/ }),
  1252. /* 35 */
  1253. /*!***************************************************************!*\
  1254. !*** ./node_modules/@babel/runtime/helpers/getPrototypeOf.js ***!
  1255. \***************************************************************/
  1256. /*! no static exports found */
  1257. /***/ (function(module, exports) {
  1258. function _getPrototypeOf(o) {
  1259. module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {
  1260. return o.__proto__ || Object.getPrototypeOf(o);
  1261. }, module.exports.__esModule = true, module.exports["default"] = module.exports;
  1262. return _getPrototypeOf(o);
  1263. }
  1264. module.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports;
  1265. /***/ }),
  1266. /* 36 */
  1267. /*!***************************************************************!*\
  1268. !*** ./node_modules/@babel/runtime/helpers/setPrototypeOf.js ***!
  1269. \***************************************************************/
  1270. /*! no static exports found */
  1271. /***/ (function(module, exports) {
  1272. function _setPrototypeOf(o, p) {
  1273. module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {
  1274. o.__proto__ = p;
  1275. return o;
  1276. }, module.exports.__esModule = true, module.exports["default"] = module.exports;
  1277. return _setPrototypeOf(o, p);
  1278. }
  1279. module.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports;
  1280. /***/ }),
  1281. /* 37 */
  1282. /*!*****************************************************************!*\
  1283. !*** ./node_modules/@babel/runtime/helpers/isNativeFunction.js ***!
  1284. \*****************************************************************/
  1285. /*! no static exports found */
  1286. /***/ (function(module, exports) {
  1287. function _isNativeFunction(fn) {
  1288. return Function.toString.call(fn).indexOf("[native code]") !== -1;
  1289. }
  1290. module.exports = _isNativeFunction, module.exports.__esModule = true, module.exports["default"] = module.exports;
  1291. /***/ }),
  1292. /* 38 */
  1293. /*!**********************************************************!*\
  1294. !*** ./node_modules/@babel/runtime/helpers/construct.js ***!
  1295. \**********************************************************/
  1296. /*! no static exports found */
  1297. /***/ (function(module, exports, __webpack_require__) {
  1298. var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ 36);
  1299. var isNativeReflectConstruct = __webpack_require__(/*! ./isNativeReflectConstruct.js */ 39);
  1300. function _construct(Parent, args, Class) {
  1301. if (isNativeReflectConstruct()) {
  1302. module.exports = _construct = Reflect.construct.bind(), module.exports.__esModule = true, module.exports["default"] = module.exports;
  1303. } else {
  1304. module.exports = _construct = function _construct(Parent, args, Class) {
  1305. var a = [null];
  1306. a.push.apply(a, args);
  1307. var Constructor = Function.bind.apply(Parent, a);
  1308. var instance = new Constructor();
  1309. if (Class) setPrototypeOf(instance, Class.prototype);
  1310. return instance;
  1311. }, module.exports.__esModule = true, module.exports["default"] = module.exports;
  1312. }
  1313. return _construct.apply(null, arguments);
  1314. }
  1315. module.exports = _construct, module.exports.__esModule = true, module.exports["default"] = module.exports;
  1316. /***/ }),
  1317. /* 39 */
  1318. /*!*************************************************************************!*\
  1319. !*** ./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js ***!
  1320. \*************************************************************************/
  1321. /*! no static exports found */
  1322. /***/ (function(module, exports) {
  1323. function _isNativeReflectConstruct() {
  1324. if (typeof Reflect === "undefined" || !Reflect.construct) return false;
  1325. if (Reflect.construct.sham) return false;
  1326. if (typeof Proxy === "function") return true;
  1327. try {
  1328. Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
  1329. return true;
  1330. } catch (e) {
  1331. return false;
  1332. }
  1333. }
  1334. module.exports = _isNativeReflectConstruct, module.exports.__esModule = true, module.exports["default"] = module.exports;
  1335. /***/ }),
  1336. /* 40 */
  1337. /*!**************************************************************!*\
  1338. !*** ./node_modules/@babel/runtime/helpers/slicedToArray.js ***!
  1339. \**************************************************************/
  1340. /*! no static exports found */
  1341. /***/ (function(module, exports, __webpack_require__) {
  1342. var arrayWithHoles = __webpack_require__(/*! ./arrayWithHoles.js */ 41);
  1343. var iterableToArrayLimit = __webpack_require__(/*! ./iterableToArrayLimit.js */ 42);
  1344. var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ 43);
  1345. var nonIterableRest = __webpack_require__(/*! ./nonIterableRest.js */ 45);
  1346. function _slicedToArray(arr, i) {
  1347. return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();
  1348. }
  1349. module.exports = _slicedToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
  1350. /***/ }),
  1351. /* 41 */
  1352. /*!***************************************************************!*\
  1353. !*** ./node_modules/@babel/runtime/helpers/arrayWithHoles.js ***!
  1354. \***************************************************************/
  1355. /*! no static exports found */
  1356. /***/ (function(module, exports) {
  1357. function _arrayWithHoles(arr) {
  1358. if (Array.isArray(arr)) return arr;
  1359. }
  1360. module.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;
  1361. /***/ }),
  1362. /* 42 */
  1363. /*!*********************************************************************!*\
  1364. !*** ./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js ***!
  1365. \*********************************************************************/
  1366. /*! no static exports found */
  1367. /***/ (function(module, exports) {
  1368. function _iterableToArrayLimit(arr, i) {
  1369. var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"];
  1370. if (null != _i) {
  1371. var _s,
  1372. _e,
  1373. _x,
  1374. _r,
  1375. _arr = [],
  1376. _n = !0,
  1377. _d = !1;
  1378. try {
  1379. if (_x = (_i = _i.call(arr)).next, 0 === i) {
  1380. if (Object(_i) !== _i) return;
  1381. _n = !1;
  1382. } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0) {
  1383. ;
  1384. }
  1385. } catch (err) {
  1386. _d = !0, _e = err;
  1387. } finally {
  1388. try {
  1389. if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return;
  1390. } finally {
  1391. if (_d) throw _e;
  1392. }
  1393. }
  1394. return _arr;
  1395. }
  1396. }
  1397. module.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports["default"] = module.exports;
  1398. /***/ }),
  1399. /* 43 */
  1400. /*!***************************************************************************!*\
  1401. !*** ./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js ***!
  1402. \***************************************************************************/
  1403. /*! no static exports found */
  1404. /***/ (function(module, exports, __webpack_require__) {
  1405. var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ 44);
  1406. function _unsupportedIterableToArray(o, minLen) {
  1407. if (!o) return;
  1408. if (typeof o === "string") return arrayLikeToArray(o, minLen);
  1409. var n = Object.prototype.toString.call(o).slice(8, -1);
  1410. if (n === "Object" && o.constructor) n = o.constructor.name;
  1411. if (n === "Map" || n === "Set") return Array.from(o);
  1412. if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);
  1413. }
  1414. module.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
  1415. /***/ }),
  1416. /* 44 */
  1417. /*!*****************************************************************!*\
  1418. !*** ./node_modules/@babel/runtime/helpers/arrayLikeToArray.js ***!
  1419. \*****************************************************************/
  1420. /*! no static exports found */
  1421. /***/ (function(module, exports) {
  1422. function _arrayLikeToArray(arr, len) {
  1423. if (len == null || len > arr.length) len = arr.length;
  1424. for (var i = 0, arr2 = new Array(len); i < len; i++) {
  1425. arr2[i] = arr[i];
  1426. }
  1427. return arr2;
  1428. }
  1429. module.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
  1430. /***/ }),
  1431. /* 45 */
  1432. /*!****************************************************************!*\
  1433. !*** ./node_modules/@babel/runtime/helpers/nonIterableRest.js ***!
  1434. \****************************************************************/
  1435. /*! no static exports found */
  1436. /***/ (function(module, exports) {
  1437. function _nonIterableRest() {
  1438. throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
  1439. }
  1440. module.exports = _nonIterableRest, module.exports.__esModule = true, module.exports["default"] = module.exports;
  1441. /***/ }),
  1442. /* 46 */
  1443. /*!*********************************************************!*\
  1444. !*** ./node_modules/@babel/runtime/helpers/inherits.js ***!
  1445. \*********************************************************/
  1446. /*! no static exports found */
  1447. /***/ (function(module, exports, __webpack_require__) {
  1448. var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ 36);
  1449. function _inherits(subClass, superClass) {
  1450. if (typeof superClass !== "function" && superClass !== null) {
  1451. throw new TypeError("Super expression must either be null or a function");
  1452. }
  1453. subClass.prototype = Object.create(superClass && superClass.prototype, {
  1454. constructor: {
  1455. value: subClass,
  1456. writable: true,
  1457. configurable: true
  1458. }
  1459. });
  1460. Object.defineProperty(subClass, "prototype", {
  1461. writable: false
  1462. });
  1463. if (superClass) setPrototypeOf(subClass, superClass);
  1464. }
  1465. module.exports = _inherits, module.exports.__esModule = true, module.exports["default"] = module.exports;
  1466. /***/ }),
  1467. /* 47 */
  1468. /*!**************************************************************************!*\
  1469. !*** ./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js ***!
  1470. \**************************************************************************/
  1471. /*! no static exports found */
  1472. /***/ (function(module, exports, __webpack_require__) {
  1473. var _typeof = __webpack_require__(/*! ./typeof.js */ 4)["default"];
  1474. var assertThisInitialized = __webpack_require__(/*! ./assertThisInitialized.js */ 48);
  1475. function _possibleConstructorReturn(self, call) {
  1476. if (call && (_typeof(call) === "object" || typeof call === "function")) {
  1477. return call;
  1478. } else if (call !== void 0) {
  1479. throw new TypeError("Derived constructors may only return object or undefined");
  1480. }
  1481. return assertThisInitialized(self);
  1482. }
  1483. module.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports["default"] = module.exports;
  1484. /***/ }),
  1485. /* 48 */
  1486. /*!**********************************************************************!*\
  1487. !*** ./node_modules/@babel/runtime/helpers/assertThisInitialized.js ***!
  1488. \**********************************************************************/
  1489. /*! no static exports found */
  1490. /***/ (function(module, exports) {
  1491. function _assertThisInitialized(self) {
  1492. if (self === void 0) {
  1493. throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  1494. }
  1495. return self;
  1496. }
  1497. module.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports["default"] = module.exports;
  1498. /***/ }),
  1499. /* 49 */
  1500. /*!******************************************************************!*\
  1501. !*** ./node_modules/@babel/runtime/helpers/toConsumableArray.js ***!
  1502. \******************************************************************/
  1503. /*! no static exports found */
  1504. /***/ (function(module, exports, __webpack_require__) {
  1505. var arrayWithoutHoles = __webpack_require__(/*! ./arrayWithoutHoles.js */ 50);
  1506. var iterableToArray = __webpack_require__(/*! ./iterableToArray.js */ 51);
  1507. var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ 43);
  1508. var nonIterableSpread = __webpack_require__(/*! ./nonIterableSpread.js */ 52);
  1509. function _toConsumableArray(arr) {
  1510. return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();
  1511. }
  1512. module.exports = _toConsumableArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
  1513. /***/ }),
  1514. /* 50 */
  1515. /*!******************************************************************!*\
  1516. !*** ./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js ***!
  1517. \******************************************************************/
  1518. /*! no static exports found */
  1519. /***/ (function(module, exports, __webpack_require__) {
  1520. var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ 44);
  1521. function _arrayWithoutHoles(arr) {
  1522. if (Array.isArray(arr)) return arrayLikeToArray(arr);
  1523. }
  1524. module.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;
  1525. /***/ }),
  1526. /* 51 */
  1527. /*!****************************************************************!*\
  1528. !*** ./node_modules/@babel/runtime/helpers/iterableToArray.js ***!
  1529. \****************************************************************/
  1530. /*! no static exports found */
  1531. /***/ (function(module, exports) {
  1532. function _iterableToArray(iter) {
  1533. if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
  1534. }
  1535. module.exports = _iterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
  1536. /***/ }),
  1537. /* 52 */
  1538. /*!******************************************************************!*\
  1539. !*** ./node_modules/@babel/runtime/helpers/nonIterableSpread.js ***!
  1540. \******************************************************************/
  1541. /*! no static exports found */
  1542. /***/ (function(module, exports) {
  1543. function _nonIterableSpread() {
  1544. throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
  1545. }
  1546. module.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports["default"] = module.exports;
  1547. /***/ }),
  1548. /* 53 */
  1549. /*!***************************************************************!*\
  1550. !*** ./node_modules/@babel/runtime/helpers/classCallCheck.js ***!
  1551. \***************************************************************/
  1552. /*! no static exports found */
  1553. /***/ (function(module, exports) {
  1554. function _classCallCheck(instance, Constructor) {
  1555. if (!(instance instanceof Constructor)) {
  1556. throw new TypeError("Cannot call a class as a function");
  1557. }
  1558. }
  1559. module.exports = _classCallCheck, module.exports.__esModule = true, module.exports["default"] = module.exports;
  1560. /***/ }),
  1561. /* 54 */
  1562. /*!************************************************************!*\
  1563. !*** ./node_modules/@babel/runtime/helpers/createClass.js ***!
  1564. \************************************************************/
  1565. /*! no static exports found */
  1566. /***/ (function(module, exports, __webpack_require__) {
  1567. var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ 3);
  1568. function _defineProperties(target, props) {
  1569. for (var i = 0; i < props.length; i++) {
  1570. var descriptor = props[i];
  1571. descriptor.enumerable = descriptor.enumerable || false;
  1572. descriptor.configurable = true;
  1573. if ("value" in descriptor) descriptor.writable = true;
  1574. Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);
  1575. }
  1576. }
  1577. function _createClass(Constructor, protoProps, staticProps) {
  1578. if (protoProps) _defineProperties(Constructor.prototype, protoProps);
  1579. if (staticProps) _defineProperties(Constructor, staticProps);
  1580. Object.defineProperty(Constructor, "prototype", {
  1581. writable: false
  1582. });
  1583. return Constructor;
  1584. }
  1585. module.exports = _createClass, module.exports.__esModule = true, module.exports["default"] = module.exports;
  1586. /***/ }),
  1587. /* 55 */
  1588. /*!******************************************************************************************************!*\
  1589. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/highlight.js/lib/languages/xml.js ***!
  1590. \******************************************************************************************************/
  1591. /*! no static exports found */
  1592. /***/ (function(module, exports) {
  1593. eval("/*\nLanguage: HTML, XML\nWebsite: https://www.w3.org/XML/\nCategory: common, web\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction xml(hljs) {\n var regex = hljs.regex;\n // XML names can have the following additional letters: https://www.w3.org/TR/xml/#NT-NameChar\n // OTHER_NAME_CHARS = /[:\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]/;\n // Element names start with NAME_START_CHAR followed by optional other Unicode letters, ASCII digits, hyphens, underscores, and periods\n // const TAG_NAME_RE = regex.concat(/[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/, regex.optional(/[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*:/), /[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*/);;\n // const XML_IDENT_RE = /[A-Z_a-z:\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]+/;\n // const TAG_NAME_RE = regex.concat(/[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/, regex.optional(/[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*:/), /[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*/);\n // however, to cater for performance and more Unicode support rely simply on the Unicode letter class\n var TAG_NAME_RE = regex.concat(/(?:[A-Z_a-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088E\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5D\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16F1-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7CA\\uA7D0\\uA7D1\\uA7D3\\uA7D5-\\uA7D9\\uA7F2-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF2D-\\uDF40\\uDF42-\\uDF49\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDD70-\\uDD7A\\uDD7C-\\uDD8A\\uDD8C-\\uDD92\\uDD94\\uDD95\\uDD97-\\uDDA1\\uDDA3-\\uDDB1\\uDDB3-\\uDDB9\\uDDBB\\uDDBC\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67\\uDF80-\\uDF85\\uDF87-\\uDFB0\\uDFB2-\\uDFBA]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE35\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2\\uDD00-\\uDD23\\uDE80-\\uDEA9\\uDEB0\\uDEB1\\uDF00-\\uDF1C\\uDF27\\uDF30-\\uDF45\\uDF70-\\uDF81\\uDFB0-\\uDFC4\\uDFE0-\\uDFF6]|\\uD804[\\uDC03-\\uDC37\\uDC71\\uDC72\\uDC75\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD44\\uDD47\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE3F\\uDE40\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC5F-\\uDC61\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDEB8\\uDF00-\\uDF1A\\uDF40-\\uDF46]|\\uD806[\\uDC00-\\uDC2B\\uDCA0-\\uDCDF\\uDCFF-\\uDD06\\uDD09\\uDD0C-\\uDD13\\uDD15\\uDD16\\uDD18-\\uDD2F\\uDD3F\\uDD41\\uDDA0-\\uDDA7\\uDDAA-\\uDDD0\\uDDE1\\uDDE3\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE89\\uDE9D\\uDEB0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46\\uDD60-\\uDD65\\uDD67\\uDD68\\uDD6A-\\uDD89\\uDD98\\uDEE0-\\uDEF2\\uDF02\\uDF04-\\uDF10\\uDF12-\\uDF33\\uDFB0]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC80-\\uDD43]|\\uD80B[\\uDF90-\\uDFF0]|[\\uD80C\\uD81C-\\uD820\\uD822\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879\\uD880-\\uD883\\uD885-\\uD887][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2F\\uDC41-\\uDC46]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE70-\\uDEBE\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDE40-\\uDE7F\\uDF00-\\uDF4A\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1\\uDFE3]|\\uD821[\\uDC00-\\uDFF7]|\\uD823[\\uDC00-\\uDCD5\\uDD00-\\uDD08]|\\uD82B[\\uDFF0-\\uDFF3\\uDFF5-\\uDFFB\\uDFFD\\uDFFE]|\\uD82C[\\uDC00-\\uDD22\\uDD32\\uDD50-\\uDD52\\uDD55\\uDD64-\\uDD67\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD837[\\uDF00-\\uDF1E\\uDF25-\\uDF2A]|\\uD838[\\uDC30-\\uDC6D\\uDD00-\\uDD2C\\uDD37-\\uDD3D\\uDD4E\\uDE90-\\uDEAD\\uDEC0-\\uDEEB]|\\uD839[\\uDCD0-\\uDCEB\\uDFE0-\\uDFE6\\uDFE8-\\uDFEB\\uDFED\\uDFEE\\uDFF0-\\uDFFE]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43\\uDD4B]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDEDF\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF39\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uD884[\\uDC00-\\uDF4A\\uDF50-\\uDFFF]|\\uD888[\\uDC00-\\uDFAF])/, regex.optional(/(?:[\\x2D\\.0-9A-Z_a-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088E\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5D\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16F1-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7CA\\uA7D0\\uA7D1\\uA7D3\\uA7D5-\\uA7D9\\uA7F2-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF2D-\\uDF40\\uDF42-\\uDF49\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDD70-\\uDD7A\\uDD7C-\\uDD8A\\uDD8C-\\uDD92\\uDD94\\uDD95\\uDD97-\\uDDA1\\uDDA3-\\uDDB1\\uDDB3-\\uDDB9\\uDDBB\\uDDBC\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67\\uDF80-\\uDF85\\uDF87-\\uDFB0\\uDFB2-\\uDFBA]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE35\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2\\uDD00-\\uDD23\\uDE80-\\uDEA9\\uDEB0\\uDEB1\\uDF00-\\uDF1C\\uDF27\\uDF30-\\uDF45\\uDF70-\\uDF81\\uDFB0-\\uDFC4\\uDFE0-\\uDFF6]|\\uD804[\\uDC03-\\uDC37\\uDC71\\uDC72\\uDC75\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD44\\uDD47\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE3F\\uDE40\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC5F-\\uDC61\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDEB8\\uDF00-\\uDF1A\\uDF40-\\uDF46]|\\uD806[\\uDC00-\\uDC2B\\uDCA0-\\uDCDF\\uDCFF-\\uDD06\\uDD09\\uDD0C-\\uDD13\\uDD15\\uDD16\\uDD18-\\uDD2F\\uDD3F\\uDD41\\uDDA0-\\uDDA7\\uDDAA-\\uDDD0\\uDDE1\\uDDE3\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE89\\uDE9D\\uDEB0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46\\uDD60-\\uDD65\\uDD67\\uDD68\\uDD6A-\\uDD89\\uDD98\\uDEE0-\\uDEF2\\uDF02\\uDF04-\\uDF10\\uDF12-\\uDF33\\uDFB0]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC80-\\uDD43]|\\uD80B[\\uDF90-\\uDFF0]|[\\uD80C\\uD81C-\\uD820\\uD822\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879\\uD880-\\uD883\\uD885-\\uD887][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2F\\uDC41-\\uDC46]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE70-\\uDEBE\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDE40-\\uDE7F\\uDF00-\\uDF4A\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1\\uDFE3]|\\uD821[\\uDC00-\\uDFF7]|\\uD823[\\uDC00-\\uDCD5\\uDD00-\\uDD08]|\\uD82B[\\uDFF0-\\uDFF3\\uDFF5-\\uDFFB\\uDFFD\\uDFFE]|\\uD82C[\\uDC00-\\uDD22\\uDD32\\uDD50-\\uDD52\\uDD55\\uDD64-\\uDD67\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD837[\\uDF00-\\uDF1E\\uDF25-\\uDF2A]|\\uD838[\\uDC30-\\uDC6D\\uDD00-\\uDD2C\\uDD37-\\uDD3D\\uDD4E\\uDE90-\\uDEAD\\uDEC0-\\uDEEB]|\\uD839[\\uDCD0-\\uDCEB\\uDFE0-\\uDFE6\\uDFE8-\\uDFEB\\uDFED\\uDFEE\\uDFF0-\\uDFFE]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43\\uDD4B]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDEDF\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF39\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uD884[\\uDC00-\\uDF4A\\uDF50-\\uDFFF]|\\uD888[\\uDC00-\\uDFAF])*:/), /(?:[\\x2D\\.0-9A-Z_a-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088E\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5D\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16F1-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7CA\\uA7D0\\uA7D1\\uA7D3\\uA7D5-\\uA7D9\\uA7F2-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF2D-\\uDF40\\uDF42-\\uDF49\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDD70-\\uDD7A\\uDD7C-\\uDD8A\\uDD8C-\\uDD92\\uDD94\\uDD95\\uDD97-\\uDDA1\\uDDA3-\\uDDB1\\uDDB3-\\uDDB9\\uDDBB\\uDDBC\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67\\uDF80-\\uDF85\\uDF87-\\uDFB0\\uDFB2-\\uDFBA]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE35\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2\\uDD00-\\uDD23\\uDE80-\\uDEA9\\uDEB0\\uDEB1\\uDF00-\\uDF1C\\uDF27\\uDF30-\\uDF45\\uDF70-\\uDF81\\uDFB0-\\uDFC4\\uDFE0-\\uDFF6]|\\uD804[\\uDC03-\\uDC37\\uDC71\\uDC72\\uDC75\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD44\\uDD47\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE3F\\uDE40\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC5F-\\uDC61\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDEB8\\uDF00-\\uDF1A\\uDF40-\\uDF46]|\\uD806[\\uDC00-\\uDC2B\\uDCA0-\\uDCDF\\uDCFF-\\uDD06\\uDD09\\uDD0C-\\uDD13\\uDD15\\uDD16\\uDD18-\\uDD2F\\uDD3F\\uDD41\\uDDA0-\\uDDA7\\uDDAA-\\uDDD0\\uDDE1\\uDDE3\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE89\\uDE9D\\uDEB0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46\\uDD60-\\uDD65\\uDD67\\uDD68\\uDD6A-\\uDD89\\uDD98\\uDEE0-\\uDEF2\\uDF02\\uDF04-\\uDF10\\uDF12-\\uDF33\\uDFB0]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC80-\\uDD43]|\\uD80B[\\uDF90-\\uDFF0]|[\\uD80C\\uD81C-\\uD820\\uD822\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879\\uD880-\\uD883\\uD885-\\uD887][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2F\\uDC41-\\uDC46]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE70-\\uDEBE\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDE40-\\uDE7F\\uDF00-\\uDF4A\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1\\uDFE3]|\\uD821[\\uDC00-\\uDFF7]|\\uD823[\\uDC00-\\uDCD5\\uDD00-\\uDD08]|\\uD82B[\\uDFF0-\\uDFF3\\uDFF5-\\uDFFB\\uDFFD\\uDFFE]|\\uD82C[\\uDC00-\\uDD22\\uDD32\\uDD50-\\uDD52\\uDD55\\uDD64-\\uDD67\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD837[\\uDF00-\\uDF1E\\uDF25-\\uDF2A]|\\uD838[\\uDC30-\\uDC6D\\uDD00-\\uDD2C\\uDD37-\\uDD3D\\uDD4E\\uDE90-\\uDEAD\\uDEC0-\\uDEEB]|\\uD839[\\uDCD0-\\uDCEB\\uDFE0-\\uDFE6\\uDFE8-\\uDFEB\\uDFED\\uDFEE\\uDFF0-\\uDFFE]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43\\uDD4B]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDEDF\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF39\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uD884[\\uDC00-\\uDF4A\\uDF50-\\uDFFF]|\\uD888[\\uDC00-\\uDFAF])*/);\n var XML_IDENT_RE = /(?:[\\x2D\\.0-:A-Z_a-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088E\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5D\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16F1-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7CA\\uA7D0\\uA7D1\\uA7D3\\uA7D5-\\uA7D9\\uA7F2-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF2D-\\uDF40\\uDF42-\\uDF49\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDD70-\\uDD7A\\uDD7C-\\uDD8A\\uDD8C-\\uDD92\\uDD94\\uDD95\\uDD97-\\uDDA1\\uDDA3-\\uDDB1\\uDDB3-\\uDDB9\\uDDBB\\uDDBC\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67\\uDF80-\\uDF85\\uDF87-\\uDFB0\\uDFB2-\\uDFBA]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE35\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2\\uDD00-\\uDD23\\uDE80-\\uDEA9\\uDEB0\\uDEB1\\uDF00-\\uDF1C\\uDF27\\uDF30-\\uDF45\\uDF70-\\uDF81\\uDFB0-\\uDFC4\\uDFE0-\\uDFF6]|\\uD804[\\uDC03-\\uDC37\\uDC71\\uDC72\\uDC75\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD44\\uDD47\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE3F\\uDE40\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC5F-\\uDC61\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDEB8\\uDF00-\\uDF1A\\uDF40-\\uDF46]|\\uD806[\\uDC00-\\uDC2B\\uDCA0-\\uDCDF\\uDCFF-\\uDD06\\uDD09\\uDD0C-\\uDD13\\uDD15\\uDD16\\uDD18-\\uDD2F\\uDD3F\\uDD41\\uDDA0-\\uDDA7\\uDDAA-\\uDDD0\\uDDE1\\uDDE3\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE89\\uDE9D\\uDEB0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46\\uDD60-\\uDD65\\uDD67\\uDD68\\uDD6A-\\uDD89\\uDD98\\uDEE0-\\uDEF2\\uDF02\\uDF04-\\uDF10\\uDF12-\\uDF33\\uDFB0]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC80-\\uDD43]|\\uD80B[\\uDF90-\\uDFF0]|[\\uD80C\\uD81C-\\uD820\\uD822\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879\\uD880-\\uD883\\uD885-\\uD887][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2F\\uDC41-\\uDC46]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE70-\\uDEBE\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDE40-\\uDE7F\\uDF00-\\uDF4A\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1\\uDFE3]|\\uD821[\\uDC00-\\uDFF7]|\\uD823[\\uDC00-\\uDCD5\\uDD00-\\uDD08]|\\uD82B[\\uDFF0-\\uDFF3\\uDFF5-\\uDFFB\\uDFFD\\uDFFE]|\\uD82C[\\uDC00-\\uDD22\\uDD32\\uDD50-\\uDD52\\uDD55\\uDD64-\\uDD67\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD837[\\uDF00-\\uDF1E\\uDF25-\\uDF2A]|\\uD838[\\uDC30-\\uDC6D\\uDD00-\\uDD2C\\uDD37-\\uDD3D\\uDD4E\\uDE90-\\uDEAD\\uDEC0-\\uDEEB]|\\uD839[\\uDCD0-\\uDCEB\\uDFE0-\\uDFE6\\uDFE8-\\uDFEB\\uDFED\\uDFEE\\uDFF0-\\uDFFE]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43\\uDD4B]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDEDF\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF39\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uD884[\\uDC00-\\uDF4A\\uDF50-\\uDFFF]|\\uD888[\\uDC00-\\uDFAF])+/;\n var XML_ENTITIES = {\n className: 'symbol',\n begin: /&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/\n };\n var XML_META_KEYWORDS = {\n begin: /\\s/,\n contains: [{\n className: 'keyword',\n begin: /#?[a-z_][a-z1-9_-]+/,\n illegal: /\\n/\n }]\n };\n var XML_META_PAR_KEYWORDS = hljs.inherit(XML_META_KEYWORDS, {\n begin: /\\(/,\n end: /\\)/\n });\n var APOS_META_STRING_MODE = hljs.inherit(hljs.APOS_STRING_MODE, {\n className: 'string'\n });\n var QUOTE_META_STRING_MODE = hljs.inherit(hljs.QUOTE_STRING_MODE, {\n className: 'string'\n });\n var TAG_INTERNALS = {\n endsWithParent: true,\n illegal: /</,\n relevance: 0,\n contains: [{\n className: 'attr',\n begin: XML_IDENT_RE,\n relevance: 0\n }, {\n begin: /=\\s*/,\n relevance: 0,\n contains: [{\n className: 'string',\n endsParent: true,\n variants: [{\n begin: /\"/,\n end: /\"/,\n contains: [XML_ENTITIES]\n }, {\n begin: /'/,\n end: /'/,\n contains: [XML_ENTITIES]\n }, {\n begin: /[^\\s\"'=<>`]+/\n }]\n }]\n }]\n };\n return {\n name: 'HTML, XML',\n aliases: ['html', 'xhtml', 'rss', 'atom', 'xjb', 'xsd', 'xsl', 'plist', 'wsf', 'svg'],\n case_insensitive: true,\n unicodeRegex: true,\n contains: [{\n className: 'meta',\n begin: /<![a-z]/,\n end: />/,\n relevance: 10,\n contains: [XML_META_KEYWORDS, QUOTE_META_STRING_MODE, APOS_META_STRING_MODE, XML_META_PAR_KEYWORDS, {\n begin: /\\[/,\n end: /\\]/,\n contains: [{\n className: 'meta',\n begin: /<![a-z]/,\n end: />/,\n contains: [XML_META_KEYWORDS, XML_META_PAR_KEYWORDS, QUOTE_META_STRING_MODE, APOS_META_STRING_MODE]\n }]\n }]\n }, hljs.COMMENT(/<!--/, /-->/, {\n relevance: 10\n }), {\n begin: /<!\\[CDATA\\[/,\n end: /\\]\\]>/,\n relevance: 10\n }, XML_ENTITIES,\n // xml processing instructions\n {\n className: 'meta',\n end: /\\?>/,\n variants: [{\n begin: /<\\?xml/,\n relevance: 10,\n contains: [QUOTE_META_STRING_MODE]\n }, {\n begin: /<\\?[a-z][a-z0-9]+/\n }]\n }, {\n className: 'tag',\n /*\n The lookahead pattern (?=...) ensures that 'begin' only matches\n '<style' as a single word, followed by a whitespace or an\n ending bracket.\n */\n begin: /<style(?=\\s|>)/,\n end: />/,\n keywords: {\n name: 'style'\n },\n contains: [TAG_INTERNALS],\n starts: {\n end: /<\\/style>/,\n returnEnd: true,\n subLanguage: ['css', 'xml']\n }\n }, {\n className: 'tag',\n // See the comment in the <style tag about the lookahead pattern\n begin: /<script(?=\\s|>)/,\n end: />/,\n keywords: {\n name: 'script'\n },\n contains: [TAG_INTERNALS],\n starts: {\n end: /<\\/script>/,\n returnEnd: true,\n subLanguage: ['javascript', 'handlebars', 'xml']\n }\n },\n // we need this for now for jSX\n {\n className: 'tag',\n begin: /<>|<\\/>/\n },\n // open tag\n {\n className: 'tag',\n begin: regex.concat(/</, regex.lookahead(regex.concat(TAG_NAME_RE,\n // <tag/>\n // <tag>\n // <tag ...\n regex.either(/\\/>/, />/, /\\s/)))),\n end: /\\/?>/,\n contains: [{\n className: 'name',\n begin: TAG_NAME_RE,\n relevance: 0,\n starts: TAG_INTERNALS\n }]\n },\n // close tag\n {\n className: 'tag',\n begin: regex.concat(/<\\//, regex.lookahead(regex.concat(TAG_NAME_RE, />/))),\n contains: [{\n className: 'name',\n begin: TAG_NAME_RE,\n relevance: 0\n }, {\n begin: />/,\n relevance: 0,\n endsParent: true\n }]\n }]\n };\n}\nmodule.exports = xml;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMveG1sLmpzIl0sIm5hbWVzIjpbInhtbCIsImhsanMiLCJyZWdleCIsIlRBR19OQU1FX1JFIiwiY29uY2F0Iiwib3B0aW9uYWwiLCJYTUxfSURFTlRfUkUiLCJYTUxfRU5USVRJRVMiLCJjbGFzc05hbWUiLCJiZWdpbiIsIlhNTF9NRVRBX0tFWVdPUkRTIiwiY29udGFpbnMiLCJpbGxlZ2FsIiwiWE1MX01FVEFfUEFSX0tFWVdPUkRTIiwiaW5oZXJpdCIsImVuZCIsIkFQT1NfTUVUQV9TVFJJTkdfTU9ERSIsIkFQT1NfU1RSSU5HX01PREUiLCJRVU9URV9NRVRBX1NUUklOR19NT0RFIiwiUVVPVEVfU1RSSU5HX01PREUiLCJUQUdfSU5URVJOQUxTIiwiZW5kc1dpdGhQYXJlbnQiLCJyZWxldmFuY2UiLCJlbmRzUGFyZW50IiwidmFyaWFudHMiLCJuYW1lIiwiYWxpYXNlcyIsImNhc2VfaW5zZW5zaXRpdmUiLCJ1bmljb2RlUmVnZXgiLCJDT01NRU5UIiwia2V5d29yZHMiLCJzdGFydHMiLCJyZXR1cm5FbmQiLCJzdWJMYW5ndWFnZSIsImxvb2thaGVhZCIsImVpdGhlciIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFNBQVNBLEdBQUcsQ0FBQ0MsSUFBSSxFQUFFO0VBQ2pCLElBQU1DLEtBQUssR0FBR0QsSUFBSSxDQUFDQyxLQUFLO0VBQ3hCO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsSUFBTUMsV0FBVyxHQUFHRCxLQUFLLENBQUNFLE1BQU0sQ0FBQywwMFBBQVcsRUFBRUYsS0FBSyxDQUFDRyxRQUFRLENBQUMscTFQQUFrQixDQUFDLEVBQUUsbzFQQUFpQixDQUFDO0VBQ3BHLElBQU1DLFlBQVksR0FBRyxvMVBBQWtCO0VBQ3ZDLElBQU1DLFlBQVksR0FBRztJQUNuQkMs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RSxNQUFNLENBQ2pCLEdBQUcsRUFDSEYsS0FBSyxDQUFDZ0MsU0FBUyxDQUFDaEMsS0FBSyxDQUFDRSxNQUFNLENBQzFCRCxXQUFXO01BQ1g7TUFDQTtNQUNBO01BQ0FELEtBQUssQ0FBQ2lDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUMvQixDQUFDLENBQ0g7TUFDRHBCLEdBQUcsRUFBRSxNQUFNO01BQ1hKLFFBQVEsRUFBRSxDQUNSO1FBQ0VILFNBQVMsRUFBRSxNQUFNO1FBQ2pCQyxLQUFLLEVBQUVOLFdBQVc7UUFDbEJtQixTQUFTLEVBQUUsQ0FBQztRQUNaUyxNQUFNLEVBQUVYO01BQ1YsQ0FBQztJQUVMLENBQUM7SUFDRDtJQUNBO01BQ0VaLFNBQVMsRUFBRSxLQUFLO01BQ2hCQyxLQUFLLEVBQUVQLEtBQUssQ0FBQ0UsTUFBTSxDQUNqQixLQUFLLEVBQ0xGLEtBQUssQ0FBQ2dDLFNBQVMsQ0FBQ2hDLEtBQUssQ0FBQ0UsTUFBTSxDQUMxQkQsV0FBVyxFQUFFLEdBQUcsQ0FDakIsQ0FBQyxDQUNIO01BQ0RRLFFBQVEsRUFBRSxDQUNSO1FBQ0VILFNBQVMsRUFBRSxNQUFNO1FBQ2pCQyxLQUFLLEVBQUVOLFdBQVc7UUFDbEJtQixTQUFTLEVBQUU7TUFDYixDQUFDLEVBQ0Q7UUFDRWIsS0FBSyxFQUFFLEdBQUc7UUFDVmEsU0FBUyxFQUFFLENBQUM7UUFDWkMsVUFBVSxFQUFFO01BQ2QsQ0FBQztJQUVMLENBQUM7RUFFTCxDQUFDO0FBQ0g7QUFFQWEsTUFBTSxDQUFDQyxPQUFPLEdBQUdyQyxHQUFHIiwiZmlsZSI6IjU1LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbkxhbmd1YWdlOiBIVE1MLCBYTUxcbldlYnNpdGU6IGh0dHBzOi8vd3d3LnczLm9yZy9YTUwvXG5DYXRlZ29yeTogY29tbW9uLCB3ZWJcbkF1ZGl0OiAyMDIwXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24geG1sKGhsanMpIHtcbiAgY29uc3QgcmVnZXggPSBobGpzLnJlZ2V4O1xuICAvLyBYTUwgbmFtZXMgY2FuIGhhdmUgdGhlIGZvbGxvd2luZyBhZGRpdGlvbmFsIGxldHRlcnM6IGh0dHBzOi8vd3d3LnczLm9yZy9UUi94bWwvI05ULU5hbWVDaGFyXG4gIC8vIE9USEVSX05BTUVfQ0hBUlMgPSAvWzpcXC0uMC05XFx1MDBCN1xcdTAzMDAtXFx1MDM2RlxcdTIwM0YtXFx1MjA0MF0vO1xuICAvLyBFbGVtZW50IG5hbWVzIHN0YXJ0IHdpdGggTkFNRV9TVEFSVF9DSEFSIGZvbGxvd2VkIGJ5IG9wdGlvbmFsIG90aGVyIFVuaWNvZGUgbGV0dGVycywgQVNDSUkgZGlnaXRzLCBoeXBoZW5zLCB1bmRlcnNjb3JlcywgYW5kIHBlcmlvZHNcbiAgLy8gY29uc3QgVEFHX05BTUVfUkUgPSByZWdleC5jb25jYXQoL1tBLVpfYS16XFx1MDBDMC1cXHUwMEQ2XFx1MDBEOC1cXHUwMEY2XFx1MDBGOC1cXHUwMkZGXFx1MDM3MC1cXHUwMzdEXFx1MDM3Ri1cXHUxRkZGXFx1MjAwQy1cXHUyMDBEXFx1MjA3MC1cXHUyMThGXFx1MkMwMC1cXHUyRkVGXFx1MzAwMS1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkZEXS8sIHJlZ2V4Lm9wdGlvbmFsKC9bQS1aX2EtelxcdTAwQzAtXFx1MDBENlxcdTAwRDgtXFx1MDBGNlxcdTAwRjgtXFx1MDJGRlxcdTAzNzAtXFx1MDM3RFxcdTAzN0YtXFx1MUZGRlxcdTIwMEMtXFx1MjAwRFxcdTIwNzAtXFx1MjE4RlxcdTJDMDAtXFx1MkZFRlxcdTMwMDEtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZGRFxcLS4wLTlcXHUwMEI3XFx1MDMwMC1cXHUwMzZGXFx1MjAzRi1cXHUyMDQwXSo6LyksIC9bQS1aX2EtelxcdTAwQzAtXFx1MDBENlxcdTAwRDgtXFx1MDBGNlxcdTAwRjgtXFx1MDJGRlxcdTAzNzAtXFx1MDM3RFxcdTAzN0YtXFx1MUZGRlxcdTIwMEMtXFx1MjAwRFxcdTIwNzAtXFx1MjE4RlxcdTJDMDAtXFx1MkZFRlxcdTMwMDEtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZGRFxcLS4wLTlcXHUwMEI3XFx1MDMwMC1cXHUwMzZGXFx1MjAzRi1cXHUyMDQwXSovKTs7XG4gIC8vIGNvbnN0IFhNTF9JREVOVF9SRSA9IC9bQS1aX2EtejpcXHUwMEMwLVxcdTAwRDZcXHUwMEQ4LVxcdTAwRjZcXHUwMEY4LVxcdTAyRkZcXHUwMzcwLVxcdTAzN0RcXHUwMzdGLVxcdTFGRkZcXHUyMDBDLVxcdTIwMERcXHUyMDcwLVxcdTIxOEZcXHUyQzAwLVxcdTJGRUZcXHUzMDAxLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRkRcXC0uMC05XFx1MDBCN1xcdTAzMDAtXFx1MDM2RlxcdTIwM0YtXFx1MjA0MF0rLztcbiAgLy8gY29uc3QgVEFHX05BTUVfUkUgPSByZWdleC5jb25jYXQoL1tBLVpfYS16XFx1MDBDMC1cXHUwMEQ2XFx1MDBEOC1cXHUwMEY2XFx1MDBGOC1cXHUwMkZGXFx1MDM3MC1cXHUwMzdEXFx1MDM3Ri1cXHUxRkZGXFx1MjAwQy1cXHUyMDBEXFx1MjA3MC1cXHUyMThGXFx1MkMwMC1cXHUyRkVGXFx1MzAwMS1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkZEXS8sIHJlZ2V4Lm9wdGlvbmFsKC9bQS1aX2EtelxcdTAwQzAtXFx1MDBENlxcdTAwRDgtXFx1MDBGNlxcdTAwRjgtXFx1MDJGRlxcdTAzNzAtXFx1MDM3RFxcdTAzN0YtXFx1MUZGRlxcdTIwMEMtXFx1MjAwRFxcdTIwNzAtXFx1MjE4RlxcdTJDMDAtXFx1MkZFRlxcdTMwMDEtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZGRFxcLS4wLTlcXHUwMEI3XFx1MDMwMC1cXHUwMzZGXFx1MjAzRi1cXHUyMDQwXSo6LyksIC9bQS1aX2EtelxcdTAwQzAtXFx1MDBENlxcdTAwRDgtXFx1MDBGNlxcdTAwRjgtXFx1MDJGRlxcdTAzNzAtXFx1MDM3RFxcdTAzN0YtXFx1MUZGRlxcdTIwMEMtXFx1MjAwRFxcdTIwNzAtXFx1MjE4RlxcdTJDMDAtXFx1MkZFRlxcdTMwMDEtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZGRFxcLS4wLTlcXHUwMEI3XFx1MDMwMC1cXHUwMzZGXFx1MjAzRi1cXHUyMDQwXSovKTtcbiAgLy8gaG93ZXZlciwgdG8gY2F0ZXIgZm9yIHBlcmZvcm1hbmNlIGFuZCBtb3JlIFVuaWNvZGUgc3VwcG9ydCByZWx5IHNpbXBseSBvbiB0aGUgVW5pY29kZSBsZXR0ZXIgY2xhc3NcbiAgY29uc3QgVEFHX05BTUVfUkUgPSByZWdleC5jb25jYXQoL1tcXHB7TH1fXS91LCByZWdleC5vcHRpb25hbCgvW1xccHtMfTAtOV8uLV0qOi91KSwgL1tcXHB7TH0wLTlfLi1dKi91KTtcbiAgY29uc3QgWE1MX0lERU5UX1JFID0gL1tcXHB7TH0wLTkuXzotXSsvdTtcbiAgY29uc3QgWE1MX0VOVElUSUVTID0ge1xuICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgYmVnaW46IC8mW2Etel0rO3wmI1swLTldKzt8JiN4W2EtZjAtOV0rOy9cbiAgfTtcbiAgY29uc3QgWE1MX01FVEFfS0VZV09SRFMgPSB7XG4gICAgYmVnaW46IC9cXHMvLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2tleXdvcmQnLFxuICAgICAgICBiZWdpbjogLyM/W2Etel9dW2EtejEtOV8tXSsvLFxuICAgICAgICBpbGxlZ2FsOiAvXFxuL1xuICAgICAgfVxuICAgIF1cbiAgfTtcbiAgY29uc3QgWE1MX01FVEFfUEFSX0tFWVdPUkRTID0gaGxqcy5pbmhlcml0KFhNTF9NRVRBX0tFWVdPUkRTLCB7XG4gICAgYmVnaW46IC9cXCgvLFxuICAgIGVuZDogL1xcKS9cbiAgfSk7XG4gIGNvbnN0IEFQT1NfTUVUQV9TVFJJTkdfTU9ERSA9IGhsanMuaW5oZXJpdChobGpzLkFQT1NfU1RSSU5HX01PREUsIHsgY2xhc3NOYW1lOiAnc3RyaW5nJyB9KTtcbiAgY29uc3QgUVVPVEVfTUVUQV9TVFJJTkdfTU9ERSA9IGhsanMuaW5oZXJpdChobGpzLlFVT1RFX1NUUklOR19NT0RFLCB7IGNsYXNzTmFtZTogJ3N0cmluZycgfSk7XG4gIGNvbnN0IFRBR19JTlRFUk5BTFMgPSB7XG4gICAgZW5kc1dpdGhQYXJlbnQ6IHRydWUsXG4gICAgaWxsZWdhbDogLzwvLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdhdHRyJyxcbiAgICAgICAgYmVnaW46IFhNTF9JREVOVF9SRSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogLz1cXHMqLyxcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgICAgICBlbmRzUGFyZW50OiB0cnVlLFxuICAgICAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGJlZ2luOiAvXCIvLFxuICAgICAgICAgICAgICAgIGVuZDogL1wiLyxcbiAgICAgICAgICAgICAgICBjb250YWluczogWyBYTUxfRU5USVRJRVMgXVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYmVnaW46IC8nLyxcbiAgICAgICAgICAgICAgICBlbmQ6IC8nLyxcbiAgICAgICAgICAgICAgICBjb250YWluczogWyBYTUxfRU5USVRJRVMgXVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7IGJlZ2luOiAvW15cXHNcIic9PD5gXSsvIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdXG4gIH07XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0hUTUwsIFhNTCcsXG4gICAgYWxpYXNlczogW1xuICAgICAgJ2h0bWwnLFxuICAgICAgJ3hodG1sJyxcbiAgICAgICdyc3MnLFxuICAgICAgJ2F0b20nLFxuICAgICAgJ3hqYicsXG4gICAgICAneHNkJyxcbiAgICAgICd4c2wnLFxuICAgICAgJ3BsaXN0JyxcbiAgICAgICd3c2YnLFxuICAgICAgJ3N2ZydcbiAgICBdLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAgdW5pY29kZVJlZ2V4OiB0cnVlLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogLzwhW2Etel0vLFxuICAgICAgICBlbmQ6IC8+LyxcbiAgICAgICAgcmVsZXZhbmNlOiAxMCxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBYTUxfTUVUQV9LRVlXT1JEUyxcbiAgICAgICAgICBRVU9URV9NRVRBX1NUUklOR19NT0RFLFxuICAgICAgICAgIEFQT1NfTUVUQV9TVFJJTkdfTU9ERSxcbiAgICAgICAgICBYTUxfTUVUQV9QQVJfS0VZV09SRFMsXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46IC9cXFsvLFxuICAgICAgICAgICAgZW5kOiAvXFxdLyxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgICAgICAgICBiZWdpbjogLzwhW2Etel0vLFxuICAgICAgICAgICAgICAgIGVuZDogLz4vLFxuICAgICAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgICAgICBYTUxfTUVUQV9LRVlXT1JEUyxcbiAgICAgICAgICAgICAgICAgIFhNTF9NRVRBX1BBUl9LRVlXT1JEUyxcbiAgICAgICAgICAgICAgICAgIFFVT1RFX01FVEFfU1RSSU5HX01PREUsXG4gICAgICAgICAgICAgICAgICBBUE9TX01FVEFfU1RSSU5HX01PREVcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBobGpzLkNPTU1FTlQoXG4gICAgICAgIC88IS0tLyxcbiAgICAgICAgLy0tPi8sXG4gICAgICAgIHsgcmVsZXZhbmNlOiAxMCB9XG4gICAgICApLFxuICAgICAge1xuICAgICAgICBiZWdpbjogLzwhXFxbQ0RBVEFcXFsvLFxuICAgICAgICBlbmQ6IC9cXF1cXF0+LyxcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfSxcbiAgICAgIFhNTF9FTlRJVElFUyxcbiAgICAgIC8vIHhtbCBwcm9jZXNzaW5nIGluc3RydWN0aW9uc1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgZW5kOiAvXFw/Pi8sXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46IC88XFw/eG1sLyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMTAsXG4gICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICBRVU9URV9NRVRBX1NUUklOR19NT0RFXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogLzxcXD9bYS16XVthLXowLTldKy8sXG4gICAgICAgICAgfVxuICAgICAgICBdXG5cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3RhZycsXG4gICAgICAgIC8qXG4gICAgICAgIFRoZSBsb29rYWhlYWQgcGF0dGVybiAoPz0uLi4pIGVuc3VyZXMgdGhhdCAnYmVnaW4nIG9ubHkgbWF0Y2hlc1xuICAgICAgICAnPHN0eWxlJyBhcyBhIHNpbmdsZSB3b3JkLCBmb2xsb3dlZCBieSBhIHdoaXRlc3BhY2Ugb3IgYW5cbiAgICAgICAgZW5kaW5nIGJyYWNrZXQuXG4gICAgICAgICovXG4gICAgICAgIGJlZ2luOiAvPHN0eWxlKD89XFxzfD4pLyxcbiAgICAgICAgZW5kOiAvPi8sXG4gICAgICAgIGtleXdvcmRzOiB7IG5hbWU6ICdzdHlsZScgfSxcbiAgICAgICAgY29udGFpbnM6IFsgVEFHX0lOVEVSTkFMUyBdLFxuICAgICAgICBzdGFydHM6IHtcbiAgICAgICAgICBlbmQ6IC88XFwvc3R5bGU+LyxcbiAgICAgICAgICByZXR1cm5FbmQ6IHRydWUsXG4gICAgICAgICAgc3ViTGFuZ3VhZ2U6IFtcbiAgICAgICAgICAgICdjc3MnLFxuICAgICAgICAgICAgJ3htbCdcbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3RhZycsXG4gICAgICAgIC8vIFNlZSB0aGUgY29tbWVudCBpbiB0aGUgPHN0eWxlIHRhZyBhYm91dCB0aGUgbG9va2FoZWFkIHBhdHRlcm5cbiAgICAgICAgYmVnaW46IC88c2NyaXB0KD89XFxzfD4pLyxcbiAgICAgICAgZW5kOiAvPi8sXG4gICAgICAgIGtleXdvcmRzOiB7IG5hbWU6ICdzY3JpcHQnIH0sXG4gICAgICAgIGNvbnRhaW5zOiBbIFRBR19JTlRFUk5BTFMgXSxcbiAgICAgICAgc3RhcnRzOiB7XG4gICAgICAgICAgZW5kOiAvPFxcL3NjcmlwdD4vLFxuICAgICAgICAgIHJldHVybkVuZDogdHJ1ZSxcbiAgICAgICAgICBzdWJMYW5ndWFnZTogW1xuICAgICAgICAgICAgJ2phdmFzY3JpcHQnLFxuICAgICAgICAgICAgJ2hhbmRsZWJhcnMnLFxuICAgICAgICAgICAgJ3htbCdcbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyB3ZSBuZWVkIHRoaXMgZm9yIG5vdyBmb3IgalNYXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3RhZycsXG4gICAgICAgIGJlZ2luOiAvPD58PFxcLz4vXG4gICAgICB9LFxuICAgICAgLy8gb3BlbiB0YWdcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAndGFnJyxcbiAgICAgICAgYmVnaW46IHJlZ2V4LmNvbmNhdChcbiAgICAgICAgICAvPC8sXG4gICAgICAgICAgcmVnZXgubG9va2FoZWFkKHJlZ2V4LmNvbmNhdChcbiAgICAgICAgICAgIFRBR19OQU1FX1JFLFxuICAgICAgICAgICAgLy8gPHRhZy8+XG4gICAgICAgICAgICAvLyA8dGFnPlxuICAgICAgICAgICAgLy8gPHRhZyAuLi5cbiAgICAgICAgICAgIHJlZ2V4LmVpdGhlcigvXFwvPi8sIC8+LywgL1xccy8pXG4gICAgICAgICAgKSlcbiAgICAgICAgKSxcbiAgICAgICAgZW5kOiAvXFwvPz4vLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ25hbWUnLFxuICAgICAgICAgICAgYmVnaW46IFRBR19OQU1FX1JFLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICAgICAgc3RhcnRzOiBUQUdfSU5URVJOQUxTXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgLy8gY2xvc2UgdGFnXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3RhZycsXG4gICAgICAgIGJlZ2luOiByZWdleC5jb25jYXQoXG4gICAgICAgICAgLzxcXC8vLFxuICAgICAgICAgIHJlZ2V4Lmxvb2thaGVhZChyZWdleC5jb25jYXQoXG4gICAgICAgICAgICBUQUdfTkFNRV9SRSwgLz4vXG4gICAgICAgICAgKSlcbiAgICAgICAgKSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICduYW1lJyxcbiAgICAgICAgICAgIGJlZ2luOiBUQUdfTkFNRV9SRSxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46IC8+LyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgICAgIGVuZHNQYXJlbnQ6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0geG1sO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///55\n");
  1594. /***/ }),
  1595. /* 56 */
  1596. /*!*******************************************************************************************************!*\
  1597. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/highlight.js/lib/languages/bash.js ***!
  1598. \*******************************************************************************************************/
  1599. /*! no static exports found */
  1600. /***/ (function(module, exports) {
  1601. eval("/*\nLanguage: Bash\nAuthor: vah <vahtenberg@gmail.com>\nContributrors: Benjamin Pannell <contact@sierrasoftworks.com>\nWebsite: https://www.gnu.org/software/bash/\nCategory: common\n*/\n\n/** @type LanguageFn */\nfunction bash(hljs) {\n var regex = hljs.regex;\n var VAR = {};\n var BRACED_VAR = {\n begin: /\\$\\{/,\n end: /\\}/,\n contains: [\"self\", {\n begin: /:-/,\n contains: [VAR]\n } // default values\n ]\n };\n\n Object.assign(VAR, {\n className: 'variable',\n variants: [{\n begin: regex.concat(/\\$[\\w\\d#@][\\w\\d_]*/, // negative look-ahead tries to avoid matching patterns that are not\n // Perl at all like $ident$, @ident@, etc.\n \"(?![\\\\w\\\\d])(?![$])\")\n }, BRACED_VAR]\n });\n var SUBST = {\n className: 'subst',\n begin: /\\$\\(/,\n end: /\\)/,\n contains: [hljs.BACKSLASH_ESCAPE]\n };\n var HERE_DOC = {\n begin: /<<-?\\s*(?=\\w+)/,\n starts: {\n contains: [hljs.END_SAME_AS_BEGIN({\n begin: /(\\w+)/,\n end: /(\\w+)/,\n className: 'string'\n })]\n }\n };\n var QUOTE_STRING = {\n className: 'string',\n begin: /\"/,\n end: /\"/,\n contains: [hljs.BACKSLASH_ESCAPE, VAR, SUBST]\n };\n SUBST.contains.push(QUOTE_STRING);\n var ESCAPED_QUOTE = {\n className: '',\n begin: /\\\\\"/\n };\n var APOS_STRING = {\n className: 'string',\n begin: /'/,\n end: /'/\n };\n var ARITHMETIC = {\n begin: /\\$?\\(\\(/,\n end: /\\)\\)/,\n contains: [{\n begin: /\\d+#[0-9a-f]+/,\n className: \"number\"\n }, hljs.NUMBER_MODE, VAR]\n };\n var SH_LIKE_SHELLS = [\"fish\", \"bash\", \"zsh\", \"sh\", \"csh\", \"ksh\", \"tcsh\", \"dash\", \"scsh\"];\n var KNOWN_SHEBANG = hljs.SHEBANG({\n binary: \"(\".concat(SH_LIKE_SHELLS.join(\"|\"), \")\"),\n relevance: 10\n });\n var FUNCTION = {\n className: 'function',\n begin: /\\w[\\w\\d_]*\\s*\\(\\s*\\)\\s*\\{/,\n returnBegin: true,\n contains: [hljs.inherit(hljs.TITLE_MODE, {\n begin: /\\w[\\w\\d_]*/\n })],\n relevance: 0\n };\n var KEYWORDS = [\"if\", \"then\", \"else\", \"elif\", \"fi\", \"for\", \"while\", \"until\", \"in\", \"do\", \"done\", \"case\", \"esac\", \"function\", \"select\"];\n var LITERALS = [\"true\", \"false\"];\n\n // to consume paths to prevent keyword matches inside them\n var PATH_MODE = {\n match: /(\\/[a-z._-]+)+/\n };\n\n // http://www.gnu.org/software/bash/manual/html_node/Shell-Builtin-Commands.html\n var SHELL_BUILT_INS = [\"break\", \"cd\", \"continue\", \"eval\", \"exec\", \"exit\", \"export\", \"getopts\", \"hash\", \"pwd\", \"readonly\", \"return\", \"shift\", \"test\", \"times\", \"trap\", \"umask\", \"unset\"];\n var BASH_BUILT_INS = [\"alias\", \"bind\", \"builtin\", \"caller\", \"command\", \"declare\", \"echo\", \"enable\", \"help\", \"let\", \"local\", \"logout\", \"mapfile\", \"printf\", \"read\", \"readarray\", \"source\", \"type\", \"typeset\", \"ulimit\", \"unalias\"];\n var ZSH_BUILT_INS = [\"autoload\", \"bg\", \"bindkey\", \"bye\", \"cap\", \"chdir\", \"clone\", \"comparguments\", \"compcall\", \"compctl\", \"compdescribe\", \"compfiles\", \"compgroups\", \"compquote\", \"comptags\", \"comptry\", \"compvalues\", \"dirs\", \"disable\", \"disown\", \"echotc\", \"echoti\", \"emulate\", \"fc\", \"fg\", \"float\", \"functions\", \"getcap\", \"getln\", \"history\", \"integer\", \"jobs\", \"kill\", \"limit\", \"log\", \"noglob\", \"popd\", \"print\", \"pushd\", \"pushln\", \"rehash\", \"sched\", \"setcap\", \"setopt\", \"stat\", \"suspend\", \"ttyctl\", \"unfunction\", \"unhash\", \"unlimit\", \"unsetopt\", \"vared\", \"wait\", \"whence\", \"where\", \"which\", \"zcompile\", \"zformat\", \"zftp\", \"zle\", \"zmodload\", \"zparseopts\", \"zprof\", \"zpty\", \"zregexparse\", \"zsocket\", \"zstyle\", \"ztcp\"];\n var GNU_CORE_UTILS = [\"chcon\", \"chgrp\", \"chown\", \"chmod\", \"cp\", \"dd\", \"df\", \"dir\", \"dircolors\", \"ln\", \"ls\", \"mkdir\", \"mkfifo\", \"mknod\", \"mktemp\", \"mv\", \"realpath\", \"rm\", \"rmdir\", \"shred\", \"sync\", \"touch\", \"truncate\", \"vdir\", \"b2sum\", \"base32\", \"base64\", \"cat\", \"cksum\", \"comm\", \"csplit\", \"cut\", \"expand\", \"fmt\", \"fold\", \"head\", \"join\", \"md5sum\", \"nl\", \"numfmt\", \"od\", \"paste\", \"ptx\", \"pr\", \"sha1sum\", \"sha224sum\", \"sha256sum\", \"sha384sum\", \"sha512sum\", \"shuf\", \"sort\", \"split\", \"sum\", \"tac\", \"tail\", \"tr\", \"tsort\", \"unexpand\", \"uniq\", \"wc\", \"arch\", \"basename\", \"chroot\", \"date\", \"dirname\", \"du\", \"echo\", \"env\", \"expr\", \"factor\",\n // \"false\", // keyword literal already\n \"groups\", \"hostid\", \"id\", \"link\", \"logname\", \"nice\", \"nohup\", \"nproc\", \"pathchk\", \"pinky\", \"printenv\", \"printf\", \"pwd\", \"readlink\", \"runcon\", \"seq\", \"sleep\", \"stat\", \"stdbuf\", \"stty\", \"tee\", \"test\", \"timeout\",\n // \"true\", // keyword literal already\n \"tty\", \"uname\", \"unlink\", \"uptime\", \"users\", \"who\", \"whoami\", \"yes\"];\n return {\n name: 'Bash',\n aliases: ['sh'],\n keywords: {\n $pattern: /\\b[a-z][a-z0-9._-]+\\b/,\n keyword: KEYWORDS,\n literal: LITERALS,\n built_in: [].concat(SHELL_BUILT_INS, BASH_BUILT_INS, [\n // Shell modifiers\n \"set\", \"shopt\"], ZSH_BUILT_INS, GNU_CORE_UTILS)\n },\n contains: [KNOWN_SHEBANG,\n // to catch known shells and boost relevancy\n hljs.SHEBANG(),\n // to catch unknown shells but still highlight the shebang\n FUNCTION, ARITHMETIC, hljs.HASH_COMMENT_MODE, HERE_DOC, PATH_MODE, QUOTE_STRING, ESCAPED_QUOTE, APOS_STRING, VAR]\n };\n}\nmodule.exports = bash;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvYmFzaC5qcyJdLCJuYW1lcyI6WyJiYXNoIiwiaGxqcyIsInJlZ2V4IiwiVkFSIiwiQlJBQ0VEX1ZBUiIsImJlZ2luIiwiZW5kIiwiY29udGFpbnMiLCJPYmplY3QiLCJhc3NpZ24iLCJjbGFzc05hbWUiLCJ2YXJpYW50cyIsImNvbmNhdCIsIlNVQlNUIiwiQkFDS1NMQVNIX0VTQ0FQRSIsIkhFUkVfRE9DIiwic3RhcnRzIiwiRU5EX1NBTUVfQVNfQkVHSU4iLCJRVU9URV9TVFJJTkciLCJwdXNoIiwiRVNDQVBFRF9RVU9URSIsIkFQT1NfU1RSSU5HIiwiQVJJVEhNRVRJQyIsIk5VTUJFUl9NT0RFIiwiU0hfTElLRV9TSEVMTFMiLCJLTk9XTl9TSEVCQU5HIiwiU0hFQkFORyIsImJpbmFyeSIsImpvaW4iLCJyZWxldmFuY2UiLCJGVU5DVElPTiIsInJldHVybkJlZ2luIiwiaW5oZXJpdCIsIlRJVExFX01PREUiLCJLRVlXT1JEUyIsIkxJVEVSQUxTIiwiUEFUSF9NT0RFIiwibWF0Y2giLCJTSEVMTF9CVUlMVF9JTlMiLCJCQVNIX0JVSUxUX0lOUyIsIlpTSF9CVUlMVF9JTlMiLCJHTlVfQ09SRV9VVElMUyIsIm5hbWUiLCJhbGlhc2VzIiwia2V5d29yZHMiLCIkcGF0dGVybiIsImtleXdvcmQiLCJsaXRlcmFsIiwiYnVpbHRfaW4iLCJIQVNIX0NPTU1FTlRfTU9ERSIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsU0FBU0EsSUFBSSxDQUFDQyxJQUFJLEVBQUU7RUFDbEIsSUFBTUMsS0FBSyxHQUFHRCxJQUFJLENBQUNDLEtBQUs7RUFDeEIsSUFBTUMsR0FBRyxHQUFHLENBQUMsQ0FBQztFQUNkLElBQU1DLFVBQVUsR0FBRztJQUNqQkMsS0FBSyxFQUFFLE1BQU07SUFDYkMsR0FBRyxF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QUN0QmxDLFFBQVEsRUFDUnFCLFNBQVMsRUFDVGxCLFlBQVksRUFDWkUsYUFBYSxFQUNiQyxXQUFXLEVBQ1hsQixHQUFHO0VBRVAsQ0FBQztBQUNIO0FBRUErQyxNQUFNLENBQUNDLE9BQU8sR0FBR25ELElBQUkiLCJmaWxlIjoiNTYuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuTGFuZ3VhZ2U6IEJhc2hcbkF1dGhvcjogdmFoIDx2YWh0ZW5iZXJnQGdtYWlsLmNvbT5cbkNvbnRyaWJ1dHJvcnM6IEJlbmphbWluIFBhbm5lbGwgPGNvbnRhY3RAc2llcnJhc29mdHdvcmtzLmNvbT5cbldlYnNpdGU6IGh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvYmFzaC9cbkNhdGVnb3J5OiBjb21tb25cbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBiYXNoKGhsanMpIHtcbiAgY29uc3QgcmVnZXggPSBobGpzLnJlZ2V4O1xuICBjb25zdCBWQVIgPSB7fTtcbiAgY29uc3QgQlJBQ0VEX1ZBUiA9IHtcbiAgICBiZWdpbjogL1xcJFxcey8sXG4gICAgZW5kOiAvXFx9LyxcbiAgICBjb250YWluczogW1xuICAgICAgXCJzZWxmXCIsXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvOi0vLFxuICAgICAgICBjb250YWluczogWyBWQVIgXVxuICAgICAgfSAvLyBkZWZhdWx0IHZhbHVlc1xuICAgIF1cbiAgfTtcbiAgT2JqZWN0LmFzc2lnbihWQVIsIHtcbiAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHsgYmVnaW46IHJlZ2V4LmNvbmNhdCgvXFwkW1xcd1xcZCNAXVtcXHdcXGRfXSovLFxuICAgICAgICAvLyBuZWdhdGl2ZSBsb29rLWFoZWFkIHRyaWVzIHRvIGF2b2lkIG1hdGNoaW5nIHBhdHRlcm5zIHRoYXQgYXJlIG5vdFxuICAgICAgICAvLyBQZXJsIGF0IGFsbCBsaWtlICRpZGVudCQsIEBpZGVudEAsIGV0Yy5cbiAgICAgICAgYCg/IVtcXFxcd1xcXFxkXSkoPyFbJF0pYCkgfSxcbiAgICAgIEJSQUNFRF9WQVJcbiAgICBdXG4gIH0pO1xuXG4gIGNvbnN0IFNVQlNUID0ge1xuICAgIGNsYXNzTmFtZTogJ3N1YnN0JyxcbiAgICBiZWdpbjogL1xcJFxcKC8sXG4gICAgZW5kOiAvXFwpLyxcbiAgICBjb250YWluczogWyBobGpzLkJBQ0tTTEFTSF9FU0NBUEUgXVxuICB9O1xuICBjb25zdCBIRVJFX0RPQyA9IHtcbiAgICBiZWdpbjogLzw8LT9cXHMqKD89XFx3KykvLFxuICAgIHN0YXJ0czogeyBjb250YWluczogW1xuICAgICAgaGxqcy5FTkRfU0FNRV9BU19CRUdJTih7XG4gICAgICAgIGJlZ2luOiAvKFxcdyspLyxcbiAgICAgICAgZW5kOiAvKFxcdyspLyxcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJ1xuICAgICAgfSlcbiAgICBdIH1cbiAgfTtcbiAgY29uc3QgUVVPVEVfU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46IC9cIi8sXG4gICAgZW5kOiAvXCIvLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICBWQVIsXG4gICAgICBTVUJTVFxuICAgIF1cbiAgfTtcbiAgU1VCU1QuY29udGFpbnMucHVzaChRVU9URV9TVFJJTkcpO1xuICBjb25zdCBFU0NBUEVEX1FVT1RFID0ge1xuICAgIGNsYXNzTmFtZTogJycsXG4gICAgYmVnaW46IC9cXFxcXCIvXG5cbiAgfTtcbiAgY29uc3QgQVBPU19TVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogLycvLFxuICAgIGVuZDogLycvXG4gIH07XG4gIGNvbnN0IEFSSVRITUVUSUMgPSB7XG4gICAgYmVnaW46IC9cXCQ/XFwoXFwoLyxcbiAgICBlbmQ6IC9cXClcXCkvLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFxkKyNbMC05YS1mXSsvLFxuICAgICAgICBjbGFzc05hbWU6IFwibnVtYmVyXCJcbiAgICAgIH0sXG4gICAgICBobGpzLk5VTUJFUl9NT0RFLFxuICAgICAgVkFSXG4gICAgXVxuICB9O1xuICBjb25zdCBTSF9MSUtFX1NIRUxMUyA9IFtcbiAgICBcImZpc2hcIixcbiAgICBcImJhc2hcIixcbiAgICBcInpzaFwiLFxuICAgIFwic2hcIixcbiAgICBcImNzaFwiLFxuICAgIFwia3NoXCIsXG4gICAgXCJ0Y3NoXCIsXG4gICAgXCJkYXNoXCIsXG4gICAgXCJzY3NoXCIsXG4gIF07XG4gIGNvbnN0IEtOT1dOX1NIRUJBTkcgPSBobGpzLlNIRUJBTkcoe1xuICAgIGJpbmFyeTogYCgke1NIX0xJS0VfU0hFTExTLmpvaW4oXCJ8XCIpfSlgLFxuICAgIHJlbGV2YW5jZTogMTBcbiAgfSk7XG4gIGNvbnN0IEZVTkNUSU9OID0ge1xuICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICBiZWdpbjogL1xcd1tcXHdcXGRfXSpcXHMqXFwoXFxzKlxcKVxccypcXHsvLFxuICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgIGNvbnRhaW5zOiBbIGhsanMuaW5oZXJpdChobGpzLlRJVExFX01PREUsIHsgYmVnaW46IC9cXHdbXFx3XFxkX10qLyB9KSBdLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIGNvbnN0IEtFWVdPUkRTID0gW1xuICAgIFwiaWZcIixcbiAgICBcInRoZW5cIixcbiAgICBcImVsc2VcIixcbiAgICBcImVsaWZcIixcbiAgICBcImZpXCIsXG4gICAgXCJmb3JcIixcbiAgICBcIndoaWxlXCIsXG4gICAgXCJ1bnRpbFwiLFxuICAgIFwiaW5cIixcbiAgICBcImRvXCIsXG4gICAgXCJkb25lXCIsXG4gICAgXCJjYXNlXCIsXG4gICAgXCJlc2FjXCIsXG4gICAgXCJmdW5jdGlvblwiLFxuICAgIFwic2VsZWN0XCJcbiAgXTtcblxuICBjb25zdCBMSVRFUkFMUyA9IFtcbiAgICBcInRydWVcIixcbiAgICBcImZhbHNlXCJcbiAgXTtcblxuICAvLyB0byBjb25zdW1lIHBhdGhzIHRvIHByZXZlbnQga2V5d29yZCBtYXRjaGVzIGluc2lkZSB0aGVtXG4gIGNvbnN0IFBBVEhfTU9ERSA9IHsgbWF0Y2g6IC8oXFwvW2Etei5fLV0rKSsvIH07XG5cbiAgLy8gaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2Jhc2gvbWFudWFsL2h0bWxfbm9kZS9TaGVsbC1CdWlsdGluLUNvbW1hbmRzLmh0bWxcbiAgY29uc3QgU0hFTExfQlVJTFRfSU5TID0gW1xuICAgIFwiYnJlYWtcIixcbiAgICBcImNkXCIsXG4gICAgXCJjb250aW51ZVwiLFxuICAgIFwiZXZhbFwiLFxuICAgIFwiZXhlY1wiLFxuICAgIFwiZXhpdFwiLFxuICAgIFwiZXhwb3J0XCIsXG4gICAgXCJnZXRvcHRzXCIsXG4gICAgXCJoYXNoXCIsXG4gICAgXCJwd2RcIixcbiAgICBcInJlYWRvbmx5XCIsXG4gICAgXCJyZXR1cm5cIixcbiAgICBcInNoaWZ0XCIsXG4gICAgXCJ0ZXN0XCIsXG4gICAgXCJ0aW1lc1wiLFxuICAgIFwidHJhcFwiLFxuICAgIFwidW1hc2tcIixcbiAgICBcInVuc2V0XCJcbiAgXTtcblxuICBjb25zdCBCQVNIX0JVSUxUX0lOUyA9IFtcbiAgICBcImFsaWFzXCIsXG4gICAgXCJiaW5kXCIsXG4gICAgXCJidWlsdGluXCIsXG4gICAgXCJjYWxsZXJcIixcbiAgICBcImNvbW1hbmRcIixcbiAgICBcImRlY2xhcmVcIixcbiAgICBcImVjaG9cIixcbiAgICBcImVuYWJsZVwiLFxuICAgIFwiaGVscFwiLFxuICAgIFwibGV0XCIsXG4gICAgXCJsb2NhbFwiLFxuICAgIFwibG9nb3V0XCIsXG4gICAgXCJtYXBmaWxlXCIsXG4gICAgXCJwcmludGZcIixcbiAgICBcInJlYWRcIixcbiAgICBcInJlYWRhcnJheVwiLFxuICAgIFwic291cmNlXCIsXG4gICAgXCJ0eXBlXCIsXG4gICAgXCJ0eXBlc2V0XCIsXG4gICAgXCJ1bGltaXRcIixcbiAgICBcInVuYWxpYXNcIlxuICBdO1xuXG4gIGNvbnN0IFpTSF9CVUlMVF9JTlMgPSBbXG4gICAgXCJhdXRvbG9hZFwiLFxuICAgIFwiYmdcIixcbiAgICBcImJpbmRrZXlcIixcbiAgICBcImJ5ZVwiLFxuICAgIFwiY2FwXCIsXG4gICAgXCJjaGRpclwiLFxuICAgIFwiY2xvbmVcIixcbiAgICBcImNvbXBhcmd1bWVudHNcIixcbiAgICBcImNvbXBjYWxsXCIsXG4gICAgXCJjb21wY3RsXCIsXG4gICAgXCJjb21wZGVzY3JpYmVcIixcbiAgICBcImNvbXBmaWxlc1wiLFxuICAgIFwiY29tcGdyb3Vwc1wiLFxuICAgIFwiY29tcHF1b3RlXCIsXG4gICAgXCJjb21wdGFnc1wiLFxuICAgIFwiY29tcHRyeVwiLFxuICAgIFwiY29tcHZhbHVlc1wiLFxuICAgIFwiZGlyc1wiLFxuICAgIFwiZGlzYWJsZVwiLFxuICAgIFwiZGlzb3duXCIsXG4gICAgXCJlY2hvdGNcIixcbiAgICBcImVjaG90aVwiLFxuICAgIFwiZW11bGF0ZVwiLFxuICAgIFwiZmNcIixcbiAgICBcImZnXCIsXG4gICAgXCJmbG9hdFwiLFxuICAgIFwiZnVuY3Rpb25zXCIsXG4gICAgXCJnZXRjYXBcIixcbiAgICBcImdldGxuXCIsXG4gICAgXCJoaXN0b3J5XCIsXG4gICAgXCJpbnRlZ2VyXCIsXG4gICAgXCJqb2JzXCIsXG4gICAgXCJraWxsXCIsXG4gICAgXCJsaW1pdFwiLFxuICAgIFwibG9nXCIsXG4gICAgXCJub2dsb2JcIixcbiAgICBcInBvcGRcIixcbiAgICBcInByaW50XCIsXG4gICAgXCJwdXNoZFwiLFxuICAgIFwicHVzaGxuXCIsXG4gICAgXCJyZWhhc2hcIixcbiAgICBcInNjaGVkXCIsXG4gICAgXCJzZXRjYXBcIixcbiAgICBcInNldG9wdFwiLFxuICAgIFwic3RhdFwiLFxuICAgIFwic3VzcGVuZFwiLFxuICAgIFwidHR5Y3RsXCIsXG4gICAgXCJ1bmZ1bmN0aW9uXCIsXG4gICAgXCJ1bmhhc2hcIixcbiAgICBcInVubGltaXRcIixcbiAgICBcInVuc2V0b3B0XCIsXG4gICAgXCJ2YXJlZFwiLFxuICAgIFwid2FpdFwiLFxuICAgIFwid2hlbmNlXCIsXG4gICAgXCJ3aGVyZVwiLFxuICAgIFwid2hpY2hcIixcbiAgICBcInpjb21waWxlXCIsXG4gICAgXCJ6Zm9ybWF0XCIsXG4gICAgXCJ6ZnRwXCIsXG4gICAgXCJ6bGVcIixcbiAgICBcInptb2Rsb2FkXCIsXG4gICAgXCJ6cGFyc2VvcHRzXCIsXG4gICAgXCJ6cHJvZlwiLFxuICAgIFwienB0eVwiLFxuICAgIFwienJlZ2V4cGFyc2VcIixcbiAgICBcInpzb2NrZXRcIixcbiAgICBcInpzdHlsZVwiLFxuICAgIFwienRjcFwiXG4gIF07XG5cbiAgY29uc3QgR05VX0NPUkVfVVRJTFMgPSBbXG4gICAgXCJjaGNvblwiLFxuICAgIFwiY2hncnBcIixcbiAgICBcImNob3duXCIsXG4gICAgXCJjaG1vZFwiLFxuICAgIFwiY3BcIixcbiAgICBcImRkXCIsXG4gICAgXCJkZlwiLFxuICAgIFwiZGlyXCIsXG4gICAgXCJkaXJjb2xvcnNcIixcbiAgICBcImxuXCIsXG4gICAgXCJsc1wiLFxuICAgIFwibWtkaXJcIixcbiAgICBcIm1rZmlmb1wiLFxuICAgIFwibWtub2RcIixcbiAgICBcIm1rdGVtcFwiLFxuICAgIFwibXZcIixcbiAgICBcInJlYWxwYXRoXCIsXG4gICAgXCJybVwiLFxuICAgIFwicm1kaXJcIixcbiAgICBcInNocmVkXCIsXG4gICAgXCJzeW5jXCIsXG4gICAgXCJ0b3VjaFwiLFxuICAgIFwidHJ1bmNhdGVcIixcbiAgICBcInZkaXJcIixcbiAgICBcImIyc3VtXCIsXG4gICAgXCJiYXNlMzJcIixcbiAgICBcImJhc2U2NFwiLFxuICAgIFwiY2F0XCIsXG4gICAgXCJja3N1bVwiLFxuICAgIFwiY29tbVwiLFxuICAgIFwiY3NwbGl0XCIsXG4gICAgXCJjdXRcIixcbiAgICBcImV4cGFuZFwiLFxuICAgIFwiZm10XCIsXG4gICAgXCJmb2xkXCIsXG4gICAgXCJoZWFkXCIsXG4gICAgXCJqb2luXCIsXG4gICAgXCJtZDVzdW1cIixcbiAgICBcIm5sXCIsXG4gICAgXCJudW1mbXRcIixcbiAgICBcIm9kXCIsXG4gICAgXCJwYXN0ZVwiLFxuICAgIFwicHR4XCIsXG4gICAgXCJwclwiLFxuICAgIFwic2hhMXN1bVwiLFxuICAgIFwic2hhMjI0c3VtXCIsXG4gICAgXCJzaGEyNTZzdW1cIixcbiAgICBcInNoYTM4NHN1bVwiLFxuICAgIFwic2hhNTEyc3VtXCIsXG4gICAgXCJzaHVmXCIsXG4gICAgXCJzb3J0XCIsXG4gICAgXCJzcGxpdFwiLFxuICAgIFwic3VtXCIsXG4gICAgXCJ0YWNcIixcbiAgICBcInRhaWxcIixcbiAgICBcInRyXCIsXG4gICAgXCJ0c29ydFwiLFxuICAgIFwidW5leHBhbmRcIixcbiAgICBcInVuaXFcIixcbiAgICBcIndjXCIsXG4gICAgXCJhcmNoXCIsXG4gICAgXCJiYXNlbmFtZVwiLFxuICAgIFwiY2hyb290XCIsXG4gICAgXCJkYXRlXCIsXG4gICAgXCJkaXJuYW1lXCIsXG4gICAgXCJkdVwiLFxuICAgIFwiZWNob1wiLFxuICAgIFwiZW52XCIsXG4gICAgXCJleHByXCIsXG4gICAgXCJmYWN0b3JcIixcbiAgICAvLyBcImZhbHNlXCIsIC8vIGtleXdvcmQgbGl0ZXJhbCBhbHJlYWR5XG4gICAgXCJncm91cHNcIixcbiAgICBcImhvc3RpZFwiLFxuICAgIFwiaWRcIixcbiAgICBcImxpbmtcIixcbiAgICBcImxvZ25hbWVcIixcbiAgICBcIm5pY2VcIixcbiAgICBcIm5vaHVwXCIsXG4gICAgXCJucHJvY1wiLFxuICAgIFwicGF0aGNoa1wiLFxuICAgIFwicGlua3lcIixcbiAgICBcInByaW50ZW52XCIsXG4gICAgXCJwcmludGZcIixcbiAgICBcInB3ZFwiLFxuICAgIFwicmVhZGxpbmtcIixcbiAgICBcInJ1bmNvblwiLFxuICAgIFwic2VxXCIsXG4gICAgXCJzbGVlcFwiLFxuICAgIFwic3RhdFwiLFxuICAgIFwic3RkYnVmXCIsXG4gICAgXCJzdHR5XCIsXG4gICAgXCJ0ZWVcIixcbiAgICBcInRlc3RcIixcbiAgICBcInRpbWVvdXRcIixcbiAgICAvLyBcInRydWVcIiwgLy8ga2V5d29yZCBsaXRlcmFsIGFscmVhZHlcbiAgICBcInR0eVwiLFxuICAgIFwidW5hbWVcIixcbiAgICBcInVubGlua1wiLFxuICAgIFwidXB0aW1lXCIsXG4gICAgXCJ1c2Vyc1wiLFxuICAgIFwid2hvXCIsXG4gICAgXCJ3aG9hbWlcIixcbiAgICBcInllc1wiXG4gIF07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnQmFzaCcsXG4gICAgYWxpYXNlczogWyAnc2gnIF0sXG4gICAga2V5d29yZHM6IHtcbiAgICAgICRwYXR0ZXJuOiAvXFxiW2Etel1bYS16MC05Ll8tXStcXGIvLFxuICAgICAga2V5d29yZDogS0VZV09SRFMsXG4gICAgICBsaXRlcmFsOiBMSVRFUkFMUyxcbiAgICAgIGJ1aWx0X2luOiBbXG4gICAgICAgIC4uLlNIRUxMX0JVSUxUX0lOUyxcbiAgICAgICAgLi4uQkFTSF9CVUlMVF9JTlMsXG4gICAgICAgIC8vIFNoZWxsIG1vZGlmaWVyc1xuICAgICAgICBcInNldFwiLFxuICAgICAgICBcInNob3B0XCIsXG4gICAgICAgIC4uLlpTSF9CVUlMVF9JTlMsXG4gICAgICAgIC4uLkdOVV9DT1JFX1VUSUxTXG4gICAgICBdXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgS05PV05fU0hFQkFORywgLy8gdG8gY2F0Y2gga25vd24gc2hlbGxzIGFuZCBib29zdCByZWxldmFuY3lcbiAgICAgIGhsanMuU0hFQkFORygpLCAvLyB0byBjYXRjaCB1bmtub3duIHNoZWxscyBidXQgc3RpbGwgaGlnaGxpZ2h0IHRoZSBzaGViYW5nXG4gICAgICBGVU5DVElPTixcbiAgICAgIEFSSVRITUVUSUMsXG4gICAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFLFxuICAgICAgSEVSRV9ET0MsXG4gICAgICBQQVRIX01PREUsXG4gICAgICBRVU9URV9TVFJJTkcsXG4gICAgICBFU0NBUEVEX1FVT1RFLFxuICAgICAgQVBPU19TVFJJTkcsXG4gICAgICBWQVJcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzaDtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///56\n");
  1602. /***/ }),
  1603. /* 57 */
  1604. /*!****************************************************************************************************!*\
  1605. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/highlight.js/lib/languages/c.js ***!
  1606. \****************************************************************************************************/
  1607. /*! no static exports found */
  1608. /***/ (function(module, exports) {
  1609. eval("/*\nLanguage: C\nCategory: common, system\nWebsite: https://en.wikipedia.org/wiki/C_(programming_language)\n*/\n\n/** @type LanguageFn */\nfunction c(hljs) {\n var regex = hljs.regex;\n // added for historic reasons because `hljs.C_LINE_COMMENT_MODE` does\n // not include such support nor can we be sure all the grammars depending\n // on it would desire this behavior\n var C_LINE_COMMENT_MODE = hljs.COMMENT('//', '$', {\n contains: [{\n begin: /\\\\\\n/\n }]\n });\n var DECLTYPE_AUTO_RE = 'decltype\\\\(auto\\\\)';\n var NAMESPACE_RE = '[a-zA-Z_]\\\\w*::';\n var TEMPLATE_ARGUMENT_RE = '<[^<>]+>';\n var FUNCTION_TYPE_RE = '(' + DECLTYPE_AUTO_RE + '|' + regex.optional(NAMESPACE_RE) + '[a-zA-Z_]\\\\w*' + regex.optional(TEMPLATE_ARGUMENT_RE) + ')';\n var TYPES = {\n className: 'type',\n variants: [{\n begin: '\\\\b[a-z\\\\d_]*_t\\\\b'\n }, {\n match: /\\batomic_[a-z]{3,6}\\b/\n }]\n };\n\n // https://en.cppreference.com/w/cpp/language/escape\n // \\\\ \\x \\xFF \\u2837 \\u00323747 \\374\n var CHARACTER_ESCAPES = '\\\\\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\\\S)';\n var STRINGS = {\n className: 'string',\n variants: [{\n begin: '(u8?|U|L)?\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [hljs.BACKSLASH_ESCAPE]\n }, {\n begin: '(u8?|U|L)?\\'(' + CHARACTER_ESCAPES + \"|.)\",\n end: '\\'',\n illegal: '.'\n }, hljs.END_SAME_AS_BEGIN({\n begin: /(?:u8?|U|L)?R\"([^()\\\\ ]{0,16})\\(/,\n end: /\\)([^()\\\\ ]{0,16})\"/\n })]\n };\n var NUMBERS = {\n className: 'number',\n variants: [{\n begin: '\\\\b(0b[01\\']+)'\n }, {\n begin: '(-?)\\\\b([\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)'\n }, {\n begin: '(-?)(\\\\b0[xX][a-fA-F0-9\\']+|(\\\\b[\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)([eE][-+]?[\\\\d\\']+)?)'\n }],\n relevance: 0\n };\n var PREPROCESSOR = {\n className: 'meta',\n begin: /#\\s*[a-z]+\\b/,\n end: /$/,\n keywords: {\n keyword: 'if else elif endif define undef warning error line ' + 'pragma _Pragma ifdef ifndef include'\n },\n contains: [{\n begin: /\\\\\\n/,\n relevance: 0\n }, hljs.inherit(STRINGS, {\n className: 'string'\n }), {\n className: 'string',\n begin: /<.*?>/\n }, C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE]\n };\n var TITLE_MODE = {\n className: 'title',\n begin: regex.optional(NAMESPACE_RE) + hljs.IDENT_RE,\n relevance: 0\n };\n var FUNCTION_TITLE = regex.optional(NAMESPACE_RE) + hljs.IDENT_RE + '\\\\s*\\\\(';\n var C_KEYWORDS = [\"asm\", \"auto\", \"break\", \"case\", \"continue\", \"default\", \"do\", \"else\", \"enum\", \"extern\", \"for\", \"fortran\", \"goto\", \"if\", \"inline\", \"register\", \"restrict\", \"return\", \"sizeof\", \"struct\", \"switch\", \"typedef\", \"union\", \"volatile\", \"while\", \"_Alignas\", \"_Alignof\", \"_Atomic\", \"_Generic\", \"_Noreturn\", \"_Static_assert\", \"_Thread_local\",\n // aliases\n \"alignas\", \"alignof\", \"noreturn\", \"static_assert\", \"thread_local\",\n // not a C keyword but is, for all intents and purposes, treated exactly like one.\n \"_Pragma\"];\n var C_TYPES = [\"float\", \"double\", \"signed\", \"unsigned\", \"int\", \"short\", \"long\", \"char\", \"void\", \"_Bool\", \"_Complex\", \"_Imaginary\", \"_Decimal32\", \"_Decimal64\", \"_Decimal128\",\n // modifiers\n \"const\", \"static\",\n // aliases\n \"complex\", \"bool\", \"imaginary\"];\n var KEYWORDS = {\n keyword: C_KEYWORDS,\n type: C_TYPES,\n literal: 'true false NULL',\n // TODO: apply hinting work similar to what was done in cpp.js\n built_in: 'std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream ' + 'auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set ' + 'unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos ' + 'asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp ' + 'fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper ' + 'isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow ' + 'printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp ' + 'strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan ' + 'vfprintf vprintf vsprintf endl initializer_list unique_ptr'\n };\n var EXPRESSION_CONTAINS = [PREPROCESSOR, TYPES, C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE, NUMBERS, STRINGS];\n var EXPRESSION_CONTEXT = {\n // This mode covers expression context where we can't expect a function\n // definition and shouldn't highlight anything that looks like one:\n // `return some()`, `else if()`, `(x*sum(1, 2))`\n variants: [{\n begin: /=/,\n end: /;/\n }, {\n begin: /\\(/,\n end: /\\)/\n }, {\n beginKeywords: 'new throw return else',\n end: /;/\n }],\n keywords: KEYWORDS,\n contains: EXPRESSION_CONTAINS.concat([{\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS,\n contains: EXPRESSION_CONTAINS.concat(['self']),\n relevance: 0\n }]),\n relevance: 0\n };\n var FUNCTION_DECLARATION = {\n begin: '(' + FUNCTION_TYPE_RE + '[\\\\*&\\\\s]+)+' + FUNCTION_TITLE,\n returnBegin: true,\n end: /[{;=]/,\n excludeEnd: true,\n keywords: KEYWORDS,\n illegal: /[^\\w\\s\\*&:<>.]/,\n contains: [{\n // to prevent it from being confused as the function title\n begin: DECLTYPE_AUTO_RE,\n keywords: KEYWORDS,\n relevance: 0\n }, {\n begin: FUNCTION_TITLE,\n returnBegin: true,\n contains: [hljs.inherit(TITLE_MODE, {\n className: \"title.function\"\n })],\n relevance: 0\n },\n // allow for multiple declarations, e.g.:\n // extern void f(int), g(char);\n {\n relevance: 0,\n match: /,/\n }, {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS,\n relevance: 0,\n contains: [C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE, STRINGS, NUMBERS, TYPES,\n // Count matching parentheses.\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS,\n relevance: 0,\n contains: ['self', C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE, STRINGS, NUMBERS, TYPES]\n }]\n }, TYPES, C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE, PREPROCESSOR]\n };\n return {\n name: \"C\",\n aliases: ['h'],\n keywords: KEYWORDS,\n // Until differentiations are added between `c` and `cpp`, `c` will\n // not be auto-detected to avoid auto-detect conflicts between C and C++\n disableAutodetect: true,\n illegal: '</',\n contains: [].concat(EXPRESSION_CONTEXT, FUNCTION_DECLARATION, EXPRESSION_CONTAINS, [PREPROCESSOR, {\n begin: hljs.IDENT_RE + '::',\n keywords: KEYWORDS\n }, {\n className: 'class',\n beginKeywords: 'enum class struct union',\n end: /[{;:<>=]/,\n contains: [{\n beginKeywords: \"final class struct\"\n }, hljs.TITLE_MODE]\n }]),\n exports: {\n preprocessor: PREPROCESSOR,\n strings: STRINGS,\n keywords: KEYWORDS\n }\n };\n}\nmodule.exports = c;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvYy5qcyJdLCJuYW1lcyI6WyJjIiwiaGxqcyIsInJlZ2V4IiwiQ19MSU5FX0NPTU1FTlRfTU9ERSIsIkNPTU1FTlQiLCJjb250YWlucyIsImJlZ2luIiwiREVDTFRZUEVfQVVUT19SRSIsIk5BTUVTUEFDRV9SRSIsIlRFTVBMQVRFX0FSR1VNRU5UX1JFIiwiRlVOQ1RJT05fVFlQRV9SRSIsIm9wdGlvbmFsIiwiVFlQRVMiLCJjbGFzc05hbWUiLCJ2YXJpYW50cyIsIm1hdGNoIiwiQ0hBUkFDVEVSX0VTQ0FQRVMiLCJTVFJJTkdTIiwiZW5kIiwiaWxsZWdhbCIsIkJBQ0tTTEFTSF9FU0NBUEUiLCJFTkRfU0FNRV9BU19CRUdJTiIsIk5VTUJFUlMiLCJyZWxldmFuY2UiLCJQUkVQUk9DRVNTT1IiLCJrZXl3b3JkcyIsImtleXdvcmQiLCJpbmhlcml0IiwiQ19CTE9DS19DT01NRU5UX01PREUiLCJUSVRMRV9NT0RFIiwiSURFTlRfUkUiLCJGVU5DVElPTl9USVRMRSIsIkNfS0VZV09SRFMiLCJDX1RZUEVTIiwiS0VZV09SRFMiLCJ0eXBlIiwibGl0ZXJhbCIsImJ1aWx0X2luIiwiRVhQUkVTU0lPTl9DT05UQUlOUyIsIkVYUFJFU1NJT05fQ09OVEVYVCIsImJlZ2luS2V5d29yZHMiLCJjb25jYXQiLCJGVU5DVElPTl9ERUNMQVJBVElPTiIsInJldHVybkJlZ2luIiwiZXhjbHVkZUVuZCIsIm5hbWUiLCJhbGlhc2VzIiwiZGlzYWJsZUF1dG9kZXRlY3QiLCJleHBvcnRzIiwicHJlcHJvY2Vzc29yIiwic3RyaW5ncyIsIm1vZHVsZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFNBQVNBLENBQUMsQ0FBQ0MsSUFBSSxFQUFFO0VBQ2YsSUFBTUMsS0FBSyxHQUFHRCxJQUFJLENBQUNDLEtBQUs7RUFDeEI7RUFDQTtFQUNBO0VBQ0EsSUFBTUMsbUJBQW1CLEdBQUdGLElBQUksQ0FBQ0csT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUU7SUFBRUMsUUFBUSxFQUFFLENBQUU7TUFBRUMsS0FBSyxFQUFFO0lBQU8sQ0FBQztFQUFHLENBQUMsQ0FBQztFQUN4RixJQUFNQyxnQkFBZ0IsR0FBRyxvQkFBb0I7RUFDN0MsSUFBTUMsWUFBWSxHQUFHLGlCQUFpQjtFQUN0QyxJQUFNQyxvQkFBb0IsR0FBRyxVQUFVO0VBQ3ZDLElBQU1DLGdCQUFnQixHQUFHLEdBQUcsR0FDeEJILGdCQUFnQixHQUFHLEdBQUcsR0FDdEJMLEtBQUssQ0FBQ1MsUUFBUSxDQUFDSCxZQUFZLENBQUMsR0FDNUIsZUFBZSxHQUFHTixLQUFLLENBQUNTLFFBQVEsQ0FBQ0Ysb0JBQW9CLENBQUMsR0FDeEQsR0FBRztFQUdMLElBQU1HLEtBQUssR0FBRztJQUNaQyxTQUFTLEVBQUUsTUFBTTtJQUNqQkMsUUFBUSxFQUFFLENBQ1I7TUFBRVIsS0FBSyxFQUFFO0lBQXFCLENBQUMsRUFDL0I7TUFBRVMsS0FBSyxFQUFFO0lBQXdCLENBQUM7RUFHdEMsQ0FBQzs7RUFFRDtFQUNBO0VBQ0EsSUFBTUMsaUJBQWlCLEdBQUcsc0RBQXNEO0VBQ2hGLElBQU1DLE9BQU8sR0FBRztJQUNkSixTQUFTLEVBQUUsUUFBUTtJQUNuQkMsUUFBUSxFQUFFLENBQ1I7TUFDRVIsS0FBSyxFQUFFLGFBQWE7TUFDcEJZLEdBQUcsRUFBRSxHQUFHO01BQ1JDLE9BQU8sRUFBRSxLQUFLO01BQ2RkLFFBQVEsRUFBRSxDQUFFSixJQUFJLENBQUNtQixnQkFBZ0I7SUFDbkMsQ0FBQyxFQUNEO01BQ0VkLEtBQUssRUFBRSxlQUFlLEdBQUdVLGlCQUFpQixHQUFHLEtBQUs7TUFDbERFLEdBQUcsRUFBRSxJQUFJO01BQ1RDLE9BQU8sRUFBRTtJQUNYLENBQUMsRUFDRGxCLElBQUksQ0FBQ29CLGlCQUFpQixDQUFDO01BQ3JCZixLQUFLLEVBQUUsa0NBQWtDO01BQ3pDWSxHQUFHLEVBQUU7SUFDUCxDQUFDLENBQUM7RUFFTixDQUFDO0VBRUQsSUFBTUksT0FBTyxHQUFHO0lBQ2RULFNBQVMsRUFBRSxRQUFRO0lBQ25CQyxRQUFRLEVBQUUsQ0FDUjtNQUFFUixLQUFLLEVBQUU7SUFBaUIsQ0FBQyxFQUMzQjtNQUFFQSxLQUFLLEVBQUU7SUFBMkYsQ0FBQyxFQUNyRztNQUFFQSxLQUFLLEVBQUU7SUFBMkYsQ0FBQyxDQUN0RztJQUNEaUIsU0FBUyxFQUFFO0VBQ2IsQ0FBQztFQUVELElBQU1DLFlBQVksR0FBRztJQUNuQlgsU0FBUyxFQUFFLE1BQU07SUFDakJQLEtBQUssRUFBRSxjQUFjO0lBQ3JCWSxHQUFHLEVBQUUsR0FBRztJQUNSTyxRQUFRLEVBQUU7TUFBRUMsT0FBTyxFQUNmLHFEQUFxRCxHQUNuRDtJQUFzQyxDQUFDO0lBQzdDckIsUUFBUSxFQUFFLENBQ1I7TUFDRUMsS0FBSyxFQUFFLE1BQU07TUFDYmlCLFNBQVMsRUFBRTtJQUNiLENBQUMsRUFDRHRCLElBQUksQ0FBQzBCLE9BQU8sQ0FBQ1YsT0FBTyxFQUFFO01BQUVKLFNBQVMsRUFBRTtJQUFTLENBQUMsQ0FBQyxFQUM5QztNQUNFQSxTQUFTLEVBQUUsUUFBUTtNQUNuQlAsS0FBSyxFQUFFO0lBQ1QsQ0FBQyxFQUNESCxtQkFBbUIsRUFDbkJGLElBQUksQ0FBQzJCLG9CQUFvQjtFQUU3QixDQUFDO0VBRUQsSUFBTUMsVUFBVSxHQUFHO0lBQ2pCaEIsU0FBUyxFQUFFLE9BQU87SUFDbEJQLEtBQUssRUFBRUosS0FBSyxDQUFDUyxRQUFRLENBQUNILFlBQVksQ0FBQyxHQUFHUCxJQUFJLENBQUM2QixRQUFRO0lBQ25EUCxTQUFTLEVBQUU7RUFDYixDQUFDO0VBRUQsSUFBTVEsY0FBYyxHQUFHN0IsS0FBSyxDQUFDUyxRQUFRLENBQUNILFlBQVksQ0FBQyxHQUFHUCxJQUFJLENBQUM2QixRQUFRLEdBQUcsU0FBUztFQUUvRSxJQUFNRSxVQUFVLEdBQUcsQ0FDakIsS0FBSyxFQUNMLE1BQU0sRUFDTixPQUFPLEVBQ1AsTUFBTSxFQUNOLFVBQVUsRUFDVixTQUFTLEVBQ1QsSUFBSSxFQUNKLE1BQU0sRUFDTixNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFDTCxTQUFTLEVBQ1QsTUFBTSxFQUNOLElBQUksRUFDSixRQUFRLEVBQ1IsVUFBVSxFQUNWLFVBQVUsRUFDVixRQUFRLEVBQ1IsUUFBUSxFQUNSLFFBQVEsRUFDUixRQUFRLEVBQ1IsU0FBUyxFQUNULE9BQU8sRUFDUCxVQUFVLEVBQ1YsT0FBTyxFQUNQLFVBQVUsRUFDVixVQUFVLEVBQ1YsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLGVBQWU7RUFDZjtFQUNBLFNBQVMsRUFDVCxTQUFTLEVBQ1QsVUFBVSxFQUNWLGVBQWUsRUFDZixjQUFjO0VBQ2Q7RUFDQSxTQUFTLENBQ1Y7RUFFRCxJQUFNQyxPQUFPLEdBQUcsQ0FDZCxPQUFPLEVBQ1AsUUFBUSxFQUNSLFFBQVEsRUFDUixVQUFVLEVBQ1YsS0FBSyxFQUNMLE9BQU8sRUFDUCxNQUFNLEVBQ04sTUFBTSxFQUNOLE1BQU0sRUFDTixPQUFPLEVBQ1AsVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osWUFBWSxFQUNaLGFBQWE7RUFDYjtFQUNBLE9BQU8sRUFDUCxRQUFRO0VBQ1I7RUFDQSxTQUFTLEVBQ1QsTUFBTSxFQUNOLFdBQVcsQ0FDWjtFQUVELElBQU1DLFFBQVEsR0FBRztJQUNmUixPQUFPLEVBQUVNLFVBQVU7SUFDbkJHLElBQUksRUFBRUYsT0FBTztJQUNiRyxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCO0lBQ0FDLFFBQVEsRUFBRSxxR0FBcUcsR0FDM0csNkZBQTZGLEdBQzdGLHlIQUF5SCxHQUN6SCx5RkFBeUYsR0FDekYsZ0dBQWdHLEdBQ2hHLG9HQUFvRyxHQUNwRyx1RkFBdUYsR0FDdkYsdUZBQXVGLEdBQ3ZGO0VBQ04sQ0FBQztFQUVELElBQU1DLG1CQUFtQixHQUFHLENBQzFCZCxZQUFZLEVBQ1paLEtBQUssRUFDTFQsbUJBQW1CLEVBQ25CRixJQUFJLENBQUMyQixvQkFBb0IsRUFDekJOLE9BQU8sRUFDUEwsT0FBTyxDQUNSO0VBRUQsSUFBTXNCLGtCQUFrQixHQUFHO0lBQ3pCO0lBQ0E7SUFDQTtJQUNBekIsUUFBUSxFQUFFLENBQ1I7TUFDRVIsS0FBSyxFQUFFLEdBQUc7TUFDVlksR0FBRyxFQUFFO0lBQ1AsQ0FBQyxFQUNEO01BQ0VaLEtBQUssRUFBRSxJQUFJO01BQ1hZLEdBQUcsRUFBRTtJQUNQLENBQUMsRUFDRDtNQUNFc0IsYUFBYSxFQUFFLHVCQUF1QjtNQUN0Q3RCLEdBQUcsRUFBRTtJQUNQLENBQUMsQ0FDRjtJQUNETyxRQUFRLEVBQUVTLFFBQVE7SUFDbEI3QixRQUFRLEVBQUVpQyxtQkFBbUIsQ0FBQ0csTUFBTSxDQUFDLENBQ25DO01BQ0VuQyxLQUFLLEVBQUUsSUFBSTtNQUNYWSxHQUFHLEVBQUUsSUFBSTtNQUNUTyxRQUFRLEVBQUVTLFFBQVE7TUFDbEI3QixRQUFRLEVBQUVpQyxtQkFBbUIsQ0FBQ0csTUFBTSxDQUFDLENBQUUsTUFBTSxDQUFFLENBQUM7TUFDaERsQixTQUFTLEVBQUU7SUFDYixDQUFDLENBQ0YsQ0FBQztJQUNGQSxTQUFTLEVBQUU7RUFDYixDQUFDO0VBRUQsSUFBTW1CLG9CQUFvQixHQUFHO0lBQzNCcEMsS0FBSyxFQUFFLEdBQUcsR0FBR0ksZ0JBQWdCLEdBQUcsY0FBYyxHQUFHcUIsY0FBYztJQUMvRFksV0FBVyxFQUFFLElBQUk7SUFDakJ6QixHQUFHLEVBQUUsT0FBTztJQUNaMEIsVUFBVSxFQUFFLElBQUk7SUFDaEJuQixRQUFRLEVBQUVTLFFBQVE7SUFDbEJmLE9BQU8sRUFBRSxnQkFBZ0I7SUFDekJkLFFBQVEsRUFBRSxDQUNSO01BQUU7TUFDQUMsS0FBSyxFQUFFQyxnQkFBZ0I7TUFDdkJrQixRQUFRLEVBQUVTLFFBQVE7TUFDbEJYLFNBQVMsRUFBRTtJQUNiLENBQUMsRUFDRDtNQUNFakIsS0FBSyxFQUFFeUIsY0FBYztNQUNyQlksV0FBVyxFQUFFLElBQUk7TUFDakJ0QyxRQUFRLEVBQUUsQ0FBRUosSUFBSSxDQUFDMEIsT0FBTyxDQUFDRSxVQUFVLEVBQUU7UUFBRWhCLFNBQVMsRUFBRTtNQUFpQixDQUFDLENBQUMsQ0FBRTtNQUN2RVUsU0FBUyxFQUFFO0lBQ2IsQ0FBQztJQUNEO0lBQ0E7SUFDQTtNQUNFQSxTQUFTLEVBQUUsQ0FBQztNQUNaUixLQUFLLEVBQUU7SUFDVCxDQUFDLEVBQ0Q7TUFDRUYsU0FBUyxFQUFFLFFBQVE7TUFDbkJQLEtBQUssRUFBRSxJQUFJO01BQ1hZLEdBQUcsRUFBRSxJQUFJO01BQ1RPLFFBQVEsRUFBRVMsUUFBUTtNQUNsQlgsU0FBUyxFQUFFLENBQUM7TUFDWmxCLFFBQVEsRUFBRSxDQUNSRixtQkFBbUIsRUFDbkJGLElBQUksQ0FBQzJCLG9CQUFvQixFQUN6QlgsT0FBTyxFQUNQSyxPQUFPLEVBQ1BWLEtBQUs7TUFDTDtNQUNBO1FBQ0VOLEtBQUssRUFBRSxJQUFJO1FBQ1hZLEdBQUcsRUFBRSxJQUFJO1FBQ1RPLFFBQVEsRUFBRVMsUUFBUTtRQUNsQlgsU0FBUyxFQUFFLENBQUM7UUFDWmxCLFFBQVEsRUFBRSxDQUNSLE1BQU0sRUFDTkYsbUJBQW1CLEVBQ25CRixJQUFJLENBQUMyQixvQkFBb0IsRUFDekJYLE9BQU8sRUFDUEssT0FBTyxFQUNQVixLQUFLO01BRVQsQ0FBQztJQUVMLENBQUMsRUFDREEsS0FBSyxFQUNMVCxtQkFBbUIsRUFDbkJGLElBQUksQ0FBQzJCLG9CQUFvQixFQUN6QkosWUFBWTtFQUVoQixDQUFDO0VBRUQsT0FBTztJQUNMcUIsSUFBSSxFQUFFLEdBQUc7SUFDVEMsT0FBTyxFQUFFLENBQUUsR0FBRyxDQUFFO0lBQ2hCckIsUUFBUSxFQUFFUyxRQUFRO0lBQ2xCO0lBQ0E7SUFDQWEsaUJBQWlCLEVBQUUsSUFBSTtJQUN2QjVCLE9BQU8sRUFBRSxJQUFJO0lBQ2JkLFFBQVEsRUFBRSxFQUFFLENBQUNvQyxNQUFNLENBQ2pCRixrQkFBa0IsRUFDbEJHLG9CQUFvQixFQUNwQkosbUJBQW1CLEVBQ25CLENBQ0VkLFlBQVksRUFDWjtNQUNFbEIsS0FBSyxFQUFFTCxJQUFJLENBQUM2QixRQUFRLEdBQUcsSUFBSTtNQUMzQkwsUUFBUSxFQUFFUztJQUNaLENBQUMsRUFDRDtNQUNFckIsU0FBUyxFQUFFLE9BQU87TUFDbEIyQixhQUFhLEVBQUUseUJBQXlCO01BQ3hDdEIsR0FBRyxFQUFFLFVBQVU7TUFDZmIsUUFBUSxFQUFFLENBQ1I7UUFBRW1DLGFBQWEsRUFBRTtNQUFxQixDQUFDLEVBQ3ZDdkMsSUFBSSxDQUFDNEIsVUFBVTtJQUVuQixDQUFDLENBQ0YsQ0FBQztJQUNKbUIsT0FBTyxFQUFFO01BQ1BDLFlBQVksRUFBRXpCLFlBQVk7TUFDMUIwQixPQUFPLEVBQUVqQyxPQUFPO01BQ2hCUSxRQUFRLEVBQUVTO0lBQ1o7RUFDRixDQUFDO0FBQ0g7QUFFQWlCLE1BQU0sQ0FBQ0gsT0FBTyxHQUFHaEQsQ0FBQyIsImZpbGUiOiI1Ny5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG5MYW5ndWFnZTogQ1xuQ2F0ZWdvcnk6IGNvbW1vbiwgc3lzdGVtXG5XZWJzaXRlOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9DXyhwcm9ncmFtbWluZ19sYW5ndWFnZSlcbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBjKGhsanMpIHtcbiAgY29uc3QgcmVnZXggPSBobGpzLnJlZ2V4O1xuICAvLyBhZGRlZCBmb3IgaGlzdG9yaWMgcmVhc29ucyBiZWNhdXNlIGBobGpzLkNfTElORV9DT01NRU5UX01PREVgIGRvZXNcbiAgLy8gbm90IGluY2x1ZGUgc3VjaCBzdXBwb3J0IG5vciBjYW4gd2UgYmUgc3VyZSBhbGwgdGhlIGdyYW1tYXJzIGRlcGVuZGluZ1xuICAvLyBvbiBpdCB3b3VsZCBkZXNpcmUgdGhpcyBiZWhhdmlvclxuICBjb25zdCBDX0xJTkVfQ09NTUVOVF9NT0RFID0gaGxqcy5DT01NRU5UKCcvLycsICckJywgeyBjb250YWluczogWyB7IGJlZ2luOiAvXFxcXFxcbi8gfSBdIH0pO1xuICBjb25zdCBERUNMVFlQRV9BVVRPX1JFID0gJ2RlY2x0eXBlXFxcXChhdXRvXFxcXCknO1xuICBjb25zdCBOQU1FU1BBQ0VfUkUgPSAnW2EtekEtWl9dXFxcXHcqOjonO1xuICBjb25zdCBURU1QTEFURV9BUkdVTUVOVF9SRSA9ICc8W148Pl0rPic7XG4gIGNvbnN0IEZVTkNUSU9OX1RZUEVfUkUgPSAnKCdcbiAgICArIERFQ0xUWVBFX0FVVE9fUkUgKyAnfCdcbiAgICArIHJlZ2V4Lm9wdGlvbmFsKE5BTUVTUEFDRV9SRSlcbiAgICArICdbYS16QS1aX11cXFxcdyonICsgcmVnZXgub3B0aW9uYWwoVEVNUExBVEVfQVJHVU1FTlRfUkUpXG4gICsgJyknO1xuXG5cbiAgY29uc3QgVFlQRVMgPSB7XG4gICAgY2xhc3NOYW1lOiAndHlwZScsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHsgYmVnaW46ICdcXFxcYlthLXpcXFxcZF9dKl90XFxcXGInIH0sXG4gICAgICB7IG1hdGNoOiAvXFxiYXRvbWljX1thLXpdezMsNn1cXGIvIH1cbiAgICBdXG5cbiAgfTtcblxuICAvLyBodHRwczovL2VuLmNwcHJlZmVyZW5jZS5jb20vdy9jcHAvbGFuZ3VhZ2UvZXNjYXBlXG4gIC8vIFxcXFwgXFx4IFxceEZGIFxcdTI4MzcgXFx1MDAzMjM3NDcgXFwzNzRcbiAgY29uc3QgQ0hBUkFDVEVSX0VTQ0FQRVMgPSAnXFxcXFxcXFwoeFswLTlBLUZhLWZdezJ9fHVbMC05QS1GYS1mXXs0LDh9fFswLTddezN9fFxcXFxTKSc7XG4gIGNvbnN0IFNUUklOR1MgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogJyh1OD98VXxMKT9cIicsXG4gICAgICAgIGVuZDogJ1wiJyxcbiAgICAgICAgaWxsZWdhbDogJ1xcXFxuJyxcbiAgICAgICAgY29udGFpbnM6IFsgaGxqcy5CQUNLU0xBU0hfRVNDQVBFIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnKHU4P3xVfEwpP1xcJygnICsgQ0hBUkFDVEVSX0VTQ0FQRVMgKyBcInwuKVwiLFxuICAgICAgICBlbmQ6ICdcXCcnLFxuICAgICAgICBpbGxlZ2FsOiAnLidcbiAgICAgIH0sXG4gICAgICBobGpzLkVORF9TQU1FX0FTX0JFR0lOKHtcbiAgICAgICAgYmVnaW46IC8oPzp1OD98VXxMKT9SXCIoW14oKVxcXFwgXXswLDE2fSlcXCgvLFxuICAgICAgICBlbmQ6IC9cXCkoW14oKVxcXFwgXXswLDE2fSlcIi9cbiAgICAgIH0pXG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IE5VTUJFUlMgPSB7XG4gICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICB2YXJpYW50czogW1xuICAgICAgeyBiZWdpbjogJ1xcXFxiKDBiWzAxXFwnXSspJyB9LFxuICAgICAgeyBiZWdpbjogJygtPylcXFxcYihbXFxcXGRcXCddKyhcXFxcLltcXFxcZFxcJ10qKT98XFxcXC5bXFxcXGRcXCddKykoKGxsfExMfGx8TCkodXxVKT98KHV8VSkobGx8TEx8bHxMKT98ZnxGfGJ8QiknIH0sXG4gICAgICB7IGJlZ2luOiAnKC0/KShcXFxcYjBbeFhdW2EtZkEtRjAtOVxcJ10rfChcXFxcYltcXFxcZFxcJ10rKFxcXFwuW1xcXFxkXFwnXSopP3xcXFxcLltcXFxcZFxcJ10rKShbZUVdWy0rXT9bXFxcXGRcXCddKyk/KScgfVxuICAgIF0sXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgY29uc3QgUFJFUFJPQ0VTU09SID0ge1xuICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgIGJlZ2luOiAvI1xccypbYS16XStcXGIvLFxuICAgIGVuZDogLyQvLFxuICAgIGtleXdvcmRzOiB7IGtleXdvcmQ6XG4gICAgICAgICdpZiBlbHNlIGVsaWYgZW5kaWYgZGVmaW5lIHVuZGVmIHdhcm5pbmcgZXJyb3IgbGluZSAnXG4gICAgICAgICsgJ3ByYWdtYSBfUHJhZ21hIGlmZGVmIGlmbmRlZiBpbmNsdWRlJyB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFxcXFxcbi8sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIGhsanMuaW5oZXJpdChTVFJJTkdTLCB7IGNsYXNzTmFtZTogJ3N0cmluZycgfSksXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIGJlZ2luOiAvPC4qPz4vXG4gICAgICB9LFxuICAgICAgQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREVcbiAgICBdXG4gIH07XG5cbiAgY29uc3QgVElUTEVfTU9ERSA9IHtcbiAgICBjbGFzc05hbWU6ICd0aXRsZScsXG4gICAgYmVnaW46IHJlZ2V4Lm9wdGlvbmFsKE5BTUVTUEFDRV9SRSkgKyBobGpzLklERU5UX1JFLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIGNvbnN0IEZVTkNUSU9OX1RJVExFID0gcmVnZXgub3B0aW9uYWwoTkFNRVNQQUNFX1JFKSArIGhsanMuSURFTlRfUkUgKyAnXFxcXHMqXFxcXCgnO1xuXG4gIGNvbnN0IENfS0VZV09SRFMgPSBbXG4gICAgXCJhc21cIixcbiAgICBcImF1dG9cIixcbiAgICBcImJyZWFrXCIsXG4gICAgXCJjYXNlXCIsXG4gICAgXCJjb250aW51ZVwiLFxuICAgIFwiZGVmYXVsdFwiLFxuICAgIFwiZG9cIixcbiAgICBcImVsc2VcIixcbiAgICBcImVudW1cIixcbiAgICBcImV4dGVyblwiLFxuICAgIFwiZm9yXCIsXG4gICAgXCJmb3J0cmFuXCIsXG4gICAgXCJnb3RvXCIsXG4gICAgXCJpZlwiLFxuICAgIFwiaW5saW5lXCIsXG4gICAgXCJyZWdpc3RlclwiLFxuICAgIFwicmVzdHJpY3RcIixcbiAgICBcInJldHVyblwiLFxuICAgIFwic2l6ZW9mXCIsXG4gICAgXCJzdHJ1Y3RcIixcbiAgICBcInN3aXRjaFwiLFxuICAgIFwidHlwZWRlZlwiLFxuICAgIFwidW5pb25cIixcbiAgICBcInZvbGF0aWxlXCIsXG4gICAgXCJ3aGlsZVwiLFxuICAgIFwiX0FsaWduYXNcIixcbiAgICBcIl9BbGlnbm9mXCIsXG4gICAgXCJfQXRvbWljXCIsXG4gICAgXCJfR2VuZXJpY1wiLFxuICAgIFwiX05vcmV0dXJuXCIsXG4gICAgXCJfU3RhdGljX2Fzc2VydFwiLFxuICAgIFwiX1RocmVhZF9sb2NhbFwiLFxuICAgIC8vIGFsaWFzZXNcbiAgICBcImFsaWduYXNcIixcbiAgICBcImFsaWdub2ZcIixcbiAgICBcIm5vcmV0dXJuXCIsXG4gICAgXCJzdGF0aWNfYXNzZXJ0XCIsXG4gICAgXCJ0aHJlYWRfbG9jYWxcIixcbiAgICAvLyBub3QgYSBDIGtleXdvcmQgYnV0IGlzLCBmb3IgYWxsIGludGVudHMgYW5kIHB1cnBvc2VzLCB0cmVhdGVkIGV4YWN0bHkgbGlrZSBvbmUuXG4gICAgXCJfUHJhZ21hXCJcbiAgXTtcblxuICBjb25zdCBDX1RZUEVTID0gW1xuICAgIFwiZmxvYXRcIixcbiAgICBcImRvdWJsZVwiLFxuICAgIFwic2lnbmVkXCIsXG4gICAgXCJ1bnNpZ25lZFwiLFxuICAgIFwiaW50XCIsXG4gICAgXCJzaG9ydFwiLFxuICAgIFwibG9uZ1wiLFxuICAgIFwiY2hhclwiLFxuICAgIFwidm9pZFwiLFxuICAgIFwiX0Jvb2xcIixcbiAgICBcIl9Db21wbGV4XCIsXG4gICAgXCJfSW1hZ2luYXJ5XCIsXG4gICAgXCJfRGVjaW1hbDMyXCIsXG4gICAgXCJfRGVjaW1hbDY0XCIsXG4gICAgXCJfRGVjaW1hbDEyOFwiLFxuICAgIC8vIG1vZGlmaWVyc1xuICAgIFwiY29uc3RcIixcbiAgICBcInN0YXRpY1wiLFxuICAgIC8vIGFsaWFzZXNcbiAgICBcImNvbXBsZXhcIixcbiAgICBcImJvb2xcIixcbiAgICBcImltYWdpbmFyeVwiXG4gIF07XG5cbiAgY29uc3QgS0VZV09SRFMgPSB7XG4gICAga2V5d29yZDogQ19LRVlXT1JEUyxcbiAgICB0eXBlOiBDX1RZUEVTLFxuICAgIGxpdGVyYWw6ICd0cnVlIGZhbHNlIE5VTEwnLFxuICAgIC8vIFRPRE86IGFwcGx5IGhpbnRpbmcgd29yayBzaW1pbGFyIHRvIHdoYXQgd2FzIGRvbmUgaW4gY3BwLmpzXG4gICAgYnVpbHRfaW46ICdzdGQgc3RyaW5nIHdzdHJpbmcgY2luIGNvdXQgY2VyciBjbG9nIHN0ZGluIHN0ZG91dCBzdGRlcnIgc3RyaW5nc3RyZWFtIGlzdHJpbmdzdHJlYW0gb3N0cmluZ3N0cmVhbSAnXG4gICAgICArICdhdXRvX3B0ciBkZXF1ZSBsaXN0IHF1ZXVlIHN0YWNrIHZlY3RvciBtYXAgc2V0IHBhaXIgYml0c2V0IG11bHRpc2V0IG11bHRpbWFwIHVub3JkZXJlZF9zZXQgJ1xuICAgICAgKyAndW5vcmRlcmVkX21hcCB1bm9yZGVyZWRfbXVsdGlzZXQgdW5vcmRlcmVkX211bHRpbWFwIHByaW9yaXR5X3F1ZXVlIG1ha2VfcGFpciBhcnJheSBzaGFyZWRfcHRyIGFib3J0IHRlcm1pbmF0ZSBhYnMgYWNvcyAnXG4gICAgICArICdhc2luIGF0YW4yIGF0YW4gY2FsbG9jIGNlaWwgY29zaCBjb3MgZXhpdCBleHAgZmFicyBmbG9vciBmbW9kIGZwcmludGYgZnB1dHMgZnJlZSBmcmV4cCAnXG4gICAgICArICdmc2NhbmYgZnV0dXJlIGlzYWxudW0gaXNhbHBoYSBpc2NudHJsIGlzZGlnaXQgaXNncmFwaCBpc2xvd2VyIGlzcHJpbnQgaXNwdW5jdCBpc3NwYWNlIGlzdXBwZXIgJ1xuICAgICAgKyAnaXN4ZGlnaXQgdG9sb3dlciB0b3VwcGVyIGxhYnMgbGRleHAgbG9nMTAgbG9nIG1hbGxvYyByZWFsbG9jIG1lbWNociBtZW1jbXAgbWVtY3B5IG1lbXNldCBtb2RmIHBvdyAnXG4gICAgICArICdwcmludGYgcHV0Y2hhciBwdXRzIHNjYW5mIHNpbmggc2luIHNucHJpbnRmIHNwcmludGYgc3FydCBzc2NhbmYgc3RyY2F0IHN0cmNociBzdHJjbXAgJ1xuICAgICAgKyAnc3RyY3B5IHN0cmNzcG4gc3RybGVuIHN0cm5jYXQgc3RybmNtcCBzdHJuY3B5IHN0cnBicmsgc3RycmNociBzdHJzcG4gc3Ryc3RyIHRhbmggdGFuICdcbiAgICAgICsgJ3ZmcHJpbnRmIHZwcmludGYgdnNwcmludGYgZW5kbCBpbml0aWFsaXplcl9saXN0IHVuaXF1ZV9wdHInLFxuICB9O1xuXG4gIGNvbnN0IEVYUFJFU1NJT05fQ09OVEFJTlMgPSBbXG4gICAgUFJFUFJPQ0VTU09SLFxuICAgIFRZUEVTLFxuICAgIENfTElORV9DT01NRU5UX01PREUsXG4gICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICBOVU1CRVJTLFxuICAgIFNUUklOR1NcbiAgXTtcblxuICBjb25zdCBFWFBSRVNTSU9OX0NPTlRFWFQgPSB7XG4gICAgLy8gVGhpcyBtb2RlIGNvdmVycyBleHByZXNzaW9uIGNvbnRleHQgd2hlcmUgd2UgY2FuJ3QgZXhwZWN0IGEgZnVuY3Rpb25cbiAgICAvLyBkZWZpbml0aW9uIGFuZCBzaG91bGRuJ3QgaGlnaGxpZ2h0IGFueXRoaW5nIHRoYXQgbG9va3MgbGlrZSBvbmU6XG4gICAgLy8gYHJldHVybiBzb21lKClgLCBgZWxzZSBpZigpYCwgYCh4KnN1bSgxLCAyKSlgXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC89LyxcbiAgICAgICAgZW5kOiAvOy9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFwoLyxcbiAgICAgICAgZW5kOiAvXFwpL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ25ldyB0aHJvdyByZXR1cm4gZWxzZScsXG4gICAgICAgIGVuZDogLzsvXG4gICAgICB9XG4gICAgXSxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgY29udGFpbnM6IEVYUFJFU1NJT05fQ09OVEFJTlMuY29uY2F0KFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXCgvLFxuICAgICAgICBlbmQ6IC9cXCkvLFxuICAgICAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgICAgIGNvbnRhaW5zOiBFWFBSRVNTSU9OX0NPTlRBSU5TLmNvbmNhdChbICdzZWxmJyBdKSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9XG4gICAgXSksXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgY29uc3QgRlVOQ1RJT05fREVDTEFSQVRJT04gPSB7XG4gICAgYmVnaW46ICcoJyArIEZVTkNUSU9OX1RZUEVfUkUgKyAnW1xcXFwqJlxcXFxzXSspKycgKyBGVU5DVElPTl9USVRMRSxcbiAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICBlbmQ6IC9bezs9XS8sXG4gICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgaWxsZWdhbDogL1teXFx3XFxzXFwqJjo8Pi5dLyxcbiAgICBjb250YWluczogW1xuICAgICAgeyAvLyB0byBwcmV2ZW50IGl0IGZyb20gYmVpbmcgY29uZnVzZWQgYXMgdGhlIGZ1bmN0aW9uIHRpdGxlXG4gICAgICAgIGJlZ2luOiBERUNMVFlQRV9BVVRPX1JFLFxuICAgICAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IEZVTkNUSU9OX1RJVExFLFxuICAgICAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAgY29udGFpbnM6IFsgaGxqcy5pbmhlcml0KFRJVExFX01PREUsIHsgY2xhc3NOYW1lOiBcInRpdGxlLmZ1bmN0aW9uXCIgfSkgXSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgLy8gYWxsb3cgZm9yIG11bHRpcGxlIGRlY2xhcmF0aW9ucywgZS5nLjpcbiAgICAgIC8vIGV4dGVybiB2b2lkIGYoaW50KSwgZyhjaGFyKTtcbiAgICAgIHtcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICBtYXRjaDogLywvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgICAgICBiZWdpbjogL1xcKC8sXG4gICAgICAgIGVuZDogL1xcKS8sXG4gICAgICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIENfTElORV9DT01NRU5UX01PREUsXG4gICAgICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgICBTVFJJTkdTLFxuICAgICAgICAgIE5VTUJFUlMsXG4gICAgICAgICAgVFlQRVMsXG4gICAgICAgICAgLy8gQ291bnQgbWF0Y2hpbmcgcGFyZW50aGVzZXMuXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46IC9cXCgvLFxuICAgICAgICAgICAgZW5kOiAvXFwpLyxcbiAgICAgICAgICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgICdzZWxmJyxcbiAgICAgICAgICAgICAgQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgICAgICAgU1RSSU5HUyxcbiAgICAgICAgICAgICAgTlVNQkVSUyxcbiAgICAgICAgICAgICAgVFlQRVNcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBUWVBFUyxcbiAgICAgIENfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAgUFJFUFJPQ0VTU09SXG4gICAgXVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogXCJDXCIsXG4gICAgYWxpYXNlczogWyAnaCcgXSxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgLy8gVW50aWwgZGlmZmVyZW50aWF0aW9ucyBhcmUgYWRkZWQgYmV0d2VlbiBgY2AgYW5kIGBjcHBgLCBgY2Agd2lsbFxuICAgIC8vIG5vdCBiZSBhdXRvLWRldGVjdGVkIHRvIGF2b2lkIGF1dG8tZGV0ZWN0IGNvbmZsaWN0cyBiZXR3ZWVuIEMgYW5kIEMrK1xuICAgIGRpc2FibGVBdXRvZGV0ZWN0OiB0cnVlLFxuICAgIGlsbGVnYWw6ICc8LycsXG4gICAgY29udGFpbnM6IFtdLmNvbmNhdChcbiAgICAgIEVYUFJFU1NJT05fQ09OVEVYVCxcbiAgICAgIEZVTkNUSU9OX0RFQ0xBUkFUSU9OLFxuICAgICAgRVhQUkVTU0lPTl9DT05UQUlOUyxcbiAgICAgIFtcbiAgICAgICAgUFJFUFJPQ0VTU09SLFxuICAgICAgICB7XG4gICAgICAgICAgYmVnaW46IGhsanMuSURFTlRfUkUgKyAnOjonLFxuICAgICAgICAgIGtleXdvcmRzOiBLRVlXT1JEU1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgY2xhc3NOYW1lOiAnY2xhc3MnLFxuICAgICAgICAgIGJlZ2luS2V5d29yZHM6ICdlbnVtIGNsYXNzIHN0cnVjdCB1bmlvbicsXG4gICAgICAgICAgZW5kOiAvW3s7Ojw+PV0vLFxuICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICB7IGJlZ2luS2V5d29yZHM6IFwiZmluYWwgY2xhc3Mgc3RydWN0XCIgfSxcbiAgICAgICAgICAgIGhsanMuVElUTEVfTU9ERVxuICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgICAgXSksXG4gICAgZXhwb3J0czoge1xuICAgICAgcHJlcHJvY2Vzc29yOiBQUkVQUk9DRVNTT1IsXG4gICAgICBzdHJpbmdzOiBTVFJJTkdTLFxuICAgICAga2V5d29yZHM6IEtFWVdPUkRTXG4gICAgfVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGM7XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///57\n");
  1610. /***/ }),
  1611. /* 58 */
  1612. /*!******************************************************************************************************!*\
  1613. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/highlight.js/lib/languages/cpp.js ***!
  1614. \******************************************************************************************************/
  1615. /*! no static exports found */
  1616. /***/ (function(module, exports) {
  1617. eval("/*\nLanguage: C++\nCategory: common, system\nWebsite: https://isocpp.org\n*/\n\n/** @type LanguageFn */\nfunction cpp(hljs) {\n var regex = hljs.regex;\n // added for historic reasons because `hljs.C_LINE_COMMENT_MODE` does\n // not include such support nor can we be sure all the grammars depending\n // on it would desire this behavior\n var C_LINE_COMMENT_MODE = hljs.COMMENT('//', '$', {\n contains: [{\n begin: /\\\\\\n/\n }]\n });\n var DECLTYPE_AUTO_RE = 'decltype\\\\(auto\\\\)';\n var NAMESPACE_RE = '[a-zA-Z_]\\\\w*::';\n var TEMPLATE_ARGUMENT_RE = '<[^<>]+>';\n var FUNCTION_TYPE_RE = '(?!struct)(' + DECLTYPE_AUTO_RE + '|' + regex.optional(NAMESPACE_RE) + '[a-zA-Z_]\\\\w*' + regex.optional(TEMPLATE_ARGUMENT_RE) + ')';\n var CPP_PRIMITIVE_TYPES = {\n className: 'type',\n begin: '\\\\b[a-z\\\\d_]*_t\\\\b'\n };\n\n // https://en.cppreference.com/w/cpp/language/escape\n // \\\\ \\x \\xFF \\u2837 \\u00323747 \\374\n var CHARACTER_ESCAPES = '\\\\\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\\\S)';\n var STRINGS = {\n className: 'string',\n variants: [{\n begin: '(u8?|U|L)?\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [hljs.BACKSLASH_ESCAPE]\n }, {\n begin: '(u8?|U|L)?\\'(' + CHARACTER_ESCAPES + '|.)',\n end: '\\'',\n illegal: '.'\n }, hljs.END_SAME_AS_BEGIN({\n begin: /(?:u8?|U|L)?R\"([^()\\\\ ]{0,16})\\(/,\n end: /\\)([^()\\\\ ]{0,16})\"/\n })]\n };\n var NUMBERS = {\n className: 'number',\n variants: [{\n begin: '\\\\b(0b[01\\']+)'\n }, {\n begin: '(-?)\\\\b([\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)'\n }, {\n begin: '(-?)(\\\\b0[xX][a-fA-F0-9\\']+|(\\\\b[\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)([eE][-+]?[\\\\d\\']+)?)'\n }],\n relevance: 0\n };\n var PREPROCESSOR = {\n className: 'meta',\n begin: /#\\s*[a-z]+\\b/,\n end: /$/,\n keywords: {\n keyword: 'if else elif endif define undef warning error line ' + 'pragma _Pragma ifdef ifndef include'\n },\n contains: [{\n begin: /\\\\\\n/,\n relevance: 0\n }, hljs.inherit(STRINGS, {\n className: 'string'\n }), {\n className: 'string',\n begin: /<.*?>/\n }, C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE]\n };\n var TITLE_MODE = {\n className: 'title',\n begin: regex.optional(NAMESPACE_RE) + hljs.IDENT_RE,\n relevance: 0\n };\n var FUNCTION_TITLE = regex.optional(NAMESPACE_RE) + hljs.IDENT_RE + '\\\\s*\\\\(';\n\n // https://en.cppreference.com/w/cpp/keyword\n var RESERVED_KEYWORDS = ['alignas', 'alignof', 'and', 'and_eq', 'asm', 'atomic_cancel', 'atomic_commit', 'atomic_noexcept', 'auto', 'bitand', 'bitor', 'break', 'case', 'catch', 'class', 'co_await', 'co_return', 'co_yield', 'compl', 'concept', 'const_cast|10', 'consteval', 'constexpr', 'constinit', 'continue', 'decltype', 'default', 'delete', 'do', 'dynamic_cast|10', 'else', 'enum', 'explicit', 'export', 'extern', 'false', 'final', 'for', 'friend', 'goto', 'if', 'import', 'inline', 'module', 'mutable', 'namespace', 'new', 'noexcept', 'not', 'not_eq', 'nullptr', 'operator', 'or', 'or_eq', 'override', 'private', 'protected', 'public', 'reflexpr', 'register', 'reinterpret_cast|10', 'requires', 'return', 'sizeof', 'static_assert', 'static_cast|10', 'struct', 'switch', 'synchronized', 'template', 'this', 'thread_local', 'throw', 'transaction_safe', 'transaction_safe_dynamic', 'true', 'try', 'typedef', 'typeid', 'typename', 'union', 'using', 'virtual', 'volatile', 'while', 'xor', 'xor_eq'];\n\n // https://en.cppreference.com/w/cpp/keyword\n var RESERVED_TYPES = ['bool', 'char', 'char16_t', 'char32_t', 'char8_t', 'double', 'float', 'int', 'long', 'short', 'void', 'wchar_t', 'unsigned', 'signed', 'const', 'static'];\n var TYPE_HINTS = ['any', 'auto_ptr', 'barrier', 'binary_semaphore', 'bitset', 'complex', 'condition_variable', 'condition_variable_any', 'counting_semaphore', 'deque', 'false_type', 'future', 'imaginary', 'initializer_list', 'istringstream', 'jthread', 'latch', 'lock_guard', 'multimap', 'multiset', 'mutex', 'optional', 'ostringstream', 'packaged_task', 'pair', 'promise', 'priority_queue', 'queue', 'recursive_mutex', 'recursive_timed_mutex', 'scoped_lock', 'set', 'shared_future', 'shared_lock', 'shared_mutex', 'shared_timed_mutex', 'shared_ptr', 'stack', 'string_view', 'stringstream', 'timed_mutex', 'thread', 'true_type', 'tuple', 'unique_lock', 'unique_ptr', 'unordered_map', 'unordered_multimap', 'unordered_multiset', 'unordered_set', 'variant', 'vector', 'weak_ptr', 'wstring', 'wstring_view'];\n var FUNCTION_HINTS = ['abort', 'abs', 'acos', 'apply', 'as_const', 'asin', 'atan', 'atan2', 'calloc', 'ceil', 'cerr', 'cin', 'clog', 'cos', 'cosh', 'cout', 'declval', 'endl', 'exchange', 'exit', 'exp', 'fabs', 'floor', 'fmod', 'forward', 'fprintf', 'fputs', 'free', 'frexp', 'fscanf', 'future', 'invoke', 'isalnum', 'isalpha', 'iscntrl', 'isdigit', 'isgraph', 'islower', 'isprint', 'ispunct', 'isspace', 'isupper', 'isxdigit', 'labs', 'launder', 'ldexp', 'log', 'log10', 'make_pair', 'make_shared', 'make_shared_for_overwrite', 'make_tuple', 'make_unique', 'malloc', 'memchr', 'memcmp', 'memcpy', 'memset', 'modf', 'move', 'pow', 'printf', 'putchar', 'puts', 'realloc', 'scanf', 'sin', 'sinh', 'snprintf', 'sprintf', 'sqrt', 'sscanf', 'std', 'stderr', 'stdin', 'stdout', 'strcat', 'strchr', 'strcmp', 'strcpy', 'strcspn', 'strlen', 'strncat', 'strncmp', 'strncpy', 'strpbrk', 'strrchr', 'strspn', 'strstr', 'swap', 'tan', 'tanh', 'terminate', 'to_underlying', 'tolower', 'toupper', 'vfprintf', 'visit', 'vprintf', 'vsprintf'];\n var LITERALS = ['NULL', 'false', 'nullopt', 'nullptr', 'true'];\n\n // https://en.cppreference.com/w/cpp/keyword\n var BUILT_IN = ['_Pragma'];\n var CPP_KEYWORDS = {\n type: RESERVED_TYPES,\n keyword: RESERVED_KEYWORDS,\n literal: LITERALS,\n built_in: BUILT_IN,\n _type_hints: TYPE_HINTS\n };\n var FUNCTION_DISPATCH = {\n className: 'function.dispatch',\n relevance: 0,\n keywords: {\n // Only for relevance, not highlighting.\n _hint: FUNCTION_HINTS\n },\n begin: regex.concat(/\\b/, /(?!decltype)/, /(?!if)/, /(?!for)/, /(?!switch)/, /(?!while)/, hljs.IDENT_RE, regex.lookahead(/(<[^<>]+>|)\\s*\\(/))\n };\n var EXPRESSION_CONTAINS = [FUNCTION_DISPATCH, PREPROCESSOR, CPP_PRIMITIVE_TYPES, C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE, NUMBERS, STRINGS];\n var EXPRESSION_CONTEXT = {\n // This mode covers expression context where we can't expect a function\n // definition and shouldn't highlight anything that looks like one:\n // `return some()`, `else if()`, `(x*sum(1, 2))`\n variants: [{\n begin: /=/,\n end: /;/\n }, {\n begin: /\\(/,\n end: /\\)/\n }, {\n beginKeywords: 'new throw return else',\n end: /;/\n }],\n keywords: CPP_KEYWORDS,\n contains: EXPRESSION_CONTAINS.concat([{\n begin: /\\(/,\n end: /\\)/,\n keywords: CPP_KEYWORDS,\n contains: EXPRESSION_CONTAINS.concat(['self']),\n relevance: 0\n }]),\n relevance: 0\n };\n var FUNCTION_DECLARATION = {\n className: 'function',\n begin: '(' + FUNCTION_TYPE_RE + '[\\\\*&\\\\s]+)+' + FUNCTION_TITLE,\n returnBegin: true,\n end: /[{;=]/,\n excludeEnd: true,\n keywords: CPP_KEYWORDS,\n illegal: /[^\\w\\s\\*&:<>.]/,\n contains: [{\n // to prevent it from being confused as the function title\n begin: DECLTYPE_AUTO_RE,\n keywords: CPP_KEYWORDS,\n relevance: 0\n }, {\n begin: FUNCTION_TITLE,\n returnBegin: true,\n contains: [TITLE_MODE],\n relevance: 0\n },\n // needed because we do not have look-behind on the below rule\n // to prevent it from grabbing the final : in a :: pair\n {\n begin: /::/,\n relevance: 0\n },\n // initializers\n {\n begin: /:/,\n endsWithParent: true,\n contains: [STRINGS, NUMBERS]\n },\n // allow for multiple declarations, e.g.:\n // extern void f(int), g(char);\n {\n relevance: 0,\n match: /,/\n }, {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n keywords: CPP_KEYWORDS,\n relevance: 0,\n contains: [C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE, STRINGS, NUMBERS, CPP_PRIMITIVE_TYPES,\n // Count matching parentheses.\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: CPP_KEYWORDS,\n relevance: 0,\n contains: ['self', C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE, STRINGS, NUMBERS, CPP_PRIMITIVE_TYPES]\n }]\n }, CPP_PRIMITIVE_TYPES, C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE, PREPROCESSOR]\n };\n return {\n name: 'C++',\n aliases: ['cc', 'c++', 'h++', 'hpp', 'hh', 'hxx', 'cxx'],\n keywords: CPP_KEYWORDS,\n illegal: '</',\n classNameAliases: {\n 'function.dispatch': 'built_in'\n },\n contains: [].concat(EXPRESSION_CONTEXT, FUNCTION_DECLARATION, FUNCTION_DISPATCH, EXPRESSION_CONTAINS, [PREPROCESSOR, {\n // containers: ie, `vector <int> rooms (9);`\n begin: '\\\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function)\\\\s*<(?!<)',\n end: '>',\n keywords: CPP_KEYWORDS,\n contains: ['self', CPP_PRIMITIVE_TYPES]\n }, {\n begin: hljs.IDENT_RE + '::',\n keywords: CPP_KEYWORDS\n }, {\n match: [\n // extra complexity to deal with `enum class` and `enum struct`\n /\\b(?:enum(?:\\s+(?:class|struct))?|class|struct|union)/, /\\s+/, /\\w+/],\n className: {\n 1: 'keyword',\n 3: 'title.class'\n }\n }])\n };\n}\nmodule.exports = cpp;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvY3BwLmpzIl0sIm5hbWVzIjpbImNwcCIsImhsanMiLCJyZWdleCIsIkNfTElORV9DT01NRU5UX01PREUiLCJDT01NRU5UIiwiY29udGFpbnMiLCJiZWdpbiIsIkRFQ0xUWVBFX0FVVE9fUkUiLCJOQU1FU1BBQ0VfUkUiLCJURU1QTEFURV9BUkdVTUVOVF9SRSIsIkZVTkNUSU9OX1RZUEVfUkUiLCJvcHRpb25hbCIsIkNQUF9QUklNSVRJVkVfVFlQRVMiLCJjbGFzc05hbWUiLCJDSEFSQUNURVJfRVNDQVBFUyIsIlNUUklOR1MiLCJ2YXJpYW50cyIsImVuZCIsImlsbGVnYWwiLCJCQUNLU0xBU0hfRVNDQVBFIiwiRU5EX1NBTUVfQVNfQkVHSU4iLCJOVU1CRVJTIiwicmVsZXZhbmNlIiwiUFJFUFJPQ0VTU09SIiwia2V5d29yZHMiLCJrZXl3b3JkIiwiaW5oZXJpdCIsIkNfQkxPQ0tfQ09NTUVOVF9NT0RFIiwiVElUTEVfTU9ERSIsIklERU5UX1JFIiwiRlVOQ1RJT05fVElUTEUiLCJSRVNFUlZFRF9LRVlXT1JEUyIsIlJFU0VSVkVEX1RZUEVTIiwiVFlQRV9ISU5UUyIsIkZVTkNUSU9OX0hJTlRTIiwiTElURVJBTFMiLCJCVUlMVF9JTiIsIkNQUF9LRVlXT1JEUyIsInR5cGUiLCJsaXRlcmFsIiwiYnVpbHRfaW4iLCJfdHlwZV9oaW50cyIsIkZVTkNUSU9OX0RJU1BBVENIIiwiX2hpbnQiLCJjb25jYXQiLCJsb29rYWhlYWQiLCJFWFBSRVNTSU9OX0NPTlRBSU5TIiwiRVhQUkVTU0lPTl9DT05URVhUIiwiYmVnaW5LZXl3b3JkcyIsIkZVTkNUSU9OX0RFQ0xBUkFUSU9OIiwicmV0dXJuQmVnaW4iLCJleGNsdWRlRW5kIiwiZW5kc1dpdGhQYXJlbnQiLCJtYXRjaCIsIm5hbWUiLCJhbGlhc2VzIiwiY2xhc3NOYW1lQWxpYXNlcyIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGlu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LENBQ0V2QixZQUFZLEVBQ1o7TUFBRTtNQUNBakIsS0FBSyxFQUFFLDJNQUEyTTtNQUNsTlcsR0FBRyxFQUFFLEdBQUc7TUFDUk8sUUFBUSxFQUFFYSxZQUFZO01BQ3RCaEMsUUFBUSxFQUFFLENBQ1IsTUFBTSxFQUNOTyxtQkFBbUI7SUFFdkIsQ0FBQyxFQUNEO01BQ0VOLEtBQUssRUFBRUwsSUFBSSxDQUFDNEIsUUFBUSxHQUFHLElBQUk7TUFDM0JMLFFBQVEsRUFBRWE7SUFDWixDQUFDLEVBQ0Q7TUFDRWdCLEtBQUssRUFBRTtNQUNMO01BQ0EsdURBQXVELEVBQ3ZELEtBQUssRUFDTCxLQUFLLENBQ047TUFDRHhDLFNBQVMsRUFBRTtRQUNULENBQUMsRUFBRSxTQUFTO1FBQ1osQ0FBQyxFQUFFO01BQ0w7SUFDRixDQUFDLENBQ0Y7RUFDTCxDQUFDO0FBQ0g7QUFFQTRDLE1BQU0sQ0FBQ0MsT0FBTyxHQUFHMUQsR0FBRyIsImZpbGUiOiI1OC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG5MYW5ndWFnZTogQysrXG5DYXRlZ29yeTogY29tbW9uLCBzeXN0ZW1cbldlYnNpdGU6IGh0dHBzOi8vaXNvY3BwLm9yZ1xuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIGNwcChobGpzKSB7XG4gIGNvbnN0IHJlZ2V4ID0gaGxqcy5yZWdleDtcbiAgLy8gYWRkZWQgZm9yIGhpc3RvcmljIHJlYXNvbnMgYmVjYXVzZSBgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFYCBkb2VzXG4gIC8vIG5vdCBpbmNsdWRlIHN1Y2ggc3VwcG9ydCBub3IgY2FuIHdlIGJlIHN1cmUgYWxsIHRoZSBncmFtbWFycyBkZXBlbmRpbmdcbiAgLy8gb24gaXQgd291bGQgZGVzaXJlIHRoaXMgYmVoYXZpb3JcbiAgY29uc3QgQ19MSU5FX0NPTU1FTlRfTU9ERSA9IGhsanMuQ09NTUVOVCgnLy8nLCAnJCcsIHsgY29udGFpbnM6IFsgeyBiZWdpbjogL1xcXFxcXG4vIH0gXSB9KTtcbiAgY29uc3QgREVDTFRZUEVfQVVUT19SRSA9ICdkZWNsdHlwZVxcXFwoYXV0b1xcXFwpJztcbiAgY29uc3QgTkFNRVNQQUNFX1JFID0gJ1thLXpBLVpfXVxcXFx3Kjo6JztcbiAgY29uc3QgVEVNUExBVEVfQVJHVU1FTlRfUkUgPSAnPFtePD5dKz4nO1xuICBjb25zdCBGVU5DVElPTl9UWVBFX1JFID0gJyg/IXN0cnVjdCkoJ1xuICAgICsgREVDTFRZUEVfQVVUT19SRSArICd8J1xuICAgICsgcmVnZXgub3B0aW9uYWwoTkFNRVNQQUNFX1JFKVxuICAgICsgJ1thLXpBLVpfXVxcXFx3KicgKyByZWdleC5vcHRpb25hbChURU1QTEFURV9BUkdVTUVOVF9SRSlcbiAgKyAnKSc7XG5cbiAgY29uc3QgQ1BQX1BSSU1JVElWRV9UWVBFUyA9IHtcbiAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICBiZWdpbjogJ1xcXFxiW2EtelxcXFxkX10qX3RcXFxcYidcbiAgfTtcblxuICAvLyBodHRwczovL2VuLmNwcHJlZmVyZW5jZS5jb20vdy9jcHAvbGFuZ3VhZ2UvZXNjYXBlXG4gIC8vIFxcXFwgXFx4IFxceEZGIFxcdTI4MzcgXFx1MDAzMjM3NDcgXFwzNzRcbiAgY29uc3QgQ0hBUkFDVEVSX0VTQ0FQRVMgPSAnXFxcXFxcXFwoeFswLTlBLUZhLWZdezJ9fHVbMC05QS1GYS1mXXs0LDh9fFswLTddezN9fFxcXFxTKSc7XG4gIGNvbnN0IFNUUklOR1MgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogJyh1OD98VXxMKT9cIicsXG4gICAgICAgIGVuZDogJ1wiJyxcbiAgICAgICAgaWxsZWdhbDogJ1xcXFxuJyxcbiAgICAgICAgY29udGFpbnM6IFsgaGxqcy5CQUNLU0xBU0hfRVNDQVBFIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnKHU4P3xVfEwpP1xcJygnICsgQ0hBUkFDVEVSX0VTQ0FQRVMgKyAnfC4pJyxcbiAgICAgICAgZW5kOiAnXFwnJyxcbiAgICAgICAgaWxsZWdhbDogJy4nXG4gICAgICB9LFxuICAgICAgaGxqcy5FTkRfU0FNRV9BU19CRUdJTih7XG4gICAgICAgIGJlZ2luOiAvKD86dTg/fFV8TCk/UlwiKFteKClcXFxcIF17MCwxNn0pXFwoLyxcbiAgICAgICAgZW5kOiAvXFwpKFteKClcXFxcIF17MCwxNn0pXCIvXG4gICAgICB9KVxuICAgIF1cbiAgfTtcblxuICBjb25zdCBOVU1CRVJTID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHsgYmVnaW46ICdcXFxcYigwYlswMVxcJ10rKScgfSxcbiAgICAgIHsgYmVnaW46ICcoLT8pXFxcXGIoW1xcXFxkXFwnXSsoXFxcXC5bXFxcXGRcXCddKik/fFxcXFwuW1xcXFxkXFwnXSspKChsbHxMTHxsfEwpKHV8VSk/fCh1fFUpKGxsfExMfGx8TCk/fGZ8RnxifEIpJyB9LFxuICAgICAgeyBiZWdpbjogJygtPykoXFxcXGIwW3hYXVthLWZBLUYwLTlcXCddK3woXFxcXGJbXFxcXGRcXCddKyhcXFxcLltcXFxcZFxcJ10qKT98XFxcXC5bXFxcXGRcXCddKykoW2VFXVstK10/W1xcXFxkXFwnXSspPyknIH1cbiAgICBdLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIGNvbnN0IFBSRVBST0NFU1NPUiA9IHtcbiAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICBiZWdpbjogLyNcXHMqW2Etel0rXFxiLyxcbiAgICBlbmQ6IC8kLyxcbiAgICBrZXl3b3JkczogeyBrZXl3b3JkOlxuICAgICAgICAnaWYgZWxzZSBlbGlmIGVuZGlmIGRlZmluZSB1bmRlZiB3YXJuaW5nIGVycm9yIGxpbmUgJ1xuICAgICAgICArICdwcmFnbWEgX1ByYWdtYSBpZmRlZiBpZm5kZWYgaW5jbHVkZScgfSxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcXFxcXG4vLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICBobGpzLmluaGVyaXQoU1RSSU5HUywgeyBjbGFzc05hbWU6ICdzdHJpbmcnIH0pLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICBiZWdpbjogLzwuKj8+L1xuICAgICAgfSxcbiAgICAgIENfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFXG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IFRJVExFX01PREUgPSB7XG4gICAgY2xhc3NOYW1lOiAndGl0bGUnLFxuICAgIGJlZ2luOiByZWdleC5vcHRpb25hbChOQU1FU1BBQ0VfUkUpICsgaGxqcy5JREVOVF9SRSxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICBjb25zdCBGVU5DVElPTl9USVRMRSA9IHJlZ2V4Lm9wdGlvbmFsKE5BTUVTUEFDRV9SRSkgKyBobGpzLklERU5UX1JFICsgJ1xcXFxzKlxcXFwoJztcblxuICAvLyBodHRwczovL2VuLmNwcHJlZmVyZW5jZS5jb20vdy9jcHAva2V5d29yZFxuICBjb25zdCBSRVNFUlZFRF9LRVlXT1JEUyA9IFtcbiAgICAnYWxpZ25hcycsXG4gICAgJ2FsaWdub2YnLFxuICAgICdhbmQnLFxuICAgICdhbmRfZXEnLFxuICAgICdhc20nLFxuICAgICdhdG9taWNfY2FuY2VsJyxcbiAgICAnYXRvbWljX2NvbW1pdCcsXG4gICAgJ2F0b21pY19ub2V4Y2VwdCcsXG4gICAgJ2F1dG8nLFxuICAgICdiaXRhbmQnLFxuICAgICdiaXRvcicsXG4gICAgJ2JyZWFrJyxcbiAgICAnY2FzZScsXG4gICAgJ2NhdGNoJyxcbiAgICAnY2xhc3MnLFxuICAgICdjb19hd2FpdCcsXG4gICAgJ2NvX3JldHVybicsXG4gICAgJ2NvX3lpZWxkJyxcbiAgICAnY29tcGwnLFxuICAgICdjb25jZXB0JyxcbiAgICAnY29uc3RfY2FzdHwxMCcsXG4gICAgJ2NvbnN0ZXZhbCcsXG4gICAgJ2NvbnN0ZXhwcicsXG4gICAgJ2NvbnN0aW5pdCcsXG4gICAgJ2NvbnRpbnVlJyxcbiAgICAnZGVjbHR5cGUnLFxuICAgICdkZWZhdWx0JyxcbiAgICAnZGVsZXRlJyxcbiAgICAnZG8nLFxuICAgICdkeW5hbWljX2Nhc3R8MTAnLFxuICAgICdlbHNlJyxcbiAgICAnZW51bScsXG4gICAgJ2V4cGxpY2l0JyxcbiAgICAnZXhwb3J0JyxcbiAgICAnZXh0ZXJuJyxcbiAgICAnZmFsc2UnLFxuICAgICdmaW5hbCcsXG4gICAgJ2ZvcicsXG4gICAgJ2ZyaWVuZCcsXG4gICAgJ2dvdG8nLFxuICAgICdpZicsXG4gICAgJ2ltcG9ydCcsXG4gICAgJ2lubGluZScsXG4gICAgJ21vZHVsZScsXG4gICAgJ211dGFibGUnLFxuICAgICduYW1lc3BhY2UnLFxuICAgICduZXcnLFxuICAgICdub2V4Y2VwdCcsXG4gICAgJ25vdCcsXG4gICAgJ25vdF9lcScsXG4gICAgJ251bGxwdHInLFxuICAgICdvcGVyYXRvcicsXG4gICAgJ29yJyxcbiAgICAnb3JfZXEnLFxuICAgICdvdmVycmlkZScsXG4gICAgJ3ByaXZhdGUnLFxuICAgICdwcm90ZWN0ZWQnLFxuICAgICdwdWJsaWMnLFxuICAgICdyZWZsZXhwcicsXG4gICAgJ3JlZ2lzdGVyJyxcbiAgICAncmVpbnRlcnByZXRfY2FzdHwxMCcsXG4gICAgJ3JlcXVpcmVzJyxcbiAgICAncmV0dXJuJyxcbiAgICAnc2l6ZW9mJyxcbiAgICAnc3RhdGljX2Fzc2VydCcsXG4gICAgJ3N0YXRpY19jYXN0fDEwJyxcbiAgICAnc3RydWN0JyxcbiAgICAnc3dpdGNoJyxcbiAgICAnc3luY2hyb25pemVkJyxcbiAgICAndGVtcGxhdGUnLFxuICAgICd0aGlzJyxcbiAgICAndGhyZWFkX2xvY2FsJyxcbiAgICAndGhyb3cnLFxuICAgICd0cmFuc2FjdGlvbl9zYWZlJyxcbiAgICAndHJhbnNhY3Rpb25fc2FmZV9keW5hbWljJyxcbiAgICAndHJ1ZScsXG4gICAgJ3RyeScsXG4gICAgJ3R5cGVkZWYnLFxuICAgICd0eXBlaWQnLFxuICAgICd0eXBlbmFtZScsXG4gICAgJ3VuaW9uJyxcbiAgICAndXNpbmcnLFxuICAgICd2aXJ0dWFsJyxcbiAgICAndm9sYXRpbGUnLFxuICAgICd3aGlsZScsXG4gICAgJ3hvcicsXG4gICAgJ3hvcl9lcSdcbiAgXTtcblxuICAvLyBodHRwczovL2VuLmNwcHJlZmVyZW5jZS5jb20vdy9jcHAva2V5d29yZFxuICBjb25zdCBSRVNFUlZFRF9UWVBFUyA9IFtcbiAgICAnYm9vbCcsXG4gICAgJ2NoYXInLFxuICAgICdjaGFyMTZfdCcsXG4gICAgJ2NoYXIzMl90JyxcbiAgICAnY2hhcjhfdCcsXG4gICAgJ2RvdWJsZScsXG4gICAgJ2Zsb2F0JyxcbiAgICAnaW50JyxcbiAgICAnbG9uZycsXG4gICAgJ3Nob3J0JyxcbiAgICAndm9pZCcsXG4gICAgJ3djaGFyX3QnLFxuICAgICd1bnNpZ25lZCcsXG4gICAgJ3NpZ25lZCcsXG4gICAgJ2NvbnN0JyxcbiAgICAnc3RhdGljJ1xuICBdO1xuXG4gIGNvbnN0IFRZUEVfSElOVFMgPSBbXG4gICAgJ2FueScsXG4gICAgJ2F1dG9fcHRyJyxcbiAgICAnYmFycmllcicsXG4gICAgJ2JpbmFyeV9zZW1hcGhvcmUnLFxuICAgICdiaXRzZXQnLFxuICAgICdjb21wbGV4JyxcbiAgICAnY29uZGl0aW9uX3ZhcmlhYmxlJyxcbiAgICAnY29uZGl0aW9uX3ZhcmlhYmxlX2FueScsXG4gICAgJ2NvdW50aW5nX3NlbWFwaG9yZScsXG4gICAgJ2RlcXVlJyxcbiAgICAnZmFsc2VfdHlwZScsXG4gICAgJ2Z1dHVyZScsXG4gICAgJ2ltYWdpbmFyeScsXG4gICAgJ2luaXRpYWxpemVyX2xpc3QnLFxuICAgICdpc3RyaW5nc3RyZWFtJyxcbiAgICAnanRocmVhZCcsXG4gICAgJ2xhdGNoJyxcbiAgICAnbG9ja19ndWFyZCcsXG4gICAgJ211bHRpbWFwJyxcbiAgICAnbXVsdGlzZXQnLFxuICAgICdtdXRleCcsXG4gICAgJ29wdGlvbmFsJyxcbiAgICAnb3N0cmluZ3N0cmVhbScsXG4gICAgJ3BhY2thZ2VkX3Rhc2snLFxuICAgICdwYWlyJyxcbiAgICAncHJvbWlzZScsXG4gICAgJ3ByaW9yaXR5X3F1ZXVlJyxcbiAgICAncXVldWUnLFxuICAgICdyZWN1cnNpdmVfbXV0ZXgnLFxuICAgICdyZWN1cnNpdmVfdGltZWRfbXV0ZXgnLFxuICAgICdzY29wZWRfbG9jaycsXG4gICAgJ3NldCcsXG4gICAgJ3NoYXJlZF9mdXR1cmUnLFxuICAgICdzaGFyZWRfbG9jaycsXG4gICAgJ3NoYXJlZF9tdXRleCcsXG4gICAgJ3NoYXJlZF90aW1lZF9tdXRleCcsXG4gICAgJ3NoYXJlZF9wdHInLFxuICAgICdzdGFjaycsXG4gICAgJ3N0cmluZ192aWV3JyxcbiAgICAnc3RyaW5nc3RyZWFtJyxcbiAgICAndGltZWRfbXV0ZXgnLFxuICAgICd0aHJlYWQnLFxuICAgICd0cnVlX3R5cGUnLFxuICAgICd0dXBsZScsXG4gICAgJ3VuaXF1ZV9sb2NrJyxcbiAgICAndW5pcXVlX3B0cicsXG4gICAgJ3Vub3JkZXJlZF9tYXAnLFxuICAgICd1bm9yZGVyZWRfbXVsdGltYXAnLFxuICAgICd1bm9yZGVyZWRfbXVsdGlzZXQnLFxuICAgICd1bm9yZGVyZWRfc2V0JyxcbiAgICAndmFyaWFudCcsXG4gICAgJ3ZlY3RvcicsXG4gICAgJ3dlYWtfcHRyJyxcbiAgICAnd3N0cmluZycsXG4gICAgJ3dzdHJpbmdfdmlldydcbiAgXTtcblxuICBjb25zdCBGVU5DVElPTl9ISU5UUyA9IFtcbiAgICAnYWJvcnQnLFxuICAgICdhYnMnLFxuICAgICdhY29zJyxcbiAgICAnYXBwbHknLFxuICAgICdhc19jb25zdCcsXG4gICAgJ2FzaW4nLFxuICAgICdhdGFuJyxcbiAgICAnYXRhbjInLFxuICAgICdjYWxsb2MnLFxuICAgICdjZWlsJyxcbiAgICAnY2VycicsXG4gICAgJ2NpbicsXG4gICAgJ2Nsb2cnLFxuICAgICdjb3MnLFxuICAgICdjb3NoJyxcbiAgICAnY291dCcsXG4gICAgJ2RlY2x2YWwnLFxuICAgICdlbmRsJyxcbiAgICAnZXhjaGFuZ2UnLFxuICAgICdleGl0JyxcbiAgICAnZXhwJyxcbiAgICAnZmFicycsXG4gICAgJ2Zsb29yJyxcbiAgICAnZm1vZCcsXG4gICAgJ2ZvcndhcmQnLFxuICAgICdmcHJpbnRmJyxcbiAgICAnZnB1dHMnLFxuICAgICdmcmVlJyxcbiAgICAnZnJleHAnLFxuICAgICdmc2NhbmYnLFxuICAgICdmdXR1cmUnLFxuICAgICdpbnZva2UnLFxuICAgICdpc2FsbnVtJyxcbiAgICAnaXNhbHBoYScsXG4gICAgJ2lzY250cmwnLFxuICAgICdpc2RpZ2l0JyxcbiAgICAnaXNncmFwaCcsXG4gICAgJ2lzbG93ZXInLFxuICAgICdpc3ByaW50JyxcbiAgICAnaXNwdW5jdCcsXG4gICAgJ2lzc3BhY2UnLFxuICAgICdpc3VwcGVyJyxcbiAgICAnaXN4ZGlnaXQnLFxuICAgICdsYWJzJyxcbiAgICAnbGF1bmRlcicsXG4gICAgJ2xkZXhwJyxcbiAgICAnbG9nJyxcbiAgICAnbG9nMTAnLFxuICAgICdtYWtlX3BhaXInLFxuICAgICdtYWtlX3NoYXJlZCcsXG4gICAgJ21ha2Vfc2hhcmVkX2Zvcl9vdmVyd3JpdGUnLFxuICAgICdtYWtlX3R1cGxlJyxcbiAgICAnbWFrZV91bmlxdWUnLFxuICAgICdtYWxsb2MnLFxuICAgICdtZW1jaHInLFxuICAgICdtZW1jbXAnLFxuICAgICdtZW1jcHknLFxuICAgICdtZW1zZXQnLFxuICAgICdtb2RmJyxcbiAgICAnbW92ZScsXG4gICAgJ3BvdycsXG4gICAgJ3ByaW50ZicsXG4gICAgJ3B1dGNoYXInLFxuICAgICdwdXRzJyxcbiAgICAncmVhbGxvYycsXG4gICAgJ3NjYW5mJyxcbiAgICAnc2luJyxcbiAgICAnc2luaCcsXG4gICAgJ3NucHJpbnRmJyxcbiAgICAnc3ByaW50ZicsXG4gICAgJ3NxcnQnLFxuICAgICdzc2NhbmYnLFxuICAgICdzdGQnLFxuICAgICdzdGRlcnInLFxuICAgICdzdGRpbicsXG4gICAgJ3N0ZG91dCcsXG4gICAgJ3N0cmNhdCcsXG4gICAgJ3N0cmNocicsXG4gICAgJ3N0cmNtcCcsXG4gICAgJ3N0cmNweScsXG4gICAgJ3N0cmNzcG4nLFxuICAgICdzdHJsZW4nLFxuICAgICdzdHJuY2F0JyxcbiAgICAnc3RybmNtcCcsXG4gICAgJ3N0cm5jcHknLFxuICAgICdzdHJwYnJrJyxcbiAgICAnc3RycmNocicsXG4gICAgJ3N0cnNwbicsXG4gICAgJ3N0cnN0cicsXG4gICAgJ3N3YXAnLFxuICAgICd0YW4nLFxuICAgICd0YW5oJyxcbiAgICAndGVybWluYXRlJyxcbiAgICAndG9fdW5kZXJseWluZycsXG4gICAgJ3RvbG93ZXInLFxuICAgICd0b3VwcGVyJyxcbiAgICAndmZwcmludGYnLFxuICAgICd2aXNpdCcsXG4gICAgJ3ZwcmludGYnLFxuICAgICd2c3ByaW50ZidcbiAgXTtcblxuICBjb25zdCBMSVRFUkFMUyA9IFtcbiAgICAnTlVMTCcsXG4gICAgJ2ZhbHNlJyxcbiAgICAnbnVsbG9wdCcsXG4gICAgJ251bGxwdHInLFxuICAgICd0cnVlJ1xuICBdO1xuXG4gIC8vIGh0dHBzOi8vZW4uY3BwcmVmZXJlbmNlLmNvbS93L2NwcC9rZXl3b3JkXG4gIGNvbnN0IEJVSUxUX0lOID0gWyAnX1ByYWdtYScgXTtcblxuICBjb25zdCBDUFBfS0VZV09SRFMgPSB7XG4gICAgdHlwZTogUkVTRVJWRURfVFlQRVMsXG4gICAga2V5d29yZDogUkVTRVJWRURfS0VZV09SRFMsXG4gICAgbGl0ZXJhbDogTElURVJBTFMsXG4gICAgYnVpbHRfaW46IEJVSUxUX0lOLFxuICAgIF90eXBlX2hpbnRzOiBUWVBFX0hJTlRTXG4gIH07XG5cbiAgY29uc3QgRlVOQ1RJT05fRElTUEFUQ0ggPSB7XG4gICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24uZGlzcGF0Y2gnLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICBrZXl3b3Jkczoge1xuICAgICAgLy8gT25seSBmb3IgcmVsZXZhbmNlLCBub3QgaGlnaGxpZ2h0aW5nLlxuICAgICAgX2hpbnQ6IEZVTkNUSU9OX0hJTlRTIH0sXG4gICAgYmVnaW46IHJlZ2V4LmNvbmNhdChcbiAgICAgIC9cXGIvLFxuICAgICAgLyg/IWRlY2x0eXBlKS8sXG4gICAgICAvKD8haWYpLyxcbiAgICAgIC8oPyFmb3IpLyxcbiAgICAgIC8oPyFzd2l0Y2gpLyxcbiAgICAgIC8oPyF3aGlsZSkvLFxuICAgICAgaGxqcy5JREVOVF9SRSxcbiAgICAgIHJlZ2V4Lmxvb2thaGVhZCgvKDxbXjw+XSs+fClcXHMqXFwoLykpXG4gIH07XG5cbiAgY29uc3QgRVhQUkVTU0lPTl9DT05UQUlOUyA9IFtcbiAgICBGVU5DVElPTl9ESVNQQVRDSCxcbiAgICBQUkVQUk9DRVNTT1IsXG4gICAgQ1BQX1BSSU1JVElWRV9UWVBFUyxcbiAgICBDX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgTlVNQkVSUyxcbiAgICBTVFJJTkdTXG4gIF07XG5cbiAgY29uc3QgRVhQUkVTU0lPTl9DT05URVhUID0ge1xuICAgIC8vIFRoaXMgbW9kZSBjb3ZlcnMgZXhwcmVzc2lvbiBjb250ZXh0IHdoZXJlIHdlIGNhbid0IGV4cGVjdCBhIGZ1bmN0aW9uXG4gICAgLy8gZGVmaW5pdGlvbiBhbmQgc2hvdWxkbid0IGhpZ2hsaWdodCBhbnl0aGluZyB0aGF0IGxvb2tzIGxpa2Ugb25lOlxuICAgIC8vIGByZXR1cm4gc29tZSgpYCwgYGVsc2UgaWYoKWAsIGAoeCpzdW0oMSwgMikpYFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvPS8sXG4gICAgICAgIGVuZDogLzsvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcKC8sXG4gICAgICAgIGVuZDogL1xcKS9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICduZXcgdGhyb3cgcmV0dXJuIGVsc2UnLFxuICAgICAgICBlbmQ6IC87L1xuICAgICAgfVxuICAgIF0sXG4gICAga2V5d29yZHM6IENQUF9LRVlXT1JEUyxcbiAgICBjb250YWluczogRVhQUkVTU0lPTl9DT05UQUlOUy5jb25jYXQoW1xuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcKC8sXG4gICAgICAgIGVuZDogL1xcKS8sXG4gICAgICAgIGtleXdvcmRzOiBDUFBfS0VZV09SRFMsXG4gICAgICAgIGNvbnRhaW5zOiBFWFBSRVNTSU9OX0NPTlRBSU5TLmNvbmNhdChbICdzZWxmJyBdKSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9XG4gICAgXSksXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgY29uc3QgRlVOQ1RJT05fREVDTEFSQVRJT04gPSB7XG4gICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgIGJlZ2luOiAnKCcgKyBGVU5DVElPTl9UWVBFX1JFICsgJ1tcXFxcKiZcXFxcc10rKSsnICsgRlVOQ1RJT05fVElUTEUsXG4gICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgZW5kOiAvW3s7PV0vLFxuICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAga2V5d29yZHM6IENQUF9LRVlXT1JEUyxcbiAgICBpbGxlZ2FsOiAvW15cXHdcXHNcXComOjw+Ll0vLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7IC8vIHRvIHByZXZlbnQgaXQgZnJvbSBiZWluZyBjb25mdXNlZCBhcyB0aGUgZnVuY3Rpb24gdGl0bGVcbiAgICAgICAgYmVnaW46IERFQ0xUWVBFX0FVVE9fUkUsXG4gICAgICAgIGtleXdvcmRzOiBDUFBfS0VZV09SRFMsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IEZVTkNUSU9OX1RJVExFLFxuICAgICAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAgY29udGFpbnM6IFsgVElUTEVfTU9ERSBdLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICAvLyBuZWVkZWQgYmVjYXVzZSB3ZSBkbyBub3QgaGF2ZSBsb29rLWJlaGluZCBvbiB0aGUgYmVsb3cgcnVsZVxuICAgICAgLy8gdG8gcHJldmVudCBpdCBmcm9tIGdyYWJiaW5nIHRoZSBmaW5hbCA6IGluIGEgOjogcGFpclxuICAgICAge1xuICAgICAgICBiZWdpbjogLzo6LyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgLy8gaW5pdGlhbGl6ZXJzXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvOi8sXG4gICAgICAgIGVuZHNXaXRoUGFyZW50OiB0cnVlLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIFNUUklOR1MsXG4gICAgICAgICAgTlVNQkVSU1xuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgLy8gYWxsb3cgZm9yIG11bHRpcGxlIGRlY2xhcmF0aW9ucywgZS5nLjpcbiAgICAgIC8vIGV4dGVybiB2b2lkIGYoaW50KSwgZyhjaGFyKTtcbiAgICAgIHtcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICBtYXRjaDogLywvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgICAgICBiZWdpbjogL1xcKC8sXG4gICAgICAgIGVuZDogL1xcKS8sXG4gICAgICAgIGtleXdvcmRzOiBDUFBfS0VZV09SRFMsXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBDX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICAgICAgU1RSSU5HUyxcbiAgICAgICAgICBOVU1CRVJTLFxuICAgICAgICAgIENQUF9QUklNSVRJVkVfVFlQRVMsXG4gICAgICAgICAgLy8gQ291bnQgbWF0Y2hpbmcgcGFyZW50aGVzZXMuXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46IC9cXCgvLFxuICAgICAgICAgICAgZW5kOiAvXFwpLyxcbiAgICAgICAgICAgIGtleXdvcmRzOiBDUFBfS0VZV09SRFMsXG4gICAgICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICAnc2VsZicsXG4gICAgICAgICAgICAgIENfTElORV9DT01NRU5UX01PREUsXG4gICAgICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICAgICAgICAgIFNUUklOR1MsXG4gICAgICAgICAgICAgIE5VTUJFUlMsXG4gICAgICAgICAgICAgIENQUF9QUklNSVRJVkVfVFlQRVNcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBDUFBfUFJJTUlUSVZFX1RZUEVTLFxuICAgICAgQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBQUkVQUk9DRVNTT1JcbiAgICBdXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnQysrJyxcbiAgICBhbGlhc2VzOiBbXG4gICAgICAnY2MnLFxuICAgICAgJ2MrKycsXG4gICAgICAnaCsrJyxcbiAgICAgICdocHAnLFxuICAgICAgJ2hoJyxcbiAgICAgICdoeHgnLFxuICAgICAgJ2N4eCdcbiAgICBdLFxuICAgIGtleXdvcmRzOiBDUFBfS0VZV09SRFMsXG4gICAgaWxsZWdhbDogJzwvJyxcbiAgICBjbGFzc05hbWVBbGlhc2VzOiB7ICdmdW5jdGlvbi5kaXNwYXRjaCc6ICdidWlsdF9pbicgfSxcbiAgICBjb250YWluczogW10uY29uY2F0KFxuICAgICAgRVhQUkVTU0lPTl9DT05URVhULFxuICAgICAgRlVOQ1RJT05fREVDTEFSQVRJT04sXG4gICAgICBGVU5DVElPTl9ESVNQQVRDSCxcbiAgICAgIEVYUFJFU1NJT05fQ09OVEFJTlMsXG4gICAgICBbXG4gICAgICAgIFBSRVBST0NFU1NPUixcbiAgICAgICAgeyAvLyBjb250YWluZXJzOiBpZSwgYHZlY3RvciA8aW50PiByb29tcyAoOSk7YFxuICAgICAgICAgIGJlZ2luOiAnXFxcXGIoZGVxdWV8bGlzdHxxdWV1ZXxwcmlvcml0eV9xdWV1ZXxwYWlyfHN0YWNrfHZlY3RvcnxtYXB8c2V0fGJpdHNldHxtdWx0aXNldHxtdWx0aW1hcHx1bm9yZGVyZWRfbWFwfHVub3JkZXJlZF9zZXR8dW5vcmRlcmVkX211bHRpc2V0fHVub3JkZXJlZF9tdWx0aW1hcHxhcnJheXx0dXBsZXxvcHRpb25hbHx2YXJpYW50fGZ1bmN0aW9uKVxcXFxzKjwoPyE8KScsXG4gICAgICAgICAgZW5kOiAnPicsXG4gICAgICAgICAga2V5d29yZHM6IENQUF9LRVlXT1JEUyxcbiAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgJ3NlbGYnLFxuICAgICAgICAgICAgQ1BQX1BSSU1JVElWRV9UWVBFU1xuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiBobGpzLklERU5UX1JFICsgJzo6JyxcbiAgICAgICAgICBrZXl3b3JkczogQ1BQX0tFWVdPUkRTXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtYXRjaDogW1xuICAgICAgICAgICAgLy8gZXh0cmEgY29tcGxleGl0eSB0byBkZWFsIHdpdGggYGVudW0gY2xhc3NgIGFuZCBgZW51bSBzdHJ1Y3RgXG4gICAgICAgICAgICAvXFxiKD86ZW51bSg/OlxccysoPzpjbGFzc3xzdHJ1Y3QpKT98Y2xhc3N8c3RydWN0fHVuaW9uKS8sXG4gICAgICAgICAgICAvXFxzKy8sXG4gICAgICAgICAgICAvXFx3Ky9cbiAgICAgICAgICBdLFxuICAgICAgICAgIGNsYXNzTmFtZToge1xuICAgICAgICAgICAgMTogJ2tleXdvcmQnLFxuICAgICAgICAgICAgMzogJ3RpdGxlLmNsYXNzJ1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXSlcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjcHA7XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///58\n");
  1618. /***/ }),
  1619. /* 59 */
  1620. /*!*********************************************************************************************************!*\
  1621. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/highlight.js/lib/languages/csharp.js ***!
  1622. \*********************************************************************************************************/
  1623. /*! no static exports found */
  1624. /***/ (function(module, exports) {
  1625. eval("/*\nLanguage: C#\nAuthor: Jason Diamond <jason@diamond.name>\nContributor: Nicolas LLOBERA <nllobera@gmail.com>, Pieter Vantorre <pietervantorre@gmail.com>, David Pine <david.pine@microsoft.com>\nWebsite: https://docs.microsoft.com/dotnet/csharp/\nCategory: common\n*/\n\n/** @type LanguageFn */\nfunction csharp(hljs) {\n var BUILT_IN_KEYWORDS = ['bool', 'byte', 'char', 'decimal', 'delegate', 'double', 'dynamic', 'enum', 'float', 'int', 'long', 'nint', 'nuint', 'object', 'sbyte', 'short', 'string', 'ulong', 'uint', 'ushort'];\n var FUNCTION_MODIFIERS = ['public', 'private', 'protected', 'static', 'internal', 'protected', 'abstract', 'async', 'extern', 'override', 'unsafe', 'virtual', 'new', 'sealed', 'partial'];\n var LITERAL_KEYWORDS = ['default', 'false', 'null', 'true'];\n var NORMAL_KEYWORDS = ['abstract', 'as', 'base', 'break', 'case', 'catch', 'class', 'const', 'continue', 'do', 'else', 'event', 'explicit', 'extern', 'finally', 'fixed', 'for', 'foreach', 'goto', 'if', 'implicit', 'in', 'interface', 'internal', 'is', 'lock', 'namespace', 'new', 'operator', 'out', 'override', 'params', 'private', 'protected', 'public', 'readonly', 'record', 'ref', 'return', 'scoped', 'sealed', 'sizeof', 'stackalloc', 'static', 'struct', 'switch', 'this', 'throw', 'try', 'typeof', 'unchecked', 'unsafe', 'using', 'virtual', 'void', 'volatile', 'while'];\n var CONTEXTUAL_KEYWORDS = ['add', 'alias', 'and', 'ascending', 'async', 'await', 'by', 'descending', 'equals', 'from', 'get', 'global', 'group', 'init', 'into', 'join', 'let', 'nameof', 'not', 'notnull', 'on', 'or', 'orderby', 'partial', 'remove', 'select', 'set', 'unmanaged', 'value|0', 'var', 'when', 'where', 'with', 'yield'];\n var KEYWORDS = {\n keyword: NORMAL_KEYWORDS.concat(CONTEXTUAL_KEYWORDS),\n built_in: BUILT_IN_KEYWORDS,\n literal: LITERAL_KEYWORDS\n };\n var TITLE_MODE = hljs.inherit(hljs.TITLE_MODE, {\n begin: '[a-zA-Z](\\\\.?\\\\w)*'\n });\n var NUMBERS = {\n className: 'number',\n variants: [{\n begin: '\\\\b(0b[01\\']+)'\n }, {\n begin: '(-?)\\\\b([\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)(u|U|l|L|ul|UL|f|F|b|B)'\n }, {\n begin: '(-?)(\\\\b0[xX][a-fA-F0-9\\']+|(\\\\b[\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)([eE][-+]?[\\\\d\\']+)?)'\n }],\n relevance: 0\n };\n var VERBATIM_STRING = {\n className: 'string',\n begin: '@\"',\n end: '\"',\n contains: [{\n begin: '\"\"'\n }]\n };\n var VERBATIM_STRING_NO_LF = hljs.inherit(VERBATIM_STRING, {\n illegal: /\\n/\n });\n var SUBST = {\n className: 'subst',\n begin: /\\{/,\n end: /\\}/,\n keywords: KEYWORDS\n };\n var SUBST_NO_LF = hljs.inherit(SUBST, {\n illegal: /\\n/\n });\n var INTERPOLATED_STRING = {\n className: 'string',\n begin: /\\$\"/,\n end: '\"',\n illegal: /\\n/,\n contains: [{\n begin: /\\{\\{/\n }, {\n begin: /\\}\\}/\n }, hljs.BACKSLASH_ESCAPE, SUBST_NO_LF]\n };\n var INTERPOLATED_VERBATIM_STRING = {\n className: 'string',\n begin: /\\$@\"/,\n end: '\"',\n contains: [{\n begin: /\\{\\{/\n }, {\n begin: /\\}\\}/\n }, {\n begin: '\"\"'\n }, SUBST]\n };\n var INTERPOLATED_VERBATIM_STRING_NO_LF = hljs.inherit(INTERPOLATED_VERBATIM_STRING, {\n illegal: /\\n/,\n contains: [{\n begin: /\\{\\{/\n }, {\n begin: /\\}\\}/\n }, {\n begin: '\"\"'\n }, SUBST_NO_LF]\n });\n SUBST.contains = [INTERPOLATED_VERBATIM_STRING, INTERPOLATED_STRING, VERBATIM_STRING, hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE, NUMBERS, hljs.C_BLOCK_COMMENT_MODE];\n SUBST_NO_LF.contains = [INTERPOLATED_VERBATIM_STRING_NO_LF, INTERPOLATED_STRING, VERBATIM_STRING_NO_LF, hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE, NUMBERS, hljs.inherit(hljs.C_BLOCK_COMMENT_MODE, {\n illegal: /\\n/\n })];\n var STRING = {\n variants: [INTERPOLATED_VERBATIM_STRING, INTERPOLATED_STRING, VERBATIM_STRING, hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE]\n };\n var GENERIC_MODIFIER = {\n begin: \"<\",\n end: \">\",\n contains: [{\n beginKeywords: \"in out\"\n }, TITLE_MODE]\n };\n var TYPE_IDENT_RE = hljs.IDENT_RE + '(<' + hljs.IDENT_RE + '(\\\\s*,\\\\s*' + hljs.IDENT_RE + ')*>)?(\\\\[\\\\])?';\n var AT_IDENTIFIER = {\n // prevents expressions like `@class` from incorrect flagging\n // `class` as a keyword\n begin: \"@\" + hljs.IDENT_RE,\n relevance: 0\n };\n return {\n name: 'C#',\n aliases: ['cs', 'c#'],\n keywords: KEYWORDS,\n illegal: /::/,\n contains: [hljs.COMMENT('///', '$', {\n returnBegin: true,\n contains: [{\n className: 'doctag',\n variants: [{\n begin: '///',\n relevance: 0\n }, {\n begin: '<!--|-->'\n }, {\n begin: '</?',\n end: '>'\n }]\n }]\n }), hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE, {\n className: 'meta',\n begin: '#',\n end: '$',\n keywords: {\n keyword: 'if else elif endif define undef warning error line region endregion pragma checksum'\n }\n }, STRING, NUMBERS, {\n beginKeywords: 'class interface',\n relevance: 0,\n end: /[{;=]/,\n illegal: /[^\\s:,]/,\n contains: [{\n beginKeywords: \"where class\"\n }, TITLE_MODE, GENERIC_MODIFIER, hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE]\n }, {\n beginKeywords: 'namespace',\n relevance: 0,\n end: /[{;=]/,\n illegal: /[^\\s:]/,\n contains: [TITLE_MODE, hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE]\n }, {\n beginKeywords: 'record',\n relevance: 0,\n end: /[{;=]/,\n illegal: /[^\\s:]/,\n contains: [TITLE_MODE, GENERIC_MODIFIER, hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE]\n }, {\n // [Attributes(\"\")]\n className: 'meta',\n begin: '^\\\\s*\\\\[(?=[\\\\w])',\n excludeBegin: true,\n end: '\\\\]',\n excludeEnd: true,\n contains: [{\n className: 'string',\n begin: /\"/,\n end: /\"/\n }]\n }, {\n // Expression keywords prevent 'keyword Name(...)' from being\n // recognized as a function definition\n beginKeywords: 'new return throw await else',\n relevance: 0\n }, {\n className: 'function',\n begin: '(' + TYPE_IDENT_RE + '\\\\s+)+' + hljs.IDENT_RE + '\\\\s*(<[^=]+>\\\\s*)?\\\\(',\n returnBegin: true,\n end: /\\s*[{;=]/,\n excludeEnd: true,\n keywords: KEYWORDS,\n contains: [\n // prevents these from being highlighted `title`\n {\n beginKeywords: FUNCTION_MODIFIERS.join(\" \"),\n relevance: 0\n }, {\n begin: hljs.IDENT_RE + '\\\\s*(<[^=]+>\\\\s*)?\\\\(',\n returnBegin: true,\n contains: [hljs.TITLE_MODE, GENERIC_MODIFIER],\n relevance: 0\n }, {\n match: /\\(\\)/\n }, {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS,\n relevance: 0,\n contains: [STRING, NUMBERS, hljs.C_BLOCK_COMMENT_MODE]\n }, hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE]\n }, AT_IDENTIFIER]\n };\n}\nmodule.exports = csharp;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvY3NoYXJwLmpzIl0sIm5hbWVzIjpbImNzaGFycCIsImhsanMiLCJCVUlMVF9JTl9LRVlXT1JEUyIsIkZVTkNUSU9OX01PRElGSUVSUyIsIkxJVEVSQUxfS0VZV09SRFMiLCJOT1JNQUxfS0VZV09SRFMiLCJDT05URVhUVUFMX0tFWVdPUkRTIiwiS0VZV09SRFMiLCJrZXl3b3JkIiwiY29uY2F0IiwiYnVpbHRfaW4iLCJsaXRlcmFsIiwiVElUTEVfTU9ERSIsImluaGVyaXQiLCJiZWdpbiIsIk5VTUJFUlMiLCJjbGFzc05hbWUiLCJ2YXJpYW50cyIsInJlbGV2YW5jZSIsIlZFUkJBVElNX1NUUklORyIsImVuZCIsImNvbnRhaW5zIiwiVkVSQkFUSU1fU1RSSU5HX05PX0xGIiwiaWxsZWdhbCIsIlNVQlNUIiwia2V5d29yZHMiLCJTVUJTVF9OT19MRiIsIklOVEVSUE9MQVRFRF9TVFJJTkciLCJCQUNLU0xBU0hfRVNDQVBFIiwiSU5URVJQT0xBVEVEX1ZFUkJBVElNX1NUUklORyIsIklOVEVSUE9MQVRFRF9WRVJCQVRJTV9TVFJJTkdfTk9fTEYiLCJBUE9TX1NUUklOR19NT0RFIiwiUVVPVEVfU1RSSU5HX01PREUiLCJDX0JMT0NLX0NPTU1FTlRfTU9ERSIsIlNUUklORyIsIkdFTkVSSUNfTU9ESUZJRVIiLCJiZWdpbktleXdvcmRzIiwiVFlQRV9JREVOVF9SRSIsIklERU5UX1JFIiwiQVRfSURFTlRJRklFUiIsIm5hbWUiLCJhbGlhc2VzIiwiQ09NTUVOVCIsInJldHVybkJlZ2luIiwiQ19MSU5FX0NPTU1FTlRfTU9ERSIsImV4Y2x1ZGVCZWdpbiIsImV4Y2x1ZGVFbmQiLCJqb2luIiwibWF0Y2giLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFNBQVNBLE1BQU0sQ0FBQ0MsSUFBSSxF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YWdlOiBDI1xuQXV0aG9yOiBKYXNvbiBEaWFtb25kIDxqYXNvbkBkaWFtb25kLm5hbWU+XG5Db250cmlidXRvcjogTmljb2xhcyBMTE9CRVJBIDxubGxvYmVyYUBnbWFpbC5jb20+LCBQaWV0ZXIgVmFudG9ycmUgPHBpZXRlcnZhbnRvcnJlQGdtYWlsLmNvbT4sIERhdmlkIFBpbmUgPGRhdmlkLnBpbmVAbWljcm9zb2Z0LmNvbT5cbldlYnNpdGU6IGh0dHBzOi8vZG9jcy5taWNyb3NvZnQuY29tL2RvdG5ldC9jc2hhcnAvXG5DYXRlZ29yeTogY29tbW9uXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gY3NoYXJwKGhsanMpIHtcbiAgY29uc3QgQlVJTFRfSU5fS0VZV09SRFMgPSBbXG4gICAgJ2Jvb2wnLFxuICAgICdieXRlJyxcbiAgICAnY2hhcicsXG4gICAgJ2RlY2ltYWwnLFxuICAgICdkZWxlZ2F0ZScsXG4gICAgJ2RvdWJsZScsXG4gICAgJ2R5bmFtaWMnLFxuICAgICdlbnVtJyxcbiAgICAnZmxvYXQnLFxuICAgICdpbnQnLFxuICAgICdsb25nJyxcbiAgICAnbmludCcsXG4gICAgJ251aW50JyxcbiAgICAnb2JqZWN0JyxcbiAgICAnc2J5dGUnLFxuICAgICdzaG9ydCcsXG4gICAgJ3N0cmluZycsXG4gICAgJ3Vsb25nJyxcbiAgICAndWludCcsXG4gICAgJ3VzaG9ydCdcbiAgXTtcbiAgY29uc3QgRlVOQ1RJT05fTU9ESUZJRVJTID0gW1xuICAgICdwdWJsaWMnLFxuICAgICdwcml2YXRlJyxcbiAgICAncHJvdGVjdGVkJyxcbiAgICAnc3RhdGljJyxcbiAgICAnaW50ZXJuYWwnLFxuICAgICdwcm90ZWN0ZWQnLFxuICAgICdhYnN0cmFjdCcsXG4gICAgJ2FzeW5jJyxcbiAgICAnZXh0ZXJuJyxcbiAgICAnb3ZlcnJpZGUnLFxuICAgICd1bnNhZmUnLFxuICAgICd2aXJ0dWFsJyxcbiAgICAnbmV3JyxcbiAgICAnc2VhbGVkJyxcbiAgICAncGFydGlhbCdcbiAgXTtcbiAgY29uc3QgTElURVJBTF9LRVlXT1JEUyA9IFtcbiAgICAnZGVmYXVsdCcsXG4gICAgJ2ZhbHNlJyxcbiAgICAnbnVsbCcsXG4gICAgJ3RydWUnXG4gIF07XG4gIGNvbnN0IE5PUk1BTF9LRVlXT1JEUyA9IFtcbiAgICAnYWJzdHJhY3QnLFxuICAgICdhcycsXG4gICAgJ2Jhc2UnLFxuICAgICdicmVhaycsXG4gICAgJ2Nhc2UnLFxuICAgICdjYXRjaCcsXG4gICAgJ2NsYXNzJyxcbiAgICAnY29uc3QnLFxuICAgICdjb250aW51ZScsXG4gICAgJ2RvJyxcbiAgICAnZWxzZScsXG4gICAgJ2V2ZW50JyxcbiAgICAnZXhwbGljaXQnLFxuICAgICdleHRlcm4nLFxuICAgICdmaW5hbGx5JyxcbiAgICAnZml4ZWQnLFxuICAgICdmb3InLFxuICAgICdmb3JlYWNoJyxcbiAgICAnZ290bycsXG4gICAgJ2lmJyxcbiAgICAnaW1wbGljaXQnLFxuICAgICdpbicsXG4gICAgJ2ludGVyZmFjZScsXG4gICAgJ2ludGVybmFsJyxcbiAgICAnaXMnLFxuICAgICdsb2NrJyxcbiAgICAnbmFtZXNwYWNlJyxcbiAgICAnbmV3JyxcbiAgICAnb3BlcmF0b3InLFxuICAgICdvdXQnLFxuICAgICdvdmVycmlkZScsXG4gICAgJ3BhcmFtcycsXG4gICAgJ3ByaXZhdGUnLFxuICAgICdwcm90ZWN0ZWQnLFxuICAgICdwdWJsaWMnLFxuICAgICdyZWFkb25seScsXG4gICAgJ3JlY29yZCcsXG4gICAgJ3JlZicsXG4gICAgJ3JldHVybicsXG4gICAgJ3Njb3BlZCcsXG4gICAgJ3NlYWxlZCcsXG4gICAgJ3NpemVvZicsXG4gICAgJ3N0YWNrYWxsb2MnLFxuICAgICdzdGF0aWMnLFxuICAgICdzdHJ1Y3QnLFxuICAgICdzd2l0Y2gnLFxuICAgICd0aGlzJyxcbiAgICAndGhyb3cnLFxuICAgICd0cnknLFxuICAgICd0eXBlb2YnLFxuICAgICd1bmNoZWNrZWQnLFxuICAgICd1bnNhZmUnLFxuICAgICd1c2luZycsXG4gICAgJ3ZpcnR1YWwnLFxuICAgICd2b2lkJyxcbiAgICAndm9sYXRpbGUnLFxuICAgICd3aGlsZSdcbiAgXTtcbiAgY29uc3QgQ09OVEVYVFVBTF9LRVlXT1JEUyA9IFtcbiAgICAnYWRkJyxcbiAgICAnYWxpYXMnLFxuICAgICdhbmQnLFxuICAgICdhc2NlbmRpbmcnLFxuICAgICdhc3luYycsXG4gICAgJ2F3YWl0JyxcbiAgICAnYnknLFxuICAgICdkZXNjZW5kaW5nJyxcbiAgICAnZXF1YWxzJyxcbiAgICAnZnJvbScsXG4gICAgJ2dldCcsXG4gICAgJ2dsb2JhbCcsXG4gICAgJ2dyb3VwJyxcbiAgICAnaW5pdCcsXG4gICAgJ2ludG8nLFxuICAgICdqb2luJyxcbiAgICAnbGV0JyxcbiAgICAnbmFtZW9mJyxcbiAgICAnbm90JyxcbiAgICAnbm90bnVsbCcsXG4gICAgJ29uJyxcbiAgICAnb3InLFxuICAgICdvcmRlcmJ5JyxcbiAgICAncGFydGlhbCcsXG4gICAgJ3JlbW92ZScsXG4gICAgJ3NlbGVjdCcsXG4gICAgJ3NldCcsXG4gICAgJ3VubWFuYWdlZCcsXG4gICAgJ3ZhbHVlfDAnLFxuICAgICd2YXInLFxuICAgICd3aGVuJyxcbiAgICAnd2hlcmUnLFxuICAgICd3aXRoJyxcbiAgICAneWllbGQnXG4gIF07XG5cbiAgY29uc3QgS0VZV09SRFMgPSB7XG4gICAga2V5d29yZDogTk9STUFMX0tFWVdPUkRTLmNvbmNhdChDT05URVhUVUFMX0tFWVdPUkRTKSxcbiAgICBidWlsdF9pbjogQlVJTFRfSU5fS0VZV09SRFMsXG4gICAgbGl0ZXJhbDogTElURVJBTF9LRVlXT1JEU1xuICB9O1xuICBjb25zdCBUSVRMRV9NT0RFID0gaGxqcy5pbmhlcml0KGhsanMuVElUTEVfTU9ERSwgeyBiZWdpbjogJ1thLXpBLVpdKFxcXFwuP1xcXFx3KSonIH0pO1xuICBjb25zdCBOVU1CRVJTID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHsgYmVnaW46ICdcXFxcYigwYlswMVxcJ10rKScgfSxcbiAgICAgIHsgYmVnaW46ICcoLT8pXFxcXGIoW1xcXFxkXFwnXSsoXFxcXC5bXFxcXGRcXCddKik/fFxcXFwuW1xcXFxkXFwnXSspKHV8VXxsfEx8dWx8VUx8ZnxGfGJ8QiknIH0sXG4gICAgICB7IGJlZ2luOiAnKC0/KShcXFxcYjBbeFhdW2EtZkEtRjAtOVxcJ10rfChcXFxcYltcXFxcZFxcJ10rKFxcXFwuW1xcXFxkXFwnXSopP3xcXFxcLltcXFxcZFxcJ10rKShbZUVdWy0rXT9bXFxcXGRcXCddKyk/KScgfVxuICAgIF0sXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG4gIGNvbnN0IFZFUkJBVElNX1NUUklORyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAnQFwiJyxcbiAgICBlbmQ6ICdcIicsXG4gICAgY29udGFpbnM6IFsgeyBiZWdpbjogJ1wiXCInIH0gXVxuICB9O1xuICBjb25zdCBWRVJCQVRJTV9TVFJJTkdfTk9fTEYgPSBobGpzLmluaGVyaXQoVkVSQkFUSU1fU1RSSU5HLCB7IGlsbGVnYWw6IC9cXG4vIH0pO1xuICBjb25zdCBTVUJTVCA9IHtcbiAgICBjbGFzc05hbWU6ICdzdWJzdCcsXG4gICAgYmVnaW46IC9cXHsvLFxuICAgIGVuZDogL1xcfS8sXG4gICAga2V5d29yZHM6IEtFWVdPUkRTXG4gIH07XG4gIGNvbnN0IFNVQlNUX05PX0xGID0gaGxqcy5pbmhlcml0KFNVQlNULCB7IGlsbGVnYWw6IC9cXG4vIH0pO1xuICBjb25zdCBJTlRFUlBPTEFURURfU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46IC9cXCRcIi8sXG4gICAgZW5kOiAnXCInLFxuICAgIGlsbGVnYWw6IC9cXG4vLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7IGJlZ2luOiAvXFx7XFx7LyB9LFxuICAgICAgeyBiZWdpbjogL1xcfVxcfS8gfSxcbiAgICAgIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICAgIFNVQlNUX05PX0xGXG4gICAgXVxuICB9O1xuICBjb25zdCBJTlRFUlBPTEFURURfVkVSQkFUSU1fU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46IC9cXCRAXCIvLFxuICAgIGVuZDogJ1wiJyxcbiAgICBjb250YWluczogW1xuICAgICAgeyBiZWdpbjogL1xce1xcey8gfSxcbiAgICAgIHsgYmVnaW46IC9cXH1cXH0vIH0sXG4gICAgICB7IGJlZ2luOiAnXCJcIicgfSxcbiAgICAgIFNVQlNUXG4gICAgXVxuICB9O1xuICBjb25zdCBJTlRFUlBPTEFURURfVkVSQkFUSU1fU1RSSU5HX05PX0xGID0gaGxqcy5pbmhlcml0KElOVEVSUE9MQVRFRF9WRVJCQVRJTV9TVFJJTkcsIHtcbiAgICBpbGxlZ2FsOiAvXFxuLyxcbiAgICBjb250YWluczogW1xuICAgICAgeyBiZWdpbjogL1xce1xcey8gfSxcbiAgICAgIHsgYmVnaW46IC9cXH1cXH0vIH0sXG4gICAgICB7IGJlZ2luOiAnXCJcIicgfSxcbiAgICAgIFNVQlNUX05PX0xGXG4gICAgXVxuICB9KTtcbiAgU1VCU1QuY29udGFpbnMgPSBbXG4gICAgSU5URVJQT0xBVEVEX1ZFUkJBVElNX1NUUklORyxcbiAgICBJTlRFUlBPTEFURURfU1RSSU5HLFxuICAgIFZFUkJBVElNX1NUUklORyxcbiAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICBOVU1CRVJTLFxuICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREVcbiAgXTtcbiAgU1VCU1RfTk9fTEYuY29udGFpbnMgPSBbXG4gICAgSU5URVJQT0xBVEVEX1ZFUkJBVElNX1NUUklOR19OT19MRixcbiAgICBJTlRFUlBPTEFURURfU1RSSU5HLFxuICAgIFZFUkJBVElNX1NUUklOR19OT19MRixcbiAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICBOVU1CRVJTLFxuICAgIGhsanMuaW5oZXJpdChobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLCB7IGlsbGVnYWw6IC9cXG4vIH0pXG4gIF07XG4gIGNvbnN0IFNUUklORyA9IHsgdmFyaWFudHM6IFtcbiAgICBJTlRFUlBPTEFURURfVkVSQkFUSU1fU1RSSU5HLFxuICAgIElOVEVSUE9MQVRFRF9TVFJJTkcsXG4gICAgVkVSQkFUSU1fU1RSSU5HLFxuICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFXG4gIF0gfTtcblxuICBjb25zdCBHRU5FUklDX01PRElGSUVSID0ge1xuICAgIGJlZ2luOiBcIjxcIixcbiAgICBlbmQ6IFwiPlwiLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7IGJlZ2luS2V5d29yZHM6IFwiaW4gb3V0XCIgfSxcbiAgICAgIFRJVExFX01PREVcbiAgICBdXG4gIH07XG4gIGNvbnN0IFRZUEVfSURFTlRfUkUgPSBobGpzLklERU5UX1JFICsgJyg8JyArIGhsanMuSURFTlRfUkUgKyAnKFxcXFxzKixcXFxccyonICsgaGxqcy5JREVOVF9SRSArICcpKj4pPyhcXFxcW1xcXFxdKT8nO1xuICBjb25zdCBBVF9JREVOVElGSUVSID0ge1xuICAgIC8vIHByZXZlbnRzIGV4cHJlc3Npb25zIGxpa2UgYEBjbGFzc2AgZnJvbSBpbmNvcnJlY3QgZmxhZ2dpbmdcbiAgICAvLyBgY2xhc3NgIGFzIGEga2V5d29yZFxuICAgIGJlZ2luOiBcIkBcIiArIGhsanMuSURFTlRfUkUsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnQyMnLFxuICAgIGFsaWFzZXM6IFtcbiAgICAgICdjcycsXG4gICAgICAnYyMnXG4gICAgXSxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgaWxsZWdhbDogLzo6LyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DT01NRU5UKFxuICAgICAgICAnLy8vJyxcbiAgICAgICAgJyQnLFxuICAgICAgICB7XG4gICAgICAgICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnZG9jdGFnJyxcbiAgICAgICAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBiZWdpbjogJy8vLycsXG4gICAgICAgICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHsgYmVnaW46ICc8IS0tfC0tPicgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBiZWdpbjogJzwvPycsXG4gICAgICAgICAgICAgICAgICBlbmQ6ICc+J1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgICAgKSxcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogJyMnLFxuICAgICAgICBlbmQ6ICckJyxcbiAgICAgICAga2V5d29yZHM6IHsga2V5d29yZDogJ2lmIGVsc2UgZWxpZiBlbmRpZiBkZWZpbmUgdW5kZWYgd2FybmluZyBlcnJvciBsaW5lIHJlZ2lvbiBlbmRyZWdpb24gcHJhZ21hIGNoZWNrc3VtJyB9XG4gICAgICB9LFxuICAgICAgU1RSSU5HLFxuICAgICAgTlVNQkVSUyxcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ2NsYXNzIGludGVyZmFjZScsXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgZW5kOiAvW3s7PV0vLFxuICAgICAgICBpbGxlZ2FsOiAvW15cXHM6LF0vLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHsgYmVnaW5LZXl3b3JkczogXCJ3aGVyZSBjbGFzc1wiIH0sXG4gICAgICAgICAgVElUTEVfTU9ERSxcbiAgICAgICAgICBHRU5FUklDX01PRElGSUVSLFxuICAgICAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICduYW1lc3BhY2UnLFxuICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgIGVuZDogL1t7Oz1dLyxcbiAgICAgICAgaWxsZWdhbDogL1teXFxzOl0vLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIFRJVExFX01PREUsXG4gICAgICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREVcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ3JlY29yZCcsXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgZW5kOiAvW3s7PV0vLFxuICAgICAgICBpbGxlZ2FsOiAvW15cXHM6XS8sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgVElUTEVfTU9ERSxcbiAgICAgICAgICBHRU5FUklDX01PRElGSUVSLFxuICAgICAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIFtBdHRyaWJ1dGVzKFwiXCIpXVxuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgYmVnaW46ICdeXFxcXHMqXFxcXFsoPz1bXFxcXHddKScsXG4gICAgICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSxcbiAgICAgICAgZW5kOiAnXFxcXF0nLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgICAgICBiZWdpbjogL1wiLyxcbiAgICAgICAgICAgIGVuZDogL1wiL1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gRXhwcmVzc2lvbiBrZXl3b3JkcyBwcmV2ZW50ICdrZXl3b3JkIE5hbWUoLi4uKScgZnJvbSBiZWluZ1xuICAgICAgICAvLyByZWNvZ25pemVkIGFzIGEgZnVuY3Rpb24gZGVmaW5pdGlvblxuICAgICAgICBiZWdpbktleXdvcmRzOiAnbmV3IHJldHVybiB0aHJvdyBhd2FpdCBlbHNlJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdmdW5jdGlvbicsXG4gICAgICAgIGJlZ2luOiAnKCcgKyBUWVBFX0lERU5UX1JFICsgJ1xcXFxzKykrJyArIGhsanMuSURFTlRfUkUgKyAnXFxcXHMqKDxbXj1dKz5cXFxccyopP1xcXFwoJyxcbiAgICAgICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgIGVuZDogL1xccypbezs9XS8sXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAvLyBwcmV2ZW50cyB0aGVzZSBmcm9tIGJlaW5nIGhpZ2hsaWdodGVkIGB0aXRsZWBcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbktleXdvcmRzOiBGVU5DVElPTl9NT0RJRklFUlMuam9pbihcIiBcIiksXG4gICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiBobGpzLklERU5UX1JFICsgJ1xcXFxzKig8W149XSs+XFxcXHMqKT9cXFxcKCcsXG4gICAgICAgICAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgIGhsanMuVElUTEVfTU9ERSxcbiAgICAgICAgICAgICAgR0VORVJJQ19NT0RJRklFUlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH0sXG4gICAgICAgICAgeyBtYXRjaDogL1xcKFxcKS8gfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgICAgICAgICAgYmVnaW46IC9cXCgvLFxuICAgICAgICAgICAgZW5kOiAvXFwpLyxcbiAgICAgICAgICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSxcbiAgICAgICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgICAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICBTVFJJTkcsXG4gICAgICAgICAgICAgIE5VTUJFUlMsXG4gICAgICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREVcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBBVF9JREVOVElGSUVSXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNzaGFycDtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///59\n");
  1626. /***/ }),
  1627. /* 60 */
  1628. /*!******************************************************************************************************!*\
  1629. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/highlight.js/lib/languages/css.js ***!
  1630. \******************************************************************************************************/
  1631. /*! no static exports found */
  1632. /***/ (function(module, exports) {
  1633. eval("var MODES = function MODES(hljs) {\n return {\n IMPORTANT: {\n scope: 'meta',\n begin: '!important'\n },\n BLOCK_COMMENT: hljs.C_BLOCK_COMMENT_MODE,\n HEXCOLOR: {\n scope: 'number',\n begin: /#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\\b/\n },\n FUNCTION_DISPATCH: {\n className: \"built_in\",\n begin: /[\\w-]+(?=\\()/\n },\n ATTRIBUTE_SELECTOR_MODE: {\n scope: 'selector-attr',\n begin: /\\[/,\n end: /\\]/,\n illegal: '$',\n contains: [hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE]\n },\n CSS_NUMBER_MODE: {\n scope: 'number',\n begin: hljs.NUMBER_RE + '(' + '%|em|ex|ch|rem' + '|vw|vh|vmin|vmax' + '|cm|mm|in|pt|pc|px' + '|deg|grad|rad|turn' + '|s|ms' + '|Hz|kHz' + '|dpi|dpcm|dppx' + ')?',\n relevance: 0\n },\n CSS_VARIABLE: {\n className: \"attr\",\n begin: /--[A-Za-z][A-Za-z0-9_-]*/\n }\n };\n};\nvar TAGS = ['a', 'abbr', 'address', 'article', 'aside', 'audio', 'b', 'blockquote', 'body', 'button', 'canvas', 'caption', 'cite', 'code', 'dd', 'del', 'details', 'dfn', 'div', 'dl', 'dt', 'em', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'hgroup', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'mark', 'menu', 'nav', 'object', 'ol', 'p', 'q', 'quote', 'samp', 'section', 'span', 'strong', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'ul', 'var', 'video'];\nvar MEDIA_FEATURES = ['any-hover', 'any-pointer', 'aspect-ratio', 'color', 'color-gamut', 'color-index', 'device-aspect-ratio', 'device-height', 'device-width', 'display-mode', 'forced-colors', 'grid', 'height', 'hover', 'inverted-colors', 'monochrome', 'orientation', 'overflow-block', 'overflow-inline', 'pointer', 'prefers-color-scheme', 'prefers-contrast', 'prefers-reduced-motion', 'prefers-reduced-transparency', 'resolution', 'scan', 'scripting', 'update', 'width',\n// TODO: find a better solution?\n'min-width', 'max-width', 'min-height', 'max-height'];\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes\nvar PSEUDO_CLASSES = ['active', 'any-link', 'blank', 'checked', 'current', 'default', 'defined', 'dir',\n// dir()\n'disabled', 'drop', 'empty', 'enabled', 'first', 'first-child', 'first-of-type', 'fullscreen', 'future', 'focus', 'focus-visible', 'focus-within', 'has',\n// has()\n'host',\n// host or host()\n'host-context',\n// host-context()\n'hover', 'indeterminate', 'in-range', 'invalid', 'is',\n// is()\n'lang',\n// lang()\n'last-child', 'last-of-type', 'left', 'link', 'local-link', 'not',\n// not()\n'nth-child',\n// nth-child()\n'nth-col',\n// nth-col()\n'nth-last-child',\n// nth-last-child()\n'nth-last-col',\n// nth-last-col()\n'nth-last-of-type',\n//nth-last-of-type()\n'nth-of-type',\n//nth-of-type()\n'only-child', 'only-of-type', 'optional', 'out-of-range', 'past', 'placeholder-shown', 'read-only', 'read-write', 'required', 'right', 'root', 'scope', 'target', 'target-within', 'user-invalid', 'valid', 'visited', 'where' // where()\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-elements\nvar PSEUDO_ELEMENTS = ['after', 'backdrop', 'before', 'cue', 'cue-region', 'first-letter', 'first-line', 'grammar-error', 'marker', 'part', 'placeholder', 'selection', 'slotted', 'spelling-error'];\nvar ATTRIBUTES = ['align-content', 'align-items', 'align-self', 'all', 'animation', 'animation-delay', 'animation-direction', 'animation-duration', 'animation-fill-mode', 'animation-iteration-count', 'animation-name', 'animation-play-state', 'animation-timing-function', 'backface-visibility', 'background', 'background-attachment', 'background-blend-mode', 'background-clip', 'background-color', 'background-image', 'background-origin', 'background-position', 'background-repeat', 'background-size', 'block-size', 'border', 'border-block', 'border-block-color', 'border-block-end', 'border-block-end-color', 'border-block-end-style', 'border-block-end-width', 'border-block-start', 'border-block-start-color', 'border-block-start-style', 'border-block-start-width', 'border-block-style', 'border-block-width', 'border-bottom', 'border-bottom-color', 'border-bottom-left-radius', 'border-bottom-right-radius', 'border-bottom-style', 'border-bottom-width', 'border-collapse', 'border-color', 'border-image', 'border-image-outset', 'border-image-repeat', 'border-image-slice', 'border-image-source', 'border-image-width', 'border-inline', 'border-inline-color', 'border-inline-end', 'border-inline-end-color', 'border-inline-end-style', 'border-inline-end-width', 'border-inline-start', 'border-inline-start-color', 'border-inline-start-style', 'border-inline-start-width', 'border-inline-style', 'border-inline-width', 'border-left', 'border-left-color', 'border-left-style', 'border-left-width', 'border-radius', 'border-right', 'border-right-color', 'border-right-style', 'border-right-width', 'border-spacing', 'border-style', 'border-top', 'border-top-color', 'border-top-left-radius', 'border-top-right-radius', 'border-top-style', 'border-top-width', 'border-width', 'bottom', 'box-decoration-break', 'box-shadow', 'box-sizing', 'break-after', 'break-before', 'break-inside', 'caption-side', 'caret-color', 'clear', 'clip', 'clip-path', 'clip-rule', 'color', 'column-count', 'column-fill', 'column-gap', 'column-rule', 'column-rule-color', 'column-rule-style', 'column-rule-width', 'column-span', 'column-width', 'columns', 'contain', 'content', 'content-visibility', 'counter-increment', 'counter-reset', 'cue', 'cue-after', 'cue-before', 'cursor', 'direction', 'display', 'empty-cells', 'filter', 'flex', 'flex-basis', 'flex-direction', 'flex-flow', 'flex-grow', 'flex-shrink', 'flex-wrap', 'float', 'flow', 'font', 'font-display', 'font-family', 'font-feature-settings', 'font-kerning', 'font-language-override', 'font-size', 'font-size-adjust', 'font-smoothing', 'font-stretch', 'font-style', 'font-synthesis', 'font-variant', 'font-variant-caps', 'font-variant-east-asian', 'font-variant-ligatures', 'font-variant-numeric', 'font-variant-position', 'font-variation-settings', 'font-weight', 'gap', 'glyph-orientation-vertical', 'grid', 'grid-area', 'grid-auto-columns', 'grid-auto-flow', 'grid-auto-rows', 'grid-column', 'grid-column-end', 'grid-column-start', 'grid-gap', 'grid-row', 'grid-row-end', 'grid-row-start', 'grid-template', 'grid-template-areas', 'grid-template-columns', 'grid-template-rows', 'hanging-punctuation', 'height', 'hyphens', 'icon', 'image-orientation', 'image-rendering', 'image-resolution', 'ime-mode', 'inline-size', 'isolation', 'justify-content', 'left', 'letter-spacing', 'line-break', 'line-height', 'list-style', 'list-style-image', 'list-style-position', 'list-style-type', 'margin', 'margin-block', 'margin-block-end', 'margin-block-start', 'margin-bottom', 'margin-inline', 'margin-inline-end', 'margin-inline-start', 'margin-left', 'margin-right', 'margin-top', 'marks', 'mask', 'mask-border', 'mask-border-mode', 'mask-border-outset', 'mask-border-repeat', 'mask-border-slice', 'mask-border-source', 'mask-border-width', 'mask-clip', 'mask-composite', 'mask-image', 'mask-mode', 'mask-origin', 'mask-position', 'mask-repeat', 'mask-size', 'mask-type', 'max-block-size', 'max-height', 'max-inline-size', 'max-width', 'min-block-size', 'min-height', 'min-inline-size', 'min-width', 'mix-blend-mode', 'nav-down', 'nav-index', 'nav-left', 'nav-right', 'nav-up', 'none', 'normal', 'object-fit', 'object-position', 'opacity', 'order', 'orphans', 'outline', 'outline-color', 'outline-offset', 'outline-style', 'outline-width', 'overflow', 'overflow-wrap', 'overflow-x', 'overflow-y', 'padding', 'padding-block', 'padding-block-end', 'padding-block-start', 'padding-bottom', 'padding-inline', 'padding-inline-end', 'padding-inline-start', 'padding-left', 'padding-right', 'padding-top', 'page-break-after', 'page-break-before', 'page-break-inside', 'pause', 'pause-after', 'pause-before', 'perspective', 'perspective-origin', 'pointer-events', 'position', 'quotes', 'resize', 'rest', 'rest-after', 'rest-before', 'right', 'row-gap', 'scroll-margin', 'scroll-margin-block', 'scroll-margin-block-end', 'scroll-margin-block-start', 'scroll-margin-bottom', 'scroll-margin-inline', 'scroll-margin-inline-end', 'scroll-margin-inline-start', 'scroll-margin-left', 'scroll-margin-right', 'scroll-margin-top', 'scroll-padding', 'scroll-padding-block', 'scroll-padding-block-end', 'scroll-padding-block-start', 'scroll-padding-bottom', 'scroll-padding-inline', 'scroll-padding-inline-end', 'scroll-padding-inline-start', 'scroll-padding-left', 'scroll-padding-right', 'scroll-padding-top', 'scroll-snap-align', 'scroll-snap-stop', 'scroll-snap-type', 'scrollbar-color', 'scrollbar-gutter', 'scrollbar-width', 'shape-image-threshold', 'shape-margin', 'shape-outside', 'speak', 'speak-as', 'src',\n// @font-face\n'tab-size', 'table-layout', 'text-align', 'text-align-all', 'text-align-last', 'text-combine-upright', 'text-decoration', 'text-decoration-color', 'text-decoration-line', 'text-decoration-style', 'text-emphasis', 'text-emphasis-color', 'text-emphasis-position', 'text-emphasis-style', 'text-indent', 'text-justify', 'text-orientation', 'text-overflow', 'text-rendering', 'text-shadow', 'text-transform', 'text-underline-position', 'top', 'transform', 'transform-box', 'transform-origin', 'transform-style', 'transition', 'transition-delay', 'transition-duration', 'transition-property', 'transition-timing-function', 'unicode-bidi', 'vertical-align', 'visibility', 'voice-balance', 'voice-duration', 'voice-family', 'voice-pitch', 'voice-range', 'voice-rate', 'voice-stress', 'voice-volume', 'white-space', 'widows', 'width', 'will-change', 'word-break', 'word-spacing', 'word-wrap', 'writing-mode', 'z-index'\n// reverse makes sure longer attributes `font-weight` are matched fully\n// instead of getting false positives on say `font`\n].reverse();\n\n/*\nLanguage: CSS\nCategory: common, css, web\nWebsite: https://developer.mozilla.org/en-US/docs/Web/CSS\n*/\n\n/** @type LanguageFn */\nfunction css(hljs) {\n var regex = hljs.regex;\n var modes = MODES(hljs);\n var VENDOR_PREFIX = {\n begin: /-(webkit|moz|ms|o)-(?=[a-z])/\n };\n var AT_MODIFIERS = \"and or not only\";\n var AT_PROPERTY_RE = /@-?\\w[\\w]*(-\\w+)*/; // @-webkit-keyframes\n var IDENT_RE = '[a-zA-Z-][a-zA-Z0-9_-]*';\n var STRINGS = [hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE];\n return {\n name: 'CSS',\n case_insensitive: true,\n illegal: /[=|'\\$]/,\n keywords: {\n keyframePosition: \"from to\"\n },\n classNameAliases: {\n // for visual continuity with `tag {}` and because we\n // don't have a great class for this?\n keyframePosition: \"selector-tag\"\n },\n contains: [modes.BLOCK_COMMENT, VENDOR_PREFIX,\n // to recognize keyframe 40% etc which are outside the scope of our\n // attribute value mode\n modes.CSS_NUMBER_MODE, {\n className: 'selector-id',\n begin: /#[A-Za-z0-9_-]+/,\n relevance: 0\n }, {\n className: 'selector-class',\n begin: '\\\\.' + IDENT_RE,\n relevance: 0\n }, modes.ATTRIBUTE_SELECTOR_MODE, {\n className: 'selector-pseudo',\n variants: [{\n begin: ':(' + PSEUDO_CLASSES.join('|') + ')'\n }, {\n begin: ':(:)?(' + PSEUDO_ELEMENTS.join('|') + ')'\n }]\n },\n // we may actually need this (12/2020)\n // { // pseudo-selector params\n // begin: /\\(/,\n // end: /\\)/,\n // contains: [ hljs.CSS_NUMBER_MODE ]\n // },\n modes.CSS_VARIABLE, {\n className: 'attribute',\n begin: '\\\\b(' + ATTRIBUTES.join('|') + ')\\\\b'\n },\n // attribute values\n {\n begin: /:/,\n end: /[;}{]/,\n contains: [modes.BLOCK_COMMENT, modes.HEXCOLOR, modes.IMPORTANT, modes.CSS_NUMBER_MODE].concat(STRINGS, [\n // needed to highlight these as strings and to avoid issues with\n // illegal characters that might be inside urls that would tigger the\n // languages illegal stack\n {\n begin: /(url|data-uri)\\(/,\n end: /\\)/,\n relevance: 0,\n // from keywords\n keywords: {\n built_in: \"url data-uri\"\n },\n contains: [].concat(STRINGS, [{\n className: \"string\",\n // any character other than `)` as in `url()` will be the start\n // of a string, which ends with `)` (from the parent mode)\n begin: /[^)]/,\n endsWithParent: true,\n excludeEnd: true\n }])\n }, modes.FUNCTION_DISPATCH])\n }, {\n begin: regex.lookahead(/@/),\n end: '[{;]',\n relevance: 0,\n illegal: /:/,\n // break on Less variables @var: ...\n contains: [{\n className: 'keyword',\n begin: AT_PROPERTY_RE\n }, {\n begin: /\\s/,\n endsWithParent: true,\n excludeEnd: true,\n relevance: 0,\n keywords: {\n $pattern: /[a-z-]+/,\n keyword: AT_MODIFIERS,\n attribute: MEDIA_FEATURES.join(\" \")\n },\n contains: [{\n begin: /[a-z-]+(?=:)/,\n className: \"attribute\"\n }].concat(STRINGS, [modes.CSS_NUMBER_MODE])\n }]\n }, {\n className: 'selector-tag',\n begin: '\\\\b(' + TAGS.join('|') + ')\\\\b'\n }]\n };\n}\nmodule.exports = css;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvY3NzLmpzIl0sIm5hbWVzIjpbIk1PREVTIiwiaGxqcyIsIklNUE9SVEFOVCIsInNjb3BlIiwiYmVnaW4iLCJCTE9DS19DT01NRU5UIiwiQ19CTE9DS19DT01NRU5UX01PREUiLCJIRVhDT0xPUiIsIkZVTkNUSU9OX0RJU1BBVENIIiwiY2xhc3NOYW1lIiwiQVRUUklCVVRFX1NFTEVDVE9SX01PREUiLCJlbmQiLCJpbGxlZ2FsIiwiY29udGFpbnMiLCJBUE9TX1NUUklOR19NT0RFIiwiUVVPVEVfU1RSSU5HX01PREUiLCJDU1NfTlVNQkVSX01PREUiLCJOVU1CRVJfUkUiLCJyZWxldmFuY2UiLCJDU1NfVkFSSUFCTEUiLCJUQUdTIiwiTUVESUFfRkVBVFVSRVMiLCJQU0VVRE9fQ0xBU1NFUyIsIlBTRVVET19FTEVNRU5UUyIsIkFUVFJJQlVURVMiLCJyZXZlcnNlIiwiY3NzIiwicmVnZXgiLCJtb2RlcyIsIlZFTkRPUl9QUkVGSVgiLCJBVF9NT0RJRklFUlMiLCJBVF9QUk9QRVJUWV9SRSIsIklERU5UX1JFIiwiU1RSSU5HUyIsIm5hbWUiLCJjYXNlX2luc2Vuc2l0aXZlIiwia2V5d29yZHMiLCJrZXlmcmFtZVBvc2l0aW9uIiwiY2xhc3NOYW1lQWxpYXNlcyIsInZhcmlhbnRzIiwiam9pbiIsImJ1aWx0X2luIiwiZW5kc1dpdGhQYXJlbnQiLCJleGNsdWRlRW5kIiwibG9va2FoZWFkIiwiJHBhdHRlcm4iLCJrZXl3b3JkIiwiYXR0cmlidXRlIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBTUEsS0FBSyxHQUFHLFNBQVJBLEtBQUssQ0FBSUMsSUFBSSxFQUFLO0VBQ3RCLE9BQU87SUFDTEMsU0FBUyxFQUFFO01BQ1RDLEtBQUssRUFBRSxNQUFNO01BQ2JDLEtBQUssRUFBRTtJQUNULENBQUM7SUFDREMsYUFBYSxFQUFFSixJQUFJLENBQUNLLG9CQUFv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QUV6QixDQUFDO0lBRUwsQ0FBQyxFQUNEO01BQ0VQLFNBQVMsRUFBRSxjQUFjO01BQ3pCTCxLQUFLLEVBQUUsTUFBTSxHQUFHZ0IsSUFBSSxDQUFDb0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHO0lBQ25DLENBQUM7RUFFTCxDQUFDO0FBQ0g7QUFFQVEsTUFBTSxDQUFDQyxPQUFPLEdBQUd2QixHQUFHIiwiZmlsZSI6IjYwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgTU9ERVMgPSAoaGxqcykgPT4ge1xuICByZXR1cm4ge1xuICAgIElNUE9SVEFOVDoge1xuICAgICAgc2NvcGU6ICdtZXRhJyxcbiAgICAgIGJlZ2luOiAnIWltcG9ydGFudCdcbiAgICB9LFxuICAgIEJMT0NLX0NPTU1FTlQ6IGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgSEVYQ09MT1I6IHtcbiAgICAgIHNjb3BlOiAnbnVtYmVyJyxcbiAgICAgIGJlZ2luOiAvIygoWzAtOWEtZkEtRl17Myw0fSl8KChbMC05YS1mQS1GXXsyfSl7Myw0fSkpXFxiL1xuICAgIH0sXG4gICAgRlVOQ1RJT05fRElTUEFUQ0g6IHtcbiAgICAgIGNsYXNzTmFtZTogXCJidWlsdF9pblwiLFxuICAgICAgYmVnaW46IC9bXFx3LV0rKD89XFwoKS9cbiAgICB9LFxuICAgIEFUVFJJQlVURV9TRUxFQ1RPUl9NT0RFOiB7XG4gICAgICBzY29wZTogJ3NlbGVjdG9yLWF0dHInLFxuICAgICAgYmVnaW46IC9cXFsvLFxuICAgICAgZW5kOiAvXFxdLyxcbiAgICAgIGlsbGVnYWw6ICckJyxcbiAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERVxuICAgICAgXVxuICAgIH0sXG4gICAgQ1NTX05VTUJFUl9NT0RFOiB7XG4gICAgICBzY29wZTogJ251bWJlcicsXG4gICAgICBiZWdpbjogaGxqcy5OVU1CRVJfUkUgKyAnKCcgK1xuICAgICAgICAnJXxlbXxleHxjaHxyZW0nICtcbiAgICAgICAgJ3x2d3x2aHx2bWlufHZtYXgnICtcbiAgICAgICAgJ3xjbXxtbXxpbnxwdHxwY3xweCcgK1xuICAgICAgICAnfGRlZ3xncmFkfHJhZHx0dXJuJyArXG4gICAgICAgICd8c3xtcycgK1xuICAgICAgICAnfEh6fGtIeicgK1xuICAgICAgICAnfGRwaXxkcGNtfGRwcHgnICtcbiAgICAgICAgJyk/JyxcbiAgICAgIHJlbGV2YW5jZTogMFxuICAgIH0sXG4gICAgQ1NTX1ZBUklBQkxFOiB7XG4gICAgICBjbGFzc05hbWU6IFwiYXR0clwiLFxuICAgICAgYmVnaW46IC8tLVtBLVphLXpdW0EtWmEtejAtOV8tXSovXG4gICAgfVxuICB9O1xufTtcblxuY29uc3QgVEFHUyA9IFtcbiAgJ2EnLFxuICAnYWJicicsXG4gICdhZGRyZXNzJyxcbiAgJ2FydGljbGUnLFxuICAnYXNpZGUnLFxuICAnYXVkaW8nLFxuICAnYicsXG4gICdibG9ja3F1b3RlJyxcbiAgJ2JvZHknLFxuICAnYnV0dG9uJyxcbiAgJ2NhbnZhcycsXG4gICdjYXB0aW9uJyxcbiAgJ2NpdGUnLFxuICAnY29kZScsXG4gICdkZCcsXG4gICdkZWwnLFxuICAnZGV0YWlscycsXG4gICdkZm4nLFxuICAnZGl2JyxcbiAgJ2RsJyxcbiAgJ2R0JyxcbiAgJ2VtJyxcbiAgJ2ZpZWxkc2V0JyxcbiAgJ2ZpZ2NhcHRpb24nLFxuICAnZmlndXJlJyxcbiAgJ2Zvb3RlcicsXG4gICdmb3JtJyxcbiAgJ2gxJyxcbiAgJ2gyJyxcbiAgJ2gzJyxcbiAgJ2g0JyxcbiAgJ2g1JyxcbiAgJ2g2JyxcbiAgJ2hlYWRlcicsXG4gICdoZ3JvdXAnLFxuICAnaHRtbCcsXG4gICdpJyxcbiAgJ2lmcmFtZScsXG4gICdpbWcnLFxuICAnaW5wdXQnLFxuICAnaW5zJyxcbiAgJ2tiZCcsXG4gICdsYWJlbCcsXG4gICdsZWdlbmQnLFxuICAnbGknLFxuICAnbWFpbicsXG4gICdtYXJrJyxcbiAgJ21lbnUnLFxuICAnbmF2JyxcbiAgJ29iamVjdCcsXG4gICdvbCcsXG4gICdwJyxcbiAgJ3EnLFxuICAncXVvdGUnLFxuICAnc2FtcCcsXG4gICdzZWN0aW9uJyxcbiAgJ3NwYW4nLFxuICAnc3Ryb25nJyxcbiAgJ3N1bW1hcnknLFxuICAnc3VwJyxcbiAgJ3RhYmxlJyxcbiAgJ3Rib2R5JyxcbiAgJ3RkJyxcbiAgJ3RleHRhcmVhJyxcbiAgJ3Rmb290JyxcbiAgJ3RoJyxcbiAgJ3RoZWFkJyxcbiAgJ3RpbWUnLFxuICAndHInLFxuICAndWwnLFxuICAndmFyJyxcbiAgJ3ZpZGVvJ1xuXTtcblxuY29uc3QgTUVESUFfRkVBVFVSRVMgPSBbXG4gICdhbnktaG92ZXInLFxuICAnYW55LXBvaW50ZXInLFxuICAnYXNwZWN0LXJhdGlvJyxcbiAgJ2NvbG9yJyxcbiAgJ2NvbG9yLWdhbXV0JyxcbiAgJ2NvbG9yLWluZGV4JyxcbiAgJ2RldmljZS1hc3BlY3QtcmF0aW8nLFxuICAnZGV2aWNlLWhlaWdodCcsXG4gICdkZXZpY2Utd2lkdGgnLFxuICAnZGlzcGxheS1tb2RlJyxcbiAgJ2ZvcmNlZC1jb2xvcnMnLFxuICAnZ3JpZCcsXG4gICdoZWlnaHQnLFxuICAnaG92ZXInLFxuICAnaW52ZXJ0ZWQtY29sb3JzJyxcbiAgJ21vbm9jaHJvbWUnLFxuICAnb3JpZW50YXRpb24nLFxuICAnb3ZlcmZsb3ctYmxvY2snLFxuICAnb3ZlcmZsb3ctaW5saW5lJyxcbiAgJ3BvaW50ZXInLFxuICAncHJlZmVycy1jb2xvci1zY2hlbWUnLFxuICAncHJlZmVycy1jb250cmFzdCcsXG4gICdwcmVmZXJzLXJlZHVjZWQtbW90aW9uJyxcbiAgJ3ByZWZlcnMtcmVkdWNlZC10cmFuc3BhcmVuY3knLFxuICAncmVzb2x1dGlvbicsXG4gICdzY2FuJyxcbiAgJ3NjcmlwdGluZycsXG4gICd1cGRhdGUnLFxuICAnd2lkdGgnLFxuICAvLyBUT0RPOiBmaW5kIGEgYmV0dGVyIHNvbHV0aW9uP1xuICAnbWluLXdpZHRoJyxcbiAgJ21heC13aWR0aCcsXG4gICdtaW4taGVpZ2h0JyxcbiAgJ21heC1oZWlnaHQnXG5dO1xuXG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvUHNldWRvLWNsYXNzZXNcbmNvbnN0IFBTRVVET19DTEFTU0VTID0gW1xuICAnYWN0aXZlJyxcbiAgJ2FueS1saW5rJyxcbiAgJ2JsYW5rJyxcbiAgJ2NoZWNrZWQnLFxuICAnY3VycmVudCcsXG4gICdkZWZhdWx0JyxcbiAgJ2RlZmluZWQnLFxuICAnZGlyJywgLy8gZGlyKClcbiAgJ2Rpc2FibGVkJyxcbiAgJ2Ryb3AnLFxuICAnZW1wdHknLFxuICAnZW5hYmxlZCcsXG4gICdmaXJzdCcsXG4gICdmaXJzdC1jaGlsZCcsXG4gICdmaXJzdC1vZi10eXBlJyxcbiAgJ2Z1bGxzY3JlZW4nLFxuICAnZnV0dXJlJyxcbiAgJ2ZvY3VzJyxcbiAgJ2ZvY3VzLXZpc2libGUnLFxuICAnZm9jdXMtd2l0aGluJyxcbiAgJ2hhcycsIC8vIGhhcygpXG4gICdob3N0JywgLy8gaG9zdCBvciBob3N0KClcbiAgJ2hvc3QtY29udGV4dCcsIC8vIGhvc3QtY29udGV4dCgpXG4gICdob3ZlcicsXG4gICdpbmRldGVybWluYXRlJyxcbiAgJ2luLXJhbmdlJyxcbiAgJ2ludmFsaWQnLFxuICAnaXMnLCAvLyBpcygpXG4gICdsYW5nJywgLy8gbGFuZygpXG4gICdsYXN0LWNoaWxkJyxcbiAgJ2xhc3Qtb2YtdHlwZScsXG4gICdsZWZ0JyxcbiAgJ2xpbmsnLFxuICAnbG9jYWwtbGluaycsXG4gICdub3QnLCAvLyBub3QoKVxuICAnbnRoLWNoaWxkJywgLy8gbnRoLWNoaWxkKClcbiAgJ250aC1jb2wnLCAvLyBudGgtY29sKClcbiAgJ250aC1sYXN0LWNoaWxkJywgLy8gbnRoLWxhc3QtY2hpbGQoKVxuICAnbnRoLWxhc3QtY29sJywgLy8gbnRoLWxhc3QtY29sKClcbiAgJ250aC1sYXN0LW9mLXR5cGUnLCAvL250aC1sYXN0LW9mLXR5cGUoKVxuICAnbnRoLW9mLXR5cGUnLCAvL250aC1vZi10eXBlKClcbiAgJ29ubHktY2hpbGQnLFxuICAnb25seS1vZi10eXBlJyxcbiAgJ29wdGlvbmFsJyxcbiAgJ291dC1vZi1yYW5nZScsXG4gICdwYXN0JyxcbiAgJ3BsYWNlaG9sZGVyLXNob3duJyxcbiAgJ3JlYWQtb25seScsXG4gICdyZWFkLXdyaXRlJyxcbiAgJ3JlcXVpcmVkJyxcbiAgJ3JpZ2h0JyxcbiAgJ3Jvb3QnLFxuICAnc2NvcGUnLFxuICAndGFyZ2V0JyxcbiAgJ3RhcmdldC13aXRoaW4nLFxuICAndXNlci1pbnZhbGlkJyxcbiAgJ3ZhbGlkJyxcbiAgJ3Zpc2l0ZWQnLFxuICAnd2hlcmUnIC8vIHdoZXJlKClcbl07XG5cbi8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9Qc2V1ZG8tZWxlbWVudHNcbmNvbnN0IFBTRVVET19FTEVNRU5UUyA9IFtcbiAgJ2FmdGVyJyxcbiAgJ2JhY2tkcm9wJyxcbiAgJ2JlZm9yZScsXG4gICdjdWUnLFxuICAnY3VlLXJlZ2lvbicsXG4gICdmaXJzdC1sZXR0ZXInLFxuICAnZmlyc3QtbGluZScsXG4gICdncmFtbWFyLWVycm9yJyxcbiAgJ21hcmtlcicsXG4gICdwYXJ0JyxcbiAgJ3BsYWNlaG9sZGVyJyxcbiAgJ3NlbGVjdGlvbicsXG4gICdzbG90dGVkJyxcbiAgJ3NwZWxsaW5nLWVycm9yJ1xuXTtcblxuY29uc3QgQVRUUklCVVRFUyA9IFtcbiAgJ2FsaWduLWNvbnRlbnQnLFxuICAnYWxpZ24taXRlbXMnLFxuICAnYWxpZ24tc2VsZicsXG4gICdhbGwnLFxuICAnYW5pbWF0aW9uJyxcbiAgJ2FuaW1hdGlvbi1kZWxheScsXG4gICdhbmltYXRpb24tZGlyZWN0aW9uJyxcbiAgJ2FuaW1hdGlvbi1kdXJhdGlvbicsXG4gICdhbmltYXRpb24tZmlsbC1tb2RlJyxcbiAgJ2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQnLFxuICAnYW5pbWF0aW9uLW5hbWUnLFxuICAnYW5pbWF0aW9uLXBsYXktc3RhdGUnLFxuICAnYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbicsXG4gICdiYWNrZmFjZS12aXNpYmlsaXR5JyxcbiAgJ2JhY2tncm91bmQnLFxuICAnYmFja2dyb3VuZC1hdHRhY2htZW50JyxcbiAgJ2JhY2tncm91bmQtYmxlbmQtbW9kZScsXG4gICdiYWNrZ3JvdW5kLWNsaXAnLFxuICAnYmFja2dyb3VuZC1jb2xvcicsXG4gICdiYWNrZ3JvdW5kLWltYWdlJyxcbiAgJ2JhY2tncm91bmQtb3JpZ2luJyxcbiAgJ2JhY2tncm91bmQtcG9zaXRpb24nLFxuICAnYmFja2dyb3VuZC1yZXBlYXQnLFxuICAnYmFja2dyb3VuZC1zaXplJyxcbiAgJ2Jsb2NrLXNpemUnLFxuICAnYm9yZGVyJyxcbiAgJ2JvcmRlci1ibG9jaycsXG4gICdib3JkZXItYmxvY2stY29sb3InLFxuICAnYm9yZGVyLWJsb2NrLWVuZCcsXG4gICdib3JkZXItYmxvY2stZW5kLWNvbG9yJyxcbiAgJ2JvcmRlci1ibG9jay1lbmQtc3R5bGUnLFxuICAnYm9yZGVyLWJsb2NrLWVuZC13aWR0aCcsXG4gICdib3JkZXItYmxvY2stc3RhcnQnLFxuICAnYm9yZGVyLWJsb2NrLXN0YXJ0LWNvbG9yJyxcbiAgJ2JvcmRlci1ibG9jay1zdGFydC1zdHlsZScsXG4gICdib3JkZXItYmxvY2stc3RhcnQtd2lkdGgnLFxuICAnYm9yZGVyLWJsb2NrLXN0eWxlJyxcbiAgJ2JvcmRlci1ibG9jay13aWR0aCcsXG4gICdib3JkZXItYm90dG9tJyxcbiAgJ2JvcmRlci1ib3R0b20tY29sb3InLFxuICAnYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cycsXG4gICdib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cycsXG4gICdib3JkZXItYm90dG9tLXN0eWxlJyxcbiAgJ2JvcmRlci1ib3R0b20td2lkdGgnLFxuICAnYm9yZGVyLWNvbGxhcHNlJyxcbiAgJ2JvcmRlci1jb2xvcicsXG4gICdib3JkZXItaW1hZ2UnLFxuICAnYm9yZGVyLWltYWdlLW91dHNldCcsXG4gICdib3JkZXItaW1hZ2UtcmVwZWF0JyxcbiAgJ2JvcmRlci1pbWFnZS1zbGljZScsXG4gICdib3JkZXItaW1hZ2Utc291cmNlJyxcbiAgJ2JvcmRlci1pbWFnZS13aWR0aCcsXG4gICdib3JkZXItaW5saW5lJyxcbiAgJ2JvcmRlci1pbmxpbmUtY29sb3InLFxuICAnYm9yZGVyLWlubGluZS1lbmQnLFxuICAnYm9yZGVyLWlubGluZS1lbmQtY29sb3InLFxuICAnYm9yZGVyLWlubGluZS1lbmQtc3R5bGUnLFxuICAnYm9yZGVyLWlubGluZS1lbmQtd2lkdGgnLFxuICAnYm9yZGVyLWlubGluZS1zdGFydCcsXG4gICdib3JkZXItaW5saW5lLXN0YXJ0LWNvbG9yJyxcbiAgJ2JvcmRlci1pbmxpbmUtc3RhcnQtc3R5bGUnLFxuICAnYm9yZGVyLWlubGluZS1zdGFydC13aWR0aCcsXG4gICdib3JkZXItaW5saW5lLXN0eWxlJyxcbiAgJ2JvcmRlci1pbmxpbmUtd2lkdGgnLFxuICAnYm9yZGVyLWxlZnQnLFxuICAnYm9yZGVyLWxlZnQtY29sb3InLFxuICAnYm9yZGVyLWxlZnQtc3R5bGUnLFxuICAnYm9yZGVyLWxlZnQtd2lkdGgnLFxuICAnYm9yZGVyLXJhZGl1cycsXG4gICdib3JkZXItcmlnaHQnLFxuICAnYm9yZGVyLXJpZ2h0LWNvbG9yJyxcbiAgJ2JvcmRlci1yaWdodC1zdHlsZScsXG4gICdib3JkZXItcmlnaHQtd2lkdGgnLFxuICAnYm9yZGVyLXNwYWNpbmcnLFxuICAnYm9yZGVyLXN0eWxlJyxcbiAgJ2JvcmRlci10b3AnLFxuICAnYm9yZGVyLXRvcC1jb2xvcicsXG4gICdib3JkZXItdG9wLWxlZnQtcmFkaXVzJyxcbiAgJ2JvcmRlci10b3AtcmlnaHQtcmFkaXVzJyxcbiAgJ2JvcmRlci10b3Atc3R5bGUnLFxuICAnYm9yZGVyLXRvcC13aWR0aCcsXG4gICdib3JkZXItd2lkdGgnLFxuICAnYm90dG9tJyxcbiAgJ2JveC1kZWNvcmF0aW9uLWJyZWFrJyxcbiAgJ2JveC1zaGFkb3cnLFxuICAnYm94LXNpemluZycsXG4gICdicmVhay1hZnRlcicsXG4gICdicmVhay1iZWZvcmUnLFxuICAnYnJlYWstaW5zaWRlJyxcbiAgJ2NhcHRpb24tc2lkZScsXG4gICdjYXJldC1jb2xvcicsXG4gICdjbGVhcicsXG4gICdjbGlwJyxcbiAgJ2NsaXAtcGF0aCcsXG4gICdjbGlwLXJ1bGUnLFxuICAnY29sb3InLFxuICAnY29sdW1uLWNvdW50JyxcbiAgJ2NvbHVtbi1maWxsJyxcbiAgJ2NvbHVtbi1nYXAnLFxuICAnY29sdW1uLXJ1bGUnLFxuICAnY29sdW1uLXJ1bGUtY29sb3InLFxuICAnY29sdW1uLXJ1bGUtc3R5bGUnLFxuICAnY29sdW1uLXJ1bGUtd2lkdGgnLFxuICAnY29sdW1uLXNwYW4nLFxuICAnY29sdW1uLXdpZHRoJyxcbiAgJ2NvbHVtbnMnLFxuICAnY29udGFpbicsXG4gICdjb250ZW50JyxcbiAgJ2NvbnRlbnQtdmlzaWJpbGl0eScsXG4gICdjb3VudGVyLWluY3JlbWVudCcsXG4gICdjb3VudGVyLXJlc2V0JyxcbiAgJ2N1ZScsXG4gICdjdWUtYWZ0ZXInLFxuICAnY3VlLWJlZm9yZScsXG4gICdjdXJzb3InLFxuICAnZGlyZWN0aW9uJyxcbiAgJ2Rpc3BsYXknLFxuICAnZW1wdHktY2VsbHMnLFxuICAnZmlsdGVyJyxcbiAgJ2ZsZXgnLFxuICAnZmxleC1iYXNpcycsXG4gICdmbGV4LWRpcmVjdGlvbicsXG4gICdmbGV4LWZsb3cnLFxuICAnZmxleC1ncm93JyxcbiAgJ2ZsZXgtc2hyaW5rJyxcbiAgJ2ZsZXgtd3JhcCcsXG4gICdmbG9hdCcsXG4gICdmbG93JyxcbiAgJ2ZvbnQnLFxuICAnZm9udC1kaXNwbGF5JyxcbiAgJ2ZvbnQtZmFtaWx5JyxcbiAgJ2ZvbnQtZmVhdHVyZS1zZXR0aW5ncycsXG4gICdmb250LWtlcm5pbmcnLFxuICAnZm9udC1sYW5ndWFnZS1vdmVycmlkZScsXG4gICdmb250LXNpemUnLFxuICAnZm9udC1zaXplLWFkanVzdCcsXG4gICdmb250LXNtb290aGluZycsXG4gICdmb250LXN0cmV0Y2gnLFxuICAnZm9udC1zdHlsZScsXG4gICdmb250LXN5bnRoZXNpcycsXG4gICdmb250LXZhcmlhbnQnLFxuICAnZm9udC12YXJpYW50LWNhcHMnLFxuICAnZm9udC12YXJpYW50LWVhc3QtYXNpYW4nLFxuICAnZm9udC12YXJpYW50LWxpZ2F0dXJlcycsXG4gICdmb250LXZhcmlhbnQtbnVtZXJpYycsXG4gICdmb250LXZhcmlhbnQtcG9zaXRpb24nLFxuICAnZm9udC12YXJpYXRpb24tc2V0dGluZ3MnLFxuICAnZm9udC13ZWlnaHQnLFxuICAnZ2FwJyxcbiAgJ2dseXBoLW9yaWVudGF0aW9uLXZlcnRpY2FsJyxcbiAgJ2dyaWQnLFxuICAnZ3JpZC1hcmVhJyxcbiAgJ2dyaWQtYXV0by1jb2x1bW5zJyxcbiAgJ2dyaWQtYXV0by1mbG93JyxcbiAgJ2dyaWQtYXV0by1yb3dzJyxcbiAgJ2dyaWQtY29sdW1uJyxcbiAgJ2dyaWQtY29sdW1uLWVuZCcsXG4gICdncmlkLWNvbHVtbi1zdGFydCcsXG4gICdncmlkLWdhcCcsXG4gICdncmlkLXJvdycsXG4gICdncmlkLXJvdy1lbmQnLFxuICAnZ3JpZC1yb3ctc3RhcnQnLFxuICAnZ3JpZC10ZW1wbGF0ZScsXG4gICdncmlkLXRlbXBsYXRlLWFyZWFzJyxcbiAgJ2dyaWQtdGVtcGxhdGUtY29sdW1ucycsXG4gICdncmlkLXRlbXBsYXRlLXJvd3MnLFxuICAnaGFuZ2luZy1wdW5jdHVhdGlvbicsXG4gICdoZWlnaHQnLFxuICAnaHlwaGVucycsXG4gICdpY29uJyxcbiAgJ2ltYWdlLW9yaWVudGF0aW9uJyxcbiAgJ2ltYWdlLXJlbmRlcmluZycsXG4gICdpbWFnZS1yZXNvbHV0aW9uJyxcbiAgJ2ltZS1tb2RlJyxcbiAgJ2lubGluZS1zaXplJyxcbiAgJ2lzb2xhdGlvbicsXG4gICdqdXN0aWZ5LWNvbnRlbnQnLFxuICAnbGVmdCcsXG4gICdsZXR0ZXItc3BhY2luZycsXG4gICdsaW5lLWJyZWFrJyxcbiAgJ2xpbmUtaGVpZ2h0JyxcbiAgJ2xpc3Qtc3R5bGUnLFxuICAnbGlzdC1zdHlsZS1pbWFnZScsXG4gICdsaXN0LXN0eWxlLXBvc2l0aW9uJyxcbiAgJ2xpc3Qtc3R5bGUtdHlwZScsXG4gICdtYXJnaW4nLFxuICAnbWFyZ2luLWJsb2NrJyxcbiAgJ21hcmdpbi1ibG9jay1lbmQnLFxuICAnbWFyZ2luLWJsb2NrLXN0YXJ0JyxcbiAgJ21hcmdpbi1ib3R0b20nLFxuICAnbWFyZ2luLWlubGluZScsXG4gICdtYXJnaW4taW5saW5lLWVuZCcsXG4gICdtYXJnaW4taW5saW5lLXN0YXJ0JyxcbiAgJ21hcmdpbi1sZWZ0JyxcbiAgJ21hcmdpbi1yaWdodCcsXG4gICdtYXJnaW4tdG9wJyxcbiAgJ21hcmtzJyxcbiAgJ21hc2snLFxuICAnbWFzay1ib3JkZXInLFxuICAnbWFzay1ib3JkZXItbW9kZScsXG4gICdtYXNrLWJvcmRlci1vdXRzZXQnLFxuICAnbWFzay1ib3JkZXItcmVwZWF0JyxcbiAgJ21hc2stYm9yZGVyLXNsaWNlJyxcbiAgJ21hc2stYm9yZGVyLXNvdXJjZScsXG4gICdtYXNrLWJvcmRlci13aWR0aCcsXG4gICdtYXNrLWNsaXAnLFxuICAnbWFzay1jb21wb3NpdGUnLFxuICAnbWFzay1pbWFnZScsXG4gICdtYXNrLW1vZGUnLFxuICAnbWFzay1vcmlnaW4nLFxuICAnbWFzay1wb3NpdGlvbicsXG4gICdtYXNrLXJlcGVhdCcsXG4gICdtYXNrLXNpemUnLFxuICAnbWFzay10eXBlJyxcbiAgJ21heC1ibG9jay1zaXplJyxcbiAgJ21heC1oZWlnaHQnLFxuICAnbWF4LWlubGluZS1zaXplJyxcbiAgJ21heC13aWR0aCcsXG4gICdtaW4tYmxvY2stc2l6ZScsXG4gICdtaW4taGVpZ2h0JyxcbiAgJ21pbi1pbmxpbmUtc2l6ZScsXG4gICdtaW4td2lkdGgnLFxuICAnbWl4LWJsZW5kLW1vZGUnLFxuICAnbmF2LWRvd24nLFxuICAnbmF2LWluZGV4JyxcbiAgJ25hdi1sZWZ0JyxcbiAgJ25hdi1yaWdodCcsXG4gICduYXYtdXAnLFxuICAnbm9uZScsXG4gICdub3JtYWwnLFxuICAnb2JqZWN0LWZpdCcsXG4gICdvYmplY3QtcG9zaXRpb24nLFxuICAnb3BhY2l0eScsXG4gICdvcmRlcicsXG4gICdvcnBoYW5zJyxcbiAgJ291dGxpbmUnLFxuICAnb3V0bGluZS1jb2xvcicsXG4gICdvdXRsaW5lLW9mZnNldCcsXG4gICdvdXRsaW5lLXN0eWxlJyxcbiAgJ291dGxpbmUtd2lkdGgnLFxuICAnb3ZlcmZsb3cnLFxuICAnb3ZlcmZsb3ctd3JhcCcsXG4gICdvdmVyZmxvdy14JyxcbiAgJ292ZXJmbG93LXknLFxuICAncGFkZGluZycsXG4gICdwYWRkaW5nLWJsb2NrJyxcbiAgJ3BhZGRpbmctYmxvY2stZW5kJyxcbiAgJ3BhZGRpbmctYmxvY2stc3RhcnQnLFxuICAncGFkZGluZy1ib3R0b20nLFxuICAncGFkZGluZy1pbmxpbmUnLFxuICAncGFkZGluZy1pbmxpbmUtZW5kJyxcbiAgJ3BhZGRpbmctaW5saW5lLXN0YXJ0JyxcbiAgJ3BhZGRpbmctbGVmdCcsXG4gICdwYWRkaW5nLXJpZ2h0JyxcbiAgJ3BhZGRpbmctdG9wJyxcbiAgJ3BhZ2UtYnJlYWstYWZ0ZXInLFxuICAncGFnZS1icmVhay1iZWZvcmUnLFxuICAncGFnZS1icmVhay1pbnNpZGUnLFxuICAncGF1c2UnLFxuICAncGF1c2UtYWZ0ZXInLFxuICAncGF1c2UtYmVmb3JlJyxcbiAgJ3BlcnNwZWN0aXZlJyxcbiAgJ3BlcnNwZWN0aXZlLW9yaWdpbicsXG4gICdwb2ludGVyLWV2ZW50cycsXG4gICdwb3NpdGlvbicsXG4gICdxdW90ZXMnLFxuICAncmVzaXplJyxcbiAgJ3Jlc3QnLFxuICAncmVzdC1hZnRlcicsXG4gICdyZXN0LWJlZm9yZScsXG4gICdyaWdodCcsXG4gICdyb3ctZ2FwJyxcbiAgJ3Njcm9sbC1tYXJnaW4nLFxuICAnc2Nyb2xsLW1hcmdpbi1ibG9jaycsXG4gICdzY3JvbGwtbWFyZ2luLWJsb2NrLWVuZCcsXG4gICdzY3JvbGwtbWFyZ2luLWJsb2NrLXN0YXJ0JyxcbiAgJ3Njcm9sbC1tYXJnaW4tYm90dG9tJyxcbiAgJ3Njcm9sbC1tYXJnaW4taW5saW5lJyxcbiAgJ3Njcm9sbC1tYXJnaW4taW5saW5lLWVuZCcsXG4gICdzY3JvbGwtbWFyZ2luLWlubGluZS1zdGFydCcsXG4gICdzY3JvbGwtbWFyZ2luLWxlZnQnLFxuICAnc2Nyb2xsLW1hcmdpbi1yaWdodCcsXG4gICdzY3JvbGwtbWFyZ2luLXRvcCcsXG4gICdzY3JvbGwtcGFkZGluZycsXG4gICdzY3JvbGwtcGFkZGluZy1ibG9jaycsXG4gICdzY3JvbGwtcGFkZGluZy1ibG9jay1lbmQnLFxuICAnc2Nyb2xsLXBhZGRpbmctYmxvY2stc3RhcnQnLFxuICAnc2Nyb2xsLXBhZGRpbmctYm90dG9tJyxcbiAgJ3Njcm9sbC1wYWRkaW5nLWlubGluZScsXG4gICdzY3JvbGwtcGFkZGluZy1pbmxpbmUtZW5kJyxcbiAgJ3Njcm9sbC1wYWRkaW5nLWlubGluZS1zdGFydCcsXG4gICdzY3JvbGwtcGFkZGluZy1sZWZ0JyxcbiAgJ3Njcm9sbC1wYWRkaW5nLXJpZ2h0JyxcbiAgJ3Njcm9sbC1wYWRkaW5nLXRvcCcsXG4gICdzY3JvbGwtc25hcC1hbGlnbicsXG4gICdzY3JvbGwtc25hcC1zdG9wJyxcbiAgJ3Njcm9sbC1zbmFwLXR5cGUnLFxuICAnc2Nyb2xsYmFyLWNvbG9yJyxcbiAgJ3Njcm9sbGJhci1ndXR0ZXInLFxuICAnc2Nyb2xsYmFyLXdpZHRoJyxcbiAgJ3NoYXBlLWltYWdlLXRocmVzaG9sZCcsXG4gICdzaGFwZS1tYXJnaW4nLFxuICAnc2hhcGUtb3V0c2lkZScsXG4gICdzcGVhaycsXG4gICdzcGVhay1hcycsXG4gICdzcmMnLCAvLyBAZm9udC1mYWNlXG4gICd0YWItc2l6ZScsXG4gICd0YWJsZS1sYXlvdXQnLFxuICAndGV4dC1hbGlnbicsXG4gICd0ZXh0LWFsaWduLWFsbCcsXG4gICd0ZXh0LWFsaWduLWxhc3QnLFxuICAndGV4dC1jb21iaW5lLXVwcmlnaHQnLFxuICAndGV4dC1kZWNvcmF0aW9uJyxcbiAgJ3RleHQtZGVjb3JhdGlvbi1jb2xvcicsXG4gICd0ZXh0LWRlY29yYXRpb24tbGluZScsXG4gICd0ZXh0LWRlY29yYXRpb24tc3R5bGUnLFxuICAndGV4dC1lbXBoYXNpcycsXG4gICd0ZXh0LWVtcGhhc2lzLWNvbG9yJyxcbiAgJ3RleHQtZW1waGFzaXMtcG9zaXRpb24nLFxuICAndGV4dC1lbXBoYXNpcy1zdHlsZScsXG4gICd0ZXh0LWluZGVudCcsXG4gICd0ZXh0LWp1c3RpZnknLFxuICAndGV4dC1vcmllbnRhdGlvbicsXG4gICd0ZXh0LW92ZXJmbG93JyxcbiAgJ3RleHQtcmVuZGVyaW5nJyxcbiAgJ3RleHQtc2hhZG93JyxcbiAgJ3RleHQtdHJhbnNmb3JtJyxcbiAgJ3RleHQtdW5kZXJsaW5lLXBvc2l0aW9uJyxcbiAgJ3RvcCcsXG4gICd0cmFuc2Zvcm0nLFxuICAndHJhbnNmb3JtLWJveCcsXG4gICd0cmFuc2Zvcm0tb3JpZ2luJyxcbiAgJ3RyYW5zZm9ybS1zdHlsZScsXG4gICd0cmFuc2l0aW9uJyxcbiAgJ3RyYW5zaXRpb24tZGVsYXknLFxuICAndHJhbnNpdGlvbi1kdXJhdGlvbicsXG4gICd0cmFuc2l0aW9uLXByb3BlcnR5JyxcbiAgJ3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uJyxcbiAgJ3VuaWNvZGUtYmlkaScsXG4gICd2ZXJ0aWNhbC1hbGlnbicsXG4gICd2aXNpYmlsaXR5JyxcbiAgJ3ZvaWNlLWJhbGFuY2UnLFxuICAndm9pY2UtZHVyYXRpb24nLFxuICAndm9pY2UtZmFtaWx5JyxcbiAgJ3ZvaWNlLXBpdGNoJyxcbiAgJ3ZvaWNlLXJhbmdlJyxcbiAgJ3ZvaWNlLXJhdGUnLFxuICAndm9pY2Utc3RyZXNzJyxcbiAgJ3ZvaWNlLXZvbHVtZScsXG4gICd3aGl0ZS1zcGFjZScsXG4gICd3aWRvd3MnLFxuICAnd2lkdGgnLFxuICAnd2lsbC1jaGFuZ2UnLFxuICAnd29yZC1icmVhaycsXG4gICd3b3JkLXNwYWNpbmcnLFxuICAnd29yZC13cmFwJyxcbiAgJ3dyaXRpbmctbW9kZScsXG4gICd6LWluZGV4J1xuICAvLyByZXZlcnNlIG1ha2VzIHN1cmUgbG9uZ2VyIGF0dHJpYnV0ZXMgYGZvbnQtd2VpZ2h0YCBhcmUgbWF0Y2hlZCBmdWxseVxuICAvLyBpbnN0ZWFkIG9mIGdldHRpbmcgZmFsc2UgcG9zaXRpdmVzIG9uIHNheSBgZm9udGBcbl0ucmV2ZXJzZSgpO1xuXG4vKlxuTGFuZ3VhZ2U6IENTU1xuQ2F0ZWdvcnk6IGNvbW1vbiwgY3NzLCB3ZWJcbldlYnNpdGU6IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTU1xuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIGNzcyhobGpzKSB7XG4gIGNvbnN0IHJlZ2V4ID0gaGxqcy5yZWdleDtcbiAgY29uc3QgbW9kZXMgPSBNT0RFUyhobGpzKTtcbiAgY29uc3QgVkVORE9SX1BSRUZJWCA9IHsgYmVnaW46IC8tKHdlYmtpdHxtb3p8bXN8byktKD89W2Etel0pLyB9O1xuICBjb25zdCBBVF9NT0RJRklFUlMgPSBcImFuZCBvciBub3Qgb25seVwiO1xuICBjb25zdCBBVF9QUk9QRVJUWV9SRSA9IC9ALT9cXHdbXFx3XSooLVxcdyspKi87IC8vIEAtd2Via2l0LWtleWZyYW1lc1xuICBjb25zdCBJREVOVF9SRSA9ICdbYS16QS1aLV1bYS16QS1aMC05Xy1dKic7XG4gIGNvbnN0IFNUUklOR1MgPSBbXG4gICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREVcbiAgXTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdDU1MnLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAgaWxsZWdhbDogL1s9fCdcXCRdLyxcbiAgICBrZXl3b3JkczogeyBrZXlmcmFtZVBvc2l0aW9uOiBcImZyb20gdG9cIiB9LFxuICAgIGNsYXNzTmFtZUFsaWFzZXM6IHtcbiAgICAgIC8vIGZvciB2aXN1YWwgY29udGludWl0eSB3aXRoIGB0YWcge31gIGFuZCBiZWNhdXNlIHdlXG4gICAgICAvLyBkb24ndCBoYXZlIGEgZ3JlYXQgY2xhc3MgZm9yIHRoaXM/XG4gICAgICBrZXlmcmFtZVBvc2l0aW9uOiBcInNlbGVjdG9yLXRhZ1wiIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIG1vZGVzLkJMT0NLX0NPTU1FTlQsXG4gICAgICBWRU5ET1JfUFJFRklYLFxuICAgICAgLy8gdG8gcmVjb2duaXplIGtleWZyYW1lIDQwJSBldGMgd2hpY2ggYXJlIG91dHNpZGUgdGhlIHNjb3BlIG9mIG91clxuICAgICAgLy8gYXR0cmlidXRlIHZhbHVlIG1vZGVcbiAgICAgIG1vZGVzLkNTU19OVU1CRVJfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc2VsZWN0b3ItaWQnLFxuICAgICAgICBiZWdpbjogLyNbQS1aYS16MC05Xy1dKy8sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc2VsZWN0b3ItY2xhc3MnLFxuICAgICAgICBiZWdpbjogJ1xcXFwuJyArIElERU5UX1JFLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICBtb2Rlcy5BVFRSSUJVVEVfU0VMRUNUT1JfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc2VsZWN0b3ItcHNldWRvJyxcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICB7IGJlZ2luOiAnOignICsgUFNFVURPX0NMQVNTRVMuam9pbignfCcpICsgJyknIH0sXG4gICAgICAgICAgeyBiZWdpbjogJzooOik/KCcgKyBQU0VVRE9fRUxFTUVOVFMuam9pbignfCcpICsgJyknIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIC8vIHdlIG1heSBhY3R1YWxseSBuZWVkIHRoaXMgKDEyLzIwMjApXG4gICAgICAvLyB7IC8vIHBzZXVkby1zZWxlY3RvciBwYXJhbXNcbiAgICAgIC8vICAgYmVnaW46IC9cXCgvLFxuICAgICAgLy8gICBlbmQ6IC9cXCkvLFxuICAgICAgLy8gICBjb250YWluczogWyBobGpzLkNTU19OVU1CRVJfTU9ERSBdXG4gICAgICAvLyB9LFxuICAgICAgbW9kZXMuQ1NTX1ZBUklBQkxFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdhdHRyaWJ1dGUnLFxuICAgICAgICBiZWdpbjogJ1xcXFxiKCcgKyBBVFRSSUJVVEVTLmpvaW4oJ3wnKSArICcpXFxcXGInXG4gICAgICB9LFxuICAgICAgLy8gYXR0cmlidXRlIHZhbHVlc1xuICAgICAge1xuICAgICAgICBiZWdpbjogLzovLFxuICAgICAgICBlbmQ6IC9bO317XS8sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgbW9kZXMuQkxPQ0tfQ09NTUVOVCxcbiAgICAgICAgICBtb2Rlcy5IRVhDT0xPUixcbiAgICAgICAgICBtb2Rlcy5JTVBPUlRBTlQsXG4gICAgICAgICAgbW9kZXMuQ1NTX05VTUJFUl9NT0RFLFxuICAgICAgICAgIC4uLlNUUklOR1MsXG4gICAgICAgICAgLy8gbmVlZGVkIHRvIGhpZ2hsaWdodCB0aGVzZSBhcyBzdHJpbmdzIGFuZCB0byBhdm9pZCBpc3N1ZXMgd2l0aFxuICAgICAgICAgIC8vIGlsbGVnYWwgY2hhcmFjdGVycyB0aGF0IG1pZ2h0IGJlIGluc2lkZSB1cmxzIHRoYXQgd291bGQgdGlnZ2VyIHRoZVxuICAgICAgICAgIC8vIGxhbmd1YWdlcyBpbGxlZ2FsIHN0YWNrXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46IC8odXJsfGRhdGEtdXJpKVxcKC8sXG4gICAgICAgICAgICBlbmQ6IC9cXCkvLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwLCAvLyBmcm9tIGtleXdvcmRzXG4gICAgICAgICAgICBrZXl3b3JkczogeyBidWlsdF9pbjogXCJ1cmwgZGF0YS11cmlcIiB9LFxuICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAgLi4uU1RSSU5HUyxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAvLyBhbnkgY2hhcmFjdGVyIG90aGVyIHRoYW4gYClgIGFzIGluIGB1cmwoKWAgd2lsbCBiZSB0aGUgc3RhcnRcbiAgICAgICAgICAgICAgICAvLyBvZiBhIHN0cmluZywgd2hpY2ggZW5kcyB3aXRoIGApYCAoZnJvbSB0aGUgcGFyZW50IG1vZGUpXG4gICAgICAgICAgICAgICAgYmVnaW46IC9bXildLyxcbiAgICAgICAgICAgICAgICBlbmRzV2l0aFBhcmVudDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBleGNsdWRlRW5kOiB0cnVlXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIG1vZGVzLkZVTkNUSU9OX0RJU1BBVENIXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiByZWdleC5sb29rYWhlYWQoL0AvKSxcbiAgICAgICAgZW5kOiAnW3s7XScsXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgaWxsZWdhbDogLzovLCAvLyBicmVhayBvbiBMZXNzIHZhcmlhYmxlcyBAdmFyOiAuLi5cbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICAgICAgICAgIGJlZ2luOiBBVF9QUk9QRVJUWV9SRVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46IC9cXHMvLFxuICAgICAgICAgICAgZW5kc1dpdGhQYXJlbnQ6IHRydWUsXG4gICAgICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICAgICAga2V5d29yZHM6IHtcbiAgICAgICAgICAgICAgJHBhdHRlcm46IC9bYS16LV0rLyxcbiAgICAgICAgICAgICAga2V5d29yZDogQVRfTU9ESUZJRVJTLFxuICAgICAgICAgICAgICBhdHRyaWJ1dGU6IE1FRElBX0ZFQVRVUkVTLmpvaW4oXCIgXCIpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGJlZ2luOiAvW2Etei1dKyg/PTopLyxcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6IFwiYXR0cmlidXRlXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgLi4uU1RSSU5HUyxcbiAgICAgICAgICAgICAgbW9kZXMuQ1NTX05VTUJFUl9NT0RFXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzZWxlY3Rvci10YWcnLFxuICAgICAgICBiZWdpbjogJ1xcXFxiKCcgKyBUQUdTLmpvaW4oJ3wnKSArICcpXFxcXGInXG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNzcztcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///60\n");
  1634. /***/ }),
  1635. /* 61 */
  1636. /*!***********************************************************************************************************!*\
  1637. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/highlight.js/lib/languages/markdown.js ***!
  1638. \***********************************************************************************************************/
  1639. /*! no static exports found */
  1640. /***/ (function(module, exports) {
  1641. eval("/*\nLanguage: Markdown\nRequires: xml.js\nAuthor: John Crepezzi <john.crepezzi@gmail.com>\nWebsite: https://daringfireball.net/projects/markdown/\nCategory: common, markup\n*/\n\nfunction markdown(hljs) {\n var regex = hljs.regex;\n var INLINE_HTML = {\n begin: /<\\/?[A-Za-z_]/,\n end: '>',\n subLanguage: 'xml',\n relevance: 0\n };\n var HORIZONTAL_RULE = {\n begin: '^[-\\\\*]{3,}',\n end: '$'\n };\n var CODE = {\n className: 'code',\n variants: [\n // TODO: fix to allow these to work with sublanguage also\n {\n begin: '(`{3,})[^`](.|\\\\n)*?\\\\1`*[ ]*'\n }, {\n begin: '(~{3,})[^~](.|\\\\n)*?\\\\1~*[ ]*'\n },\n // needed to allow markdown as a sublanguage to work\n {\n begin: '```',\n end: '```+[ ]*$'\n }, {\n begin: '~~~',\n end: '~~~+[ ]*$'\n }, {\n begin: '`.+?`'\n }, {\n begin: '(?=^( {4}|\\\\t))',\n // use contains to gobble up multiple lines to allow the block to be whatever size\n // but only have a single open/close tag vs one per line\n contains: [{\n begin: '^( {4}|\\\\t)',\n end: '(\\\\n)$'\n }],\n relevance: 0\n }]\n };\n var LIST = {\n className: 'bullet',\n begin: '^[ \\t]*([*+-]|(\\\\d+\\\\.))(?=\\\\s+)',\n end: '\\\\s+',\n excludeEnd: true\n };\n var LINK_REFERENCE = {\n begin: /^\\[[^\\n]+\\]:/,\n returnBegin: true,\n contains: [{\n className: 'symbol',\n begin: /\\[/,\n end: /\\]/,\n excludeBegin: true,\n excludeEnd: true\n }, {\n className: 'link',\n begin: /:\\s*/,\n end: /$/,\n excludeBegin: true\n }]\n };\n var URL_SCHEME = /[A-Za-z][A-Za-z0-9+.-]*/;\n var LINK = {\n variants: [\n // too much like nested array access in so many languages\n // to have any real relevance\n {\n begin: /\\[.+?\\]\\[.*?\\]/,\n relevance: 0\n },\n // popular internet URLs\n {\n begin: /\\[.+?\\]\\(((data|javascript|mailto):|(?:http|ftp)s?:\\/\\/).*?\\)/,\n relevance: 2\n }, {\n begin: regex.concat(/\\[.+?\\]\\(/, URL_SCHEME, /:\\/\\/.*?\\)/),\n relevance: 2\n },\n // relative urls\n {\n begin: /\\[.+?\\]\\([./?&#].*?\\)/,\n relevance: 1\n },\n // whatever else, lower relevance (might not be a link at all)\n {\n begin: /\\[.*?\\]\\(.*?\\)/,\n relevance: 0\n }],\n returnBegin: true,\n contains: [{\n // empty strings for alt or link text\n match: /\\[(?=\\])/\n }, {\n className: 'string',\n relevance: 0,\n begin: '\\\\[',\n end: '\\\\]',\n excludeBegin: true,\n returnEnd: true\n }, {\n className: 'link',\n relevance: 0,\n begin: '\\\\]\\\\(',\n end: '\\\\)',\n excludeBegin: true,\n excludeEnd: true\n }, {\n className: 'symbol',\n relevance: 0,\n begin: '\\\\]\\\\[',\n end: '\\\\]',\n excludeBegin: true,\n excludeEnd: true\n }]\n };\n var BOLD = {\n className: 'strong',\n contains: [],\n // defined later\n variants: [{\n begin: /_{2}(?!\\s)/,\n end: /_{2}/\n }, {\n begin: /\\*{2}(?!\\s)/,\n end: /\\*{2}/\n }]\n };\n var ITALIC = {\n className: 'emphasis',\n contains: [],\n // defined later\n variants: [{\n begin: /\\*(?![*\\s])/,\n end: /\\*/\n }, {\n begin: /_(?![_\\s])/,\n end: /_/,\n relevance: 0\n }]\n };\n\n // 3 level deep nesting is not allowed because it would create confusion\n // in cases like `***testing***` because where we don't know if the last\n // `***` is starting a new bold/italic or finishing the last one\n var BOLD_WITHOUT_ITALIC = hljs.inherit(BOLD, {\n contains: []\n });\n var ITALIC_WITHOUT_BOLD = hljs.inherit(ITALIC, {\n contains: []\n });\n BOLD.contains.push(ITALIC_WITHOUT_BOLD);\n ITALIC.contains.push(BOLD_WITHOUT_ITALIC);\n var CONTAINABLE = [INLINE_HTML, LINK];\n [BOLD, ITALIC, BOLD_WITHOUT_ITALIC, ITALIC_WITHOUT_BOLD].forEach(function (m) {\n m.contains = m.contains.concat(CONTAINABLE);\n });\n CONTAINABLE = CONTAINABLE.concat(BOLD, ITALIC);\n var HEADER = {\n className: 'section',\n variants: [{\n begin: '^#{1,6}',\n end: '$',\n contains: CONTAINABLE\n }, {\n begin: '(?=^.+?\\\\n[=-]{2,}$)',\n contains: [{\n begin: '^[=-]*$'\n }, {\n begin: '^',\n end: \"\\\\n\",\n contains: CONTAINABLE\n }]\n }]\n };\n var BLOCKQUOTE = {\n className: 'quote',\n begin: '^>\\\\s+',\n contains: CONTAINABLE,\n end: '$'\n };\n return {\n name: 'Markdown',\n aliases: ['md', 'mkdown', 'mkd'],\n contains: [HEADER, INLINE_HTML, LIST, BOLD, ITALIC, BLOCKQUOTE, CODE, HORIZONTAL_RULE, LINK, LINK_REFERENCE]\n };\n}\nmodule.exports = markdown;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvbWFya2Rvd24uanMiXSwibmFtZXMiOlsibWFya2Rvd24iLCJobGpzIiwicmVnZXgiLCJJTkxJTkVfSFRNTCIsImJlZ2luIiwiZW5kIiwic3ViTGFuZ3VhZ2UiLCJyZWxldmFuY2UiLCJIT1JJWk9OVEFMX1JVTEUiLCJDT0RFIiwiY2xhc3NOYW1lIiwidmFyaWFudHMiLCJjb250YWlucyIsIkxJU1QiLCJleGNsdWRlRW5kIiwiTElOS19SRUZFUkVOQ0UiLCJyZXR1cm5CZWdpbiIsImV4Y2x1ZGVCZWdpbiIsIlVSTF9TQ0hFTUUiLCJMSU5LIiwiY29uY2F0IiwibWF0Y2giLCJyZXR1cm5FbmQiLCJCT0xEIiwiSVRBTElDIiwiQk9MRF9XSVRIT1VUX0lUQUxJQyIsImluaGVyaXQiLCJJVEFMSUNfV0lUSE9VVF9CT0xEIiwicHVzaCIsIkNPTlRBSU5BQkxFIiwiZm9yRWFjaCIsIm0iLCJIRUFERVIiLCJCTE9DS1FVT1RFIiwibmFtZSIsImFsaWFzZXMiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxTQUFTQSxRQUFRLENBQUNDLElBQUksRUFBRTtFQUN0QixJQUFNQyxLQUFLLEdBQUdELElBQUksQ0FBQ0MsS0FBSztFQUN4QixJQUFNQyxXQUFXLEdBQUc7SUFDbEJDLEtBQUssRUFBRSxlQUFlO0lBQ3RCQyxHQUFHLEVBQUUsR0FBRztJQUNSQyxXQUFXLEVBQUUsS0FBSztJQUNsQkMsU0FBUyxFQUFFO0VBQ2IsQ0FBQztFQUNELElBQU1DLGVBQWUsR0FBRztJQUN0QkosS0FBSyxFQUFFLGFBQWE7SUFDcEJDLEdBQUcsRUFBRTtFQUNQLENBQUM7RUFDRCxJQUFNSSxJQUFJLEdBQUc7SUFDWEMsU0FBUyxFQUFFLE1BQU07SUFDakJDLFFBQVEsRUFBRTtJQUNSO0lBQ0E7TUFBRVAsS0FBSyxFQUFFO0lB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LE1BQU0sR0FBRztJQUNidEIsU0FBUyxFQUFFLFNBQVM7SUFDcEJDLFFBQVEsRUFBRSxDQUNSO01BQ0VQLEtBQUssRUFBRSxTQUFTO01BQ2hCQyxHQUFHLEVBQUUsR0FBRztNQUNSTyxRQUFRLEVBQUVpQjtJQUNaLENBQUMsRUFDRDtNQUNFekIsS0FBSyxFQUFFLHNCQUFzQjtNQUM3QlEsUUFBUSxFQUFFLENBQ1I7UUFBRVIsS0FBSyxFQUFFO01BQVUsQ0FBQyxFQUNwQjtRQUNFQSxLQUFLLEVBQUUsR0FBRztRQUNWQyxHQUFHLEVBQUUsS0FBSztRQUNWTyxRQUFRLEVBQUVpQjtNQUNaLENBQUM7SUFFTCxDQUFDO0VBRUwsQ0FBQztFQUVELElBQU1JLFVBQVUsR0FBRztJQUNqQnZCLFNBQVMsRUFBRSxPQUFPO0lBQ2xCTixLQUFLLEVBQUUsUUFBUTtJQUNmUSxRQUFRLEVBQUVpQixXQUFXO0lBQ3JCeEIsR0FBRyxFQUFFO0VBQ1AsQ0FBQztFQUVELE9BQU87SUFDTDZCLElBQUksRUFBRSxVQUFVO0lBQ2hCQyxPQUFPLEVBQUUsQ0FDUCxJQUFJLEVBQ0osUUFBUSxFQUNSLEtBQUssQ0FDTjtJQUNEdkIsUUFBUSxFQUFFLENBQ1JvQixNQUFNLEVBQ043QixXQUFXLEVBQ1hVLElBQUksRUFDSlUsSUFBSSxFQUNKQyxNQUFNLEVBQ05TLFVBQVUsRUFDVnhCLElBQUksRUFDSkQsZUFBZSxFQUNmVyxJQUFJLEVBQ0pKLGNBQWM7RUFFbEIsQ0FBQztBQUNIO0FBRUFxQixNQUFNLENBQUNDLE9BQU8sR0FBR3JDLFFBQVEiLCJmaWxlIjoiNjEuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuTGFuZ3VhZ2U6IE1hcmtkb3duXG5SZXF1aXJlczogeG1sLmpzXG5BdXRob3I6IEpvaG4gQ3JlcGV6emkgPGpvaG4uY3JlcGV6emlAZ21haWwuY29tPlxuV2Vic2l0ZTogaHR0cHM6Ly9kYXJpbmdmaXJlYmFsbC5uZXQvcHJvamVjdHMvbWFya2Rvd24vXG5DYXRlZ29yeTogY29tbW9uLCBtYXJrdXBcbiovXG5cbmZ1bmN0aW9uIG1hcmtkb3duKGhsanMpIHtcbiAgY29uc3QgcmVnZXggPSBobGpzLnJlZ2V4O1xuICBjb25zdCBJTkxJTkVfSFRNTCA9IHtcbiAgICBiZWdpbjogLzxcXC8/W0EtWmEtel9dLyxcbiAgICBlbmQ6ICc+JyxcbiAgICBzdWJMYW5ndWFnZTogJ3htbCcsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG4gIGNvbnN0IEhPUklaT05UQUxfUlVMRSA9IHtcbiAgICBiZWdpbjogJ15bLVxcXFwqXXszLH0nLFxuICAgIGVuZDogJyQnXG4gIH07XG4gIGNvbnN0IENPREUgPSB7XG4gICAgY2xhc3NOYW1lOiAnY29kZScsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIC8vIFRPRE86IGZpeCB0byBhbGxvdyB0aGVzZSB0byB3b3JrIHdpdGggc3VibGFuZ3VhZ2UgYWxzb1xuICAgICAgeyBiZWdpbjogJyhgezMsfSlbXmBdKC58XFxcXG4pKj9cXFxcMWAqWyBdKicgfSxcbiAgICAgIHsgYmVnaW46ICcofnszLH0pW15+XSgufFxcXFxuKSo/XFxcXDF+KlsgXSonIH0sXG4gICAgICAvLyBuZWVkZWQgdG8gYWxsb3cgbWFya2Rvd24gYXMgYSBzdWJsYW5ndWFnZSB0byB3b3JrXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnYGBgJyxcbiAgICAgICAgZW5kOiAnYGBgK1sgXSokJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICd+fn4nLFxuICAgICAgICBlbmQ6ICd+fn4rWyBdKiQnXG4gICAgICB9LFxuICAgICAgeyBiZWdpbjogJ2AuKz9gJyB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJyg/PV4oIHs0fXxcXFxcdCkpJyxcbiAgICAgICAgLy8gdXNlIGNvbnRhaW5zIHRvIGdvYmJsZSB1cCBtdWx0aXBsZSBsaW5lcyB0byBhbGxvdyB0aGUgYmxvY2sgdG8gYmUgd2hhdGV2ZXIgc2l6ZVxuICAgICAgICAvLyBidXQgb25seSBoYXZlIGEgc2luZ2xlIG9wZW4vY2xvc2UgdGFnIHZzIG9uZSBwZXIgbGluZVxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAnXiggezR9fFxcXFx0KScsXG4gICAgICAgICAgICBlbmQ6ICcoXFxcXG4pJCdcbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfVxuICAgIF1cbiAgfTtcbiAgY29uc3QgTElTVCA9IHtcbiAgICBjbGFzc05hbWU6ICdidWxsZXQnLFxuICAgIGJlZ2luOiAnXlsgXFx0XSooWyorLV18KFxcXFxkK1xcXFwuKSkoPz1cXFxccyspJyxcbiAgICBlbmQ6ICdcXFxccysnLFxuICAgIGV4Y2x1ZGVFbmQ6IHRydWVcbiAgfTtcbiAgY29uc3QgTElOS19SRUZFUkVOQ0UgPSB7XG4gICAgYmVnaW46IC9eXFxbW15cXG5dK1xcXTovLFxuICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgICAgIGJlZ2luOiAvXFxbLyxcbiAgICAgICAgZW5kOiAvXFxdLyxcbiAgICAgICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdsaW5rJyxcbiAgICAgICAgYmVnaW46IC86XFxzKi8sXG4gICAgICAgIGVuZDogLyQvLFxuICAgICAgICBleGNsdWRlQmVnaW46IHRydWVcbiAgICAgIH1cbiAgICBdXG4gIH07XG4gIGNvbnN0IFVSTF9TQ0hFTUUgPSAvW0EtWmEtel1bQS1aYS16MC05Ky4tXSovO1xuICBjb25zdCBMSU5LID0ge1xuICAgIHZhcmlhbnRzOiBbXG4gICAgICAvLyB0b28gbXVjaCBsaWtlIG5lc3RlZCBhcnJheSBhY2Nlc3MgaW4gc28gbWFueSBsYW5ndWFnZXNcbiAgICAgIC8vIHRvIGhhdmUgYW55IHJlYWwgcmVsZXZhbmNlXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFxbLis/XFxdXFxbLio/XFxdLyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgLy8gcG9wdWxhciBpbnRlcm5ldCBVUkxzXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFxbLis/XFxdXFwoKChkYXRhfGphdmFzY3JpcHR8bWFpbHRvKTp8KD86aHR0cHxmdHApcz86XFwvXFwvKS4qP1xcKS8sXG4gICAgICAgIHJlbGV2YW5jZTogMlxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IHJlZ2V4LmNvbmNhdCgvXFxbLis/XFxdXFwoLywgVVJMX1NDSEVNRSwgLzpcXC9cXC8uKj9cXCkvKSxcbiAgICAgICAgcmVsZXZhbmNlOiAyXG4gICAgICB9LFxuICAgICAgLy8gcmVsYXRpdmUgdXJsc1xuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcWy4rP1xcXVxcKFsuLz8mI10uKj9cXCkvLFxuICAgICAgICByZWxldmFuY2U6IDFcbiAgICAgIH0sXG4gICAgICAvLyB3aGF0ZXZlciBlbHNlLCBsb3dlciByZWxldmFuY2UgKG1pZ2h0IG5vdCBiZSBhIGxpbmsgYXQgYWxsKVxuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcWy4qP1xcXVxcKC4qP1xcKS8sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfVxuICAgIF0sXG4gICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgLy8gZW1wdHkgc3RyaW5ncyBmb3IgYWx0IG9yIGxpbmsgdGV4dFxuICAgICAgICBtYXRjaDogL1xcWyg/PVxcXSkvIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgYmVnaW46ICdcXFxcWycsXG4gICAgICAgIGVuZDogJ1xcXFxdJyxcbiAgICAgICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgICAgICByZXR1cm5FbmQ6IHRydWVcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2xpbmsnLFxuICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgIGJlZ2luOiAnXFxcXF1cXFxcKCcsXG4gICAgICAgIGVuZDogJ1xcXFwpJyxcbiAgICAgICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgIGJlZ2luOiAnXFxcXF1cXFxcWycsXG4gICAgICAgIGVuZDogJ1xcXFxdJyxcbiAgICAgICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlXG4gICAgICB9XG4gICAgXVxuICB9O1xuICBjb25zdCBCT0xEID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cm9uZycsXG4gICAgY29udGFpbnM6IFtdLCAvLyBkZWZpbmVkIGxhdGVyXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9fezJ9KD8hXFxzKS8sXG4gICAgICAgIGVuZDogL197Mn0vXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcKnsyfSg/IVxccykvLFxuICAgICAgICBlbmQ6IC9cXCp7Mn0vXG4gICAgICB9XG4gICAgXVxuICB9O1xuICBjb25zdCBJVEFMSUMgPSB7XG4gICAgY2xhc3NOYW1lOiAnZW1waGFzaXMnLFxuICAgIGNvbnRhaW5zOiBbXSwgLy8gZGVmaW5lZCBsYXRlclxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFwqKD8hWypcXHNdKS8sXG4gICAgICAgIGVuZDogL1xcKi9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXyg/IVtfXFxzXSkvLFxuICAgICAgICBlbmQ6IC9fLyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9XG4gICAgXVxuICB9O1xuXG4gIC8vIDMgbGV2ZWwgZGVlcCBuZXN0aW5nIGlzIG5vdCBhbGxvd2VkIGJlY2F1c2UgaXQgd291bGQgY3JlYXRlIGNvbmZ1c2lvblxuICAvLyBpbiBjYXNlcyBsaWtlIGAqKip0ZXN0aW5nKioqYCBiZWNhdXNlIHdoZXJlIHdlIGRvbid0IGtub3cgaWYgdGhlIGxhc3RcbiAgLy8gYCoqKmAgaXMgc3RhcnRpbmcgYSBuZXcgYm9sZC9pdGFsaWMgb3IgZmluaXNoaW5nIHRoZSBsYXN0IG9uZVxuICBjb25zdCBCT0xEX1dJVEhPVVRfSVRBTElDID0gaGxqcy5pbmhlcml0KEJPTEQsIHsgY29udGFpbnM6IFtdIH0pO1xuICBjb25zdCBJVEFMSUNfV0lUSE9VVF9CT0xEID0gaGxqcy5pbmhlcml0KElUQUxJQywgeyBjb250YWluczogW10gfSk7XG4gIEJPTEQuY29udGFpbnMucHVzaChJVEFMSUNfV0lUSE9VVF9CT0xEKTtcbiAgSVRBTElDLmNvbnRhaW5zLnB1c2goQk9MRF9XSVRIT1VUX0lUQUxJQyk7XG5cbiAgbGV0IENPTlRBSU5BQkxFID0gW1xuICAgIElOTElORV9IVE1MLFxuICAgIExJTktcbiAgXTtcblxuICBbXG4gICAgQk9MRCxcbiAgICBJVEFMSUMsXG4gICAgQk9MRF9XSVRIT1VUX0lUQUxJQyxcbiAgICBJVEFMSUNfV0lUSE9VVF9CT0xEXG4gIF0uZm9yRWFjaChtID0+IHtcbiAgICBtLmNvbnRhaW5zID0gbS5jb250YWlucy5jb25jYXQoQ09OVEFJTkFCTEUpO1xuICB9KTtcblxuICBDT05UQUlOQUJMRSA9IENPTlRBSU5BQkxFLmNvbmNhdChCT0xELCBJVEFMSUMpO1xuXG4gIGNvbnN0IEhFQURFUiA9IHtcbiAgICBjbGFzc05hbWU6ICdzZWN0aW9uJyxcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogJ14jezEsNn0nLFxuICAgICAgICBlbmQ6ICckJyxcbiAgICAgICAgY29udGFpbnM6IENPTlRBSU5BQkxFXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJyg/PV4uKz9cXFxcbls9LV17Mix9JCknLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHsgYmVnaW46ICdeWz0tXSokJyB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAnXicsXG4gICAgICAgICAgICBlbmQ6IFwiXFxcXG5cIixcbiAgICAgICAgICAgIGNvbnRhaW5zOiBDT05UQUlOQUJMRVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIF1cbiAgfTtcblxuICBjb25zdCBCTE9DS1FVT1RFID0ge1xuICAgIGNsYXNzTmFtZTogJ3F1b3RlJyxcbiAgICBiZWdpbjogJ14+XFxcXHMrJyxcbiAgICBjb250YWluczogQ09OVEFJTkFCTEUsXG4gICAgZW5kOiAnJCdcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdNYXJrZG93bicsXG4gICAgYWxpYXNlczogW1xuICAgICAgJ21kJyxcbiAgICAgICdta2Rvd24nLFxuICAgICAgJ21rZCdcbiAgICBdLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBIRUFERVIsXG4gICAgICBJTkxJTkVfSFRNTCxcbiAgICAgIExJU1QsXG4gICAgICBCT0xELFxuICAgICAgSVRBTElDLFxuICAgICAgQkxPQ0tRVU9URSxcbiAgICAgIENPREUsXG4gICAgICBIT1JJWk9OVEFMX1JVTEUsXG4gICAgICBMSU5LLFxuICAgICAgTElOS19SRUZFUkVOQ0VcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbWFya2Rvd247XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///61\n");
  1642. /***/ }),
  1643. /* 62 */
  1644. /*!*******************************************************************************************************!*\
  1645. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/highlight.js/lib/languages/diff.js ***!
  1646. \*******************************************************************************************************/
  1647. /*! no static exports found */
  1648. /***/ (function(module, exports) {
  1649. eval("/*\nLanguage: Diff\nDescription: Unified and context diff\nAuthor: Vasily Polovnyov <vast@whiteants.net>\nWebsite: https://www.gnu.org/software/diffutils/\nCategory: common\n*/\n\n/** @type LanguageFn */\nfunction diff(hljs) {\n var regex = hljs.regex;\n return {\n name: 'Diff',\n aliases: ['patch'],\n contains: [{\n className: 'meta',\n relevance: 10,\n match: regex.either(/^@@ +-\\d+,\\d+ +\\+\\d+,\\d+ +@@/, /^\\*\\*\\* +\\d+,\\d+ +\\*\\*\\*\\*$/, /^--- +\\d+,\\d+ +----$/)\n }, {\n className: 'comment',\n variants: [{\n begin: regex.either(/Index: /, /^index/, /={3,}/, /^-{3}/, /^\\*{3} /, /^\\+{3}/, /^diff --git/),\n end: /$/\n }, {\n match: /^\\*{15}$/\n }]\n }, {\n className: 'addition',\n begin: /^\\+/,\n end: /$/\n }, {\n className: 'deletion',\n begin: /^-/,\n end: /$/\n }, {\n className: 'addition',\n begin: /^!/,\n end: /$/\n }]\n };\n}\nmodule.exports = diff;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvZGlmZi5qcyJdLCJuYW1lcyI6WyJkaWZmIiwiaGxqcyIsInJlZ2V4IiwibmFtZSIsImFsaWFzZXMiLCJjb250YWlucyIsImNsYXNzTmFtZSIsInJlbGV2YW5jZSIsIm1hdGNoIiwiZWl0aGVyIiwidmFyaWFudHMiLCJiZWdpbiIsImVuZCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsU0FBU0EsSUFBSSxDQUFDQyxJQUFJLEVBQUU7RUFDbEIsSUFBTUMsS0FBSyxHQUFHRCxJQUFJLENBQUNDLEtBQUs7RUFDeEIsT0FBTztJQUNMQyxJQUFJLEVBQUUsTUFBTTtJQUNaQyxPQUFPLEVBQUUsQ0FBRSxPQUFPLENBQUU7SUFDcEJDLFFBQVEsRUFBRSxDQUNSO01BQ0VDLFNBQVMsRUFBRSxNQUFNO01BQ2pCQyxTQUFTLEVBQUUsRUFBRTtNQUNiQyxLQUFLLEVBQUVOLEtBQUssQ0FBQ08sTUFBTSxDQUNqQiw4QkFBOEIsRUFDOUIsNkJBQTZCLEVBQzdCLHNCQUFzQjtJQUUxQixDQUFDLEVBQ0Q7TUFDRUgsU0FBUyxFQUFFLFNBQVM7TUFDcEJJLFFBQVEsRUFBRSxDQUNSO1FBQ0VDLEtBQUssRUFBRVQsS0FBSyxDQUFDTyxNQUFNLENBQ2pCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsT0FBTyxFQUNQLE9BQU8sRUFDUCxTQUFTLEVBQ1QsUUFBUSxFQUNSLGFBQWEsQ0FDZDtRQUNERyxHQUFHLEVBQUU7TUFDUCxDQUFDLEVBQ0Q7UUFBRUosS0FBSyxFQUFFO01BQVcsQ0FBQztJQUV6QixDQUFDLEVBQ0Q7TUFDRUYsU0FBUyxFQUFFLFVBQVU7TUFDckJLLEtBQUssRUFBRSxLQUFLO01BQ1pDLEdBQUcsRUFBRTtJQUNQLENBQUMsRUFDRDtNQUNFTixTQUFTLEVBQUUsVUFBVTtNQUNyQkssS0FBSyxFQUFFLElBQUk7TUFDWEMsR0FBRyxFQUFFO0lBQ1AsQ0FBQyxFQUNEO01BQ0VOLFNBQVMsRUFBRSxVQUFVO01BQ3JCSyxLQUFLLEVBQUUsSUFBSTtNQUNYQyxHQUFHLEVBQUU7SUFDUCxDQUFDO0VBRUwsQ0FBQztBQUNIO0FBRUFDLE1BQU0sQ0FBQ0MsT0FBTyxHQUFHZCxJQUFJIiwiZmlsZSI6IjYyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbkxhbmd1YWdlOiBEaWZmXG5EZXNjcmlwdGlvbjogVW5pZmllZCBhbmQgY29udGV4dCBkaWZmXG5BdXRob3I6IFZhc2lseSBQb2xvdm55b3YgPHZhc3RAd2hpdGVhbnRzLm5ldD5cbldlYnNpdGU6IGh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZGlmZnV0aWxzL1xuQ2F0ZWdvcnk6IGNvbW1vblxuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIGRpZmYoaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0RpZmYnLFxuICAgIGFsaWFzZXM6IFsgJ3BhdGNoJyBdLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICByZWxldmFuY2U6IDEwLFxuICAgICAgICBtYXRjaDogcmVnZXguZWl0aGVyKFxuICAgICAgICAgIC9eQEAgKy1cXGQrLFxcZCsgK1xcK1xcZCssXFxkKyArQEAvLFxuICAgICAgICAgIC9eXFwqXFwqXFwqICtcXGQrLFxcZCsgK1xcKlxcKlxcKlxcKiQvLFxuICAgICAgICAgIC9eLS0tICtcXGQrLFxcZCsgKy0tLS0kL1xuICAgICAgICApXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdjb21tZW50JyxcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogcmVnZXguZWl0aGVyKFxuICAgICAgICAgICAgICAvSW5kZXg6IC8sXG4gICAgICAgICAgICAgIC9eaW5kZXgvLFxuICAgICAgICAgICAgICAvPXszLH0vLFxuICAgICAgICAgICAgICAvXi17M30vLFxuICAgICAgICAgICAgICAvXlxcKnszfSAvLFxuICAgICAgICAgICAgICAvXlxcK3szfS8sXG4gICAgICAgICAgICAgIC9eZGlmZiAtLWdpdC9cbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBlbmQ6IC8kL1xuICAgICAgICAgIH0sXG4gICAgICAgICAgeyBtYXRjaDogL15cXCp7MTV9JC8gfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdhZGRpdGlvbicsXG4gICAgICAgIGJlZ2luOiAvXlxcKy8sXG4gICAgICAgIGVuZDogLyQvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdkZWxldGlvbicsXG4gICAgICAgIGJlZ2luOiAvXi0vLFxuICAgICAgICBlbmQ6IC8kL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnYWRkaXRpb24nLFxuICAgICAgICBiZWdpbjogL14hLyxcbiAgICAgICAgZW5kOiAvJC9cbiAgICAgIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZGlmZjtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///62\n");
  1650. /***/ }),
  1651. /* 63 */
  1652. /*!*******************************************************************************************************!*\
  1653. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/highlight.js/lib/languages/ruby.js ***!
  1654. \*******************************************************************************************************/
  1655. /*! no static exports found */
  1656. /***/ (function(module, exports) {
  1657. eval("/*\nLanguage: Ruby\nDescription: Ruby is a dynamic, open source programming language with a focus on simplicity and productivity.\nWebsite: https://www.ruby-lang.org/\nAuthor: Anton Kovalyov <anton@kovalyov.net>\nContributors: Peter Leonov <gojpeg@yandex.ru>, Vasily Polovnyov <vast@whiteants.net>, Loren Segal <lsegal@soen.ca>, Pascal Hurni <phi@ruby-reactive.org>, Cedric Sohrauer <sohrauer@googlemail.com>\nCategory: common\n*/\n\nfunction ruby(hljs) {\n var regex = hljs.regex;\n var RUBY_METHOD_RE = '([a-zA-Z_]\\\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\\\*\\\\*|[-/+%^&*~`|]|\\\\[\\\\]=?)';\n // TODO: move concepts like CAMEL_CASE into `modes.js`\n var CLASS_NAME_RE = regex.either(/\\b([A-Z]+[a-z0-9]+)+/,\n // ends in caps\n /\\b([A-Z]+[a-z0-9]+)+[A-Z]+/);\n var CLASS_NAME_WITH_NAMESPACE_RE = regex.concat(CLASS_NAME_RE, /(::\\w+)*/);\n // very popular ruby built-ins that one might even assume\n // are actual keywords (despite that not being the case)\n var PSEUDO_KWS = [\"include\", \"extend\", \"prepend\", \"public\", \"private\", \"protected\", \"raise\", \"throw\"];\n var RUBY_KEYWORDS = {\n \"variable.constant\": [\"__FILE__\", \"__LINE__\", \"__ENCODING__\"],\n \"variable.language\": [\"self\", \"super\"],\n keyword: [\"alias\", \"and\", \"begin\", \"BEGIN\", \"break\", \"case\", \"class\", \"defined\", \"do\", \"else\", \"elsif\", \"end\", \"END\", \"ensure\", \"for\", \"if\", \"in\", \"module\", \"next\", \"not\", \"or\", \"redo\", \"require\", \"rescue\", \"retry\", \"return\", \"then\", \"undef\", \"unless\", \"until\", \"when\", \"while\", \"yield\"].concat(PSEUDO_KWS),\n built_in: [\"proc\", \"lambda\", \"attr_accessor\", \"attr_reader\", \"attr_writer\", \"define_method\", \"private_constant\", \"module_function\"],\n literal: [\"true\", \"false\", \"nil\"]\n };\n var YARDOCTAG = {\n className: 'doctag',\n begin: '@[A-Za-z]+'\n };\n var IRB_OBJECT = {\n begin: '#<',\n end: '>'\n };\n var COMMENT_MODES = [hljs.COMMENT('#', '$', {\n contains: [YARDOCTAG]\n }), hljs.COMMENT('^=begin', '^=end', {\n contains: [YARDOCTAG],\n relevance: 10\n }), hljs.COMMENT('^__END__', hljs.MATCH_NOTHING_RE)];\n var SUBST = {\n className: 'subst',\n begin: /#\\{/,\n end: /\\}/,\n keywords: RUBY_KEYWORDS\n };\n var STRING = {\n className: 'string',\n contains: [hljs.BACKSLASH_ESCAPE, SUBST],\n variants: [{\n begin: /'/,\n end: /'/\n }, {\n begin: /\"/,\n end: /\"/\n }, {\n begin: /`/,\n end: /`/\n }, {\n begin: /%[qQwWx]?\\(/,\n end: /\\)/\n }, {\n begin: /%[qQwWx]?\\[/,\n end: /\\]/\n }, {\n begin: /%[qQwWx]?\\{/,\n end: /\\}/\n }, {\n begin: /%[qQwWx]?</,\n end: />/\n }, {\n begin: /%[qQwWx]?\\//,\n end: /\\//\n }, {\n begin: /%[qQwWx]?%/,\n end: /%/\n }, {\n begin: /%[qQwWx]?-/,\n end: /-/\n }, {\n begin: /%[qQwWx]?\\|/,\n end: /\\|/\n },\n // in the following expressions, \\B in the beginning suppresses recognition of ?-sequences\n // where ? is the last character of a preceding identifier, as in: `func?4`\n {\n begin: /\\B\\?(\\\\\\d{1,3})/\n }, {\n begin: /\\B\\?(\\\\x[A-Fa-f0-9]{1,2})/\n }, {\n begin: /\\B\\?(\\\\u\\{?[A-Fa-f0-9]{1,6}\\}?)/\n }, {\n begin: /\\B\\?(\\\\M-\\\\C-|\\\\M-\\\\c|\\\\c\\\\M-|\\\\M-|\\\\C-\\\\M-)[\\x20-\\x7e]/\n }, {\n begin: /\\B\\?\\\\(c|C-)[\\x20-\\x7e]/\n }, {\n begin: /\\B\\?\\\\?\\S/\n },\n // heredocs\n {\n // this guard makes sure that we have an entire heredoc and not a false\n // positive (auto-detect, etc.)\n begin: regex.concat(/<<[-~]?'?/, regex.lookahead(/(\\w+)(?=\\W)[^\\n]*\\n(?:[^\\n]*\\n)*?\\s*\\1\\b/)),\n contains: [hljs.END_SAME_AS_BEGIN({\n begin: /(\\w+)/,\n end: /(\\w+)/,\n contains: [hljs.BACKSLASH_ESCAPE, SUBST]\n })]\n }]\n };\n\n // Ruby syntax is underdocumented, but this grammar seems to be accurate\n // as of version 2.7.2 (confirmed with (irb and `Ripper.sexp(...)`)\n // https://docs.ruby-lang.org/en/2.7.0/doc/syntax/literals_rdoc.html#label-Numbers\n var decimal = '[1-9](_?[0-9])*|0';\n var digits = '[0-9](_?[0-9])*';\n var NUMBER = {\n className: 'number',\n relevance: 0,\n variants: [\n // decimal integer/float, optionally exponential or rational, optionally imaginary\n {\n begin: \"\\\\b(\".concat(decimal, \")(\\\\.(\").concat(digits, \"))?([eE][+-]?(\").concat(digits, \")|r)?i?\\\\b\")\n },\n // explicit decimal/binary/octal/hexadecimal integer,\n // optionally rational and/or imaginary\n {\n begin: \"\\\\b0[dD][0-9](_?[0-9])*r?i?\\\\b\"\n }, {\n begin: \"\\\\b0[bB][0-1](_?[0-1])*r?i?\\\\b\"\n }, {\n begin: \"\\\\b0[oO][0-7](_?[0-7])*r?i?\\\\b\"\n }, {\n begin: \"\\\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\\\b\"\n },\n // 0-prefixed implicit octal integer, optionally rational and/or imaginary\n {\n begin: \"\\\\b0(_?[0-7])+r?i?\\\\b\"\n }]\n };\n var PARAMS = {\n variants: [{\n match: /\\(\\)/\n }, {\n className: 'params',\n begin: /\\(/,\n end: /(?=\\))/,\n excludeBegin: true,\n endsParent: true,\n keywords: RUBY_KEYWORDS\n }]\n };\n var INCLUDE_EXTEND = {\n match: [/(include|extend)\\s+/, CLASS_NAME_WITH_NAMESPACE_RE],\n scope: {\n 2: \"title.class\"\n },\n keywords: RUBY_KEYWORDS\n };\n var CLASS_DEFINITION = {\n variants: [{\n match: [/class\\s+/, CLASS_NAME_WITH_NAMESPACE_RE, /\\s+<\\s+/, CLASS_NAME_WITH_NAMESPACE_RE]\n }, {\n match: [/\\b(class|module)\\s+/, CLASS_NAME_WITH_NAMESPACE_RE]\n }],\n scope: {\n 2: \"title.class\",\n 4: \"title.class.inherited\"\n },\n keywords: RUBY_KEYWORDS\n };\n var UPPER_CASE_CONSTANT = {\n relevance: 0,\n match: /\\b[A-Z][A-Z_0-9]+\\b/,\n className: \"variable.constant\"\n };\n var METHOD_DEFINITION = {\n match: [/def/, /\\s+/, RUBY_METHOD_RE],\n scope: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [PARAMS]\n };\n var OBJECT_CREATION = {\n relevance: 0,\n match: [CLASS_NAME_WITH_NAMESPACE_RE, /\\.new[. (]/],\n scope: {\n 1: \"title.class\"\n }\n };\n\n // CamelCase\n var CLASS_REFERENCE = {\n relevance: 0,\n match: CLASS_NAME_RE,\n scope: \"title.class\"\n };\n var RUBY_DEFAULT_CONTAINS = [STRING, CLASS_DEFINITION, INCLUDE_EXTEND, OBJECT_CREATION, UPPER_CASE_CONSTANT, CLASS_REFERENCE, METHOD_DEFINITION, {\n // swallow namespace qualifiers before symbols\n begin: hljs.IDENT_RE + '::'\n }, {\n className: 'symbol',\n begin: hljs.UNDERSCORE_IDENT_RE + '(!|\\\\?)?:',\n relevance: 0\n }, {\n className: 'symbol',\n begin: ':(?!\\\\s)',\n contains: [STRING, {\n begin: RUBY_METHOD_RE\n }],\n relevance: 0\n }, NUMBER, {\n // negative-look forward attempts to prevent false matches like:\n // @ident@ or $ident$ that might indicate this is not ruby at all\n className: \"variable\",\n begin: '(\\\\$\\\\W)|((\\\\$|@@?)(\\\\w+))(?=[^@$?])' + \"(?![A-Za-z])(?![@$?'])\"\n }, {\n className: 'params',\n begin: /\\|/,\n end: /\\|/,\n excludeBegin: true,\n excludeEnd: true,\n relevance: 0,\n // this could be a lot of things (in other languages) other than params\n keywords: RUBY_KEYWORDS\n }, {\n // regexp container\n begin: '(' + hljs.RE_STARTERS_RE + '|unless)\\\\s*',\n keywords: 'unless',\n contains: [{\n className: 'regexp',\n contains: [hljs.BACKSLASH_ESCAPE, SUBST],\n illegal: /\\n/,\n variants: [{\n begin: '/',\n end: '/[a-z]*'\n }, {\n begin: /%r\\{/,\n end: /\\}[a-z]*/\n }, {\n begin: '%r\\\\(',\n end: '\\\\)[a-z]*'\n }, {\n begin: '%r!',\n end: '![a-z]*'\n }, {\n begin: '%r\\\\[',\n end: '\\\\][a-z]*'\n }]\n }].concat(IRB_OBJECT, COMMENT_MODES),\n relevance: 0\n }].concat(IRB_OBJECT, COMMENT_MODES);\n SUBST.contains = RUBY_DEFAULT_CONTAINS;\n PARAMS.contains = RUBY_DEFAULT_CONTAINS;\n\n // >>\n // ?>\n var SIMPLE_PROMPT = \"[>?]>\";\n // irb(main):001:0>\n var DEFAULT_PROMPT = \"[\\\\w#]+\\\\(\\\\w+\\\\):\\\\d+:\\\\d+[>*]\";\n var RVM_PROMPT = \"(\\\\w+-)?\\\\d+\\\\.\\\\d+\\\\.\\\\d+(p\\\\d+)?[^\\\\d][^>]+>\";\n var IRB_DEFAULT = [{\n begin: /^\\s*=>/,\n starts: {\n end: '$',\n contains: RUBY_DEFAULT_CONTAINS\n }\n }, {\n className: 'meta.prompt',\n begin: '^(' + SIMPLE_PROMPT + \"|\" + DEFAULT_PROMPT + '|' + RVM_PROMPT + ')(?=[ ])',\n starts: {\n end: '$',\n keywords: RUBY_KEYWORDS,\n contains: RUBY_DEFAULT_CONTAINS\n }\n }];\n COMMENT_MODES.unshift(IRB_OBJECT);\n return {\n name: 'Ruby',\n aliases: ['rb', 'gemspec', 'podspec', 'thor', 'irb'],\n keywords: RUBY_KEYWORDS,\n illegal: /\\/\\*/,\n contains: [hljs.SHEBANG({\n binary: \"ruby\"\n })].concat(IRB_DEFAULT).concat(COMMENT_MODES).concat(RUBY_DEFAULT_CONTAINS)\n };\n}\nmodule.exports = ruby;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvcnVieS5qcyJdLCJuYW1lcyI6WyJydWJ5IiwiaGxqcyIsInJlZ2V4IiwiUlVCWV9NRVRIT0RfUkUiLCJDTEFTU19OQU1FX1JFIiwiZWl0aGVyIiwiQ0xBU1NfTkFNRV9XSVRIX05BTUVTUEFDRV9SRSIsImNvbmNhdCIsIlBTRVVET19LV1MiLCJSVUJZX0tFWVdPUkRTIiwia2V5d29yZCIsImJ1aWx0X2luIiwibGl0ZXJhbCIsIllBUkRPQ1RBRyIsImNsYXNzTmFtZSIsImJlZ2luIiwiSVJCX09CSkVDVCIsImVuZCIsIkNPTU1FTlRfTU9ERVMiLCJDT01NRU5UIiwiY29udGFpbnMiLCJyZWxldmFuY2UiLCJNQVRDSF9OT1RISU5HX1JFIiwiU1VCU1QiLCJrZXl3b3JkcyIsIlNUUklORyIsIkJBQ0tTTEFTSF9FU0NBUEUiLCJ2YXJpYW50cyIsImxvb2thaGVhZCIsIkVORF9TQU1FX0FTX0JFR0lOIiwiZGVjaW1hbCIsImRpZ2l0cyIsIk5VTUJFUiIsIlBBUkFNUyIsIm1hdGNoIiwiZXhjbHVkZUJlZ2luIiwiZW5kc1BhcmVudCIsIklOQ0xVREVfRVhURU5EIiwic2NvcGUiLCJDTEFTU19ERUZJTklUSU9OIiwiVVBQRVJfQ0FTRV9DT05TVEFOVCIsIk1FVEhPRF9ERUZJTklUSU9OIiwiT0JKRUNUX0NSRUFUSU9OIiwiQ0xBU1NfUkVGRVJFTkNFIiwiUlVCWV9ERUZBVUxUX0NPTlRBSU5TIiwiSURFTlRfUkUiLCJVTkRFUlNDT1JFX0lERU5UX1JFIiwiZXhjbHVkZUVuZCIsIlJFX1NUQVJURVJTX1JFIiwiaWxsZWdhbCIsIlNJTVBMRV9QUk9NUFQiLCJERUZBVUxUX1BST01QVCIsIlJWTV9QUk9NUFQiLCJJUkJfREVGQVVMVCIsInN0YXJ0cyIsInVuc2hpZnQiLCJuYW1lIiwiYWxpYXNlcyIsIlNIRUJBTkciLCJiaW5hcnkiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoi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QUFFZixhQUFhO0lBQ3ZCd0MsT0FBTyxFQUFFLE1BQU07SUFDZjdCLFFBQVEsRUFBRSxDQUFFbkIsSUFBSSxDQUFDeUQsT0FBTyxDQUFDO01BQUVDLE1BQU0sRUFBRTtJQUFPLENBQUMsQ0FBQyxDQUFFLENBQzNDcEQsTUFBTSxDQUFDOEMsV0FBVyxDQUFDLENBQ25COUMsTUFBTSxDQUFDVyxhQUFhLENBQUMsQ0FDckJYLE1BQU0sQ0FBQ3FDLHFCQUFxQjtFQUNqQyxDQUFDO0FBQ0g7QUFFQWdCLE1BQU0sQ0FBQ0MsT0FBTyxHQUFHN0QsSUFBSSIsImZpbGUiOiI2My5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG5MYW5ndWFnZTogUnVieVxuRGVzY3JpcHRpb246IFJ1YnkgaXMgYSBkeW5hbWljLCBvcGVuIHNvdXJjZSBwcm9ncmFtbWluZyBsYW5ndWFnZSB3aXRoIGEgZm9jdXMgb24gc2ltcGxpY2l0eSBhbmQgcHJvZHVjdGl2aXR5LlxuV2Vic2l0ZTogaHR0cHM6Ly93d3cucnVieS1sYW5nLm9yZy9cbkF1dGhvcjogQW50b24gS292YWx5b3YgPGFudG9uQGtvdmFseW92Lm5ldD5cbkNvbnRyaWJ1dG9yczogUGV0ZXIgTGVvbm92IDxnb2pwZWdAeWFuZGV4LnJ1PiwgVmFzaWx5IFBvbG92bnlvdiA8dmFzdEB3aGl0ZWFudHMubmV0PiwgTG9yZW4gU2VnYWwgPGxzZWdhbEBzb2VuLmNhPiwgUGFzY2FsIEh1cm5pIDxwaGlAcnVieS1yZWFjdGl2ZS5vcmc+LCBDZWRyaWMgU29ocmF1ZXIgPHNvaHJhdWVyQGdvb2dsZW1haWwuY29tPlxuQ2F0ZWdvcnk6IGNvbW1vblxuKi9cblxuZnVuY3Rpb24gcnVieShobGpzKSB7XG4gIGNvbnN0IHJlZ2V4ID0gaGxqcy5yZWdleDtcbiAgY29uc3QgUlVCWV9NRVRIT0RfUkUgPSAnKFthLXpBLVpfXVxcXFx3KlshPz1dP3xbLSt+XUB8PDx8Pj58PX58PT09P3w8PT58Wzw+XT0/fFxcXFwqXFxcXCp8Wy0vKyVeJip+YHxdfFxcXFxbXFxcXF09PyknO1xuICAvLyBUT0RPOiBtb3ZlIGNvbmNlcHRzIGxpa2UgQ0FNRUxfQ0FTRSBpbnRvIGBtb2Rlcy5qc2BcbiAgY29uc3QgQ0xBU1NfTkFNRV9SRSA9IHJlZ2V4LmVpdGhlcihcbiAgICAvXFxiKFtBLVpdK1thLXowLTldKykrLyxcbiAgICAvLyBlbmRzIGluIGNhcHNcbiAgICAvXFxiKFtBLVpdK1thLXowLTldKykrW0EtWl0rLyxcbiAgKVxuICA7XG4gIGNvbnN0IENMQVNTX05BTUVfV0lUSF9OQU1FU1BBQ0VfUkUgPSByZWdleC5jb25jYXQoQ0xBU1NfTkFNRV9SRSwgLyg6OlxcdyspKi8pO1xuICAvLyB2ZXJ5IHBvcHVsYXIgcnVieSBidWlsdC1pbnMgdGhhdCBvbmUgbWlnaHQgZXZlbiBhc3N1bWVcbiAgLy8gYXJlIGFjdHVhbCBrZXl3b3JkcyAoZGVzcGl0ZSB0aGF0IG5vdCBiZWluZyB0aGUgY2FzZSlcbiAgY29uc3QgUFNFVURPX0tXUyA9IFtcbiAgICBcImluY2x1ZGVcIixcbiAgICBcImV4dGVuZFwiLFxuICAgIFwicHJlcGVuZFwiLFxuICAgIFwicHVibGljXCIsXG4gICAgXCJwcml2YXRlXCIsXG4gICAgXCJwcm90ZWN0ZWRcIixcbiAgICBcInJhaXNlXCIsXG4gICAgXCJ0aHJvd1wiXG4gIF07XG4gIGNvbnN0IFJVQllfS0VZV09SRFMgPSB7XG4gICAgXCJ2YXJpYWJsZS5jb25zdGFudFwiOiBbXG4gICAgICBcIl9fRklMRV9fXCIsXG4gICAgICBcIl9fTElORV9fXCIsXG4gICAgICBcIl9fRU5DT0RJTkdfX1wiXG4gICAgXSxcbiAgICBcInZhcmlhYmxlLmxhbmd1YWdlXCI6IFtcbiAgICAgIFwic2VsZlwiLFxuICAgICAgXCJzdXBlclwiLFxuICAgIF0sXG4gICAga2V5d29yZDogW1xuICAgICAgXCJhbGlhc1wiLFxuICAgICAgXCJhbmRcIixcbiAgICAgIFwiYmVnaW5cIixcbiAgICAgIFwiQkVHSU5cIixcbiAgICAgIFwiYnJlYWtcIixcbiAgICAgIFwiY2FzZVwiLFxuICAgICAgXCJjbGFzc1wiLFxuICAgICAgXCJkZWZpbmVkXCIsXG4gICAgICBcImRvXCIsXG4gICAgICBcImVsc2VcIixcbiAgICAgIFwiZWxzaWZcIixcbiAgICAgIFwiZW5kXCIsXG4gICAgICBcIkVORFwiLFxuICAgICAgXCJlbnN1cmVcIixcbiAgICAgIFwiZm9yXCIsXG4gICAgICBcImlmXCIsXG4gICAgICBcImluXCIsXG4gICAgICBcIm1vZHVsZVwiLFxuICAgICAgXCJuZXh0XCIsXG4gICAgICBcIm5vdFwiLFxuICAgICAgXCJvclwiLFxuICAgICAgXCJyZWRvXCIsXG4gICAgICBcInJlcXVpcmVcIixcbiAgICAgIFwicmVzY3VlXCIsXG4gICAgICBcInJldHJ5XCIsXG4gICAgICBcInJldHVyblwiLFxuICAgICAgXCJ0aGVuXCIsXG4gICAgICBcInVuZGVmXCIsXG4gICAgICBcInVubGVzc1wiLFxuICAgICAgXCJ1bnRpbFwiLFxuICAgICAgXCJ3aGVuXCIsXG4gICAgICBcIndoaWxlXCIsXG4gICAgICBcInlpZWxkXCIsXG4gICAgICAuLi5QU0VVRE9fS1dTXG4gICAgXSxcbiAgICBidWlsdF9pbjogW1xuICAgICAgXCJwcm9jXCIsXG4gICAgICBcImxhbWJkYVwiLFxuICAgICAgXCJhdHRyX2FjY2Vzc29yXCIsXG4gICAgICBcImF0dHJfcmVhZGVyXCIsXG4gICAgICBcImF0dHJfd3JpdGVyXCIsXG4gICAgICBcImRlZmluZV9tZXRob2RcIixcbiAgICAgIFwicHJpdmF0ZV9jb25zdGFudFwiLFxuICAgICAgXCJtb2R1bGVfZnVuY3Rpb25cIlxuICAgIF0sXG4gICAgbGl0ZXJhbDogW1xuICAgICAgXCJ0cnVlXCIsXG4gICAgICBcImZhbHNlXCIsXG4gICAgICBcIm5pbFwiXG4gICAgXVxuICB9O1xuICBjb25zdCBZQVJET0NUQUcgPSB7XG4gICAgY2xhc3NOYW1lOiAnZG9jdGFnJyxcbiAgICBiZWdpbjogJ0BbQS1aYS16XSsnXG4gIH07XG4gIGNvbnN0IElSQl9PQkpFQ1QgPSB7XG4gICAgYmVnaW46ICcjPCcsXG4gICAgZW5kOiAnPidcbiAgfTtcbiAgY29uc3QgQ09NTUVOVF9NT0RFUyA9IFtcbiAgICBobGpzLkNPTU1FTlQoXG4gICAgICAnIycsXG4gICAgICAnJCcsXG4gICAgICB7IGNvbnRhaW5zOiBbIFlBUkRPQ1RBRyBdIH1cbiAgICApLFxuICAgIGhsanMuQ09NTUVOVChcbiAgICAgICdePWJlZ2luJyxcbiAgICAgICdePWVuZCcsXG4gICAgICB7XG4gICAgICAgIGNvbnRhaW5zOiBbIFlBUkRPQ1RBRyBdLFxuICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICB9XG4gICAgKSxcbiAgICBobGpzLkNPTU1FTlQoJ15fX0VORF9fJywgaGxqcy5NQVRDSF9OT1RISU5HX1JFKVxuICBdO1xuICBjb25zdCBTVUJTVCA9IHtcbiAgICBjbGFzc05hbWU6ICdzdWJzdCcsXG4gICAgYmVnaW46IC8jXFx7LyxcbiAgICBlbmQ6IC9cXH0vLFxuICAgIGtleXdvcmRzOiBSVUJZX0tFWVdPUkRTXG4gIH07XG4gIGNvbnN0IFNUUklORyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICBTVUJTVFxuICAgIF0sXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC8nLyxcbiAgICAgICAgZW5kOiAvJy9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXCIvLFxuICAgICAgICBlbmQ6IC9cIi9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvYC8sXG4gICAgICAgIGVuZDogL2AvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogLyVbcVF3V3hdP1xcKC8sXG4gICAgICAgIGVuZDogL1xcKS9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvJVtxUXdXeF0/XFxbLyxcbiAgICAgICAgZW5kOiAvXFxdL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC8lW3FRd1d4XT9cXHsvLFxuICAgICAgICBlbmQ6IC9cXH0vXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogLyVbcVF3V3hdPzwvLFxuICAgICAgICBlbmQ6IC8+L1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC8lW3FRd1d4XT9cXC8vLFxuICAgICAgICBlbmQ6IC9cXC8vXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogLyVbcVF3V3hdPyUvLFxuICAgICAgICBlbmQ6IC8lL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC8lW3FRd1d4XT8tLyxcbiAgICAgICAgZW5kOiAvLS9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvJVtxUXdXeF0/XFx8LyxcbiAgICAgICAgZW5kOiAvXFx8L1xuICAgICAgfSxcbiAgICAgIC8vIGluIHRoZSBmb2xsb3dpbmcgZXhwcmVzc2lvbnMsIFxcQiBpbiB0aGUgYmVnaW5uaW5nIHN1cHByZXNzZXMgcmVjb2duaXRpb24gb2YgPy1zZXF1ZW5jZXNcbiAgICAgIC8vIHdoZXJlID8gaXMgdGhlIGxhc3QgY2hhcmFjdGVyIG9mIGEgcHJlY2VkaW5nIGlkZW50aWZpZXIsIGFzIGluOiBgZnVuYz80YFxuICAgICAgeyBiZWdpbjogL1xcQlxcPyhcXFxcXFxkezEsM30pLyB9LFxuICAgICAgeyBiZWdpbjogL1xcQlxcPyhcXFxceFtBLUZhLWYwLTldezEsMn0pLyB9LFxuICAgICAgeyBiZWdpbjogL1xcQlxcPyhcXFxcdVxcez9bQS1GYS1mMC05XXsxLDZ9XFx9PykvIH0sXG4gICAgICB7IGJlZ2luOiAvXFxCXFw/KFxcXFxNLVxcXFxDLXxcXFxcTS1cXFxcY3xcXFxcY1xcXFxNLXxcXFxcTS18XFxcXEMtXFxcXE0tKVtcXHgyMC1cXHg3ZV0vIH0sXG4gICAgICB7IGJlZ2luOiAvXFxCXFw/XFxcXChjfEMtKVtcXHgyMC1cXHg3ZV0vIH0sXG4gICAgICB7IGJlZ2luOiAvXFxCXFw/XFxcXD9cXFMvIH0sXG4gICAgICAvLyBoZXJlZG9jc1xuICAgICAge1xuICAgICAgICAvLyB0aGlzIGd1YXJkIG1ha2VzIHN1cmUgdGhhdCB3ZSBoYXZlIGFuIGVudGlyZSBoZXJlZG9jIGFuZCBub3QgYSBmYWxzZVxuICAgICAgICAvLyBwb3NpdGl2ZSAoYXV0by1kZXRlY3QsIGV0Yy4pXG4gICAgICAgIGJlZ2luOiByZWdleC5jb25jYXQoXG4gICAgICAgICAgLzw8Wy1+XT8nPy8sXG4gICAgICAgICAgcmVnZXgubG9va2FoZWFkKC8oXFx3KykoPz1cXFcpW15cXG5dKlxcbig/OlteXFxuXSpcXG4pKj9cXHMqXFwxXFxiLylcbiAgICAgICAgKSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBobGpzLkVORF9TQU1FX0FTX0JFR0lOKHtcbiAgICAgICAgICAgIGJlZ2luOiAvKFxcdyspLyxcbiAgICAgICAgICAgIGVuZDogLyhcXHcrKS8sXG4gICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICAgICAgICAgIFNVQlNUXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSlcbiAgICAgICAgXVxuICAgICAgfVxuICAgIF1cbiAgfTtcblxuICAvLyBSdWJ5IHN5bnRheCBpcyB1bmRlcmRvY3VtZW50ZWQsIGJ1dCB0aGlzIGdyYW1tYXIgc2VlbXMgdG8gYmUgYWNjdXJhdGVcbiAgLy8gYXMgb2YgdmVyc2lvbiAyLjcuMiAoY29uZmlybWVkIHdpdGggKGlyYiBhbmQgYFJpcHBlci5zZXhwKC4uLilgKVxuICAvLyBodHRwczovL2RvY3MucnVieS1sYW5nLm9yZy9lbi8yLjcuMC9kb2Mvc3ludGF4L2xpdGVyYWxzX3Jkb2MuaHRtbCNsYWJlbC1OdW1iZXJzXG4gIGNvbnN0IGRlY2ltYWwgPSAnWzEtOV0oXz9bMC05XSkqfDAnO1xuICBjb25zdCBkaWdpdHMgPSAnWzAtOV0oXz9bMC05XSkqJztcbiAgY29uc3QgTlVNQkVSID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICAvLyBkZWNpbWFsIGludGVnZXIvZmxvYXQsIG9wdGlvbmFsbHkgZXhwb25lbnRpYWwgb3IgcmF0aW9uYWwsIG9wdGlvbmFsbHkgaW1hZ2luYXJ5XG4gICAgICB7IGJlZ2luOiBgXFxcXGIoJHtkZWNpbWFsfSkoXFxcXC4oJHtkaWdpdHN9KSk/KFtlRV1bKy1dPygke2RpZ2l0c30pfHIpP2k/XFxcXGJgIH0sXG5cbiAgICAgIC8vIGV4cGxpY2l0IGRlY2ltYWwvYmluYXJ5L29jdGFsL2hleGFkZWNpbWFsIGludGVnZXIsXG4gICAgICAvLyBvcHRpb25hbGx5IHJhdGlvbmFsIGFuZC9vciBpbWFnaW5hcnlcbiAgICAgIHsgYmVnaW46IFwiXFxcXGIwW2REXVswLTldKF8/WzAtOV0pKnI/aT9cXFxcYlwiIH0sXG4gICAgICB7IGJlZ2luOiBcIlxcXFxiMFtiQl1bMC0xXShfP1swLTFdKSpyP2k/XFxcXGJcIiB9LFxuICAgICAgeyBiZWdpbjogXCJcXFxcYjBbb09dWzAtN10oXz9bMC03XSkqcj9pP1xcXFxiXCIgfSxcbiAgICAgIHsgYmVnaW46IFwiXFxcXGIwW3hYXVswLTlhLWZBLUZdKF8/WzAtOWEtZkEtRl0pKnI/aT9cXFxcYlwiIH0sXG5cbiAgICAgIC8vIDAtcHJlZml4ZWQgaW1wbGljaXQgb2N0YWwgaW50ZWdlciwgb3B0aW9uYWxseSByYXRpb25hbCBhbmQvb3IgaW1hZ2luYXJ5XG4gICAgICB7IGJlZ2luOiBcIlxcXFxiMChfP1swLTddKStyP2k/XFxcXGJcIiB9XG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IFBBUkFNUyA9IHtcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBtYXRjaDogL1xcKFxcKS8sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgICAgICBiZWdpbjogL1xcKC8sXG4gICAgICAgIGVuZDogLyg/PVxcKSkvLFxuICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgIGVuZHNQYXJlbnQ6IHRydWUsXG4gICAgICAgIGtleXdvcmRzOiBSVUJZX0tFWVdPUkRTLFxuICAgICAgfVxuICAgIF1cbiAgfTtcblxuICBjb25zdCBJTkNMVURFX0VYVEVORCA9IHtcbiAgICBtYXRjaDogW1xuICAgICAgLyhpbmNsdWRlfGV4dGVuZClcXHMrLyxcbiAgICAgIENMQVNTX05BTUVfV0lUSF9OQU1FU1BBQ0VfUkVcbiAgICBdLFxuICAgIHNjb3BlOiB7XG4gICAgICAyOiBcInRpdGxlLmNsYXNzXCJcbiAgICB9LFxuICAgIGtleXdvcmRzOiBSVUJZX0tFWVdPUkRTXG4gIH07XG5cbiAgY29uc3QgQ0xBU1NfREVGSU5JVElPTiA9IHtcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBtYXRjaDogW1xuICAgICAgICAgIC9jbGFzc1xccysvLFxuICAgICAgICAgIENMQVNTX05BTUVfV0lUSF9OQU1FU1BBQ0VfUkUsXG4gICAgICAgICAgL1xccys8XFxzKy8sXG4gICAgICAgICAgQ0xBU1NfTkFNRV9XSVRIX05BTUVTUEFDRV9SRVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBtYXRjaDogW1xuICAgICAgICAgIC9cXGIoY2xhc3N8bW9kdWxlKVxccysvLFxuICAgICAgICAgIENMQVNTX05BTUVfV0lUSF9OQU1FU1BBQ0VfUkVcbiAgICAgICAgXVxuICAgICAgfVxuICAgIF0sXG4gICAgc2NvcGU6IHtcbiAgICAgIDI6IFwidGl0bGUuY2xhc3NcIixcbiAgICAgIDQ6IFwidGl0bGUuY2xhc3MuaW5oZXJpdGVkXCJcbiAgICB9LFxuICAgIGtleXdvcmRzOiBSVUJZX0tFWVdPUkRTXG4gIH07XG5cbiAgY29uc3QgVVBQRVJfQ0FTRV9DT05TVEFOVCA9IHtcbiAgICByZWxldmFuY2U6IDAsXG4gICAgbWF0Y2g6IC9cXGJbQS1aXVtBLVpfMC05XStcXGIvLFxuICAgIGNsYXNzTmFtZTogXCJ2YXJpYWJsZS5jb25zdGFudFwiXG4gIH07XG5cbiAgY29uc3QgTUVUSE9EX0RFRklOSVRJT04gPSB7XG4gICAgbWF0Y2g6IFtcbiAgICAgIC9kZWYvLCAvXFxzKy8sXG4gICAgICBSVUJZX01FVEhPRF9SRVxuICAgIF0sXG4gICAgc2NvcGU6IHtcbiAgICAgIDE6IFwia2V5d29yZFwiLFxuICAgICAgMzogXCJ0aXRsZS5mdW5jdGlvblwiXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgUEFSQU1TXG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IE9CSkVDVF9DUkVBVElPTiA9IHtcbiAgICByZWxldmFuY2U6IDAsXG4gICAgbWF0Y2g6IFtcbiAgICAgIENMQVNTX05BTUVfV0lUSF9OQU1FU1BBQ0VfUkUsXG4gICAgICAvXFwubmV3Wy4gKF0vXG4gICAgXSxcbiAgICBzY29wZToge1xuICAgICAgMTogXCJ0aXRsZS5jbGFzc1wiXG4gICAgfVxuICB9O1xuXG4gIC8vIENhbWVsQ2FzZVxuICBjb25zdCBDTEFTU19SRUZFUkVOQ0UgPSB7XG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIG1hdGNoOiBDTEFTU19OQU1FX1JFLFxuICAgIHNjb3BlOiBcInRpdGxlLmNsYXNzXCJcbiAgfTtcblxuICBjb25zdCBSVUJZX0RFRkFVTFRfQ09OVEFJTlMgPSBbXG4gICAgU1RSSU5HLFxuICAgIENMQVNTX0RFRklOSVRJT04sXG4gICAgSU5DTFVERV9FWFRFTkQsXG4gICAgT0JKRUNUX0NSRUFUSU9OLFxuICAgIFVQUEVSX0NBU0VfQ09OU1RBTlQsXG4gICAgQ0xBU1NfUkVGRVJFTkNFLFxuICAgIE1FVEhPRF9ERUZJTklUSU9OLFxuICAgIHtcbiAgICAgIC8vIHN3YWxsb3cgbmFtZXNwYWNlIHF1YWxpZmllcnMgYmVmb3JlIHN5bWJvbHNcbiAgICAgIGJlZ2luOiBobGpzLklERU5UX1JFICsgJzo6JyB9LFxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgICBiZWdpbjogaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFICsgJyghfFxcXFw/KT86JyxcbiAgICAgIHJlbGV2YW5jZTogMFxuICAgIH0sXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICAgIGJlZ2luOiAnOig/IVxcXFxzKScsXG4gICAgICBjb250YWluczogW1xuICAgICAgICBTVFJJTkcsXG4gICAgICAgIHsgYmVnaW46IFJVQllfTUVUSE9EX1JFIH1cbiAgICAgIF0sXG4gICAgICByZWxldmFuY2U6IDBcbiAgICB9LFxuICAgIE5VTUJFUixcbiAgICB7XG4gICAgICAvLyBuZWdhdGl2ZS1sb29rIGZvcndhcmQgYXR0ZW1wdHMgdG8gcHJldmVudCBmYWxzZSBtYXRjaGVzIGxpa2U6XG4gICAgICAvLyBAaWRlbnRAIG9yICRpZGVudCQgdGhhdCBtaWdodCBpbmRpY2F0ZSB0aGlzIGlzIG5vdCBydWJ5IGF0IGFsbFxuICAgICAgY2xhc3NOYW1lOiBcInZhcmlhYmxlXCIsXG4gICAgICBiZWdpbjogJyhcXFxcJFxcXFxXKXwoKFxcXFwkfEBAPykoXFxcXHcrKSkoPz1bXkAkP10pJyArIGAoPyFbQS1aYS16XSkoPyFbQCQ/J10pYFxuICAgIH0sXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICAgIGJlZ2luOiAvXFx8LyxcbiAgICAgIGVuZDogL1xcfC8sXG4gICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgcmVsZXZhbmNlOiAwLCAvLyB0aGlzIGNvdWxkIGJlIGEgbG90IG9mIHRoaW5ncyAoaW4gb3RoZXIgbGFuZ3VhZ2VzKSBvdGhlciB0aGFuIHBhcmFtc1xuICAgICAga2V5d29yZHM6IFJVQllfS0VZV09SRFNcbiAgICB9LFxuICAgIHsgLy8gcmVnZXhwIGNvbnRhaW5lclxuICAgICAgYmVnaW46ICcoJyArIGhsanMuUkVfU1RBUlRFUlNfUkUgKyAnfHVubGVzcylcXFxccyonLFxuICAgICAga2V5d29yZHM6ICd1bmxlc3MnLFxuICAgICAgY29udGFpbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGNsYXNzTmFtZTogJ3JlZ2V4cCcsXG4gICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICAgICAgICAgIFNVQlNUXG4gICAgICAgICAgXSxcbiAgICAgICAgICBpbGxlZ2FsOiAvXFxuLyxcbiAgICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBiZWdpbjogJy8nLFxuICAgICAgICAgICAgICBlbmQ6ICcvW2Etel0qJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgYmVnaW46IC8lclxcey8sXG4gICAgICAgICAgICAgIGVuZDogL1xcfVthLXpdKi9cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGJlZ2luOiAnJXJcXFxcKCcsXG4gICAgICAgICAgICAgIGVuZDogJ1xcXFwpW2Etel0qJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgYmVnaW46ICclciEnLFxuICAgICAgICAgICAgICBlbmQ6ICchW2Etel0qJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgYmVnaW46ICclclxcXFxbJyxcbiAgICAgICAgICAgICAgZW5kOiAnXFxcXF1bYS16XSonXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICBdLmNvbmNhdChJUkJfT0JKRUNULCBDT01NRU5UX01PREVTKSxcbiAgICAgIHJlbGV2YW5jZTogMFxuICAgIH1cbiAgXS5jb25jYXQoSVJCX09CSkVDVCwgQ09NTUVOVF9NT0RFUyk7XG5cbiAgU1VCU1QuY29udGFpbnMgPSBSVUJZX0RFRkFVTFRfQ09OVEFJTlM7XG4gIFBBUkFNUy5jb250YWlucyA9IFJVQllfREVGQVVMVF9DT05UQUlOUztcblxuICAvLyA+PlxuICAvLyA/PlxuICBjb25zdCBTSU1QTEVfUFJPTVBUID0gXCJbPj9dPlwiO1xuICAvLyBpcmIobWFpbik6MDAxOjA+XG4gIGNvbnN0IERFRkFVTFRfUFJPTVBUID0gXCJbXFxcXHcjXStcXFxcKFxcXFx3K1xcXFwpOlxcXFxkKzpcXFxcZCtbPipdXCI7XG4gIGNvbnN0IFJWTV9QUk9NUFQgPSBcIihcXFxcdystKT9cXFxcZCtcXFxcLlxcXFxkK1xcXFwuXFxcXGQrKHBcXFxcZCspP1teXFxcXGRdW14+XSs+XCI7XG5cbiAgY29uc3QgSVJCX0RFRkFVTFQgPSBbXG4gICAge1xuICAgICAgYmVnaW46IC9eXFxzKj0+LyxcbiAgICAgIHN0YXJ0czoge1xuICAgICAgICBlbmQ6ICckJyxcbiAgICAgICAgY29udGFpbnM6IFJVQllfREVGQVVMVF9DT05UQUlOU1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnbWV0YS5wcm9tcHQnLFxuICAgICAgYmVnaW46ICdeKCcgKyBTSU1QTEVfUFJPTVBUICsgXCJ8XCIgKyBERUZBVUxUX1BST01QVCArICd8JyArIFJWTV9QUk9NUFQgKyAnKSg/PVsgXSknLFxuICAgICAgc3RhcnRzOiB7XG4gICAgICAgIGVuZDogJyQnLFxuICAgICAgICBrZXl3b3JkczogUlVCWV9LRVlXT1JEUyxcbiAgICAgICAgY29udGFpbnM6IFJVQllfREVGQVVMVF9DT05UQUlOU1xuICAgICAgfVxuICAgIH1cbiAgXTtcblxuICBDT01NRU5UX01PREVTLnVuc2hpZnQoSVJCX09CSkVDVCk7XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnUnVieScsXG4gICAgYWxpYXNlczogW1xuICAgICAgJ3JiJyxcbiAgICAgICdnZW1zcGVjJyxcbiAgICAgICdwb2RzcGVjJyxcbiAgICAgICd0aG9yJyxcbiAgICAgICdpcmInXG4gICAgXSxcbiAgICBrZXl3b3JkczogUlVCWV9LRVlXT1JEUyxcbiAgICBpbGxlZ2FsOiAvXFwvXFwqLyxcbiAgICBjb250YWluczogWyBobGpzLlNIRUJBTkcoeyBiaW5hcnk6IFwicnVieVwiIH0pIF1cbiAgICAgIC5jb25jYXQoSVJCX0RFRkFVTFQpXG4gICAgICAuY29uY2F0KENPTU1FTlRfTU9ERVMpXG4gICAgICAuY29uY2F0KFJVQllfREVGQVVMVF9DT05UQUlOUylcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBydWJ5O1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///63\n");
  1658. /***/ }),
  1659. /* 64 */
  1660. /*!*****************************************************************************************************!*\
  1661. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/highlight.js/lib/languages/go.js ***!
  1662. \*****************************************************************************************************/
  1663. /*! no static exports found */
  1664. /***/ (function(module, exports) {
  1665. eval("/*\nLanguage: Go\nAuthor: Stephan Kountso aka StepLg <steplg@gmail.com>\nContributors: Evgeny Stepanischev <imbolk@gmail.com>\nDescription: Google go language (golang). For info about language\nWebsite: http://golang.org/\nCategory: common, system\n*/\n\nfunction go(hljs) {\n var LITERALS = [\"true\", \"false\", \"iota\", \"nil\"];\n var BUILT_INS = [\"append\", \"cap\", \"close\", \"complex\", \"copy\", \"imag\", \"len\", \"make\", \"new\", \"panic\", \"print\", \"println\", \"real\", \"recover\", \"delete\"];\n var TYPES = [\"bool\", \"byte\", \"complex64\", \"complex128\", \"error\", \"float32\", \"float64\", \"int8\", \"int16\", \"int32\", \"int64\", \"string\", \"uint8\", \"uint16\", \"uint32\", \"uint64\", \"int\", \"uint\", \"uintptr\", \"rune\"];\n var KWS = [\"break\", \"case\", \"chan\", \"const\", \"continue\", \"default\", \"defer\", \"else\", \"fallthrough\", \"for\", \"func\", \"go\", \"goto\", \"if\", \"import\", \"interface\", \"map\", \"package\", \"range\", \"return\", \"select\", \"struct\", \"switch\", \"type\", \"var\"];\n var KEYWORDS = {\n keyword: KWS,\n type: TYPES,\n literal: LITERALS,\n built_in: BUILT_INS\n };\n return {\n name: 'Go',\n aliases: ['golang'],\n keywords: KEYWORDS,\n illegal: '</',\n contains: [hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE, {\n className: 'string',\n variants: [hljs.QUOTE_STRING_MODE, hljs.APOS_STRING_MODE, {\n begin: '`',\n end: '`'\n }]\n }, {\n className: 'number',\n variants: [{\n begin: hljs.C_NUMBER_RE + '[i]',\n relevance: 1\n }, hljs.C_NUMBER_MODE]\n }, {\n begin: /:=/ // relevance booster\n }, {\n className: 'function',\n beginKeywords: 'func',\n end: '\\\\s*(\\\\{|$)',\n excludeEnd: true,\n contains: [hljs.TITLE_MODE, {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n endsParent: true,\n keywords: KEYWORDS,\n illegal: /[\"']/\n }]\n }]\n };\n}\nmodule.exports = go;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvZ28uanMiXSwibmFtZXMiOlsiZ28iLCJobGpzIiwiTElURVJBTFMiLCJCVUlMVF9JTlMiLCJUWVBFUyIsIktXUyIsIktFWVdPUkRTIiwia2V5d29yZCIsInR5cGUiLCJsaXRlcmFsIiwiYnVpbHRfaW4iLCJuYW1lIiwiYWxpYXNlcyIsImtleXdvcmRzIiwiaWxsZWdhbCIsImNvbnRhaW5zIiwiQ19MSU5FX0NPTU1FTlRfTU9ERSIsIkNfQkxPQ0tfQ09NTUVOVF9NT0RFIiwiY2xhc3NOYW1lIiwidmFyaWFudHMiLCJRVU9URV9TVFJJTkdfTU9ERSIsIkFQT1NfU1RSSU5HX01PREUiLCJiZWdpbiIsImVuZCIsIkNfTlVNQkVSX1JFIiwicmVsZXZhbmNlIiwiQ19OVU1CRVJfTU9ERSIsImJlZ2luS2V5d29yZHMiLCJleGNsdWRlRW5kIiwiVElUTEVfTU9ERSIsImVuZHNQYXJlbnQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLFNBQVNBLEVBQUUsQ0FBQ0MsSUFBSSxFQUFFO0VBQ2hCLElBQU1DLFFBQVEsR0FBRyxDQUNmLE1BQU0sRUFDTixPQUFPLEVBQ1AsTUFBTSxFQUNOLEtBQUssQ0FDTjtFQUNELElBQU1DLFNBQVMsR0FBRyxDQUNoQixRQUFRLEVBQ1IsS0FBSyxFQUNMLE9BQU8sRUFDUCxTQUFTLEVBQ1QsTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLEtBQUssRUFDTCxPQUFPLEVBQ1AsT0FBTyxFQUNQLFNBQVMsRUFDVCxNQUFNLEVBQ04sU0FBUyxFQUNULFFBQVEsQ0FDVDtFQUNELElBQU1DLEtBQUssR0FBRyxDQUNaLE1BQU0sRUFDTixNQUFNLEVBQ04sV0FBVyxFQUNYLFlBQVksRUFDWixPQUFPLEVBQ1AsU0FBUyxFQUNULFNBQVMsRUFDVCxNQUFNLEVBQ04sT0FBTyxFQUNQLE9BQU8sRUFDUCxPQUFPLEVBQ1AsUUFBUSxFQUNSLE9BQU8sRUFDUCxRQUFRLEVBQ1IsUUFBUSxFQUNSLFFBQVEsRUFDUixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxNQUFNLENBQ1A7RUFDRCxJQUFNQyxHQUFHLEdBQUcsQ0FDVixPQUFPLEVBQ1AsTUFBTSxFQUNOLE1BQU0sRUFDTixPQUFPLEVBQ1AsVUFBVSxFQUNWLFNBQVMsRUFDVCxPQUFPLEVBQ1AsTUFBTSxFQUNOLGFBQWEsRUFDYixLQUFLLEVBQ0wsTUFBTSxFQUNOLElBQUksRUFDSixNQUFNLEVBQ04sSUFBSSxFQUNKLFFBQVEsRUFDUixXQUFXLEVBQ1gsS0FBSyxFQUNMLFNBQVMsRUFDVCxPQUFPLEVBQ1AsUUFBUSxFQUNSLFFBQVEsRUFDUixRQUFRLEVBQ1IsUUFBUSxFQUNSLE1BQU0sRUFDTixLQUFLLENBQ047RUFDRCxJQUFNQyxRQUFRLEdBQUc7SUFDZkMsT0FBTyxFQUFFRixHQUFHO0lBQ1pHLElBQUksRUFBRUosS0FBSztJQUNYSyxPQUFPLEVBQUVQLFFBQVE7SUFDakJRLFFBQVEsRUFBRVA7RUFDWixDQUFDO0VBQ0QsT0FBTztJQUNMUSxJQUFJLEVBQUUsSUFBSTtJQUNWQyxPQUFPLEVBQUUsQ0FBRSxRQUFRLENBQUU7SUFDckJDLFFBQVEsRUFBRVAsUUFBUTtJQUNsQlEsT0FBTyxFQUFFLElBQUk7SUFDYkMsUUFBUSxFQUFFLENBQ1JkLElBQUksQ0FBQ2UsbUJBQW1CLEVBQ3hCZixJQUFJLENBQUNnQixvQkFBb0IsRUFDekI7TUFDRUMsU0FBUyxFQUFFLFFBQVE7TUFDbkJDLFFBQVEsRUFBRSxDQUNSbEIsSUFBSSxDQUFDbUIsaUJBQWlCLEVBQ3RCbkIsSUFBSSxDQUFDb0IsZ0JBQWdCLEVBQ3JCO1FBQ0VDLEtBQUssRUFBRSxHQUFHO1FBQ1ZDLEdBQUcsRUFBRTtNQUNQLENBQUM7SUFFTCxDQUFDLEVBQ0Q7TUFDRUwsU0FBUyxFQUFFLFFBQVE7TUFDbkJDLFFBQVEsRUFBRSxDQUNSO1FBQ0VHLEtBQUssRUFBRXJCLElBQUksQ0FBQ3VCLFdBQVcsR0FBRyxLQUFLO1FBQy9CQyxTQUFTLEVBQUU7TUFDYixDQUFDLEVBQ0R4QixJQUFJLENBQUN5QixhQUFhO0lBRXRCLENBQUMsRUFDRDtNQUFFSixLQUFLLEVBQUUsSUFBSSxDQUFDO0lBQ2QsQ0FBQyxFQUNEO01BQ0VKLFNBQVMsRUFBRSxVQUFVO01BQ3JCUyxhQUFhLEVBQUUsTUFBTTtNQUNyQkosR0FBRyxFQUFFLGFBQWE7TUFDbEJLLFVBQVUsRUFBRSxJQUFJO01BQ2hCYixRQUFRLEVBQUUsQ0FDUmQsSUFBSSxDQUFDNEIsVUFBVSxFQUNmO1FBQ0VYLFNBQVMsRUFBRSxRQUFRO1FBQ25CSSxLQUFLLEVBQUUsSUFBSTtRQUNYQyxHQUFHLEVBQUUsSUFBSTtRQUNUTyxVQUFVLEVBQUUsSUFBSTtRQUNoQmpCLFFBQVEsRUFBRVAsUUFBUTtRQUNsQlEsT0FBTyxFQUFFO01BQ1gsQ0FBQztJQUVMLENBQUM7RUFFTCxDQUFDO0FBQ0g7QUFFQWlCLE1BQU0sQ0FBQ0MsT0FBTyxHQUFHaEMsRUFBRSIsImZpbGUiOiI2NC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG5MYW5ndWFnZTogR29cbkF1dGhvcjogU3RlcGhhbiBLb3VudHNvIGFrYSBTdGVwTGcgPHN0ZXBsZ0BnbWFpbC5jb20+XG5Db250cmlidXRvcnM6IEV2Z2VueSBTdGVwYW5pc2NoZXYgPGltYm9sa0BnbWFpbC5jb20+XG5EZXNjcmlwdGlvbjogR29vZ2xlIGdvIGxhbmd1YWdlIChnb2xhbmcpLiBGb3IgaW5mbyBhYm91dCBsYW5ndWFnZVxuV2Vic2l0ZTogaHR0cDovL2dvbGFuZy5vcmcvXG5DYXRlZ29yeTogY29tbW9uLCBzeXN0ZW1cbiovXG5cbmZ1bmN0aW9uIGdvKGhsanMpIHtcbiAgY29uc3QgTElURVJBTFMgPSBbXG4gICAgXCJ0cnVlXCIsXG4gICAgXCJmYWxzZVwiLFxuICAgIFwiaW90YVwiLFxuICAgIFwibmlsXCJcbiAgXTtcbiAgY29uc3QgQlVJTFRfSU5TID0gW1xuICAgIFwiYXBwZW5kXCIsXG4gICAgXCJjYXBcIixcbiAgICBcImNsb3NlXCIsXG4gICAgXCJjb21wbGV4XCIsXG4gICAgXCJjb3B5XCIsXG4gICAgXCJpbWFnXCIsXG4gICAgXCJsZW5cIixcbiAgICBcIm1ha2VcIixcbiAgICBcIm5ld1wiLFxuICAgIFwicGFuaWNcIixcbiAgICBcInByaW50XCIsXG4gICAgXCJwcmludGxuXCIsXG4gICAgXCJyZWFsXCIsXG4gICAgXCJyZWNvdmVyXCIsXG4gICAgXCJkZWxldGVcIlxuICBdO1xuICBjb25zdCBUWVBFUyA9IFtcbiAgICBcImJvb2xcIixcbiAgICBcImJ5dGVcIixcbiAgICBcImNvbXBsZXg2NFwiLFxuICAgIFwiY29tcGxleDEyOFwiLFxuICAgIFwiZXJyb3JcIixcbiAgICBcImZsb2F0MzJcIixcbiAgICBcImZsb2F0NjRcIixcbiAgICBcImludDhcIixcbiAgICBcImludDE2XCIsXG4gICAgXCJpbnQzMlwiLFxuICAgIFwiaW50NjRcIixcbiAgICBcInN0cmluZ1wiLFxuICAgIFwidWludDhcIixcbiAgICBcInVpbnQxNlwiLFxuICAgIFwidWludDMyXCIsXG4gICAgXCJ1aW50NjRcIixcbiAgICBcImludFwiLFxuICAgIFwidWludFwiLFxuICAgIFwidWludHB0clwiLFxuICAgIFwicnVuZVwiXG4gIF07XG4gIGNvbnN0IEtXUyA9IFtcbiAgICBcImJyZWFrXCIsXG4gICAgXCJjYXNlXCIsXG4gICAgXCJjaGFuXCIsXG4gICAgXCJjb25zdFwiLFxuICAgIFwiY29udGludWVcIixcbiAgICBcImRlZmF1bHRcIixcbiAgICBcImRlZmVyXCIsXG4gICAgXCJlbHNlXCIsXG4gICAgXCJmYWxsdGhyb3VnaFwiLFxuICAgIFwiZm9yXCIsXG4gICAgXCJmdW5jXCIsXG4gICAgXCJnb1wiLFxuICAgIFwiZ290b1wiLFxuICAgIFwiaWZcIixcbiAgICBcImltcG9ydFwiLFxuICAgIFwiaW50ZXJmYWNlXCIsXG4gICAgXCJtYXBcIixcbiAgICBcInBhY2thZ2VcIixcbiAgICBcInJhbmdlXCIsXG4gICAgXCJyZXR1cm5cIixcbiAgICBcInNlbGVjdFwiLFxuICAgIFwic3RydWN0XCIsXG4gICAgXCJzd2l0Y2hcIixcbiAgICBcInR5cGVcIixcbiAgICBcInZhclwiLFxuICBdO1xuICBjb25zdCBLRVlXT1JEUyA9IHtcbiAgICBrZXl3b3JkOiBLV1MsXG4gICAgdHlwZTogVFlQRVMsXG4gICAgbGl0ZXJhbDogTElURVJBTFMsXG4gICAgYnVpbHRfaW46IEJVSUxUX0lOU1xuICB9O1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdHbycsXG4gICAgYWxpYXNlczogWyAnZ29sYW5nJyBdLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICBpbGxlZ2FsOiAnPC8nLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAnYCcsXG4gICAgICAgICAgICBlbmQ6ICdgJ1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogaGxqcy5DX05VTUJFUl9SRSArICdbaV0nLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAxXG4gICAgICAgICAgfSxcbiAgICAgICAgICBobGpzLkNfTlVNQkVSX01PREVcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHsgYmVnaW46IC86PS8gLy8gcmVsZXZhbmNlIGJvb3N0ZXJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ2Z1bmMnLFxuICAgICAgICBlbmQ6ICdcXFxccyooXFxcXHt8JCknLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuVElUTEVfTU9ERSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgICAgICAgICAgYmVnaW46IC9cXCgvLFxuICAgICAgICAgICAgZW5kOiAvXFwpLyxcbiAgICAgICAgICAgIGVuZHNQYXJlbnQ6IHRydWUsXG4gICAgICAgICAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgICAgICAgICBpbGxlZ2FsOiAvW1wiJ10vXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGdvO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///64\n");
  1666. /***/ }),
  1667. /* 65 */
  1668. /*!**********************************************************************************************************!*\
  1669. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/highlight.js/lib/languages/graphql.js ***!
  1670. \**********************************************************************************************************/
  1671. /*! no static exports found */
  1672. /***/ (function(module, exports) {
  1673. eval("/*\n Language: GraphQL\n Author: John Foster (GH jf990), and others\n Description: GraphQL is a query language for APIs\n Category: web, common\n*/\n\n/** @type LanguageFn */\nfunction graphql(hljs) {\n var regex = hljs.regex;\n var GQL_NAME = /[_A-Za-z][_0-9A-Za-z]*/;\n return {\n name: \"GraphQL\",\n aliases: [\"gql\"],\n case_insensitive: true,\n disableAutodetect: false,\n keywords: {\n keyword: [\"query\", \"mutation\", \"subscription\", \"type\", \"input\", \"schema\", \"directive\", \"interface\", \"union\", \"scalar\", \"fragment\", \"enum\", \"on\"],\n literal: [\"true\", \"false\", \"null\"]\n },\n contains: [hljs.HASH_COMMENT_MODE, hljs.QUOTE_STRING_MODE, hljs.NUMBER_MODE, {\n scope: \"punctuation\",\n match: /[.]{3}/,\n relevance: 0\n }, {\n scope: \"punctuation\",\n begin: /[\\!\\(\\)\\:\\=\\[\\]\\{\\|\\}]{1}/,\n relevance: 0\n }, {\n scope: \"variable\",\n begin: /\\$/,\n end: /\\W/,\n excludeEnd: true,\n relevance: 0\n }, {\n scope: \"meta\",\n match: /@\\w+/,\n excludeEnd: true\n }, {\n scope: \"symbol\",\n begin: regex.concat(GQL_NAME, regex.lookahead(/\\s*:/)),\n relevance: 0\n }],\n illegal: [/[;<']/, /BEGIN/]\n };\n}\nmodule.exports = graphql;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvZ3JhcGhxbC5qcyJdLCJuYW1lcyI6WyJncmFwaHFsIiwiaGxqcyIsInJlZ2V4IiwiR1FMX05BTUUiLCJuYW1lIiwiYWxpYXNlcyIsImNhc2VfaW5zZW5zaXRpdmUiLCJkaXNhYmxlQXV0b2RldGVjdCIsImtleXdvcmRzIiwia2V5d29yZCIsImxpdGVyYWwiLCJjb250YWlucyIsIkhBU0hfQ09NTUVOVF9NT0RFIiwiUVVPVEVfU1RSSU5HX01PREUiLCJOVU1CRVJfTU9ERSIsInNjb3BlIiwibWF0Y2giLCJyZWxldmFuY2UiLCJiZWdpbiIsImVuZCIsImV4Y2x1ZGVFbmQiLCJjb25jYXQiLCJsb29rYWhlYWQiLCJpbGxlZ2FsIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsU0FBU0EsT0FBTyxDQUFDQyxJQUFJLEVBQUU7RUFDckIsSUFBTUMsS0FBSyxHQUFHRCxJQUFJLENBQUNDLEtBQUs7RUFDeEIsSUFBTUMsUUFBUSxHQUFHLHdCQUF3QjtFQUN6QyxPQUFPO0lBQ0xDLElBQUksRUFBRSxTQUFTO0lBQ2ZDLE9BQU8sRUFBRSxDQUFFLEtBQUssQ0FBRTtJQUNsQkMsZ0JBQWdCLEVBQUUsSUFBSTtJQUN0QkMsaUJBQWlCLEVBQUUsS0FBSztJQUN4QkMsUUFBUSxFQUFFO01BQ1JDLE9BQU8sRUFBRSxDQUNQLE9BQU8sRUFDUCxVQUFVLEVBQ1YsY0FBYyxFQUNkLE1BQU0sRUFDTixPQUFPLEVBQ1AsUUFBUSxFQUNSLFdBQVcsRUFDWCxXQUFXLEVBQ1gsT0FBTyxFQUNQLFFBQVEsRUFDUixVQUFVLEVBQ1YsTUFBTSxFQUNOLElBQUksQ0FDTDtNQUNEQyxPQUFPLEVBQUUsQ0FDUCxNQUFNLEVBQ04sT0FBTyxFQUNQLE1BQU07SUFFVixDQUFDO0lBQ0RDLFFBQVEsRUFBRSxDQUNSVixJQUFJLENBQUNXLGlCQUFpQixFQUN0QlgsSUFBSSxDQUFDWSxpQkFBaUIsRUFDdEJaLElBQUksQ0FBQ2EsV0FBVyxFQUNoQjtNQUNFQyxLQUFLLEVBQUUsYUFBYTtNQUNwQkMsS0FBSyxFQUFFLFFBQVE7TUFDZkMsU0FBUyxFQUFFO0lBQ2IsQ0FBQyxFQUNEO01BQ0VGLEtBQUssRUFBRSxhQUFhO01BQ3BCRyxLQUFLLEVBQUUsMkJBQTJCO01BQ2xDRCxTQUFTLEVBQUU7SUFDYixDQUFDLEVBQ0Q7TUFDRUYsS0FBSyxFQUFFLFVBQVU7TUFDakJHLEtBQUssRUFBRSxJQUFJO01BQ1hDLEdBQUcsRUFBRSxJQUFJO01BQ1RDLFVBQVUsRUFBRSxJQUFJO01BQ2hCSCxTQUFTLEVBQUU7SUFDYixDQUFDLEVBQ0Q7TUFDRUYsS0FBSyxFQUFFLE1BQU07TUFDYkMsS0FBSyxFQUFFLE1BQU07TUFDYkksVUFBVSxFQUFFO0lBQ2QsQ0FBQyxFQUNEO01BQ0VMLEtBQUssRUFBRSxRQUFRO01BQ2ZHLEtBQUssRUFBRWhCLEtBQUssQ0FBQ21CLE1BQU0sQ0FBQ2xCLFFBQVEsRUFBRUQsS0FBSyxDQUFDb0IsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO01BQ3RETCxTQUFTLEVBQUU7SUFDYixDQUFDLENBQ0Y7SUFDRE0sT0FBTyxFQUFFLENBQ1AsT0FBTyxFQUNQLE9BQU87RUFFWCxDQUFDO0FBQ0g7QUFFQUMsTUFBTSxDQUFDQyxPQUFPLEdBQUd6QixPQUFPIiwiZmlsZSI6IjY1LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiBMYW5ndWFnZTogR3JhcGhRTFxuIEF1dGhvcjogSm9obiBGb3N0ZXIgKEdIIGpmOTkwKSwgYW5kIG90aGVyc1xuIERlc2NyaXB0aW9uOiBHcmFwaFFMIGlzIGEgcXVlcnkgbGFuZ3VhZ2UgZm9yIEFQSXNcbiBDYXRlZ29yeTogd2ViLCBjb21tb25cbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBncmFwaHFsKGhsanMpIHtcbiAgY29uc3QgcmVnZXggPSBobGpzLnJlZ2V4O1xuICBjb25zdCBHUUxfTkFNRSA9IC9bX0EtWmEtel1bXzAtOUEtWmEtel0qLztcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiBcIkdyYXBoUUxcIixcbiAgICBhbGlhc2VzOiBbIFwiZ3FsXCIgXSxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGRpc2FibGVBdXRvZGV0ZWN0OiBmYWxzZSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAga2V5d29yZDogW1xuICAgICAgICBcInF1ZXJ5XCIsXG4gICAgICAgIFwibXV0YXRpb25cIixcbiAgICAgICAgXCJzdWJzY3JpcHRpb25cIixcbiAgICAgICAgXCJ0eXBlXCIsXG4gICAgICAgIFwiaW5wdXRcIixcbiAgICAgICAgXCJzY2hlbWFcIixcbiAgICAgICAgXCJkaXJlY3RpdmVcIixcbiAgICAgICAgXCJpbnRlcmZhY2VcIixcbiAgICAgICAgXCJ1bmlvblwiLFxuICAgICAgICBcInNjYWxhclwiLFxuICAgICAgICBcImZyYWdtZW50XCIsXG4gICAgICAgIFwiZW51bVwiLFxuICAgICAgICBcIm9uXCJcbiAgICAgIF0sXG4gICAgICBsaXRlcmFsOiBbXG4gICAgICAgIFwidHJ1ZVwiLFxuICAgICAgICBcImZhbHNlXCIsXG4gICAgICAgIFwibnVsbFwiXG4gICAgICBdXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBobGpzLk5VTUJFUl9NT0RFLFxuICAgICAge1xuICAgICAgICBzY29wZTogXCJwdW5jdHVhdGlvblwiLFxuICAgICAgICBtYXRjaDogL1suXXszfS8sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgc2NvcGU6IFwicHVuY3R1YXRpb25cIixcbiAgICAgICAgYmVnaW46IC9bXFwhXFwoXFwpXFw6XFw9XFxbXFxdXFx7XFx8XFx9XXsxfS8sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgc2NvcGU6IFwidmFyaWFibGVcIixcbiAgICAgICAgYmVnaW46IC9cXCQvLFxuICAgICAgICBlbmQ6IC9cXFcvLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHNjb3BlOiBcIm1ldGFcIixcbiAgICAgICAgbWF0Y2g6IC9AXFx3Ky8sXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWVcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHNjb3BlOiBcInN5bWJvbFwiLFxuICAgICAgICBiZWdpbjogcmVnZXguY29uY2F0KEdRTF9OQU1FLCByZWdleC5sb29rYWhlYWQoL1xccyo6LykpLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH1cbiAgICBdLFxuICAgIGlsbGVnYWw6IFtcbiAgICAgIC9bOzwnXS8sXG4gICAgICAvQkVHSU4vXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGdyYXBocWw7XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///65\n");
  1674. /***/ }),
  1675. /* 66 */
  1676. /*!******************************************************************************************************!*\
  1677. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/highlight.js/lib/languages/ini.js ***!
  1678. \******************************************************************************************************/
  1679. /*! no static exports found */
  1680. /***/ (function(module, exports) {
  1681. eval("/*\nLanguage: TOML, also INI\nDescription: TOML aims to be a minimal configuration file format that's easy to read due to obvious semantics.\nContributors: Guillaume Gomez <guillaume1.gomez@gmail.com>\nCategory: common, config\nWebsite: https://github.com/toml-lang/toml\n*/\n\nfunction ini(hljs) {\n var regex = hljs.regex;\n var NUMBERS = {\n className: 'number',\n relevance: 0,\n variants: [{\n begin: /([+-]+)?[\\d]+_[\\d_]+/\n }, {\n begin: hljs.NUMBER_RE\n }]\n };\n var COMMENTS = hljs.COMMENT();\n COMMENTS.variants = [{\n begin: /;/,\n end: /$/\n }, {\n begin: /#/,\n end: /$/\n }];\n var VARIABLES = {\n className: 'variable',\n variants: [{\n begin: /\\$[\\w\\d\"][\\w\\d_]*/\n }, {\n begin: /\\$\\{(.*?)\\}/\n }]\n };\n var LITERALS = {\n className: 'literal',\n begin: /\\bon|off|true|false|yes|no\\b/\n };\n var STRINGS = {\n className: \"string\",\n contains: [hljs.BACKSLASH_ESCAPE],\n variants: [{\n begin: \"'''\",\n end: \"'''\",\n relevance: 10\n }, {\n begin: '\"\"\"',\n end: '\"\"\"',\n relevance: 10\n }, {\n begin: '\"',\n end: '\"'\n }, {\n begin: \"'\",\n end: \"'\"\n }]\n };\n var ARRAY = {\n begin: /\\[/,\n end: /\\]/,\n contains: [COMMENTS, LITERALS, VARIABLES, STRINGS, NUMBERS, 'self'],\n relevance: 0\n };\n var BARE_KEY = /[A-Za-z0-9_-]+/;\n var QUOTED_KEY_DOUBLE_QUOTE = /\"(\\\\\"|[^\"])*\"/;\n var QUOTED_KEY_SINGLE_QUOTE = /'[^']*'/;\n var ANY_KEY = regex.either(BARE_KEY, QUOTED_KEY_DOUBLE_QUOTE, QUOTED_KEY_SINGLE_QUOTE);\n var DOTTED_KEY = regex.concat(ANY_KEY, '(\\\\s*\\\\.\\\\s*', ANY_KEY, ')*', regex.lookahead(/\\s*=\\s*[^#\\s]/));\n return {\n name: 'TOML, also INI',\n aliases: ['toml'],\n case_insensitive: true,\n illegal: /\\S/,\n contains: [COMMENTS, {\n className: 'section',\n begin: /\\[+/,\n end: /\\]+/\n }, {\n begin: DOTTED_KEY,\n className: 'attr',\n starts: {\n end: /$/,\n contains: [COMMENTS, ARRAY, LITERALS, VARIABLES, STRINGS, NUMBERS]\n }\n }]\n };\n}\nmodule.exports = ini;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvaW5pLmpzIl0sIm5hbWVzIjpbImluaSIsImhsanMiLCJyZWdleCIsIk5VTUJFUlMiLCJjbGFzc05hbWUiLCJyZWxldmFuY2UiLCJ2YXJpYW50cyIsImJlZ2luIiwiTlVNQkVSX1JFIiwiQ09NTUVOVFMiLCJDT01NRU5UIiwiZW5kIiwiVkFSSUFCTEVTIiwiTElURVJBTFMiLCJTVFJJTkdTIiwiY29udGFpbnMiLCJCQUNLU0xBU0hfRVNDQVBFIiwiQVJSQVkiLCJCQVJFX0tFWSIsIlFVT1RFRF9LRVlfRE9VQkxFX1FVT1RFIiwiUVVPVEVEX0tFWV9TSU5HTEVfUVVPVEUiLCJBTllfS0VZIiwiZWl0aGVyIiwiRE9UVEVEX0tFWSIsImNvbmNhdCIsImxvb2thaGVhZCIsIm5hbWUiLCJhbGlhc2VzIiwiY2FzZV9pbnNlbnNpdGl2ZSIsImlsbGVnYWwiLCJzdGFydHMiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxTQUFTQSxHQUFHLENBQUNDLElBQUksRUFBRTtFQUNqQixJQUFNQyxLQUFLLEdBQUdELElBQUksQ0FBQ0MsS0FBSztFQUN4QixJQUFNQyxPQUFPLEdBQUc7SUFDZEMsU0FBUyxFQUFFLFFBQVE7SUFDbkJDLFNBQVMsRUFBRSxDQUFDO0lBQ1pDLFFBQVEsRUFBRSxDQUNSO01BQUVDLEtBQUssRUFBRTtJQUF1QixDQUFDLEVBQ2pDO01BQUVBLEtBQUssRUFBRU4sSUFBSSxDQUFDTztJQUFVLENBQUM7RUFFN0IsQ0FBQztFQUNELElBQU1DLFFBQVEsR0FBR1IsSUFBSSxDQUFDUyxPQUFPLEVBQUU7RUFDL0JELFFBQVEsQ0FBQ0gsUUFBUSxHQUFHLENBQ2xCO0lBQ0VDLEtBQUssRUFBRSxHQUFHO0lBQ1ZJLEdBQUcsRUFBRTtFQUNQLENBQUMsRUFDRDtJQUNFSixLQUFLLEVBQUUsR0FBRztJQUNWSSxHQUFHLEVBQUU7RUFDUCxDQUFDLENBQ0Y7RUFDRCxJQUFNQyxTQUFTLEdBQUc7SUFDaEJSLFNBQVMsRUFBRSxVQUFVO0lBQ3JCRSxRQUFRLEVBQUUsQ0FDUjtNQUFFQyxLQUFLLEVBQUU7SUFBb0IsQ0FBQyxFQUM5QjtNQUFFQSxLQUFLLEVBQUU7SUFBYyxDQUFDO0VBRTVCLENBQUM7RUFDRCxJQUFNTSxRQUFRLEdBQUc7SUFDZlQsU0FBUyxFQUFFLFNBQVM7SUFDcEJHLEtBQUssRUFBRTtFQUNULENBQUM7RUFDRCxJQUFNTyxPQUFPLEdBQUc7SUFDZFYsU0FBUyxFQUFFLFFBQVE7SUFDbkJXLFFBQVEsRUFBRSxDQUFFZCxJQUFJLENBQUNlLGdCQUFnQixDQUFFO0lBQ25DVixRQUFRLEVBQUUsQ0FDUjtNQUNFQyxLQUFLLEVBQUUsS0FBSztNQUNaSSxHQUFHLEVBQUUsS0FBSztNQUNWTixTQUFTLEVBQUU7SUFDYixDQUFDLEVBQ0Q7TUFDRUUsS0FBSyxFQUFFLEtBQUs7TUFDWkksR0FBRyxFQUFFLEtBQUs7TUFDVk4sU0FBUyxFQUFFO0lBQ2IsQ0FBQyxFQUNEO01BQ0VFLEtBQUssRUFBRSxHQUFHO01BQ1ZJLEdBQUcsRUFBRTtJQUNQLENBQUMsRUFDRDtNQUNFSixLQUFLLEVBQUUsR0FBRztNQUNWSSxHQUFHLEVBQUU7SUFDUCxDQUFDO0VBRUwsQ0FBQztFQUNELElBQU1NLEtBQUssR0FBRztJQUNaVixLQUFLLEVBQUUsSUFBSTtJQUNYSSxHQUFHLEVBQUUsSUFBSTtJQUNUSSxRQUFRLEVBQUUsQ0FDUk4sUUFBUSxFQUNSSSxRQUFRLEVBQ1JELFNBQVMsRUFDVEUsT0FBTyxFQUNQWCxPQUFPLEVBQ1AsTUFBTSxDQUNQO0lBQ0RFLFNBQVMsRUFBRTtFQUNiLENBQUM7RUFFRCxJQUFNYSxRQUFRLEdBQUcsZ0JBQWdCO0VBQ2pDLElBQU1DLHVCQUF1QixHQUFHLGVBQWU7RUFDL0MsSUFBTUMsdUJBQXVCLEdBQUcsU0FBUztFQUN6QyxJQUFNQyxPQUFPLEdBQUduQixLQUFLLENBQUNvQixNQUFNLENBQzFCSixRQUFRLEVBQUVDLHVCQUF1QixFQUFFQyx1QkFBdUIsQ0FDM0Q7RUFDRCxJQUFNRyxVQUFVLEdBQUdyQixLQUFLLENBQUNzQixNQUFNLENBQzdCSCxPQUFPLEVBQUUsY0FBYyxFQUFFQSxPQUFPLEVBQUUsSUFBSSxFQUN0Q25CLEtBQUssQ0FBQ3VCLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FDakM7RUFFRCxPQUFPO0lBQ0xDLElBQUksRUFBRSxnQkFBZ0I7SUFDdEJDLE9BQU8sRUFBRSxDQUFFLE1BQU0sQ0FBRTtJQUNuQkMsZ0JBQWdCLEVBQUUsSUFBSTtJQUN0QkMsT0FBTyxFQUFFLElBQUk7SUFDYmQsUUFBUSxFQUFFLENBQ1JOLFFBQVEsRUFDUjtNQUNFTCxTQUFTLEVBQUUsU0FBUztNQUNwQkcsS0FBSyxFQUFFLEtBQUs7TUFDWkksR0FBRyxFQUFFO0lBQ1AsQ0FBQyxFQUNEO01BQ0VKLEtBQUssRUFBRWdCLFVBQVU7TUFDakJuQixTQUFTLEVBQUUsTUFBTTtNQUNqQjBCLE1BQU0sRUFBRTtRQUNObkIsR0FBRyxFQUFFLEdBQUc7UUFDUkksUUFBUSxFQUFFLENBQ1JOLFFBQVEsRUFDUlEsS0FBSyxFQUNMSixRQUFRLEVBQ1JELFNBQVMsRUFDVEUsT0FBTyxFQUNQWCxPQUFPO01BRVg7SUFDRixDQUFDO0VBRUwsQ0FBQztBQUNIO0FBRUE0QixNQUFNLENBQUNDLE9BQU8sR0FBR2hDLEdBQUciLCJmaWxlIjoiNjYuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuTGFuZ3VhZ2U6IFRPTUwsIGFsc28gSU5JXG5EZXNjcmlwdGlvbjogVE9NTCBhaW1zIHRvIGJlIGEgbWluaW1hbCBjb25maWd1cmF0aW9uIGZpbGUgZm9ybWF0IHRoYXQncyBlYXN5IHRvIHJlYWQgZHVlIHRvIG9idmlvdXMgc2VtYW50aWNzLlxuQ29udHJpYnV0b3JzOiBHdWlsbGF1bWUgR29tZXogPGd1aWxsYXVtZTEuZ29tZXpAZ21haWwuY29tPlxuQ2F0ZWdvcnk6IGNvbW1vbiwgY29uZmlnXG5XZWJzaXRlOiBodHRwczovL2dpdGh1Yi5jb20vdG9tbC1sYW5nL3RvbWxcbiovXG5cbmZ1bmN0aW9uIGluaShobGpzKSB7XG4gIGNvbnN0IHJlZ2V4ID0gaGxqcy5yZWdleDtcbiAgY29uc3QgTlVNQkVSUyA9IHtcbiAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICB2YXJpYW50czogW1xuICAgICAgeyBiZWdpbjogLyhbKy1dKyk/W1xcZF0rX1tcXGRfXSsvIH0sXG4gICAgICB7IGJlZ2luOiBobGpzLk5VTUJFUl9SRSB9XG4gICAgXVxuICB9O1xuICBjb25zdCBDT01NRU5UUyA9IGhsanMuQ09NTUVOVCgpO1xuICBDT01NRU5UUy52YXJpYW50cyA9IFtcbiAgICB7XG4gICAgICBiZWdpbjogLzsvLFxuICAgICAgZW5kOiAvJC9cbiAgICB9LFxuICAgIHtcbiAgICAgIGJlZ2luOiAvIy8sXG4gICAgICBlbmQ6IC8kL1xuICAgIH1cbiAgXTtcbiAgY29uc3QgVkFSSUFCTEVTID0ge1xuICAgIGNsYXNzTmFtZTogJ3ZhcmlhYmxlJyxcbiAgICB2YXJpYW50czogW1xuICAgICAgeyBiZWdpbjogL1xcJFtcXHdcXGRcIl1bXFx3XFxkX10qLyB9LFxuICAgICAgeyBiZWdpbjogL1xcJFxceyguKj8pXFx9LyB9XG4gICAgXVxuICB9O1xuICBjb25zdCBMSVRFUkFMUyA9IHtcbiAgICBjbGFzc05hbWU6ICdsaXRlcmFsJyxcbiAgICBiZWdpbjogL1xcYm9ufG9mZnx0cnVlfGZhbHNlfHllc3xub1xcYi9cbiAgfTtcbiAgY29uc3QgU1RSSU5HUyA9IHtcbiAgICBjbGFzc05hbWU6IFwic3RyaW5nXCIsXG4gICAgY29udGFpbnM6IFsgaGxqcy5CQUNLU0xBU0hfRVNDQVBFIF0sXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IFwiJycnXCIsXG4gICAgICAgIGVuZDogXCInJydcIixcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcIlwiXCInLFxuICAgICAgICBlbmQ6ICdcIlwiXCInLFxuICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJ1wiJyxcbiAgICAgICAgZW5kOiAnXCInXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogXCInXCIsXG4gICAgICAgIGVuZDogXCInXCJcbiAgICAgIH1cbiAgICBdXG4gIH07XG4gIGNvbnN0IEFSUkFZID0ge1xuICAgIGJlZ2luOiAvXFxbLyxcbiAgICBlbmQ6IC9cXF0vLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBDT01NRU5UUyxcbiAgICAgIExJVEVSQUxTLFxuICAgICAgVkFSSUFCTEVTLFxuICAgICAgU1RSSU5HUyxcbiAgICAgIE5VTUJFUlMsXG4gICAgICAnc2VsZidcbiAgICBdLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIGNvbnN0IEJBUkVfS0VZID0gL1tBLVphLXowLTlfLV0rLztcbiAgY29uc3QgUVVPVEVEX0tFWV9ET1VCTEVfUVVPVEUgPSAvXCIoXFxcXFwifFteXCJdKSpcIi87XG4gIGNvbnN0IFFVT1RFRF9LRVlfU0lOR0xFX1FVT1RFID0gLydbXiddKicvO1xuICBjb25zdCBBTllfS0VZID0gcmVnZXguZWl0aGVyKFxuICAgIEJBUkVfS0VZLCBRVU9URURfS0VZX0RPVUJMRV9RVU9URSwgUVVPVEVEX0tFWV9TSU5HTEVfUVVPVEVcbiAgKTtcbiAgY29uc3QgRE9UVEVEX0tFWSA9IHJlZ2V4LmNvbmNhdChcbiAgICBBTllfS0VZLCAnKFxcXFxzKlxcXFwuXFxcXHMqJywgQU5ZX0tFWSwgJykqJyxcbiAgICByZWdleC5sb29rYWhlYWQoL1xccyo9XFxzKlteI1xcc10vKVxuICApO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1RPTUwsIGFsc28gSU5JJyxcbiAgICBhbGlhc2VzOiBbICd0b21sJyBdLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAgaWxsZWdhbDogL1xcUy8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIENPTU1FTlRTLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzZWN0aW9uJyxcbiAgICAgICAgYmVnaW46IC9cXFsrLyxcbiAgICAgICAgZW5kOiAvXFxdKy9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiBET1RURURfS0VZLFxuICAgICAgICBjbGFzc05hbWU6ICdhdHRyJyxcbiAgICAgICAgc3RhcnRzOiB7XG4gICAgICAgICAgZW5kOiAvJC8sXG4gICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgIENPTU1FTlRTLFxuICAgICAgICAgICAgQVJSQVksXG4gICAgICAgICAgICBMSVRFUkFMUyxcbiAgICAgICAgICAgIFZBUklBQkxFUyxcbiAgICAgICAgICAgIFNUUklOR1MsXG4gICAgICAgICAgICBOVU1CRVJTXG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGluaTtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///66\n");
  1682. /***/ }),
  1683. /* 67 */
  1684. /*!*******************************************************************************************************!*\
  1685. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/highlight.js/lib/languages/java.js ***!
  1686. \*******************************************************************************************************/
  1687. /*! no static exports found */
  1688. /***/ (function(module, exports) {
  1689. eval("// https://docs.oracle.com/javase/specs/jls/se15/html/jls-3.html#jls-3.10\nvar decimalDigits = '[0-9](_*[0-9])*';\nvar frac = \"\\\\.(\".concat(decimalDigits, \")\");\nvar hexDigits = '[0-9a-fA-F](_*[0-9a-fA-F])*';\nvar NUMERIC = {\n className: 'number',\n variants: [\n // DecimalFloatingPointLiteral\n // including ExponentPart\n {\n begin: \"(\\\\b(\".concat(decimalDigits, \")((\").concat(frac, \")|\\\\.)?|(\").concat(frac, \"))\") + \"[eE][+-]?(\".concat(decimalDigits, \")[fFdD]?\\\\b\")\n },\n // excluding ExponentPart\n {\n begin: \"\\\\b(\".concat(decimalDigits, \")((\").concat(frac, \")[fFdD]?\\\\b|\\\\.([fFdD]\\\\b)?)\")\n }, {\n begin: \"(\".concat(frac, \")[fFdD]?\\\\b\")\n }, {\n begin: \"\\\\b(\".concat(decimalDigits, \")[fFdD]\\\\b\")\n },\n // HexadecimalFloatingPointLiteral\n {\n begin: \"\\\\b0[xX]((\".concat(hexDigits, \")\\\\.?|(\").concat(hexDigits, \")?\\\\.(\").concat(hexDigits, \"))\") + \"[pP][+-]?(\".concat(decimalDigits, \")[fFdD]?\\\\b\")\n },\n // DecimalIntegerLiteral\n {\n begin: '\\\\b(0|[1-9](_*[0-9])*)[lL]?\\\\b'\n },\n // HexIntegerLiteral\n {\n begin: \"\\\\b0[xX](\".concat(hexDigits, \")[lL]?\\\\b\")\n },\n // OctalIntegerLiteral\n {\n begin: '\\\\b0(_*[0-7])*[lL]?\\\\b'\n },\n // BinaryIntegerLiteral\n {\n begin: '\\\\b0[bB][01](_*[01])*[lL]?\\\\b'\n }],\n relevance: 0\n};\n\n/*\nLanguage: Java\nAuthor: Vsevolod Solovyov <vsevolod.solovyov@gmail.com>\nCategory: common, enterprise\nWebsite: https://www.java.com/\n*/\n\n/**\n * Allows recursive regex expressions to a given depth\n *\n * ie: recurRegex(\"(abc~~~)\", /~~~/g, 2) becomes:\n * (abc(abc(abc)))\n *\n * @param {string} re\n * @param {RegExp} substitution (should be a g mode regex)\n * @param {number} depth\n * @returns {string}``\n */\nfunction recurRegex(re, substitution, depth) {\n if (depth === -1) return \"\";\n return re.replace(substitution, function (_) {\n return recurRegex(re, substitution, depth - 1);\n });\n}\n\n/** @type LanguageFn */\nfunction java(hljs) {\n var regex = hljs.regex;\n var JAVA_IDENT_RE = \"[\\xC0-\\u02B8a-zA-Z_$][\\xC0-\\u02B8a-zA-Z_$0-9]*\";\n var GENERIC_IDENT_RE = JAVA_IDENT_RE + recurRegex('(?:<' + JAVA_IDENT_RE + '~~~(?:\\\\s*,\\\\s*' + JAVA_IDENT_RE + '~~~)*>)?', /~~~/g, 2);\n var MAIN_KEYWORDS = ['synchronized', 'abstract', 'private', 'var', 'static', 'if', 'const ', 'for', 'while', 'strictfp', 'finally', 'protected', 'import', 'native', 'final', 'void', 'enum', 'else', 'break', 'transient', 'catch', 'instanceof', 'volatile', 'case', 'assert', 'package', 'default', 'public', 'try', 'switch', 'continue', 'throws', 'protected', 'public', 'private', 'module', 'requires', 'exports', 'do', 'sealed', 'yield', 'permits'];\n var BUILT_INS = ['super', 'this'];\n var LITERALS = ['false', 'true', 'null'];\n var TYPES = ['char', 'boolean', 'long', 'float', 'int', 'byte', 'short', 'double'];\n var KEYWORDS = {\n keyword: MAIN_KEYWORDS,\n literal: LITERALS,\n type: TYPES,\n built_in: BUILT_INS\n };\n var ANNOTATION = {\n className: 'meta',\n begin: '@' + JAVA_IDENT_RE,\n contains: [{\n begin: /\\(/,\n end: /\\)/,\n contains: [\"self\"] // allow nested () inside our annotation\n }]\n };\n\n var PARAMS = {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS,\n relevance: 0,\n contains: [hljs.C_BLOCK_COMMENT_MODE],\n endsParent: true\n };\n return {\n name: 'Java',\n aliases: ['jsp'],\n keywords: KEYWORDS,\n illegal: /<\\/|#/,\n contains: [hljs.COMMENT('/\\\\*\\\\*', '\\\\*/', {\n relevance: 0,\n contains: [{\n // eat up @'s in emails to prevent them to be recognized as doctags\n begin: /\\w+@/,\n relevance: 0\n }, {\n className: 'doctag',\n begin: '@[A-Za-z]+'\n }]\n }),\n // relevance boost\n {\n begin: /import java\\.[a-z]+\\./,\n keywords: \"import\",\n relevance: 2\n }, hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE, {\n begin: /\"\"\"/,\n end: /\"\"\"/,\n className: \"string\",\n contains: [hljs.BACKSLASH_ESCAPE]\n }, hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE, {\n match: [/\\b(?:class|interface|enum|extends|implements|new)/, /\\s+/, JAVA_IDENT_RE],\n className: {\n 1: \"keyword\",\n 3: \"title.class\"\n }\n }, {\n // Exceptions for hyphenated keywords\n match: /non-sealed/,\n scope: \"keyword\"\n }, {\n begin: [regex.concat(/(?!else)/, JAVA_IDENT_RE), /\\s+/, JAVA_IDENT_RE, /\\s+/, /=(?!=)/],\n className: {\n 1: \"type\",\n 3: \"variable\",\n 5: \"operator\"\n }\n }, {\n begin: [/record/, /\\s+/, JAVA_IDENT_RE],\n className: {\n 1: \"keyword\",\n 3: \"title.class\"\n },\n contains: [PARAMS, hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE]\n }, {\n // Expression keywords prevent 'keyword Name(...)' from being\n // recognized as a function definition\n beginKeywords: 'new throw return else',\n relevance: 0\n }, {\n begin: ['(?:' + GENERIC_IDENT_RE + '\\\\s+)', hljs.UNDERSCORE_IDENT_RE, /\\s*(?=\\()/],\n className: {\n 2: \"title.function\"\n },\n keywords: KEYWORDS,\n contains: [{\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS,\n relevance: 0,\n contains: [ANNOTATION, hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE, NUMERIC, hljs.C_BLOCK_COMMENT_MODE]\n }, hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE]\n }, NUMERIC, ANNOTATION]\n };\n}\nmodule.exports = java;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvamF2YS5qcyJdLCJuYW1lcyI6WyJkZWNpbWFsRGlnaXRzIiwiZnJhYyIsImhleERpZ2l0cyIsIk5VTUVSSUMiLCJjbGFzc05hbWUiLCJ2YXJpYW50cyIsImJlZ2luIiwicmVsZXZhbmNlIiwicmVjdXJSZWdleCIsInJlIiwic3Vic3RpdHV0aW9uIiwiZGVwdGgiLCJyZXBsYWNlIiwiXyIsImphdmEiLCJobGpzIiwicmVnZXgiLCJKQVZBX0lERU5UX1JFIiwiR0VORVJJQ19JREVOVF9SRSIsIk1BSU5fS0VZV09SRFMiLCJCVUlMVF9JTlMiLCJMSVRFUkFMUyIsIlRZUEVTIiwiS0VZV09SRFMiLCJrZXl3b3JkIiwibGl0ZXJhbCIsInR5cGUiLCJidWlsdF9pbiIsIkFOTk9UQVRJT04iLCJjb250YWlucyIsImVuZCIsIlBBUkFNUyIsImtleXdvcmRzIiwiQ19CTE9DS19DT01NRU5UX01PREUiLCJlbmRzUGFyZW50IiwibmFtZSIsImFsaWFzZXMiLCJpbGxlZ2FsIiwiQ09NTUVOVCIsIkNfTElORV9DT01NRU5UX01PREUiLCJCQUNLU0xBU0hfRVNDQVBFIiwiQVBPU19TVFJJTkdfTU9ERSIsIlFVT1RFX1NUUklOR19NT0RFIiwibWF0Y2giLCJzY29wZSIsImNvbmNhdCIsImJlZ2luS2V5d29yZHMiLCJVTkRFUlNDT1JFX0lERU5UX1JFIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQSxJQUFJQSxhQUFhLEdBQUcsaUJBQWlCO0FBQ3JDLElBQUlDLElBQUksaUJBQVVELGFBQWEsTUFBRztBQUNsQyxJQUFJRSxTQUFTLEdBQUcsNkJBQTZCO0FBQzdDLElBQUlDLE9BQU8sR0FBRztFQUNaQyxTQUFTLEVBQUUsUUFBUTtFQUNuQkMsUUFBUSxFQUFFO0VBQ1I7RUFDQTtFQUNBO0lBQUVDLEtBQUssRUFBRSxlQUFRTixhQUFhLGdCQUFNQyxJQUFJLHNCQUFZQSxJ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LFNBQVMsRUFBRTtRQUFFLENBQUMsRUFBRTtNQUFpQixDQUFDO01BQ2xDNEIsUUFBUSxFQUFFVCxRQUFRO01BQ2xCTSxRQUFRLEVBQUUsQ0FDUjtRQUNFekIsU0FBUyxFQUFFLFFBQVE7UUFDbkJFLEtBQUssRUFBRSxJQUFJO1FBQ1h3QixHQUFHLEVBQUUsSUFBSTtRQUNURSxRQUFRLEVBQUVULFFBQVE7UUFDbEJoQixTQUFTLEVBQUUsQ0FBQztRQUNac0IsUUFBUSxFQUFFLENBQ1JELFVBQVUsRUFDVmIsSUFBSSxDQUFDMEIsZ0JBQWdCLEVBQ3JCMUIsSUFBSSxDQUFDMkIsaUJBQWlCLEVBQ3RCdkMsT0FBTyxFQUNQWSxJQUFJLENBQUNrQixvQkFBb0I7TUFFN0IsQ0FBQyxFQUNEbEIsSUFBSSxDQUFDd0IsbUJBQW1CLEVBQ3hCeEIsSUFBSSxDQUFDa0Isb0JBQW9CO0lBRTdCLENBQUMsRUFDRDlCLE9BQU8sRUFDUHlCLFVBQVU7RUFFZCxDQUFDO0FBQ0g7QUFFQW9CLE1BQU0sQ0FBQ0MsT0FBTyxHQUFHbkMsSUFBSSIsImZpbGUiOiI2Ny5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZG9jcy5vcmFjbGUuY29tL2phdmFzZS9zcGVjcy9qbHMvc2UxNS9odG1sL2pscy0zLmh0bWwjamxzLTMuMTBcbnZhciBkZWNpbWFsRGlnaXRzID0gJ1swLTldKF8qWzAtOV0pKic7XG52YXIgZnJhYyA9IGBcXFxcLigke2RlY2ltYWxEaWdpdHN9KWA7XG52YXIgaGV4RGlnaXRzID0gJ1swLTlhLWZBLUZdKF8qWzAtOWEtZkEtRl0pKic7XG52YXIgTlVNRVJJQyA9IHtcbiAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgdmFyaWFudHM6IFtcbiAgICAvLyBEZWNpbWFsRmxvYXRpbmdQb2ludExpdGVyYWxcbiAgICAvLyBpbmNsdWRpbmcgRXhwb25lbnRQYXJ0XG4gICAgeyBiZWdpbjogYChcXFxcYigke2RlY2ltYWxEaWdpdHN9KSgoJHtmcmFjfSl8XFxcXC4pP3woJHtmcmFjfSkpYCArXG4gICAgICBgW2VFXVsrLV0/KCR7ZGVjaW1hbERpZ2l0c30pW2ZGZERdP1xcXFxiYCB9LFxuICAgIC8vIGV4Y2x1ZGluZyBFeHBvbmVudFBhcnRcbiAgICB7IGJlZ2luOiBgXFxcXGIoJHtkZWNpbWFsRGlnaXRzfSkoKCR7ZnJhY30pW2ZGZERdP1xcXFxifFxcXFwuKFtmRmREXVxcXFxiKT8pYCB9LFxuICAgIHsgYmVnaW46IGAoJHtmcmFjfSlbZkZkRF0/XFxcXGJgIH0sXG4gICAgeyBiZWdpbjogYFxcXFxiKCR7ZGVjaW1hbERpZ2l0c30pW2ZGZERdXFxcXGJgIH0sXG5cbiAgICAvLyBIZXhhZGVjaW1hbEZsb2F0aW5nUG9pbnRMaXRlcmFsXG4gICAgeyBiZWdpbjogYFxcXFxiMFt4WF0oKCR7aGV4RGlnaXRzfSlcXFxcLj98KCR7aGV4RGlnaXRzfSk/XFxcXC4oJHtoZXhEaWdpdHN9KSlgICtcbiAgICAgIGBbcFBdWystXT8oJHtkZWNpbWFsRGlnaXRzfSlbZkZkRF0/XFxcXGJgIH0sXG5cbiAgICAvLyBEZWNpbWFsSW50ZWdlckxpdGVyYWxcbiAgICB7IGJlZ2luOiAnXFxcXGIoMHxbMS05XShfKlswLTldKSopW2xMXT9cXFxcYicgfSxcblxuICAgIC8vIEhleEludGVnZXJMaXRlcmFsXG4gICAgeyBiZWdpbjogYFxcXFxiMFt4WF0oJHtoZXhEaWdpdHN9KVtsTF0/XFxcXGJgIH0sXG5cbiAgICAvLyBPY3RhbEludGVnZXJMaXRlcmFsXG4gICAgeyBiZWdpbjogJ1xcXFxiMChfKlswLTddKSpbbExdP1xcXFxiJyB9LFxuXG4gICAgLy8gQmluYXJ5SW50ZWdlckxpdGVyYWxcbiAgICB7IGJlZ2luOiAnXFxcXGIwW2JCXVswMV0oXypbMDFdKSpbbExdP1xcXFxiJyB9LFxuICBdLFxuICByZWxldmFuY2U6IDBcbn07XG5cbi8qXG5MYW5ndWFnZTogSmF2YVxuQXV0aG9yOiBWc2V2b2xvZCBTb2xvdnlvdiA8dnNldm9sb2Quc29sb3Z5b3ZAZ21haWwuY29tPlxuQ2F0ZWdvcnk6IGNvbW1vbiwgZW50ZXJwcmlzZVxuV2Vic2l0ZTogaHR0cHM6Ly93d3cuamF2YS5jb20vXG4qL1xuXG4vKipcbiAqIEFsbG93cyByZWN1cnNpdmUgcmVnZXggZXhwcmVzc2lvbnMgdG8gYSBnaXZlbiBkZXB0aFxuICpcbiAqIGllOiByZWN1clJlZ2V4KFwiKGFiY35+filcIiwgL35+fi9nLCAyKSBiZWNvbWVzOlxuICogKGFiYyhhYmMoYWJjKSkpXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHJlXG4gKiBAcGFyYW0ge1JlZ0V4cH0gc3Vic3RpdHV0aW9uIChzaG91bGQgYmUgYSBnIG1vZGUgcmVnZXgpXG4gKiBAcGFyYW0ge251bWJlcn0gZGVwdGhcbiAqIEByZXR1cm5zIHtzdHJpbmd9YGBcbiAqL1xuZnVuY3Rpb24gcmVjdXJSZWdleChyZSwgc3Vic3RpdHV0aW9uLCBkZXB0aCkge1xuICBpZiAoZGVwdGggPT09IC0xKSByZXR1cm4gXCJcIjtcblxuICByZXR1cm4gcmUucmVwbGFjZShzdWJzdGl0dXRpb24sIF8gPT4ge1xuICAgIHJldHVybiByZWN1clJlZ2V4KHJlLCBzdWJzdGl0dXRpb24sIGRlcHRoIC0gMSk7XG4gIH0pO1xufVxuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gamF2YShobGpzKSB7XG4gIGNvbnN0IHJlZ2V4ID0gaGxqcy5yZWdleDtcbiAgY29uc3QgSkFWQV9JREVOVF9SRSA9ICdbXFx1MDBDMC1cXHUwMkI4YS16QS1aXyRdW1xcdTAwQzAtXFx1MDJCOGEtekEtWl8kMC05XSonO1xuICBjb25zdCBHRU5FUklDX0lERU5UX1JFID0gSkFWQV9JREVOVF9SRVxuICAgICsgcmVjdXJSZWdleCgnKD86PCcgKyBKQVZBX0lERU5UX1JFICsgJ35+fig/OlxcXFxzKixcXFxccyonICsgSkFWQV9JREVOVF9SRSArICd+fn4pKj4pPycsIC9+fn4vZywgMik7XG4gIGNvbnN0IE1BSU5fS0VZV09SRFMgPSBbXG4gICAgJ3N5bmNocm9uaXplZCcsXG4gICAgJ2Fic3RyYWN0JyxcbiAgICAncHJpdmF0ZScsXG4gICAgJ3ZhcicsXG4gICAgJ3N0YXRpYycsXG4gICAgJ2lmJyxcbiAgICAnY29uc3QgJyxcbiAgICAnZm9yJyxcbiAgICAnd2hpbGUnLFxuICAgICdzdHJpY3RmcCcsXG4gICAgJ2ZpbmFsbHknLFxuICAgICdwcm90ZWN0ZWQnLFxuICAgICdpbXBvcnQnLFxuICAgICduYXRpdmUnLFxuICAgICdmaW5hbCcsXG4gICAgJ3ZvaWQnLFxuICAgICdlbnVtJyxcbiAgICAnZWxzZScsXG4gICAgJ2JyZWFrJyxcbiAgICAndHJhbnNpZW50JyxcbiAgICAnY2F0Y2gnLFxuICAgICdpbnN0YW5jZW9mJyxcbiAgICAndm9sYXRpbGUnLFxuICAgICdjYXNlJyxcbiAgICAnYXNzZXJ0JyxcbiAgICAncGFja2FnZScsXG4gICAgJ2RlZmF1bHQnLFxuICAgICdwdWJsaWMnLFxuICAgICd0cnknLFxuICAgICdzd2l0Y2gnLFxuICAgICdjb250aW51ZScsXG4gICAgJ3Rocm93cycsXG4gICAgJ3Byb3RlY3RlZCcsXG4gICAgJ3B1YmxpYycsXG4gICAgJ3ByaXZhdGUnLFxuICAgICdtb2R1bGUnLFxuICAgICdyZXF1aXJlcycsXG4gICAgJ2V4cG9ydHMnLFxuICAgICdkbycsXG4gICAgJ3NlYWxlZCcsXG4gICAgJ3lpZWxkJyxcbiAgICAncGVybWl0cydcbiAgXTtcblxuICBjb25zdCBCVUlMVF9JTlMgPSBbXG4gICAgJ3N1cGVyJyxcbiAgICAndGhpcydcbiAgXTtcblxuICBjb25zdCBMSVRFUkFMUyA9IFtcbiAgICAnZmFsc2UnLFxuICAgICd0cnVlJyxcbiAgICAnbnVsbCdcbiAgXTtcblxuICBjb25zdCBUWVBFUyA9IFtcbiAgICAnY2hhcicsXG4gICAgJ2Jvb2xlYW4nLFxuICAgICdsb25nJyxcbiAgICAnZmxvYXQnLFxuICAgICdpbnQnLFxuICAgICdieXRlJyxcbiAgICAnc2hvcnQnLFxuICAgICdkb3VibGUnXG4gIF07XG5cbiAgY29uc3QgS0VZV09SRFMgPSB7XG4gICAga2V5d29yZDogTUFJTl9LRVlXT1JEUyxcbiAgICBsaXRlcmFsOiBMSVRFUkFMUyxcbiAgICB0eXBlOiBUWVBFUyxcbiAgICBidWlsdF9pbjogQlVJTFRfSU5TXG4gIH07XG5cbiAgY29uc3QgQU5OT1RBVElPTiA9IHtcbiAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICBiZWdpbjogJ0AnICsgSkFWQV9JREVOVF9SRSxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcKC8sXG4gICAgICAgIGVuZDogL1xcKS8sXG4gICAgICAgIGNvbnRhaW5zOiBbIFwic2VsZlwiIF0gLy8gYWxsb3cgbmVzdGVkICgpIGluc2lkZSBvdXIgYW5ub3RhdGlvblxuICAgICAgfVxuICAgIF1cbiAgfTtcbiAgY29uc3QgUEFSQU1TID0ge1xuICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgYmVnaW46IC9cXCgvLFxuICAgIGVuZDogL1xcKS8sXG4gICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICBjb250YWluczogWyBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFIF0sXG4gICAgZW5kc1BhcmVudDogdHJ1ZVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0phdmEnLFxuICAgIGFsaWFzZXM6IFsgJ2pzcCcgXSxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgaWxsZWdhbDogLzxcXC98Iy8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ09NTUVOVChcbiAgICAgICAgJy9cXFxcKlxcXFwqJyxcbiAgICAgICAgJ1xcXFwqLycsXG4gICAgICAgIHtcbiAgICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgLy8gZWF0IHVwIEAncyBpbiBlbWFpbHMgdG8gcHJldmVudCB0aGVtIHRvIGJlIHJlY29nbml6ZWQgYXMgZG9jdGFnc1xuICAgICAgICAgICAgICBiZWdpbjogL1xcdytALyxcbiAgICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjbGFzc05hbWU6ICdkb2N0YWcnLFxuICAgICAgICAgICAgICBiZWdpbjogJ0BbQS1aYS16XSsnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICApLFxuICAgICAgLy8gcmVsZXZhbmNlIGJvb3N0XG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvaW1wb3J0IGphdmFcXC5bYS16XStcXC4vLFxuICAgICAgICBrZXl3b3JkczogXCJpbXBvcnRcIixcbiAgICAgICAgcmVsZXZhbmNlOiAyXG4gICAgICB9LFxuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cIlwiXCIvLFxuICAgICAgICBlbmQ6IC9cIlwiXCIvLFxuICAgICAgICBjbGFzc05hbWU6IFwic3RyaW5nXCIsXG4gICAgICAgIGNvbnRhaW5zOiBbIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSBdXG4gICAgICB9LFxuICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IFtcbiAgICAgICAgICAvXFxiKD86Y2xhc3N8aW50ZXJmYWNlfGVudW18ZXh0ZW5kc3xpbXBsZW1lbnRzfG5ldykvLFxuICAgICAgICAgIC9cXHMrLyxcbiAgICAgICAgICBKQVZBX0lERU5UX1JFXG4gICAgICAgIF0sXG4gICAgICAgIGNsYXNzTmFtZToge1xuICAgICAgICAgIDE6IFwia2V5d29yZFwiLFxuICAgICAgICAgIDM6IFwidGl0bGUuY2xhc3NcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvLyBFeGNlcHRpb25zIGZvciBoeXBoZW5hdGVkIGtleXdvcmRzXG4gICAgICAgIG1hdGNoOiAvbm9uLXNlYWxlZC8sXG4gICAgICAgIHNjb3BlOiBcImtleXdvcmRcIlxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IFtcbiAgICAgICAgICByZWdleC5jb25jYXQoLyg/IWVsc2UpLywgSkFWQV9JREVOVF9SRSksXG4gICAgICAgICAgL1xccysvLFxuICAgICAgICAgIEpBVkFfSURFTlRfUkUsXG4gICAgICAgICAgL1xccysvLFxuICAgICAgICAgIC89KD8hPSkvXG4gICAgICAgIF0sXG4gICAgICAgIGNsYXNzTmFtZToge1xuICAgICAgICAgIDE6IFwidHlwZVwiLFxuICAgICAgICAgIDM6IFwidmFyaWFibGVcIixcbiAgICAgICAgICA1OiBcIm9wZXJhdG9yXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IFtcbiAgICAgICAgICAvcmVjb3JkLyxcbiAgICAgICAgICAvXFxzKy8sXG4gICAgICAgICAgSkFWQV9JREVOVF9SRVxuICAgICAgICBdLFxuICAgICAgICBjbGFzc05hbWU6IHtcbiAgICAgICAgICAxOiBcImtleXdvcmRcIixcbiAgICAgICAgICAzOiBcInRpdGxlLmNsYXNzXCJcbiAgICAgICAgfSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBQQVJBTVMsXG4gICAgICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREVcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gRXhwcmVzc2lvbiBrZXl3b3JkcyBwcmV2ZW50ICdrZXl3b3JkIE5hbWUoLi4uKScgZnJvbSBiZWluZ1xuICAgICAgICAvLyByZWNvZ25pemVkIGFzIGEgZnVuY3Rpb24gZGVmaW5pdGlvblxuICAgICAgICBiZWdpbktleXdvcmRzOiAnbmV3IHRocm93IHJldHVybiBlbHNlJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogW1xuICAgICAgICAgICcoPzonICsgR0VORVJJQ19JREVOVF9SRSArICdcXFxccyspJyxcbiAgICAgICAgICBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUsXG4gICAgICAgICAgL1xccyooPz1cXCgpL1xuICAgICAgICBdLFxuICAgICAgICBjbGFzc05hbWU6IHsgMjogXCJ0aXRsZS5mdW5jdGlvblwiIH0sXG4gICAgICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgICAgICAgICAgYmVnaW46IC9cXCgvLFxuICAgICAgICAgICAgZW5kOiAvXFwpLyxcbiAgICAgICAgICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgIEFOTk9UQVRJT04sXG4gICAgICAgICAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgICAgICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgICAgICAgICAgTlVNRVJJQyxcbiAgICAgICAgICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREVcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIE5VTUVSSUMsXG4gICAgICBBTk5PVEFUSU9OXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGphdmE7XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///67\n");
  1690. /***/ }),
  1691. /* 68 */
  1692. /*!*************************************************************************************************************!*\
  1693. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/highlight.js/lib/languages/javascript.js ***!
  1694. \*************************************************************************************************************/
  1695. /*! no static exports found */
  1696. /***/ (function(module, exports) {
  1697. eval("var IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*';\nvar KEYWORDS = [\"as\",\n// for exports\n\"in\", \"of\", \"if\", \"for\", \"while\", \"finally\", \"var\", \"new\", \"function\", \"do\", \"return\", \"void\", \"else\", \"break\", \"catch\", \"instanceof\", \"with\", \"throw\", \"case\", \"default\", \"try\", \"switch\", \"continue\", \"typeof\", \"delete\", \"let\", \"yield\", \"const\", \"class\",\n// JS handles these with a special rule\n// \"get\",\n// \"set\",\n\"debugger\", \"async\", \"await\", \"static\", \"import\", \"from\", \"export\", \"extends\"];\nvar LITERALS = [\"true\", \"false\", \"null\", \"undefined\", \"NaN\", \"Infinity\"];\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects\nvar TYPES = [\n// Fundamental objects\n\"Object\", \"Function\", \"Boolean\", \"Symbol\",\n// numbers and dates\n\"Math\", \"Date\", \"Number\", \"BigInt\",\n// text\n\"String\", \"RegExp\",\n// Indexed collections\n\"Array\", \"Float32Array\", \"Float64Array\", \"Int8Array\", \"Uint8Array\", \"Uint8ClampedArray\", \"Int16Array\", \"Int32Array\", \"Uint16Array\", \"Uint32Array\", \"BigInt64Array\", \"BigUint64Array\",\n// Keyed collections\n\"Set\", \"Map\", \"WeakSet\", \"WeakMap\",\n// Structured data\n\"ArrayBuffer\", \"SharedArrayBuffer\", \"Atomics\", \"DataView\", \"JSON\",\n// Control abstraction objects\n\"Promise\", \"Generator\", \"GeneratorFunction\", \"AsyncFunction\",\n// Reflection\n\"Reflect\", \"Proxy\",\n// Internationalization\n\"Intl\",\n// WebAssembly\n\"WebAssembly\"];\nvar ERROR_TYPES = [\"Error\", \"EvalError\", \"InternalError\", \"RangeError\", \"ReferenceError\", \"SyntaxError\", \"TypeError\", \"URIError\"];\nvar BUILT_IN_GLOBALS = [\"setInterval\", \"setTimeout\", \"clearInterval\", \"clearTimeout\", \"require\", \"exports\", \"eval\", \"isFinite\", \"isNaN\", \"parseFloat\", \"parseInt\", \"decodeURI\", \"decodeURIComponent\", \"encodeURI\", \"encodeURIComponent\", \"escape\", \"unescape\"];\nvar BUILT_IN_VARIABLES = [\"arguments\", \"this\", \"super\", \"console\", \"window\", \"document\", \"localStorage\", \"sessionStorage\", \"module\", \"global\" // Node.js\n];\n\nvar BUILT_INS = [].concat(BUILT_IN_GLOBALS, TYPES, ERROR_TYPES);\n\n/*\nLanguage: JavaScript\nDescription: JavaScript (JS) is a lightweight, interpreted, or just-in-time compiled programming language with first-class functions.\nCategory: common, scripting, web\nWebsite: https://developer.mozilla.org/en-US/docs/Web/JavaScript\n*/\n\n/** @type LanguageFn */\nfunction javascript(hljs) {\n var regex = hljs.regex;\n /**\n * Takes a string like \"<Booger\" and checks to see\n * if we can find a matching \"</Booger\" later in the\n * content.\n * @param {RegExpMatchArray} match\n * @param {{after:number}} param1\n */\n var hasClosingTag = function hasClosingTag(match, _ref) {\n var after = _ref.after;\n var tag = \"</\" + match[0].slice(1);\n var pos = match.input.indexOf(tag, after);\n return pos !== -1;\n };\n var IDENT_RE$1 = IDENT_RE;\n var FRAGMENT = {\n begin: '<>',\n end: '</>'\n };\n // to avoid some special cases inside isTrulyOpeningTag\n var XML_SELF_CLOSING = /<[A-Za-z0-9\\\\._:-]+\\s*\\/>/;\n var XML_TAG = {\n begin: /<[A-Za-z0-9\\\\._:-]+/,\n end: /\\/[A-Za-z0-9\\\\._:-]+>|\\/>/,\n /**\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\n isTrulyOpeningTag: function isTrulyOpeningTag(match, response) {\n var afterMatchIndex = match[0].length + match.index;\n var nextChar = match.input[afterMatchIndex];\n if (\n // HTML should not include another raw `<` inside a tag\n // nested type?\n // `<Array<Array<number>>`, etc.\n nextChar === \"<\" ||\n // the , gives away that this is not HTML\n // `<T, A extends keyof T, V>`\n nextChar === \",\") {\n response.ignoreMatch();\n return;\n }\n\n // `<something>`\n // Quite possibly a tag, lets look for a matching closing tag...\n if (nextChar === \">\") {\n // if we cannot find a matching closing tag, then we\n // will ignore it\n if (!hasClosingTag(match, {\n after: afterMatchIndex\n })) {\n response.ignoreMatch();\n }\n }\n\n // `<blah />` (self-closing)\n // handled by simpleSelfClosing rule\n\n var m;\n var afterMatch = match.input.substring(afterMatchIndex);\n\n // some more template typing stuff\n // <T = any>(key?: string) => Modify<\n if (m = afterMatch.match(/^\\s*=/)) {\n response.ignoreMatch();\n return;\n }\n\n // `<From extends string>`\n // technically this could be HTML, but it smells like a type\n // NOTE: This is ugh, but added specifically for https://github.com/highlightjs/highlight.js/issues/3276\n if (m = afterMatch.match(/^\\s+extends\\s+/)) {\n if (m.index === 0) {\n response.ignoreMatch();\n // eslint-disable-next-line no-useless-return\n return;\n }\n }\n }\n };\n var KEYWORDS$1 = {\n $pattern: IDENT_RE,\n keyword: KEYWORDS,\n literal: LITERALS,\n built_in: BUILT_INS,\n \"variable.language\": BUILT_IN_VARIABLES\n };\n\n // https://tc39.es/ecma262/#sec-literals-numeric-literals\n var decimalDigits = '[0-9](_?[0-9])*';\n var frac = \"\\\\.(\".concat(decimalDigits, \")\");\n // DecimalIntegerLiteral, including Annex B NonOctalDecimalIntegerLiteral\n // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n var decimalInteger = \"0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*\";\n var NUMBER = {\n className: 'number',\n variants: [\n // DecimalLiteral\n {\n begin: \"(\\\\b(\".concat(decimalInteger, \")((\").concat(frac, \")|\\\\.)?|(\").concat(frac, \"))\") + \"[eE][+-]?(\".concat(decimalDigits, \")\\\\b\")\n }, {\n begin: \"\\\\b(\".concat(decimalInteger, \")\\\\b((\").concat(frac, \")\\\\b|\\\\.)?|(\").concat(frac, \")\\\\b\")\n },\n // DecimalBigIntegerLiteral\n {\n begin: \"\\\\b(0|[1-9](_?[0-9])*)n\\\\b\"\n },\n // NonDecimalIntegerLiteral\n {\n begin: \"\\\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\\\b\"\n }, {\n begin: \"\\\\b0[bB][0-1](_?[0-1])*n?\\\\b\"\n }, {\n begin: \"\\\\b0[oO][0-7](_?[0-7])*n?\\\\b\"\n },\n // LegacyOctalIntegerLiteral (does not include underscore separators)\n // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n {\n begin: \"\\\\b0[0-7]+n?\\\\b\"\n }],\n relevance: 0\n };\n var SUBST = {\n className: 'subst',\n begin: '\\\\$\\\\{',\n end: '\\\\}',\n keywords: KEYWORDS$1,\n contains: [] // defined later\n };\n\n var HTML_TEMPLATE = {\n begin: 'html`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [hljs.BACKSLASH_ESCAPE, SUBST],\n subLanguage: 'xml'\n }\n };\n var CSS_TEMPLATE = {\n begin: 'css`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [hljs.BACKSLASH_ESCAPE, SUBST],\n subLanguage: 'css'\n }\n };\n var GRAPHQL_TEMPLATE = {\n begin: 'gql`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [hljs.BACKSLASH_ESCAPE, SUBST],\n subLanguage: 'graphql'\n }\n };\n var TEMPLATE_STRING = {\n className: 'string',\n begin: '`',\n end: '`',\n contains: [hljs.BACKSLASH_ESCAPE, SUBST]\n };\n var JSDOC_COMMENT = hljs.COMMENT(/\\/\\*\\*(?!\\/)/, '\\\\*/', {\n relevance: 0,\n contains: [{\n begin: '(?=@[A-Za-z]+)',\n relevance: 0,\n contains: [{\n className: 'doctag',\n begin: '@[A-Za-z]+'\n }, {\n className: 'type',\n begin: '\\\\{',\n end: '\\\\}',\n excludeEnd: true,\n excludeBegin: true,\n relevance: 0\n }, {\n className: 'variable',\n begin: IDENT_RE$1 + '(?=\\\\s*(-)|$)',\n endsParent: true,\n relevance: 0\n },\n // eat spaces (not newlines) so we can find\n // types or variables\n {\n begin: /(?=[^\\n])\\s/,\n relevance: 0\n }]\n }]\n });\n var COMMENT = {\n className: \"comment\",\n variants: [JSDOC_COMMENT, hljs.C_BLOCK_COMMENT_MODE, hljs.C_LINE_COMMENT_MODE]\n };\n var SUBST_INTERNALS = [hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE, HTML_TEMPLATE, CSS_TEMPLATE, GRAPHQL_TEMPLATE, TEMPLATE_STRING,\n // Skip numbers when they are part of a variable name\n {\n match: /\\$\\d+/\n }, NUMBER\n // This is intentional:\n // See https://github.com/highlightjs/highlight.js/issues/3288\n // hljs.REGEXP_MODE\n ];\n\n SUBST.contains = SUBST_INTERNALS.concat({\n // we need to pair up {} inside our subst to prevent\n // it from ending too early by matching another }\n begin: /\\{/,\n end: /\\}/,\n keywords: KEYWORDS$1,\n contains: [\"self\"].concat(SUBST_INTERNALS)\n });\n var SUBST_AND_COMMENTS = [].concat(COMMENT, SUBST.contains);\n var PARAMS_CONTAINS = SUBST_AND_COMMENTS.concat([\n // eat recursive parens in sub expressions\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS$1,\n contains: [\"self\"].concat(SUBST_AND_COMMENTS)\n }]);\n var PARAMS = {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS$1,\n contains: PARAMS_CONTAINS\n };\n\n // ES6 classes\n var CLASS_OR_EXTENDS = {\n variants: [\n // class Car extends vehicle\n {\n match: [/class/, /\\s+/, IDENT_RE$1, /\\s+/, /extends/, /\\s+/, regex.concat(IDENT_RE$1, \"(\", regex.concat(/\\./, IDENT_RE$1), \")*\")],\n scope: {\n 1: \"keyword\",\n 3: \"title.class\",\n 5: \"keyword\",\n 7: \"title.class.inherited\"\n }\n },\n // class Car\n {\n match: [/class/, /\\s+/, IDENT_RE$1],\n scope: {\n 1: \"keyword\",\n 3: \"title.class\"\n }\n }]\n };\n var CLASS_REFERENCE = {\n relevance: 0,\n match: regex.either(\n // Hard coded exceptions\n /\\bJSON/,\n // Float32Array, OutT\n /\\b[A-Z][a-z]+([A-Z][a-z]*|\\d)*/,\n // CSSFactory, CSSFactoryT\n /\\b[A-Z]{2,}([A-Z][a-z]+|\\d)+([A-Z][a-z]*)*/,\n // FPs, FPsT\n /\\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\\d)*([A-Z][a-z]*)*/\n // P\n // single letters are not highlighted\n // BLAH\n // this will be flagged as a UPPER_CASE_CONSTANT instead\n ),\n\n className: \"title.class\",\n keywords: {\n _: [].concat(TYPES, ERROR_TYPES)\n }\n };\n var USE_STRICT = {\n label: \"use_strict\",\n className: 'meta',\n relevance: 10,\n begin: /^\\s*['\"]use (strict|asm)['\"]/\n };\n var FUNCTION_DEFINITION = {\n variants: [{\n match: [/function/, /\\s+/, IDENT_RE$1, /(?=\\s*\\()/]\n },\n // anonymous function\n {\n match: [/function/, /\\s*(?=\\()/]\n }],\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n label: \"func.def\",\n contains: [PARAMS],\n illegal: /%/\n };\n var UPPER_CASE_CONSTANT = {\n relevance: 0,\n match: /\\b[A-Z][A-Z_0-9]+\\b/,\n className: \"variable.constant\"\n };\n function noneOf(list) {\n return regex.concat(\"(?!\", list.join(\"|\"), \")\");\n }\n var FUNCTION_CALL = {\n match: regex.concat(/\\b/, noneOf([].concat(BUILT_IN_GLOBALS, [\"super\", \"import\"])), IDENT_RE$1, regex.lookahead(/\\(/)),\n className: \"title.function\",\n relevance: 0\n };\n var PROPERTY_ACCESS = {\n begin: regex.concat(/\\./, regex.lookahead(regex.concat(IDENT_RE$1, /(?![0-9A-Za-z$_(])/))),\n end: IDENT_RE$1,\n excludeBegin: true,\n keywords: \"prototype\",\n className: \"property\",\n relevance: 0\n };\n var GETTER_OR_SETTER = {\n match: [/get|set/, /\\s+/, IDENT_RE$1, /(?=\\()/],\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [{\n // eat to avoid empty params\n begin: /\\(\\)/\n }, PARAMS]\n };\n var FUNC_LEAD_IN_RE = '(\\\\(' + '[^()]*(\\\\(' + '[^()]*(\\\\(' + '[^()]*' + '\\\\)[^()]*)*' + '\\\\)[^()]*)*' + '\\\\)|' + hljs.UNDERSCORE_IDENT_RE + ')\\\\s*=>';\n var FUNCTION_VARIABLE = {\n match: [/const|var|let/, /\\s+/, IDENT_RE$1, /\\s*/, /=\\s*/, /(async\\s*)?/,\n // async is optional\n regex.lookahead(FUNC_LEAD_IN_RE)],\n keywords: \"async\",\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [PARAMS]\n };\n return {\n name: 'JavaScript',\n aliases: ['js', 'jsx', 'mjs', 'cjs'],\n keywords: KEYWORDS$1,\n // this will be extended by TypeScript\n exports: {\n PARAMS_CONTAINS: PARAMS_CONTAINS,\n CLASS_REFERENCE: CLASS_REFERENCE\n },\n illegal: /#(?![$_A-z])/,\n contains: [hljs.SHEBANG({\n label: \"shebang\",\n binary: \"node\",\n relevance: 5\n }), USE_STRICT, hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE, HTML_TEMPLATE, CSS_TEMPLATE, GRAPHQL_TEMPLATE, TEMPLATE_STRING, COMMENT,\n // Skip numbers when they are part of a variable name\n {\n match: /\\$\\d+/\n }, NUMBER, CLASS_REFERENCE, {\n className: 'attr',\n begin: IDENT_RE$1 + regex.lookahead(':'),\n relevance: 0\n }, FUNCTION_VARIABLE, {\n // \"value\" container\n begin: '(' + hljs.RE_STARTERS_RE + '|\\\\b(case|return|throw)\\\\b)\\\\s*',\n keywords: 'return throw case',\n relevance: 0,\n contains: [COMMENT, hljs.REGEXP_MODE, {\n className: 'function',\n // we have to count the parens to make sure we actually have the\n // correct bounding ( ) before the =>. There could be any number of\n // sub-expressions inside also surrounded by parens.\n begin: FUNC_LEAD_IN_RE,\n returnBegin: true,\n end: '\\\\s*=>',\n contains: [{\n className: 'params',\n variants: [{\n begin: hljs.UNDERSCORE_IDENT_RE,\n relevance: 0\n }, {\n className: null,\n begin: /\\(\\s*\\)/,\n skip: true\n }, {\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS$1,\n contains: PARAMS_CONTAINS\n }]\n }]\n }, {\n // could be a comma delimited list of params to a function call\n begin: /,/,\n relevance: 0\n }, {\n match: /\\s+/,\n relevance: 0\n }, {\n // JSX\n variants: [{\n begin: FRAGMENT.begin,\n end: FRAGMENT.end\n }, {\n match: XML_SELF_CLOSING\n }, {\n begin: XML_TAG.begin,\n // we carefully check the opening tag to see if it truly\n // is a tag and not a false positive\n 'on:begin': XML_TAG.isTrulyOpeningTag,\n end: XML_TAG.end\n }],\n subLanguage: 'xml',\n contains: [{\n begin: XML_TAG.begin,\n end: XML_TAG.end,\n skip: true,\n contains: ['self']\n }]\n }]\n }, FUNCTION_DEFINITION, {\n // prevent this from getting swallowed up by function\n // since they appear \"function like\"\n beginKeywords: \"while if switch catch for\"\n }, {\n // we have to count the parens to make sure we actually have the correct\n // bounding ( ). There could be any number of sub-expressions inside\n // also surrounded by parens.\n begin: '\\\\b(?!function)' + hljs.UNDERSCORE_IDENT_RE + '\\\\(' +\n // first parens\n '[^()]*(\\\\(' + '[^()]*(\\\\(' + '[^()]*' + '\\\\)[^()]*)*' + '\\\\)[^()]*)*' + '\\\\)\\\\s*\\\\{',\n // end parens\n returnBegin: true,\n label: \"func.def\",\n contains: [PARAMS, hljs.inherit(hljs.TITLE_MODE, {\n begin: IDENT_RE$1,\n className: \"title.function\"\n })]\n },\n // catch ... so it won't trigger the property rule below\n {\n match: /\\.\\.\\./,\n relevance: 0\n }, PROPERTY_ACCESS,\n // hack: prevents detection of keywords in some circumstances\n // .keyword()\n // $keyword = x\n {\n match: '\\\\$' + IDENT_RE$1,\n relevance: 0\n }, {\n match: [/\\bconstructor(?=\\s*\\()/],\n className: {\n 1: \"title.function\"\n },\n contains: [PARAMS]\n }, FUNCTION_CALL, UPPER_CASE_CONSTANT, CLASS_OR_EXTENDS, GETTER_OR_SETTER, {\n match: /\\$[(.]/ // relevance booster for a pattern common to JS libs: `$(something)` and `$.something`\n }]\n };\n}\n\nmodule.exports = javascript;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvamF2YXNjcmlwdC5qcyJdLCJuYW1lcyI6WyJJREVOVF9SRSIsIktFWVdPUkRTIiwiTElURVJBTFMiLCJUWVBFUyIsIkVSUk9SX1RZUEVTIiwiQlVJTFRfSU5fR0xPQkFMUyIsIkJVSUxUX0lOX1ZBUklBQkxFUyIsIkJVSUxUX0lOUyIsImNvbmNhdCIsImphdmFzY3JpcHQiLCJobGpzIiwicmVnZXgiLCJoYXNDbG9zaW5nVGFnIiwibWF0Y2giLCJhZnRlciIsInRhZyIsInNsaWNlIiwicG9zIiwiaW5wdXQiLCJpbmRleE9mIiwiSURFTlRfUkUkMSIsIkZSQUdNRU5UIiwiYmVnaW4iLCJlbmQiLCJYTUxfU0VMRl9DTE9TSU5HIiwiWE1MX1RBRyIsImlzVHJ1bHlPcGVuaW5nVGFnIiwicmVzcG9uc2UiLCJhZnRlck1hdGNoSW5kZXgiLCJsZW5ndGgiLCJpbmRleCIsIm5leHRDaGFyIiwiaWdub3JlTWF0Y2giLCJtIiwiYWZ0ZXJNYXRjaCIsInN1YnN0cmluZyIsIktFWVdPUkRTJDEiLCIkcGF0dGVybiIsImtleXdvcmQiLCJsaXRlcmFsIiwiYnVpbHRfaW4iLCJkZWNpbWFsRGlnaXRzIiwiZnJhYyIsImRlY2ltYWxJbnRlZ2VyIiwiTlVNQkVSIiwiY2xhc3NOYW1lIiwidmFyaWFudHMiLCJyZWxldmFuY2UiLCJTVUJTVCIsImtleXdvcmRzIiwiY29udGFpbnMiLCJIVE1MX1RFTVBMQVRFIiwic3RhcnRzIiwicmV0dXJuRW5kIiwiQkFDS1NMQVNIX0VTQ0FQRSIsInN1Ykxhbmd1YWdlIiwiQ1NTX1RFTVBMQVRFIiwiR1JBUEhRTF9URU1QTEFURSIsIlRFTVBMQVRFX1NUUklORyIsIkpTRE9DX0NPTU1FTlQiLCJDT01NRU5UIiwiZXhjbHVkZUVuZCIsImV4Y2x1ZGVCZWdpbiIsImVuZHNQYXJlbnQiLCJDX0JMT0NLX0NPTU1FTlRfTU9ERSIsIkNfTElORV9DT01NRU5UX01PREUiLCJTVUJTVF9JTlRFUk5BTFMiLCJBUE9TX1NUUklOR19NT0RFIiwiUVVPVEVfU1RSSU5HX01PREUiLCJTVUJTVF9BTkRfQ09NTUVOVFMiLCJQQVJBTVNfQ09OVEFJTlMiLCJQQVJBTVMiLCJDTEFTU19PUl9FWFRFTkRTIiwic2NvcGUiLCJDTEFTU19SRUZFUkVOQ0UiLCJlaXRoZXIiLCJfIiwiVVNFX1NUUklDVCIsImxhYmVsIiwiRlVOQ1RJT05fREVGSU5JVElPTiIsImlsbGVnYWwiLCJVUFBFUl9DQVNFX0NPTlNUQU5UIiwibm9uZU9mIiwibGlzdCIsImpvaW4iLCJGVU5DVElPTl9DQUxMIiwibG9va2FoZWFkIiwiUFJPUEVSVFlfQUNDRVNTIiwiR0VUVEVSX09SX1NFVFRFUiIsIkZVTkNfTEVBRF9JTl9SRSIsIlVOREVSU0NPUkVfSURFTlRfUkUiLCJGVU5DVElPTl9WQVJJQUJMRSIsIm5hbWUiLCJhbGlhc2VzIiwiZXhwb3J0cyIsIlNIRUJBTkciLCJiaW5hcnkiLCJSRV9TVEFSVEVSU19SRSIsIlJFR0VYUF9NT0RFIiwicmV0dXJuQmVnaW4iLCJza2lwIiwiYmVnaW5LZXl3b3JkcyIsImluaGVyaXQiLCJUSVRMRV9NT0RFIiwibW9kdWxlIl0sIm1hcHBpbmdzIjoiQUFBQSxJQUFNQSxRQUFRLEdBQUcsMEJBQTBCO0FBQzNDLElBQU1DLFFBQVEsR0FBRyxDQUNmLElBQUk7QUFBRTtBQUNOLElBQUksRUFDSixJQUFJLEVBQ0osSUFBSSxFQUNKLEtBQUssRUFDTCxPQUFPLEVBQ1AsU0FBUyxFQUNULEtBQUssRUFDTCxLQUFLLEVBQ0wsVUFBVSxFQUNWLElBQUksRUFDSixRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sRUFDTixPQUFPLEVBQ1AsT0FBTyxFQUNQLFlBQVksRUFDWixNQUFNLEVBQ04sT0FBTyxFQUNQLE1BQU0sRUFDTixTQUFTLEVBQ1QsS0FBSyxFQUNMLFFBQVEsRUFDUixVQUFVLEVBQ1YsUUFBUSxFQUNSLFFBQVEsRUFDUixLQUFLLEVBQ0wsT0FBTyxFQUNQLE9BQU8sRUFDUCxPQUFPO0FB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QTtJQUNBO01BQ0UxRSxLQUFLLEVBQUUsS0FBSyxHQUFHTyxVQUFVO01BQ3pCMkIsU0FBUyxFQUFFO0lBQ2IsQ0FBQyxFQUNEO01BQ0VsQyxLQUFLLEVBQUUsQ0FBRSx3QkFBd0IsQ0FBRTtNQUNuQ2dDLFNBQVMsRUFBRTtRQUFFLENBQUMsRUFBRTtNQUFpQixDQUFDO01BQ2xDSyxRQUFRLEVBQUUsQ0FBRXFCLE1BQU07SUFDcEIsQ0FBQyxFQUNEYyxhQUFhLEVBQ2JKLG1CQUFtQixFQUNuQlQsZ0JBQWdCLEVBQ2hCZ0IsZ0JBQWdCLEVBQ2hCO01BQ0UzRSxLQUFLLEVBQUUsUUFBUSxDQUFDO0lBQ2xCLENBQUM7RUFFTCxDQUFDO0FBQ0g7O0FBRUEyRixNQUFNLENBQUNWLE9BQU8sR0FBR3JGLFVBQVUiLCJmaWxlIjoiNjguanMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBJREVOVF9SRSA9ICdbQS1aYS16JF9dWzAtOUEtWmEteiRfXSonO1xuY29uc3QgS0VZV09SRFMgPSBbXG4gIFwiYXNcIiwgLy8gZm9yIGV4cG9ydHNcbiAgXCJpblwiLFxuICBcIm9mXCIsXG4gIFwiaWZcIixcbiAgXCJmb3JcIixcbiAgXCJ3aGlsZVwiLFxuICBcImZpbmFsbHlcIixcbiAgXCJ2YXJcIixcbiAgXCJuZXdcIixcbiAgXCJmdW5jdGlvblwiLFxuICBcImRvXCIsXG4gIFwicmV0dXJuXCIsXG4gIFwidm9pZFwiLFxuICBcImVsc2VcIixcbiAgXCJicmVha1wiLFxuICBcImNhdGNoXCIsXG4gIFwiaW5zdGFuY2VvZlwiLFxuICBcIndpdGhcIixcbiAgXCJ0aHJvd1wiLFxuICBcImNhc2VcIixcbiAgXCJkZWZhdWx0XCIsXG4gIFwidHJ5XCIsXG4gIFwic3dpdGNoXCIsXG4gIFwiY29udGludWVcIixcbiAgXCJ0eXBlb2ZcIixcbiAgXCJkZWxldGVcIixcbiAgXCJsZXRcIixcbiAgXCJ5aWVsZFwiLFxuICBcImNvbnN0XCIsXG4gIFwiY2xhc3NcIixcbiAgLy8gSlMgaGFuZGxlcyB0aGVzZSB3aXRoIGEgc3BlY2lhbCBydWxlXG4gIC8vIFwiZ2V0XCIsXG4gIC8vIFwic2V0XCIsXG4gIFwiZGVidWdnZXJcIixcbiAgXCJhc3luY1wiLFxuICBcImF3YWl0XCIsXG4gIFwic3RhdGljXCIsXG4gIFwiaW1wb3J0XCIsXG4gIFwiZnJvbVwiLFxuICBcImV4cG9ydFwiLFxuICBcImV4dGVuZHNcIlxuXTtcbmNvbnN0IExJVEVSQUxTID0gW1xuICBcInRydWVcIixcbiAgXCJmYWxzZVwiLFxuICBcIm51bGxcIixcbiAgXCJ1bmRlZmluZWRcIixcbiAgXCJOYU5cIixcbiAgXCJJbmZpbml0eVwiXG5dO1xuXG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0c1xuY29uc3QgVFlQRVMgPSBbXG4gIC8vIEZ1bmRhbWVudGFsIG9iamVjdHNcbiAgXCJPYmplY3RcIixcbiAgXCJGdW5jdGlvblwiLFxuICBcIkJvb2xlYW5cIixcbiAgXCJTeW1ib2xcIixcbiAgLy8gbnVtYmVycyBhbmQgZGF0ZXNcbiAgXCJNYXRoXCIsXG4gIFwiRGF0ZVwiLFxuICBcIk51bWJlclwiLFxuICBcIkJpZ0ludFwiLFxuICAvLyB0ZXh0XG4gIFwiU3RyaW5nXCIsXG4gIFwiUmVnRXhwXCIsXG4gIC8vIEluZGV4ZWQgY29sbGVjdGlvbnNcbiAgXCJBcnJheVwiLFxuICBcIkZsb2F0MzJBcnJheVwiLFxuICBcIkZsb2F0NjRBcnJheVwiLFxuICBcIkludDhBcnJheVwiLFxuICBcIlVpbnQ4QXJyYXlcIixcbiAgXCJVaW50OENsYW1wZWRBcnJheVwiLFxuICBcIkludDE2QXJyYXlcIixcbiAgXCJJbnQzMkFycmF5XCIsXG4gIFwiVWludDE2QXJyYXlcIixcbiAgXCJVaW50MzJBcnJheVwiLFxuICBcIkJpZ0ludDY0QXJyYXlcIixcbiAgXCJCaWdVaW50NjRBcnJheVwiLFxuICAvLyBLZXllZCBjb2xsZWN0aW9uc1xuICBcIlNldFwiLFxuICBcIk1hcFwiLFxuICBcIldlYWtTZXRcIixcbiAgXCJXZWFrTWFwXCIsXG4gIC8vIFN0cnVjdHVyZWQgZGF0YVxuICBcIkFycmF5QnVmZmVyXCIsXG4gIFwiU2hhcmVkQXJyYXlCdWZmZXJcIixcbiAgXCJBdG9taWNzXCIsXG4gIFwiRGF0YVZpZXdcIixcbiAgXCJKU09OXCIsXG4gIC8vIENvbnRyb2wgYWJzdHJhY3Rpb24gb2JqZWN0c1xuICBcIlByb21pc2VcIixcbiAgXCJHZW5lcmF0b3JcIixcbiAgXCJHZW5lcmF0b3JGdW5jdGlvblwiLFxuICBcIkFzeW5jRnVuY3Rpb25cIixcbiAgLy8gUmVmbGVjdGlvblxuICBcIlJlZmxlY3RcIixcbiAgXCJQcm94eVwiLFxuICAvLyBJbnRlcm5hdGlvbmFsaXphdGlvblxuICBcIkludGxcIixcbiAgLy8gV2ViQXNzZW1ibHlcbiAgXCJXZWJBc3NlbWJseVwiXG5dO1xuXG5jb25zdCBFUlJPUl9UWVBFUyA9IFtcbiAgXCJFcnJvclwiLFxuICBcIkV2YWxFcnJvclwiLFxuICBcIkludGVybmFsRXJyb3JcIixcbiAgXCJSYW5nZUVycm9yXCIsXG4gIFwiUmVmZXJlbmNlRXJyb3JcIixcbiAgXCJTeW50YXhFcnJvclwiLFxuICBcIlR5cGVFcnJvclwiLFxuICBcIlVSSUVycm9yXCJcbl07XG5cbmNvbnN0IEJVSUxUX0lOX0dMT0JBTFMgPSBbXG4gIFwic2V0SW50ZXJ2YWxcIixcbiAgXCJzZXRUaW1lb3V0XCIsXG4gIFwiY2xlYXJJbnRlcnZhbFwiLFxuICBcImNsZWFyVGltZW91dFwiLFxuXG4gIFwicmVxdWlyZVwiLFxuICBcImV4cG9ydHNcIixcblxuICBcImV2YWxcIixcbiAgXCJpc0Zpbml0ZVwiLFxuICBcImlzTmFOXCIsXG4gIFwicGFyc2VGbG9hdFwiLFxuICBcInBhcnNlSW50XCIsXG4gIFwiZGVjb2RlVVJJXCIsXG4gIFwiZGVjb2RlVVJJQ29tcG9uZW50XCIsXG4gIFwiZW5jb2RlVVJJXCIsXG4gIFwiZW5jb2RlVVJJQ29tcG9uZW50XCIsXG4gIFwiZXNjYXBlXCIsXG4gIFwidW5lc2NhcGVcIlxuXTtcblxuY29uc3QgQlVJTFRfSU5fVkFSSUFCTEVTID0gW1xuICBcImFyZ3VtZW50c1wiLFxuICBcInRoaXNcIixcbiAgXCJzdXBlclwiLFxuICBcImNvbnNvbGVcIixcbiAgXCJ3aW5kb3dcIixcbiAgXCJkb2N1bWVudFwiLFxuICBcImxvY2FsU3RvcmFnZVwiLFxuICBcInNlc3Npb25TdG9yYWdlXCIsXG4gIFwibW9kdWxlXCIsXG4gIFwiZ2xvYmFsXCIgLy8gTm9kZS5qc1xuXTtcblxuY29uc3QgQlVJTFRfSU5TID0gW10uY29uY2F0KFxuICBCVUlMVF9JTl9HTE9CQUxTLFxuICBUWVBFUyxcbiAgRVJST1JfVFlQRVNcbik7XG5cbi8qXG5MYW5ndWFnZTogSmF2YVNjcmlwdFxuRGVzY3JpcHRpb246IEphdmFTY3JpcHQgKEpTKSBpcyBhIGxpZ2h0d2VpZ2h0LCBpbnRlcnByZXRlZCwgb3IganVzdC1pbi10aW1lIGNvbXBpbGVkIHByb2dyYW1taW5nIGxhbmd1YWdlIHdpdGggZmlyc3QtY2xhc3MgZnVuY3Rpb25zLlxuQ2F0ZWdvcnk6IGNvbW1vbiwgc2NyaXB0aW5nLCB3ZWJcbldlYnNpdGU6IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHRcbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBqYXZhc2NyaXB0KGhsanMpIHtcbiAgY29uc3QgcmVnZXggPSBobGpzLnJlZ2V4O1xuICAvKipcbiAgICogVGFrZXMgYSBzdHJpbmcgbGlrZSBcIjxCb29nZXJcIiBhbmQgY2hlY2tzIHRvIHNlZVxuICAgKiBpZiB3ZSBjYW4gZmluZCBhIG1hdGNoaW5nIFwiPC9Cb29nZXJcIiBsYXRlciBpbiB0aGVcbiAgICogY29udGVudC5cbiAgICogQHBhcmFtIHtSZWdFeHBNYXRjaEFycmF5fSBtYXRjaFxuICAgKiBAcGFyYW0ge3thZnRlcjpudW1iZXJ9fSBwYXJhbTFcbiAgICovXG4gIGNvbnN0IGhhc0Nsb3NpbmdUYWcgPSAobWF0Y2gsIHsgYWZ0ZXIgfSkgPT4ge1xuICAgIGNvbnN0IHRhZyA9IFwiPC9cIiArIG1hdGNoWzBdLnNsaWNlKDEpO1xuICAgIGNvbnN0IHBvcyA9IG1hdGNoLmlucHV0LmluZGV4T2YodGFnLCBhZnRlcik7XG4gICAgcmV0dXJuIHBvcyAhPT0gLTE7XG4gIH07XG5cbiAgY29uc3QgSURFTlRfUkUkMSA9IElERU5UX1JFO1xuICBjb25zdCBGUkFHTUVOVCA9IHtcbiAgICBiZWdpbjogJzw+JyxcbiAgICBlbmQ6ICc8Lz4nXG4gIH07XG4gIC8vIHRvIGF2b2lkIHNvbWUgc3BlY2lhbCBjYXNlcyBpbnNpZGUgaXNUcnVseU9wZW5pbmdUYWdcbiAgY29uc3QgWE1MX1NFTEZfQ0xPU0lORyA9IC88W0EtWmEtejAtOVxcXFwuXzotXStcXHMqXFwvPi87XG4gIGNvbnN0IFhNTF9UQUcgPSB7XG4gICAgYmVnaW46IC88W0EtWmEtejAtOVxcXFwuXzotXSsvLFxuICAgIGVuZDogL1xcL1tBLVphLXowLTlcXFxcLl86LV0rPnxcXC8+LyxcbiAgICAvKipcbiAgICAgKiBAcGFyYW0ge1JlZ0V4cE1hdGNoQXJyYXl9IG1hdGNoXG4gICAgICogQHBhcmFtIHtDYWxsYmFja1Jlc3BvbnNlfSByZXNwb25zZVxuICAgICAqL1xuICAgIGlzVHJ1bHlPcGVuaW5nVGFnOiAobWF0Y2gsIHJlc3BvbnNlKSA9PiB7XG4gICAgICBjb25zdCBhZnRlck1hdGNoSW5kZXggPSBtYXRjaFswXS5sZW5ndGggKyBtYXRjaC5pbmRleDtcbiAgICAgIGNvbnN0IG5leHRDaGFyID0gbWF0Y2guaW5wdXRbYWZ0ZXJNYXRjaEluZGV4XTtcbiAgICAgIGlmIChcbiAgICAgICAgLy8gSFRNTCBzaG91bGQgbm90IGluY2x1ZGUgYW5vdGhlciByYXcgYDxgIGluc2lkZSBhIHRhZ1xuICAgICAgICAvLyBuZXN0ZWQgdHlwZT9cbiAgICAgICAgLy8gYDxBcnJheTxBcnJheTxudW1iZXI+PmAsIGV0Yy5cbiAgICAgICAgbmV4dENoYXIgPT09IFwiPFwiIHx8XG4gICAgICAgIC8vIHRoZSAsIGdpdmVzIGF3YXkgdGhhdCB0aGlzIGlzIG5vdCBIVE1MXG4gICAgICAgIC8vIGA8VCwgQSBleHRlbmRzIGtleW9mIFQsIFY+YFxuICAgICAgICBuZXh0Q2hhciA9PT0gXCIsXCJcbiAgICAgICAgKSB7XG4gICAgICAgIHJlc3BvbnNlLmlnbm9yZU1hdGNoKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gYDxzb21ldGhpbmc+YFxuICAgICAgLy8gUXVpdGUgcG9zc2libHkgYSB0YWcsIGxldHMgbG9vayBmb3IgYSBtYXRjaGluZyBjbG9zaW5nIHRhZy4uLlxuICAgICAgaWYgKG5leHRDaGFyID09PSBcIj5cIikge1xuICAgICAgICAvLyBpZiB3ZSBjYW5ub3QgZmluZCBhIG1hdGNoaW5nIGNsb3NpbmcgdGFnLCB0aGVuIHdlXG4gICAgICAgIC8vIHdpbGwgaWdub3JlIGl0XG4gICAgICAgIGlmICghaGFzQ2xvc2luZ1RhZyhtYXRjaCwgeyBhZnRlcjogYWZ0ZXJNYXRjaEluZGV4IH0pKSB7XG4gICAgICAgICAgcmVzcG9uc2UuaWdub3JlTWF0Y2goKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBgPGJsYWggLz5gIChzZWxmLWNsb3NpbmcpXG4gICAgICAvLyBoYW5kbGVkIGJ5IHNpbXBsZVNlbGZDbG9zaW5nIHJ1bGVcblxuICAgICAgbGV0IG07XG4gICAgICBjb25zdCBhZnRlck1hdGNoID0gbWF0Y2guaW5wdXQuc3Vic3RyaW5nKGFmdGVyTWF0Y2hJbmRleCk7XG5cbiAgICAgIC8vIHNvbWUgbW9yZSB0ZW1wbGF0ZSB0eXBpbmcgc3R1ZmZcbiAgICAgIC8vICA8VCA9IGFueT4oa2V5Pzogc3RyaW5nKSA9PiBNb2RpZnk8XG4gICAgICBpZiAoKG0gPSBhZnRlck1hdGNoLm1hdGNoKC9eXFxzKj0vKSkpIHtcbiAgICAgICAgcmVzcG9uc2UuaWdub3JlTWF0Y2goKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBgPEZyb20gZXh0ZW5kcyBzdHJpbmc+YFxuICAgICAgLy8gdGVjaG5pY2FsbHkgdGhpcyBjb3VsZCBiZSBIVE1MLCBidXQgaXQgc21lbGxzIGxpa2UgYSB0eXBlXG4gICAgICAvLyBOT1RFOiBUaGlzIGlzIHVnaCwgYnV0IGFkZGVkIHNwZWNpZmljYWxseSBmb3IgaHR0cHM6Ly9naXRodWIuY29tL2hpZ2hsaWdodGpzL2hpZ2hsaWdodC5qcy9pc3N1ZXMvMzI3NlxuICAgICAgaWYgKChtID0gYWZ0ZXJNYXRjaC5tYXRjaCgvXlxccytleHRlbmRzXFxzKy8pKSkge1xuICAgICAgICBpZiAobS5pbmRleCA9PT0gMCkge1xuICAgICAgICAgIHJlc3BvbnNlLmlnbm9yZU1hdGNoKCk7XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtcmV0dXJuXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9O1xuICBjb25zdCBLRVlXT1JEUyQxID0ge1xuICAgICRwYXR0ZXJuOiBJREVOVF9SRSxcbiAgICBrZXl3b3JkOiBLRVlXT1JEUyxcbiAgICBsaXRlcmFsOiBMSVRFUkFMUyxcbiAgICBidWlsdF9pbjogQlVJTFRfSU5TLFxuICAgIFwidmFyaWFibGUubGFuZ3VhZ2VcIjogQlVJTFRfSU5fVkFSSUFCTEVTXG4gIH07XG5cbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1saXRlcmFscy1udW1lcmljLWxpdGVyYWxzXG4gIGNvbnN0IGRlY2ltYWxEaWdpdHMgPSAnWzAtOV0oXz9bMC05XSkqJztcbiAgY29uc3QgZnJhYyA9IGBcXFxcLigke2RlY2ltYWxEaWdpdHN9KWA7XG4gIC8vIERlY2ltYWxJbnRlZ2VyTGl0ZXJhbCwgaW5jbHVkaW5nIEFubmV4IEIgTm9uT2N0YWxEZWNpbWFsSW50ZWdlckxpdGVyYWxcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hZGRpdGlvbmFsLXN5bnRheC1udW1lcmljLWxpdGVyYWxzXG4gIGNvbnN0IGRlY2ltYWxJbnRlZ2VyID0gYDB8WzEtOV0oXz9bMC05XSkqfDBbMC03XSpbODldWzAtOV0qYDtcbiAgY29uc3QgTlVNQkVSID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIC8vIERlY2ltYWxMaXRlcmFsXG4gICAgICB7IGJlZ2luOiBgKFxcXFxiKCR7ZGVjaW1hbEludGVnZXJ9KSgoJHtmcmFjfSl8XFxcXC4pP3woJHtmcmFjfSkpYCArXG4gICAgICAgIGBbZUVdWystXT8oJHtkZWNpbWFsRGlnaXRzfSlcXFxcYmAgfSxcbiAgICAgIHsgYmVnaW46IGBcXFxcYigke2RlY2ltYWxJbnRlZ2VyfSlcXFxcYigoJHtmcmFjfSlcXFxcYnxcXFxcLik/fCgke2ZyYWN9KVxcXFxiYCB9LFxuXG4gICAgICAvLyBEZWNpbWFsQmlnSW50ZWdlckxpdGVyYWxcbiAgICAgIHsgYmVnaW46IGBcXFxcYigwfFsxLTldKF8/WzAtOV0pKiluXFxcXGJgIH0sXG5cbiAgICAgIC8vIE5vbkRlY2ltYWxJbnRlZ2VyTGl0ZXJhbFxuICAgICAgeyBiZWdpbjogXCJcXFxcYjBbeFhdWzAtOWEtZkEtRl0oXz9bMC05YS1mQS1GXSkqbj9cXFxcYlwiIH0sXG4gICAgICB7IGJlZ2luOiBcIlxcXFxiMFtiQl1bMC0xXShfP1swLTFdKSpuP1xcXFxiXCIgfSxcbiAgICAgIHsgYmVnaW46IFwiXFxcXGIwW29PXVswLTddKF8/WzAtN10pKm4/XFxcXGJcIiB9LFxuXG4gICAgICAvLyBMZWdhY3lPY3RhbEludGVnZXJMaXRlcmFsIChkb2VzIG5vdCBpbmNsdWRlIHVuZGVyc2NvcmUgc2VwYXJhdG9ycylcbiAgICAgIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYWRkaXRpb25hbC1zeW50YXgtbnVtZXJpYy1saXRlcmFsc1xuICAgICAgeyBiZWdpbjogXCJcXFxcYjBbMC03XStuP1xcXFxiXCIgfSxcbiAgICBdLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIGNvbnN0IFNVQlNUID0ge1xuICAgIGNsYXNzTmFtZTogJ3N1YnN0JyxcbiAgICBiZWdpbjogJ1xcXFwkXFxcXHsnLFxuICAgIGVuZDogJ1xcXFx9JyxcbiAgICBrZXl3b3JkczogS0VZV09SRFMkMSxcbiAgICBjb250YWluczogW10gLy8gZGVmaW5lZCBsYXRlclxuICB9O1xuICBjb25zdCBIVE1MX1RFTVBMQVRFID0ge1xuICAgIGJlZ2luOiAnaHRtbGAnLFxuICAgIGVuZDogJycsXG4gICAgc3RhcnRzOiB7XG4gICAgICBlbmQ6ICdgJyxcbiAgICAgIHJldHVybkVuZDogZmFsc2UsXG4gICAgICBjb250YWluczogW1xuICAgICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICAgIFNVQlNUXG4gICAgICBdLFxuICAgICAgc3ViTGFuZ3VhZ2U6ICd4bWwnXG4gICAgfVxuICB9O1xuICBjb25zdCBDU1NfVEVNUExBVEUgPSB7XG4gICAgYmVnaW46ICdjc3NgJyxcbiAgICBlbmQ6ICcnLFxuICAgIHN0YXJ0czoge1xuICAgICAgZW5kOiAnYCcsXG4gICAgICByZXR1cm5FbmQ6IGZhbHNlLFxuICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgICAgICBTVUJTVFxuICAgICAgXSxcbiAgICAgIHN1Ykxhbmd1YWdlOiAnY3NzJ1xuICAgIH1cbiAgfTtcbiAgY29uc3QgR1JBUEhRTF9URU1QTEFURSA9IHtcbiAgICBiZWdpbjogJ2dxbGAnLFxuICAgIGVuZDogJycsXG4gICAgc3RhcnRzOiB7XG4gICAgICBlbmQ6ICdgJyxcbiAgICAgIHJldHVybkVuZDogZmFsc2UsXG4gICAgICBjb250YWluczogW1xuICAgICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICAgIFNVQlNUXG4gICAgICBdLFxuICAgICAgc3ViTGFuZ3VhZ2U6ICdncmFwaHFsJ1xuICAgIH1cbiAgfTtcbiAgY29uc3QgVEVNUExBVEVfU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46ICdgJyxcbiAgICBlbmQ6ICdgJyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgICAgU1VCU1RcbiAgICBdXG4gIH07XG4gIGNvbnN0IEpTRE9DX0NPTU1FTlQgPSBobGpzLkNPTU1FTlQoXG4gICAgL1xcL1xcKlxcKig/IVxcLykvLFxuICAgICdcXFxcKi8nLFxuICAgIHtcbiAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBiZWdpbjogJyg/PUBbQS1aYS16XSspJyxcbiAgICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnZG9jdGFnJyxcbiAgICAgICAgICAgICAgYmVnaW46ICdAW0EtWmEtel0rJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2xhc3NOYW1lOiAndHlwZScsXG4gICAgICAgICAgICAgIGJlZ2luOiAnXFxcXHsnLFxuICAgICAgICAgICAgICBlbmQ6ICdcXFxcfScsXG4gICAgICAgICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgICAgICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSxcbiAgICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgICAgICAgICAgIGJlZ2luOiBJREVOVF9SRSQxICsgJyg/PVxcXFxzKigtKXwkKScsXG4gICAgICAgICAgICAgIGVuZHNQYXJlbnQ6IHRydWUsXG4gICAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC8vIGVhdCBzcGFjZXMgKG5vdCBuZXdsaW5lcykgc28gd2UgY2FuIGZpbmRcbiAgICAgICAgICAgIC8vIHR5cGVzIG9yIHZhcmlhYmxlc1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBiZWdpbjogLyg/PVteXFxuXSlcXHMvLFxuICAgICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9XG4gICk7XG4gIGNvbnN0IENPTU1FTlQgPSB7XG4gICAgY2xhc3NOYW1lOiBcImNvbW1lbnRcIixcbiAgICB2YXJpYW50czogW1xuICAgICAgSlNET0NfQ09NTUVOVCxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREVcbiAgICBdXG4gIH07XG4gIGNvbnN0IFNVQlNUX0lOVEVSTkFMUyA9IFtcbiAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICBIVE1MX1RFTVBMQVRFLFxuICAgIENTU19URU1QTEFURSxcbiAgICBHUkFQSFFMX1RFTVBMQVRFLFxuICAgIFRFTVBMQVRFX1NUUklORyxcbiAgICAvLyBTa2lwIG51bWJlcnMgd2hlbiB0aGV5IGFyZSBwYXJ0IG9mIGEgdmFyaWFibGUgbmFtZVxuICAgIHsgbWF0Y2g6IC9cXCRcXGQrLyB9LFxuICAgIE5VTUJFUixcbiAgICAvLyBUaGlzIGlzIGludGVudGlvbmFsOlxuICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vaGlnaGxpZ2h0anMvaGlnaGxpZ2h0LmpzL2lzc3Vlcy8zMjg4XG4gICAgLy8gaGxqcy5SRUdFWFBfTU9ERVxuICBdO1xuICBTVUJTVC5jb250YWlucyA9IFNVQlNUX0lOVEVSTkFMU1xuICAgIC5jb25jYXQoe1xuICAgICAgLy8gd2UgbmVlZCB0byBwYWlyIHVwIHt9IGluc2lkZSBvdXIgc3Vic3QgdG8gcHJldmVudFxuICAgICAgLy8gaXQgZnJvbSBlbmRpbmcgdG9vIGVhcmx5IGJ5IG1hdGNoaW5nIGFub3RoZXIgfVxuICAgICAgYmVnaW46IC9cXHsvLFxuICAgICAgZW5kOiAvXFx9LyxcbiAgICAgIGtleXdvcmRzOiBLRVlXT1JEUyQxLFxuICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgXCJzZWxmXCJcbiAgICAgIF0uY29uY2F0KFNVQlNUX0lOVEVSTkFMUylcbiAgICB9KTtcbiAgY29uc3QgU1VCU1RfQU5EX0NPTU1FTlRTID0gW10uY29uY2F0KENPTU1FTlQsIFNVQlNULmNvbnRhaW5zKTtcbiAgY29uc3QgUEFSQU1TX0NPTlRBSU5TID0gU1VCU1RfQU5EX0NPTU1FTlRTLmNvbmNhdChbXG4gICAgLy8gZWF0IHJlY3Vyc2l2ZSBwYXJlbnMgaW4gc3ViIGV4cHJlc3Npb25zXG4gICAge1xuICAgICAgYmVnaW46IC9cXCgvLFxuICAgICAgZW5kOiAvXFwpLyxcbiAgICAgIGtleXdvcmRzOiBLRVlXT1JEUyQxLFxuICAgICAgY29udGFpbnM6IFtcInNlbGZcIl0uY29uY2F0KFNVQlNUX0FORF9DT01NRU5UUylcbiAgICB9XG4gIF0pO1xuICBjb25zdCBQQVJBTVMgPSB7XG4gICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICBiZWdpbjogL1xcKC8sXG4gICAgZW5kOiAvXFwpLyxcbiAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICBrZXl3b3JkczogS0VZV09SRFMkMSxcbiAgICBjb250YWluczogUEFSQU1TX0NPTlRBSU5TXG4gIH07XG5cbiAgLy8gRVM2IGNsYXNzZXNcbiAgY29uc3QgQ0xBU1NfT1JfRVhURU5EUyA9IHtcbiAgICB2YXJpYW50czogW1xuICAgICAgLy8gY2xhc3MgQ2FyIGV4dGVuZHMgdmVoaWNsZVxuICAgICAge1xuICAgICAgICBtYXRjaDogW1xuICAgICAgICAgIC9jbGFzcy8sXG4gICAgICAgICAgL1xccysvLFxuICAgICAgICAgIElERU5UX1JFJDEsXG4gICAgICAgICAgL1xccysvLFxuICAgICAgICAgIC9leHRlbmRzLyxcbiAgICAgICAgICAvXFxzKy8sXG4gICAgICAgICAgcmVnZXguY29uY2F0KElERU5UX1JFJDEsIFwiKFwiLCByZWdleC5jb25jYXQoL1xcLi8sIElERU5UX1JFJDEpLCBcIikqXCIpXG4gICAgICAgIF0sXG4gICAgICAgIHNjb3BlOiB7XG4gICAgICAgICAgMTogXCJrZXl3b3JkXCIsXG4gICAgICAgICAgMzogXCJ0aXRsZS5jbGFzc1wiLFxuICAgICAgICAgIDU6IFwia2V5d29yZFwiLFxuICAgICAgICAgIDc6IFwidGl0bGUuY2xhc3MuaW5oZXJpdGVkXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIGNsYXNzIENhclxuICAgICAge1xuICAgICAgICBtYXRjaDogW1xuICAgICAgICAgIC9jbGFzcy8sXG4gICAgICAgICAgL1xccysvLFxuICAgICAgICAgIElERU5UX1JFJDFcbiAgICAgICAgXSxcbiAgICAgICAgc2NvcGU6IHtcbiAgICAgICAgICAxOiBcImtleXdvcmRcIixcbiAgICAgICAgICAzOiBcInRpdGxlLmNsYXNzXCJcbiAgICAgICAgfVxuICAgICAgfSxcblxuICAgIF1cbiAgfTtcblxuICBjb25zdCBDTEFTU19SRUZFUkVOQ0UgPSB7XG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIG1hdGNoOlxuICAgIHJlZ2V4LmVpdGhlcihcbiAgICAgIC8vIEhhcmQgY29kZWQgZXhjZXB0aW9uc1xuICAgICAgL1xcYkpTT04vLFxuICAgICAgLy8gRmxvYXQzMkFycmF5LCBPdXRUXG4gICAgICAvXFxiW0EtWl1bYS16XSsoW0EtWl1bYS16XSp8XFxkKSovLFxuICAgICAgLy8gQ1NTRmFjdG9yeSwgQ1NTRmFjdG9yeVRcbiAgICAgIC9cXGJbQS1aXXsyLH0oW0EtWl1bYS16XSt8XFxkKSsoW0EtWl1bYS16XSopKi8sXG4gICAgICAvLyBGUHMsIEZQc1RcbiAgICAgIC9cXGJbQS1aXXsyLH1bYS16XSsoW0EtWl1bYS16XSt8XFxkKSooW0EtWl1bYS16XSopKi8sXG4gICAgICAvLyBQXG4gICAgICAvLyBzaW5nbGUgbGV0dGVycyBhcmUgbm90IGhpZ2hsaWdodGVkXG4gICAgICAvLyBCTEFIXG4gICAgICAvLyB0aGlzIHdpbGwgYmUgZmxhZ2dlZCBhcyBhIFVQUEVSX0NBU0VfQ09OU1RBTlQgaW5zdGVhZFxuICAgICksXG4gICAgY2xhc3NOYW1lOiBcInRpdGxlLmNsYXNzXCIsXG4gICAga2V5d29yZHM6IHtcbiAgICAgIF86IFtcbiAgICAgICAgLy8gc2Ugd2Ugc3RpbGwgZ2V0IHJlbGV2YW5jZSBjcmVkaXQgZm9yIEpTIGxpYnJhcnkgY2xhc3Nlc1xuICAgICAgICAuLi5UWVBFUyxcbiAgICAgICAgLi4uRVJST1JfVFlQRVNcbiAgICAgIF1cbiAgICB9XG4gIH07XG5cbiAgY29uc3QgVVNFX1NUUklDVCA9IHtcbiAgICBsYWJlbDogXCJ1c2Vfc3RyaWN0XCIsXG4gICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgcmVsZXZhbmNlOiAxMCxcbiAgICBiZWdpbjogL15cXHMqWydcIl11c2UgKHN0cmljdHxhc20pWydcIl0vXG4gIH07XG5cbiAgY29uc3QgRlVOQ1RJT05fREVGSU5JVElPTiA9IHtcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBtYXRjaDogW1xuICAgICAgICAgIC9mdW5jdGlvbi8sXG4gICAgICAgICAgL1xccysvLFxuICAgICAgICAgIElERU5UX1JFJDEsXG4gICAgICAgICAgLyg/PVxccypcXCgpL1xuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgLy8gYW5vbnltb3VzIGZ1bmN0aW9uXG4gICAgICB7XG4gICAgICAgIG1hdGNoOiBbXG4gICAgICAgICAgL2Z1bmN0aW9uLyxcbiAgICAgICAgICAvXFxzKig/PVxcKCkvXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdLFxuICAgIGNsYXNzTmFtZToge1xuICAgICAgMTogXCJrZXl3b3JkXCIsXG4gICAgICAzOiBcInRpdGxlLmZ1bmN0aW9uXCJcbiAgICB9LFxuICAgIGxhYmVsOiBcImZ1bmMuZGVmXCIsXG4gICAgY29udGFpbnM6IFsgUEFSQU1TIF0sXG4gICAgaWxsZWdhbDogLyUvXG4gIH07XG5cbiAgY29uc3QgVVBQRVJfQ0FTRV9DT05TVEFOVCA9IHtcbiAgICByZWxldmFuY2U6IDAsXG4gICAgbWF0Y2g6IC9cXGJbQS1aXVtBLVpfMC05XStcXGIvLFxuICAgIGNsYXNzTmFtZTogXCJ2YXJpYWJsZS5jb25zdGFudFwiXG4gIH07XG5cbiAgZnVuY3Rpb24gbm9uZU9mKGxpc3QpIHtcbiAgICByZXR1cm4gcmVnZXguY29uY2F0KFwiKD8hXCIsIGxpc3Quam9pbihcInxcIiksIFwiKVwiKTtcbiAgfVxuXG4gIGNvbnN0IEZVTkNUSU9OX0NBTEwgPSB7XG4gICAgbWF0Y2g6IHJlZ2V4LmNvbmNhdChcbiAgICAgIC9cXGIvLFxuICAgICAgbm9uZU9mKFtcbiAgICAgICAgLi4uQlVJTFRfSU5fR0xPQkFMUyxcbiAgICAgICAgXCJzdXBlclwiLFxuICAgICAgICBcImltcG9ydFwiXG4gICAgICBdKSxcbiAgICAgIElERU5UX1JFJDEsIHJlZ2V4Lmxvb2thaGVhZCgvXFwoLykpLFxuICAgIGNsYXNzTmFtZTogXCJ0aXRsZS5mdW5jdGlvblwiLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIGNvbnN0IFBST1BFUlRZX0FDQ0VTUyA9IHtcbiAgICBiZWdpbjogcmVnZXguY29uY2F0KC9cXC4vLCByZWdleC5sb29rYWhlYWQoXG4gICAgICByZWdleC5jb25jYXQoSURFTlRfUkUkMSwgLyg/IVswLTlBLVphLXokXyhdKS8pXG4gICAgKSksXG4gICAgZW5kOiBJREVOVF9SRSQxLFxuICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSxcbiAgICBrZXl3b3JkczogXCJwcm90b3R5cGVcIixcbiAgICBjbGFzc05hbWU6IFwicHJvcGVydHlcIixcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICBjb25zdCBHRVRURVJfT1JfU0VUVEVSID0ge1xuICAgIG1hdGNoOiBbXG4gICAgICAvZ2V0fHNldC8sXG4gICAgICAvXFxzKy8sXG4gICAgICBJREVOVF9SRSQxLFxuICAgICAgLyg/PVxcKCkvXG4gICAgXSxcbiAgICBjbGFzc05hbWU6IHtcbiAgICAgIDE6IFwia2V5d29yZFwiLFxuICAgICAgMzogXCJ0aXRsZS5mdW5jdGlvblwiXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgeyAvLyBlYXQgdG8gYXZvaWQgZW1wdHkgcGFyYW1zXG4gICAgICAgIGJlZ2luOiAvXFwoXFwpL1xuICAgICAgfSxcbiAgICAgIFBBUkFNU1xuICAgIF1cbiAgfTtcblxuICBjb25zdCBGVU5DX0xFQURfSU5fUkUgPSAnKFxcXFwoJyArXG4gICAgJ1teKCldKihcXFxcKCcgK1xuICAgICdbXigpXSooXFxcXCgnICtcbiAgICAnW14oKV0qJyArXG4gICAgJ1xcXFwpW14oKV0qKSonICtcbiAgICAnXFxcXClbXigpXSopKicgK1xuICAgICdcXFxcKXwnICsgaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFICsgJylcXFxccyo9Pic7XG5cbiAgY29uc3QgRlVOQ1RJT05fVkFSSUFCTEUgPSB7XG4gICAgbWF0Y2g6IFtcbiAgICAgIC9jb25zdHx2YXJ8bGV0LywgL1xccysvLFxuICAgICAgSURFTlRfUkUkMSwgL1xccyovLFxuICAgICAgLz1cXHMqLyxcbiAgICAgIC8oYXN5bmNcXHMqKT8vLCAvLyBhc3luYyBpcyBvcHRpb25hbFxuICAgICAgcmVnZXgubG9va2FoZWFkKEZVTkNfTEVBRF9JTl9SRSlcbiAgICBdLFxuICAgIGtleXdvcmRzOiBcImFzeW5jXCIsXG4gICAgY2xhc3NOYW1lOiB7XG4gICAgICAxOiBcImtleXdvcmRcIixcbiAgICAgIDM6IFwidGl0bGUuZnVuY3Rpb25cIlxuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIFBBUkFNU1xuICAgIF1cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdKYXZhU2NyaXB0JyxcbiAgICBhbGlhc2VzOiBbJ2pzJywgJ2pzeCcsICdtanMnLCAnY2pzJ10sXG4gICAga2V5d29yZHM6IEtFWVdPUkRTJDEsXG4gICAgLy8gdGhpcyB3aWxsIGJlIGV4dGVuZGVkIGJ5IFR5cGVTY3JpcHRcbiAgICBleHBvcnRzOiB7IFBBUkFNU19DT05UQUlOUywgQ0xBU1NfUkVGRVJFTkNFIH0sXG4gICAgaWxsZWdhbDogLyMoPyFbJF9BLXpdKS8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuU0hFQkFORyh7XG4gICAgICAgIGxhYmVsOiBcInNoZWJhbmdcIixcbiAgICAgICAgYmluYXJ5OiBcIm5vZGVcIixcbiAgICAgICAgcmVsZXZhbmNlOiA1XG4gICAgICB9KSxcbiAgICAgIFVTRV9TVFJJQ1QsXG4gICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgSFRNTF9URU1QTEFURSxcbiAgICAgIENTU19URU1QTEFURSxcbiAgICAgIEdSQVBIUUxfVEVNUExBVEUsXG4gICAgICBURU1QTEFURV9TVFJJTkcsXG4gICAgICBDT01NRU5ULFxuICAgICAgLy8gU2tpcCBudW1iZXJzIHdoZW4gdGhleSBhcmUgcGFydCBvZiBhIHZhcmlhYmxlIG5hbWVcbiAgICAgIHsgbWF0Y2g6IC9cXCRcXGQrLyB9LFxuICAgICAgTlVNQkVSLFxuICAgICAgQ0xBU1NfUkVGRVJFTkNFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdhdHRyJyxcbiAgICAgICAgYmVnaW46IElERU5UX1JFJDEgKyByZWdleC5sb29rYWhlYWQoJzonKSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgRlVOQ1RJT05fVkFSSUFCTEUsXG4gICAgICB7IC8vIFwidmFsdWVcIiBjb250YWluZXJcbiAgICAgICAgYmVnaW46ICcoJyArIGhsanMuUkVfU1RBUlRFUlNfUkUgKyAnfFxcXFxiKGNhc2V8cmV0dXJufHRocm93KVxcXFxiKVxcXFxzKicsXG4gICAgICAgIGtleXdvcmRzOiAncmV0dXJuIHRocm93IGNhc2UnLFxuICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgQ09NTUVOVCxcbiAgICAgICAgICBobGpzLlJFR0VYUF9NT0RFLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICAgICAgICAgIC8vIHdlIGhhdmUgdG8gY291bnQgdGhlIHBhcmVucyB0byBtYWtlIHN1cmUgd2UgYWN0dWFsbHkgaGF2ZSB0aGVcbiAgICAgICAgICAgIC8vIGNvcnJlY3QgYm91bmRpbmcgKCApIGJlZm9yZSB0aGUgPT4uICBUaGVyZSBjb3VsZCBiZSBhbnkgbnVtYmVyIG9mXG4gICAgICAgICAgICAvLyBzdWItZXhwcmVzc2lvbnMgaW5zaWRlIGFsc28gc3Vycm91bmRlZCBieSBwYXJlbnMuXG4gICAgICAgICAgICBiZWdpbjogRlVOQ19MRUFEX0lOX1JFLFxuICAgICAgICAgICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgICAgICBlbmQ6ICdcXFxccyo9PicsXG4gICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICAgICAgICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBiZWdpbjogaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFLFxuICAgICAgICAgICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgYmVnaW46IC9cXChcXHMqXFwpLyxcbiAgICAgICAgICAgICAgICAgICAgc2tpcDogdHJ1ZVxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYmVnaW46IC9cXCgvLFxuICAgICAgICAgICAgICAgICAgICBlbmQ6IC9cXCkvLFxuICAgICAgICAgICAgICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGtleXdvcmRzOiBLRVlXT1JEUyQxLFxuICAgICAgICAgICAgICAgICAgICBjb250YWluczogUEFSQU1TX0NPTlRBSU5TXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7IC8vIGNvdWxkIGJlIGEgY29tbWEgZGVsaW1pdGVkIGxpc3Qgb2YgcGFyYW1zIHRvIGEgZnVuY3Rpb24gY2FsbFxuICAgICAgICAgICAgYmVnaW46IC8sLyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWF0Y2g6IC9cXHMrLyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH0sXG4gICAgICAgICAgeyAvLyBKU1hcbiAgICAgICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgICAgIHsgYmVnaW46IEZSQUdNRU5ULmJlZ2luLCBlbmQ6IEZSQUdNRU5ULmVuZCB9LFxuICAgICAgICAgICAgICB7IG1hdGNoOiBYTUxfU0VMRl9DTE9TSU5HIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBiZWdpbjogWE1MX1RBRy5iZWdpbixcbiAgICAgICAgICAgICAgICAvLyB3ZSBjYXJlZnVsbHkgY2hlY2sgdGhlIG9wZW5pbmcgdGFnIHRvIHNlZSBpZiBpdCB0cnVseVxuICAgICAgICAgICAgICAgIC8vIGlzIGEgdGFnIGFuZCBub3QgYSBmYWxzZSBwb3NpdGl2ZVxuICAgICAgICAgICAgICAgICdvbjpiZWdpbic6IFhNTF9UQUcuaXNUcnVseU9wZW5pbmdUYWcsXG4gICAgICAgICAgICAgICAgZW5kOiBYTUxfVEFHLmVuZFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgc3ViTGFuZ3VhZ2U6ICd4bWwnLFxuICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGJlZ2luOiBYTUxfVEFHLmJlZ2luLFxuICAgICAgICAgICAgICAgIGVuZDogWE1MX1RBRy5lbmQsXG4gICAgICAgICAgICAgICAgc2tpcDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjb250YWluczogWydzZWxmJ11cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgICBGVU5DVElPTl9ERUZJTklUSU9OLFxuICAgICAge1xuICAgICAgICAvLyBwcmV2ZW50IHRoaXMgZnJvbSBnZXR0aW5nIHN3YWxsb3dlZCB1cCBieSBmdW5jdGlvblxuICAgICAgICAvLyBzaW5jZSB0aGV5IGFwcGVhciBcImZ1bmN0aW9uIGxpa2VcIlxuICAgICAgICBiZWdpbktleXdvcmRzOiBcIndoaWxlIGlmIHN3aXRjaCBjYXRjaCBmb3JcIlxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gd2UgaGF2ZSB0byBjb3VudCB0aGUgcGFyZW5zIHRvIG1ha2Ugc3VyZSB3ZSBhY3R1YWxseSBoYXZlIHRoZSBjb3JyZWN0XG4gICAgICAgIC8vIGJvdW5kaW5nICggKS4gIFRoZXJlIGNvdWxkIGJlIGFueSBudW1iZXIgb2Ygc3ViLWV4cHJlc3Npb25zIGluc2lkZVxuICAgICAgICAvLyBhbHNvIHN1cnJvdW5kZWQgYnkgcGFyZW5zLlxuICAgICAgICBiZWdpbjogJ1xcXFxiKD8hZnVuY3Rpb24pJyArIGhsanMuVU5ERVJTQ09SRV9JREVOVF9SRSArXG4gICAgICAgICAgJ1xcXFwoJyArIC8vIGZpcnN0IHBhcmVuc1xuICAgICAgICAgICdbXigpXSooXFxcXCgnICtcbiAgICAgICAgICAgICdbXigpXSooXFxcXCgnICtcbiAgICAgICAgICAgICAgJ1teKCldKicgK1xuICAgICAgICAgICAgJ1xcXFwpW14oKV0qKSonICtcbiAgICAgICAgICAnXFxcXClbXigpXSopKicgK1xuICAgICAgICAgICdcXFxcKVxcXFxzKlxcXFx7JywgLy8gZW5kIHBhcmVuc1xuICAgICAgICByZXR1cm5CZWdpbjp0cnVlLFxuICAgICAgICBsYWJlbDogXCJmdW5jLmRlZlwiLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIFBBUkFNUyxcbiAgICAgICAgICBobGpzLmluaGVyaXQoaGxqcy5USVRMRV9NT0RFLCB7IGJlZ2luOiBJREVOVF9SRSQxLCBjbGFzc05hbWU6IFwidGl0bGUuZnVuY3Rpb25cIiB9KVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgLy8gY2F0Y2ggLi4uIHNvIGl0IHdvbid0IHRyaWdnZXIgdGhlIHByb3BlcnR5IHJ1bGUgYmVsb3dcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IC9cXC5cXC5cXC4vLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICBQUk9QRVJUWV9BQ0NFU1MsXG4gICAgICAvLyBoYWNrOiBwcmV2ZW50cyBkZXRlY3Rpb24gb2Yga2V5d29yZHMgaW4gc29tZSBjaXJjdW1zdGFuY2VzXG4gICAgICAvLyAua2V5d29yZCgpXG4gICAgICAvLyAka2V5d29yZCA9IHhcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6ICdcXFxcJCcgKyBJREVOVF9SRSQxLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG1hdGNoOiBbIC9cXGJjb25zdHJ1Y3Rvcig/PVxccypcXCgpLyBdLFxuICAgICAgICBjbGFzc05hbWU6IHsgMTogXCJ0aXRsZS5mdW5jdGlvblwiIH0sXG4gICAgICAgIGNvbnRhaW5zOiBbIFBBUkFNUyBdXG4gICAgICB9LFxuICAgICAgRlVOQ1RJT05fQ0FMTCxcbiAgICAgIFVQUEVSX0NBU0VfQ09OU1RBTlQsXG4gICAgICBDTEFTU19PUl9FWFRFTkRTLFxuICAgICAgR0VUVEVSX09SX1NFVFRFUixcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IC9cXCRbKC5dLyAvLyByZWxldmFuY2UgYm9vc3RlciBmb3IgYSBwYXR0ZXJuIGNvbW1vbiB0byBKUyBsaWJzOiBgJChzb21ldGhpbmcpYCBhbmQgYCQuc29tZXRoaW5nYFxuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBqYXZhc2NyaXB0O1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///68\n");
  1698. /***/ }),
  1699. /* 69 */
  1700. /*!*******************************************************************************************************!*\
  1701. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/highlight.js/lib/languages/json.js ***!
  1702. \*******************************************************************************************************/
  1703. /*! no static exports found */
  1704. /***/ (function(module, exports) {
  1705. eval("/*\nLanguage: JSON\nDescription: JSON (JavaScript Object Notation) is a lightweight data-interchange format.\nAuthor: Ivan Sagalaev <maniac@softwaremaniacs.org>\nWebsite: http://www.json.org\nCategory: common, protocols, web\n*/\n\nfunction json(hljs) {\n var ATTRIBUTE = {\n className: 'attr',\n begin: /\"(\\\\.|[^\\\\\"\\r\\n])*\"(?=\\s*:)/,\n relevance: 1.01\n };\n var PUNCTUATION = {\n match: /[{}[\\],:]/,\n className: \"punctuation\",\n relevance: 0\n };\n var LITERALS = [\"true\", \"false\", \"null\"];\n // NOTE: normally we would rely on `keywords` for this but using a mode here allows us\n // - to use the very tight `illegal: \\S` rule later to flag any other character\n // - as illegal indicating that despite looking like JSON we do not truly have\n // - JSON and thus improve false-positively greatly since JSON will try and claim\n // - all sorts of JSON looking stuff\n var LITERALS_MODE = {\n scope: \"literal\",\n beginKeywords: LITERALS.join(\" \")\n };\n return {\n name: 'JSON',\n keywords: {\n literal: LITERALS\n },\n contains: [ATTRIBUTE, PUNCTUATION, hljs.QUOTE_STRING_MODE, LITERALS_MODE, hljs.C_NUMBER_MODE, hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE],\n illegal: '\\\\S'\n };\n}\nmodule.exports = json;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvanNvbi5qcyJdLCJuYW1lcyI6WyJqc29uIiwiaGxqcyIsIkFUVFJJQlVURSIsImNsYXNzTmFtZSIsImJlZ2luIiwicmVsZXZhbmNlIiwiUFVOQ1RVQVRJT04iLCJtYXRjaCIsIkxJVEVSQUxTIiwiTElURVJBTFNfTU9ERSIsInNjb3BlIiwiYmVnaW5LZXl3b3JkcyIsImpvaW4iLCJuYW1lIiwia2V5d29yZHMiLCJsaXRlcmFsIiwiY29udGFpbnMiLCJRVU9URV9TVFJJTkdfTU9ERSIsIkNfTlVNQkVSX01PREUiLCJDX0xJTkVfQ09NTUVOVF9NT0RFIiwiQ19CTE9DS19DT01NRU5UX01PREUiLCJpbGxlZ2FsIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsU0FBU0EsSUFBSSxDQUFDQyxJQUFJLEVBQUU7RUFDbEIsSUFBTUMsU0FBUyxHQUFHO0lBQ2hCQyxTQUFTLEVBQUUsTUFBTTtJQUNqQkMsS0FBSyxFQUFFLDZCQUE2QjtJQUNwQ0MsU0FBUyxFQUFFO0VBQ2IsQ0FBQztFQUNELElBQU1DLFdBQVcsR0FBRztJQUNsQkMsS0FBSyxFQUFFLFdBQVc7SUFDbEJKLFNBQVMsRUFBRSxhQUFhO0lBQ3hCRSxTQUFTLEVBQUU7RUFDYixDQUFDO0VBQ0QsSUFBTUcsUUFBUSxHQUFHLENBQ2YsTUFBTSxFQUNOLE9BQU8sRUFDUCxNQUFNLENBQ1A7RUFDRDtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsSUFBTUMsYUFBYSxHQUFHO0lBQ3BCQyxLQUFLLEVBQUUsU0FBUztJQUNoQkMsYUFBYSxFQUFFSCxRQUFRLENBQUNJLElBQUksQ0FBQyxHQUFHO0VBQ2xDLENBQUM7RUFFRCxPQUFPO0lBQ0xDLElBQUksRUFBRSxNQUFNO0lBQ1pDLFFBQVEsRUFBQztNQUNQQyxPQUFPLEVBQUVQO0lBQ1gsQ0FBQztJQUNEUSxRQUFRLEVBQUUsQ0FDUmQsU0FBUyxFQUNUSSxXQUFXLEVBQ1hMLElBQUksQ0FBQ2dCLGlCQUFpQixFQUN0QlIsYUFBYSxFQUNiUixJQUFJLENBQUNpQixhQUFhLEVBQ2xCakIsSUFBSSxDQUFDa0IsbUJBQW1CLEVBQ3hCbEIsSUFBSSxDQUFDbUIsb0JBQW9CLENBQzFCO0lBQ0RDLE9BQU8sRUFBRTtFQUNYLENBQUM7QUFDSDtBQUVBQyxNQUFNLENBQUNDLE9BQU8sR0FBR3ZCLElBQUkiLCJmaWxlIjoiNjkuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuTGFuZ3VhZ2U6IEpTT05cbkRlc2NyaXB0aW9uOiBKU09OIChKYXZhU2NyaXB0IE9iamVjdCBOb3RhdGlvbikgaXMgYSBsaWdodHdlaWdodCBkYXRhLWludGVyY2hhbmdlIGZvcm1hdC5cbkF1dGhvcjogSXZhbiBTYWdhbGFldiA8bWFuaWFjQHNvZnR3YXJlbWFuaWFjcy5vcmc+XG5XZWJzaXRlOiBodHRwOi8vd3d3Lmpzb24ub3JnXG5DYXRlZ29yeTogY29tbW9uLCBwcm90b2NvbHMsIHdlYlxuKi9cblxuZnVuY3Rpb24ganNvbihobGpzKSB7XG4gIGNvbnN0IEFUVFJJQlVURSA9IHtcbiAgICBjbGFzc05hbWU6ICdhdHRyJyxcbiAgICBiZWdpbjogL1wiKFxcXFwufFteXFxcXFwiXFxyXFxuXSkqXCIoPz1cXHMqOikvLFxuICAgIHJlbGV2YW5jZTogMS4wMVxuICB9O1xuICBjb25zdCBQVU5DVFVBVElPTiA9IHtcbiAgICBtYXRjaDogL1t7fVtcXF0sOl0vLFxuICAgIGNsYXNzTmFtZTogXCJwdW5jdHVhdGlvblwiLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICBjb25zdCBMSVRFUkFMUyA9IFtcbiAgICBcInRydWVcIixcbiAgICBcImZhbHNlXCIsXG4gICAgXCJudWxsXCJcbiAgXTtcbiAgLy8gTk9URTogbm9ybWFsbHkgd2Ugd291bGQgcmVseSBvbiBga2V5d29yZHNgIGZvciB0aGlzIGJ1dCB1c2luZyBhIG1vZGUgaGVyZSBhbGxvd3MgdXNcbiAgLy8gLSB0byB1c2UgdGhlIHZlcnkgdGlnaHQgYGlsbGVnYWw6IFxcU2AgcnVsZSBsYXRlciB0byBmbGFnIGFueSBvdGhlciBjaGFyYWN0ZXJcbiAgLy8gLSBhcyBpbGxlZ2FsIGluZGljYXRpbmcgdGhhdCBkZXNwaXRlIGxvb2tpbmcgbGlrZSBKU09OIHdlIGRvIG5vdCB0cnVseSBoYXZlXG4gIC8vIC0gSlNPTiBhbmQgdGh1cyBpbXByb3ZlIGZhbHNlLXBvc2l0aXZlbHkgZ3JlYXRseSBzaW5jZSBKU09OIHdpbGwgdHJ5IGFuZCBjbGFpbVxuICAvLyAtIGFsbCBzb3J0cyBvZiBKU09OIGxvb2tpbmcgc3R1ZmZcbiAgY29uc3QgTElURVJBTFNfTU9ERSA9IHtcbiAgICBzY29wZTogXCJsaXRlcmFsXCIsXG4gICAgYmVnaW5LZXl3b3JkczogTElURVJBTFMuam9pbihcIiBcIiksXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnSlNPTicsXG4gICAga2V5d29yZHM6e1xuICAgICAgbGl0ZXJhbDogTElURVJBTFMsXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgQVRUUklCVVRFLFxuICAgICAgUFVOQ1RVQVRJT04sXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgTElURVJBTFNfTU9ERSxcbiAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREVcbiAgICBdLFxuICAgIGlsbGVnYWw6ICdcXFxcUydcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBqc29uO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///69\n");
  1706. /***/ }),
  1707. /* 70 */
  1708. /*!*********************************************************************************************************!*\
  1709. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/highlight.js/lib/languages/kotlin.js ***!
  1710. \*********************************************************************************************************/
  1711. /*! no static exports found */
  1712. /***/ (function(module, exports) {
  1713. eval("// https://docs.oracle.com/javase/specs/jls/se15/html/jls-3.html#jls-3.10\nvar decimalDigits = '[0-9](_*[0-9])*';\nvar frac = \"\\\\.(\".concat(decimalDigits, \")\");\nvar hexDigits = '[0-9a-fA-F](_*[0-9a-fA-F])*';\nvar NUMERIC = {\n className: 'number',\n variants: [\n // DecimalFloatingPointLiteral\n // including ExponentPart\n {\n begin: \"(\\\\b(\".concat(decimalDigits, \")((\").concat(frac, \")|\\\\.)?|(\").concat(frac, \"))\") + \"[eE][+-]?(\".concat(decimalDigits, \")[fFdD]?\\\\b\")\n },\n // excluding ExponentPart\n {\n begin: \"\\\\b(\".concat(decimalDigits, \")((\").concat(frac, \")[fFdD]?\\\\b|\\\\.([fFdD]\\\\b)?)\")\n }, {\n begin: \"(\".concat(frac, \")[fFdD]?\\\\b\")\n }, {\n begin: \"\\\\b(\".concat(decimalDigits, \")[fFdD]\\\\b\")\n },\n // HexadecimalFloatingPointLiteral\n {\n begin: \"\\\\b0[xX]((\".concat(hexDigits, \")\\\\.?|(\").concat(hexDigits, \")?\\\\.(\").concat(hexDigits, \"))\") + \"[pP][+-]?(\".concat(decimalDigits, \")[fFdD]?\\\\b\")\n },\n // DecimalIntegerLiteral\n {\n begin: '\\\\b(0|[1-9](_*[0-9])*)[lL]?\\\\b'\n },\n // HexIntegerLiteral\n {\n begin: \"\\\\b0[xX](\".concat(hexDigits, \")[lL]?\\\\b\")\n },\n // OctalIntegerLiteral\n {\n begin: '\\\\b0(_*[0-7])*[lL]?\\\\b'\n },\n // BinaryIntegerLiteral\n {\n begin: '\\\\b0[bB][01](_*[01])*[lL]?\\\\b'\n }],\n relevance: 0\n};\n\n/*\n Language: Kotlin\n Description: Kotlin is an OSS statically typed programming language that targets the JVM, Android, JavaScript and Native.\n Author: Sergey Mashkov <cy6erGn0m@gmail.com>\n Website: https://kotlinlang.org\n Category: common\n */\n\nfunction kotlin(hljs) {\n var KEYWORDS = {\n keyword: 'abstract as val var vararg get set class object open private protected public noinline ' + 'crossinline dynamic final enum if else do while for when throw try catch finally ' + 'import package is in fun override companion reified inline lateinit init ' + 'interface annotation data sealed internal infix operator out by constructor super ' + 'tailrec where const inner suspend typealias external expect actual',\n built_in: 'Byte Short Char Int Long Boolean Float Double Void Unit Nothing',\n literal: 'true false null'\n };\n var KEYWORDS_WITH_LABEL = {\n className: 'keyword',\n begin: /\\b(break|continue|return|this)\\b/,\n starts: {\n contains: [{\n className: 'symbol',\n begin: /@\\w+/\n }]\n }\n };\n var LABEL = {\n className: 'symbol',\n begin: hljs.UNDERSCORE_IDENT_RE + '@'\n };\n\n // for string templates\n var SUBST = {\n className: 'subst',\n begin: /\\$\\{/,\n end: /\\}/,\n contains: [hljs.C_NUMBER_MODE]\n };\n var VARIABLE = {\n className: 'variable',\n begin: '\\\\$' + hljs.UNDERSCORE_IDENT_RE\n };\n var STRING = {\n className: 'string',\n variants: [{\n begin: '\"\"\"',\n end: '\"\"\"(?=[^\"])',\n contains: [VARIABLE, SUBST]\n },\n // Can't use built-in modes easily, as we want to use STRING in the meta\n // context as 'meta-string' and there's no syntax to remove explicitly set\n // classNames in built-in modes.\n {\n begin: '\\'',\n end: '\\'',\n illegal: /\\n/,\n contains: [hljs.BACKSLASH_ESCAPE]\n }, {\n begin: '\"',\n end: '\"',\n illegal: /\\n/,\n contains: [hljs.BACKSLASH_ESCAPE, VARIABLE, SUBST]\n }]\n };\n SUBST.contains.push(STRING);\n var ANNOTATION_USE_SITE = {\n className: 'meta',\n begin: '@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\\\s*:(?:\\\\s*' + hljs.UNDERSCORE_IDENT_RE + ')?'\n };\n var ANNOTATION = {\n className: 'meta',\n begin: '@' + hljs.UNDERSCORE_IDENT_RE,\n contains: [{\n begin: /\\(/,\n end: /\\)/,\n contains: [hljs.inherit(STRING, {\n className: 'string'\n }), \"self\"]\n }]\n };\n\n // https://kotlinlang.org/docs/reference/whatsnew11.html#underscores-in-numeric-literals\n // According to the doc above, the number mode of kotlin is the same as java 8,\n // so the code below is copied from java.js\n var KOTLIN_NUMBER_MODE = NUMERIC;\n var KOTLIN_NESTED_COMMENT = hljs.COMMENT('/\\\\*', '\\\\*/', {\n contains: [hljs.C_BLOCK_COMMENT_MODE]\n });\n var KOTLIN_PAREN_TYPE = {\n variants: [{\n className: 'type',\n begin: hljs.UNDERSCORE_IDENT_RE\n }, {\n begin: /\\(/,\n end: /\\)/,\n contains: [] // defined later\n }]\n };\n\n var KOTLIN_PAREN_TYPE2 = KOTLIN_PAREN_TYPE;\n KOTLIN_PAREN_TYPE2.variants[1].contains = [KOTLIN_PAREN_TYPE];\n KOTLIN_PAREN_TYPE.variants[1].contains = [KOTLIN_PAREN_TYPE2];\n return {\n name: 'Kotlin',\n aliases: ['kt', 'kts'],\n keywords: KEYWORDS,\n contains: [hljs.COMMENT('/\\\\*\\\\*', '\\\\*/', {\n relevance: 0,\n contains: [{\n className: 'doctag',\n begin: '@[A-Za-z]+'\n }]\n }), hljs.C_LINE_COMMENT_MODE, KOTLIN_NESTED_COMMENT, KEYWORDS_WITH_LABEL, LABEL, ANNOTATION_USE_SITE, ANNOTATION, {\n className: 'function',\n beginKeywords: 'fun',\n end: '[(]|$',\n returnBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS,\n relevance: 5,\n contains: [{\n begin: hljs.UNDERSCORE_IDENT_RE + '\\\\s*\\\\(',\n returnBegin: true,\n relevance: 0,\n contains: [hljs.UNDERSCORE_TITLE_MODE]\n }, {\n className: 'type',\n begin: /</,\n end: />/,\n keywords: 'reified',\n relevance: 0\n }, {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n endsParent: true,\n keywords: KEYWORDS,\n relevance: 0,\n contains: [{\n begin: /:/,\n end: /[=,\\/]/,\n endsWithParent: true,\n contains: [KOTLIN_PAREN_TYPE, hljs.C_LINE_COMMENT_MODE, KOTLIN_NESTED_COMMENT],\n relevance: 0\n }, hljs.C_LINE_COMMENT_MODE, KOTLIN_NESTED_COMMENT, ANNOTATION_USE_SITE, ANNOTATION, STRING, hljs.C_NUMBER_MODE]\n }, KOTLIN_NESTED_COMMENT]\n }, {\n begin: [/class|interface|trait/, /\\s+/, hljs.UNDERSCORE_IDENT_RE],\n beginScope: {\n 3: \"title.class\"\n },\n keywords: 'class interface trait',\n end: /[:\\{(]|$/,\n excludeEnd: true,\n illegal: 'extends implements',\n contains: [{\n beginKeywords: 'public protected internal private constructor'\n }, hljs.UNDERSCORE_TITLE_MODE, {\n className: 'type',\n begin: /</,\n end: />/,\n excludeBegin: true,\n excludeEnd: true,\n relevance: 0\n }, {\n className: 'type',\n begin: /[,:]\\s*/,\n end: /[<\\(,){\\s]|$/,\n excludeBegin: true,\n returnEnd: true\n }, ANNOTATION_USE_SITE, ANNOTATION]\n }, STRING, {\n className: 'meta',\n begin: \"^#!/usr/bin/env\",\n end: '$',\n illegal: '\\n'\n }, KOTLIN_NUMBER_MODE]\n };\n}\nmodule.exports = kotlin;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMva290bGluLmpzIl0sIm5hbWVzIjpbImRlY2ltYWxEaWdpdHMiLCJmcmFjIiwiaGV4RGlnaXRzIiwiTlVNRVJJQyIsImNsYXNzTmFtZSIsInZhcmlhbnRzIiwiYmVnaW4iLCJyZWxldmFuY2UiLCJrb3RsaW4iLCJobGpzIiwiS0VZV09SRFMiLCJrZXl3b3JkIiwiYnVpbHRfaW4iLCJsaXRlcmFsIiwiS0VZV09SRFNfV0lUSF9MQUJFTCIsInN0YXJ0cyIsImNvbnRhaW5zIiwiTEFCRUwiLCJVTkRFUlNDT1JFX0lERU5UX1JFIiwiU1VCU1QiLCJlbmQiLCJDX05VTUJFUl9NT0RFIiwiVkFSSUFCTEUiLCJTVFJJTkciLCJpbGxlZ2FsIiwiQkFDS1NMQVNIX0VTQ0FQRSIsInB1c2giLCJBTk5PVEFUSU9OX1VTRV9TSVRFIiwiQU5OT1RBVElPTiIsImluaGVyaXQiLCJLT1RMSU5fTlVNQkVSX01PREUiLCJLT1RMSU5fTkVTVEVEX0NPTU1FTlQiLCJDT01NRU5UIiwiQ19CTE9DS19DT01NRU5UX01PREUiLCJLT1RMSU5fUEFSRU5fVFlQRSIsIktPVExJTl9QQVJFTl9UWVBFMiIsIm5hbWUiLCJhbGlhc2VzIiwia2V5d29yZHMiLCJDX0xJTkVfQ09NTUVOVF9NT0RFIiwiYmVnaW5LZXl3b3JkcyIsInJldHVybkJlZ2luIiwiZXhjbHVkZUVuZCIsIlVOREVSU0NPUkVfVElUTEVfTU9ERSIsImVuZHNQYXJlbnQiLCJlbmRzV2l0aFBhcmVudCIsImJlZ2luU2NvcGUiLCJleGNsdWRlQmVnaW4iLCJyZXR1cm5FbmQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBLElBQUlBLGFBQWEsR0FBRyxpQkFBaUI7QUFDckMsSUFBSUMsSUFBSSxpQkFBVUQsYUFBYSxNQUFHO0FBQ2xDLElBQUlFLFNBQVMsR0FBRyw2QkFBNkI7QUFDN0MsSUFBSUMsT0FBTyxHQUFHO0VBQ1pD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Q0RyQixtQkFBbUIsRUFDbkJDLFVBQVU7SUFFZCxDQUFDLEVBQ0RMLE1BQU0sRUFDTjtNQUNFbkIsU0FBUyxFQUFFLE1BQU07TUFDakJFLEtBQUssRUFBRSxpQkFBaUI7TUFDeEJjLEdBQUcsRUFBRSxHQUFHO01BQ1JJLE9BQU8sRUFBRTtJQUNYLENBQUMsRUFDRE0sa0JBQWtCO0VBRXRCLENBQUM7QUFDSDtBQUVBbUIsTUFBTSxDQUFDQyxPQUFPLEdBQUcxQyxNQUFNIiwiZmlsZSI6IjcwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9kb2NzLm9yYWNsZS5jb20vamF2YXNlL3NwZWNzL2pscy9zZTE1L2h0bWwvamxzLTMuaHRtbCNqbHMtMy4xMFxudmFyIGRlY2ltYWxEaWdpdHMgPSAnWzAtOV0oXypbMC05XSkqJztcbnZhciBmcmFjID0gYFxcXFwuKCR7ZGVjaW1hbERpZ2l0c30pYDtcbnZhciBoZXhEaWdpdHMgPSAnWzAtOWEtZkEtRl0oXypbMC05YS1mQS1GXSkqJztcbnZhciBOVU1FUklDID0ge1xuICBjbGFzc05hbWU6ICdudW1iZXInLFxuICB2YXJpYW50czogW1xuICAgIC8vIERlY2ltYWxGbG9hdGluZ1BvaW50TGl0ZXJhbFxuICAgIC8vIGluY2x1ZGluZyBFeHBvbmVudFBhcnRcbiAgICB7IGJlZ2luOiBgKFxcXFxiKCR7ZGVjaW1hbERpZ2l0c30pKCgke2ZyYWN9KXxcXFxcLik/fCgke2ZyYWN9KSlgICtcbiAgICAgIGBbZUVdWystXT8oJHtkZWNpbWFsRGlnaXRzfSlbZkZkRF0/XFxcXGJgIH0sXG4gICAgLy8gZXhjbHVkaW5nIEV4cG9uZW50UGFydFxuICAgIHsgYmVnaW46IGBcXFxcYigke2RlY2ltYWxEaWdpdHN9KSgoJHtmcmFjfSlbZkZkRF0/XFxcXGJ8XFxcXC4oW2ZGZERdXFxcXGIpPylgIH0sXG4gICAgeyBiZWdpbjogYCgke2ZyYWN9KVtmRmREXT9cXFxcYmAgfSxcbiAgICB7IGJlZ2luOiBgXFxcXGIoJHtkZWNpbWFsRGlnaXRzfSlbZkZkRF1cXFxcYmAgfSxcblxuICAgIC8vIEhleGFkZWNpbWFsRmxvYXRpbmdQb2ludExpdGVyYWxcbiAgICB7IGJlZ2luOiBgXFxcXGIwW3hYXSgoJHtoZXhEaWdpdHN9KVxcXFwuP3woJHtoZXhEaWdpdHN9KT9cXFxcLigke2hleERpZ2l0c30pKWAgK1xuICAgICAgYFtwUF1bKy1dPygke2RlY2ltYWxEaWdpdHN9KVtmRmREXT9cXFxcYmAgfSxcblxuICAgIC8vIERlY2ltYWxJbnRlZ2VyTGl0ZXJhbFxuICAgIHsgYmVnaW46ICdcXFxcYigwfFsxLTldKF8qWzAtOV0pKilbbExdP1xcXFxiJyB9LFxuXG4gICAgLy8gSGV4SW50ZWdlckxpdGVyYWxcbiAgICB7IGJlZ2luOiBgXFxcXGIwW3hYXSgke2hleERpZ2l0c30pW2xMXT9cXFxcYmAgfSxcblxuICAgIC8vIE9jdGFsSW50ZWdlckxpdGVyYWxcbiAgICB7IGJlZ2luOiAnXFxcXGIwKF8qWzAtN10pKltsTF0/XFxcXGInIH0sXG5cbiAgICAvLyBCaW5hcnlJbnRlZ2VyTGl0ZXJhbFxuICAgIHsgYmVnaW46ICdcXFxcYjBbYkJdWzAxXShfKlswMV0pKltsTF0/XFxcXGInIH0sXG4gIF0sXG4gIHJlbGV2YW5jZTogMFxufTtcblxuLypcbiBMYW5ndWFnZTogS290bGluXG4gRGVzY3JpcHRpb246IEtvdGxpbiBpcyBhbiBPU1Mgc3RhdGljYWxseSB0eXBlZCBwcm9ncmFtbWluZyBsYW5ndWFnZSB0aGF0IHRhcmdldHMgdGhlIEpWTSwgQW5kcm9pZCwgSmF2YVNjcmlwdCBhbmQgTmF0aXZlLlxuIEF1dGhvcjogU2VyZ2V5IE1hc2hrb3YgPGN5NmVyR24wbUBnbWFpbC5jb20+XG4gV2Vic2l0ZTogaHR0cHM6Ly9rb3RsaW5sYW5nLm9yZ1xuIENhdGVnb3J5OiBjb21tb25cbiAqL1xuXG5mdW5jdGlvbiBrb3RsaW4oaGxqcykge1xuICBjb25zdCBLRVlXT1JEUyA9IHtcbiAgICBrZXl3b3JkOlxuICAgICAgJ2Fic3RyYWN0IGFzIHZhbCB2YXIgdmFyYXJnIGdldCBzZXQgY2xhc3Mgb2JqZWN0IG9wZW4gcHJpdmF0ZSBwcm90ZWN0ZWQgcHVibGljIG5vaW5saW5lICdcbiAgICAgICsgJ2Nyb3NzaW5saW5lIGR5bmFtaWMgZmluYWwgZW51bSBpZiBlbHNlIGRvIHdoaWxlIGZvciB3aGVuIHRocm93IHRyeSBjYXRjaCBmaW5hbGx5ICdcbiAgICAgICsgJ2ltcG9ydCBwYWNrYWdlIGlzIGluIGZ1biBvdmVycmlkZSBjb21wYW5pb24gcmVpZmllZCBpbmxpbmUgbGF0ZWluaXQgaW5pdCAnXG4gICAgICArICdpbnRlcmZhY2UgYW5ub3RhdGlvbiBkYXRhIHNlYWxlZCBpbnRlcm5hbCBpbmZpeCBvcGVyYXRvciBvdXQgYnkgY29uc3RydWN0b3Igc3VwZXIgJ1xuICAgICAgKyAndGFpbHJlYyB3aGVyZSBjb25zdCBpbm5lciBzdXNwZW5kIHR5cGVhbGlhcyBleHRlcm5hbCBleHBlY3QgYWN0dWFsJyxcbiAgICBidWlsdF9pbjpcbiAgICAgICdCeXRlIFNob3J0IENoYXIgSW50IExvbmcgQm9vbGVhbiBGbG9hdCBEb3VibGUgVm9pZCBVbml0IE5vdGhpbmcnLFxuICAgIGxpdGVyYWw6XG4gICAgICAndHJ1ZSBmYWxzZSBudWxsJ1xuICB9O1xuICBjb25zdCBLRVlXT1JEU19XSVRIX0xBQkVMID0ge1xuICAgIGNsYXNzTmFtZTogJ2tleXdvcmQnLFxuICAgIGJlZ2luOiAvXFxiKGJyZWFrfGNvbnRpbnVlfHJldHVybnx0aGlzKVxcYi8sXG4gICAgc3RhcnRzOiB7IGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgICAgIGJlZ2luOiAvQFxcdysvXG4gICAgICB9XG4gICAgXSB9XG4gIH07XG4gIGNvbnN0IExBQkVMID0ge1xuICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgYmVnaW46IGhsanMuVU5ERVJTQ09SRV9JREVOVF9SRSArICdAJ1xuICB9O1xuXG4gIC8vIGZvciBzdHJpbmcgdGVtcGxhdGVzXG4gIGNvbnN0IFNVQlNUID0ge1xuICAgIGNsYXNzTmFtZTogJ3N1YnN0JyxcbiAgICBiZWdpbjogL1xcJFxcey8sXG4gICAgZW5kOiAvXFx9LyxcbiAgICBjb250YWluczogWyBobGpzLkNfTlVNQkVSX01PREUgXVxuICB9O1xuICBjb25zdCBWQVJJQUJMRSA9IHtcbiAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgYmVnaW46ICdcXFxcJCcgKyBobGpzLlVOREVSU0NPUkVfSURFTlRfUkVcbiAgfTtcbiAgY29uc3QgU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcIlwiXCInLFxuICAgICAgICBlbmQ6ICdcIlwiXCIoPz1bXlwiXSknLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIFZBUklBQkxFLFxuICAgICAgICAgIFNVQlNUXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICAvLyBDYW4ndCB1c2UgYnVpbHQtaW4gbW9kZXMgZWFzaWx5LCBhcyB3ZSB3YW50IHRvIHVzZSBTVFJJTkcgaW4gdGhlIG1ldGFcbiAgICAgIC8vIGNvbnRleHQgYXMgJ21ldGEtc3RyaW5nJyBhbmQgdGhlcmUncyBubyBzeW50YXggdG8gcmVtb3ZlIGV4cGxpY2l0bHkgc2V0XG4gICAgICAvLyBjbGFzc05hbWVzIGluIGJ1aWx0LWluIG1vZGVzLlxuICAgICAge1xuICAgICAgICBiZWdpbjogJ1xcJycsXG4gICAgICAgIGVuZDogJ1xcJycsXG4gICAgICAgIGlsbGVnYWw6IC9cXG4vLFxuICAgICAgICBjb250YWluczogWyBobGpzLkJBQ0tTTEFTSF9FU0NBUEUgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcIicsXG4gICAgICAgIGVuZDogJ1wiJyxcbiAgICAgICAgaWxsZWdhbDogL1xcbi8sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgICAgICAgIFZBUklBQkxFLFxuICAgICAgICAgIFNVQlNUXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdXG4gIH07XG4gIFNVQlNULmNvbnRhaW5zLnB1c2goU1RSSU5HKTtcblxuICBjb25zdCBBTk5PVEFUSU9OX1VTRV9TSVRFID0ge1xuICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgIGJlZ2luOiAnQCg/OmZpbGV8cHJvcGVydHl8ZmllbGR8Z2V0fHNldHxyZWNlaXZlcnxwYXJhbXxzZXRwYXJhbXxkZWxlZ2F0ZSlcXFxccyo6KD86XFxcXHMqJyArIGhsanMuVU5ERVJTQ09SRV9JREVOVF9SRSArICcpPydcbiAgfTtcbiAgY29uc3QgQU5OT1RBVElPTiA9IHtcbiAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICBiZWdpbjogJ0AnICsgaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFwoLyxcbiAgICAgICAgZW5kOiAvXFwpLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBobGpzLmluaGVyaXQoU1RSSU5HLCB7IGNsYXNzTmFtZTogJ3N0cmluZycgfSksXG4gICAgICAgICAgXCJzZWxmXCJcbiAgICAgICAgXVxuICAgICAgfVxuICAgIF1cbiAgfTtcblxuICAvLyBodHRwczovL2tvdGxpbmxhbmcub3JnL2RvY3MvcmVmZXJlbmNlL3doYXRzbmV3MTEuaHRtbCN1bmRlcnNjb3Jlcy1pbi1udW1lcmljLWxpdGVyYWxzXG4gIC8vIEFjY29yZGluZyB0byB0aGUgZG9jIGFib3ZlLCB0aGUgbnVtYmVyIG1vZGUgb2Yga290bGluIGlzIHRoZSBzYW1lIGFzIGphdmEgOCxcbiAgLy8gc28gdGhlIGNvZGUgYmVsb3cgaXMgY29waWVkIGZyb20gamF2YS5qc1xuICBjb25zdCBLT1RMSU5fTlVNQkVSX01PREUgPSBOVU1FUklDO1xuICBjb25zdCBLT1RMSU5fTkVTVEVEX0NPTU1FTlQgPSBobGpzLkNPTU1FTlQoXG4gICAgJy9cXFxcKicsICdcXFxcKi8nLFxuICAgIHsgY29udGFpbnM6IFsgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSBdIH1cbiAgKTtcbiAgY29uc3QgS09UTElOX1BBUkVOX1RZUEUgPSB7IHZhcmlhbnRzOiBbXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAndHlwZScsXG4gICAgICBiZWdpbjogaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFXG4gICAgfSxcbiAgICB7XG4gICAgICBiZWdpbjogL1xcKC8sXG4gICAgICBlbmQ6IC9cXCkvLFxuICAgICAgY29udGFpbnM6IFtdIC8vIGRlZmluZWQgbGF0ZXJcbiAgICB9XG4gIF0gfTtcbiAgY29uc3QgS09UTElOX1BBUkVOX1RZUEUyID0gS09UTElOX1BBUkVOX1RZUEU7XG4gIEtPVExJTl9QQVJFTl9UWVBFMi52YXJpYW50c1sxXS5jb250YWlucyA9IFsgS09UTElOX1BBUkVOX1RZUEUgXTtcbiAgS09UTElOX1BBUkVOX1RZUEUudmFyaWFudHNbMV0uY29udGFpbnMgPSBbIEtPVExJTl9QQVJFTl9UWVBFMiBdO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0tvdGxpbicsXG4gICAgYWxpYXNlczogW1xuICAgICAgJ2t0JyxcbiAgICAgICdrdHMnXG4gICAgXSxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ09NTUVOVChcbiAgICAgICAgJy9cXFxcKlxcXFwqJyxcbiAgICAgICAgJ1xcXFwqLycsXG4gICAgICAgIHtcbiAgICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnZG9jdGFnJyxcbiAgICAgICAgICAgICAgYmVnaW46ICdAW0EtWmEtel0rJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgICAgKSxcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIEtPVExJTl9ORVNURURfQ09NTUVOVCxcbiAgICAgIEtFWVdPUkRTX1dJVEhfTEFCRUwsXG4gICAgICBMQUJFTCxcbiAgICAgIEFOTk9UQVRJT05fVVNFX1NJVEUsXG4gICAgICBBTk5PVEFUSU9OLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdmdW5jdGlvbicsXG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdmdW4nLFxuICAgICAgICBlbmQ6ICdbKF18JCcsXG4gICAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgICAgIHJlbGV2YW5jZTogNSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFICsgJ1xcXFxzKlxcXFwoJyxcbiAgICAgICAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICAgICAgY29udGFpbnM6IFsgaGxqcy5VTkRFUlNDT1JFX1RJVExFX01PREUgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAndHlwZScsXG4gICAgICAgICAgICBiZWdpbjogLzwvLFxuICAgICAgICAgICAgZW5kOiAvPi8sXG4gICAgICAgICAgICBrZXl3b3JkczogJ3JlaWZpZWQnLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgICAgICAgICAgYmVnaW46IC9cXCgvLFxuICAgICAgICAgICAgZW5kOiAvXFwpLyxcbiAgICAgICAgICAgIGVuZHNQYXJlbnQ6IHRydWUsXG4gICAgICAgICAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYmVnaW46IC86LyxcbiAgICAgICAgICAgICAgICBlbmQ6IC9bPSxcXC9dLyxcbiAgICAgICAgICAgICAgICBlbmRzV2l0aFBhcmVudDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICAgICAgS09UTElOX1BBUkVOX1RZUEUsXG4gICAgICAgICAgICAgICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICAgICAgICAgICAgICBLT1RMSU5fTkVTVEVEX0NPTU1FTlRcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICAgICAgICAgIEtPVExJTl9ORVNURURfQ09NTUVOVCxcbiAgICAgICAgICAgICAgQU5OT1RBVElPTl9VU0VfU0lURSxcbiAgICAgICAgICAgICAgQU5OT1RBVElPTixcbiAgICAgICAgICAgICAgU1RSSU5HLFxuICAgICAgICAgICAgICBobGpzLkNfTlVNQkVSX01PREVcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIEtPVExJTl9ORVNURURfQ09NTUVOVFxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogW1xuICAgICAgICAgIC9jbGFzc3xpbnRlcmZhY2V8dHJhaXQvLFxuICAgICAgICAgIC9cXHMrLyxcbiAgICAgICAgICBobGpzLlVOREVSU0NPUkVfSURFTlRfUkVcbiAgICAgICAgXSxcbiAgICAgICAgYmVnaW5TY29wZToge1xuICAgICAgICAgIDM6IFwidGl0bGUuY2xhc3NcIlxuICAgICAgICB9LFxuICAgICAgICBrZXl3b3JkczogJ2NsYXNzIGludGVyZmFjZSB0cmFpdCcsXG4gICAgICAgIGVuZDogL1s6XFx7KF18JC8sXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIGlsbGVnYWw6ICdleHRlbmRzIGltcGxlbWVudHMnLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHsgYmVnaW5LZXl3b3JkczogJ3B1YmxpYyBwcm90ZWN0ZWQgaW50ZXJuYWwgcHJpdmF0ZSBjb25zdHJ1Y3RvcicgfSxcbiAgICAgICAgICBobGpzLlVOREVSU0NPUkVfVElUTEVfTU9ERSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICAgICAgICAgIGJlZ2luOiAvPC8sXG4gICAgICAgICAgICBlbmQ6IC8+LyxcbiAgICAgICAgICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSxcbiAgICAgICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3R5cGUnLFxuICAgICAgICAgICAgYmVnaW46IC9bLDpdXFxzKi8sXG4gICAgICAgICAgICBlbmQ6IC9bPFxcKCwpe1xcc118JC8sXG4gICAgICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgICAgICByZXR1cm5FbmQ6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIEFOTk9UQVRJT05fVVNFX1NJVEUsXG4gICAgICAgICAgQU5OT1RBVElPTlxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgU1RSSU5HLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgYmVnaW46IFwiXiMhL3Vzci9iaW4vZW52XCIsXG4gICAgICAgIGVuZDogJyQnLFxuICAgICAgICBpbGxlZ2FsOiAnXFxuJ1xuICAgICAgfSxcbiAgICAgIEtPVExJTl9OVU1CRVJfTU9ERVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBrb3RsaW47XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///70\n");
  1714. /***/ }),
  1715. /* 71 */
  1716. /*!*******************************************************************************************************!*\
  1717. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/highlight.js/lib/languages/less.js ***!
  1718. \*******************************************************************************************************/
  1719. /*! no static exports found */
  1720. /***/ (function(module, exports) {
  1721. eval("var MODES = function MODES(hljs) {\n return {\n IMPORTANT: {\n scope: 'meta',\n begin: '!important'\n },\n BLOCK_COMMENT: hljs.C_BLOCK_COMMENT_MODE,\n HEXCOLOR: {\n scope: 'number',\n begin: /#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\\b/\n },\n FUNCTION_DISPATCH: {\n className: \"built_in\",\n begin: /[\\w-]+(?=\\()/\n },\n ATTRIBUTE_SELECTOR_MODE: {\n scope: 'selector-attr',\n begin: /\\[/,\n end: /\\]/,\n illegal: '$',\n contains: [hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE]\n },\n CSS_NUMBER_MODE: {\n scope: 'number',\n begin: hljs.NUMBER_RE + '(' + '%|em|ex|ch|rem' + '|vw|vh|vmin|vmax' + '|cm|mm|in|pt|pc|px' + '|deg|grad|rad|turn' + '|s|ms' + '|Hz|kHz' + '|dpi|dpcm|dppx' + ')?',\n relevance: 0\n },\n CSS_VARIABLE: {\n className: \"attr\",\n begin: /--[A-Za-z][A-Za-z0-9_-]*/\n }\n };\n};\nvar TAGS = ['a', 'abbr', 'address', 'article', 'aside', 'audio', 'b', 'blockquote', 'body', 'button', 'canvas', 'caption', 'cite', 'code', 'dd', 'del', 'details', 'dfn', 'div', 'dl', 'dt', 'em', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'hgroup', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'mark', 'menu', 'nav', 'object', 'ol', 'p', 'q', 'quote', 'samp', 'section', 'span', 'strong', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'ul', 'var', 'video'];\nvar MEDIA_FEATURES = ['any-hover', 'any-pointer', 'aspect-ratio', 'color', 'color-gamut', 'color-index', 'device-aspect-ratio', 'device-height', 'device-width', 'display-mode', 'forced-colors', 'grid', 'height', 'hover', 'inverted-colors', 'monochrome', 'orientation', 'overflow-block', 'overflow-inline', 'pointer', 'prefers-color-scheme', 'prefers-contrast', 'prefers-reduced-motion', 'prefers-reduced-transparency', 'resolution', 'scan', 'scripting', 'update', 'width',\n// TODO: find a better solution?\n'min-width', 'max-width', 'min-height', 'max-height'];\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes\nvar PSEUDO_CLASSES = ['active', 'any-link', 'blank', 'checked', 'current', 'default', 'defined', 'dir',\n// dir()\n'disabled', 'drop', 'empty', 'enabled', 'first', 'first-child', 'first-of-type', 'fullscreen', 'future', 'focus', 'focus-visible', 'focus-within', 'has',\n// has()\n'host',\n// host or host()\n'host-context',\n// host-context()\n'hover', 'indeterminate', 'in-range', 'invalid', 'is',\n// is()\n'lang',\n// lang()\n'last-child', 'last-of-type', 'left', 'link', 'local-link', 'not',\n// not()\n'nth-child',\n// nth-child()\n'nth-col',\n// nth-col()\n'nth-last-child',\n// nth-last-child()\n'nth-last-col',\n// nth-last-col()\n'nth-last-of-type',\n//nth-last-of-type()\n'nth-of-type',\n//nth-of-type()\n'only-child', 'only-of-type', 'optional', 'out-of-range', 'past', 'placeholder-shown', 'read-only', 'read-write', 'required', 'right', 'root', 'scope', 'target', 'target-within', 'user-invalid', 'valid', 'visited', 'where' // where()\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-elements\nvar PSEUDO_ELEMENTS = ['after', 'backdrop', 'before', 'cue', 'cue-region', 'first-letter', 'first-line', 'grammar-error', 'marker', 'part', 'placeholder', 'selection', 'slotted', 'spelling-error'];\nvar ATTRIBUTES = ['align-content', 'align-items', 'align-self', 'all', 'animation', 'animation-delay', 'animation-direction', 'animation-duration', 'animation-fill-mode', 'animation-iteration-count', 'animation-name', 'animation-play-state', 'animation-timing-function', 'backface-visibility', 'background', 'background-attachment', 'background-blend-mode', 'background-clip', 'background-color', 'background-image', 'background-origin', 'background-position', 'background-repeat', 'background-size', 'block-size', 'border', 'border-block', 'border-block-color', 'border-block-end', 'border-block-end-color', 'border-block-end-style', 'border-block-end-width', 'border-block-start', 'border-block-start-color', 'border-block-start-style', 'border-block-start-width', 'border-block-style', 'border-block-width', 'border-bottom', 'border-bottom-color', 'border-bottom-left-radius', 'border-bottom-right-radius', 'border-bottom-style', 'border-bottom-width', 'border-collapse', 'border-color', 'border-image', 'border-image-outset', 'border-image-repeat', 'border-image-slice', 'border-image-source', 'border-image-width', 'border-inline', 'border-inline-color', 'border-inline-end', 'border-inline-end-color', 'border-inline-end-style', 'border-inline-end-width', 'border-inline-start', 'border-inline-start-color', 'border-inline-start-style', 'border-inline-start-width', 'border-inline-style', 'border-inline-width', 'border-left', 'border-left-color', 'border-left-style', 'border-left-width', 'border-radius', 'border-right', 'border-right-color', 'border-right-style', 'border-right-width', 'border-spacing', 'border-style', 'border-top', 'border-top-color', 'border-top-left-radius', 'border-top-right-radius', 'border-top-style', 'border-top-width', 'border-width', 'bottom', 'box-decoration-break', 'box-shadow', 'box-sizing', 'break-after', 'break-before', 'break-inside', 'caption-side', 'caret-color', 'clear', 'clip', 'clip-path', 'clip-rule', 'color', 'column-count', 'column-fill', 'column-gap', 'column-rule', 'column-rule-color', 'column-rule-style', 'column-rule-width', 'column-span', 'column-width', 'columns', 'contain', 'content', 'content-visibility', 'counter-increment', 'counter-reset', 'cue', 'cue-after', 'cue-before', 'cursor', 'direction', 'display', 'empty-cells', 'filter', 'flex', 'flex-basis', 'flex-direction', 'flex-flow', 'flex-grow', 'flex-shrink', 'flex-wrap', 'float', 'flow', 'font', 'font-display', 'font-family', 'font-feature-settings', 'font-kerning', 'font-language-override', 'font-size', 'font-size-adjust', 'font-smoothing', 'font-stretch', 'font-style', 'font-synthesis', 'font-variant', 'font-variant-caps', 'font-variant-east-asian', 'font-variant-ligatures', 'font-variant-numeric', 'font-variant-position', 'font-variation-settings', 'font-weight', 'gap', 'glyph-orientation-vertical', 'grid', 'grid-area', 'grid-auto-columns', 'grid-auto-flow', 'grid-auto-rows', 'grid-column', 'grid-column-end', 'grid-column-start', 'grid-gap', 'grid-row', 'grid-row-end', 'grid-row-start', 'grid-template', 'grid-template-areas', 'grid-template-columns', 'grid-template-rows', 'hanging-punctuation', 'height', 'hyphens', 'icon', 'image-orientation', 'image-rendering', 'image-resolution', 'ime-mode', 'inline-size', 'isolation', 'justify-content', 'left', 'letter-spacing', 'line-break', 'line-height', 'list-style', 'list-style-image', 'list-style-position', 'list-style-type', 'margin', 'margin-block', 'margin-block-end', 'margin-block-start', 'margin-bottom', 'margin-inline', 'margin-inline-end', 'margin-inline-start', 'margin-left', 'margin-right', 'margin-top', 'marks', 'mask', 'mask-border', 'mask-border-mode', 'mask-border-outset', 'mask-border-repeat', 'mask-border-slice', 'mask-border-source', 'mask-border-width', 'mask-clip', 'mask-composite', 'mask-image', 'mask-mode', 'mask-origin', 'mask-position', 'mask-repeat', 'mask-size', 'mask-type', 'max-block-size', 'max-height', 'max-inline-size', 'max-width', 'min-block-size', 'min-height', 'min-inline-size', 'min-width', 'mix-blend-mode', 'nav-down', 'nav-index', 'nav-left', 'nav-right', 'nav-up', 'none', 'normal', 'object-fit', 'object-position', 'opacity', 'order', 'orphans', 'outline', 'outline-color', 'outline-offset', 'outline-style', 'outline-width', 'overflow', 'overflow-wrap', 'overflow-x', 'overflow-y', 'padding', 'padding-block', 'padding-block-end', 'padding-block-start', 'padding-bottom', 'padding-inline', 'padding-inline-end', 'padding-inline-start', 'padding-left', 'padding-right', 'padding-top', 'page-break-after', 'page-break-before', 'page-break-inside', 'pause', 'pause-after', 'pause-before', 'perspective', 'perspective-origin', 'pointer-events', 'position', 'quotes', 'resize', 'rest', 'rest-after', 'rest-before', 'right', 'row-gap', 'scroll-margin', 'scroll-margin-block', 'scroll-margin-block-end', 'scroll-margin-block-start', 'scroll-margin-bottom', 'scroll-margin-inline', 'scroll-margin-inline-end', 'scroll-margin-inline-start', 'scroll-margin-left', 'scroll-margin-right', 'scroll-margin-top', 'scroll-padding', 'scroll-padding-block', 'scroll-padding-block-end', 'scroll-padding-block-start', 'scroll-padding-bottom', 'scroll-padding-inline', 'scroll-padding-inline-end', 'scroll-padding-inline-start', 'scroll-padding-left', 'scroll-padding-right', 'scroll-padding-top', 'scroll-snap-align', 'scroll-snap-stop', 'scroll-snap-type', 'scrollbar-color', 'scrollbar-gutter', 'scrollbar-width', 'shape-image-threshold', 'shape-margin', 'shape-outside', 'speak', 'speak-as', 'src',\n// @font-face\n'tab-size', 'table-layout', 'text-align', 'text-align-all', 'text-align-last', 'text-combine-upright', 'text-decoration', 'text-decoration-color', 'text-decoration-line', 'text-decoration-style', 'text-emphasis', 'text-emphasis-color', 'text-emphasis-position', 'text-emphasis-style', 'text-indent', 'text-justify', 'text-orientation', 'text-overflow', 'text-rendering', 'text-shadow', 'text-transform', 'text-underline-position', 'top', 'transform', 'transform-box', 'transform-origin', 'transform-style', 'transition', 'transition-delay', 'transition-duration', 'transition-property', 'transition-timing-function', 'unicode-bidi', 'vertical-align', 'visibility', 'voice-balance', 'voice-duration', 'voice-family', 'voice-pitch', 'voice-range', 'voice-rate', 'voice-stress', 'voice-volume', 'white-space', 'widows', 'width', 'will-change', 'word-break', 'word-spacing', 'word-wrap', 'writing-mode', 'z-index'\n// reverse makes sure longer attributes `font-weight` are matched fully\n// instead of getting false positives on say `font`\n].reverse();\n\n// some grammars use them all as a single group\nvar PSEUDO_SELECTORS = PSEUDO_CLASSES.concat(PSEUDO_ELEMENTS);\n\n/*\nLanguage: Less\nDescription: It's CSS, with just a little more.\nAuthor: Max Mikhailov <seven.phases.max@gmail.com>\nWebsite: http://lesscss.org\nCategory: common, css, web\n*/\n\n/** @type LanguageFn */\nfunction less(hljs) {\n var modes = MODES(hljs);\n var PSEUDO_SELECTORS$1 = PSEUDO_SELECTORS;\n var AT_MODIFIERS = \"and or not only\";\n var IDENT_RE = '[\\\\w-]+'; // yes, Less identifiers may begin with a digit\n var INTERP_IDENT_RE = '(' + IDENT_RE + '|@\\\\{' + IDENT_RE + '\\\\})';\n\n /* Generic Modes */\n\n var RULES = [];\n var VALUE_MODES = []; // forward def. for recursive modes\n\n var STRING_MODE = function STRING_MODE(c) {\n return {\n // Less strings are not multiline (also include '~' for more consistent coloring of \"escaped\" strings)\n className: 'string',\n begin: '~?' + c + '.*?' + c\n };\n };\n var IDENT_MODE = function IDENT_MODE(name, begin, relevance) {\n return {\n className: name,\n begin: begin,\n relevance: relevance\n };\n };\n var AT_KEYWORDS = {\n $pattern: /[a-z-]+/,\n keyword: AT_MODIFIERS,\n attribute: MEDIA_FEATURES.join(\" \")\n };\n var PARENS_MODE = {\n // used only to properly balance nested parens inside mixin call, def. arg list\n begin: '\\\\(',\n end: '\\\\)',\n contains: VALUE_MODES,\n keywords: AT_KEYWORDS,\n relevance: 0\n };\n\n // generic Less highlighter (used almost everywhere except selectors):\n VALUE_MODES.push(hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE, STRING_MODE(\"'\"), STRING_MODE('\"'), modes.CSS_NUMBER_MODE,\n // fixme: it does not include dot for numbers like .5em :(\n {\n begin: '(url|data-uri)\\\\(',\n starts: {\n className: 'string',\n end: '[\\\\)\\\\n]',\n excludeEnd: true\n }\n }, modes.HEXCOLOR, PARENS_MODE, IDENT_MODE('variable', '@@?' + IDENT_RE, 10), IDENT_MODE('variable', '@\\\\{' + IDENT_RE + '\\\\}'), IDENT_MODE('built_in', '~?`[^`]*?`'),\n // inline javascript (or whatever host language) *multiline* string\n {\n // @media features (it’s here to not duplicate things in AT_RULE_MODE with extra PARENS_MODE overriding):\n className: 'attribute',\n begin: IDENT_RE + '\\\\s*:',\n end: ':',\n returnBegin: true,\n excludeEnd: true\n }, modes.IMPORTANT, {\n beginKeywords: 'and not'\n }, modes.FUNCTION_DISPATCH);\n var VALUE_WITH_RULESETS = VALUE_MODES.concat({\n begin: /\\{/,\n end: /\\}/,\n contains: RULES\n });\n var MIXIN_GUARD_MODE = {\n beginKeywords: 'when',\n endsWithParent: true,\n contains: [{\n beginKeywords: 'and not'\n }].concat(VALUE_MODES) // using this form to override VALUE’s 'function' match\n };\n\n /* Rule-Level Modes */\n\n var RULE_MODE = {\n begin: INTERP_IDENT_RE + '\\\\s*:',\n returnBegin: true,\n end: /[;}]/,\n relevance: 0,\n contains: [{\n begin: /-(webkit|moz|ms|o)-/\n }, modes.CSS_VARIABLE, {\n className: 'attribute',\n begin: '\\\\b(' + ATTRIBUTES.join('|') + ')\\\\b',\n end: /(?=:)/,\n starts: {\n endsWithParent: true,\n illegal: '[<=$]',\n relevance: 0,\n contains: VALUE_MODES\n }\n }]\n };\n var AT_RULE_MODE = {\n className: 'keyword',\n begin: '@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\\\b',\n starts: {\n end: '[;{}]',\n keywords: AT_KEYWORDS,\n returnEnd: true,\n contains: VALUE_MODES,\n relevance: 0\n }\n };\n\n // variable definitions and calls\n var VAR_RULE_MODE = {\n className: 'variable',\n variants: [\n // using more strict pattern for higher relevance to increase chances of Less detection.\n // this is *the only* Less specific statement used in most of the sources, so...\n // (we’ll still often loose to the css-parser unless there's '//' comment,\n // simply because 1 variable just can't beat 99 properties :)\n {\n begin: '@' + IDENT_RE + '\\\\s*:',\n relevance: 15\n }, {\n begin: '@' + IDENT_RE\n }],\n starts: {\n end: '[;}]',\n returnEnd: true,\n contains: VALUE_WITH_RULESETS\n }\n };\n var SELECTOR_MODE = {\n // first parse unambiguous selectors (i.e. those not starting with tag)\n // then fall into the scary lookahead-discriminator variant.\n // this mode also handles mixin definitions and calls\n variants: [{\n begin: '[\\\\.#:&\\\\[>]',\n end: '[;{}]' // mixin calls end with ';'\n }, {\n begin: INTERP_IDENT_RE,\n end: /\\{/\n }],\n returnBegin: true,\n returnEnd: true,\n illegal: '[<=\\'$\"]',\n relevance: 0,\n contains: [hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE, MIXIN_GUARD_MODE, IDENT_MODE('keyword', 'all\\\\b'), IDENT_MODE('variable', '@\\\\{' + IDENT_RE + '\\\\}'),\n // otherwise it’s identified as tag\n\n {\n begin: '\\\\b(' + TAGS.join('|') + ')\\\\b',\n className: 'selector-tag'\n }, modes.CSS_NUMBER_MODE, IDENT_MODE('selector-tag', INTERP_IDENT_RE, 0), IDENT_MODE('selector-id', '#' + INTERP_IDENT_RE), IDENT_MODE('selector-class', '\\\\.' + INTERP_IDENT_RE, 0), IDENT_MODE('selector-tag', '&', 0), modes.ATTRIBUTE_SELECTOR_MODE, {\n className: 'selector-pseudo',\n begin: ':(' + PSEUDO_CLASSES.join('|') + ')'\n }, {\n className: 'selector-pseudo',\n begin: ':(:)?(' + PSEUDO_ELEMENTS.join('|') + ')'\n }, {\n begin: /\\(/,\n end: /\\)/,\n relevance: 0,\n contains: VALUE_WITH_RULESETS\n },\n // argument list of parametric mixins\n {\n begin: '!important'\n },\n // eat !important after mixin call or it will be colored as tag\n modes.FUNCTION_DISPATCH]\n };\n var PSEUDO_SELECTOR_MODE = {\n begin: IDENT_RE + ':(:)?' + \"(\".concat(PSEUDO_SELECTORS$1.join('|'), \")\"),\n returnBegin: true,\n contains: [SELECTOR_MODE]\n };\n RULES.push(hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE, AT_RULE_MODE, VAR_RULE_MODE, PSEUDO_SELECTOR_MODE, RULE_MODE, SELECTOR_MODE, MIXIN_GUARD_MODE, modes.FUNCTION_DISPATCH);\n return {\n name: 'Less',\n case_insensitive: true,\n illegal: '[=>\\'/<($\"]',\n contains: RULES\n };\n}\nmodule.exports = less;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvbGVzcy5qcyJdLCJuYW1lcyI6WyJNT0RFUyIsImhsanMiLCJJTVBPUlRBTlQiLCJzY29wZSIsImJlZ2luIiwiQkxPQ0tfQ09NTUVOVCIsIkNfQkxPQ0tfQ09NTUVOVF9NT0RFIiwiSEVYQ09MT1IiLCJGVU5DVElPTl9ESVNQQVRDSCIsImNsYXNzTmFtZSIsIkFUVFJJQlVURV9TRUxFQ1RPUl9NT0RFIiwiZW5kIiwiaWxsZWdhbCIsImNvbnRhaW5zIiwiQVBPU19TVFJJTkdfTU9ERSIsIlFVT1RFX1NUUklOR19NT0RFIiwiQ1NTX05VTUJFUl9NT0RFIiwiTlVNQkVSX1JFIiwicmVsZXZhbmNlIiwiQ1NTX1ZBUklBQkxFIiwiVEFHUyIsIk1FRElBX0ZFQVRVUkVTIiwiUFNFVURPX0NMQVNTRVMiLCJQU0VVRE9fRUxFTUVOVFMiLCJBVFRSSUJVVEVTIiwicmV2ZXJzZSIsIlBTRVVET19TRUxFQ1RPUlMiLCJjb25jYXQiLCJsZXNzIiwibW9kZXMiLCJQU0VVRE9fU0VMRUNUT1JTJDEiLCJBVF9NT0RJRklFUlMiLCJJREVOVF9SRSIsIklOVEVSUF9JREVOVF9SRSIsIlJVTEVTIiwiVkFMVUVfTU9ERVMiLCJTVFJJTkdfTU9ERSIsImMiLCJJREVOVF9NT0RFIiwibmFtZSIsIkFUX0tFWVdPUkRTIiwiJHBhdHRlcm4iLCJrZXl3b3JkIiwiYXR0cmlidXRlIiwiam9pbiIsIlBBUkVOU19NT0RFIiwia2V5d29yZHMiLCJwdXNoIiwiQ19MSU5FX0NPTU1FTlRfTU9ERSIsInN0YXJ0cyIsImV4Y2x1ZGVFbmQiLCJyZXR1cm5CZWdpbiIsImJlZ2luS2V5d29yZHMiLCJWQUxVRV9XSVRIX1JVTEVTRVRTIiwiTUlYSU5fR1VBUkRfTU9ERSIsImVuZHNXaXRoUGFyZW50IiwiUlVMRV9NT0RFIiwiQVRfUlVMRV9NT0RFIiwicmV0dXJuRW5kIiwiVkFSX1JVTEVfTU9ERSIsInZhcmlhbnRzIiwiU0VMRUNUT1JfTU9ERSIsIlBTRVVET19TRUxFQ1RPUl9NT0RFIiwiY2FzZV9pbnNlbnNpdGl2ZSIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLElBQU1BLEtBQUssR0FBRyxTQUFSQSxLQUFLLENBQUlDLElBQUksRUFBSztFQUN0QixPQUFPO0lBQ0xDLFNBQVMsRUFBRTtNQUNUQyxLQUFLLEVBQUUsTUFBTTtNQUNiQyxLQUFLLEVBQUU7SUFDVCxDQUFDO0lBQ0RDLGFBQWEsRUFBRUosSUFBSSxDQUFDSyxvQkFBb0I7SUFDeENDLFFBQVEsRUFBRTtNQUNSSixLQUFLLEVBQUUsUUFBUTtNQUNmQyxLQUFLLEVBQUU7SUFDVCxDQUFDO0lBQ0RJLGlCQUFpQixFQUFFO01BQ2pCQyxTQUFTLEVBQUUsVUFBVTtNQUNyQkwsS0FBSyxFQUFFO0lBQ1QsQ0FBQztJQUNETSx1QkFBdUIsRUFBRTtNQUN2QlAsS0FBSyxFQUFFLGVBQWU7TUFDdEJDLEtBQUssRUFBRSxJQUFJO01BQ1hPLEdBQUcsRUFBRSxJQUFJO01BQ1RDLE9BQU8sRUFBRSxHQUFHO01BQ1pDLFFBQVEsRUFBRSxDQUNSWixJQUFJLENBQUNhLGdCQUFnQixFQUNyQmIsSUFBSSxDQUFDYyxpQkFBaUI7SUFFMUIsQ0FBQztJQUNEQyxlQUFlLEVBQUU7TUFDZmIsS0FBSyxFQUFFLFFBQVE7TUFDZkMsS0FBSyxFQUFFSCxJQUFJLENBQUNnQixTQUFTLEdBQUcsR0FBRyxHQUN6QixnQkFBZ0IsR0FDaEIsa0JBQWtCLEdBQ2xCLG9CQUFvQixHQUNwQixvQkFBb0IsR0FDcEIsT0FBTyxHQUNQLFNBQVMsR0FDVCxnQkFBZ0IsR0FDaEIsSUFBSTtNQUNOQyxTQUFTLEVBQUU7SUFDYixDQUFDO0lBQ0RDLFlBQVksRUFBRTtNQUNaVixTQUFTLEVBQUUsTUFBTTtNQUNqQkwsS0FBSyxFQUFFO0lBQ1Q7RUFDRixDQUFDO0FBQ0gsQ0FBQztBQUVELElBQU1nQixJQUFJLEdBQUcsQ0FDWCxHQUFHLEVBQ0gsTUFBTSxFQUNOLFNBQVMsRUFDVCxTQUFTLEVB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SUFBSSIsImZpbGUiOiI3MS5qcyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IE1PREVTID0gKGhsanMpID0+IHtcbiAgcmV0dXJuIHtcbiAgICBJTVBPUlRBTlQ6IHtcbiAgICAgIHNjb3BlOiAnbWV0YScsXG4gICAgICBiZWdpbjogJyFpbXBvcnRhbnQnXG4gICAgfSxcbiAgICBCTE9DS19DT01NRU5UOiBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgIEhFWENPTE9SOiB7XG4gICAgICBzY29wZTogJ251bWJlcicsXG4gICAgICBiZWdpbjogLyMoKFswLTlhLWZBLUZdezMsNH0pfCgoWzAtOWEtZkEtRl17Mn0pezMsNH0pKVxcYi9cbiAgICB9LFxuICAgIEZVTkNUSU9OX0RJU1BBVENIOiB7XG4gICAgICBjbGFzc05hbWU6IFwiYnVpbHRfaW5cIixcbiAgICAgIGJlZ2luOiAvW1xcdy1dKyg/PVxcKCkvXG4gICAgfSxcbiAgICBBVFRSSUJVVEVfU0VMRUNUT1JfTU9ERToge1xuICAgICAgc2NvcGU6ICdzZWxlY3Rvci1hdHRyJyxcbiAgICAgIGJlZ2luOiAvXFxbLyxcbiAgICAgIGVuZDogL1xcXS8sXG4gICAgICBpbGxlZ2FsOiAnJCcsXG4gICAgICBjb250YWluczogW1xuICAgICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREVcbiAgICAgIF1cbiAgICB9LFxuICAgIENTU19OVU1CRVJfTU9ERToge1xuICAgICAgc2NvcGU6ICdudW1iZXInLFxuICAgICAgYmVnaW46IGhsanMuTlVNQkVSX1JFICsgJygnICtcbiAgICAgICAgJyV8ZW18ZXh8Y2h8cmVtJyArXG4gICAgICAgICd8dnd8dmh8dm1pbnx2bWF4JyArXG4gICAgICAgICd8Y218bW18aW58cHR8cGN8cHgnICtcbiAgICAgICAgJ3xkZWd8Z3JhZHxyYWR8dHVybicgK1xuICAgICAgICAnfHN8bXMnICtcbiAgICAgICAgJ3xIenxrSHonICtcbiAgICAgICAgJ3xkcGl8ZHBjbXxkcHB4JyArXG4gICAgICAgICcpPycsXG4gICAgICByZWxldmFuY2U6IDBcbiAgICB9LFxuICAgIENTU19WQVJJQUJMRToge1xuICAgICAgY2xhc3NOYW1lOiBcImF0dHJcIixcbiAgICAgIGJlZ2luOiAvLS1bQS1aYS16XVtBLVphLXowLTlfLV0qL1xuICAgIH1cbiAgfTtcbn07XG5cbmNvbnN0IFRBR1MgPSBbXG4gICdhJyxcbiAgJ2FiYnInLFxuICAnYWRkcmVzcycsXG4gICdhcnRpY2xlJyxcbiAgJ2FzaWRlJyxcbiAgJ2F1ZGlvJyxcbiAgJ2InLFxuICAnYmxvY2txdW90ZScsXG4gICdib2R5JyxcbiAgJ2J1dHRvbicsXG4gICdjYW52YXMnLFxuICAnY2FwdGlvbicsXG4gICdjaXRlJyxcbiAgJ2NvZGUnLFxuICAnZGQnLFxuICAnZGVsJyxcbiAgJ2RldGFpbHMnLFxuICAnZGZuJyxcbiAgJ2RpdicsXG4gICdkbCcsXG4gICdkdCcsXG4gICdlbScsXG4gICdmaWVsZHNldCcsXG4gICdmaWdjYXB0aW9uJyxcbiAgJ2ZpZ3VyZScsXG4gICdmb290ZXInLFxuICAnZm9ybScsXG4gICdoMScsXG4gICdoMicsXG4gICdoMycsXG4gICdoNCcsXG4gICdoNScsXG4gICdoNicsXG4gICdoZWFkZXInLFxuICAnaGdyb3VwJyxcbiAgJ2h0bWwnLFxuICAnaScsXG4gICdpZnJhbWUnLFxuICAnaW1nJyxcbiAgJ2lucHV0JyxcbiAgJ2lucycsXG4gICdrYmQnLFxuICAnbGFiZWwnLFxuICAnbGVnZW5kJyxcbiAgJ2xpJyxcbiAgJ21haW4nLFxuICAnbWFyaycsXG4gICdtZW51JyxcbiAgJ25hdicsXG4gICdvYmplY3QnLFxuICAnb2wnLFxuICAncCcsXG4gICdxJyxcbiAgJ3F1b3RlJyxcbiAgJ3NhbXAnLFxuICAnc2VjdGlvbicsXG4gICdzcGFuJyxcbiAgJ3N0cm9uZycsXG4gICdzdW1tYXJ5JyxcbiAgJ3N1cCcsXG4gICd0YWJsZScsXG4gICd0Ym9keScsXG4gICd0ZCcsXG4gICd0ZXh0YXJlYScsXG4gICd0Zm9vdCcsXG4gICd0aCcsXG4gICd0aGVhZCcsXG4gICd0aW1lJyxcbiAgJ3RyJyxcbiAgJ3VsJyxcbiAgJ3ZhcicsXG4gICd2aWRlbydcbl07XG5cbmNvbnN0IE1FRElBX0ZFQVRVUkVTID0gW1xuICAnYW55LWhvdmVyJyxcbiAgJ2FueS1wb2ludGVyJyxcbiAgJ2FzcGVjdC1yYXRpbycsXG4gICdjb2xvcicsXG4gICdjb2xvci1nYW11dCcsXG4gICdjb2xvci1pbmRleCcsXG4gICdkZXZpY2UtYXNwZWN0LXJhdGlvJyxcbiAgJ2RldmljZS1oZWlnaHQnLFxuICAnZGV2aWNlLXdpZHRoJyxcbiAgJ2Rpc3BsYXktbW9kZScsXG4gICdmb3JjZWQtY29sb3JzJyxcbiAgJ2dyaWQnLFxuICAnaGVpZ2h0JyxcbiAgJ2hvdmVyJyxcbiAgJ2ludmVydGVkLWNvbG9ycycsXG4gICdtb25vY2hyb21lJyxcbiAgJ29yaWVudGF0aW9uJyxcbiAgJ292ZXJmbG93LWJsb2NrJyxcbiAgJ292ZXJmbG93LWlubGluZScsXG4gICdwb2ludGVyJyxcbiAgJ3ByZWZlcnMtY29sb3Itc2NoZW1lJyxcbiAgJ3ByZWZlcnMtY29udHJhc3QnLFxuICAncHJlZmVycy1yZWR1Y2VkLW1vdGlvbicsXG4gICdwcmVmZXJzLXJlZHVjZWQtdHJhbnNwYXJlbmN5JyxcbiAgJ3Jlc29sdXRpb24nLFxuICAnc2NhbicsXG4gICdzY3JpcHRpbmcnLFxuICAndXBkYXRlJyxcbiAgJ3dpZHRoJyxcbiAgLy8gVE9ETzogZmluZCBhIGJldHRlciBzb2x1dGlvbj9cbiAgJ21pbi13aWR0aCcsXG4gICdtYXgtd2lkdGgnLFxuICAnbWluLWhlaWdodCcsXG4gICdtYXgtaGVpZ2h0J1xuXTtcblxuLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL1BzZXVkby1jbGFzc2VzXG5jb25zdCBQU0VVRE9fQ0xBU1NFUyA9IFtcbiAgJ2FjdGl2ZScsXG4gICdhbnktbGluaycsXG4gICdibGFuaycsXG4gICdjaGVja2VkJyxcbiAgJ2N1cnJlbnQnLFxuICAnZGVmYXVsdCcsXG4gICdkZWZpbmVkJyxcbiAgJ2RpcicsIC8vIGRpcigpXG4gICdkaXNhYmxlZCcsXG4gICdkcm9wJyxcbiAgJ2VtcHR5JyxcbiAgJ2VuYWJsZWQnLFxuICAnZmlyc3QnLFxuICAnZmlyc3QtY2hpbGQnLFxuICAnZmlyc3Qtb2YtdHlwZScsXG4gICdmdWxsc2NyZWVuJyxcbiAgJ2Z1dHVyZScsXG4gICdmb2N1cycsXG4gICdmb2N1cy12aXNpYmxlJyxcbiAgJ2ZvY3VzLXdpdGhpbicsXG4gICdoYXMnLCAvLyBoYXMoKVxuICAnaG9zdCcsIC8vIGhvc3Qgb3IgaG9zdCgpXG4gICdob3N0LWNvbnRleHQnLCAvLyBob3N0LWNvbnRleHQoKVxuICAnaG92ZXInLFxuICAnaW5kZXRlcm1pbmF0ZScsXG4gICdpbi1yYW5nZScsXG4gICdpbnZhbGlkJyxcbiAgJ2lzJywgLy8gaXMoKVxuICAnbGFuZycsIC8vIGxhbmcoKVxuICAnbGFzdC1jaGlsZCcsXG4gICdsYXN0LW9mLXR5cGUnLFxuICAnbGVmdCcsXG4gICdsaW5rJyxcbiAgJ2xvY2FsLWxpbmsnLFxuICAnbm90JywgLy8gbm90KClcbiAgJ250aC1jaGlsZCcsIC8vIG50aC1jaGlsZCgpXG4gICdudGgtY29sJywgLy8gbnRoLWNvbCgpXG4gICdudGgtbGFzdC1jaGlsZCcsIC8vIG50aC1sYXN0LWNoaWxkKClcbiAgJ250aC1sYXN0LWNvbCcsIC8vIG50aC1sYXN0LWNvbCgpXG4gICdudGgtbGFzdC1vZi10eXBlJywgLy9udGgtbGFzdC1vZi10eXBlKClcbiAgJ250aC1vZi10eXBlJywgLy9udGgtb2YtdHlwZSgpXG4gICdvbmx5LWNoaWxkJyxcbiAgJ29ubHktb2YtdHlwZScsXG4gICdvcHRpb25hbCcsXG4gICdvdXQtb2YtcmFuZ2UnLFxuICAncGFzdCcsXG4gICdwbGFjZWhvbGRlci1zaG93bicsXG4gICdyZWFkLW9ubHknLFxuICAncmVhZC13cml0ZScsXG4gICdyZXF1aXJlZCcsXG4gICdyaWdodCcsXG4gICdyb290JyxcbiAgJ3Njb3BlJyxcbiAgJ3RhcmdldCcsXG4gICd0YXJnZXQtd2l0aGluJyxcbiAgJ3VzZXItaW52YWxpZCcsXG4gICd2YWxpZCcsXG4gICd2aXNpdGVkJyxcbiAgJ3doZXJlJyAvLyB3aGVyZSgpXG5dO1xuXG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvUHNldWRvLWVsZW1lbnRzXG5jb25zdCBQU0VVRE9fRUxFTUVOVFMgPSBbXG4gICdhZnRlcicsXG4gICdiYWNrZHJvcCcsXG4gICdiZWZvcmUnLFxuICAnY3VlJyxcbiAgJ2N1ZS1yZWdpb24nLFxuICAnZmlyc3QtbGV0dGVyJyxcbiAgJ2ZpcnN0LWxpbmUnLFxuICAnZ3JhbW1hci1lcnJvcicsXG4gICdtYXJrZXInLFxuICAncGFydCcsXG4gICdwbGFjZWhvbGRlcicsXG4gICdzZWxlY3Rpb24nLFxuICAnc2xvdHRlZCcsXG4gICdzcGVsbGluZy1lcnJvcidcbl07XG5cbmNvbnN0IEFUVFJJQlVURVMgPSBbXG4gICdhbGlnbi1jb250ZW50JyxcbiAgJ2FsaWduLWl0ZW1zJyxcbiAgJ2FsaWduLXNlbGYnLFxuICAnYWxsJyxcbiAgJ2FuaW1hdGlvbicsXG4gICdhbmltYXRpb24tZGVsYXknLFxuICAnYW5pbWF0aW9uLWRpcmVjdGlvbicsXG4gICdhbmltYXRpb24tZHVyYXRpb24nLFxuICAnYW5pbWF0aW9uLWZpbGwtbW9kZScsXG4gICdhbmltYXRpb24taXRlcmF0aW9uLWNvdW50JyxcbiAgJ2FuaW1hdGlvbi1uYW1lJyxcbiAgJ2FuaW1hdGlvbi1wbGF5LXN0YXRlJyxcbiAgJ2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24nLFxuICAnYmFja2ZhY2UtdmlzaWJpbGl0eScsXG4gICdiYWNrZ3JvdW5kJyxcbiAgJ2JhY2tncm91bmQtYXR0YWNobWVudCcsXG4gICdiYWNrZ3JvdW5kLWJsZW5kLW1vZGUnLFxuICAnYmFja2dyb3VuZC1jbGlwJyxcbiAgJ2JhY2tncm91bmQtY29sb3InLFxuICAnYmFja2dyb3VuZC1pbWFnZScsXG4gICdiYWNrZ3JvdW5kLW9yaWdpbicsXG4gICdiYWNrZ3JvdW5kLXBvc2l0aW9uJyxcbiAgJ2JhY2tncm91bmQtcmVwZWF0JyxcbiAgJ2JhY2tncm91bmQtc2l6ZScsXG4gICdibG9jay1zaXplJyxcbiAgJ2JvcmRlcicsXG4gICdib3JkZXItYmxvY2snLFxuICAnYm9yZGVyLWJsb2NrLWNvbG9yJyxcbiAgJ2JvcmRlci1ibG9jay1lbmQnLFxuICAnYm9yZGVyLWJsb2NrLWVuZC1jb2xvcicsXG4gICdib3JkZXItYmxvY2stZW5kLXN0eWxlJyxcbiAgJ2JvcmRlci1ibG9jay1lbmQtd2lkdGgnLFxuICAnYm9yZGVyLWJsb2NrLXN0YXJ0JyxcbiAgJ2JvcmRlci1ibG9jay1zdGFydC1jb2xvcicsXG4gICdib3JkZXItYmxvY2stc3RhcnQtc3R5bGUnLFxuICAnYm9yZGVyLWJsb2NrLXN0YXJ0LXdpZHRoJyxcbiAgJ2JvcmRlci1ibG9jay1zdHlsZScsXG4gICdib3JkZXItYmxvY2std2lkdGgnLFxuICAnYm9yZGVyLWJvdHRvbScsXG4gICdib3JkZXItYm90dG9tLWNvbG9yJyxcbiAgJ2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXMnLFxuICAnYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXMnLFxuICAnYm9yZGVyLWJvdHRvbS1zdHlsZScsXG4gICdib3JkZXItYm90dG9tLXdpZHRoJyxcbiAgJ2JvcmRlci1jb2xsYXBzZScsXG4gICdib3JkZXItY29sb3InLFxuICAnYm9yZGVyLWltYWdlJyxcbiAgJ2JvcmRlci1pbWFnZS1vdXRzZXQnLFxuICAnYm9yZGVyLWltYWdlLXJlcGVhdCcsXG4gICdib3JkZXItaW1hZ2Utc2xpY2UnLFxuICAnYm9yZGVyLWltYWdlLXNvdXJjZScsXG4gICdib3JkZXItaW1hZ2Utd2lkdGgnLFxuICAnYm9yZGVyLWlubGluZScsXG4gICdib3JkZXItaW5saW5lLWNvbG9yJyxcbiAgJ2JvcmRlci1pbmxpbmUtZW5kJyxcbiAgJ2JvcmRlci1pbmxpbmUtZW5kLWNvbG9yJyxcbiAgJ2JvcmRlci1pbmxpbmUtZW5kLXN0eWxlJyxcbiAgJ2JvcmRlci1pbmxpbmUtZW5kLXdpZHRoJyxcbiAgJ2JvcmRlci1pbmxpbmUtc3RhcnQnLFxuICAnYm9yZGVyLWlubGluZS1zdGFydC1jb2xvcicsXG4gICdib3JkZXItaW5saW5lLXN0YXJ0LXN0eWxlJyxcbiAgJ2JvcmRlci1pbmxpbmUtc3RhcnQtd2lkdGgnLFxuICAnYm9yZGVyLWlubGluZS1zdHlsZScsXG4gICdib3JkZXItaW5saW5lLXdpZHRoJyxcbiAgJ2JvcmRlci1sZWZ0JyxcbiAgJ2JvcmRlci1sZWZ0LWNvbG9yJyxcbiAgJ2JvcmRlci1sZWZ0LXN0eWxlJyxcbiAgJ2JvcmRlci1sZWZ0LXdpZHRoJyxcbiAgJ2JvcmRlci1yYWRpdXMnLFxuICAnYm9yZGVyLXJpZ2h0JyxcbiAgJ2JvcmRlci1yaWdodC1jb2xvcicsXG4gICdib3JkZXItcmlnaHQtc3R5bGUnLFxuICAnYm9yZGVyLXJpZ2h0LXdpZHRoJyxcbiAgJ2JvcmRlci1zcGFjaW5nJyxcbiAgJ2JvcmRlci1zdHlsZScsXG4gICdib3JkZXItdG9wJyxcbiAgJ2JvcmRlci10b3AtY29sb3InLFxuICAnYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cycsXG4gICdib3JkZXItdG9wLXJpZ2h0LXJhZGl1cycsXG4gICdib3JkZXItdG9wLXN0eWxlJyxcbiAgJ2JvcmRlci10b3Atd2lkdGgnLFxuICAnYm9yZGVyLXdpZHRoJyxcbiAgJ2JvdHRvbScsXG4gICdib3gtZGVjb3JhdGlvbi1icmVhaycsXG4gICdib3gtc2hhZG93JyxcbiAgJ2JveC1zaXppbmcnLFxuICAnYnJlYWstYWZ0ZXInLFxuICAnYnJlYWstYmVmb3JlJyxcbiAgJ2JyZWFrLWluc2lkZScsXG4gICdjYXB0aW9uLXNpZGUnLFxuICAnY2FyZXQtY29sb3InLFxuICAnY2xlYXInLFxuICAnY2xpcCcsXG4gICdjbGlwLXBhdGgnLFxuICAnY2xpcC1ydWxlJyxcbiAgJ2NvbG9yJyxcbiAgJ2NvbHVtbi1jb3VudCcsXG4gICdjb2x1bW4tZmlsbCcsXG4gICdjb2x1bW4tZ2FwJyxcbiAgJ2NvbHVtbi1ydWxlJyxcbiAgJ2NvbHVtbi1ydWxlLWNvbG9yJyxcbiAgJ2NvbHVtbi1ydWxlLXN0eWxlJyxcbiAgJ2NvbHVtbi1ydWxlLXdpZHRoJyxcbiAgJ2NvbHVtbi1zcGFuJyxcbiAgJ2NvbHVtbi13aWR0aCcsXG4gICdjb2x1bW5zJyxcbiAgJ2NvbnRhaW4nLFxuICAnY29udGVudCcsXG4gICdjb250ZW50LXZpc2liaWxpdHknLFxuICAnY291bnRlci1pbmNyZW1lbnQnLFxuICAnY291bnRlci1yZXNldCcsXG4gICdjdWUnLFxuICAnY3VlLWFmdGVyJyxcbiAgJ2N1ZS1iZWZvcmUnLFxuICAnY3Vyc29yJyxcbiAgJ2RpcmVjdGlvbicsXG4gICdkaXNwbGF5JyxcbiAgJ2VtcHR5LWNlbGxzJyxcbiAgJ2ZpbHRlcicsXG4gICdmbGV4JyxcbiAgJ2ZsZXgtYmFzaXMnLFxuICAnZmxleC1kaXJlY3Rpb24nLFxuICAnZmxleC1mbG93JyxcbiAgJ2ZsZXgtZ3JvdycsXG4gICdmbGV4LXNocmluaycsXG4gICdmbGV4LXdyYXAnLFxuICAnZmxvYXQnLFxuICAnZmxvdycsXG4gICdmb250JyxcbiAgJ2ZvbnQtZGlzcGxheScsXG4gICdmb250LWZhbWlseScsXG4gICdmb250LWZlYXR1cmUtc2V0dGluZ3MnLFxuICAnZm9udC1rZXJuaW5nJyxcbiAgJ2ZvbnQtbGFuZ3VhZ2Utb3ZlcnJpZGUnLFxuICAnZm9udC1zaXplJyxcbiAgJ2ZvbnQtc2l6ZS1hZGp1c3QnLFxuICAnZm9udC1zbW9vdGhpbmcnLFxuICAnZm9udC1zdHJldGNoJyxcbiAgJ2ZvbnQtc3R5bGUnLFxuICAnZm9udC1zeW50aGVzaXMnLFxuICAnZm9udC12YXJpYW50JyxcbiAgJ2ZvbnQtdmFyaWFudC1jYXBzJyxcbiAgJ2ZvbnQtdmFyaWFudC1lYXN0LWFzaWFuJyxcbiAgJ2ZvbnQtdmFyaWFudC1saWdhdHVyZXMnLFxuICAnZm9udC12YXJpYW50LW51bWVyaWMnLFxuICAnZm9udC12YXJpYW50LXBvc2l0aW9uJyxcbiAgJ2ZvbnQtdmFyaWF0aW9uLXNldHRpbmdzJyxcbiAgJ2ZvbnQtd2VpZ2h0JyxcbiAgJ2dhcCcsXG4gICdnbHlwaC1vcmllbnRhdGlvbi12ZXJ0aWNhbCcsXG4gICdncmlkJyxcbiAgJ2dyaWQtYXJlYScsXG4gICdncmlkLWF1dG8tY29sdW1ucycsXG4gICdncmlkLWF1dG8tZmxvdycsXG4gICdncmlkLWF1dG8tcm93cycsXG4gICdncmlkLWNvbHVtbicsXG4gICdncmlkLWNvbHVtbi1lbmQnLFxuICAnZ3JpZC1jb2x1bW4tc3RhcnQnLFxuICAnZ3JpZC1nYXAnLFxuICAnZ3JpZC1yb3cnLFxuICAnZ3JpZC1yb3ctZW5kJyxcbiAgJ2dyaWQtcm93LXN0YXJ0JyxcbiAgJ2dyaWQtdGVtcGxhdGUnLFxuICAnZ3JpZC10ZW1wbGF0ZS1hcmVhcycsXG4gICdncmlkLXRlbXBsYXRlLWNvbHVtbnMnLFxuICAnZ3JpZC10ZW1wbGF0ZS1yb3dzJyxcbiAgJ2hhbmdpbmctcHVuY3R1YXRpb24nLFxuICAnaGVpZ2h0JyxcbiAgJ2h5cGhlbnMnLFxuICAnaWNvbicsXG4gICdpbWFnZS1vcmllbnRhdGlvbicsXG4gICdpbWFnZS1yZW5kZXJpbmcnLFxuICAnaW1hZ2UtcmVzb2x1dGlvbicsXG4gICdpbWUtbW9kZScsXG4gICdpbmxpbmUtc2l6ZScsXG4gICdpc29sYXRpb24nLFxuICAnanVzdGlmeS1jb250ZW50JyxcbiAgJ2xlZnQnLFxuICAnbGV0dGVyLXNwYWNpbmcnLFxuICAnbGluZS1icmVhaycsXG4gICdsaW5lLWhlaWdodCcsXG4gICdsaXN0LXN0eWxlJyxcbiAgJ2xpc3Qtc3R5bGUtaW1hZ2UnLFxuICAnbGlzdC1zdHlsZS1wb3NpdGlvbicsXG4gICdsaXN0LXN0eWxlLXR5cGUnLFxuICAnbWFyZ2luJyxcbiAgJ21hcmdpbi1ibG9jaycsXG4gICdtYXJnaW4tYmxvY2stZW5kJyxcbiAgJ21hcmdpbi1ibG9jay1zdGFydCcsXG4gICdtYXJnaW4tYm90dG9tJyxcbiAgJ21hcmdpbi1pbmxpbmUnLFxuICAnbWFyZ2luLWlubGluZS1lbmQnLFxuICAnbWFyZ2luLWlubGluZS1zdGFydCcsXG4gICdtYXJnaW4tbGVmdCcsXG4gICdtYXJnaW4tcmlnaHQnLFxuICAnbWFyZ2luLXRvcCcsXG4gICdtYXJrcycsXG4gICdtYXNrJyxcbiAgJ21hc2stYm9yZGVyJyxcbiAgJ21hc2stYm9yZGVyLW1vZGUnLFxuICAnbWFzay1ib3JkZXItb3V0c2V0JyxcbiAgJ21hc2stYm9yZGVyLXJlcGVhdCcsXG4gICdtYXNrLWJvcmRlci1zbGljZScsXG4gICdtYXNrLWJvcmRlci1zb3VyY2UnLFxuICAnbWFzay1ib3JkZXItd2lkdGgnLFxuICAnbWFzay1jbGlwJyxcbiAgJ21hc2stY29tcG9zaXRlJyxcbiAgJ21hc2staW1hZ2UnLFxuICAnbWFzay1tb2RlJyxcbiAgJ21hc2stb3JpZ2luJyxcbiAgJ21hc2stcG9zaXRpb24nLFxuICAnbWFzay1yZXBlYXQnLFxuICAnbWFzay1zaXplJyxcbiAgJ21hc2stdHlwZScsXG4gICdtYXgtYmxvY2stc2l6ZScsXG4gICdtYXgtaGVpZ2h0JyxcbiAgJ21heC1pbmxpbmUtc2l6ZScsXG4gICdtYXgtd2lkdGgnLFxuICAnbWluLWJsb2NrLXNpemUnLFxuICAnbWluLWhlaWdodCcsXG4gICdtaW4taW5saW5lLXNpemUnLFxuICAnbWluLXdpZHRoJyxcbiAgJ21peC1ibGVuZC1tb2RlJyxcbiAgJ25hdi1kb3duJyxcbiAgJ25hdi1pbmRleCcsXG4gICduYXYtbGVmdCcsXG4gICduYXYtcmlnaHQnLFxuICAnbmF2LXVwJyxcbiAgJ25vbmUnLFxuICAnbm9ybWFsJyxcbiAgJ29iamVjdC1maXQnLFxuICAnb2JqZWN0LXBvc2l0aW9uJyxcbiAgJ29wYWNpdHknLFxuICAnb3JkZXInLFxuICAnb3JwaGFucycsXG4gICdvdXRsaW5lJyxcbiAgJ291dGxpbmUtY29sb3InLFxuICAnb3V0bGluZS1vZmZzZXQnLFxuICAnb3V0bGluZS1zdHlsZScsXG4gICdvdXRsaW5lLXdpZHRoJyxcbiAgJ292ZXJmbG93JyxcbiAgJ292ZXJmbG93LXdyYXAnLFxuICAnb3ZlcmZsb3cteCcsXG4gICdvdmVyZmxvdy15JyxcbiAgJ3BhZGRpbmcnLFxuICAncGFkZGluZy1ibG9jaycsXG4gICdwYWRkaW5nLWJsb2NrLWVuZCcsXG4gICdwYWRkaW5nLWJsb2NrLXN0YXJ0JyxcbiAgJ3BhZGRpbmctYm90dG9tJyxcbiAgJ3BhZGRpbmctaW5saW5lJyxcbiAgJ3BhZGRpbmctaW5saW5lLWVuZCcsXG4gICdwYWRkaW5nLWlubGluZS1zdGFydCcsXG4gICdwYWRkaW5nLWxlZnQnLFxuICAncGFkZGluZy1yaWdodCcsXG4gICdwYWRkaW5nLXRvcCcsXG4gICdwYWdlLWJyZWFrLWFmdGVyJyxcbiAgJ3BhZ2UtYnJlYWstYmVmb3JlJyxcbiAgJ3BhZ2UtYnJlYWstaW5zaWRlJyxcbiAgJ3BhdXNlJyxcbiAgJ3BhdXNlLWFmdGVyJyxcbiAgJ3BhdXNlLWJlZm9yZScsXG4gICdwZXJzcGVjdGl2ZScsXG4gICdwZXJzcGVjdGl2ZS1vcmlnaW4nLFxuICAncG9pbnRlci1ldmVudHMnLFxuICAncG9zaXRpb24nLFxuICAncXVvdGVzJyxcbiAgJ3Jlc2l6ZScsXG4gICdyZXN0JyxcbiAgJ3Jlc3QtYWZ0ZXInLFxuICAncmVzdC1iZWZvcmUnLFxuICAncmlnaHQnLFxuICAncm93LWdhcCcsXG4gICdzY3JvbGwtbWFyZ2luJyxcbiAgJ3Njcm9sbC1tYXJnaW4tYmxvY2snLFxuICAnc2Nyb2xsLW1hcmdpbi1ibG9jay1lbmQnLFxuICAnc2Nyb2xsLW1hcmdpbi1ibG9jay1zdGFydCcsXG4gICdzY3JvbGwtbWFyZ2luLWJvdHRvbScsXG4gICdzY3JvbGwtbWFyZ2luLWlubGluZScsXG4gICdzY3JvbGwtbWFyZ2luLWlubGluZS1lbmQnLFxuICAnc2Nyb2xsLW1hcmdpbi1pbmxpbmUtc3RhcnQnLFxuICAnc2Nyb2xsLW1hcmdpbi1sZWZ0JyxcbiAgJ3Njcm9sbC1tYXJnaW4tcmlnaHQnLFxuICAnc2Nyb2xsLW1hcmdpbi10b3AnLFxuICAnc2Nyb2xsLXBhZGRpbmcnLFxuICAnc2Nyb2xsLXBhZGRpbmctYmxvY2snLFxuICAnc2Nyb2xsLXBhZGRpbmctYmxvY2stZW5kJyxcbiAgJ3Njcm9sbC1wYWRkaW5nLWJsb2NrLXN0YXJ0JyxcbiAgJ3Njcm9sbC1wYWRkaW5nLWJvdHRvbScsXG4gICdzY3JvbGwtcGFkZGluZy1pbmxpbmUnLFxuICAnc2Nyb2xsLXBhZGRpbmctaW5saW5lLWVuZCcsXG4gICdzY3JvbGwtcGFkZGluZy1pbmxpbmUtc3RhcnQnLFxuICAnc2Nyb2xsLXBhZGRpbmctbGVmdCcsXG4gICdzY3JvbGwtcGFkZGluZy1yaWdodCcsXG4gICdzY3JvbGwtcGFkZGluZy10b3AnLFxuICAnc2Nyb2xsLXNuYXAtYWxpZ24nLFxuICAnc2Nyb2xsLXNuYXAtc3RvcCcsXG4gICdzY3JvbGwtc25hcC10eXBlJyxcbiAgJ3Njcm9sbGJhci1jb2xvcicsXG4gICdzY3JvbGxiYXItZ3V0dGVyJyxcbiAgJ3Njcm9sbGJhci13aWR0aCcsXG4gICdzaGFwZS1pbWFnZS10aHJlc2hvbGQnLFxuICAnc2hhcGUtbWFyZ2luJyxcbiAgJ3NoYXBlLW91dHNpZGUnLFxuICAnc3BlYWsnLFxuICAnc3BlYWstYXMnLFxuICAnc3JjJywgLy8gQGZvbnQtZmFjZVxuICAndGFiLXNpemUnLFxuICAndGFibGUtbGF5b3V0JyxcbiAgJ3RleHQtYWxpZ24nLFxuICAndGV4dC1hbGlnbi1hbGwnLFxuICAndGV4dC1hbGlnbi1sYXN0JyxcbiAgJ3RleHQtY29tYmluZS11cHJpZ2h0JyxcbiAgJ3RleHQtZGVjb3JhdGlvbicsXG4gICd0ZXh0LWRlY29yYXRpb24tY29sb3InLFxuICAndGV4dC1kZWNvcmF0aW9uLWxpbmUnLFxuICAndGV4dC1kZWNvcmF0aW9uLXN0eWxlJyxcbiAgJ3RleHQtZW1waGFzaXMnLFxuICAndGV4dC1lbXBoYXNpcy1jb2xvcicsXG4gICd0ZXh0LWVtcGhhc2lzLXBvc2l0aW9uJyxcbiAgJ3RleHQtZW1waGFzaXMtc3R5bGUnLFxuICAndGV4dC1pbmRlbnQnLFxuICAndGV4dC1qdXN0aWZ5JyxcbiAgJ3RleHQtb3JpZW50YXRpb24nLFxuICAndGV4dC1vdmVyZmxvdycsXG4gICd0ZXh0LXJlbmRlcmluZycsXG4gICd0ZXh0LXNoYWRvdycsXG4gICd0ZXh0LXRyYW5zZm9ybScsXG4gICd0ZXh0LXVuZGVybGluZS1wb3NpdGlvbicsXG4gICd0b3AnLFxuICAndHJhbnNmb3JtJyxcbiAgJ3RyYW5zZm9ybS1ib3gnLFxuICAndHJhbnNmb3JtLW9yaWdpbicsXG4gICd0cmFuc2Zvcm0tc3R5bGUnLFxuICAndHJhbnNpdGlvbicsXG4gICd0cmFuc2l0aW9uLWRlbGF5JyxcbiAgJ3RyYW5zaXRpb24tZHVyYXRpb24nLFxuICAndHJhbnNpdGlvbi1wcm9wZXJ0eScsXG4gICd0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbicsXG4gICd1bmljb2RlLWJpZGknLFxuICAndmVydGljYWwtYWxpZ24nLFxuICAndmlzaWJpbGl0eScsXG4gICd2b2ljZS1iYWxhbmNlJyxcbiAgJ3ZvaWNlLWR1cmF0aW9uJyxcbiAgJ3ZvaWNlLWZhbWlseScsXG4gICd2b2ljZS1waXRjaCcsXG4gICd2b2ljZS1yYW5nZScsXG4gICd2b2ljZS1yYXRlJyxcbiAgJ3ZvaWNlLXN0cmVzcycsXG4gICd2b2ljZS12b2x1bWUnLFxuICAnd2hpdGUtc3BhY2UnLFxuICAnd2lkb3dzJyxcbiAgJ3dpZHRoJyxcbiAgJ3dpbGwtY2hhbmdlJyxcbiAgJ3dvcmQtYnJlYWsnLFxuICAnd29yZC1zcGFjaW5nJyxcbiAgJ3dvcmQtd3JhcCcsXG4gICd3cml0aW5nLW1vZGUnLFxuICAnei1pbmRleCdcbiAgLy8gcmV2ZXJzZSBtYWtlcyBzdXJlIGxvbmdlciBhdHRyaWJ1dGVzIGBmb250LXdlaWdodGAgYXJlIG1hdGNoZWQgZnVsbHlcbiAgLy8gaW5zdGVhZCBvZiBnZXR0aW5nIGZhbHNlIHBvc2l0aXZlcyBvbiBzYXkgYGZvbnRgXG5dLnJldmVyc2UoKTtcblxuLy8gc29tZSBncmFtbWFycyB1c2UgdGhlbSBhbGwgYXMgYSBzaW5nbGUgZ3JvdXBcbmNvbnN0IFBTRVVET19TRUxFQ1RPUlMgPSBQU0VVRE9fQ0xBU1NFUy5jb25jYXQoUFNFVURPX0VMRU1FTlRTKTtcblxuLypcbkxhbmd1YWdlOiBMZXNzXG5EZXNjcmlwdGlvbjogSXQncyBDU1MsIHdpdGgganVzdCBhIGxpdHRsZSBtb3JlLlxuQXV0aG9yOiAgIE1heCBNaWtoYWlsb3YgPHNldmVuLnBoYXNlcy5tYXhAZ21haWwuY29tPlxuV2Vic2l0ZTogaHR0cDovL2xlc3Njc3Mub3JnXG5DYXRlZ29yeTogY29tbW9uLCBjc3MsIHdlYlxuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIGxlc3MoaGxqcykge1xuICBjb25zdCBtb2RlcyA9IE1PREVTKGhsanMpO1xuICBjb25zdCBQU0VVRE9fU0VMRUNUT1JTJDEgPSBQU0VVRE9fU0VMRUNUT1JTO1xuXG4gIGNvbnN0IEFUX01PRElGSUVSUyA9IFwiYW5kIG9yIG5vdCBvbmx5XCI7XG4gIGNvbnN0IElERU5UX1JFID0gJ1tcXFxcdy1dKyc7IC8vIHllcywgTGVzcyBpZGVudGlmaWVycyBtYXkgYmVnaW4gd2l0aCBhIGRpZ2l0XG4gIGNvbnN0IElOVEVSUF9JREVOVF9SRSA9ICcoJyArIElERU5UX1JFICsgJ3xAXFxcXHsnICsgSURFTlRfUkUgKyAnXFxcXH0pJztcblxuICAvKiBHZW5lcmljIE1vZGVzICovXG5cbiAgY29uc3QgUlVMRVMgPSBbXTsgY29uc3QgVkFMVUVfTU9ERVMgPSBbXTsgLy8gZm9yd2FyZCBkZWYuIGZvciByZWN1cnNpdmUgbW9kZXNcblxuICBjb25zdCBTVFJJTkdfTU9ERSA9IGZ1bmN0aW9uKGMpIHtcbiAgICByZXR1cm4ge1xuICAgIC8vIExlc3Mgc3RyaW5ncyBhcmUgbm90IG11bHRpbGluZSAoYWxzbyBpbmNsdWRlICd+JyBmb3IgbW9yZSBjb25zaXN0ZW50IGNvbG9yaW5nIG9mIFwiZXNjYXBlZFwiIHN0cmluZ3MpXG4gICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgYmVnaW46ICd+PycgKyBjICsgJy4qPycgKyBjXG4gICAgfTtcbiAgfTtcblxuICBjb25zdCBJREVOVF9NT0RFID0gZnVuY3Rpb24obmFtZSwgYmVnaW4sIHJlbGV2YW5jZSkge1xuICAgIHJldHVybiB7XG4gICAgICBjbGFzc05hbWU6IG5hbWUsXG4gICAgICBiZWdpbjogYmVnaW4sXG4gICAgICByZWxldmFuY2U6IHJlbGV2YW5jZVxuICAgIH07XG4gIH07XG5cbiAgY29uc3QgQVRfS0VZV09SRFMgPSB7XG4gICAgJHBhdHRlcm46IC9bYS16LV0rLyxcbiAgICBrZXl3b3JkOiBBVF9NT0RJRklFUlMsXG4gICAgYXR0cmlidXRlOiBNRURJQV9GRUFUVVJFUy5qb2luKFwiIFwiKVxuICB9O1xuXG4gIGNvbnN0IFBBUkVOU19NT0RFID0ge1xuICAgIC8vIHVzZWQgb25seSB0byBwcm9wZXJseSBiYWxhbmNlIG5lc3RlZCBwYXJlbnMgaW5zaWRlIG1peGluIGNhbGwsIGRlZi4gYXJnIGxpc3RcbiAgICBiZWdpbjogJ1xcXFwoJyxcbiAgICBlbmQ6ICdcXFxcKScsXG4gICAgY29udGFpbnM6IFZBTFVFX01PREVTLFxuICAgIGtleXdvcmRzOiBBVF9LRVlXT1JEUyxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICAvLyBnZW5lcmljIExlc3MgaGlnaGxpZ2h0ZXIgKHVzZWQgYWxtb3N0IGV2ZXJ5d2hlcmUgZXhjZXB0IHNlbGVjdG9ycyk6XG4gIFZBTFVFX01PREVTLnB1c2goXG4gICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgU1RSSU5HX01PREUoXCInXCIpLFxuICAgIFNUUklOR19NT0RFKCdcIicpLFxuICAgIG1vZGVzLkNTU19OVU1CRVJfTU9ERSwgLy8gZml4bWU6IGl0IGRvZXMgbm90IGluY2x1ZGUgZG90IGZvciBudW1iZXJzIGxpa2UgLjVlbSA6KFxuICAgIHtcbiAgICAgIGJlZ2luOiAnKHVybHxkYXRhLXVyaSlcXFxcKCcsXG4gICAgICBzdGFydHM6IHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgZW5kOiAnW1xcXFwpXFxcXG5dJyxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZVxuICAgICAgfVxuICAgIH0sXG4gICAgbW9kZXMuSEVYQ09MT1IsXG4gICAgUEFSRU5TX01PREUsXG4gICAgSURFTlRfTU9ERSgndmFyaWFibGUnLCAnQEA/JyArIElERU5UX1JFLCAxMCksXG4gICAgSURFTlRfTU9ERSgndmFyaWFibGUnLCAnQFxcXFx7JyArIElERU5UX1JFICsgJ1xcXFx9JyksXG4gICAgSURFTlRfTU9ERSgnYnVpbHRfaW4nLCAnfj9gW15gXSo/YCcpLCAvLyBpbmxpbmUgamF2YXNjcmlwdCAob3Igd2hhdGV2ZXIgaG9zdCBsYW5ndWFnZSkgKm11bHRpbGluZSogc3RyaW5nXG4gICAgeyAvLyBAbWVkaWEgZmVhdHVyZXMgKGl04oCZcyBoZXJlIHRvIG5vdCBkdXBsaWNhdGUgdGhpbmdzIGluIEFUX1JVTEVfTU9ERSB3aXRoIGV4dHJhIFBBUkVOU19NT0RFIG92ZXJyaWRpbmcpOlxuICAgICAgY2xhc3NOYW1lOiAnYXR0cmlidXRlJyxcbiAgICAgIGJlZ2luOiBJREVOVF9SRSArICdcXFxccyo6JyxcbiAgICAgIGVuZDogJzonLFxuICAgICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICBleGNsdWRlRW5kOiB0cnVlXG4gICAgfSxcbiAgICBtb2Rlcy5JTVBPUlRBTlQsXG4gICAgeyBiZWdpbktleXdvcmRzOiAnYW5kIG5vdCcgfSxcbiAgICBtb2Rlcy5GVU5DVElPTl9ESVNQQVRDSFxuICApO1xuXG4gIGNvbnN0IFZBTFVFX1dJVEhfUlVMRVNFVFMgPSBWQUxVRV9NT0RFUy5jb25jYXQoe1xuICAgIGJlZ2luOiAvXFx7LyxcbiAgICBlbmQ6IC9cXH0vLFxuICAgIGNvbnRhaW5zOiBSVUxFU1xuICB9KTtcblxuICBjb25zdCBNSVhJTl9HVUFSRF9NT0RFID0ge1xuICAgIGJlZ2luS2V5d29yZHM6ICd3aGVuJyxcbiAgICBlbmRzV2l0aFBhcmVudDogdHJ1ZSxcbiAgICBjb250YWluczogWyB7IGJlZ2luS2V5d29yZHM6ICdhbmQgbm90JyB9IF0uY29uY2F0KFZBTFVFX01PREVTKSAvLyB1c2luZyB0aGlzIGZvcm0gdG8gb3ZlcnJpZGUgVkFMVUXigJlzICdmdW5jdGlvbicgbWF0Y2hcbiAgfTtcblxuICAvKiBSdWxlLUxldmVsIE1vZGVzICovXG5cbiAgY29uc3QgUlVMRV9NT0RFID0ge1xuICAgIGJlZ2luOiBJTlRFUlBfSURFTlRfUkUgKyAnXFxcXHMqOicsXG4gICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgZW5kOiAvWzt9XS8sXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7IGJlZ2luOiAvLSh3ZWJraXR8bW96fG1zfG8pLS8gfSxcbiAgICAgIG1vZGVzLkNTU19WQVJJQUJMRSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnYXR0cmlidXRlJyxcbiAgICAgICAgYmVnaW46ICdcXFxcYignICsgQVRUUklCVVRFUy5qb2luKCd8JykgKyAnKVxcXFxiJyxcbiAgICAgICAgZW5kOiAvKD89OikvLFxuICAgICAgICBzdGFydHM6IHtcbiAgICAgICAgICBlbmRzV2l0aFBhcmVudDogdHJ1ZSxcbiAgICAgICAgICBpbGxlZ2FsOiAnWzw9JF0nLFxuICAgICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgICBjb250YWluczogVkFMVUVfTU9ERVNcbiAgICAgICAgfVxuICAgICAgfVxuICAgIF1cbiAgfTtcblxuICBjb25zdCBBVF9SVUxFX01PREUgPSB7XG4gICAgY2xhc3NOYW1lOiAna2V5d29yZCcsXG4gICAgYmVnaW46ICdAKGltcG9ydHxtZWRpYXxjaGFyc2V0fGZvbnQtZmFjZXwoLVthLXpdKy0pP2tleWZyYW1lc3xzdXBwb3J0c3xkb2N1bWVudHxuYW1lc3BhY2V8cGFnZXx2aWV3cG9ydHxob3N0KVxcXFxiJyxcbiAgICBzdGFydHM6IHtcbiAgICAgIGVuZDogJ1s7e31dJyxcbiAgICAgIGtleXdvcmRzOiBBVF9LRVlXT1JEUyxcbiAgICAgIHJldHVybkVuZDogdHJ1ZSxcbiAgICAgIGNvbnRhaW5zOiBWQUxVRV9NT0RFUyxcbiAgICAgIHJlbGV2YW5jZTogMFxuICAgIH1cbiAgfTtcblxuICAvLyB2YXJpYWJsZSBkZWZpbml0aW9ucyBhbmQgY2FsbHNcbiAgY29uc3QgVkFSX1JVTEVfTU9ERSA9IHtcbiAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIC8vIHVzaW5nIG1vcmUgc3RyaWN0IHBhdHRlcm4gZm9yIGhpZ2hlciByZWxldmFuY2UgdG8gaW5jcmVhc2UgY2hhbmNlcyBvZiBMZXNzIGRldGVjdGlvbi5cbiAgICAgIC8vIHRoaXMgaXMgKnRoZSBvbmx5KiBMZXNzIHNwZWNpZmljIHN0YXRlbWVudCB1c2VkIGluIG1vc3Qgb2YgdGhlIHNvdXJjZXMsIHNvLi4uXG4gICAgICAvLyAod2XigJlsbCBzdGlsbCBvZnRlbiBsb29zZSB0byB0aGUgY3NzLXBhcnNlciB1bmxlc3MgdGhlcmUncyAnLy8nIGNvbW1lbnQsXG4gICAgICAvLyBzaW1wbHkgYmVjYXVzZSAxIHZhcmlhYmxlIGp1c3QgY2FuJ3QgYmVhdCA5OSBwcm9wZXJ0aWVzIDopXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnQCcgKyBJREVOVF9SRSArICdcXFxccyo6JyxcbiAgICAgICAgcmVsZXZhbmNlOiAxNVxuICAgICAgfSxcbiAgICAgIHsgYmVnaW46ICdAJyArIElERU5UX1JFIH1cbiAgICBdLFxuICAgIHN0YXJ0czoge1xuICAgICAgZW5kOiAnWzt9XScsXG4gICAgICByZXR1cm5FbmQ6IHRydWUsXG4gICAgICBjb250YWluczogVkFMVUVfV0lUSF9SVUxFU0VUU1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBTRUxFQ1RPUl9NT0RFID0ge1xuICAgIC8vIGZpcnN0IHBhcnNlIHVuYW1iaWd1b3VzIHNlbGVjdG9ycyAoaS5lLiB0aG9zZSBub3Qgc3RhcnRpbmcgd2l0aCB0YWcpXG4gICAgLy8gdGhlbiBmYWxsIGludG8gdGhlIHNjYXJ5IGxvb2thaGVhZC1kaXNjcmltaW5hdG9yIHZhcmlhbnQuXG4gICAgLy8gdGhpcyBtb2RlIGFsc28gaGFuZGxlcyBtaXhpbiBkZWZpbml0aW9ucyBhbmQgY2FsbHNcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogJ1tcXFxcLiM6JlxcXFxbPl0nLFxuICAgICAgICBlbmQ6ICdbO3t9XScgLy8gbWl4aW4gY2FsbHMgZW5kIHdpdGggJzsnXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogSU5URVJQX0lERU5UX1JFLFxuICAgICAgICBlbmQ6IC9cXHsvXG4gICAgICB9XG4gICAgXSxcbiAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICByZXR1cm5FbmQ6IHRydWUsXG4gICAgaWxsZWdhbDogJ1s8PVxcJyRcIl0nLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIE1JWElOX0dVQVJEX01PREUsXG4gICAgICBJREVOVF9NT0RFKCdrZXl3b3JkJywgJ2FsbFxcXFxiJyksXG4gICAgICBJREVOVF9NT0RFKCd2YXJpYWJsZScsICdAXFxcXHsnICsgSURFTlRfUkUgKyAnXFxcXH0nKSwgLy8gb3RoZXJ3aXNlIGl04oCZcyBpZGVudGlmaWVkIGFzIHRhZ1xuICAgICAgXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXFxcXGIoJyArIFRBR1Muam9pbignfCcpICsgJylcXFxcYicsXG4gICAgICAgIGNsYXNzTmFtZTogJ3NlbGVjdG9yLXRhZydcbiAgICAgIH0sXG4gICAgICBtb2Rlcy5DU1NfTlVNQkVSX01PREUsXG4gICAgICBJREVOVF9NT0RFKCdzZWxlY3Rvci10YWcnLCBJTlRFUlBfSURFTlRfUkUsIDApLFxuICAgICAgSURFTlRfTU9ERSgnc2VsZWN0b3ItaWQnLCAnIycgKyBJTlRFUlBfSURFTlRfUkUpLFxuICAgICAgSURFTlRfTU9ERSgnc2VsZWN0b3ItY2xhc3MnLCAnXFxcXC4nICsgSU5URVJQX0lERU5UX1JFLCAwKSxcbiAgICAgIElERU5UX01PREUoJ3NlbGVjdG9yLXRhZycsICcmJywgMCksXG4gICAgICBtb2Rlcy5BVFRSSUJVVEVfU0VMRUNUT1JfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc2VsZWN0b3ItcHNldWRvJyxcbiAgICAgICAgYmVnaW46ICc6KCcgKyBQU0VVRE9fQ0xBU1NFUy5qb2luKCd8JykgKyAnKSdcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3NlbGVjdG9yLXBzZXVkbycsXG4gICAgICAgIGJlZ2luOiAnOig6KT8oJyArIFBTRVVET19FTEVNRU5UUy5qb2luKCd8JykgKyAnKSdcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFwoLyxcbiAgICAgICAgZW5kOiAvXFwpLyxcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICBjb250YWluczogVkFMVUVfV0lUSF9SVUxFU0VUU1xuICAgICAgfSwgLy8gYXJndW1lbnQgbGlzdCBvZiBwYXJhbWV0cmljIG1peGluc1xuICAgICAgeyBiZWdpbjogJyFpbXBvcnRhbnQnIH0sIC8vIGVhdCAhaW1wb3J0YW50IGFmdGVyIG1peGluIGNhbGwgb3IgaXQgd2lsbCBiZSBjb2xvcmVkIGFzIHRhZ1xuICAgICAgbW9kZXMuRlVOQ1RJT05fRElTUEFUQ0hcbiAgICBdXG4gIH07XG5cbiAgY29uc3QgUFNFVURPX1NFTEVDVE9SX01PREUgPSB7XG4gICAgYmVnaW46IElERU5UX1JFICsgJzooOik/JyArIGAoJHtQU0VVRE9fU0VMRUNUT1JTJDEuam9pbignfCcpfSlgLFxuICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgIGNvbnRhaW5zOiBbIFNFTEVDVE9SX01PREUgXVxuICB9O1xuXG4gIFJVTEVTLnB1c2goXG4gICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgQVRfUlVMRV9NT0RFLFxuICAgIFZBUl9SVUxFX01PREUsXG4gICAgUFNFVURPX1NFTEVDVE9SX01PREUsXG4gICAgUlVMRV9NT0RFLFxuICAgIFNFTEVDVE9SX01PREUsXG4gICAgTUlYSU5fR1VBUkRfTU9ERSxcbiAgICBtb2Rlcy5GVU5DVElPTl9ESVNQQVRDSFxuICApO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0xlc3MnLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAgaWxsZWdhbDogJ1s9PlxcJy88KCRcIl0nLFxuICAgIGNvbnRhaW5zOiBSVUxFU1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGxlc3M7XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///71\n");
  1722. /***/ }),
  1723. /* 72 */
  1724. /*!******************************************************************************************************!*\
  1725. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/highlight.js/lib/languages/lua.js ***!
  1726. \******************************************************************************************************/
  1727. /*! no static exports found */
  1728. /***/ (function(module, exports) {
  1729. eval("/*\nLanguage: Lua\nDescription: Lua is a powerful, efficient, lightweight, embeddable scripting language.\nAuthor: Andrew Fedorov <dmmdrs@mail.ru>\nCategory: common, scripting\nWebsite: https://www.lua.org\n*/\n\nfunction lua(hljs) {\n var OPENING_LONG_BRACKET = '\\\\[=*\\\\[';\n var CLOSING_LONG_BRACKET = '\\\\]=*\\\\]';\n var LONG_BRACKETS = {\n begin: OPENING_LONG_BRACKET,\n end: CLOSING_LONG_BRACKET,\n contains: ['self']\n };\n var COMMENTS = [hljs.COMMENT('--(?!' + OPENING_LONG_BRACKET + ')', '$'), hljs.COMMENT('--' + OPENING_LONG_BRACKET, CLOSING_LONG_BRACKET, {\n contains: [LONG_BRACKETS],\n relevance: 10\n })];\n return {\n name: 'Lua',\n keywords: {\n $pattern: hljs.UNDERSCORE_IDENT_RE,\n literal: \"true false nil\",\n keyword: \"and break do else elseif end for goto if in local not or repeat return then until while\",\n built_in:\n // Metatags and globals:\n '_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len ' + '__gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert '\n // Standard methods and properties:\n + 'collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring ' + 'module next pairs pcall print rawequal rawget rawset require select setfenv ' + 'setmetatable tonumber tostring type unpack xpcall arg self '\n // Library methods and properties (one line per library):\n + 'coroutine resume yield status wrap create running debug getupvalue ' + 'debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv ' + 'io lines write close flush open output type read stderr stdin input stdout popen tmpfile ' + 'math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan ' + 'os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall ' + 'string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower ' + 'table setn insert getn foreachi maxn foreach concat sort remove'\n },\n contains: COMMENTS.concat([{\n className: 'function',\n beginKeywords: 'function',\n end: '\\\\)',\n contains: [hljs.inherit(hljs.TITLE_MODE, {\n begin: '([_a-zA-Z]\\\\w*\\\\.)*([_a-zA-Z]\\\\w*:)?[_a-zA-Z]\\\\w*'\n }), {\n className: 'params',\n begin: '\\\\(',\n endsWithParent: true,\n contains: COMMENTS\n }].concat(COMMENTS)\n }, hljs.C_NUMBER_MODE, hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE, {\n className: 'string',\n begin: OPENING_LONG_BRACKET,\n end: CLOSING_LONG_BRACKET,\n contains: [LONG_BRACKETS],\n relevance: 5\n }])\n };\n}\nmodule.exports = lua;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvbHVhLmpzIl0sIm5hbWVzIjpbImx1YSIsImhsanMiLCJPUEVOSU5HX0xPTkdfQlJBQ0tFVCIsIkNMT1NJTkdfTE9OR19CUkFDS0VUIiwiTE9OR19CUkFDS0VUUyIsImJlZ2luIiwiZW5kIiwiY29udGFpbnMiLCJDT01NRU5UUyIsIkNPTU1FTlQiLCJyZWxldmFuY2UiLCJuYW1lIiwia2V5d29yZHMiLCIkcGF0dGVybiIsIlVOREVSU0NPUkVfSURFTlRfUkUiLCJsaXRlcmFsIiwia2V5d29yZCIsImJ1aWx0X2luIiwiY29uY2F0IiwiY2xhc3NOYW1lIiwiYmVnaW5LZXl3b3JkcyIsImluaGVyaXQiLCJUSVRMRV9NT0RFIiwiZW5kc1dpdGhQYXJlbnQiLCJDX05VTUJFUl9NT0RFIiwiQVBPU19TVFJJTkdfTU9ERSIsIlFVT1RFX1NUUklOR19NT0RFIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsU0FBU0EsR0FBRyxDQUFDQyxJQUFJLEVBQUU7RUFDakIsSUFBTUMsb0JBQW9CLEdBQUcsVUFBVTtFQUN2QyxJQUFNQyxvQkFBb0IsR0FBRyxVQUFVO0VBQ3ZDLElBQU1DLGFBQWEsR0FBRztJQUNwQkMsS0FBSyxFQUFFSCxvQkFBb0I7SUFDM0JJLEdBQUcsRUFBRUgsb0JBQW9CO0lBQ3pCSSxRQUFRLEVBQUUsQ0FBRSxNQUFNO0VBQ3BCLENBQUM7RUFDRCxJQUFNQyxRQUFRLEdBQUcsQ0FDZlAsSUFBSSxDQUFDUSxPQUFPLENBQUMsT0FBTyxHQUFHUCxvQkFBb0IsR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQ3ZERCxJQUFJLENBQUNRLE9BQU8sQ0FDVixJQUFJLEdBQUdQLG9CQUFvQixFQUMzQkMsb0JBQW9CLEVBQ3BCO0lBQ0VJLFFBQVEsRUFBRSxDQUFFSCxhQUFhLENBQUU7SUFDM0JNLFNBQVMsRUFBRTtFQUNiLENBQUMsQ0FDRixDQUNGO0VBQ0QsT0FBTztJQUNMQyxJQUFJLEVBQUUsS0FBSztJQUNYQyxRQUFRLEVBQUU7TUFDUkMsUUFBUSxFQUFFWixJQUFJLENBQUNhLG1CQUFtQjtNQUNsQ0MsT0FBTyxFQUFFLGdCQUFnQjtNQUN6QkMsT0FBTyxFQUFFLHlGQUF5RjtNQUNsR0MsUUFBUTtNQUNOO01BQ0EsaUZBQWlGLEdBQy9FO01BQ0Y7TUFBQSxFQUNFLG1GQUFtRixHQUNuRiw4RUFBOEUsR0FDOUU7TUFDRjtNQUFBLEVBQ0UscUVBQXFFLEdBQ3JFLDZIQUE2SCxHQUM3SCwyRkFBMkYsR0FDM0YsaUtBQWlLLEdBQ2pLLGtKQUFrSixHQUNsSiw0RkFBNEYsR0FDNUY7SUFDTixDQUFDO0lBQ0RWLFFBQVEsRUFBRUMsUUFBUSxDQUFDVSxNQUFNLENBQUMsQ0FDeEI7TUFDRUMsU0FBUyxFQUFFLFVBQVU7TUFDckJDLGFBQWEsRUFBRSxVQUFVO01BQ3pCZCxHQUFHLEVBQUUsS0FBSztNQUNWQyxRQUFRLEVBQUUsQ0FDUk4sSUFBSSxDQUFDb0IsT0FBTyxDQUFDcEIsSUFBSSxDQUFDcUIsVUFBVSxFQUFFO1FBQUVqQixLQUFLLEVBQUU7TUFBb0QsQ0FBQyxDQUFDLEVBQzdGO1FBQ0VjLFNBQVMsRUFBRSxRQUFRO1FBQ25CZCxLQUFLLEVBQUUsS0FBSztRQUNaa0IsY0FBYyxFQUFFLElBQUk7UUFDcEJoQixRQUFRLEVBQUVDO01BQ1osQ0FBQyxDQUNGLENBQUNVLE1BQU0sQ0FBQ1YsUUFBUTtJQUNuQixDQUFDLEVBQ0RQLElBQUksQ0FBQ3VCLGFBQWEsRUFDbEJ2QixJQUFJLENBQUN3QixnQkFBZ0IsRUFDckJ4QixJQUFJLENBQUN5QixpQkFBaUIsRUFDdEI7TUFDRVAsU0FBUyxFQUFFLFFBQVE7TUFDbkJkLEtBQUssRUFBRUgsb0JBQW9CO01BQzNCSSxHQUFHLEVBQUVILG9CQUFvQjtNQUN6QkksUUFBUSxFQUFFLENBQUVILGFBQWEsQ0FBRTtNQUMzQk0sU0FBUyxFQUFFO0lBQ2IsQ0FBQyxDQUNGO0VBQ0gsQ0FBQztBQUNIO0FBRUFpQixNQUFNLENBQUNDLE9BQU8sR0FBRzVCLEdBQUciLCJmaWxlIjoiNzIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuTGFuZ3VhZ2U6IEx1YVxuRGVzY3JpcHRpb246IEx1YSBpcyBhIHBvd2VyZnVsLCBlZmZpY2llbnQsIGxpZ2h0d2VpZ2h0LCBlbWJlZGRhYmxlIHNjcmlwdGluZyBsYW5ndWFnZS5cbkF1dGhvcjogQW5kcmV3IEZlZG9yb3YgPGRtbWRyc0BtYWlsLnJ1PlxuQ2F0ZWdvcnk6IGNvbW1vbiwgc2NyaXB0aW5nXG5XZWJzaXRlOiBodHRwczovL3d3dy5sdWEub3JnXG4qL1xuXG5mdW5jdGlvbiBsdWEoaGxqcykge1xuICBjb25zdCBPUEVOSU5HX0xPTkdfQlJBQ0tFVCA9ICdcXFxcWz0qXFxcXFsnO1xuICBjb25zdCBDTE9TSU5HX0xPTkdfQlJBQ0tFVCA9ICdcXFxcXT0qXFxcXF0nO1xuICBjb25zdCBMT05HX0JSQUNLRVRTID0ge1xuICAgIGJlZ2luOiBPUEVOSU5HX0xPTkdfQlJBQ0tFVCxcbiAgICBlbmQ6IENMT1NJTkdfTE9OR19CUkFDS0VULFxuICAgIGNvbnRhaW5zOiBbICdzZWxmJyBdXG4gIH07XG4gIGNvbnN0IENPTU1FTlRTID0gW1xuICAgIGhsanMuQ09NTUVOVCgnLS0oPyEnICsgT1BFTklOR19MT05HX0JSQUNLRVQgKyAnKScsICckJyksXG4gICAgaGxqcy5DT01NRU5UKFxuICAgICAgJy0tJyArIE9QRU5JTkdfTE9OR19CUkFDS0VULFxuICAgICAgQ0xPU0lOR19MT05HX0JSQUNLRVQsXG4gICAgICB7XG4gICAgICAgIGNvbnRhaW5zOiBbIExPTkdfQlJBQ0tFVFMgXSxcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfVxuICAgIClcbiAgXTtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnTHVhJyxcbiAgICBrZXl3b3Jkczoge1xuICAgICAgJHBhdHRlcm46IGhsanMuVU5ERVJTQ09SRV9JREVOVF9SRSxcbiAgICAgIGxpdGVyYWw6IFwidHJ1ZSBmYWxzZSBuaWxcIixcbiAgICAgIGtleXdvcmQ6IFwiYW5kIGJyZWFrIGRvIGVsc2UgZWxzZWlmIGVuZCBmb3IgZ290byBpZiBpbiBsb2NhbCBub3Qgb3IgcmVwZWF0IHJldHVybiB0aGVuIHVudGlsIHdoaWxlXCIsXG4gICAgICBidWlsdF9pbjpcbiAgICAgICAgLy8gTWV0YXRhZ3MgYW5kIGdsb2JhbHM6XG4gICAgICAgICdfRyBfRU5WIF9WRVJTSU9OIF9faW5kZXggX19uZXdpbmRleCBfX21vZGUgX19jYWxsIF9fbWV0YXRhYmxlIF9fdG9zdHJpbmcgX19sZW4gJ1xuICAgICAgICArICdfX2djIF9fYWRkIF9fc3ViIF9fbXVsIF9fZGl2IF9fbW9kIF9fcG93IF9fY29uY2F0IF9fdW5tIF9fZXEgX19sdCBfX2xlIGFzc2VydCAnXG4gICAgICAgIC8vIFN0YW5kYXJkIG1ldGhvZHMgYW5kIHByb3BlcnRpZXM6XG4gICAgICAgICsgJ2NvbGxlY3RnYXJiYWdlIGRvZmlsZSBlcnJvciBnZXRmZW52IGdldG1ldGF0YWJsZSBpcGFpcnMgbG9hZCBsb2FkZmlsZSBsb2Fkc3RyaW5nICdcbiAgICAgICAgKyAnbW9kdWxlIG5leHQgcGFpcnMgcGNhbGwgcHJpbnQgcmF3ZXF1YWwgcmF3Z2V0IHJhd3NldCByZXF1aXJlIHNlbGVjdCBzZXRmZW52ICdcbiAgICAgICAgKyAnc2V0bWV0YXRhYmxlIHRvbnVtYmVyIHRvc3RyaW5nIHR5cGUgdW5wYWNrIHhwY2FsbCBhcmcgc2VsZiAnXG4gICAgICAgIC8vIExpYnJhcnkgbWV0aG9kcyBhbmQgcHJvcGVydGllcyAob25lIGxpbmUgcGVyIGxpYnJhcnkpOlxuICAgICAgICArICdjb3JvdXRpbmUgcmVzdW1lIHlpZWxkIHN0YXR1cyB3cmFwIGNyZWF0ZSBydW5uaW5nIGRlYnVnIGdldHVwdmFsdWUgJ1xuICAgICAgICArICdkZWJ1ZyBzZXRob29rIGdldG1ldGF0YWJsZSBnZXRob29rIHNldG1ldGF0YWJsZSBzZXRsb2NhbCB0cmFjZWJhY2sgc2V0ZmVudiBnZXRpbmZvIHNldHVwdmFsdWUgZ2V0bG9jYWwgZ2V0cmVnaXN0cnkgZ2V0ZmVudiAnXG4gICAgICAgICsgJ2lvIGxpbmVzIHdyaXRlIGNsb3NlIGZsdXNoIG9wZW4gb3V0cHV0IHR5cGUgcmVhZCBzdGRlcnIgc3RkaW4gaW5wdXQgc3Rkb3V0IHBvcGVuIHRtcGZpbGUgJ1xuICAgICAgICArICdtYXRoIGxvZyBtYXggYWNvcyBodWdlIGxkZXhwIHBpIGNvcyB0YW5oIHBvdyBkZWcgdGFuIGNvc2ggc2luaCByYW5kb20gcmFuZG9tc2VlZCBmcmV4cCBjZWlsIGZsb29yIHJhZCBhYnMgc3FydCBtb2RmIGFzaW4gbWluIG1vZCBmbW9kIGxvZzEwIGF0YW4yIGV4cCBzaW4gYXRhbiAnXG4gICAgICAgICsgJ29zIGV4aXQgc2V0bG9jYWxlIGRhdGUgZ2V0ZW52IGRpZmZ0aW1lIHJlbW92ZSB0aW1lIGNsb2NrIHRtcG5hbWUgcmVuYW1lIGV4ZWN1dGUgcGFja2FnZSBwcmVsb2FkIGxvYWRsaWIgbG9hZGVkIGxvYWRlcnMgY3BhdGggY29uZmlnIHBhdGggc2VlYWxsICdcbiAgICAgICAgKyAnc3RyaW5nIHN1YiB1cHBlciBsZW4gZ2ZpbmQgcmVwIGZpbmQgbWF0Y2ggY2hhciBkdW1wIGdtYXRjaCByZXZlcnNlIGJ5dGUgZm9ybWF0IGdzdWIgbG93ZXIgJ1xuICAgICAgICArICd0YWJsZSBzZXRuIGluc2VydCBnZXRuIGZvcmVhY2hpIG1heG4gZm9yZWFjaCBjb25jYXQgc29ydCByZW1vdmUnXG4gICAgfSxcbiAgICBjb250YWluczogQ09NTUVOVFMuY29uY2F0KFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgICBiZWdpbktleXdvcmRzOiAnZnVuY3Rpb24nLFxuICAgICAgICBlbmQ6ICdcXFxcKScsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgaGxqcy5pbmhlcml0KGhsanMuVElUTEVfTU9ERSwgeyBiZWdpbjogJyhbX2EtekEtWl1cXFxcdypcXFxcLikqKFtfYS16QS1aXVxcXFx3KjopP1tfYS16QS1aXVxcXFx3KicgfSksXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICAgICAgICAgIGJlZ2luOiAnXFxcXCgnLFxuICAgICAgICAgICAgZW5kc1dpdGhQYXJlbnQ6IHRydWUsXG4gICAgICAgICAgICBjb250YWluczogQ09NTUVOVFNcbiAgICAgICAgICB9XG4gICAgICAgIF0uY29uY2F0KENPTU1FTlRTKVxuICAgICAgfSxcbiAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIGJlZ2luOiBPUEVOSU5HX0xPTkdfQlJBQ0tFVCxcbiAgICAgICAgZW5kOiBDTE9TSU5HX0xPTkdfQlJBQ0tFVCxcbiAgICAgICAgY29udGFpbnM6IFsgTE9OR19CUkFDS0VUUyBdLFxuICAgICAgICByZWxldmFuY2U6IDVcbiAgICAgIH1cbiAgICBdKVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGx1YTtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///72\n");
  1730. /***/ }),
  1731. /* 73 */
  1732. /*!***********************************************************************************************************!*\
  1733. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/highlight.js/lib/languages/makefile.js ***!
  1734. \***********************************************************************************************************/
  1735. /*! no static exports found */
  1736. /***/ (function(module, exports) {
  1737. eval("/*\nLanguage: Makefile\nAuthor: Ivan Sagalaev <maniac@softwaremaniacs.org>\nContributors: Joël Porquet <joel@porquet.org>\nWebsite: https://www.gnu.org/software/make/manual/html_node/Introduction.html\nCategory: common\n*/\n\nfunction makefile(hljs) {\n /* Variables: simple (eg $(var)) and special (eg $@) */\n var VARIABLE = {\n className: 'variable',\n variants: [{\n begin: '\\\\$\\\\(' + hljs.UNDERSCORE_IDENT_RE + '\\\\)',\n contains: [hljs.BACKSLASH_ESCAPE]\n }, {\n begin: /\\$[@%<?\\^\\+\\*]/\n }]\n };\n /* Quoted string with variables inside */\n var QUOTE_STRING = {\n className: 'string',\n begin: /\"/,\n end: /\"/,\n contains: [hljs.BACKSLASH_ESCAPE, VARIABLE]\n };\n /* Function: $(func arg,...) */\n var FUNC = {\n className: 'variable',\n begin: /\\$\\([\\w-]+\\s/,\n end: /\\)/,\n keywords: {\n built_in: 'subst patsubst strip findstring filter filter-out sort ' + 'word wordlist firstword lastword dir notdir suffix basename ' + 'addsuffix addprefix join wildcard realpath abspath error warning ' + 'shell origin flavor foreach if or and call eval file value'\n },\n contains: [VARIABLE]\n };\n /* Variable assignment */\n var ASSIGNMENT = {\n begin: '^' + hljs.UNDERSCORE_IDENT_RE + '\\\\s*(?=[:+?]?=)'\n };\n /* Meta targets (.PHONY) */\n var META = {\n className: 'meta',\n begin: /^\\.PHONY:/,\n end: /$/,\n keywords: {\n $pattern: /[\\.\\w]+/,\n keyword: '.PHONY'\n }\n };\n /* Targets */\n var TARGET = {\n className: 'section',\n begin: /^[^\\s]+:/,\n end: /$/,\n contains: [VARIABLE]\n };\n return {\n name: 'Makefile',\n aliases: ['mk', 'mak', 'make'],\n keywords: {\n $pattern: /[\\w-]+/,\n keyword: 'define endef undefine ifdef ifndef ifeq ifneq else endif ' + 'include -include sinclude override export unexport private vpath'\n },\n contains: [hljs.HASH_COMMENT_MODE, VARIABLE, QUOTE_STRING, FUNC, ASSIGNMENT, META, TARGET]\n };\n}\nmodule.exports = makefile;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvbWFrZWZpbGUuanMiXSwibmFtZXMiOlsibWFrZWZpbGUiLCJobGpzIiwiVkFSSUFCTEUiLCJjbGFzc05hbWUiLCJ2YXJpYW50cyIsImJlZ2luIiwiVU5ERVJTQ09SRV9JREVOVF9SRSIsImNvbnRhaW5zIiwiQkFDS1NMQVNIX0VTQ0FQRSIsIlFVT1RFX1NUUklORyIsImVuZCIsIkZVTkMiLCJrZXl3b3JkcyIsImJ1aWx0X2luIiwiQVNTSUdOTUVOVCIsIk1FVEEiLCIkcGF0dGVybiIsImtleXdvcmQiLCJUQVJHRVQiLCJuYW1lIiwiYWxpYXNlcyIsIkhBU0hfQ09NTUVOVF9NT0RFIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsU0FBU0EsUUFBUSxDQUFDQyxJQUFJLEVBQUU7RUFDdEI7RUFDQSxJQUFNQyxRQUFRLEdBQUc7SUFDZkMsU0FBUyxFQUFFLFVBQVU7SUFDckJDLFFBQVEsRUFBRSxDQUNSO01BQ0VDLEtBQUssRUFBRSxRQUFRLEdBQUdKLElBQUksQ0FBQ0ssbUJBQW1CLEdBQUcsS0FBSztNQUNsREMsUUFBUSxFQUFFLENBQUVOLElBQUksQ0FBQ08sZ0JBQWdCO0lBQ25DLENBQUMsRUFDRDtNQUFFSCxLQUFLLEVBQUU7SUFBaUIsQ0FBQztFQUUvQixDQUFDO0VBQ0Q7RUFDQSxJQUFNSSxZQUFZLEdBQUc7SUFDbkJOLFNBQVMsRUFBRSxRQUFRO0lBQ25CRSxLQUFLLEVBQUUsR0FBRztJQUNWSyxHQUFHLEVBQUUsR0FBRztJQUNSSCxRQUFRLEVBQUUsQ0FDUk4sSUFBSSxDQUFDTyxnQkFBZ0IsRUFDckJOLFFBQVE7RUFFWixDQUFDO0VBQ0Q7RUFDQSxJQUFNUyxJQUFJLEdBQUc7SUFDWFIsU0FBUyxFQUFFLFVBQVU7SUFDckJFLEtBQUssRUFBRSxjQUFjO0lBQ3JCSyxHQUFHLEVBQUUsSUFBSTtJQUNURSxRQUFRLEVBQUU7TUFBRUMsUUFBUSxFQUNoQix5REFBeUQsR0FDdkQsOERBQThELEdBQzlELG1FQUFtRSxHQUNuRTtJQUE2RCxDQUFDO0lBQ3BFTixRQUFRLEVBQUUsQ0FBRUwsUUFBUTtFQUN0QixDQUFDO0VBQ0Q7RUFDQSxJQUFNWSxVQUFVLEdBQUc7SUFBRVQsS0FBSyxFQUFFLEdBQUcsR0FBR0osSUFBSSxDQUFDSyxtQkFBbUIsR0FBRztFQUFrQixDQUFDO0VBQ2hGO0VBQ0EsSUFBTVMsSUFBSSxHQUFHO0lBQ1haLFNBQVMsRUFBRSxNQUFNO0lBQ2pCRSxLQUFLLEVBQUUsV0FBVztJQUNsQkssR0FBRyxFQUFFLEdBQUc7SUFDUkUsUUFBUSxFQUFFO01BQ1JJLFFBQVEsRUFBRSxTQUFTO01BQ25CQyxPQUFPLEVBQUU7SUFDWDtFQUNGLENBQUM7RUFDRDtFQUNBLElBQU1DLE1BQU0sR0FBRztJQUNiZixTQUFTLEVBQUUsU0FBUztJQUNwQkUsS0FBSyxFQUFFLFVBQVU7SUFDakJLLEdBQUcsRUFBRSxHQUFHO0lBQ1JILFFBQVEsRUFBRSxDQUFFTCxRQUFRO0VBQ3RCLENBQUM7RUFDRCxPQUFPO0lBQ0xpQixJQUFJLEVBQUUsVUFBVTtJQUNoQkMsT0FBTyxFQUFFLENBQ1AsSUFBSSxFQUNKLEtBQUssRUFDTCxNQUFNLENBQ1A7SUFDRFIsUUFBUSxFQUFFO01BQ1JJLFFBQVEsRUFBRSxRQUFRO01BQ2xCQyxPQUFPLEVBQUUsMkRBQTJELEdBQ2xFO0lBQ0osQ0FBQztJQUNEVixRQUFRLEVBQUUsQ0FDUk4sSUFBSSxDQUFDb0IsaUJBQWlCLEVBQ3RCbkIsUUFBUSxFQUNSTyxZQUFZLEVBQ1pFLElBQUksRUFDSkcsVUFBVSxFQUNWQyxJQUFJLEVBQ0pHLE1BQU07RUFFVixDQUFDO0FBQ0g7QUFFQUksTUFBTSxDQUFDQyxPQUFPLEdBQUd2QixRQUFRIiwiZmlsZSI6IjczLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbkxhbmd1YWdlOiBNYWtlZmlsZVxuQXV0aG9yOiBJdmFuIFNhZ2FsYWV2IDxtYW5pYWNAc29mdHdhcmVtYW5pYWNzLm9yZz5cbkNvbnRyaWJ1dG9yczogSm/Dq2wgUG9ycXVldCA8am9lbEBwb3JxdWV0Lm9yZz5cbldlYnNpdGU6IGh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvbWFrZS9tYW51YWwvaHRtbF9ub2RlL0ludHJvZHVjdGlvbi5odG1sXG5DYXRlZ29yeTogY29tbW9uXG4qL1xuXG5mdW5jdGlvbiBtYWtlZmlsZShobGpzKSB7XG4gIC8qIFZhcmlhYmxlczogc2ltcGxlIChlZyAkKHZhcikpIGFuZCBzcGVjaWFsIChlZyAkQCkgKi9cbiAgY29uc3QgVkFSSUFCTEUgPSB7XG4gICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXFxcXCRcXFxcKCcgKyBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUgKyAnXFxcXCknLFxuICAgICAgICBjb250YWluczogWyBobGpzLkJBQ0tTTEFTSF9FU0NBUEUgXVxuICAgICAgfSxcbiAgICAgIHsgYmVnaW46IC9cXCRbQCU8P1xcXlxcK1xcKl0vIH1cbiAgICBdXG4gIH07XG4gIC8qIFF1b3RlZCBzdHJpbmcgd2l0aCB2YXJpYWJsZXMgaW5zaWRlICovXG4gIGNvbnN0IFFVT1RFX1NUUklORyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAvXCIvLFxuICAgIGVuZDogL1wiLyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgICAgVkFSSUFCTEVcbiAgICBdXG4gIH07XG4gIC8qIEZ1bmN0aW9uOiAkKGZ1bmMgYXJnLC4uLikgKi9cbiAgY29uc3QgRlVOQyA9IHtcbiAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgYmVnaW46IC9cXCRcXChbXFx3LV0rXFxzLyxcbiAgICBlbmQ6IC9cXCkvLFxuICAgIGtleXdvcmRzOiB7IGJ1aWx0X2luOlxuICAgICAgICAnc3Vic3QgcGF0c3Vic3Qgc3RyaXAgZmluZHN0cmluZyBmaWx0ZXIgZmlsdGVyLW91dCBzb3J0ICdcbiAgICAgICAgKyAnd29yZCB3b3JkbGlzdCBmaXJzdHdvcmQgbGFzdHdvcmQgZGlyIG5vdGRpciBzdWZmaXggYmFzZW5hbWUgJ1xuICAgICAgICArICdhZGRzdWZmaXggYWRkcHJlZml4IGpvaW4gd2lsZGNhcmQgcmVhbHBhdGggYWJzcGF0aCBlcnJvciB3YXJuaW5nICdcbiAgICAgICAgKyAnc2hlbGwgb3JpZ2luIGZsYXZvciBmb3JlYWNoIGlmIG9yIGFuZCBjYWxsIGV2YWwgZmlsZSB2YWx1ZScgfSxcbiAgICBjb250YWluczogWyBWQVJJQUJMRSBdXG4gIH07XG4gIC8qIFZhcmlhYmxlIGFzc2lnbm1lbnQgKi9cbiAgY29uc3QgQVNTSUdOTUVOVCA9IHsgYmVnaW46ICdeJyArIGhsanMuVU5ERVJTQ09SRV9JREVOVF9SRSArICdcXFxccyooPz1bOis/XT89KScgfTtcbiAgLyogTWV0YSB0YXJnZXRzICguUEhPTlkpICovXG4gIGNvbnN0IE1FVEEgPSB7XG4gICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgYmVnaW46IC9eXFwuUEhPTlk6LyxcbiAgICBlbmQ6IC8kLyxcbiAgICBrZXl3b3Jkczoge1xuICAgICAgJHBhdHRlcm46IC9bXFwuXFx3XSsvLFxuICAgICAga2V5d29yZDogJy5QSE9OWSdcbiAgICB9XG4gIH07XG4gIC8qIFRhcmdldHMgKi9cbiAgY29uc3QgVEFSR0VUID0ge1xuICAgIGNsYXNzTmFtZTogJ3NlY3Rpb24nLFxuICAgIGJlZ2luOiAvXlteXFxzXSs6LyxcbiAgICBlbmQ6IC8kLyxcbiAgICBjb250YWluczogWyBWQVJJQUJMRSBdXG4gIH07XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ01ha2VmaWxlJyxcbiAgICBhbGlhc2VzOiBbXG4gICAgICAnbWsnLFxuICAgICAgJ21haycsXG4gICAgICAnbWFrZScsXG4gICAgXSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAgJHBhdHRlcm46IC9bXFx3LV0rLyxcbiAgICAgIGtleXdvcmQ6ICdkZWZpbmUgZW5kZWYgdW5kZWZpbmUgaWZkZWYgaWZuZGVmIGlmZXEgaWZuZXEgZWxzZSBlbmRpZiAnXG4gICAgICArICdpbmNsdWRlIC1pbmNsdWRlIHNpbmNsdWRlIG92ZXJyaWRlIGV4cG9ydCB1bmV4cG9ydCBwcml2YXRlIHZwYXRoJ1xuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuSEFTSF9DT01NRU5UX01PREUsXG4gICAgICBWQVJJQUJMRSxcbiAgICAgIFFVT1RFX1NUUklORyxcbiAgICAgIEZVTkMsXG4gICAgICBBU1NJR05NRU5ULFxuICAgICAgTUVUQSxcbiAgICAgIFRBUkdFVFxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBtYWtlZmlsZTtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///73\n");
  1738. /***/ }),
  1739. /* 74 */
  1740. /*!*******************************************************************************************************!*\
  1741. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/highlight.js/lib/languages/perl.js ***!
  1742. \*******************************************************************************************************/
  1743. /*! no static exports found */
  1744. /***/ (function(module, exports) {
  1745. eval("/*\nLanguage: Perl\nAuthor: Peter Leonov <gojpeg@yandex.ru>\nWebsite: https://www.perl.org\nCategory: common\n*/\n\n/** @type LanguageFn */\nfunction perl(hljs) {\n var regex = hljs.regex;\n var KEYWORDS = ['abs', 'accept', 'alarm', 'and', 'atan2', 'bind', 'binmode', 'bless', 'break', 'caller', 'chdir', 'chmod', 'chomp', 'chop', 'chown', 'chr', 'chroot', 'close', 'closedir', 'connect', 'continue', 'cos', 'crypt', 'dbmclose', 'dbmopen', 'defined', 'delete', 'die', 'do', 'dump', 'each', 'else', 'elsif', 'endgrent', 'endhostent', 'endnetent', 'endprotoent', 'endpwent', 'endservent', 'eof', 'eval', 'exec', 'exists', 'exit', 'exp', 'fcntl', 'fileno', 'flock', 'for', 'foreach', 'fork', 'format', 'formline', 'getc', 'getgrent', 'getgrgid', 'getgrnam', 'gethostbyaddr', 'gethostbyname', 'gethostent', 'getlogin', 'getnetbyaddr', 'getnetbyname', 'getnetent', 'getpeername', 'getpgrp', 'getpriority', 'getprotobyname', 'getprotobynumber', 'getprotoent', 'getpwent', 'getpwnam', 'getpwuid', 'getservbyname', 'getservbyport', 'getservent', 'getsockname', 'getsockopt', 'given', 'glob', 'gmtime', 'goto', 'grep', 'gt', 'hex', 'if', 'index', 'int', 'ioctl', 'join', 'keys', 'kill', 'last', 'lc', 'lcfirst', 'length', 'link', 'listen', 'local', 'localtime', 'log', 'lstat', 'lt', 'ma', 'map', 'mkdir', 'msgctl', 'msgget', 'msgrcv', 'msgsnd', 'my', 'ne', 'next', 'no', 'not', 'oct', 'open', 'opendir', 'or', 'ord', 'our', 'pack', 'package', 'pipe', 'pop', 'pos', 'print', 'printf', 'prototype', 'push', 'q|0', 'qq', 'quotemeta', 'qw', 'qx', 'rand', 'read', 'readdir', 'readline', 'readlink', 'readpipe', 'recv', 'redo', 'ref', 'rename', 'require', 'reset', 'return', 'reverse', 'rewinddir', 'rindex', 'rmdir', 'say', 'scalar', 'seek', 'seekdir', 'select', 'semctl', 'semget', 'semop', 'send', 'setgrent', 'sethostent', 'setnetent', 'setpgrp', 'setpriority', 'setprotoent', 'setpwent', 'setservent', 'setsockopt', 'shift', 'shmctl', 'shmget', 'shmread', 'shmwrite', 'shutdown', 'sin', 'sleep', 'socket', 'socketpair', 'sort', 'splice', 'split', 'sprintf', 'sqrt', 'srand', 'stat', 'state', 'study', 'sub', 'substr', 'symlink', 'syscall', 'sysopen', 'sysread', 'sysseek', 'system', 'syswrite', 'tell', 'telldir', 'tie', 'tied', 'time', 'times', 'tr', 'truncate', 'uc', 'ucfirst', 'umask', 'undef', 'unless', 'unlink', 'unpack', 'unshift', 'untie', 'until', 'use', 'utime', 'values', 'vec', 'wait', 'waitpid', 'wantarray', 'warn', 'when', 'while', 'write', 'x|0', 'xor', 'y|0'];\n\n // https://perldoc.perl.org/perlre#Modifiers\n var REGEX_MODIFIERS = /[dualxmsipngr]{0,12}/; // aa and xx are valid, making max length 12\n var PERL_KEYWORDS = {\n $pattern: /[\\w.]+/,\n keyword: KEYWORDS.join(\" \")\n };\n var SUBST = {\n className: 'subst',\n begin: '[$@]\\\\{',\n end: '\\\\}',\n keywords: PERL_KEYWORDS\n };\n var METHOD = {\n begin: /->\\{/,\n end: /\\}/\n // contains defined later\n };\n\n var VAR = {\n variants: [{\n begin: /\\$\\d/\n }, {\n begin: regex.concat(/[$%@](\\^\\w\\b|#\\w+(::\\w+)*|\\{\\w+\\}|\\w+(::\\w*)*)/, // negative look-ahead tries to avoid matching patterns that are not\n // Perl at all like $ident$, @ident@, etc.\n \"(?![A-Za-z])(?![@$%])\")\n }, {\n begin: /[$%@][^\\s\\w{]/,\n relevance: 0\n }]\n };\n var STRING_CONTAINS = [hljs.BACKSLASH_ESCAPE, SUBST, VAR];\n var REGEX_DELIMS = [/!/, /\\//, /\\|/, /\\?/, /'/, /\"/,\n // valid but infrequent and weird\n /#/ // valid but infrequent and weird\n ];\n /**\n * @param {string|RegExp} prefix\n * @param {string|RegExp} open\n * @param {string|RegExp} close\n */\n var PAIRED_DOUBLE_RE = function PAIRED_DOUBLE_RE(prefix, open) {\n var close = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '\\\\1';\n var middle = close === '\\\\1' ? close : regex.concat(close, open);\n return regex.concat(regex.concat(\"(?:\", prefix, \")\"), open, /(?:\\\\.|[^\\\\\\/])*?/, middle, /(?:\\\\.|[^\\\\\\/])*?/, close, REGEX_MODIFIERS);\n };\n /**\n * @param {string|RegExp} prefix\n * @param {string|RegExp} open\n * @param {string|RegExp} close\n */\n var PAIRED_RE = function PAIRED_RE(prefix, open, close) {\n return regex.concat(regex.concat(\"(?:\", prefix, \")\"), open, /(?:\\\\.|[^\\\\\\/])*?/, close, REGEX_MODIFIERS);\n };\n var PERL_DEFAULT_CONTAINS = [VAR, hljs.HASH_COMMENT_MODE, hljs.COMMENT(/^=\\w/, /=cut/, {\n endsWithParent: true\n }), METHOD, {\n className: 'string',\n contains: STRING_CONTAINS,\n variants: [{\n begin: 'q[qwxr]?\\\\s*\\\\(',\n end: '\\\\)',\n relevance: 5\n }, {\n begin: 'q[qwxr]?\\\\s*\\\\[',\n end: '\\\\]',\n relevance: 5\n }, {\n begin: 'q[qwxr]?\\\\s*\\\\{',\n end: '\\\\}',\n relevance: 5\n }, {\n begin: 'q[qwxr]?\\\\s*\\\\|',\n end: '\\\\|',\n relevance: 5\n }, {\n begin: 'q[qwxr]?\\\\s*<',\n end: '>',\n relevance: 5\n }, {\n begin: 'qw\\\\s+q',\n end: 'q',\n relevance: 5\n }, {\n begin: '\\'',\n end: '\\'',\n contains: [hljs.BACKSLASH_ESCAPE]\n }, {\n begin: '\"',\n end: '\"'\n }, {\n begin: '`',\n end: '`',\n contains: [hljs.BACKSLASH_ESCAPE]\n }, {\n begin: /\\{\\w+\\}/,\n relevance: 0\n }, {\n begin: '-?\\\\w+\\\\s*=>',\n relevance: 0\n }]\n }, {\n className: 'number',\n begin: '(\\\\b0[0-7_]+)|(\\\\b0x[0-9a-fA-F_]+)|(\\\\b[1-9][0-9_]*(\\\\.[0-9_]+)?)|[0_]\\\\b',\n relevance: 0\n }, {\n // regexp container\n begin: '(\\\\/\\\\/|' + hljs.RE_STARTERS_RE + '|\\\\b(split|return|print|reverse|grep)\\\\b)\\\\s*',\n keywords: 'split return print reverse grep',\n relevance: 0,\n contains: [hljs.HASH_COMMENT_MODE, {\n className: 'regexp',\n variants: [\n // allow matching common delimiters\n {\n begin: PAIRED_DOUBLE_RE(\"s|tr|y\", regex.either.apply(regex, REGEX_DELIMS.concat([{\n capture: true\n }])))\n },\n // and then paired delmis\n {\n begin: PAIRED_DOUBLE_RE(\"s|tr|y\", \"\\\\(\", \"\\\\)\")\n }, {\n begin: PAIRED_DOUBLE_RE(\"s|tr|y\", \"\\\\[\", \"\\\\]\")\n }, {\n begin: PAIRED_DOUBLE_RE(\"s|tr|y\", \"\\\\{\", \"\\\\}\")\n }],\n relevance: 2\n }, {\n className: 'regexp',\n variants: [{\n // could be a comment in many languages so do not count\n // as relevant\n begin: /(m|qr)\\/\\//,\n relevance: 0\n },\n // prefix is optional with /regex/\n {\n begin: PAIRED_RE(\"(?:m|qr)?\", /\\//, /\\//)\n },\n // allow matching common delimiters\n {\n begin: PAIRED_RE(\"m|qr\", regex.either.apply(regex, REGEX_DELIMS.concat([{\n capture: true\n }])), /\\1/)\n },\n // allow common paired delmins\n {\n begin: PAIRED_RE(\"m|qr\", /\\(/, /\\)/)\n }, {\n begin: PAIRED_RE(\"m|qr\", /\\[/, /\\]/)\n }, {\n begin: PAIRED_RE(\"m|qr\", /\\{/, /\\}/)\n }]\n }]\n }, {\n className: 'function',\n beginKeywords: 'sub',\n end: '(\\\\s*\\\\(.*?\\\\))?[;{]',\n excludeEnd: true,\n relevance: 5,\n contains: [hljs.TITLE_MODE]\n }, {\n begin: '-\\\\w\\\\b',\n relevance: 0\n }, {\n begin: \"^__DATA__$\",\n end: \"^__END__$\",\n subLanguage: 'mojolicious',\n contains: [{\n begin: \"^@@.*\",\n end: \"$\",\n className: \"comment\"\n }]\n }];\n SUBST.contains = PERL_DEFAULT_CONTAINS;\n METHOD.contains = PERL_DEFAULT_CONTAINS;\n return {\n name: 'Perl',\n aliases: ['pl', 'pm'],\n keywords: PERL_KEYWORDS,\n contains: PERL_DEFAULT_CONTAINS\n };\n}\nmodule.exports = perl;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvcGVybC5qcyJdLCJuYW1lcyI6WyJwZXJsIiwiaGxqcyIsInJlZ2V4IiwiS0VZV09SRFMiLCJSRUdFWF9NT0RJRklFUlMiLCJQRVJMX0tFWVdPUkRTIiwiJHBhdHRlcm4iLCJrZXl3b3JkIiwiam9pbiIsIlNVQlNUIiwiY2xhc3NOYW1lIiwiYmVnaW4iLCJlbmQiLCJrZXl3b3JkcyIsIk1FVEhPRCIsIlZBUiIsInZhcmlhbnRzIiwiY29uY2F0IiwicmVsZXZhbmNlIiwiU1RSSU5HX0NPTlRBSU5TIiwiQkFDS1NMQVNIX0VTQ0FQRSIsIlJFR0VYX0RFTElNUyIsIlBBSVJFRF9ET1VCTEVfUkUiLCJwcmVmaXgiLCJvcGVuIiwiY2xvc2UiLCJtaWRkbGUiLCJQQUlSRURfUkUiLCJQRVJMX0RFRkFVTFRfQ09OVEFJTlMiLCJIQVNIX0NPTU1FTlRfTU9ERSIsIkNPTU1FTlQiLCJlbmRzV2l0aFBhcmVudCIsImNvbnRhaW5zIiwiUkVfU1RBUlRFUlNfUkUiLCJlaXRoZXIiLCJjYXB0dXJlIiwiYmVnaW5LZXl3b3JkcyIsImV4Y2x1ZGVFbmQiLCJUSVRMRV9NT0RFIiwic3ViTGFuZ3VhZ2UiLCJuYW1lIiwiYWxpYXNlcyIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFNBQVNBLElBQUksQ0FBQ0MsSUFBSSxFQUFFO0VBQ2xCLElBQU1DLEtBQUssR0FBR0QsSUFBSSxDQUFDQyxLQUFLO0VBQ3hCLElBQU1DLFFBQVEsR0FBRyxDQUNmLEtBQUssRUFDTCxRQUFRLEVBQ1IsT0FBTyxFQUNQLEtBQUssRUFDTCxPQUFPLEVBQ1AsTUFBTSxFQUNOLFNBQVMsRUFDVCxPQUFPLEVBQ1AsT0FBTyxFQUNQLFFBQVEsRUFDUixPQUFPLEVBQ1AsT0FBTyxFQUNQLE9BQU8sRUFDUCxNQUFNLEVBQ04sT0FBTyxFQUNQLEtB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QU07SUFDWkMsT0FBTyxFQUFFLENBQ1AsSUFBSSxFQUNKLElBQUksQ0FDTDtJQUNENUIsUUFBUSxFQUFFUixhQUFhO0lBQ3ZCMkIsUUFBUSxFQUFFSjtFQUNaLENBQUM7QUFDSDtBQUVBYyxNQUFNLENBQUNDLE9BQU8sR0FBRzNDLElBQUkiLCJmaWxlIjoiNzQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuTGFuZ3VhZ2U6IFBlcmxcbkF1dGhvcjogUGV0ZXIgTGVvbm92IDxnb2pwZWdAeWFuZGV4LnJ1PlxuV2Vic2l0ZTogaHR0cHM6Ly93d3cucGVybC5vcmdcbkNhdGVnb3J5OiBjb21tb25cbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBwZXJsKGhsanMpIHtcbiAgY29uc3QgcmVnZXggPSBobGpzLnJlZ2V4O1xuICBjb25zdCBLRVlXT1JEUyA9IFtcbiAgICAnYWJzJyxcbiAgICAnYWNjZXB0JyxcbiAgICAnYWxhcm0nLFxuICAgICdhbmQnLFxuICAgICdhdGFuMicsXG4gICAgJ2JpbmQnLFxuICAgICdiaW5tb2RlJyxcbiAgICAnYmxlc3MnLFxuICAgICdicmVhaycsXG4gICAgJ2NhbGxlcicsXG4gICAgJ2NoZGlyJyxcbiAgICAnY2htb2QnLFxuICAgICdjaG9tcCcsXG4gICAgJ2Nob3AnLFxuICAgICdjaG93bicsXG4gICAgJ2NocicsXG4gICAgJ2Nocm9vdCcsXG4gICAgJ2Nsb3NlJyxcbiAgICAnY2xvc2VkaXInLFxuICAgICdjb25uZWN0JyxcbiAgICAnY29udGludWUnLFxuICAgICdjb3MnLFxuICAgICdjcnlwdCcsXG4gICAgJ2RibWNsb3NlJyxcbiAgICAnZGJtb3BlbicsXG4gICAgJ2RlZmluZWQnLFxuICAgICdkZWxldGUnLFxuICAgICdkaWUnLFxuICAgICdkbycsXG4gICAgJ2R1bXAnLFxuICAgICdlYWNoJyxcbiAgICAnZWxzZScsXG4gICAgJ2Vsc2lmJyxcbiAgICAnZW5kZ3JlbnQnLFxuICAgICdlbmRob3N0ZW50JyxcbiAgICAnZW5kbmV0ZW50JyxcbiAgICAnZW5kcHJvdG9lbnQnLFxuICAgICdlbmRwd2VudCcsXG4gICAgJ2VuZHNlcnZlbnQnLFxuICAgICdlb2YnLFxuICAgICdldmFsJyxcbiAgICAnZXhlYycsXG4gICAgJ2V4aXN0cycsXG4gICAgJ2V4aXQnLFxuICAgICdleHAnLFxuICAgICdmY250bCcsXG4gICAgJ2ZpbGVubycsXG4gICAgJ2Zsb2NrJyxcbiAgICAnZm9yJyxcbiAgICAnZm9yZWFjaCcsXG4gICAgJ2ZvcmsnLFxuICAgICdmb3JtYXQnLFxuICAgICdmb3JtbGluZScsXG4gICAgJ2dldGMnLFxuICAgICdnZXRncmVudCcsXG4gICAgJ2dldGdyZ2lkJyxcbiAgICAnZ2V0Z3JuYW0nLFxuICAgICdnZXRob3N0YnlhZGRyJyxcbiAgICAnZ2V0aG9zdGJ5bmFtZScsXG4gICAgJ2dldGhvc3RlbnQnLFxuICAgICdnZXRsb2dpbicsXG4gICAgJ2dldG5ldGJ5YWRkcicsXG4gICAgJ2dldG5ldGJ5bmFtZScsXG4gICAgJ2dldG5ldGVudCcsXG4gICAgJ2dldHBlZXJuYW1lJyxcbiAgICAnZ2V0cGdycCcsXG4gICAgJ2dldHByaW9yaXR5JyxcbiAgICAnZ2V0cHJvdG9ieW5hbWUnLFxuICAgICdnZXRwcm90b2J5bnVtYmVyJyxcbiAgICAnZ2V0cHJvdG9lbnQnLFxuICAgICdnZXRwd2VudCcsXG4gICAgJ2dldHB3bmFtJyxcbiAgICAnZ2V0cHd1aWQnLFxuICAgICdnZXRzZXJ2YnluYW1lJyxcbiAgICAnZ2V0c2VydmJ5cG9ydCcsXG4gICAgJ2dldHNlcnZlbnQnLFxuICAgICdnZXRzb2NrbmFtZScsXG4gICAgJ2dldHNvY2tvcHQnLFxuICAgICdnaXZlbicsXG4gICAgJ2dsb2InLFxuICAgICdnbXRpbWUnLFxuICAgICdnb3RvJyxcbiAgICAnZ3JlcCcsXG4gICAgJ2d0JyxcbiAgICAnaGV4JyxcbiAgICAnaWYnLFxuICAgICdpbmRleCcsXG4gICAgJ2ludCcsXG4gICAgJ2lvY3RsJyxcbiAgICAnam9pbicsXG4gICAgJ2tleXMnLFxuICAgICdraWxsJyxcbiAgICAnbGFzdCcsXG4gICAgJ2xjJyxcbiAgICAnbGNmaXJzdCcsXG4gICAgJ2xlbmd0aCcsXG4gICAgJ2xpbmsnLFxuICAgICdsaXN0ZW4nLFxuICAgICdsb2NhbCcsXG4gICAgJ2xvY2FsdGltZScsXG4gICAgJ2xvZycsXG4gICAgJ2xzdGF0JyxcbiAgICAnbHQnLFxuICAgICdtYScsXG4gICAgJ21hcCcsXG4gICAgJ21rZGlyJyxcbiAgICAnbXNnY3RsJyxcbiAgICAnbXNnZ2V0JyxcbiAgICAnbXNncmN2JyxcbiAgICAnbXNnc25kJyxcbiAgICAnbXknLFxuICAgICduZScsXG4gICAgJ25leHQnLFxuICAgICdubycsXG4gICAgJ25vdCcsXG4gICAgJ29jdCcsXG4gICAgJ29wZW4nLFxuICAgICdvcGVuZGlyJyxcbiAgICAnb3InLFxuICAgICdvcmQnLFxuICAgICdvdXInLFxuICAgICdwYWNrJyxcbiAgICAncGFja2FnZScsXG4gICAgJ3BpcGUnLFxuICAgICdwb3AnLFxuICAgICdwb3MnLFxuICAgICdwcmludCcsXG4gICAgJ3ByaW50ZicsXG4gICAgJ3Byb3RvdHlwZScsXG4gICAgJ3B1c2gnLFxuICAgICdxfDAnLFxuICAgICdxcScsXG4gICAgJ3F1b3RlbWV0YScsXG4gICAgJ3F3JyxcbiAgICAncXgnLFxuICAgICdyYW5kJyxcbiAgICAncmVhZCcsXG4gICAgJ3JlYWRkaXInLFxuICAgICdyZWFkbGluZScsXG4gICAgJ3JlYWRsaW5rJyxcbiAgICAncmVhZHBpcGUnLFxuICAgICdyZWN2JyxcbiAgICAncmVkbycsXG4gICAgJ3JlZicsXG4gICAgJ3JlbmFtZScsXG4gICAgJ3JlcXVpcmUnLFxuICAgICdyZXNldCcsXG4gICAgJ3JldHVybicsXG4gICAgJ3JldmVyc2UnLFxuICAgICdyZXdpbmRkaXInLFxuICAgICdyaW5kZXgnLFxuICAgICdybWRpcicsXG4gICAgJ3NheScsXG4gICAgJ3NjYWxhcicsXG4gICAgJ3NlZWsnLFxuICAgICdzZWVrZGlyJyxcbiAgICAnc2VsZWN0JyxcbiAgICAnc2VtY3RsJyxcbiAgICAnc2VtZ2V0JyxcbiAgICAnc2Vtb3AnLFxuICAgICdzZW5kJyxcbiAgICAnc2V0Z3JlbnQnLFxuICAgICdzZXRob3N0ZW50JyxcbiAgICAnc2V0bmV0ZW50JyxcbiAgICAnc2V0cGdycCcsXG4gICAgJ3NldHByaW9yaXR5JyxcbiAgICAnc2V0cHJvdG9lbnQnLFxuICAgICdzZXRwd2VudCcsXG4gICAgJ3NldHNlcnZlbnQnLFxuICAgICdzZXRzb2Nrb3B0JyxcbiAgICAnc2hpZnQnLFxuICAgICdzaG1jdGwnLFxuICAgICdzaG1nZXQnLFxuICAgICdzaG1yZWFkJyxcbiAgICAnc2htd3JpdGUnLFxuICAgICdzaHV0ZG93bicsXG4gICAgJ3NpbicsXG4gICAgJ3NsZWVwJyxcbiAgICAnc29ja2V0JyxcbiAgICAnc29ja2V0cGFpcicsXG4gICAgJ3NvcnQnLFxuICAgICdzcGxpY2UnLFxuICAgICdzcGxpdCcsXG4gICAgJ3NwcmludGYnLFxuICAgICdzcXJ0JyxcbiAgICAnc3JhbmQnLFxuICAgICdzdGF0JyxcbiAgICAnc3RhdGUnLFxuICAgICdzdHVkeScsXG4gICAgJ3N1YicsXG4gICAgJ3N1YnN0cicsXG4gICAgJ3N5bWxpbmsnLFxuICAgICdzeXNjYWxsJyxcbiAgICAnc3lzb3BlbicsXG4gICAgJ3N5c3JlYWQnLFxuICAgICdzeXNzZWVrJyxcbiAgICAnc3lzdGVtJyxcbiAgICAnc3lzd3JpdGUnLFxuICAgICd0ZWxsJyxcbiAgICAndGVsbGRpcicsXG4gICAgJ3RpZScsXG4gICAgJ3RpZWQnLFxuICAgICd0aW1lJyxcbiAgICAndGltZXMnLFxuICAgICd0cicsXG4gICAgJ3RydW5jYXRlJyxcbiAgICAndWMnLFxuICAgICd1Y2ZpcnN0JyxcbiAgICAndW1hc2snLFxuICAgICd1bmRlZicsXG4gICAgJ3VubGVzcycsXG4gICAgJ3VubGluaycsXG4gICAgJ3VucGFjaycsXG4gICAgJ3Vuc2hpZnQnLFxuICAgICd1bnRpZScsXG4gICAgJ3VudGlsJyxcbiAgICAndXNlJyxcbiAgICAndXRpbWUnLFxuICAgICd2YWx1ZXMnLFxuICAgICd2ZWMnLFxuICAgICd3YWl0JyxcbiAgICAnd2FpdHBpZCcsXG4gICAgJ3dhbnRhcnJheScsXG4gICAgJ3dhcm4nLFxuICAgICd3aGVuJyxcbiAgICAnd2hpbGUnLFxuICAgICd3cml0ZScsXG4gICAgJ3h8MCcsXG4gICAgJ3hvcicsXG4gICAgJ3l8MCdcbiAgXTtcblxuICAvLyBodHRwczovL3Blcmxkb2MucGVybC5vcmcvcGVybHJlI01vZGlmaWVyc1xuICBjb25zdCBSRUdFWF9NT0RJRklFUlMgPSAvW2R1YWx4bXNpcG5ncl17MCwxMn0vOyAvLyBhYSBhbmQgeHggYXJlIHZhbGlkLCBtYWtpbmcgbWF4IGxlbmd0aCAxMlxuICBjb25zdCBQRVJMX0tFWVdPUkRTID0ge1xuICAgICRwYXR0ZXJuOiAvW1xcdy5dKy8sXG4gICAga2V5d29yZDogS0VZV09SRFMuam9pbihcIiBcIilcbiAgfTtcbiAgY29uc3QgU1VCU1QgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3Vic3QnLFxuICAgIGJlZ2luOiAnWyRAXVxcXFx7JyxcbiAgICBlbmQ6ICdcXFxcfScsXG4gICAga2V5d29yZHM6IFBFUkxfS0VZV09SRFNcbiAgfTtcbiAgY29uc3QgTUVUSE9EID0ge1xuICAgIGJlZ2luOiAvLT5cXHsvLFxuICAgIGVuZDogL1xcfS9cbiAgICAvLyBjb250YWlucyBkZWZpbmVkIGxhdGVyXG4gIH07XG4gIGNvbnN0IFZBUiA9IHsgdmFyaWFudHM6IFtcbiAgICB7IGJlZ2luOiAvXFwkXFxkLyB9LFxuICAgIHsgYmVnaW46IHJlZ2V4LmNvbmNhdChcbiAgICAgIC9bJCVAXShcXF5cXHdcXGJ8I1xcdysoOjpcXHcrKSp8XFx7XFx3K1xcfXxcXHcrKDo6XFx3KikqKS8sXG4gICAgICAvLyBuZWdhdGl2ZSBsb29rLWFoZWFkIHRyaWVzIHRvIGF2b2lkIG1hdGNoaW5nIHBhdHRlcm5zIHRoYXQgYXJlIG5vdFxuICAgICAgLy8gUGVybCBhdCBhbGwgbGlrZSAkaWRlbnQkLCBAaWRlbnRALCBldGMuXG4gICAgICBgKD8hW0EtWmEtel0pKD8hW0AkJV0pYFxuICAgICkgfSxcbiAgICB7XG4gICAgICBiZWdpbjogL1skJUBdW15cXHNcXHd7XS8sXG4gICAgICByZWxldmFuY2U6IDBcbiAgICB9XG4gIF0gfTtcbiAgY29uc3QgU1RSSU5HX0NPTlRBSU5TID0gW1xuICAgIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICBTVUJTVCxcbiAgICBWQVJcbiAgXTtcbiAgY29uc3QgUkVHRVhfREVMSU1TID0gW1xuICAgIC8hLyxcbiAgICAvXFwvLyxcbiAgICAvXFx8LyxcbiAgICAvXFw/LyxcbiAgICAvJy8sXG4gICAgL1wiLywgLy8gdmFsaWQgYnV0IGluZnJlcXVlbnQgYW5kIHdlaXJkXG4gICAgLyMvIC8vIHZhbGlkIGJ1dCBpbmZyZXF1ZW50IGFuZCB3ZWlyZFxuICBdO1xuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd8UmVnRXhwfSBwcmVmaXhcbiAgICogQHBhcmFtIHtzdHJpbmd8UmVnRXhwfSBvcGVuXG4gICAqIEBwYXJhbSB7c3RyaW5nfFJlZ0V4cH0gY2xvc2VcbiAgICovXG4gIGNvbnN0IFBBSVJFRF9ET1VCTEVfUkUgPSAocHJlZml4LCBvcGVuLCBjbG9zZSA9ICdcXFxcMScpID0+IHtcbiAgICBjb25zdCBtaWRkbGUgPSAoY2xvc2UgPT09ICdcXFxcMScpXG4gICAgICA/IGNsb3NlXG4gICAgICA6IHJlZ2V4LmNvbmNhdChjbG9zZSwgb3Blbik7XG4gICAgcmV0dXJuIHJlZ2V4LmNvbmNhdChcbiAgICAgIHJlZ2V4LmNvbmNhdChcIig/OlwiLCBwcmVmaXgsIFwiKVwiKSxcbiAgICAgIG9wZW4sXG4gICAgICAvKD86XFxcXC58W15cXFxcXFwvXSkqPy8sXG4gICAgICBtaWRkbGUsXG4gICAgICAvKD86XFxcXC58W15cXFxcXFwvXSkqPy8sXG4gICAgICBjbG9zZSxcbiAgICAgIFJFR0VYX01PRElGSUVSU1xuICAgICk7XG4gIH07XG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ3xSZWdFeHB9IHByZWZpeFxuICAgKiBAcGFyYW0ge3N0cmluZ3xSZWdFeHB9IG9wZW5cbiAgICogQHBhcmFtIHtzdHJpbmd8UmVnRXhwfSBjbG9zZVxuICAgKi9cbiAgY29uc3QgUEFJUkVEX1JFID0gKHByZWZpeCwgb3BlbiwgY2xvc2UpID0+IHtcbiAgICByZXR1cm4gcmVnZXguY29uY2F0KFxuICAgICAgcmVnZXguY29uY2F0KFwiKD86XCIsIHByZWZpeCwgXCIpXCIpLFxuICAgICAgb3BlbixcbiAgICAgIC8oPzpcXFxcLnxbXlxcXFxcXC9dKSo/LyxcbiAgICAgIGNsb3NlLFxuICAgICAgUkVHRVhfTU9ESUZJRVJTXG4gICAgKTtcbiAgfTtcbiAgY29uc3QgUEVSTF9ERUZBVUxUX0NPTlRBSU5TID0gW1xuICAgIFZBUixcbiAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFLFxuICAgIGhsanMuQ09NTUVOVChcbiAgICAgIC9ePVxcdy8sXG4gICAgICAvPWN1dC8sXG4gICAgICB7IGVuZHNXaXRoUGFyZW50OiB0cnVlIH1cbiAgICApLFxuICAgIE1FVEhPRCxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgY29udGFpbnM6IFNUUklOR19DT05UQUlOUyxcbiAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBiZWdpbjogJ3FbcXd4cl0/XFxcXHMqXFxcXCgnLFxuICAgICAgICAgIGVuZDogJ1xcXFwpJyxcbiAgICAgICAgICByZWxldmFuY2U6IDVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiAncVtxd3hyXT9cXFxccypcXFxcWycsXG4gICAgICAgICAgZW5kOiAnXFxcXF0nLFxuICAgICAgICAgIHJlbGV2YW5jZTogNVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgYmVnaW46ICdxW3F3eHJdP1xcXFxzKlxcXFx7JyxcbiAgICAgICAgICBlbmQ6ICdcXFxcfScsXG4gICAgICAgICAgcmVsZXZhbmNlOiA1XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBiZWdpbjogJ3FbcXd4cl0/XFxcXHMqXFxcXHwnLFxuICAgICAgICAgIGVuZDogJ1xcXFx8JyxcbiAgICAgICAgICByZWxldmFuY2U6IDVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiAncVtxd3hyXT9cXFxccyo8JyxcbiAgICAgICAgICBlbmQ6ICc+JyxcbiAgICAgICAgICByZWxldmFuY2U6IDVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiAncXdcXFxccytxJyxcbiAgICAgICAgICBlbmQ6ICdxJyxcbiAgICAgICAgICByZWxldmFuY2U6IDVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiAnXFwnJyxcbiAgICAgICAgICBlbmQ6ICdcXCcnLFxuICAgICAgICAgIGNvbnRhaW5zOiBbIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSBdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBiZWdpbjogJ1wiJyxcbiAgICAgICAgICBlbmQ6ICdcIidcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiAnYCcsXG4gICAgICAgICAgZW5kOiAnYCcsXG4gICAgICAgICAgY29udGFpbnM6IFsgaGxqcy5CQUNLU0xBU0hfRVNDQVBFIF1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiAvXFx7XFx3K1xcfS8sXG4gICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBiZWdpbjogJy0/XFxcXHcrXFxcXHMqPT4nLFxuICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgICAgYmVnaW46ICcoXFxcXGIwWzAtN19dKyl8KFxcXFxiMHhbMC05YS1mQS1GX10rKXwoXFxcXGJbMS05XVswLTlfXSooXFxcXC5bMC05X10rKT8pfFswX11cXFxcYicsXG4gICAgICByZWxldmFuY2U6IDBcbiAgICB9LFxuICAgIHsgLy8gcmVnZXhwIGNvbnRhaW5lclxuICAgICAgYmVnaW46ICcoXFxcXC9cXFxcL3wnICsgaGxqcy5SRV9TVEFSVEVSU19SRSArICd8XFxcXGIoc3BsaXR8cmV0dXJufHByaW50fHJldmVyc2V8Z3JlcClcXFxcYilcXFxccyonLFxuICAgICAga2V5d29yZHM6ICdzcGxpdCByZXR1cm4gcHJpbnQgcmV2ZXJzZSBncmVwJyxcbiAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgIGhsanMuSEFTSF9DT01NRU5UX01PREUsXG4gICAgICAgIHtcbiAgICAgICAgICBjbGFzc05hbWU6ICdyZWdleHAnLFxuICAgICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgICAvLyBhbGxvdyBtYXRjaGluZyBjb21tb24gZGVsaW1pdGVyc1xuICAgICAgICAgICAgeyBiZWdpbjogUEFJUkVEX0RPVUJMRV9SRShcInN8dHJ8eVwiLCByZWdleC5laXRoZXIoLi4uUkVHRVhfREVMSU1TLCB7IGNhcHR1cmU6IHRydWUgfSkpIH0sXG4gICAgICAgICAgICAvLyBhbmQgdGhlbiBwYWlyZWQgZGVsbWlzXG4gICAgICAgICAgICB7IGJlZ2luOiBQQUlSRURfRE9VQkxFX1JFKFwic3x0cnx5XCIsIFwiXFxcXChcIiwgXCJcXFxcKVwiKSB9LFxuICAgICAgICAgICAgeyBiZWdpbjogUEFJUkVEX0RPVUJMRV9SRShcInN8dHJ8eVwiLCBcIlxcXFxbXCIsIFwiXFxcXF1cIikgfSxcbiAgICAgICAgICAgIHsgYmVnaW46IFBBSVJFRF9ET1VCTEVfUkUoXCJzfHRyfHlcIiwgXCJcXFxce1wiLCBcIlxcXFx9XCIpIH1cbiAgICAgICAgICBdLFxuICAgICAgICAgIHJlbGV2YW5jZTogMlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgY2xhc3NOYW1lOiAncmVnZXhwJyxcbiAgICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAvLyBjb3VsZCBiZSBhIGNvbW1lbnQgaW4gbWFueSBsYW5ndWFnZXMgc28gZG8gbm90IGNvdW50XG4gICAgICAgICAgICAgIC8vIGFzIHJlbGV2YW50XG4gICAgICAgICAgICAgIGJlZ2luOiAvKG18cXIpXFwvXFwvLyxcbiAgICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLy8gcHJlZml4IGlzIG9wdGlvbmFsIHdpdGggL3JlZ2V4L1xuICAgICAgICAgICAgeyBiZWdpbjogUEFJUkVEX1JFKFwiKD86bXxxcik/XCIsIC9cXC8vLCAvXFwvLykgfSxcbiAgICAgICAgICAgIC8vIGFsbG93IG1hdGNoaW5nIGNvbW1vbiBkZWxpbWl0ZXJzXG4gICAgICAgICAgICB7IGJlZ2luOiBQQUlSRURfUkUoXCJtfHFyXCIsIHJlZ2V4LmVpdGhlciguLi5SRUdFWF9ERUxJTVMsIHsgY2FwdHVyZTogdHJ1ZSB9KSwgL1xcMS8pIH0sXG4gICAgICAgICAgICAvLyBhbGxvdyBjb21tb24gcGFpcmVkIGRlbG1pbnNcbiAgICAgICAgICAgIHsgYmVnaW46IFBBSVJFRF9SRShcIm18cXJcIiwgL1xcKC8sIC9cXCkvKSB9LFxuICAgICAgICAgICAgeyBiZWdpbjogUEFJUkVEX1JFKFwibXxxclwiLCAvXFxbLywgL1xcXS8pIH0sXG4gICAgICAgICAgICB7IGJlZ2luOiBQQUlSRURfUkUoXCJtfHFyXCIsIC9cXHsvLCAvXFx9LykgfVxuICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgYmVnaW5LZXl3b3JkczogJ3N1YicsXG4gICAgICBlbmQ6ICcoXFxcXHMqXFxcXCguKj9cXFxcKSk/Wzt7XScsXG4gICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgcmVsZXZhbmNlOiA1LFxuICAgICAgY29udGFpbnM6IFsgaGxqcy5USVRMRV9NT0RFIF1cbiAgICB9LFxuICAgIHtcbiAgICAgIGJlZ2luOiAnLVxcXFx3XFxcXGInLFxuICAgICAgcmVsZXZhbmNlOiAwXG4gICAgfSxcbiAgICB7XG4gICAgICBiZWdpbjogXCJeX19EQVRBX18kXCIsXG4gICAgICBlbmQ6IFwiXl9fRU5EX18kXCIsXG4gICAgICBzdWJMYW5ndWFnZTogJ21vam9saWNpb3VzJyxcbiAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBiZWdpbjogXCJeQEAuKlwiLFxuICAgICAgICAgIGVuZDogXCIkXCIsXG4gICAgICAgICAgY2xhc3NOYW1lOiBcImNvbW1lbnRcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfVxuICBdO1xuICBTVUJTVC5jb250YWlucyA9IFBFUkxfREVGQVVMVF9DT05UQUlOUztcbiAgTUVUSE9ELmNvbnRhaW5zID0gUEVSTF9ERUZBVUxUX0NPTlRBSU5TO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1BlcmwnLFxuICAgIGFsaWFzZXM6IFtcbiAgICAgICdwbCcsXG4gICAgICAncG0nXG4gICAgXSxcbiAgICBrZXl3b3JkczogUEVSTF9LRVlXT1JEUyxcbiAgICBjb250YWluczogUEVSTF9ERUZBVUxUX0NPTlRBSU5TXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gcGVybDtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///74\n");
  1746. /***/ }),
  1747. /* 75 */
  1748. /*!*************************************************************************************************************!*\
  1749. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/highlight.js/lib/languages/objectivec.js ***!
  1750. \*************************************************************************************************************/
  1751. /*! no static exports found */
  1752. /***/ (function(module, exports) {
  1753. eval("/*\nLanguage: Objective-C\nAuthor: Valerii Hiora <valerii.hiora@gmail.com>\nContributors: Angel G. Olloqui <angelgarcia.mail@gmail.com>, Matt Diephouse <matt@diephouse.com>, Andrew Farmer <ahfarmer@gmail.com>, Minh Nguyễn <mxn@1ec5.org>\nWebsite: https://developer.apple.com/documentation/objectivec\nCategory: common\n*/\n\nfunction objectivec(hljs) {\n var API_CLASS = {\n className: 'built_in',\n begin: '\\\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\\\w+'\n };\n var IDENTIFIER_RE = /[a-zA-Z@][a-zA-Z0-9_]*/;\n var TYPES = [\"int\", \"float\", \"char\", \"unsigned\", \"signed\", \"short\", \"long\", \"double\", \"wchar_t\", \"unichar\", \"void\", \"bool\", \"BOOL\", \"id|0\", \"_Bool\"];\n var KWS = [\"while\", \"export\", \"sizeof\", \"typedef\", \"const\", \"struct\", \"for\", \"union\", \"volatile\", \"static\", \"mutable\", \"if\", \"do\", \"return\", \"goto\", \"enum\", \"else\", \"break\", \"extern\", \"asm\", \"case\", \"default\", \"register\", \"explicit\", \"typename\", \"switch\", \"continue\", \"inline\", \"readonly\", \"assign\", \"readwrite\", \"self\", \"@synchronized\", \"id\", \"typeof\", \"nonatomic\", \"IBOutlet\", \"IBAction\", \"strong\", \"weak\", \"copy\", \"in\", \"out\", \"inout\", \"bycopy\", \"byref\", \"oneway\", \"__strong\", \"__weak\", \"__block\", \"__autoreleasing\", \"@private\", \"@protected\", \"@public\", \"@try\", \"@property\", \"@end\", \"@throw\", \"@catch\", \"@finally\", \"@autoreleasepool\", \"@synthesize\", \"@dynamic\", \"@selector\", \"@optional\", \"@required\", \"@encode\", \"@package\", \"@import\", \"@defs\", \"@compatibility_alias\", \"__bridge\", \"__bridge_transfer\", \"__bridge_retained\", \"__bridge_retain\", \"__covariant\", \"__contravariant\", \"__kindof\", \"_Nonnull\", \"_Nullable\", \"_Null_unspecified\", \"__FUNCTION__\", \"__PRETTY_FUNCTION__\", \"__attribute__\", \"getter\", \"setter\", \"retain\", \"unsafe_unretained\", \"nonnull\", \"nullable\", \"null_unspecified\", \"null_resettable\", \"class\", \"instancetype\", \"NS_DESIGNATED_INITIALIZER\", \"NS_UNAVAILABLE\", \"NS_REQUIRES_SUPER\", \"NS_RETURNS_INNER_POINTER\", \"NS_INLINE\", \"NS_AVAILABLE\", \"NS_DEPRECATED\", \"NS_ENUM\", \"NS_OPTIONS\", \"NS_SWIFT_UNAVAILABLE\", \"NS_ASSUME_NONNULL_BEGIN\", \"NS_ASSUME_NONNULL_END\", \"NS_REFINED_FOR_SWIFT\", \"NS_SWIFT_NAME\", \"NS_SWIFT_NOTHROW\", \"NS_DURING\", \"NS_HANDLER\", \"NS_ENDHANDLER\", \"NS_VALUERETURN\", \"NS_VOIDRETURN\"];\n var LITERALS = [\"false\", \"true\", \"FALSE\", \"TRUE\", \"nil\", \"YES\", \"NO\", \"NULL\"];\n var BUILT_INS = [\"dispatch_once_t\", \"dispatch_queue_t\", \"dispatch_sync\", \"dispatch_async\", \"dispatch_once\"];\n var KEYWORDS = {\n \"variable.language\": [\"this\", \"super\"],\n $pattern: IDENTIFIER_RE,\n keyword: KWS,\n literal: LITERALS,\n built_in: BUILT_INS,\n type: TYPES\n };\n var CLASS_KEYWORDS = {\n $pattern: IDENTIFIER_RE,\n keyword: [\"@interface\", \"@class\", \"@protocol\", \"@implementation\"]\n };\n return {\n name: 'Objective-C',\n aliases: ['mm', 'objc', 'obj-c', 'obj-c++', 'objective-c++'],\n keywords: KEYWORDS,\n illegal: '</',\n contains: [API_CLASS, hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE, hljs.C_NUMBER_MODE, hljs.QUOTE_STRING_MODE, hljs.APOS_STRING_MODE, {\n className: 'string',\n variants: [{\n begin: '@\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [hljs.BACKSLASH_ESCAPE]\n }]\n }, {\n className: 'meta',\n begin: /#\\s*[a-z]+\\b/,\n end: /$/,\n keywords: {\n keyword: 'if else elif endif define undef warning error line ' + 'pragma ifdef ifndef include'\n },\n contains: [{\n begin: /\\\\\\n/,\n relevance: 0\n }, hljs.inherit(hljs.QUOTE_STRING_MODE, {\n className: 'string'\n }), {\n className: 'string',\n begin: /<.*?>/,\n end: /$/,\n illegal: '\\\\n'\n }, hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE]\n }, {\n className: 'class',\n begin: '(' + CLASS_KEYWORDS.keyword.join('|') + ')\\\\b',\n end: /(\\{|$)/,\n excludeEnd: true,\n keywords: CLASS_KEYWORDS,\n contains: [hljs.UNDERSCORE_TITLE_MODE]\n }, {\n begin: '\\\\.' + hljs.UNDERSCORE_IDENT_RE,\n relevance: 0\n }]\n };\n}\nmodule.exports = objectivec;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvb2JqZWN0aXZlYy5qcyJdLCJuYW1lcyI6WyJvYmplY3RpdmVjIiwiaGxqcyIsIkFQSV9DTEFTUyIsImNsYXNzTmFtZSIsImJlZ2luIiwiSURFTlRJRklFUl9SRSIsIlRZUEVTIiwiS1dTIiwiTElURVJBTFMiLCJCVUlMVF9JTlMiLCJLRVlXT1JEUyIsIiRwYXR0ZXJuIiwia2V5d29yZCIsImxpdGVyYWwiLCJidWlsdF9pbiIsInR5cGUiLCJDTEFTU19LRVlXT1JEUyIsIm5hbWUiLCJhbGlhc2VzIiwia2V5d29yZHMiLCJpbGxlZ2FsIiwiY29udGFpbnMiLCJDX0xJTkVfQ09NTUVOVF9NT0RFIiwiQ19CTE9DS19DT01NRU5UX01PREUiLCJDX05VTUJFUl9NT0RFIiwiUVVPVEVfU1RSSU5HX01PREUiLCJBUE9TX1NUUklOR19NT0RFIiwidmFyaWFudHMiLCJlbmQiLCJCQUNLU0xBU0hfRVNDQVBFIiwicmVsZXZhbmNlIiwiaW5oZXJpdCIsImpvaW4iLCJleGNsdWRlRW5kIiwiVU5ERVJTQ09SRV9USVRMRV9NT0RFIiwiVU5ERVJTQ09SRV9JREVOVF9SRSIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLFNBQVNBLFVBQVUsQ0FBQ0MsSUFBSSxFQUFFO0VBQ3hCLElBQU1DLFNBQVMsR0FBRztJQUNoQkMsU0FBUyxFQUFFLFVBQVU7SUFDckJDLEtBQUssRUFBRTtFQUNULENBQUM7RUFDRCxJQUFNQyxhQUFhLEdBQUcsd0JBQXdCO0VBQzlDLElBQU1DLEtBQUssR0FBRyxDQUNaLEtBQUssRUFDTCxPQUFPLEVBQ1AsTUFBTSxFQUNOLFVBQVUsRUFDVixRQUFRLEVBQ1IsT0FBTyxFQUNQLE1BQU0sRUFDTixRQUFRLEVBQ1IsU0FBUyxFQUNULFNBQVMsRUFDVCxNQUFNLEVBQ04sTUFBTSxFQUNOLE1BQU0s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RSxPQUFPO01BQ2xCQyxLQUFLLEVBQUUsR0FBRyxHQUFHWSxjQUFjLENBQUNKLE9BQU8sQ0FBQ29CLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNO01BQ3RESixHQUFHLEVBQUUsUUFBUTtNQUNiSyxVQUFVLEVBQUUsSUFBSTtNQUNoQmQsUUFBUSxFQUFFSCxjQUFjO01BQ3hCSyxRQUFRLEVBQUUsQ0FBRXBCLElBQUksQ0FBQ2lDLHFCQUFxQjtJQUN4QyxDQUFDLEVBQ0Q7TUFDRTlCLEtBQUssRUFBRSxLQUFLLEdBQUdILElBQUksQ0FBQ2tDLG1CQUFtQjtNQUN2Q0wsU0FBUyxFQUFFO0lBQ2IsQ0FBQztFQUVMLENBQUM7QUFDSDtBQUVBTSxNQUFNLENBQUNDLE9BQU8sR0FBR3JDLFVBQVUiLCJmaWxlIjoiNzUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuTGFuZ3VhZ2U6IE9iamVjdGl2ZS1DXG5BdXRob3I6IFZhbGVyaWkgSGlvcmEgPHZhbGVyaWkuaGlvcmFAZ21haWwuY29tPlxuQ29udHJpYnV0b3JzOiBBbmdlbCBHLiBPbGxvcXVpIDxhbmdlbGdhcmNpYS5tYWlsQGdtYWlsLmNvbT4sIE1hdHQgRGllcGhvdXNlIDxtYXR0QGRpZXBob3VzZS5jb20+LCBBbmRyZXcgRmFybWVyIDxhaGZhcm1lckBnbWFpbC5jb20+LCBNaW5oIE5ndXnhu4VuIDxteG5AMWVjNS5vcmc+XG5XZWJzaXRlOiBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9vYmplY3RpdmVjXG5DYXRlZ29yeTogY29tbW9uXG4qL1xuXG5mdW5jdGlvbiBvYmplY3RpdmVjKGhsanMpIHtcbiAgY29uc3QgQVBJX0NMQVNTID0ge1xuICAgIGNsYXNzTmFtZTogJ2J1aWx0X2luJyxcbiAgICBiZWdpbjogJ1xcXFxiKEFWfENBfENGfENHfENJfENMfENNfENOfENUfE1LfE1QfE1US3xNVEx8TlN8U0NOfFNLfFVJfFdLfFhDKVxcXFx3KydcbiAgfTtcbiAgY29uc3QgSURFTlRJRklFUl9SRSA9IC9bYS16QS1aQF1bYS16QS1aMC05X10qLztcbiAgY29uc3QgVFlQRVMgPSBbXG4gICAgXCJpbnRcIixcbiAgICBcImZsb2F0XCIsXG4gICAgXCJjaGFyXCIsXG4gICAgXCJ1bnNpZ25lZFwiLFxuICAgIFwic2lnbmVkXCIsXG4gICAgXCJzaG9ydFwiLFxuICAgIFwibG9uZ1wiLFxuICAgIFwiZG91YmxlXCIsXG4gICAgXCJ3Y2hhcl90XCIsXG4gICAgXCJ1bmljaGFyXCIsXG4gICAgXCJ2b2lkXCIsXG4gICAgXCJib29sXCIsXG4gICAgXCJCT09MXCIsXG4gICAgXCJpZHwwXCIsXG4gICAgXCJfQm9vbFwiXG4gIF07XG4gIGNvbnN0IEtXUyA9IFtcbiAgICBcIndoaWxlXCIsXG4gICAgXCJleHBvcnRcIixcbiAgICBcInNpemVvZlwiLFxuICAgIFwidHlwZWRlZlwiLFxuICAgIFwiY29uc3RcIixcbiAgICBcInN0cnVjdFwiLFxuICAgIFwiZm9yXCIsXG4gICAgXCJ1bmlvblwiLFxuICAgIFwidm9sYXRpbGVcIixcbiAgICBcInN0YXRpY1wiLFxuICAgIFwibXV0YWJsZVwiLFxuICAgIFwiaWZcIixcbiAgICBcImRvXCIsXG4gICAgXCJyZXR1cm5cIixcbiAgICBcImdvdG9cIixcbiAgICBcImVudW1cIixcbiAgICBcImVsc2VcIixcbiAgICBcImJyZWFrXCIsXG4gICAgXCJleHRlcm5cIixcbiAgICBcImFzbVwiLFxuICAgIFwiY2FzZVwiLFxuICAgIFwiZGVmYXVsdFwiLFxuICAgIFwicmVnaXN0ZXJcIixcbiAgICBcImV4cGxpY2l0XCIsXG4gICAgXCJ0eXBlbmFtZVwiLFxuICAgIFwic3dpdGNoXCIsXG4gICAgXCJjb250aW51ZVwiLFxuICAgIFwiaW5saW5lXCIsXG4gICAgXCJyZWFkb25seVwiLFxuICAgIFwiYXNzaWduXCIsXG4gICAgXCJyZWFkd3JpdGVcIixcbiAgICBcInNlbGZcIixcbiAgICBcIkBzeW5jaHJvbml6ZWRcIixcbiAgICBcImlkXCIsXG4gICAgXCJ0eXBlb2ZcIixcbiAgICBcIm5vbmF0b21pY1wiLFxuICAgIFwiSUJPdXRsZXRcIixcbiAgICBcIklCQWN0aW9uXCIsXG4gICAgXCJzdHJvbmdcIixcbiAgICBcIndlYWtcIixcbiAgICBcImNvcHlcIixcbiAgICBcImluXCIsXG4gICAgXCJvdXRcIixcbiAgICBcImlub3V0XCIsXG4gICAgXCJieWNvcHlcIixcbiAgICBcImJ5cmVmXCIsXG4gICAgXCJvbmV3YXlcIixcbiAgICBcIl9fc3Ryb25nXCIsXG4gICAgXCJfX3dlYWtcIixcbiAgICBcIl9fYmxvY2tcIixcbiAgICBcIl9fYXV0b3JlbGVhc2luZ1wiLFxuICAgIFwiQHByaXZhdGVcIixcbiAgICBcIkBwcm90ZWN0ZWRcIixcbiAgICBcIkBwdWJsaWNcIixcbiAgICBcIkB0cnlcIixcbiAgICBcIkBwcm9wZXJ0eVwiLFxuICAgIFwiQGVuZFwiLFxuICAgIFwiQHRocm93XCIsXG4gICAgXCJAY2F0Y2hcIixcbiAgICBcIkBmaW5hbGx5XCIsXG4gICAgXCJAYXV0b3JlbGVhc2Vwb29sXCIsXG4gICAgXCJAc3ludGhlc2l6ZVwiLFxuICAgIFwiQGR5bmFtaWNcIixcbiAgICBcIkBzZWxlY3RvclwiLFxuICAgIFwiQG9wdGlvbmFsXCIsXG4gICAgXCJAcmVxdWlyZWRcIixcbiAgICBcIkBlbmNvZGVcIixcbiAgICBcIkBwYWNrYWdlXCIsXG4gICAgXCJAaW1wb3J0XCIsXG4gICAgXCJAZGVmc1wiLFxuICAgIFwiQGNvbXBhdGliaWxpdHlfYWxpYXNcIixcbiAgICBcIl9fYnJpZGdlXCIsXG4gICAgXCJfX2JyaWRnZV90cmFuc2ZlclwiLFxuICAgIFwiX19icmlkZ2VfcmV0YWluZWRcIixcbiAgICBcIl9fYnJpZGdlX3JldGFpblwiLFxuICAgIFwiX19jb3ZhcmlhbnRcIixcbiAgICBcIl9fY29udHJhdmFyaWFudFwiLFxuICAgIFwiX19raW5kb2ZcIixcbiAgICBcIl9Ob25udWxsXCIsXG4gICAgXCJfTnVsbGFibGVcIixcbiAgICBcIl9OdWxsX3Vuc3BlY2lmaWVkXCIsXG4gICAgXCJfX0ZVTkNUSU9OX19cIixcbiAgICBcIl9fUFJFVFRZX0ZVTkNUSU9OX19cIixcbiAgICBcIl9fYXR0cmlidXRlX19cIixcbiAgICBcImdldHRlclwiLFxuICAgIFwic2V0dGVyXCIsXG4gICAgXCJyZXRhaW5cIixcbiAgICBcInVuc2FmZV91bnJldGFpbmVkXCIsXG4gICAgXCJub25udWxsXCIsXG4gICAgXCJudWxsYWJsZVwiLFxuICAgIFwibnVsbF91bnNwZWNpZmllZFwiLFxuICAgIFwibnVsbF9yZXNldHRhYmxlXCIsXG4gICAgXCJjbGFzc1wiLFxuICAgIFwiaW5zdGFuY2V0eXBlXCIsXG4gICAgXCJOU19ERVNJR05BVEVEX0lOSVRJQUxJWkVSXCIsXG4gICAgXCJOU19VTkFWQUlMQUJMRVwiLFxuICAgIFwiTlNfUkVRVUlSRVNfU1VQRVJcIixcbiAgICBcIk5TX1JFVFVSTlNfSU5ORVJfUE9JTlRFUlwiLFxuICAgIFwiTlNfSU5MSU5FXCIsXG4gICAgXCJOU19BVkFJTEFCTEVcIixcbiAgICBcIk5TX0RFUFJFQ0FURURcIixcbiAgICBcIk5TX0VOVU1cIixcbiAgICBcIk5TX09QVElPTlNcIixcbiAgICBcIk5TX1NXSUZUX1VOQVZBSUxBQkxFXCIsXG4gICAgXCJOU19BU1NVTUVfTk9OTlVMTF9CRUdJTlwiLFxuICAgIFwiTlNfQVNTVU1FX05PTk5VTExfRU5EXCIsXG4gICAgXCJOU19SRUZJTkVEX0ZPUl9TV0lGVFwiLFxuICAgIFwiTlNfU1dJRlRfTkFNRVwiLFxuICAgIFwiTlNfU1dJRlRfTk9USFJPV1wiLFxuICAgIFwiTlNfRFVSSU5HXCIsXG4gICAgXCJOU19IQU5ETEVSXCIsXG4gICAgXCJOU19FTkRIQU5ETEVSXCIsXG4gICAgXCJOU19WQUxVRVJFVFVSTlwiLFxuICAgIFwiTlNfVk9JRFJFVFVSTlwiXG4gIF07XG4gIGNvbnN0IExJVEVSQUxTID0gW1xuICAgIFwiZmFsc2VcIixcbiAgICBcInRydWVcIixcbiAgICBcIkZBTFNFXCIsXG4gICAgXCJUUlVFXCIsXG4gICAgXCJuaWxcIixcbiAgICBcIllFU1wiLFxuICAgIFwiTk9cIixcbiAgICBcIk5VTExcIlxuICBdO1xuICBjb25zdCBCVUlMVF9JTlMgPSBbXG4gICAgXCJkaXNwYXRjaF9vbmNlX3RcIixcbiAgICBcImRpc3BhdGNoX3F1ZXVlX3RcIixcbiAgICBcImRpc3BhdGNoX3N5bmNcIixcbiAgICBcImRpc3BhdGNoX2FzeW5jXCIsXG4gICAgXCJkaXNwYXRjaF9vbmNlXCJcbiAgXTtcbiAgY29uc3QgS0VZV09SRFMgPSB7XG4gICAgXCJ2YXJpYWJsZS5sYW5ndWFnZVwiOiBbXG4gICAgICBcInRoaXNcIixcbiAgICAgIFwic3VwZXJcIlxuICAgIF0sXG4gICAgJHBhdHRlcm46IElERU5USUZJRVJfUkUsXG4gICAga2V5d29yZDogS1dTLFxuICAgIGxpdGVyYWw6IExJVEVSQUxTLFxuICAgIGJ1aWx0X2luOiBCVUlMVF9JTlMsXG4gICAgdHlwZTogVFlQRVNcbiAgfTtcbiAgY29uc3QgQ0xBU1NfS0VZV09SRFMgPSB7XG4gICAgJHBhdHRlcm46IElERU5USUZJRVJfUkUsXG4gICAga2V5d29yZDogW1xuICAgICAgXCJAaW50ZXJmYWNlXCIsXG4gICAgICBcIkBjbGFzc1wiLFxuICAgICAgXCJAcHJvdG9jb2xcIixcbiAgICAgIFwiQGltcGxlbWVudGF0aW9uXCJcbiAgICBdXG4gIH07XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ09iamVjdGl2ZS1DJyxcbiAgICBhbGlhc2VzOiBbXG4gICAgICAnbW0nLFxuICAgICAgJ29iamMnLFxuICAgICAgJ29iai1jJyxcbiAgICAgICdvYmotYysrJyxcbiAgICAgICdvYmplY3RpdmUtYysrJ1xuICAgIF0sXG4gICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgIGlsbGVnYWw6ICc8LycsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIEFQSV9DTEFTUyxcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAnQFwiJyxcbiAgICAgICAgICAgIGVuZDogJ1wiJyxcbiAgICAgICAgICAgIGlsbGVnYWw6ICdcXFxcbicsXG4gICAgICAgICAgICBjb250YWluczogWyBobGpzLkJBQ0tTTEFTSF9FU0NBUEUgXVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIGJlZ2luOiAvI1xccypbYS16XStcXGIvLFxuICAgICAgICBlbmQ6IC8kLyxcbiAgICAgICAga2V5d29yZHM6IHsga2V5d29yZDpcbiAgICAgICAgICAgICdpZiBlbHNlIGVsaWYgZW5kaWYgZGVmaW5lIHVuZGVmIHdhcm5pbmcgZXJyb3IgbGluZSAnXG4gICAgICAgICAgICArICdwcmFnbWEgaWZkZWYgaWZuZGVmIGluY2x1ZGUnIH0sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46IC9cXFxcXFxuLyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH0sXG4gICAgICAgICAgaGxqcy5pbmhlcml0KGhsanMuUVVPVEVfU1RSSU5HX01PREUsIHsgY2xhc3NOYW1lOiAnc3RyaW5nJyB9KSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgYmVnaW46IC88Lio/Pi8sXG4gICAgICAgICAgICBlbmQ6IC8kLyxcbiAgICAgICAgICAgIGlsbGVnYWw6ICdcXFxcbidcbiAgICAgICAgICB9LFxuICAgICAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2NsYXNzJyxcbiAgICAgICAgYmVnaW46ICcoJyArIENMQVNTX0tFWVdPUkRTLmtleXdvcmQuam9pbignfCcpICsgJylcXFxcYicsXG4gICAgICAgIGVuZDogLyhcXHt8JCkvLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICBrZXl3b3JkczogQ0xBU1NfS0VZV09SRFMsXG4gICAgICAgIGNvbnRhaW5zOiBbIGhsanMuVU5ERVJTQ09SRV9USVRMRV9NT0RFIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXFxcXC4nICsgaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gb2JqZWN0aXZlYztcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///75\n");
  1754. /***/ }),
  1755. /* 76 */
  1756. /*!******************************************************************************************************!*\
  1757. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/highlight.js/lib/languages/php.js ***!
  1758. \******************************************************************************************************/
  1759. /*! no static exports found */
  1760. /***/ (function(module, exports) {
  1761. eval("/*\nLanguage: PHP\nAuthor: Victor Karamzin <Victor.Karamzin@enterra-inc.com>\nContributors: Evgeny Stepanischev <imbolk@gmail.com>, Ivan Sagalaev <maniac@softwaremaniacs.org>\nWebsite: https://www.php.net\nCategory: common\n*/\n\n/**\n * @param {HLJSApi} hljs\n * @returns {LanguageDetail}\n * */\nfunction php(hljs) {\n var regex = hljs.regex;\n // negative look-ahead tries to avoid matching patterns that are not\n // Perl at all like $ident$, @ident@, etc.\n var NOT_PERL_ETC = /(?![A-Za-z0-9])(?![$])/;\n var IDENT_RE = regex.concat(/[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*/, NOT_PERL_ETC);\n // Will not detect camelCase classes\n var PASCAL_CASE_CLASS_NAME_RE = regex.concat(/(\\\\?[A-Z][a-z0-9_\\x7f-\\xff]+|\\\\?[A-Z]+(?=[A-Z][a-z0-9_\\x7f-\\xff])){1,}/, NOT_PERL_ETC);\n var VARIABLE = {\n scope: 'variable',\n match: '\\\\$+' + IDENT_RE\n };\n var PREPROCESSOR = {\n scope: 'meta',\n variants: [{\n begin: /<\\?php/,\n relevance: 10\n },\n // boost for obvious PHP\n {\n begin: /<\\?=/\n },\n // less relevant per PSR-1 which says not to use short-tags\n {\n begin: /<\\?/,\n relevance: 0.1\n }, {\n begin: /\\?>/\n } // end php tag\n ]\n };\n\n var SUBST = {\n scope: 'subst',\n variants: [{\n begin: /\\$\\w+/\n }, {\n begin: /\\{\\$/,\n end: /\\}/\n }]\n };\n var SINGLE_QUOTED = hljs.inherit(hljs.APOS_STRING_MODE, {\n illegal: null\n });\n var DOUBLE_QUOTED = hljs.inherit(hljs.QUOTE_STRING_MODE, {\n illegal: null,\n contains: hljs.QUOTE_STRING_MODE.contains.concat(SUBST)\n });\n var HEREDOC = {\n begin: /<<<[ \\t]*(?:(\\w+)|\"(\\w+)\")\\n/,\n end: /[ \\t]*(\\w+)\\b/,\n contains: hljs.QUOTE_STRING_MODE.contains.concat(SUBST),\n 'on:begin': function onBegin(m, resp) {\n resp.data._beginMatch = m[1] || m[2];\n },\n 'on:end': function onEnd(m, resp) {\n if (resp.data._beginMatch !== m[1]) resp.ignoreMatch();\n }\n };\n var NOWDOC = hljs.END_SAME_AS_BEGIN({\n begin: /<<<[ \\t]*'(\\w+)'\\n/,\n end: /[ \\t]*(\\w+)\\b/\n });\n // list of valid whitespaces because non-breaking space might be part of a IDENT_RE\n var WHITESPACE = '[ \\t\\n]';\n var STRING = {\n scope: 'string',\n variants: [DOUBLE_QUOTED, SINGLE_QUOTED, HEREDOC, NOWDOC]\n };\n var NUMBER = {\n scope: 'number',\n variants: [{\n begin: \"\\\\b0[bB][01]+(?:_[01]+)*\\\\b\"\n },\n // Binary w/ underscore support\n {\n begin: \"\\\\b0[oO][0-7]+(?:_[0-7]+)*\\\\b\"\n },\n // Octals w/ underscore support\n {\n begin: \"\\\\b0[xX][\\\\da-fA-F]+(?:_[\\\\da-fA-F]+)*\\\\b\"\n },\n // Hex w/ underscore support\n // Decimals w/ underscore support, with optional fragments and scientific exponent (e) suffix.\n {\n begin: \"(?:\\\\b\\\\d+(?:_\\\\d+)*(\\\\.(?:\\\\d+(?:_\\\\d+)*))?|\\\\B\\\\.\\\\d+)(?:[eE][+-]?\\\\d+)?\"\n }],\n relevance: 0\n };\n var LITERALS = [\"false\", \"null\", \"true\"];\n var KWS = [\n // Magic constants:\n // <https://www.php.net/manual/en/language.constants.predefined.php>\n \"__CLASS__\", \"__DIR__\", \"__FILE__\", \"__FUNCTION__\", \"__COMPILER_HALT_OFFSET__\", \"__LINE__\", \"__METHOD__\", \"__NAMESPACE__\", \"__TRAIT__\",\n // Function that look like language construct or language construct that look like function:\n // List of keywords that may not require parenthesis\n \"die\", \"echo\", \"exit\", \"include\", \"include_once\", \"print\", \"require\", \"require_once\",\n // These are not language construct (function) but operate on the currently-executing function and can access the current symbol table\n // 'compact extract func_get_arg func_get_args func_num_args get_called_class get_parent_class ' +\n // Other keywords:\n // <https://www.php.net/manual/en/reserved.php>\n // <https://www.php.net/manual/en/language.types.type-juggling.php>\n \"array\", \"abstract\", \"and\", \"as\", \"binary\", \"bool\", \"boolean\", \"break\", \"callable\", \"case\", \"catch\", \"class\", \"clone\", \"const\", \"continue\", \"declare\", \"default\", \"do\", \"double\", \"else\", \"elseif\", \"empty\", \"enddeclare\", \"endfor\", \"endforeach\", \"endif\", \"endswitch\", \"endwhile\", \"enum\", \"eval\", \"extends\", \"final\", \"finally\", \"float\", \"for\", \"foreach\", \"from\", \"global\", \"goto\", \"if\", \"implements\", \"instanceof\", \"insteadof\", \"int\", \"integer\", \"interface\", \"isset\", \"iterable\", \"list\", \"match|0\", \"mixed\", \"new\", \"never\", \"object\", \"or\", \"private\", \"protected\", \"public\", \"readonly\", \"real\", \"return\", \"string\", \"switch\", \"throw\", \"trait\", \"try\", \"unset\", \"use\", \"var\", \"void\", \"while\", \"xor\", \"yield\"];\n var BUILT_INS = [\n // Standard PHP library:\n // <https://www.php.net/manual/en/book.spl.php>\n \"Error|0\", \"AppendIterator\", \"ArgumentCountError\", \"ArithmeticError\", \"ArrayIterator\", \"ArrayObject\", \"AssertionError\", \"BadFunctionCallException\", \"BadMethodCallException\", \"CachingIterator\", \"CallbackFilterIterator\", \"CompileError\", \"Countable\", \"DirectoryIterator\", \"DivisionByZeroError\", \"DomainException\", \"EmptyIterator\", \"ErrorException\", \"Exception\", \"FilesystemIterator\", \"FilterIterator\", \"GlobIterator\", \"InfiniteIterator\", \"InvalidArgumentException\", \"IteratorIterator\", \"LengthException\", \"LimitIterator\", \"LogicException\", \"MultipleIterator\", \"NoRewindIterator\", \"OutOfBoundsException\", \"OutOfRangeException\", \"OuterIterator\", \"OverflowException\", \"ParentIterator\", \"ParseError\", \"RangeException\", \"RecursiveArrayIterator\", \"RecursiveCachingIterator\", \"RecursiveCallbackFilterIterator\", \"RecursiveDirectoryIterator\", \"RecursiveFilterIterator\", \"RecursiveIterator\", \"RecursiveIteratorIterator\", \"RecursiveRegexIterator\", \"RecursiveTreeIterator\", \"RegexIterator\", \"RuntimeException\", \"SeekableIterator\", \"SplDoublyLinkedList\", \"SplFileInfo\", \"SplFileObject\", \"SplFixedArray\", \"SplHeap\", \"SplMaxHeap\", \"SplMinHeap\", \"SplObjectStorage\", \"SplObserver\", \"SplPriorityQueue\", \"SplQueue\", \"SplStack\", \"SplSubject\", \"SplTempFileObject\", \"TypeError\", \"UnderflowException\", \"UnexpectedValueException\", \"UnhandledMatchError\",\n // Reserved interfaces:\n // <https://www.php.net/manual/en/reserved.interfaces.php>\n \"ArrayAccess\", \"BackedEnum\", \"Closure\", \"Fiber\", \"Generator\", \"Iterator\", \"IteratorAggregate\", \"Serializable\", \"Stringable\", \"Throwable\", \"Traversable\", \"UnitEnum\", \"WeakReference\", \"WeakMap\",\n // Reserved classes:\n // <https://www.php.net/manual/en/reserved.classes.php>\n \"Directory\", \"__PHP_Incomplete_Class\", \"parent\", \"php_user_filter\", \"self\", \"static\", \"stdClass\"];\n\n /** Dual-case keywords\n *\n * [\"then\",\"FILE\"] =>\n * [\"then\", \"THEN\", \"FILE\", \"file\"]\n *\n * @param {string[]} items */\n var dualCase = function dualCase(items) {\n /** @type string[] */\n var result = [];\n items.forEach(function (item) {\n result.push(item);\n if (item.toLowerCase() === item) {\n result.push(item.toUpperCase());\n } else {\n result.push(item.toLowerCase());\n }\n });\n return result;\n };\n var KEYWORDS = {\n keyword: KWS,\n literal: dualCase(LITERALS),\n built_in: BUILT_INS\n };\n\n /**\n * @param {string[]} items */\n var normalizeKeywords = function normalizeKeywords(items) {\n return items.map(function (item) {\n return item.replace(/\\|\\d+$/, \"\");\n });\n };\n var CONSTRUCTOR_CALL = {\n variants: [{\n match: [/new/, regex.concat(WHITESPACE, \"+\"),\n // to prevent built ins from being confused as the class constructor call\n regex.concat(\"(?!\", normalizeKeywords(BUILT_INS).join(\"\\\\b|\"), \"\\\\b)\"), PASCAL_CASE_CLASS_NAME_RE],\n scope: {\n 1: \"keyword\",\n 4: \"title.class\"\n }\n }]\n };\n var CONSTANT_REFERENCE = regex.concat(IDENT_RE, \"\\\\b(?!\\\\()\");\n var LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON = {\n variants: [{\n match: [regex.concat(/::/, regex.lookahead(/(?!class\\b)/)), CONSTANT_REFERENCE],\n scope: {\n 2: \"variable.constant\"\n }\n }, {\n match: [/::/, /class/],\n scope: {\n 2: \"variable.language\"\n }\n }, {\n match: [PASCAL_CASE_CLASS_NAME_RE, regex.concat(/::/, regex.lookahead(/(?!class\\b)/)), CONSTANT_REFERENCE],\n scope: {\n 1: \"title.class\",\n 3: \"variable.constant\"\n }\n }, {\n match: [PASCAL_CASE_CLASS_NAME_RE, regex.concat(\"::\", regex.lookahead(/(?!class\\b)/))],\n scope: {\n 1: \"title.class\"\n }\n }, {\n match: [PASCAL_CASE_CLASS_NAME_RE, /::/, /class/],\n scope: {\n 1: \"title.class\",\n 3: \"variable.language\"\n }\n }]\n };\n var NAMED_ARGUMENT = {\n scope: 'attr',\n match: regex.concat(IDENT_RE, regex.lookahead(':'), regex.lookahead(/(?!::)/))\n };\n var PARAMS_MODE = {\n relevance: 0,\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS,\n contains: [NAMED_ARGUMENT, VARIABLE, LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON, hljs.C_BLOCK_COMMENT_MODE, STRING, NUMBER, CONSTRUCTOR_CALL]\n };\n var FUNCTION_INVOKE = {\n relevance: 0,\n match: [/\\b/,\n // to prevent keywords from being confused as the function title\n regex.concat(\"(?!fn\\\\b|function\\\\b|\", normalizeKeywords(KWS).join(\"\\\\b|\"), \"|\", normalizeKeywords(BUILT_INS).join(\"\\\\b|\"), \"\\\\b)\"), IDENT_RE, regex.concat(WHITESPACE, \"*\"), regex.lookahead(/(?=\\()/)],\n scope: {\n 3: \"title.function.invoke\"\n },\n contains: [PARAMS_MODE]\n };\n PARAMS_MODE.contains.push(FUNCTION_INVOKE);\n var ATTRIBUTE_CONTAINS = [NAMED_ARGUMENT, LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON, hljs.C_BLOCK_COMMENT_MODE, STRING, NUMBER, CONSTRUCTOR_CALL];\n var ATTRIBUTES = {\n begin: regex.concat(/#\\[\\s*/, PASCAL_CASE_CLASS_NAME_RE),\n beginScope: \"meta\",\n end: /]/,\n endScope: \"meta\",\n keywords: {\n literal: LITERALS,\n keyword: ['new', 'array']\n },\n contains: [{\n begin: /\\[/,\n end: /]/,\n keywords: {\n literal: LITERALS,\n keyword: ['new', 'array']\n },\n contains: ['self'].concat(ATTRIBUTE_CONTAINS)\n }].concat(ATTRIBUTE_CONTAINS, [{\n scope: 'meta',\n match: PASCAL_CASE_CLASS_NAME_RE\n }])\n };\n return {\n case_insensitive: false,\n keywords: KEYWORDS,\n contains: [ATTRIBUTES, hljs.HASH_COMMENT_MODE, hljs.COMMENT('//', '$'), hljs.COMMENT('/\\\\*', '\\\\*/', {\n contains: [{\n scope: 'doctag',\n match: '@[A-Za-z]+'\n }]\n }), {\n match: /__halt_compiler\\(\\);/,\n keywords: '__halt_compiler',\n starts: {\n scope: \"comment\",\n end: hljs.MATCH_NOTHING_RE,\n contains: [{\n match: /\\?>/,\n scope: \"meta\",\n endsParent: true\n }]\n }\n }, PREPROCESSOR, {\n scope: 'variable.language',\n match: /\\$this\\b/\n }, VARIABLE, FUNCTION_INVOKE, LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON, {\n match: [/const/, /\\s/, IDENT_RE],\n scope: {\n 1: \"keyword\",\n 3: \"variable.constant\"\n }\n }, CONSTRUCTOR_CALL, {\n scope: 'function',\n relevance: 0,\n beginKeywords: 'fn function',\n end: /[;{]/,\n excludeEnd: true,\n illegal: '[$%\\\\[]',\n contains: [{\n beginKeywords: 'use'\n }, hljs.UNDERSCORE_TITLE_MODE, {\n begin: '=>',\n // No markup, just a relevance booster\n endsParent: true\n }, {\n scope: 'params',\n begin: '\\\\(',\n end: '\\\\)',\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS,\n contains: ['self', VARIABLE, LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON, hljs.C_BLOCK_COMMENT_MODE, STRING, NUMBER]\n }]\n }, {\n scope: 'class',\n variants: [{\n beginKeywords: \"enum\",\n illegal: /[($\"]/\n }, {\n beginKeywords: \"class interface trait\",\n illegal: /[:($\"]/\n }],\n relevance: 0,\n end: /\\{/,\n excludeEnd: true,\n contains: [{\n beginKeywords: 'extends implements'\n }, hljs.UNDERSCORE_TITLE_MODE]\n },\n // both use and namespace still use \"old style\" rules (vs multi-match)\n // because the namespace name can include `\\` and we still want each\n // element to be treated as its own *individual* title\n {\n beginKeywords: 'namespace',\n relevance: 0,\n end: ';',\n illegal: /[.']/,\n contains: [hljs.inherit(hljs.UNDERSCORE_TITLE_MODE, {\n scope: \"title.class\"\n })]\n }, {\n beginKeywords: 'use',\n relevance: 0,\n end: ';',\n contains: [\n // TODO: title.function vs title.class\n {\n match: /\\b(as|const|function)\\b/,\n scope: \"keyword\"\n },\n // TODO: could be title.class or title.function\n hljs.UNDERSCORE_TITLE_MODE]\n }, STRING, NUMBER]\n };\n}\nmodule.exports = php;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvcGhwLmpzIl0sIm5hbWVzIjpbInBocCIsImhsanMiLCJyZWdleCIsIk5PVF9QRVJMX0VUQyIsIklERU5UX1JFIiwiY29uY2F0IiwiUEFTQ0FMX0NBU0VfQ0xBU1NfTkFNRV9SRSIsIlZBUklBQkxFIiwic2NvcGUiLCJtYXRjaCIsIlBSRVBST0NFU1NPUiIsInZhcmlhbnRzIiwiYmVnaW4iLCJyZWxldmFuY2UiLCJTVUJTVCIsImVuZCIsIlNJTkdMRV9RVU9URUQiLCJpbmhlcml0IiwiQVBPU19TVFJJTkdfTU9ERSIsImlsbGVnYWwiLCJET1VCTEVfUVVPVEVEIiwiUVVPVEVfU1RSSU5HX01PREUiLCJjb250YWlucyIsIkhFUkVET0MiLCJtIiwicmVzcCIsImRhdGEiLCJfYmVnaW5NYXRjaCIsImlnbm9yZU1hdGNoIiwiTk9XRE9DIiwiRU5EX1NBTUVfQVNfQkVHSU4iLCJXSElURVNQQUNFIiwiU1RSSU5HIiwiTlVNQkVSIiwiTElURVJBTFMiLCJLV1MiLCJCVUlMVF9JTlMiLCJkdWFsQ2FzZSIsIml0ZW1zIiwicmVzdWx0IiwiZm9yRWFjaCIsIml0ZW0iLCJwdXNoIiwidG9Mb3dlckNhc2UiLCJ0b1VwcGVyQ2FzZSIsIktFWVdPUkRTIiwia2V5d29yZCIsImxpdGVyYWwiLCJidWlsdF9pbiIsIm5vcm1hbGl6ZUtleXdvcmRzIiwibWFwIiwicmVwbGFjZSIsIkNPTlNUUlVDVE9SX0NBTEwiLCJqb2luIiwiQ09OU1RBTlRfUkVGRVJFTkNFIiwiTEVGVF9BTkRfUklHSFRfU0lERV9PRl9ET1VCTEVfQ09MT04iLCJsb29rYWhlYWQiLCJOQU1FRF9BUkdVTUVOVCIsIlBBUkFNU19NT0RFIiwia2V5d29yZHMiLCJDX0JMT0NLX0NPTU1FTlRfTU9ERSIsIkZVTkNUSU9OX0lOVk9LRSIsIkFUVFJJQlVURV9DT05UQUlOUyIsIkFUVFJJQlVURVMiLCJiZWdpblNjb3BlIiwiZW5kU2NvcGUiLCJjYXNlX2luc2Vuc2l0aXZlIiwiSEFTSF9DT01NRU5UX01PREUiLCJDT01NRU5UIiwic3RhcnRzIiwiTUFUQ0hfTk9USElOR19SRSIsImVuZHNQYXJlbnQiLCJiZWdpbktleXdvcmRzIiwiZXhjbHVkZUVuZCIsIlVOREVSU0NPUkVfVElUTEVfTU9ERSIsImV4Y2x1ZGVCZWdpbiIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsR0FBRyxDQUFDQyxJQUFJLEVBQUU7RUFDakIsSUFBTUMsS0FBSyxHQUFHRCxJQUFJLENBQUNDLEtBQUs7RUFDeEI7RUFDQTtFQUNBLElBQU1DLFlBQVksR0FBRyx3QkFBd0I7RUFDN0MsSUFBTUMsUUFBUSxHQUFHRixLQUFLLENBQUNHLE1BQU0sQ0FDM0IsMENBQTBDLEVBQzFDRixZQUFZLENBQUM7RUFDZjtFQUNBLElBQU1HLHlCQUF5QixHQUFHSixLQUFLLENBQUNHLE1BQU0sQ0FDNUMsd0VBQXdFLEVBQ3hFRixZQUFZLENBQUM7RUFDZixJQUFNSSxRQUFRLEdBQUc7SUFDZkMsS0FBSyxFQUFFLFVBQVU7SUFDakJDLEtBQUssRUFBRSxNQUFNLEdBQUdMO0VBQ2xCLENBQUM7RUFDRCxJQUFNTSxZQUFZLEdBQUc7SUFDbkJGLEtBQUssRUFBRSxNQUFNO0lBQ2JHLFFBQVEsRUFBRSxDQUNSO01BQUVDLEtBQUssRUFBRSxRQUFRO01BQUVDLFNBQVMsRUFBRTtJQUFHLENBQUM7SUFBRTtJQUNwQztNQUFFRCxLQUFLLEVBQUU7SUFBTyxDQUFDO0lBQ2pCO0lBQ0E7TUFBRUEsS0FBSyxFQUFFLEtBQUs7TUFBRUMsU0FBUyxFQUFFO0lBQUksQ0FBQyxFQUNoQztNQUFFRCxLQUFLLEVBQUU7SUFBTSxDQUFDLENBQUM7SUFBQTtFQUVyQixDQUFDOztFQUNELElBQU1FLEtBQUssR0FBRztJQUNaTixLQUFLLEVBQUUsT0FBTztJQUNkRyxRQUFRLEVBQUUs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dGhvcjogVmljdG9yIEthcmFtemluIDxWaWN0b3IuS2FyYW16aW5AZW50ZXJyYS1pbmMuY29tPlxuQ29udHJpYnV0b3JzOiBFdmdlbnkgU3RlcGFuaXNjaGV2IDxpbWJvbGtAZ21haWwuY29tPiwgSXZhbiBTYWdhbGFldiA8bWFuaWFjQHNvZnR3YXJlbWFuaWFjcy5vcmc+XG5XZWJzaXRlOiBodHRwczovL3d3dy5waHAubmV0XG5DYXRlZ29yeTogY29tbW9uXG4qL1xuXG4vKipcbiAqIEBwYXJhbSB7SExKU0FwaX0gaGxqc1xuICogQHJldHVybnMge0xhbmd1YWdlRGV0YWlsfVxuICogKi9cbmZ1bmN0aW9uIHBocChobGpzKSB7XG4gIGNvbnN0IHJlZ2V4ID0gaGxqcy5yZWdleDtcbiAgLy8gbmVnYXRpdmUgbG9vay1haGVhZCB0cmllcyB0byBhdm9pZCBtYXRjaGluZyBwYXR0ZXJucyB0aGF0IGFyZSBub3RcbiAgLy8gUGVybCBhdCBhbGwgbGlrZSAkaWRlbnQkLCBAaWRlbnRALCBldGMuXG4gIGNvbnN0IE5PVF9QRVJMX0VUQyA9IC8oPyFbQS1aYS16MC05XSkoPyFbJF0pLztcbiAgY29uc3QgSURFTlRfUkUgPSByZWdleC5jb25jYXQoXG4gICAgL1thLXpBLVpfXFx4N2YtXFx4ZmZdW2EtekEtWjAtOV9cXHg3Zi1cXHhmZl0qLyxcbiAgICBOT1RfUEVSTF9FVEMpO1xuICAvLyBXaWxsIG5vdCBkZXRlY3QgY2FtZWxDYXNlIGNsYXNzZXNcbiAgY29uc3QgUEFTQ0FMX0NBU0VfQ0xBU1NfTkFNRV9SRSA9IHJlZ2V4LmNvbmNhdChcbiAgICAvKFxcXFw/W0EtWl1bYS16MC05X1xceDdmLVxceGZmXSt8XFxcXD9bQS1aXSsoPz1bQS1aXVthLXowLTlfXFx4N2YtXFx4ZmZdKSl7MSx9LyxcbiAgICBOT1RfUEVSTF9FVEMpO1xuICBjb25zdCBWQVJJQUJMRSA9IHtcbiAgICBzY29wZTogJ3ZhcmlhYmxlJyxcbiAgICBtYXRjaDogJ1xcXFwkKycgKyBJREVOVF9SRSxcbiAgfTtcbiAgY29uc3QgUFJFUFJPQ0VTU09SID0ge1xuICAgIHNjb3BlOiAnbWV0YScsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHsgYmVnaW46IC88XFw/cGhwLywgcmVsZXZhbmNlOiAxMCB9LCAvLyBib29zdCBmb3Igb2J2aW91cyBQSFBcbiAgICAgIHsgYmVnaW46IC88XFw/PS8gfSxcbiAgICAgIC8vIGxlc3MgcmVsZXZhbnQgcGVyIFBTUi0xIHdoaWNoIHNheXMgbm90IHRvIHVzZSBzaG9ydC10YWdzXG4gICAgICB7IGJlZ2luOiAvPFxcPy8sIHJlbGV2YW5jZTogMC4xIH0sXG4gICAgICB7IGJlZ2luOiAvXFw/Pi8gfSAvLyBlbmQgcGhwIHRhZ1xuICAgIF1cbiAgfTtcbiAgY29uc3QgU1VCU1QgPSB7XG4gICAgc2NvcGU6ICdzdWJzdCcsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHsgYmVnaW46IC9cXCRcXHcrLyB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogL1xce1xcJC8sXG4gICAgICAgIGVuZDogL1xcfS9cbiAgICAgIH1cbiAgICBdXG4gIH07XG4gIGNvbnN0IFNJTkdMRV9RVU9URUQgPSBobGpzLmluaGVyaXQoaGxqcy5BUE9TX1NUUklOR19NT0RFLCB7IGlsbGVnYWw6IG51bGwsIH0pO1xuICBjb25zdCBET1VCTEVfUVVPVEVEID0gaGxqcy5pbmhlcml0KGhsanMuUVVPVEVfU1RSSU5HX01PREUsIHtcbiAgICBpbGxlZ2FsOiBudWxsLFxuICAgIGNvbnRhaW5zOiBobGpzLlFVT1RFX1NUUklOR19NT0RFLmNvbnRhaW5zLmNvbmNhdChTVUJTVCksXG4gIH0pO1xuXG4gIGNvbnN0IEhFUkVET0MgPSB7XG4gICAgYmVnaW46IC88PDxbIFxcdF0qKD86KFxcdyspfFwiKFxcdyspXCIpXFxuLyxcbiAgICBlbmQ6IC9bIFxcdF0qKFxcdyspXFxiLyxcbiAgICBjb250YWluczogaGxqcy5RVU9URV9TVFJJTkdfTU9ERS5jb250YWlucy5jb25jYXQoU1VCU1QpLFxuICAgICdvbjpiZWdpbic6IChtLCByZXNwKSA9PiB7IHJlc3AuZGF0YS5fYmVnaW5NYXRjaCA9IG1bMV0gfHwgbVsyXTsgfSxcbiAgICAnb246ZW5kJzogKG0sIHJlc3ApID0+IHsgaWYgKHJlc3AuZGF0YS5fYmVnaW5NYXRjaCAhPT0gbVsxXSkgcmVzcC5pZ25vcmVNYXRjaCgpOyB9LFxuICB9O1xuXG4gIGNvbnN0IE5PV0RPQyA9IGhsanMuRU5EX1NBTUVfQVNfQkVHSU4oe1xuICAgIGJlZ2luOiAvPDw8WyBcXHRdKicoXFx3KyknXFxuLyxcbiAgICBlbmQ6IC9bIFxcdF0qKFxcdyspXFxiLyxcbiAgfSk7XG4gIC8vIGxpc3Qgb2YgdmFsaWQgd2hpdGVzcGFjZXMgYmVjYXVzZSBub24tYnJlYWtpbmcgc3BhY2UgbWlnaHQgYmUgcGFydCBvZiBhIElERU5UX1JFXG4gIGNvbnN0IFdISVRFU1BBQ0UgPSAnWyBcXHRcXG5dJztcbiAgY29uc3QgU1RSSU5HID0ge1xuICAgIHNjb3BlOiAnc3RyaW5nJyxcbiAgICB2YXJpYW50czogW1xuICAgICAgRE9VQkxFX1FVT1RFRCxcbiAgICAgIFNJTkdMRV9RVU9URUQsXG4gICAgICBIRVJFRE9DLFxuICAgICAgTk9XRE9DXG4gICAgXVxuICB9O1xuICBjb25zdCBOVU1CRVIgPSB7XG4gICAgc2NvcGU6ICdudW1iZXInLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7IGJlZ2luOiBgXFxcXGIwW2JCXVswMV0rKD86X1swMV0rKSpcXFxcYmAgfSwgLy8gQmluYXJ5IHcvIHVuZGVyc2NvcmUgc3VwcG9ydFxuICAgICAgeyBiZWdpbjogYFxcXFxiMFtvT11bMC03XSsoPzpfWzAtN10rKSpcXFxcYmAgfSwgLy8gT2N0YWxzIHcvIHVuZGVyc2NvcmUgc3VwcG9ydFxuICAgICAgeyBiZWdpbjogYFxcXFxiMFt4WF1bXFxcXGRhLWZBLUZdKyg/Ol9bXFxcXGRhLWZBLUZdKykqXFxcXGJgIH0sIC8vIEhleCB3LyB1bmRlcnNjb3JlIHN1cHBvcnRcbiAgICAgIC8vIERlY2ltYWxzIHcvIHVuZGVyc2NvcmUgc3VwcG9ydCwgd2l0aCBvcHRpb25hbCBmcmFnbWVudHMgYW5kIHNjaWVudGlmaWMgZXhwb25lbnQgKGUpIHN1ZmZpeC5cbiAgICAgIHsgYmVnaW46IGAoPzpcXFxcYlxcXFxkKyg/Ol9cXFxcZCspKihcXFxcLig/OlxcXFxkKyg/Ol9cXFxcZCspKikpP3xcXFxcQlxcXFwuXFxcXGQrKSg/OltlRV1bKy1dP1xcXFxkKyk/YCB9XG4gICAgXSxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgY29uc3QgTElURVJBTFMgPSBbXG4gICAgXCJmYWxzZVwiLFxuICAgIFwibnVsbFwiLFxuICAgIFwidHJ1ZVwiXG4gIF07XG4gIGNvbnN0IEtXUyA9IFtcbiAgICAvLyBNYWdpYyBjb25zdGFudHM6XG4gICAgLy8gPGh0dHBzOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2xhbmd1YWdlLmNvbnN0YW50cy5wcmVkZWZpbmVkLnBocD5cbiAgICBcIl9fQ0xBU1NfX1wiLFxuICAgIFwiX19ESVJfX1wiLFxuICAgIFwiX19GSUxFX19cIixcbiAgICBcIl9fRlVOQ1RJT05fX1wiLFxuICAgIFwiX19DT01QSUxFUl9IQUxUX09GRlNFVF9fXCIsXG4gICAgXCJfX0xJTkVfX1wiLFxuICAgIFwiX19NRVRIT0RfX1wiLFxuICAgIFwiX19OQU1FU1BBQ0VfX1wiLFxuICAgIFwiX19UUkFJVF9fXCIsXG4gICAgLy8gRnVuY3Rpb24gdGhhdCBsb29rIGxpa2UgbGFuZ3VhZ2UgY29uc3RydWN0IG9yIGxhbmd1YWdlIGNvbnN0cnVjdCB0aGF0IGxvb2sgbGlrZSBmdW5jdGlvbjpcbiAgICAvLyBMaXN0IG9mIGtleXdvcmRzIHRoYXQgbWF5IG5vdCByZXF1aXJlIHBhcmVudGhlc2lzXG4gICAgXCJkaWVcIixcbiAgICBcImVjaG9cIixcbiAgICBcImV4aXRcIixcbiAgICBcImluY2x1ZGVcIixcbiAgICBcImluY2x1ZGVfb25jZVwiLFxuICAgIFwicHJpbnRcIixcbiAgICBcInJlcXVpcmVcIixcbiAgICBcInJlcXVpcmVfb25jZVwiLFxuICAgIC8vIFRoZXNlIGFyZSBub3QgbGFuZ3VhZ2UgY29uc3RydWN0IChmdW5jdGlvbikgYnV0IG9wZXJhdGUgb24gdGhlIGN1cnJlbnRseS1leGVjdXRpbmcgZnVuY3Rpb24gYW5kIGNhbiBhY2Nlc3MgdGhlIGN1cnJlbnQgc3ltYm9sIHRhYmxlXG4gICAgLy8gJ2NvbXBhY3QgZXh0cmFjdCBmdW5jX2dldF9hcmcgZnVuY19nZXRfYXJncyBmdW5jX251bV9hcmdzIGdldF9jYWxsZWRfY2xhc3MgZ2V0X3BhcmVudF9jbGFzcyAnICtcbiAgICAvLyBPdGhlciBrZXl3b3JkczpcbiAgICAvLyA8aHR0cHM6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vcmVzZXJ2ZWQucGhwPlxuICAgIC8vIDxodHRwczovL3d3dy5waHAubmV0L21hbnVhbC9lbi9sYW5ndWFnZS50eXBlcy50eXBlLWp1Z2dsaW5nLnBocD5cbiAgICBcImFycmF5XCIsXG4gICAgXCJhYnN0cmFjdFwiLFxuICAgIFwiYW5kXCIsXG4gICAgXCJhc1wiLFxuICAgIFwiYmluYXJ5XCIsXG4gICAgXCJib29sXCIsXG4gICAgXCJib29sZWFuXCIsXG4gICAgXCJicmVha1wiLFxuICAgIFwiY2FsbGFibGVcIixcbiAgICBcImNhc2VcIixcbiAgICBcImNhdGNoXCIsXG4gICAgXCJjbGFzc1wiLFxuICAgIFwiY2xvbmVcIixcbiAgICBcImNvbnN0XCIsXG4gICAgXCJjb250aW51ZVwiLFxuICAgIFwiZGVjbGFyZVwiLFxuICAgIFwiZGVmYXVsdFwiLFxuICAgIFwiZG9cIixcbiAgICBcImRvdWJsZVwiLFxuICAgIFwiZWxzZVwiLFxuICAgIFwiZWxzZWlmXCIsXG4gICAgXCJlbXB0eVwiLFxuICAgIFwiZW5kZGVjbGFyZVwiLFxuICAgIFwiZW5kZm9yXCIsXG4gICAgXCJlbmRmb3JlYWNoXCIsXG4gICAgXCJlbmRpZlwiLFxuICAgIFwiZW5kc3dpdGNoXCIsXG4gICAgXCJlbmR3aGlsZVwiLFxuICAgIFwiZW51bVwiLFxuICAgIFwiZXZhbFwiLFxuICAgIFwiZXh0ZW5kc1wiLFxuICAgIFwiZmluYWxcIixcbiAgICBcImZpbmFsbHlcIixcbiAgICBcImZsb2F0XCIsXG4gICAgXCJmb3JcIixcbiAgICBcImZvcmVhY2hcIixcbiAgICBcImZyb21cIixcbiAgICBcImdsb2JhbFwiLFxuICAgIFwiZ290b1wiLFxuICAgIFwiaWZcIixcbiAgICBcImltcGxlbWVudHNcIixcbiAgICBcImluc3RhbmNlb2ZcIixcbiAgICBcImluc3RlYWRvZlwiLFxuICAgIFwiaW50XCIsXG4gICAgXCJpbnRlZ2VyXCIsXG4gICAgXCJpbnRlcmZhY2VcIixcbiAgICBcImlzc2V0XCIsXG4gICAgXCJpdGVyYWJsZVwiLFxuICAgIFwibGlzdFwiLFxuICAgIFwibWF0Y2h8MFwiLFxuICAgIFwibWl4ZWRcIixcbiAgICBcIm5ld1wiLFxuICAgIFwibmV2ZXJcIixcbiAgICBcIm9iamVjdFwiLFxuICAgIFwib3JcIixcbiAgICBcInByaXZhdGVcIixcbiAgICBcInByb3RlY3RlZFwiLFxuICAgIFwicHVibGljXCIsXG4gICAgXCJyZWFkb25seVwiLFxuICAgIFwicmVhbFwiLFxuICAgIFwicmV0dXJuXCIsXG4gICAgXCJzdHJpbmdcIixcbiAgICBcInN3aXRjaFwiLFxuICAgIFwidGhyb3dcIixcbiAgICBcInRyYWl0XCIsXG4gICAgXCJ0cnlcIixcbiAgICBcInVuc2V0XCIsXG4gICAgXCJ1c2VcIixcbiAgICBcInZhclwiLFxuICAgIFwidm9pZFwiLFxuICAgIFwid2hpbGVcIixcbiAgICBcInhvclwiLFxuICAgIFwieWllbGRcIlxuICBdO1xuXG4gIGNvbnN0IEJVSUxUX0lOUyA9IFtcbiAgICAvLyBTdGFuZGFyZCBQSFAgbGlicmFyeTpcbiAgICAvLyA8aHR0cHM6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vYm9vay5zcGwucGhwPlxuICAgIFwiRXJyb3J8MFwiLFxuICAgIFwiQXBwZW5kSXRlcmF0b3JcIixcbiAgICBcIkFyZ3VtZW50Q291bnRFcnJvclwiLFxuICAgIFwiQXJpdGhtZXRpY0Vycm9yXCIsXG4gICAgXCJBcnJheUl0ZXJhdG9yXCIsXG4gICAgXCJBcnJheU9iamVjdFwiLFxuICAgIFwiQXNzZXJ0aW9uRXJyb3JcIixcbiAgICBcIkJhZEZ1bmN0aW9uQ2FsbEV4Y2VwdGlvblwiLFxuICAgIFwiQmFkTWV0aG9kQ2FsbEV4Y2VwdGlvblwiLFxuICAgIFwiQ2FjaGluZ0l0ZXJhdG9yXCIsXG4gICAgXCJDYWxsYmFja0ZpbHRlckl0ZXJhdG9yXCIsXG4gICAgXCJDb21waWxlRXJyb3JcIixcbiAgICBcIkNvdW50YWJsZVwiLFxuICAgIFwiRGlyZWN0b3J5SXRlcmF0b3JcIixcbiAgICBcIkRpdmlzaW9uQnlaZXJvRXJyb3JcIixcbiAgICBcIkRvbWFpbkV4Y2VwdGlvblwiLFxuICAgIFwiRW1wdHlJdGVyYXRvclwiLFxuICAgIFwiRXJyb3JFeGNlcHRpb25cIixcbiAgICBcIkV4Y2VwdGlvblwiLFxuICAgIFwiRmlsZXN5c3RlbUl0ZXJhdG9yXCIsXG4gICAgXCJGaWx0ZXJJdGVyYXRvclwiLFxuICAgIFwiR2xvYkl0ZXJhdG9yXCIsXG4gICAgXCJJbmZpbml0ZUl0ZXJhdG9yXCIsXG4gICAgXCJJbnZhbGlkQXJndW1lbnRFeGNlcHRpb25cIixcbiAgICBcIkl0ZXJhdG9ySXRlcmF0b3JcIixcbiAgICBcIkxlbmd0aEV4Y2VwdGlvblwiLFxuICAgIFwiTGltaXRJdGVyYXRvclwiLFxuICAgIFwiTG9naWNFeGNlcHRpb25cIixcbiAgICBcIk11bHRpcGxlSXRlcmF0b3JcIixcbiAgICBcIk5vUmV3aW5kSXRlcmF0b3JcIixcbiAgICBcIk91dE9mQm91bmRzRXhjZXB0aW9uXCIsXG4gICAgXCJPdXRPZlJhbmdlRXhjZXB0aW9uXCIsXG4gICAgXCJPdXRlckl0ZXJhdG9yXCIsXG4gICAgXCJPdmVyZmxvd0V4Y2VwdGlvblwiLFxuICAgIFwiUGFyZW50SXRlcmF0b3JcIixcbiAgICBcIlBhcnNlRXJyb3JcIixcbiAgICBcIlJhbmdlRXhjZXB0aW9uXCIsXG4gICAgXCJSZWN1cnNpdmVBcnJheUl0ZXJhdG9yXCIsXG4gICAgXCJSZWN1cnNpdmVDYWNoaW5nSXRlcmF0b3JcIixcbiAgICBcIlJlY3Vyc2l2ZUNhbGxiYWNrRmlsdGVySXRlcmF0b3JcIixcbiAgICBcIlJlY3Vyc2l2ZURpcmVjdG9yeUl0ZXJhdG9yXCIsXG4gICAgXCJSZWN1cnNpdmVGaWx0ZXJJdGVyYXRvclwiLFxuICAgIFwiUmVjdXJzaXZlSXRlcmF0b3JcIixcbiAgICBcIlJlY3Vyc2l2ZUl0ZXJhdG9ySXRlcmF0b3JcIixcbiAgICBcIlJlY3Vyc2l2ZVJlZ2V4SXRlcmF0b3JcIixcbiAgICBcIlJlY3Vyc2l2ZVRyZWVJdGVyYXRvclwiLFxuICAgIFwiUmVnZXhJdGVyYXRvclwiLFxuICAgIFwiUnVudGltZUV4Y2VwdGlvblwiLFxuICAgIFwiU2Vla2FibGVJdGVyYXRvclwiLFxuICAgIFwiU3BsRG91Ymx5TGlua2VkTGlzdFwiLFxuICAgIFwiU3BsRmlsZUluZm9cIixcbiAgICBcIlNwbEZpbGVPYmplY3RcIixcbiAgICBcIlNwbEZpeGVkQXJyYXlcIixcbiAgICBcIlNwbEhlYXBcIixcbiAgICBcIlNwbE1heEhlYXBcIixcbiAgICBcIlNwbE1pbkhlYXBcIixcbiAgICBcIlNwbE9iamVjdFN0b3JhZ2VcIixcbiAgICBcIlNwbE9ic2VydmVyXCIsXG4gICAgXCJTcGxQcmlvcml0eVF1ZXVlXCIsXG4gICAgXCJTcGxRdWV1ZVwiLFxuICAgIFwiU3BsU3RhY2tcIixcbiAgICBcIlNwbFN1YmplY3RcIixcbiAgICBcIlNwbFRlbXBGaWxlT2JqZWN0XCIsXG4gICAgXCJUeXBlRXJyb3JcIixcbiAgICBcIlVuZGVyZmxvd0V4Y2VwdGlvblwiLFxuICAgIFwiVW5leHBlY3RlZFZhbHVlRXhjZXB0aW9uXCIsXG4gICAgXCJVbmhhbmRsZWRNYXRjaEVycm9yXCIsXG4gICAgLy8gUmVzZXJ2ZWQgaW50ZXJmYWNlczpcbiAgICAvLyA8aHR0cHM6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vcmVzZXJ2ZWQuaW50ZXJmYWNlcy5waHA+XG4gICAgXCJBcnJheUFjY2Vzc1wiLFxuICAgIFwiQmFja2VkRW51bVwiLFxuICAgIFwiQ2xvc3VyZVwiLFxuICAgIFwiRmliZXJcIixcbiAgICBcIkdlbmVyYXRvclwiLFxuICAgIFwiSXRlcmF0b3JcIixcbiAgICBcIkl0ZXJhdG9yQWdncmVnYXRlXCIsXG4gICAgXCJTZXJpYWxpemFibGVcIixcbiAgICBcIlN0cmluZ2FibGVcIixcbiAgICBcIlRocm93YWJsZVwiLFxuICAgIFwiVHJhdmVyc2FibGVcIixcbiAgICBcIlVuaXRFbnVtXCIsXG4gICAgXCJXZWFrUmVmZXJlbmNlXCIsXG4gICAgXCJXZWFrTWFwXCIsXG4gICAgLy8gUmVzZXJ2ZWQgY2xhc3NlczpcbiAgICAvLyA8aHR0cHM6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vcmVzZXJ2ZWQuY2xhc3Nlcy5waHA+XG4gICAgXCJEaXJlY3RvcnlcIixcbiAgICBcIl9fUEhQX0luY29tcGxldGVfQ2xhc3NcIixcbiAgICBcInBhcmVudFwiLFxuICAgIFwicGhwX3VzZXJfZmlsdGVyXCIsXG4gICAgXCJzZWxmXCIsXG4gICAgXCJzdGF0aWNcIixcbiAgICBcInN0ZENsYXNzXCJcbiAgXTtcblxuICAvKiogRHVhbC1jYXNlIGtleXdvcmRzXG4gICAqXG4gICAqIFtcInRoZW5cIixcIkZJTEVcIl0gPT5cbiAgICogICAgIFtcInRoZW5cIiwgXCJUSEVOXCIsIFwiRklMRVwiLCBcImZpbGVcIl1cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gaXRlbXMgKi9cbiAgY29uc3QgZHVhbENhc2UgPSAoaXRlbXMpID0+IHtcbiAgICAvKiogQHR5cGUgc3RyaW5nW10gKi9cbiAgICBjb25zdCByZXN1bHQgPSBbXTtcbiAgICBpdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgcmVzdWx0LnB1c2goaXRlbSk7XG4gICAgICBpZiAoaXRlbS50b0xvd2VyQ2FzZSgpID09PSBpdGVtKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKGl0ZW0udG9VcHBlckNhc2UoKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQucHVzaChpdGVtLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH07XG5cbiAgY29uc3QgS0VZV09SRFMgPSB7XG4gICAga2V5d29yZDogS1dTLFxuICAgIGxpdGVyYWw6IGR1YWxDYXNlKExJVEVSQUxTKSxcbiAgICBidWlsdF9pbjogQlVJTFRfSU5TLFxuICB9O1xuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBpdGVtcyAqL1xuICBjb25zdCBub3JtYWxpemVLZXl3b3JkcyA9IChpdGVtcykgPT4ge1xuICAgIHJldHVybiBpdGVtcy5tYXAoaXRlbSA9PiB7XG4gICAgICByZXR1cm4gaXRlbS5yZXBsYWNlKC9cXHxcXGQrJC8sIFwiXCIpO1xuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IENPTlNUUlVDVE9SX0NBTEwgPSB7IHZhcmlhbnRzOiBbXG4gICAge1xuICAgICAgbWF0Y2g6IFtcbiAgICAgICAgL25ldy8sXG4gICAgICAgIHJlZ2V4LmNvbmNhdChXSElURVNQQUNFLCBcIitcIiksXG4gICAgICAgIC8vIHRvIHByZXZlbnQgYnVpbHQgaW5zIGZyb20gYmVpbmcgY29uZnVzZWQgYXMgdGhlIGNsYXNzIGNvbnN0cnVjdG9yIGNhbGxcbiAgICAgICAgcmVnZXguY29uY2F0KFwiKD8hXCIsIG5vcm1hbGl6ZUtleXdvcmRzKEJVSUxUX0lOUykuam9pbihcIlxcXFxifFwiKSwgXCJcXFxcYilcIiksXG4gICAgICAgIFBBU0NBTF9DQVNFX0NMQVNTX05BTUVfUkUsXG4gICAgICBdLFxuICAgICAgc2NvcGU6IHtcbiAgICAgICAgMTogXCJrZXl3b3JkXCIsXG4gICAgICAgIDQ6IFwidGl0bGUuY2xhc3NcIixcbiAgICAgIH0sXG4gICAgfVxuICBdIH07XG5cbiAgY29uc3QgQ09OU1RBTlRfUkVGRVJFTkNFID0gcmVnZXguY29uY2F0KElERU5UX1JFLCBcIlxcXFxiKD8hXFxcXCgpXCIpO1xuXG4gIGNvbnN0IExFRlRfQU5EX1JJR0hUX1NJREVfT0ZfRE9VQkxFX0NPTE9OID0geyB2YXJpYW50czogW1xuICAgIHtcbiAgICAgIG1hdGNoOiBbXG4gICAgICAgIHJlZ2V4LmNvbmNhdChcbiAgICAgICAgICAvOjovLFxuICAgICAgICAgIHJlZ2V4Lmxvb2thaGVhZCgvKD8hY2xhc3NcXGIpLylcbiAgICAgICAgKSxcbiAgICAgICAgQ09OU1RBTlRfUkVGRVJFTkNFLFxuICAgICAgXSxcbiAgICAgIHNjb3BlOiB7IDI6IFwidmFyaWFibGUuY29uc3RhbnRcIiwgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIG1hdGNoOiBbXG4gICAgICAgIC86Oi8sXG4gICAgICAgIC9jbGFzcy8sXG4gICAgICBdLFxuICAgICAgc2NvcGU6IHsgMjogXCJ2YXJpYWJsZS5sYW5ndWFnZVwiLCB9LFxuICAgIH0sXG4gICAge1xuICAgICAgbWF0Y2g6IFtcbiAgICAgICAgUEFTQ0FMX0NBU0VfQ0xBU1NfTkFNRV9SRSxcbiAgICAgICAgcmVnZXguY29uY2F0KFxuICAgICAgICAgIC86Oi8sXG4gICAgICAgICAgcmVnZXgubG9va2FoZWFkKC8oPyFjbGFzc1xcYikvKVxuICAgICAgICApLFxuICAgICAgICBDT05TVEFOVF9SRUZFUkVOQ0UsXG4gICAgICBdLFxuICAgICAgc2NvcGU6IHtcbiAgICAgICAgMTogXCJ0aXRsZS5jbGFzc1wiLFxuICAgICAgICAzOiBcInZhcmlhYmxlLmNvbnN0YW50XCIsXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgbWF0Y2g6IFtcbiAgICAgICAgUEFTQ0FMX0NBU0VfQ0xBU1NfTkFNRV9SRSxcbiAgICAgICAgcmVnZXguY29uY2F0KFxuICAgICAgICAgIFwiOjpcIixcbiAgICAgICAgICByZWdleC5sb29rYWhlYWQoLyg/IWNsYXNzXFxiKS8pXG4gICAgICAgICksXG4gICAgICBdLFxuICAgICAgc2NvcGU6IHsgMTogXCJ0aXRsZS5jbGFzc1wiLCB9LFxuICAgIH0sXG4gICAge1xuICAgICAgbWF0Y2g6IFtcbiAgICAgICAgUEFTQ0FMX0NBU0VfQ0xBU1NfTkFNRV9SRSxcbiAgICAgICAgLzo6LyxcbiAgICAgICAgL2NsYXNzLyxcbiAgICAgIF0sXG4gICAgICBzY29wZToge1xuICAgICAgICAxOiBcInRpdGxlLmNsYXNzXCIsXG4gICAgICAgIDM6IFwidmFyaWFibGUubGFuZ3VhZ2VcIixcbiAgICAgIH0sXG4gICAgfVxuICBdIH07XG5cbiAgY29uc3QgTkFNRURfQVJHVU1FTlQgPSB7XG4gICAgc2NvcGU6ICdhdHRyJyxcbiAgICBtYXRjaDogcmVnZXguY29uY2F0KElERU5UX1JFLCByZWdleC5sb29rYWhlYWQoJzonKSwgcmVnZXgubG9va2FoZWFkKC8oPyE6OikvKSksXG4gIH07XG4gIGNvbnN0IFBBUkFNU19NT0RFID0ge1xuICAgIHJlbGV2YW5jZTogMCxcbiAgICBiZWdpbjogL1xcKC8sXG4gICAgZW5kOiAvXFwpLyxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIE5BTUVEX0FSR1VNRU5ULFxuICAgICAgVkFSSUFCTEUsXG4gICAgICBMRUZUX0FORF9SSUdIVF9TSURFX09GX0RPVUJMRV9DT0xPTixcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBTVFJJTkcsXG4gICAgICBOVU1CRVIsXG4gICAgICBDT05TVFJVQ1RPUl9DQUxMLFxuICAgIF0sXG4gIH07XG4gIGNvbnN0IEZVTkNUSU9OX0lOVk9LRSA9IHtcbiAgICByZWxldmFuY2U6IDAsXG4gICAgbWF0Y2g6IFtcbiAgICAgIC9cXGIvLFxuICAgICAgLy8gdG8gcHJldmVudCBrZXl3b3JkcyBmcm9tIGJlaW5nIGNvbmZ1c2VkIGFzIHRoZSBmdW5jdGlvbiB0aXRsZVxuICAgICAgcmVnZXguY29uY2F0KFwiKD8hZm5cXFxcYnxmdW5jdGlvblxcXFxifFwiLCBub3JtYWxpemVLZXl3b3JkcyhLV1MpLmpvaW4oXCJcXFxcYnxcIiksIFwifFwiLCBub3JtYWxpemVLZXl3b3JkcyhCVUlMVF9JTlMpLmpvaW4oXCJcXFxcYnxcIiksIFwiXFxcXGIpXCIpLFxuICAgICAgSURFTlRfUkUsXG4gICAgICByZWdleC5jb25jYXQoV0hJVEVTUEFDRSwgXCIqXCIpLFxuICAgICAgcmVnZXgubG9va2FoZWFkKC8oPz1cXCgpLylcbiAgICBdLFxuICAgIHNjb3BlOiB7IDM6IFwidGl0bGUuZnVuY3Rpb24uaW52b2tlXCIsIH0sXG4gICAgY29udGFpbnM6IFsgUEFSQU1TX01PREUgXVxuICB9O1xuICBQQVJBTVNfTU9ERS5jb250YWlucy5wdXNoKEZVTkNUSU9OX0lOVk9LRSk7XG5cbiAgY29uc3QgQVRUUklCVVRFX0NPTlRBSU5TID0gW1xuICAgIE5BTUVEX0FSR1VNRU5ULFxuICAgIExFRlRfQU5EX1JJR0hUX1NJREVfT0ZfRE9VQkxFX0NPTE9OLFxuICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgU1RSSU5HLFxuICAgIE5VTUJFUixcbiAgICBDT05TVFJVQ1RPUl9DQUxMLFxuICBdO1xuXG4gIGNvbnN0IEFUVFJJQlVURVMgPSB7XG4gICAgYmVnaW46IHJlZ2V4LmNvbmNhdCgvI1xcW1xccyovLCBQQVNDQUxfQ0FTRV9DTEFTU19OQU1FX1JFKSxcbiAgICBiZWdpblNjb3BlOiBcIm1ldGFcIixcbiAgICBlbmQ6IC9dLyxcbiAgICBlbmRTY29wZTogXCJtZXRhXCIsXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGxpdGVyYWw6IExJVEVSQUxTLFxuICAgICAga2V5d29yZDogW1xuICAgICAgICAnbmV3JyxcbiAgICAgICAgJ2FycmF5JyxcbiAgICAgIF1cbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFxbLyxcbiAgICAgICAgZW5kOiAvXS8sXG4gICAgICAgIGtleXdvcmRzOiB7XG4gICAgICAgICAgbGl0ZXJhbDogTElURVJBTFMsXG4gICAgICAgICAga2V5d29yZDogW1xuICAgICAgICAgICAgJ25ldycsXG4gICAgICAgICAgICAnYXJyYXknLFxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAnc2VsZicsXG4gICAgICAgICAgLi4uQVRUUklCVVRFX0NPTlRBSU5TLFxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgLi4uQVRUUklCVVRFX0NPTlRBSU5TLFxuICAgICAge1xuICAgICAgICBzY29wZTogJ21ldGEnLFxuICAgICAgICBtYXRjaDogUEFTQ0FMX0NBU0VfQ0xBU1NfTkFNRV9SRVxuICAgICAgfVxuICAgIF1cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIGNhc2VfaW5zZW5zaXRpdmU6IGZhbHNlLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICBjb250YWluczogW1xuICAgICAgQVRUUklCVVRFUyxcbiAgICAgIGhsanMuSEFTSF9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNPTU1FTlQoJy8vJywgJyQnKSxcbiAgICAgIGhsanMuQ09NTUVOVChcbiAgICAgICAgJy9cXFxcKicsXG4gICAgICAgICdcXFxcKi8nLFxuICAgICAgICB7IGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgc2NvcGU6ICdkb2N0YWcnLFxuICAgICAgICAgICAgbWF0Y2g6ICdAW0EtWmEtel0rJ1xuICAgICAgICAgIH1cbiAgICAgICAgXSB9XG4gICAgICApLFxuICAgICAge1xuICAgICAgICBtYXRjaDogL19faGFsdF9jb21waWxlclxcKFxcKTsvLFxuICAgICAgICBrZXl3b3JkczogJ19faGFsdF9jb21waWxlcicsXG4gICAgICAgIHN0YXJ0czoge1xuICAgICAgICAgIHNjb3BlOiBcImNvbW1lbnRcIixcbiAgICAgICAgICBlbmQ6IGhsanMuTUFUQ0hfTk9USElOR19SRSxcbiAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBtYXRjaDogL1xcPz4vLFxuICAgICAgICAgICAgICBzY29wZTogXCJtZXRhXCIsXG4gICAgICAgICAgICAgIGVuZHNQYXJlbnQ6IHRydWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBQUkVQUk9DRVNTT1IsXG4gICAgICB7XG4gICAgICAgIHNjb3BlOiAndmFyaWFibGUubGFuZ3VhZ2UnLFxuICAgICAgICBtYXRjaDogL1xcJHRoaXNcXGIvXG4gICAgICB9LFxuICAgICAgVkFSSUFCTEUsXG4gICAgICBGVU5DVElPTl9JTlZPS0UsXG4gICAgICBMRUZUX0FORF9SSUdIVF9TSURFX09GX0RPVUJMRV9DT0xPTixcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IFtcbiAgICAgICAgICAvY29uc3QvLFxuICAgICAgICAgIC9cXHMvLFxuICAgICAgICAgIElERU5UX1JFLFxuICAgICAgICBdLFxuICAgICAgICBzY29wZToge1xuICAgICAgICAgIDE6IFwia2V5d29yZFwiLFxuICAgICAgICAgIDM6IFwidmFyaWFibGUuY29uc3RhbnRcIixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBDT05TVFJVQ1RPUl9DQUxMLFxuICAgICAge1xuICAgICAgICBzY29wZTogJ2Z1bmN0aW9uJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICBiZWdpbktleXdvcmRzOiAnZm4gZnVuY3Rpb24nLFxuICAgICAgICBlbmQ6IC9bO3tdLyxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgaWxsZWdhbDogJ1skJVxcXFxbXScsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgeyBiZWdpbktleXdvcmRzOiAndXNlJywgfSxcbiAgICAgICAgICBobGpzLlVOREVSU0NPUkVfVElUTEVfTU9ERSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogJz0+JywgLy8gTm8gbWFya3VwLCBqdXN0IGEgcmVsZXZhbmNlIGJvb3N0ZXJcbiAgICAgICAgICAgIGVuZHNQYXJlbnQ6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHNjb3BlOiAncGFyYW1zJyxcbiAgICAgICAgICAgIGJlZ2luOiAnXFxcXCgnLFxuICAgICAgICAgICAgZW5kOiAnXFxcXCknLFxuICAgICAgICAgICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgICAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgICdzZWxmJyxcbiAgICAgICAgICAgICAgVkFSSUFCTEUsXG4gICAgICAgICAgICAgIExFRlRfQU5EX1JJR0hUX1NJREVfT0ZfRE9VQkxFX0NPTE9OLFxuICAgICAgICAgICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgICAgICBTVFJJTkcsXG4gICAgICAgICAgICAgIE5VTUJFUlxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHNjb3BlOiAnY2xhc3MnLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luS2V5d29yZHM6IFwiZW51bVwiLFxuICAgICAgICAgICAgaWxsZWdhbDogL1soJFwiXS9cbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luS2V5d29yZHM6IFwiY2xhc3MgaW50ZXJmYWNlIHRyYWl0XCIsXG4gICAgICAgICAgICBpbGxlZ2FsOiAvWzooJFwiXS9cbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgZW5kOiAvXFx7LyxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7IGJlZ2luS2V5d29yZHM6ICdleHRlbmRzIGltcGxlbWVudHMnIH0sXG4gICAgICAgICAgaGxqcy5VTkRFUlNDT1JFX1RJVExFX01PREVcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIC8vIGJvdGggdXNlIGFuZCBuYW1lc3BhY2Ugc3RpbGwgdXNlIFwib2xkIHN0eWxlXCIgcnVsZXMgKHZzIG11bHRpLW1hdGNoKVxuICAgICAgLy8gYmVjYXVzZSB0aGUgbmFtZXNwYWNlIG5hbWUgY2FuIGluY2x1ZGUgYFxcYCBhbmQgd2Ugc3RpbGwgd2FudCBlYWNoXG4gICAgICAvLyBlbGVtZW50IHRvIGJlIHRyZWF0ZWQgYXMgaXRzIG93biAqaW5kaXZpZHVhbCogdGl0bGVcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ25hbWVzcGFjZScsXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgZW5kOiAnOycsXG4gICAgICAgIGlsbGVnYWw6IC9bLiddLyxcbiAgICAgICAgY29udGFpbnM6IFsgaGxqcy5pbmhlcml0KGhsanMuVU5ERVJTQ09SRV9USVRMRV9NT0RFLCB7IHNjb3BlOiBcInRpdGxlLmNsYXNzXCIgfSkgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ3VzZScsXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgZW5kOiAnOycsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgLy8gVE9ETzogdGl0bGUuZnVuY3Rpb24gdnMgdGl0bGUuY2xhc3NcbiAgICAgICAgICB7XG4gICAgICAgICAgICBtYXRjaDogL1xcYihhc3xjb25zdHxmdW5jdGlvbilcXGIvLFxuICAgICAgICAgICAgc2NvcGU6IFwia2V5d29yZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICAvLyBUT0RPOiBjb3VsZCBiZSB0aXRsZS5jbGFzcyBvciB0aXRsZS5mdW5jdGlvblxuICAgICAgICAgIGhsanMuVU5ERVJTQ09SRV9USVRMRV9NT0RFXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBTVFJJTkcsXG4gICAgICBOVU1CRVIsXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHBocDtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///76\n");
  1762. /***/ }),
  1763. /* 77 */
  1764. /*!***************************************************************************************************************!*\
  1765. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/highlight.js/lib/languages/php-template.js ***!
  1766. \***************************************************************************************************************/
  1767. /*! no static exports found */
  1768. /***/ (function(module, exports) {
  1769. eval("/*\nLanguage: PHP Template\nRequires: xml.js, php.js\nAuthor: Josh Goebel <hello@joshgoebel.com>\nWebsite: https://www.php.net\nCategory: common\n*/\n\nfunction phpTemplate(hljs) {\n return {\n name: \"PHP template\",\n subLanguage: 'xml',\n contains: [{\n begin: /<\\?(php|=)?/,\n end: /\\?>/,\n subLanguage: 'php',\n contains: [\n // We don't want the php closing tag ?> to close the PHP block when\n // inside any of the following blocks:\n {\n begin: '/\\\\*',\n end: '\\\\*/',\n skip: true\n }, {\n begin: 'b\"',\n end: '\"',\n skip: true\n }, {\n begin: 'b\\'',\n end: '\\'',\n skip: true\n }, hljs.inherit(hljs.APOS_STRING_MODE, {\n illegal: null,\n className: null,\n contains: null,\n skip: true\n }), hljs.inherit(hljs.QUOTE_STRING_MODE, {\n illegal: null,\n className: null,\n contains: null,\n skip: true\n })]\n }]\n };\n}\nmodule.exports = phpTemplate;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvcGhwLXRlbXBsYXRlLmpzIl0sIm5hbWVzIjpbInBocFRlbXBsYXRlIiwiaGxqcyIsIm5hbWUiLCJzdWJMYW5ndWFnZSIsImNvbnRhaW5zIiwiYmVnaW4iLCJlbmQiLCJza2lwIiwiaW5oZXJpdCIsIkFQT1NfU1RSSU5HX01PREUiLCJpbGxlZ2FsIiwiY2xhc3NOYW1lIiwiUVVPVEVfU1RSSU5HX01PREUiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxTQUFTQSxXQUFXLENBQUNDLElBQUksRUFBRTtFQUN6QixPQUFPO0lBQ0xDLElBQUksRUFBRSxjQUFjO0lBQ3BCQyxXQUFXLEVBQUUsS0FBSztJQUNsQkMsUUFBUSxFQUFFLENBQ1I7TUFDRUMsS0FBSyxFQUFFLGFBQWE7TUFDcEJDLEdBQUcsRUFBRSxLQUFLO01BQ1ZILFdBQVcsRUFBRSxLQUFLO01BQ2xCQyxRQUFRLEVBQUU7TUFDUjtNQUNBO01BQ0E7UUFDRUMsS0FBSyxFQUFFLE1BQU07UUFDYkMsR0FBRyxFQUFFLE1BQU07UUFDWEMsSUFBSSxFQUFFO01BQ1IsQ0FBQyxFQUNEO1FBQ0VGLEtBQUssRUFBRSxJQUFJO1FBQ1hDLEdBQUcsRUFBRSxHQUFHO1FBQ1JDLElBQUksRUFBRTtNQUNSLENBQUMsRUFDRDtRQUNFRixLQUFLLEVBQUUsS0FBSztRQUNaQyxHQUFHLEVBQUUsSUFBSTtRQUNUQyxJQUFJLEVBQUU7TUFDUixDQUFDLEVBQ0ROLElBQUksQ0FBQ08sT0FBTyxDQUFDUCxJQUFJLENBQUNRLGdCQUFnQixFQUFFO1FBQ2xDQyxPQUFPLEVBQUUsSUFBSTtRQUNiQyxTQUFTLEVBQUUsSUFBSTtRQUNmUCxRQUFRLEVBQUUsSUFBSTtRQUNkRyxJQUFJLEVBQUU7TUFDUixDQUFDLENBQUMsRUFDRk4sSUFBSSxDQUFDTyxPQUFPLENBQUNQLElBQUksQ0FBQ1csaUJBQWlCLEVBQUU7UUFDbkNGLE9BQU8sRUFBRSxJQUFJO1FBQ2JDLFNBQVMsRUFBRSxJQUFJO1FBQ2ZQLFFBQVEsRUFBRSxJQUFJO1FBQ2RHLElBQUksRUFBRTtNQUNSLENBQUMsQ0FBQztJQUVOLENBQUM7RUFFTCxDQUFDO0FBQ0g7QUFFQU0sTUFBTSxDQUFDQyxPQUFPLEdBQUdkLFdBQVciLCJmaWxlIjoiNzcuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuTGFuZ3VhZ2U6IFBIUCBUZW1wbGF0ZVxuUmVxdWlyZXM6IHhtbC5qcywgcGhwLmpzXG5BdXRob3I6IEpvc2ggR29lYmVsIDxoZWxsb0Bqb3NoZ29lYmVsLmNvbT5cbldlYnNpdGU6IGh0dHBzOi8vd3d3LnBocC5uZXRcbkNhdGVnb3J5OiBjb21tb25cbiovXG5cbmZ1bmN0aW9uIHBocFRlbXBsYXRlKGhsanMpIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiBcIlBIUCB0ZW1wbGF0ZVwiLFxuICAgIHN1Ykxhbmd1YWdlOiAneG1sJyxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogLzxcXD8ocGhwfD0pPy8sXG4gICAgICAgIGVuZDogL1xcPz4vLFxuICAgICAgICBzdWJMYW5ndWFnZTogJ3BocCcsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgLy8gV2UgZG9uJ3Qgd2FudCB0aGUgcGhwIGNsb3NpbmcgdGFnID8+IHRvIGNsb3NlIHRoZSBQSFAgYmxvY2sgd2hlblxuICAgICAgICAgIC8vIGluc2lkZSBhbnkgb2YgdGhlIGZvbGxvd2luZyBibG9ja3M6XG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46ICcvXFxcXConLFxuICAgICAgICAgICAgZW5kOiAnXFxcXCovJyxcbiAgICAgICAgICAgIHNraXA6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAnYlwiJyxcbiAgICAgICAgICAgIGVuZDogJ1wiJyxcbiAgICAgICAgICAgIHNraXA6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAnYlxcJycsXG4gICAgICAgICAgICBlbmQ6ICdcXCcnLFxuICAgICAgICAgICAgc2tpcDogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgaGxqcy5pbmhlcml0KGhsanMuQVBPU19TVFJJTkdfTU9ERSwge1xuICAgICAgICAgICAgaWxsZWdhbDogbnVsbCxcbiAgICAgICAgICAgIGNsYXNzTmFtZTogbnVsbCxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBudWxsLFxuICAgICAgICAgICAgc2tpcDogdHJ1ZVxuICAgICAgICAgIH0pLFxuICAgICAgICAgIGhsanMuaW5oZXJpdChobGpzLlFVT1RFX1NUUklOR19NT0RFLCB7XG4gICAgICAgICAgICBpbGxlZ2FsOiBudWxsLFxuICAgICAgICAgICAgY2xhc3NOYW1lOiBudWxsLFxuICAgICAgICAgICAgY29udGFpbnM6IG51bGwsXG4gICAgICAgICAgICBza2lwOiB0cnVlXG4gICAgICAgICAgfSlcbiAgICAgICAgXVxuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBwaHBUZW1wbGF0ZTtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///77\n");
  1770. /***/ }),
  1771. /* 78 */
  1772. /*!************************************************************************************************************!*\
  1773. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/highlight.js/lib/languages/plaintext.js ***!
  1774. \************************************************************************************************************/
  1775. /*! no static exports found */
  1776. /***/ (function(module, exports) {
  1777. eval("/*\nLanguage: Plain text\nAuthor: Egor Rogov (e.rogov@postgrespro.ru)\nDescription: Plain text without any highlighting.\nCategory: common\n*/\n\nfunction plaintext(hljs) {\n return {\n name: 'Plain text',\n aliases: ['text', 'txt'],\n disableAutodetect: true\n };\n}\nmodule.exports = plaintext;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvcGxhaW50ZXh0LmpzIl0sIm5hbWVzIjpbInBsYWludGV4dCIsImhsanMiLCJuYW1lIiwiYWxpYXNlcyIsImRpc2FibGVBdXRvZGV0ZWN0IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLFNBQVNBLFNBQVMsQ0FBQ0MsSUFBSSxFQUFFO0VBQ3ZCLE9BQU87SUFDTEMsSUFBSSxFQUFFLFlBQVk7SUFDbEJDLE9BQU8sRUFBRSxDQUNQLE1BQU0sRUFDTixLQUFLLENBQ047SUFDREMsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQztBQUNIO0FBRUFDLE1BQU0sQ0FBQ0MsT0FBTyxHQUFHTixTQUFTIiwiZmlsZSI6Ijc4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbkxhbmd1YWdlOiBQbGFpbiB0ZXh0XG5BdXRob3I6IEVnb3IgUm9nb3YgKGUucm9nb3ZAcG9zdGdyZXNwcm8ucnUpXG5EZXNjcmlwdGlvbjogUGxhaW4gdGV4dCB3aXRob3V0IGFueSBoaWdobGlnaHRpbmcuXG5DYXRlZ29yeTogY29tbW9uXG4qL1xuXG5mdW5jdGlvbiBwbGFpbnRleHQoaGxqcykge1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdQbGFpbiB0ZXh0JyxcbiAgICBhbGlhc2VzOiBbXG4gICAgICAndGV4dCcsXG4gICAgICAndHh0J1xuICAgIF0sXG4gICAgZGlzYWJsZUF1dG9kZXRlY3Q6IHRydWVcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBwbGFpbnRleHQ7XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///78\n");
  1778. /***/ }),
  1779. /* 79 */
  1780. /*!*********************************************************************************************************!*\
  1781. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/highlight.js/lib/languages/python.js ***!
  1782. \*********************************************************************************************************/
  1783. /*! no static exports found */
  1784. /***/ (function(module, exports) {
  1785. eval("/*\nLanguage: Python\nDescription: Python is an interpreted, object-oriented, high-level programming language with dynamic semantics.\nWebsite: https://www.python.org\nCategory: common\n*/\n\nfunction python(hljs) {\n var regex = hljs.regex;\n var IDENT_RE = /(?:[A-Z_a-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037B-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088E\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5D\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1878\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7CA\\uA7D0\\uA7D1\\uA7D3\\uA7D5-\\uA7D9\\uA7F2-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFC5D\\uFC64-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDF9\\uFE71\\uFE73\\uFE77\\uFE79\\uFE7B\\uFE7D\\uFE7F-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFF9D\\uFFA0-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF2D-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDD70-\\uDD7A\\uDD7C-\\uDD8A\\uDD8C-\\uDD92\\uDD94\\uDD95\\uDD97-\\uDDA1\\uDDA3-\\uDDB1\\uDDB3-\\uDDB9\\uDDBB\\uDDBC\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67\\uDF80-\\uDF85\\uDF87-\\uDFB0\\uDFB2-\\uDFBA]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE35\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2\\uDD00-\\uDD23\\uDE80-\\uDEA9\\uDEB0\\uDEB1\\uDF00-\\uDF1C\\uDF27\\uDF30-\\uDF45\\uDF70-\\uDF81\\uDFB0-\\uDFC4\\uDFE0-\\uDFF6]|\\uD804[\\uDC03-\\uDC37\\uDC71\\uDC72\\uDC75\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD44\\uDD47\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE3F\\uDE40\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC5F-\\uDC61\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDEB8\\uDF00-\\uDF1A\\uDF40-\\uDF46]|\\uD806[\\uDC00-\\uDC2B\\uDCA0-\\uDCDF\\uDCFF-\\uDD06\\uDD09\\uDD0C-\\uDD13\\uDD15\\uDD16\\uDD18-\\uDD2F\\uDD3F\\uDD41\\uDDA0-\\uDDA7\\uDDAA-\\uDDD0\\uDDE1\\uDDE3\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE89\\uDE9D\\uDEB0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46\\uDD60-\\uDD65\\uDD67\\uDD68\\uDD6A-\\uDD89\\uDD98\\uDEE0-\\uDEF2\\uDF02\\uDF04-\\uDF10\\uDF12-\\uDF33\\uDFB0]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|\\uD80B[\\uDF90-\\uDFF0]|[\\uD80C\\uD81C-\\uD820\\uD822\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879\\uD880-\\uD883\\uD885-\\uD887][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2F\\uDC41-\\uDC46]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE70-\\uDEBE\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDE40-\\uDE7F\\uDF00-\\uDF4A\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1\\uDFE3]|\\uD821[\\uDC00-\\uDFF7]|\\uD823[\\uDC00-\\uDCD5\\uDD00-\\uDD08]|\\uD82B[\\uDFF0-\\uDFF3\\uDFF5-\\uDFFB\\uDFFD\\uDFFE]|\\uD82C[\\uDC00-\\uDD22\\uDD32\\uDD50-\\uDD52\\uDD55\\uDD64-\\uDD67\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD837[\\uDF00-\\uDF1E\\uDF25-\\uDF2A]|\\uD838[\\uDC30-\\uDC6D\\uDD00-\\uDD2C\\uDD37-\\uDD3D\\uDD4E\\uDE90-\\uDEAD\\uDEC0-\\uDEEB]|\\uD839[\\uDCD0-\\uDCEB\\uDFE0-\\uDFE6\\uDFE8-\\uDFEB\\uDFED\\uDFEE\\uDFF0-\\uDFFE]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43\\uDD4B]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDEDF\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF39\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uD884[\\uDC00-\\uDF4A\\uDF50-\\uDFFF]|\\uD888[\\uDC00-\\uDFAF])(?:[0-9A-Z_a-z\\xAA\\xB5\\xB7\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037B-\\u037D\\u037F\\u0386-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u07FD\\u0800-\\u082D\\u0840-\\u085B\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088E\\u0898-\\u08E1\\u08E3-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u09FC\\u09FE\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0AF9-\\u0AFF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B55-\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3C-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58-\\u0C5A\\u0C5D\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C80-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDD\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1-\\u0CF3\\u0D00-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D54-\\u0D57\\u0D5F-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D81-\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECE\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1369-\\u1371\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u1715\\u171F-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u180F-\\u1819\\u1820-\\u1878\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19DA\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1ABF-\\u1ACE\\u1B00-\\u1B4C\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CD0-\\u1CD2\\u1CD4-\\u1CFA\\u1D00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7CA\\uA7D0\\uA7D1\\uA7D3\\uA7D5-\\uA7D9\\uA7F2-\\uA827\\uA82C\\uA840-\\uA873\\uA880-\\uA8C5\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA8FD-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFC5D\\uFC64-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDF9\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE71\\uFE73\\uFE77\\uFE79\\uFE7B\\uFE7D\\uFE7F-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDDFD\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE0\\uDF00-\\uDF1F\\uDF2D-\\uDF4A\\uDF50-\\uDF7A\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDD70-\\uDD7A\\uDD7C-\\uDD8A\\uDD8C-\\uDD92\\uDD94\\uDD95\\uDD97-\\uDDA1\\uDDA3-\\uDDB1\\uDDB3-\\uDDB9\\uDDBB\\uDDBC\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67\\uDF80-\\uDF85\\uDF87-\\uDFB0\\uDFB2-\\uDFBA]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE35\\uDE38-\\uDE3A\\uDE3F\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE6\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2\\uDD00-\\uDD27\\uDD30-\\uDD39\\uDE80-\\uDEA9\\uDEAB\\uDEAC\\uDEB0\\uDEB1\\uDEFD-\\uDF1C\\uDF27\\uDF30-\\uDF50\\uDF70-\\uDF85\\uDFB0-\\uDFC4\\uDFE0-\\uDFF6]|\\uD804[\\uDC00-\\uDC46\\uDC66-\\uDC75\\uDC7F-\\uDCBA\\uDCC2\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD00-\\uDD34\\uDD36-\\uDD3F\\uDD44-\\uDD47\\uDD50-\\uDD73\\uDD76\\uDD80-\\uDDC4\\uDDC9-\\uDDCC\\uDDCE-\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE37\\uDE3E-\\uDE41\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEEA\\uDEF0-\\uDEF9\\uDF00-\\uDF03\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3B-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF50\\uDF57\\uDF5D-\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC00-\\uDC4A\\uDC50-\\uDC59\\uDC5E-\\uDC61\\uDC80-\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDB5\\uDDB8-\\uDDC0\\uDDD8-\\uDDDD\\uDE00-\\uDE40\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEB8\\uDEC0-\\uDEC9\\uDF00-\\uDF1A\\uDF1D-\\uDF2B\\uDF30-\\uDF39\\uDF40-\\uDF46]|\\uD806[\\uDC00-\\uDC3A\\uDCA0-\\uDCE9\\uDCFF-\\uDD06\\uDD09\\uDD0C-\\uDD13\\uDD15\\uDD16\\uDD18-\\uDD35\\uDD37\\uDD38\\uDD3B-\\uDD43\\uDD50-\\uDD59\\uDDA0-\\uDDA7\\uDDAA-\\uDDD7\\uDDDA-\\uDDE1\\uDDE3\\uDDE4\\uDE00-\\uDE3E\\uDE47\\uDE50-\\uDE99\\uDE9D\\uDEB0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC36\\uDC38-\\uDC40\\uDC50-\\uDC59\\uDC72-\\uDC8F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD47\\uDD50-\\uDD59\\uDD60-\\uDD65\\uDD67\\uDD68\\uDD6A-\\uDD8E\\uDD90\\uDD91\\uDD93-\\uDD98\\uDDA0-\\uDDA9\\uDEE0-\\uDEF6\\uDF00-\\uDF10\\uDF12-\\uDF3A\\uDF3E-\\uDF42\\uDF50-\\uDF59\\uDFB0]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|\\uD80B[\\uDF90-\\uDFF0]|[\\uD80C\\uD81C-\\uD820\\uD822\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879\\uD880-\\uD883\\uD885-\\uD887][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2F\\uDC40-\\uDC55]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDE70-\\uDEBE\\uDEC0-\\uDEC9\\uDED0-\\uDEED\\uDEF0-\\uDEF4\\uDF00-\\uDF36\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDE40-\\uDE7F\\uDF00-\\uDF4A\\uDF4F-\\uDF87\\uDF8F-\\uDF9F\\uDFE0\\uDFE1\\uDFE3\\uDFE4\\uDFF0\\uDFF1]|\\uD821[\\uDC00-\\uDFF7]|\\uD823[\\uDC00-\\uDCD5\\uDD00-\\uDD08]|\\uD82B[\\uDFF0-\\uDFF3\\uDFF5-\\uDFFB\\uDFFD\\uDFFE]|\\uD82C[\\uDC00-\\uDD22\\uDD32\\uDD50-\\uDD52\\uDD55\\uDD64-\\uDD67\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99\\uDC9D\\uDC9E]|\\uD833[\\uDF00-\\uDF2D\\uDF30-\\uDF46]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD837[\\uDF00-\\uDF1E\\uDF25-\\uDF2A]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A\\uDC30-\\uDC6D\\uDC8F\\uDD00-\\uDD2C\\uDD30-\\uDD3D\\uDD40-\\uDD49\\uDD4E\\uDE90-\\uDEAE\\uDEC0-\\uDEF9]|\\uD839[\\uDCD0-\\uDCF9\\uDFE0-\\uDFE6\\uDFE8-\\uDFEB\\uDFED\\uDFEE\\uDFF0-\\uDFFE]|\\uD83A[\\uDC00-\\uDCC4\\uDCD0-\\uDCD6\\uDD00-\\uDD4B\\uDD50-\\uDD59]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD83E[\\uDFF0-\\uDFF9]|\\uD869[\\uDC00-\\uDEDF\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF39\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uD884[\\uDC00-\\uDF4A\\uDF50-\\uDFFF]|\\uD888[\\uDC00-\\uDFAF]|\\uDB40[\\uDD00-\\uDDEF])*/;\n var RESERVED_WORDS = ['and', 'as', 'assert', 'async', 'await', 'break', 'case', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'match', 'nonlocal|10', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield'];\n var BUILT_INS = ['__import__', 'abs', 'all', 'any', 'ascii', 'bin', 'bool', 'breakpoint', 'bytearray', 'bytes', 'callable', 'chr', 'classmethod', 'compile', 'complex', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'exec', 'filter', 'float', 'format', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int', 'isinstance', 'issubclass', 'iter', 'len', 'list', 'locals', 'map', 'max', 'memoryview', 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property', 'range', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'vars', 'zip'];\n var LITERALS = ['__debug__', 'Ellipsis', 'False', 'None', 'NotImplemented', 'True'];\n\n // https://docs.python.org/3/library/typing.html\n // TODO: Could these be supplemented by a CamelCase matcher in certain\n // contexts, leaving these remaining only for relevance hinting?\n var TYPES = [\"Any\", \"Callable\", \"Coroutine\", \"Dict\", \"List\", \"Literal\", \"Generic\", \"Optional\", \"Sequence\", \"Set\", \"Tuple\", \"Type\", \"Union\"];\n var KEYWORDS = {\n $pattern: /[A-Za-z]\\w+|__\\w+__/,\n keyword: RESERVED_WORDS,\n built_in: BUILT_INS,\n literal: LITERALS,\n type: TYPES\n };\n var PROMPT = {\n className: 'meta',\n begin: /^(>>>|\\.\\.\\.) /\n };\n var SUBST = {\n className: 'subst',\n begin: /\\{/,\n end: /\\}/,\n keywords: KEYWORDS,\n illegal: /#/\n };\n var LITERAL_BRACKET = {\n begin: /\\{\\{/,\n relevance: 0\n };\n var STRING = {\n className: 'string',\n contains: [hljs.BACKSLASH_ESCAPE],\n variants: [{\n begin: /([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,\n end: /'''/,\n contains: [hljs.BACKSLASH_ESCAPE, PROMPT],\n relevance: 10\n }, {\n begin: /([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?\"\"\"/,\n end: /\"\"\"/,\n contains: [hljs.BACKSLASH_ESCAPE, PROMPT],\n relevance: 10\n }, {\n begin: /([fF][rR]|[rR][fF]|[fF])'''/,\n end: /'''/,\n contains: [hljs.BACKSLASH_ESCAPE, PROMPT, LITERAL_BRACKET, SUBST]\n }, {\n begin: /([fF][rR]|[rR][fF]|[fF])\"\"\"/,\n end: /\"\"\"/,\n contains: [hljs.BACKSLASH_ESCAPE, PROMPT, LITERAL_BRACKET, SUBST]\n }, {\n begin: /([uU]|[rR])'/,\n end: /'/,\n relevance: 10\n }, {\n begin: /([uU]|[rR])\"/,\n end: /\"/,\n relevance: 10\n }, {\n begin: /([bB]|[bB][rR]|[rR][bB])'/,\n end: /'/\n }, {\n begin: /([bB]|[bB][rR]|[rR][bB])\"/,\n end: /\"/\n }, {\n begin: /([fF][rR]|[rR][fF]|[fF])'/,\n end: /'/,\n contains: [hljs.BACKSLASH_ESCAPE, LITERAL_BRACKET, SUBST]\n }, {\n begin: /([fF][rR]|[rR][fF]|[fF])\"/,\n end: /\"/,\n contains: [hljs.BACKSLASH_ESCAPE, LITERAL_BRACKET, SUBST]\n }, hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE]\n };\n\n // https://docs.python.org/3.9/reference/lexical_analysis.html#numeric-literals\n var digitpart = '[0-9](_?[0-9])*';\n var pointfloat = \"(\\\\b(\".concat(digitpart, \"))?\\\\.(\").concat(digitpart, \")|\\\\b(\").concat(digitpart, \")\\\\.\");\n // Whitespace after a number (or any lexical token) is needed only if its absence\n // would change the tokenization\n // https://docs.python.org/3.9/reference/lexical_analysis.html#whitespace-between-tokens\n // We deviate slightly, requiring a word boundary or a keyword\n // to avoid accidentally recognizing *prefixes* (e.g., `0` in `0x41` or `08` or `0__1`)\n var lookahead = \"\\\\b|\".concat(RESERVED_WORDS.join('|'));\n var NUMBER = {\n className: 'number',\n relevance: 0,\n variants: [\n // exponentfloat, pointfloat\n // https://docs.python.org/3.9/reference/lexical_analysis.html#floating-point-literals\n // optionally imaginary\n // https://docs.python.org/3.9/reference/lexical_analysis.html#imaginary-literals\n // Note: no leading \\b because floats can start with a decimal point\n // and we don't want to mishandle e.g. `fn(.5)`,\n // no trailing \\b for pointfloat because it can end with a decimal point\n // and we don't want to mishandle e.g. `0..hex()`; this should be safe\n // because both MUST contain a decimal point and so cannot be confused with\n // the interior part of an identifier\n {\n begin: \"(\\\\b(\".concat(digitpart, \")|(\").concat(pointfloat, \"))[eE][+-]?(\").concat(digitpart, \")[jJ]?(?=\").concat(lookahead, \")\")\n }, {\n begin: \"(\".concat(pointfloat, \")[jJ]?\")\n },\n // decinteger, bininteger, octinteger, hexinteger\n // https://docs.python.org/3.9/reference/lexical_analysis.html#integer-literals\n // optionally \"long\" in Python 2\n // https://docs.python.org/2.7/reference/lexical_analysis.html#integer-and-long-integer-literals\n // decinteger is optionally imaginary\n // https://docs.python.org/3.9/reference/lexical_analysis.html#imaginary-literals\n {\n begin: \"\\\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=\".concat(lookahead, \")\")\n }, {\n begin: \"\\\\b0[bB](_?[01])+[lL]?(?=\".concat(lookahead, \")\")\n }, {\n begin: \"\\\\b0[oO](_?[0-7])+[lL]?(?=\".concat(lookahead, \")\")\n }, {\n begin: \"\\\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=\".concat(lookahead, \")\")\n },\n // imagnumber (digitpart-based)\n // https://docs.python.org/3.9/reference/lexical_analysis.html#imaginary-literals\n {\n begin: \"\\\\b(\".concat(digitpart, \")[jJ](?=\").concat(lookahead, \")\")\n }]\n };\n var COMMENT_TYPE = {\n className: \"comment\",\n begin: regex.lookahead(/# type:/),\n end: /$/,\n keywords: KEYWORDS,\n contains: [{\n // prevent keywords from coloring `type`\n begin: /# type:/\n },\n // comment within a datatype comment includes no keywords\n {\n begin: /#/,\n end: /\\b\\B/,\n endsWithParent: true\n }]\n };\n var PARAMS = {\n className: 'params',\n variants: [\n // Exclude params in functions without params\n {\n className: \"\",\n begin: /\\(\\s*\\)/,\n skip: true\n }, {\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS,\n contains: ['self', PROMPT, NUMBER, STRING, hljs.HASH_COMMENT_MODE]\n }]\n };\n SUBST.contains = [STRING, NUMBER, PROMPT];\n return {\n name: 'Python',\n aliases: ['py', 'gyp', 'ipython'],\n unicodeRegex: true,\n keywords: KEYWORDS,\n illegal: /(<\\/|\\?)|=>/,\n contains: [PROMPT, NUMBER, {\n // very common convention\n begin: /\\bself\\b/\n }, {\n // eat \"if\" prior to string so that it won't accidentally be\n // labeled as an f-string\n beginKeywords: \"if\",\n relevance: 0\n }, STRING, COMMENT_TYPE, hljs.HASH_COMMENT_MODE, {\n match: [/\\bdef/, /\\s+/, IDENT_RE],\n scope: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [PARAMS]\n }, {\n variants: [{\n match: [/\\bclass/, /\\s+/, IDENT_RE, /\\s*/, /\\(\\s*/, IDENT_RE, /\\s*\\)/]\n }, {\n match: [/\\bclass/, /\\s+/, IDENT_RE]\n }],\n scope: {\n 1: \"keyword\",\n 3: \"title.class\",\n 6: \"title.class.inherited\"\n }\n }, {\n className: 'meta',\n begin: /^[\\t ]*@/,\n end: /(?=#)|$/,\n contains: [NUMBER, PARAMS, STRING]\n }]\n };\n}\nmodule.exports = python;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvcHl0aG9uLmpzIl0sIm5hbWVzIjpbInB5dGhvbiIsImhsanMiLCJyZWdleCIsIklERU5UX1JFIiwiUkVTRVJWRURfV09SRFMiLCJCVUlMVF9JTlMiLCJMSVRFUkFMUyIsIlRZUEVTIiwiS0VZV09SRFMiLCIkcGF0dGVybiIsImtleXdvcmQiLCJidWlsdF9pbiIsImxpdGVyYWwiLCJ0eXBlIiwiUFJPTVBUIiwiY2xhc3NOYW1lIiwiYmVnaW4iLCJTVUJTVCIsImVuZCIsImtleXdvcmRzIiwiaWxsZWdhbCIsIkxJVEVSQUxfQlJBQ0tFVCIsInJlbGV2YW5jZSIsIlNUUklORyIsImNvbnRhaW5zIiwiQkFDS1NMQVNIX0VTQ0FQRSIsInZhcmlhbnRzIiwiQVBPU19TVFJJTkdfTU9ERSIsIlFVT1RFX1NUUklOR19NT0RFIiwiZGlnaXRwYXJ0IiwicG9pbnRmbG9hdCIsImxvb2thaGVhZCIsImpvaW4iLCJOVU1CRVIiLCJDT01NRU5UX1RZUEUiLCJlbmRzV2l0aFBhcmVudCIsIlBBUkFNUyIsInNraXAiLCJleGNsdWRlQmVnaW4iLCJleGNsdWRlRW5kIiwiSEFTSF9DT01NRU5UX01PREUiLCJuYW1lIiwiYWxpYXNlcyIsInVuaWNvZGVSZWdleCIsImJlZ2luS2V5d29yZHMiLCJtYXRjaCIsInNjb3BlIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLFNBQVNBLE1BQU0sQ0FBQ0MsSUFBSSxFQUFFO0VBQ3BCLElBQU1DLEtBQUssR0FBR0QsSUFBSSxDQUFDQyxLQUFLO0VBQ3hCLElBQU1DLFFBQVEsR0FBRyxtMGlCQUFvQztFQUNyRCxJQUFNQyxjQUFjLEdBQUcsQ0FDckIsS0FBSyxFQUNMLElBQUksRUFDSixRQUFRLEVBQ1IsT0FBTyxFQUNQLE9BQU8sRUFDUCxPQUFPLEVBQ1AsTUFBTSxFQUNOLE9BQU8sRUFD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RUFDRDtNQUNFO01BQ0E7TUFDQTRCLGFBQWEsRUFBRSxJQUFJO01BQ25CdEIsU0FBUyxFQUFFO0lBQ2IsQ0FBQyxFQUNEQyxNQUFNLEVBQ05XLFlBQVksRUFDWmpDLElBQUksQ0FBQ3VDLGlCQUFpQixFQUN0QjtNQUNFSyxLQUFLLEVBQUUsQ0FDTCxPQUFPLEVBQUUsS0FBSyxFQUNkMUMsUUFBUSxDQUNUO01BQ0QyQyxLQUFLLEVBQUU7UUFDTCxDQUFDLEVBQUUsU0FBUztRQUNaLENBQUMsRUFBRTtNQUNMLENBQUM7TUFDRHRCLFFBQVEsRUFBRSxDQUFFWSxNQUFNO0lBQ3BCLENBQUMsRUFDRDtNQUNFVixRQUFRLEVBQUUsQ0FDUjtRQUNFbUIsS0FBSyxFQUFFLENBQ0wsU0FBUyxFQUFFLEtBQUssRUFDaEIxQyxRQUFRLEVBQUUsS0FBSyxFQUNmLE9BQU8sRUFBRUEsUUFBUSxFQUFDLE9BQU87TUFFN0IsQ0FBQyxFQUNEO1FBQ0UwQyxLQUFLLEVBQUUsQ0FDTCxTQUFTLEVBQUUsS0FBSyxFQUNoQjFDLFFBQVE7TUFFWixDQUFDLENBQ0Y7TUFDRDJDLEtBQUssRUFBRTtRQUNMLENBQUMsRUFBRSxTQUFTO1FBQ1osQ0FBQyxFQUFFLGFBQWE7UUFDaEIsQ0FBQyxFQUFFO01BQ0w7SUFDRixDQUFDLEVBQ0Q7TUFDRS9CLFNBQVMsRUFBRSxNQUFNO01BQ2pCQyxLQUFLLEVBQUUsVUFBVTtNQUNqQkUsR0FBRyxFQUFFLFNBQVM7TUFDZE0sUUFBUSxFQUFFLENBQ1JTLE1BQU0sRUFDTkcsTUFBTSxFQUNOYixNQUFNO0lBRVYsQ0FBQztFQUVMLENBQUM7QUFDSDtBQUVBd0IsTUFBTSxDQUFDQyxPQUFPLEdBQUdoRCxNQUFNIiwiZmlsZSI6Ijc5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbkxhbmd1YWdlOiBQeXRob25cbkRlc2NyaXB0aW9uOiBQeXRob24gaXMgYW4gaW50ZXJwcmV0ZWQsIG9iamVjdC1vcmllbnRlZCwgaGlnaC1sZXZlbCBwcm9ncmFtbWluZyBsYW5ndWFnZSB3aXRoIGR5bmFtaWMgc2VtYW50aWNzLlxuV2Vic2l0ZTogaHR0cHM6Ly93d3cucHl0aG9uLm9yZ1xuQ2F0ZWdvcnk6IGNvbW1vblxuKi9cblxuZnVuY3Rpb24gcHl0aG9uKGhsanMpIHtcbiAgY29uc3QgcmVnZXggPSBobGpzLnJlZ2V4O1xuICBjb25zdCBJREVOVF9SRSA9IC9bXFxwe1hJRF9TdGFydH1fXVxccHtYSURfQ29udGludWV9Ki91O1xuICBjb25zdCBSRVNFUlZFRF9XT1JEUyA9IFtcbiAgICAnYW5kJyxcbiAgICAnYXMnLFxuICAgICdhc3NlcnQnLFxuICAgICdhc3luYycsXG4gICAgJ2F3YWl0JyxcbiAgICAnYnJlYWsnLFxuICAgICdjYXNlJyxcbiAgICAnY2xhc3MnLFxuICAgICdjb250aW51ZScsXG4gICAgJ2RlZicsXG4gICAgJ2RlbCcsXG4gICAgJ2VsaWYnLFxuICAgICdlbHNlJyxcbiAgICAnZXhjZXB0JyxcbiAgICAnZmluYWxseScsXG4gICAgJ2ZvcicsXG4gICAgJ2Zyb20nLFxuICAgICdnbG9iYWwnLFxuICAgICdpZicsXG4gICAgJ2ltcG9ydCcsXG4gICAgJ2luJyxcbiAgICAnaXMnLFxuICAgICdsYW1iZGEnLFxuICAgICdtYXRjaCcsXG4gICAgJ25vbmxvY2FsfDEwJyxcbiAgICAnbm90JyxcbiAgICAnb3InLFxuICAgICdwYXNzJyxcbiAgICAncmFpc2UnLFxuICAgICdyZXR1cm4nLFxuICAgICd0cnknLFxuICAgICd3aGlsZScsXG4gICAgJ3dpdGgnLFxuICAgICd5aWVsZCdcbiAgXTtcblxuICBjb25zdCBCVUlMVF9JTlMgPSBbXG4gICAgJ19faW1wb3J0X18nLFxuICAgICdhYnMnLFxuICAgICdhbGwnLFxuICAgICdhbnknLFxuICAgICdhc2NpaScsXG4gICAgJ2JpbicsXG4gICAgJ2Jvb2wnLFxuICAgICdicmVha3BvaW50JyxcbiAgICAnYnl0ZWFycmF5JyxcbiAgICAnYnl0ZXMnLFxuICAgICdjYWxsYWJsZScsXG4gICAgJ2NocicsXG4gICAgJ2NsYXNzbWV0aG9kJyxcbiAgICAnY29tcGlsZScsXG4gICAgJ2NvbXBsZXgnLFxuICAgICdkZWxhdHRyJyxcbiAgICAnZGljdCcsXG4gICAgJ2RpcicsXG4gICAgJ2Rpdm1vZCcsXG4gICAgJ2VudW1lcmF0ZScsXG4gICAgJ2V2YWwnLFxuICAgICdleGVjJyxcbiAgICAnZmlsdGVyJyxcbiAgICAnZmxvYXQnLFxuICAgICdmb3JtYXQnLFxuICAgICdmcm96ZW5zZXQnLFxuICAgICdnZXRhdHRyJyxcbiAgICAnZ2xvYmFscycsXG4gICAgJ2hhc2F0dHInLFxuICAgICdoYXNoJyxcbiAgICAnaGVscCcsXG4gICAgJ2hleCcsXG4gICAgJ2lkJyxcbiAgICAnaW5wdXQnLFxuICAgICdpbnQnLFxuICAgICdpc2luc3RhbmNlJyxcbiAgICAnaXNzdWJjbGFzcycsXG4gICAgJ2l0ZXInLFxuICAgICdsZW4nLFxuICAgICdsaXN0JyxcbiAgICAnbG9jYWxzJyxcbiAgICAnbWFwJyxcbiAgICAnbWF4JyxcbiAgICAnbWVtb3J5dmlldycsXG4gICAgJ21pbicsXG4gICAgJ25leHQnLFxuICAgICdvYmplY3QnLFxuICAgICdvY3QnLFxuICAgICdvcGVuJyxcbiAgICAnb3JkJyxcbiAgICAncG93JyxcbiAgICAncHJpbnQnLFxuICAgICdwcm9wZXJ0eScsXG4gICAgJ3JhbmdlJyxcbiAgICAncmVwcicsXG4gICAgJ3JldmVyc2VkJyxcbiAgICAncm91bmQnLFxuICAgICdzZXQnLFxuICAgICdzZXRhdHRyJyxcbiAgICAnc2xpY2UnLFxuICAgICdzb3J0ZWQnLFxuICAgICdzdGF0aWNtZXRob2QnLFxuICAgICdzdHInLFxuICAgICdzdW0nLFxuICAgICdzdXBlcicsXG4gICAgJ3R1cGxlJyxcbiAgICAndHlwZScsXG4gICAgJ3ZhcnMnLFxuICAgICd6aXAnXG4gIF07XG5cbiAgY29uc3QgTElURVJBTFMgPSBbXG4gICAgJ19fZGVidWdfXycsXG4gICAgJ0VsbGlwc2lzJyxcbiAgICAnRmFsc2UnLFxuICAgICdOb25lJyxcbiAgICAnTm90SW1wbGVtZW50ZWQnLFxuICAgICdUcnVlJ1xuICBdO1xuXG4gIC8vIGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMvbGlicmFyeS90eXBpbmcuaHRtbFxuICAvLyBUT0RPOiBDb3VsZCB0aGVzZSBiZSBzdXBwbGVtZW50ZWQgYnkgYSBDYW1lbENhc2UgbWF0Y2hlciBpbiBjZXJ0YWluXG4gIC8vIGNvbnRleHRzLCBsZWF2aW5nIHRoZXNlIHJlbWFpbmluZyBvbmx5IGZvciByZWxldmFuY2UgaGludGluZz9cbiAgY29uc3QgVFlQRVMgPSBbXG4gICAgXCJBbnlcIixcbiAgICBcIkNhbGxhYmxlXCIsXG4gICAgXCJDb3JvdXRpbmVcIixcbiAgICBcIkRpY3RcIixcbiAgICBcIkxpc3RcIixcbiAgICBcIkxpdGVyYWxcIixcbiAgICBcIkdlbmVyaWNcIixcbiAgICBcIk9wdGlvbmFsXCIsXG4gICAgXCJTZXF1ZW5jZVwiLFxuICAgIFwiU2V0XCIsXG4gICAgXCJUdXBsZVwiLFxuICAgIFwiVHlwZVwiLFxuICAgIFwiVW5pb25cIlxuICBdO1xuXG4gIGNvbnN0IEtFWVdPUkRTID0ge1xuICAgICRwYXR0ZXJuOiAvW0EtWmEtel1cXHcrfF9fXFx3K19fLyxcbiAgICBrZXl3b3JkOiBSRVNFUlZFRF9XT1JEUyxcbiAgICBidWlsdF9pbjogQlVJTFRfSU5TLFxuICAgIGxpdGVyYWw6IExJVEVSQUxTLFxuICAgIHR5cGU6IFRZUEVTXG4gIH07XG5cbiAgY29uc3QgUFJPTVBUID0ge1xuICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgIGJlZ2luOiAvXig+Pj58XFwuXFwuXFwuKSAvXG4gIH07XG5cbiAgY29uc3QgU1VCU1QgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3Vic3QnLFxuICAgIGJlZ2luOiAvXFx7LyxcbiAgICBlbmQ6IC9cXH0vLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICBpbGxlZ2FsOiAvIy9cbiAgfTtcblxuICBjb25zdCBMSVRFUkFMX0JSQUNLRVQgPSB7XG4gICAgYmVnaW46IC9cXHtcXHsvLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIGNvbnN0IFNUUklORyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGNvbnRhaW5zOiBbIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSBdLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvKFt1VV18W2JCXXxbclJdfFtiQl1bclJdfFtyUl1bYkJdKT8nJycvLFxuICAgICAgICBlbmQ6IC8nJycvLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICAgICAgICBQUk9NUFRcbiAgICAgICAgXSxcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC8oW3VVXXxbYkJdfFtyUl18W2JCXVtyUl18W3JSXVtiQl0pP1wiXCJcIi8sXG4gICAgICAgIGVuZDogL1wiXCJcIi8sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgICAgICAgIFBST01QVFxuICAgICAgICBdLFxuICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogLyhbZkZdW3JSXXxbclJdW2ZGXXxbZkZdKScnJy8sXG4gICAgICAgIGVuZDogLycnJy8sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgICAgICAgIFBST01QVCxcbiAgICAgICAgICBMSVRFUkFMX0JSQUNLRVQsXG4gICAgICAgICAgU1VCU1RcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC8oW2ZGXVtyUl18W3JSXVtmRl18W2ZGXSlcIlwiXCIvLFxuICAgICAgICBlbmQ6IC9cIlwiXCIvLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICAgICAgICBQUk9NUFQsXG4gICAgICAgICAgTElURVJBTF9CUkFDS0VULFxuICAgICAgICAgIFNVQlNUXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvKFt1VV18W3JSXSknLyxcbiAgICAgICAgZW5kOiAvJy8sXG4gICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvKFt1VV18W3JSXSlcIi8sXG4gICAgICAgIGVuZDogL1wiLyxcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC8oW2JCXXxbYkJdW3JSXXxbclJdW2JCXSknLyxcbiAgICAgICAgZW5kOiAvJy9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvKFtiQl18W2JCXVtyUl18W3JSXVtiQl0pXCIvLFxuICAgICAgICBlbmQ6IC9cIi9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvKFtmRl1bclJdfFtyUl1bZkZdfFtmRl0pJy8sXG4gICAgICAgIGVuZDogLycvLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICAgICAgICBMSVRFUkFMX0JSQUNLRVQsXG4gICAgICAgICAgU1VCU1RcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC8oW2ZGXVtyUl18W3JSXVtmRl18W2ZGXSlcIi8sXG4gICAgICAgIGVuZDogL1wiLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICAgICAgTElURVJBTF9CUkFDS0VULFxuICAgICAgICAgIFNVQlNUXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFXG4gICAgXVxuICB9O1xuXG4gIC8vIGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMuOS9yZWZlcmVuY2UvbGV4aWNhbF9hbmFseXNpcy5odG1sI251bWVyaWMtbGl0ZXJhbHNcbiAgY29uc3QgZGlnaXRwYXJ0ID0gJ1swLTldKF8/WzAtOV0pKic7XG4gIGNvbnN0IHBvaW50ZmxvYXQgPSBgKFxcXFxiKCR7ZGlnaXRwYXJ0fSkpP1xcXFwuKCR7ZGlnaXRwYXJ0fSl8XFxcXGIoJHtkaWdpdHBhcnR9KVxcXFwuYDtcbiAgLy8gV2hpdGVzcGFjZSBhZnRlciBhIG51bWJlciAob3IgYW55IGxleGljYWwgdG9rZW4pIGlzIG5lZWRlZCBvbmx5IGlmIGl0cyBhYnNlbmNlXG4gIC8vIHdvdWxkIGNoYW5nZSB0aGUgdG9rZW5pemF0aW9uXG4gIC8vIGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMuOS9yZWZlcmVuY2UvbGV4aWNhbF9hbmFseXNpcy5odG1sI3doaXRlc3BhY2UtYmV0d2Vlbi10b2tlbnNcbiAgLy8gV2UgZGV2aWF0ZSBzbGlnaHRseSwgcmVxdWlyaW5nIGEgd29yZCBib3VuZGFyeSBvciBhIGtleXdvcmRcbiAgLy8gdG8gYXZvaWQgYWNjaWRlbnRhbGx5IHJlY29nbml6aW5nICpwcmVmaXhlcyogKGUuZy4sIGAwYCBpbiBgMHg0MWAgb3IgYDA4YCBvciBgMF9fMWApXG4gIGNvbnN0IGxvb2thaGVhZCA9IGBcXFxcYnwke1JFU0VSVkVEX1dPUkRTLmpvaW4oJ3wnKX1gO1xuICBjb25zdCBOVU1CRVIgPSB7XG4gICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICByZWxldmFuY2U6IDAsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIC8vIGV4cG9uZW50ZmxvYXQsIHBvaW50ZmxvYXRcbiAgICAgIC8vIGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMuOS9yZWZlcmVuY2UvbGV4aWNhbF9hbmFseXNpcy5odG1sI2Zsb2F0aW5nLXBvaW50LWxpdGVyYWxzXG4gICAgICAvLyBvcHRpb25hbGx5IGltYWdpbmFyeVxuICAgICAgLy8gaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMy45L3JlZmVyZW5jZS9sZXhpY2FsX2FuYWx5c2lzLmh0bWwjaW1hZ2luYXJ5LWxpdGVyYWxzXG4gICAgICAvLyBOb3RlOiBubyBsZWFkaW5nIFxcYiBiZWNhdXNlIGZsb2F0cyBjYW4gc3RhcnQgd2l0aCBhIGRlY2ltYWwgcG9pbnRcbiAgICAgIC8vIGFuZCB3ZSBkb24ndCB3YW50IHRvIG1pc2hhbmRsZSBlLmcuIGBmbiguNSlgLFxuICAgICAgLy8gbm8gdHJhaWxpbmcgXFxiIGZvciBwb2ludGZsb2F0IGJlY2F1c2UgaXQgY2FuIGVuZCB3aXRoIGEgZGVjaW1hbCBwb2ludFxuICAgICAgLy8gYW5kIHdlIGRvbid0IHdhbnQgdG8gbWlzaGFuZGxlIGUuZy4gYDAuLmhleCgpYDsgdGhpcyBzaG91bGQgYmUgc2FmZVxuICAgICAgLy8gYmVjYXVzZSBib3RoIE1VU1QgY29udGFpbiBhIGRlY2ltYWwgcG9pbnQgYW5kIHNvIGNhbm5vdCBiZSBjb25mdXNlZCB3aXRoXG4gICAgICAvLyB0aGUgaW50ZXJpb3IgcGFydCBvZiBhbiBpZGVudGlmaWVyXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiBgKFxcXFxiKCR7ZGlnaXRwYXJ0fSl8KCR7cG9pbnRmbG9hdH0pKVtlRV1bKy1dPygke2RpZ2l0cGFydH0pW2pKXT8oPz0ke2xvb2thaGVhZH0pYFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IGAoJHtwb2ludGZsb2F0fSlbakpdP2BcbiAgICAgIH0sXG5cbiAgICAgIC8vIGRlY2ludGVnZXIsIGJpbmludGVnZXIsIG9jdGludGVnZXIsIGhleGludGVnZXJcbiAgICAgIC8vIGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMuOS9yZWZlcmVuY2UvbGV4aWNhbF9hbmFseXNpcy5odG1sI2ludGVnZXItbGl0ZXJhbHNcbiAgICAgIC8vIG9wdGlvbmFsbHkgXCJsb25nXCIgaW4gUHl0aG9uIDJcbiAgICAgIC8vIGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzIuNy9yZWZlcmVuY2UvbGV4aWNhbF9hbmFseXNpcy5odG1sI2ludGVnZXItYW5kLWxvbmctaW50ZWdlci1saXRlcmFsc1xuICAgICAgLy8gZGVjaW50ZWdlciBpcyBvcHRpb25hbGx5IGltYWdpbmFyeVxuICAgICAgLy8gaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMy45L3JlZmVyZW5jZS9sZXhpY2FsX2FuYWx5c2lzLmh0bWwjaW1hZ2luYXJ5LWxpdGVyYWxzXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiBgXFxcXGIoWzEtOV0oXz9bMC05XSkqfDArKF8/MCkqKVtsTGpKXT8oPz0ke2xvb2thaGVhZH0pYFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IGBcXFxcYjBbYkJdKF8/WzAxXSkrW2xMXT8oPz0ke2xvb2thaGVhZH0pYFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IGBcXFxcYjBbb09dKF8/WzAtN10pK1tsTF0/KD89JHtsb29rYWhlYWR9KWBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiBgXFxcXGIwW3hYXShfP1swLTlhLWZBLUZdKStbbExdPyg/PSR7bG9va2FoZWFkfSlgXG4gICAgICB9LFxuXG4gICAgICAvLyBpbWFnbnVtYmVyIChkaWdpdHBhcnQtYmFzZWQpXG4gICAgICAvLyBodHRwczovL2RvY3MucHl0aG9uLm9yZy8zLjkvcmVmZXJlbmNlL2xleGljYWxfYW5hbHlzaXMuaHRtbCNpbWFnaW5hcnktbGl0ZXJhbHNcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IGBcXFxcYigke2RpZ2l0cGFydH0pW2pKXSg/PSR7bG9va2FoZWFkfSlgXG4gICAgICB9XG4gICAgXVxuICB9O1xuICBjb25zdCBDT01NRU5UX1RZUEUgPSB7XG4gICAgY2xhc3NOYW1lOiBcImNvbW1lbnRcIixcbiAgICBiZWdpbjogcmVnZXgubG9va2FoZWFkKC8jIHR5cGU6LyksXG4gICAgZW5kOiAvJC8sXG4gICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7IC8vIHByZXZlbnQga2V5d29yZHMgZnJvbSBjb2xvcmluZyBgdHlwZWBcbiAgICAgICAgYmVnaW46IC8jIHR5cGU6L1xuICAgICAgfSxcbiAgICAgIC8vIGNvbW1lbnQgd2l0aGluIGEgZGF0YXR5cGUgY29tbWVudCBpbmNsdWRlcyBubyBrZXl3b3Jkc1xuICAgICAge1xuICAgICAgICBiZWdpbjogLyMvLFxuICAgICAgICBlbmQ6IC9cXGJcXEIvLFxuICAgICAgICBlbmRzV2l0aFBhcmVudDogdHJ1ZVxuICAgICAgfVxuICAgIF1cbiAgfTtcbiAgY29uc3QgUEFSQU1TID0ge1xuICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIC8vIEV4Y2x1ZGUgcGFyYW1zIGluIGZ1bmN0aW9ucyB3aXRob3V0IHBhcmFtc1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6IFwiXCIsXG4gICAgICAgIGJlZ2luOiAvXFwoXFxzKlxcKS8sXG4gICAgICAgIHNraXA6IHRydWVcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFwoLyxcbiAgICAgICAgZW5kOiAvXFwpLyxcbiAgICAgICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgJ3NlbGYnLFxuICAgICAgICAgIFBST01QVCxcbiAgICAgICAgICBOVU1CRVIsXG4gICAgICAgICAgU1RSSU5HLFxuICAgICAgICAgIGhsanMuSEFTSF9DT01NRU5UX01PREVcbiAgICAgICAgXVxuICAgICAgfVxuICAgIF1cbiAgfTtcbiAgU1VCU1QuY29udGFpbnMgPSBbXG4gICAgU1RSSU5HLFxuICAgIE5VTUJFUixcbiAgICBQUk9NUFRcbiAgXTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdQeXRob24nLFxuICAgIGFsaWFzZXM6IFtcbiAgICAgICdweScsXG4gICAgICAnZ3lwJyxcbiAgICAgICdpcHl0aG9uJ1xuICAgIF0sXG4gICAgdW5pY29kZVJlZ2V4OiB0cnVlLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICBpbGxlZ2FsOiAvKDxcXC98XFw/KXw9Pi8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIFBST01QVCxcbiAgICAgIE5VTUJFUixcbiAgICAgIHtcbiAgICAgICAgLy8gdmVyeSBjb21tb24gY29udmVudGlvblxuICAgICAgICBiZWdpbjogL1xcYnNlbGZcXGIvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvLyBlYXQgXCJpZlwiIHByaW9yIHRvIHN0cmluZyBzbyB0aGF0IGl0IHdvbid0IGFjY2lkZW50YWxseSBiZVxuICAgICAgICAvLyBsYWJlbGVkIGFzIGFuIGYtc3RyaW5nXG4gICAgICAgIGJlZ2luS2V5d29yZHM6IFwiaWZcIixcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgU1RSSU5HLFxuICAgICAgQ09NTUVOVF9UWVBFLFxuICAgICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IFtcbiAgICAgICAgICAvXFxiZGVmLywgL1xccysvLFxuICAgICAgICAgIElERU5UX1JFLFxuICAgICAgICBdLFxuICAgICAgICBzY29wZToge1xuICAgICAgICAgIDE6IFwia2V5d29yZFwiLFxuICAgICAgICAgIDM6IFwidGl0bGUuZnVuY3Rpb25cIlxuICAgICAgICB9LFxuICAgICAgICBjb250YWluczogWyBQQVJBTVMgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBtYXRjaDogW1xuICAgICAgICAgICAgICAvXFxiY2xhc3MvLCAvXFxzKy8sXG4gICAgICAgICAgICAgIElERU5UX1JFLCAvXFxzKi8sXG4gICAgICAgICAgICAgIC9cXChcXHMqLywgSURFTlRfUkUsL1xccypcXCkvXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWF0Y2g6IFtcbiAgICAgICAgICAgICAgL1xcYmNsYXNzLywgL1xccysvLFxuICAgICAgICAgICAgICBJREVOVF9SRVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgIHNjb3BlOiB7XG4gICAgICAgICAgMTogXCJrZXl3b3JkXCIsXG4gICAgICAgICAgMzogXCJ0aXRsZS5jbGFzc1wiLFxuICAgICAgICAgIDY6IFwidGl0bGUuY2xhc3MuaW5oZXJpdGVkXCIsXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogL15bXFx0IF0qQC8sXG4gICAgICAgIGVuZDogLyg/PSMpfCQvLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIE5VTUJFUixcbiAgICAgICAgICBQQVJBTVMsXG4gICAgICAgICAgU1RSSU5HXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gcHl0aG9uO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///79\n");
  1786. /***/ }),
  1787. /* 80 */
  1788. /*!**************************************************************************************************************!*\
  1789. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/highlight.js/lib/languages/python-repl.js ***!
  1790. \**************************************************************************************************************/
  1791. /*! no static exports found */
  1792. /***/ (function(module, exports) {
  1793. eval("/*\nLanguage: Python REPL\nRequires: python.js\nAuthor: Josh Goebel <hello@joshgoebel.com>\nCategory: common\n*/\n\nfunction pythonRepl(hljs) {\n return {\n aliases: ['pycon'],\n contains: [{\n className: 'meta.prompt',\n starts: {\n // a space separates the REPL prefix from the actual code\n // this is purely for cleaner HTML output\n end: / |$/,\n starts: {\n end: '$',\n subLanguage: 'python'\n }\n },\n variants: [{\n begin: /^>>>(?=[ ]|$)/\n }, {\n begin: /^\\.\\.\\.(?=[ ]|$)/\n }]\n }]\n };\n}\nmodule.exports = pythonRepl;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvcHl0aG9uLXJlcGwuanMiXSwibmFtZXMiOlsicHl0aG9uUmVwbCIsImhsanMiLCJhbGlhc2VzIiwiY29udGFpbnMiLCJjbGFzc05hbWUiLCJzdGFydHMiLCJlbmQiLCJzdWJMYW5ndWFnZSIsInZhcmlhbnRzIiwiYmVnaW4iLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsU0FBU0EsVUFBVSxDQUFDQyxJQUFJLEVBQUU7RUFDeEIsT0FBTztJQUNMQyxPQUFPLEVBQUUsQ0FBRSxPQUFPLENBQUU7SUFDcEJDLFFBQVEsRUFBRSxDQUNSO01BQ0VDLFNBQVMsRUFBRSxhQUFhO01BQ3hCQyxNQUFNLEVBQUU7UUFDTjtRQUNBO1FBQ0FDLEdBQUcsRUFBRSxLQUFLO1FBQ1ZELE1BQU0sRUFBRTtVQUNOQyxHQUFHLEVBQUUsR0FBRztVQUNSQyxXQUFXLEVBQUU7UUFDZjtNQUNGLENBQUM7TUFDREMsUUFBUSxFQUFFLENBQ1I7UUFBRUMsS0FBSyxFQUFFO01BQWdCLENBQUMsRUFDMUI7UUFBRUEsS0FBSyxFQUFFO01BQW1CLENBQUM7SUFFakMsQ0FBQztFQUVMLENBQUM7QUFDSDtBQUVBQyxNQUFNLENBQUNDLE9BQU8sR0FBR1gsVUFBVSIsImZpbGUiOiI4MC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG5MYW5ndWFnZTogUHl0aG9uIFJFUExcblJlcXVpcmVzOiBweXRob24uanNcbkF1dGhvcjogSm9zaCBHb2ViZWwgPGhlbGxvQGpvc2hnb2ViZWwuY29tPlxuQ2F0ZWdvcnk6IGNvbW1vblxuKi9cblxuZnVuY3Rpb24gcHl0aG9uUmVwbChobGpzKSB7XG4gIHJldHVybiB7XG4gICAgYWxpYXNlczogWyAncHljb24nIF0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YS5wcm9tcHQnLFxuICAgICAgICBzdGFydHM6IHtcbiAgICAgICAgICAvLyBhIHNwYWNlIHNlcGFyYXRlcyB0aGUgUkVQTCBwcmVmaXggZnJvbSB0aGUgYWN0dWFsIGNvZGVcbiAgICAgICAgICAvLyB0aGlzIGlzIHB1cmVseSBmb3IgY2xlYW5lciBIVE1MIG91dHB1dFxuICAgICAgICAgIGVuZDogLyB8JC8sXG4gICAgICAgICAgc3RhcnRzOiB7XG4gICAgICAgICAgICBlbmQ6ICckJyxcbiAgICAgICAgICAgIHN1Ykxhbmd1YWdlOiAncHl0aG9uJ1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICB7IGJlZ2luOiAvXj4+Pig/PVsgXXwkKS8gfSxcbiAgICAgICAgICB7IGJlZ2luOiAvXlxcLlxcLlxcLig/PVsgXXwkKS8gfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHB5dGhvblJlcGw7XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///80\n");
  1794. /***/ }),
  1795. /* 81 */
  1796. /*!****************************************************************************************************!*\
  1797. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/highlight.js/lib/languages/r.js ***!
  1798. \****************************************************************************************************/
  1799. /*! no static exports found */
  1800. /***/ (function(module, exports) {
  1801. eval("/*\nLanguage: R\nDescription: R is a free software environment for statistical computing and graphics.\nAuthor: Joe Cheng <joe@rstudio.org>\nContributors: Konrad Rudolph <konrad.rudolph@gmail.com>\nWebsite: https://www.r-project.org\nCategory: common,scientific\n*/\n\n/** @type LanguageFn */\nfunction r(hljs) {\n var regex = hljs.regex;\n // Identifiers in R cannot start with `_`, but they can start with `.` if it\n // is not immediately followed by a digit.\n // R also supports quoted identifiers, which are near-arbitrary sequences\n // delimited by backticks (`…`), which may contain escape sequences. These are\n // handled in a separate mode. See `test/markup/r/names.txt` for examples.\n // FIXME: Support Unicode identifiers.\n var IDENT_RE = /(?:(?:[a-zA-Z]|\\.[._a-zA-Z])[._a-zA-Z0-9]*)|\\.(?!\\d)/;\n var NUMBER_TYPES_RE = regex.either(\n // Special case: only hexadecimal binary powers can contain fractions\n /0[xX][0-9a-fA-F]+\\.[0-9a-fA-F]*[pP][+-]?\\d+i?/,\n // Hexadecimal numbers without fraction and optional binary power\n /0[xX][0-9a-fA-F]+(?:[pP][+-]?\\d+)?[Li]?/,\n // Decimal numbers\n /(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+)?[Li]?/);\n var OPERATORS_RE = /[=!<>:]=|\\|\\||&&|:::?|<-|<<-|->>|->|\\|>|[-+*\\/?!$&|:<=>@^~]|\\*\\*/;\n var PUNCTUATION_RE = regex.either(/[()]/, /[{}]/, /\\[\\[/, /[[\\]]/, /\\\\/, /,/);\n return {\n name: 'R',\n keywords: {\n $pattern: IDENT_RE,\n keyword: 'function if in break next repeat else for while',\n literal: 'NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 ' + 'NA_character_|10 NA_complex_|10',\n built_in:\n // Builtin constants\n 'LETTERS letters month.abb month.name pi T F '\n // Primitive functions\n // These are all the functions in `base` that are implemented as a\n // `.Primitive`, minus those functions that are also keywords.\n + 'abs acos acosh all any anyNA Arg as.call as.character ' + 'as.complex as.double as.environment as.integer as.logical ' + 'as.null.default as.numeric as.raw asin asinh atan atanh attr ' + 'attributes baseenv browser c call ceiling class Conj cos cosh ' + 'cospi cummax cummin cumprod cumsum digamma dim dimnames ' + 'emptyenv exp expression floor forceAndCall gamma gc.time ' + 'globalenv Im interactive invisible is.array is.atomic is.call ' + 'is.character is.complex is.double is.environment is.expression ' + 'is.finite is.function is.infinite is.integer is.language ' + 'is.list is.logical is.matrix is.na is.name is.nan is.null ' + 'is.numeric is.object is.pairlist is.raw is.recursive is.single ' + 'is.symbol lazyLoadDBfetch length lgamma list log max min ' + 'missing Mod names nargs nzchar oldClass on.exit pos.to.env ' + 'proc.time prod quote range Re rep retracemem return round ' + 'seq_along seq_len seq.int sign signif sin sinh sinpi sqrt ' + 'standardGeneric substitute sum switch tan tanh tanpi tracemem ' + 'trigamma trunc unclass untracemem UseMethod xtfrm'\n },\n contains: [\n // Roxygen comments\n hljs.COMMENT(/#'/, /$/, {\n contains: [{\n // Handle `@examples` separately to cause all subsequent code\n // until the next `@`-tag on its own line to be kept as-is,\n // preventing highlighting. This code is example R code, so nested\n // doctags shouldn’t be treated as such. See\n // `test/markup/r/roxygen.txt` for an example.\n scope: 'doctag',\n match: /@examples/,\n starts: {\n end: regex.lookahead(regex.either(\n // end if another doc comment\n /\\n^#'\\s*(?=@[a-zA-Z]+)/,\n // or a line with no comment\n /\\n^(?!#')/)),\n endsParent: true\n }\n }, {\n // Handle `@param` to highlight the parameter name following\n // after.\n scope: 'doctag',\n begin: '@param',\n end: /$/,\n contains: [{\n scope: 'variable',\n variants: [{\n match: IDENT_RE\n }, {\n match: /`(?:\\\\.|[^`\\\\])+`/\n }],\n endsParent: true\n }]\n }, {\n scope: 'doctag',\n match: /@[a-zA-Z]+/\n }, {\n scope: 'keyword',\n match: /\\\\[a-zA-Z]+/\n }]\n }), hljs.HASH_COMMENT_MODE, {\n scope: 'string',\n contains: [hljs.BACKSLASH_ESCAPE],\n variants: [hljs.END_SAME_AS_BEGIN({\n begin: /[rR]\"(-*)\\(/,\n end: /\\)(-*)\"/\n }), hljs.END_SAME_AS_BEGIN({\n begin: /[rR]\"(-*)\\{/,\n end: /\\}(-*)\"/\n }), hljs.END_SAME_AS_BEGIN({\n begin: /[rR]\"(-*)\\[/,\n end: /\\](-*)\"/\n }), hljs.END_SAME_AS_BEGIN({\n begin: /[rR]'(-*)\\(/,\n end: /\\)(-*)'/\n }), hljs.END_SAME_AS_BEGIN({\n begin: /[rR]'(-*)\\{/,\n end: /\\}(-*)'/\n }), hljs.END_SAME_AS_BEGIN({\n begin: /[rR]'(-*)\\[/,\n end: /\\](-*)'/\n }), {\n begin: '\"',\n end: '\"',\n relevance: 0\n }, {\n begin: \"'\",\n end: \"'\",\n relevance: 0\n }]\n },\n // Matching numbers immediately following punctuation and operators is\n // tricky since we need to look at the character ahead of a number to\n // ensure the number is not part of an identifier, and we cannot use\n // negative look-behind assertions. So instead we explicitly handle all\n // possible combinations of (operator|punctuation), number.\n // TODO: replace with negative look-behind when available\n // { begin: /(?<![a-zA-Z0-9._])0[xX][0-9a-fA-F]+\\.[0-9a-fA-F]*[pP][+-]?\\d+i?/ },\n // { begin: /(?<![a-zA-Z0-9._])0[xX][0-9a-fA-F]+([pP][+-]?\\d+)?[Li]?/ },\n // { begin: /(?<![a-zA-Z0-9._])(\\d+(\\.\\d*)?|\\.\\d+)([eE][+-]?\\d+)?[Li]?/ }\n {\n relevance: 0,\n variants: [{\n scope: {\n 1: 'operator',\n 2: 'number'\n },\n match: [OPERATORS_RE, NUMBER_TYPES_RE]\n }, {\n scope: {\n 1: 'operator',\n 2: 'number'\n },\n match: [/%[^%]*%/, NUMBER_TYPES_RE]\n }, {\n scope: {\n 1: 'punctuation',\n 2: 'number'\n },\n match: [PUNCTUATION_RE, NUMBER_TYPES_RE]\n }, {\n scope: {\n 2: 'number'\n },\n match: [/[^a-zA-Z0-9._]|^/,\n // not part of an identifier, or start of document\n NUMBER_TYPES_RE]\n }]\n },\n // Operators/punctuation when they're not directly followed by numbers\n {\n // Relevance boost for the most common assignment form.\n scope: {\n 3: 'operator'\n },\n match: [IDENT_RE, /\\s+/, /<-/, /\\s+/]\n }, {\n scope: 'operator',\n relevance: 0,\n variants: [{\n match: OPERATORS_RE\n }, {\n match: /%[^%]*%/\n }]\n }, {\n scope: 'punctuation',\n relevance: 0,\n match: PUNCTUATION_RE\n }, {\n // Escaped identifier\n begin: '`',\n end: '`',\n contains: [{\n begin: /\\\\./\n }]\n }]\n };\n}\nmodule.exports = r;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvci5qcyJdLCJuYW1lcyI6WyJyIiwiaGxqcyIsInJlZ2V4IiwiSURFTlRfUkUiLCJOVU1CRVJfVFlQRVNfUkUiLCJlaXRoZXIiLCJPUEVSQVRPUlNfUkUiLCJQVU5DVFVBVElPTl9SRSIsIm5hbWUiLCJrZXl3b3JkcyIsIiRwYXR0ZXJuIiwia2V5d29yZCIsImxpdGVyYWwiLCJidWlsdF9pbiIsImNvbnRhaW5zIiwiQ09NTUVOVCIsInNjb3BlIiwibWF0Y2giLCJzdGFydHMiLCJlbmQiLCJsb29rYWhlYWQiLCJlbmRzUGFyZW50IiwiYmVnaW4iLCJ2YXJpYW50cyIsIkhBU0hfQ09NTUVOVF9NT0RFIiwiQkFDS1NMQVNIX0VTQ0FQRSIsIkVORF9TQU1FX0FTX0JFR0lOIiwicmVsZXZhbmNlIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFNBQVNBLENBQUMsQ0FBQ0MsSUFBSSxFQUFFO0VBQ2YsSUFBTUMsS0FBSyxHQUFHRCxJQUFJLENBQUNDLEtBQUs7RUFDeEI7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsSUFBTUMsUUFBUSxHQUFHLHNEQUFzRDtFQUN2RSxJQUFNQyxlQUFlLEdBQUdGLEtBQUssQ0FBQ0csTUFBTTtFQUNsQztFQUNBLCtDQUErQztFQUMvQztFQUNBLHlDQUF5QztFQUN6QztFQUNBLCtDQUErQyxDQUNoRDtFQUNELElBQU1DLFlBQVksR0FBRyxrRUFBa0U7RUFDdkYsSUFBTUMsY0FBYyxHQUFHTCxLQUFLLENBQUNHLE1BQU0sQ0FDakMsTUFBTSxFQUNOLE1BQU0sRUFDTixNQUFNLEVBQ04sT0FBTyxFQUNQLElBQUksRUFDSixHQUFHLENBQ0o7RUFFRCxPQUFPO0lBQ0xHLElBQUksRUFBRSxHQUFHO0lBRVRDLFFBQVEsRUFBRTtNQUNSQyxRQUFRLEVB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RztNQUNWSCxHQUFHLEVBQUUsR0FBRztNQUNSTCxRQUFRLEVBQUUsQ0FBRTtRQUFFUSxLQUFLLEVBQUU7TUFBTSxDQUFDO0lBQzlCLENBQUM7RUFFTCxDQUFDO0FBQ0g7QUFFQU0sTUFBTSxDQUFDQyxPQUFPLEdBQUc3QixDQUFDIiwiZmlsZSI6IjgxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbkxhbmd1YWdlOiBSXG5EZXNjcmlwdGlvbjogUiBpcyBhIGZyZWUgc29mdHdhcmUgZW52aXJvbm1lbnQgZm9yIHN0YXRpc3RpY2FsIGNvbXB1dGluZyBhbmQgZ3JhcGhpY3MuXG5BdXRob3I6IEpvZSBDaGVuZyA8am9lQHJzdHVkaW8ub3JnPlxuQ29udHJpYnV0b3JzOiBLb25yYWQgUnVkb2xwaCA8a29ucmFkLnJ1ZG9scGhAZ21haWwuY29tPlxuV2Vic2l0ZTogaHR0cHM6Ly93d3cuci1wcm9qZWN0Lm9yZ1xuQ2F0ZWdvcnk6IGNvbW1vbixzY2llbnRpZmljXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gcihobGpzKSB7XG4gIGNvbnN0IHJlZ2V4ID0gaGxqcy5yZWdleDtcbiAgLy8gSWRlbnRpZmllcnMgaW4gUiBjYW5ub3Qgc3RhcnQgd2l0aCBgX2AsIGJ1dCB0aGV5IGNhbiBzdGFydCB3aXRoIGAuYCBpZiBpdFxuICAvLyBpcyBub3QgaW1tZWRpYXRlbHkgZm9sbG93ZWQgYnkgYSBkaWdpdC5cbiAgLy8gUiBhbHNvIHN1cHBvcnRzIHF1b3RlZCBpZGVudGlmaWVycywgd2hpY2ggYXJlIG5lYXItYXJiaXRyYXJ5IHNlcXVlbmNlc1xuICAvLyBkZWxpbWl0ZWQgYnkgYmFja3RpY2tzIChg4oCmYCksIHdoaWNoIG1heSBjb250YWluIGVzY2FwZSBzZXF1ZW5jZXMuIFRoZXNlIGFyZVxuICAvLyBoYW5kbGVkIGluIGEgc2VwYXJhdGUgbW9kZS4gU2VlIGB0ZXN0L21hcmt1cC9yL25hbWVzLnR4dGAgZm9yIGV4YW1wbGVzLlxuICAvLyBGSVhNRTogU3VwcG9ydCBVbmljb2RlIGlkZW50aWZpZXJzLlxuICBjb25zdCBJREVOVF9SRSA9IC8oPzooPzpbYS16QS1aXXxcXC5bLl9hLXpBLVpdKVsuX2EtekEtWjAtOV0qKXxcXC4oPyFcXGQpLztcbiAgY29uc3QgTlVNQkVSX1RZUEVTX1JFID0gcmVnZXguZWl0aGVyKFxuICAgIC8vIFNwZWNpYWwgY2FzZTogb25seSBoZXhhZGVjaW1hbCBiaW5hcnkgcG93ZXJzIGNhbiBjb250YWluIGZyYWN0aW9uc1xuICAgIC8wW3hYXVswLTlhLWZBLUZdK1xcLlswLTlhLWZBLUZdKltwUF1bKy1dP1xcZCtpPy8sXG4gICAgLy8gSGV4YWRlY2ltYWwgbnVtYmVycyB3aXRob3V0IGZyYWN0aW9uIGFuZCBvcHRpb25hbCBiaW5hcnkgcG93ZXJcbiAgICAvMFt4WF1bMC05YS1mQS1GXSsoPzpbcFBdWystXT9cXGQrKT9bTGldPy8sXG4gICAgLy8gRGVjaW1hbCBudW1iZXJzXG4gICAgLyg/OlxcZCsoPzpcXC5cXGQqKT98XFwuXFxkKykoPzpbZUVdWystXT9cXGQrKT9bTGldPy9cbiAgKTtcbiAgY29uc3QgT1BFUkFUT1JTX1JFID0gL1s9ITw+Ol09fFxcfFxcfHwmJnw6Ojo/fDwtfDw8LXwtPj58LT58XFx8PnxbLSsqXFwvPyEkJnw6PD0+QF5+XXxcXCpcXCovO1xuICBjb25zdCBQVU5DVFVBVElPTl9SRSA9IHJlZ2V4LmVpdGhlcihcbiAgICAvWygpXS8sXG4gICAgL1t7fV0vLFxuICAgIC9cXFtcXFsvLFxuICAgIC9bW1xcXV0vLFxuICAgIC9cXFxcLyxcbiAgICAvLC9cbiAgKTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdSJyxcblxuICAgIGtleXdvcmRzOiB7XG4gICAgICAkcGF0dGVybjogSURFTlRfUkUsXG4gICAgICBrZXl3b3JkOlxuICAgICAgICAnZnVuY3Rpb24gaWYgaW4gYnJlYWsgbmV4dCByZXBlYXQgZWxzZSBmb3Igd2hpbGUnLFxuICAgICAgbGl0ZXJhbDpcbiAgICAgICAgJ05VTEwgTkEgVFJVRSBGQUxTRSBJbmYgTmFOIE5BX2ludGVnZXJffDEwIE5BX3JlYWxffDEwICdcbiAgICAgICAgKyAnTkFfY2hhcmFjdGVyX3wxMCBOQV9jb21wbGV4X3wxMCcsXG4gICAgICBidWlsdF9pbjpcbiAgICAgICAgLy8gQnVpbHRpbiBjb25zdGFudHNcbiAgICAgICAgJ0xFVFRFUlMgbGV0dGVycyBtb250aC5hYmIgbW9udGgubmFtZSBwaSBUIEYgJ1xuICAgICAgICAvLyBQcmltaXRpdmUgZnVuY3Rpb25zXG4gICAgICAgIC8vIFRoZXNlIGFyZSBhbGwgdGhlIGZ1bmN0aW9ucyBpbiBgYmFzZWAgdGhhdCBhcmUgaW1wbGVtZW50ZWQgYXMgYVxuICAgICAgICAvLyBgLlByaW1pdGl2ZWAsIG1pbnVzIHRob3NlIGZ1bmN0aW9ucyB0aGF0IGFyZSBhbHNvIGtleXdvcmRzLlxuICAgICAgICArICdhYnMgYWNvcyBhY29zaCBhbGwgYW55IGFueU5BIEFyZyBhcy5jYWxsIGFzLmNoYXJhY3RlciAnXG4gICAgICAgICsgJ2FzLmNvbXBsZXggYXMuZG91YmxlIGFzLmVudmlyb25tZW50IGFzLmludGVnZXIgYXMubG9naWNhbCAnXG4gICAgICAgICsgJ2FzLm51bGwuZGVmYXVsdCBhcy5udW1lcmljIGFzLnJhdyBhc2luIGFzaW5oIGF0YW4gYXRhbmggYXR0ciAnXG4gICAgICAgICsgJ2F0dHJpYnV0ZXMgYmFzZWVudiBicm93c2VyIGMgY2FsbCBjZWlsaW5nIGNsYXNzIENvbmogY29zIGNvc2ggJ1xuICAgICAgICArICdjb3NwaSBjdW1tYXggY3VtbWluIGN1bXByb2QgY3Vtc3VtIGRpZ2FtbWEgZGltIGRpbW5hbWVzICdcbiAgICAgICAgKyAnZW1wdHllbnYgZXhwIGV4cHJlc3Npb24gZmxvb3IgZm9yY2VBbmRDYWxsIGdhbW1hIGdjLnRpbWUgJ1xuICAgICAgICArICdnbG9iYWxlbnYgSW0gaW50ZXJhY3RpdmUgaW52aXNpYmxlIGlzLmFycmF5IGlzLmF0b21pYyBpcy5jYWxsICdcbiAgICAgICAgKyAnaXMuY2hhcmFjdGVyIGlzLmNvbXBsZXggaXMuZG91YmxlIGlzLmVudmlyb25tZW50IGlzLmV4cHJlc3Npb24gJ1xuICAgICAgICArICdpcy5maW5pdGUgaXMuZnVuY3Rpb24gaXMuaW5maW5pdGUgaXMuaW50ZWdlciBpcy5sYW5ndWFnZSAnXG4gICAgICAgICsgJ2lzLmxpc3QgaXMubG9naWNhbCBpcy5tYXRyaXggaXMubmEgaXMubmFtZSBpcy5uYW4gaXMubnVsbCAnXG4gICAgICAgICsgJ2lzLm51bWVyaWMgaXMub2JqZWN0IGlzLnBhaXJsaXN0IGlzLnJhdyBpcy5yZWN1cnNpdmUgaXMuc2luZ2xlICdcbiAgICAgICAgKyAnaXMuc3ltYm9sIGxhenlMb2FkREJmZXRjaCBsZW5ndGggbGdhbW1hIGxpc3QgbG9nIG1heCBtaW4gJ1xuICAgICAgICArICdtaXNzaW5nIE1vZCBuYW1lcyBuYXJncyBuemNoYXIgb2xkQ2xhc3Mgb24uZXhpdCBwb3MudG8uZW52ICdcbiAgICAgICAgKyAncHJvYy50aW1lIHByb2QgcXVvdGUgcmFuZ2UgUmUgcmVwIHJldHJhY2VtZW0gcmV0dXJuIHJvdW5kICdcbiAgICAgICAgKyAnc2VxX2Fsb25nIHNlcV9sZW4gc2VxLmludCBzaWduIHNpZ25pZiBzaW4gc2luaCBzaW5waSBzcXJ0ICdcbiAgICAgICAgKyAnc3RhbmRhcmRHZW5lcmljIHN1YnN0aXR1dGUgc3VtIHN3aXRjaCB0YW4gdGFuaCB0YW5waSB0cmFjZW1lbSAnXG4gICAgICAgICsgJ3RyaWdhbW1hIHRydW5jIHVuY2xhc3MgdW50cmFjZW1lbSBVc2VNZXRob2QgeHRmcm0nLFxuICAgIH0sXG5cbiAgICBjb250YWluczogW1xuICAgICAgLy8gUm94eWdlbiBjb21tZW50c1xuICAgICAgaGxqcy5DT01NRU5UKFxuICAgICAgICAvIycvLFxuICAgICAgICAvJC8sXG4gICAgICAgIHsgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICAvLyBIYW5kbGUgYEBleGFtcGxlc2Agc2VwYXJhdGVseSB0byBjYXVzZSBhbGwgc3Vic2VxdWVudCBjb2RlXG4gICAgICAgICAgICAvLyB1bnRpbCB0aGUgbmV4dCBgQGAtdGFnIG9uIGl0cyBvd24gbGluZSB0byBiZSBrZXB0IGFzLWlzLFxuICAgICAgICAgICAgLy8gcHJldmVudGluZyBoaWdobGlnaHRpbmcuIFRoaXMgY29kZSBpcyBleGFtcGxlIFIgY29kZSwgc28gbmVzdGVkXG4gICAgICAgICAgICAvLyBkb2N0YWdzIHNob3VsZG7igJl0IGJlIHRyZWF0ZWQgYXMgc3VjaC4gU2VlXG4gICAgICAgICAgICAvLyBgdGVzdC9tYXJrdXAvci9yb3h5Z2VuLnR4dGAgZm9yIGFuIGV4YW1wbGUuXG4gICAgICAgICAgICBzY29wZTogJ2RvY3RhZycsXG4gICAgICAgICAgICBtYXRjaDogL0BleGFtcGxlcy8sXG4gICAgICAgICAgICBzdGFydHM6IHtcbiAgICAgICAgICAgICAgZW5kOiByZWdleC5sb29rYWhlYWQocmVnZXguZWl0aGVyKFxuICAgICAgICAgICAgICAgIC8vIGVuZCBpZiBhbm90aGVyIGRvYyBjb21tZW50XG4gICAgICAgICAgICAgICAgL1xcbl4jJ1xccyooPz1AW2EtekEtWl0rKS8sXG4gICAgICAgICAgICAgICAgLy8gb3IgYSBsaW5lIHdpdGggbm8gY29tbWVudFxuICAgICAgICAgICAgICAgIC9cXG5eKD8hIycpL1xuICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgZW5kc1BhcmVudDogdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgLy8gSGFuZGxlIGBAcGFyYW1gIHRvIGhpZ2hsaWdodCB0aGUgcGFyYW1ldGVyIG5hbWUgZm9sbG93aW5nXG4gICAgICAgICAgICAvLyBhZnRlci5cbiAgICAgICAgICAgIHNjb3BlOiAnZG9jdGFnJyxcbiAgICAgICAgICAgIGJlZ2luOiAnQHBhcmFtJyxcbiAgICAgICAgICAgIGVuZDogLyQvLFxuICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNjb3BlOiAndmFyaWFibGUnLFxuICAgICAgICAgICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgICAgICAgICB7IG1hdGNoOiBJREVOVF9SRSB9LFxuICAgICAgICAgICAgICAgICAgeyBtYXRjaDogL2AoPzpcXFxcLnxbXmBcXFxcXSkrYC8gfVxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgZW5kc1BhcmVudDogdHJ1ZVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBzY29wZTogJ2RvY3RhZycsXG4gICAgICAgICAgICBtYXRjaDogL0BbYS16QS1aXSsvXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBzY29wZTogJ2tleXdvcmQnLFxuICAgICAgICAgICAgbWF0Y2g6IC9cXFxcW2EtekEtWl0rL1xuICAgICAgICAgIH1cbiAgICAgICAgXSB9XG4gICAgICApLFxuXG4gICAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFLFxuXG4gICAgICB7XG4gICAgICAgIHNjb3BlOiAnc3RyaW5nJyxcbiAgICAgICAgY29udGFpbnM6IFsgaGxqcy5CQUNLU0xBU0hfRVNDQVBFIF0sXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgaGxqcy5FTkRfU0FNRV9BU19CRUdJTih7XG4gICAgICAgICAgICBiZWdpbjogL1tyUl1cIigtKilcXCgvLFxuICAgICAgICAgICAgZW5kOiAvXFwpKC0qKVwiL1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIGhsanMuRU5EX1NBTUVfQVNfQkVHSU4oe1xuICAgICAgICAgICAgYmVnaW46IC9bclJdXCIoLSopXFx7LyxcbiAgICAgICAgICAgIGVuZDogL1xcfSgtKilcIi9cbiAgICAgICAgICB9KSxcbiAgICAgICAgICBobGpzLkVORF9TQU1FX0FTX0JFR0lOKHtcbiAgICAgICAgICAgIGJlZ2luOiAvW3JSXVwiKC0qKVxcWy8sXG4gICAgICAgICAgICBlbmQ6IC9cXF0oLSopXCIvXG4gICAgICAgICAgfSksXG4gICAgICAgICAgaGxqcy5FTkRfU0FNRV9BU19CRUdJTih7XG4gICAgICAgICAgICBiZWdpbjogL1tyUl0nKC0qKVxcKC8sXG4gICAgICAgICAgICBlbmQ6IC9cXCkoLSopJy9cbiAgICAgICAgICB9KSxcbiAgICAgICAgICBobGpzLkVORF9TQU1FX0FTX0JFR0lOKHtcbiAgICAgICAgICAgIGJlZ2luOiAvW3JSXScoLSopXFx7LyxcbiAgICAgICAgICAgIGVuZDogL1xcfSgtKiknL1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIGhsanMuRU5EX1NBTUVfQVNfQkVHSU4oe1xuICAgICAgICAgICAgYmVnaW46IC9bclJdJygtKilcXFsvLFxuICAgICAgICAgICAgZW5kOiAvXFxdKC0qKScvXG4gICAgICAgICAgfSksXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46ICdcIicsXG4gICAgICAgICAgICBlbmQ6ICdcIicsXG4gICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiBcIidcIixcbiAgICAgICAgICAgIGVuZDogXCInXCIsXG4gICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICB9LFxuXG4gICAgICAvLyBNYXRjaGluZyBudW1iZXJzIGltbWVkaWF0ZWx5IGZvbGxvd2luZyBwdW5jdHVhdGlvbiBhbmQgb3BlcmF0b3JzIGlzXG4gICAgICAvLyB0cmlja3kgc2luY2Ugd2UgbmVlZCB0byBsb29rIGF0IHRoZSBjaGFyYWN0ZXIgYWhlYWQgb2YgYSBudW1iZXIgdG9cbiAgICAgIC8vIGVuc3VyZSB0aGUgbnVtYmVyIGlzIG5vdCBwYXJ0IG9mIGFuIGlkZW50aWZpZXIsIGFuZCB3ZSBjYW5ub3QgdXNlXG4gICAgICAvLyBuZWdhdGl2ZSBsb29rLWJlaGluZCBhc3NlcnRpb25zLiBTbyBpbnN0ZWFkIHdlIGV4cGxpY2l0bHkgaGFuZGxlIGFsbFxuICAgICAgLy8gcG9zc2libGUgY29tYmluYXRpb25zIG9mIChvcGVyYXRvcnxwdW5jdHVhdGlvbiksIG51bWJlci5cbiAgICAgIC8vIFRPRE86IHJlcGxhY2Ugd2l0aCBuZWdhdGl2ZSBsb29rLWJlaGluZCB3aGVuIGF2YWlsYWJsZVxuICAgICAgLy8geyBiZWdpbjogLyg/PCFbYS16QS1aMC05Ll9dKTBbeFhdWzAtOWEtZkEtRl0rXFwuWzAtOWEtZkEtRl0qW3BQXVsrLV0/XFxkK2k/LyB9LFxuICAgICAgLy8geyBiZWdpbjogLyg/PCFbYS16QS1aMC05Ll9dKTBbeFhdWzAtOWEtZkEtRl0rKFtwUF1bKy1dP1xcZCspP1tMaV0/LyB9LFxuICAgICAgLy8geyBiZWdpbjogLyg/PCFbYS16QS1aMC05Ll9dKShcXGQrKFxcLlxcZCopP3xcXC5cXGQrKShbZUVdWystXT9cXGQrKT9bTGldPy8gfVxuICAgICAge1xuICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgc2NvcGU6IHtcbiAgICAgICAgICAgICAgMTogJ29wZXJhdG9yJyxcbiAgICAgICAgICAgICAgMjogJ251bWJlcidcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBtYXRjaDogW1xuICAgICAgICAgICAgICBPUEVSQVRPUlNfUkUsXG4gICAgICAgICAgICAgIE5VTUJFUl9UWVBFU19SRVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgc2NvcGU6IHtcbiAgICAgICAgICAgICAgMTogJ29wZXJhdG9yJyxcbiAgICAgICAgICAgICAgMjogJ251bWJlcidcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBtYXRjaDogW1xuICAgICAgICAgICAgICAvJVteJV0qJS8sXG4gICAgICAgICAgICAgIE5VTUJFUl9UWVBFU19SRVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgc2NvcGU6IHtcbiAgICAgICAgICAgICAgMTogJ3B1bmN0dWF0aW9uJyxcbiAgICAgICAgICAgICAgMjogJ251bWJlcidcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBtYXRjaDogW1xuICAgICAgICAgICAgICBQVU5DVFVBVElPTl9SRSxcbiAgICAgICAgICAgICAgTlVNQkVSX1RZUEVTX1JFXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBzY29wZTogeyAyOiAnbnVtYmVyJyB9LFxuICAgICAgICAgICAgbWF0Y2g6IFtcbiAgICAgICAgICAgICAgL1teYS16QS1aMC05Ll9dfF4vLCAvLyBub3QgcGFydCBvZiBhbiBpZGVudGlmaWVyLCBvciBzdGFydCBvZiBkb2N1bWVudFxuICAgICAgICAgICAgICBOVU1CRVJfVFlQRVNfUkVcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG5cbiAgICAgIC8vIE9wZXJhdG9ycy9wdW5jdHVhdGlvbiB3aGVuIHRoZXkncmUgbm90IGRpcmVjdGx5IGZvbGxvd2VkIGJ5IG51bWJlcnNcbiAgICAgIHtcbiAgICAgICAgLy8gUmVsZXZhbmNlIGJvb3N0IGZvciB0aGUgbW9zdCBjb21tb24gYXNzaWdubWVudCBmb3JtLlxuICAgICAgICBzY29wZTogeyAzOiAnb3BlcmF0b3InIH0sXG4gICAgICAgIG1hdGNoOiBbXG4gICAgICAgICAgSURFTlRfUkUsXG4gICAgICAgICAgL1xccysvLFxuICAgICAgICAgIC88LS8sXG4gICAgICAgICAgL1xccysvXG4gICAgICAgIF1cbiAgICAgIH0sXG5cbiAgICAgIHtcbiAgICAgICAgc2NvcGU6ICdvcGVyYXRvcicsXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICB7IG1hdGNoOiBPUEVSQVRPUlNfUkUgfSxcbiAgICAgICAgICB7IG1hdGNoOiAvJVteJV0qJS8gfVxuICAgICAgICBdXG4gICAgICB9LFxuXG4gICAgICB7XG4gICAgICAgIHNjb3BlOiAncHVuY3R1YXRpb24nLFxuICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgIG1hdGNoOiBQVU5DVFVBVElPTl9SRVxuICAgICAgfSxcblxuICAgICAge1xuICAgICAgICAvLyBFc2NhcGVkIGlkZW50aWZpZXJcbiAgICAgICAgYmVnaW46ICdgJyxcbiAgICAgICAgZW5kOiAnYCcsXG4gICAgICAgIGNvbnRhaW5zOiBbIHsgYmVnaW46IC9cXFxcLi8gfSBdXG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHI7XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///81\n");
  1802. /***/ }),
  1803. /* 82 */
  1804. /*!*******************************************************************************************************!*\
  1805. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/highlight.js/lib/languages/rust.js ***!
  1806. \*******************************************************************************************************/
  1807. /*! no static exports found */
  1808. /***/ (function(module, exports) {
  1809. eval("/*\nLanguage: Rust\nAuthor: Andrey Vlasovskikh <andrey.vlasovskikh@gmail.com>\nContributors: Roman Shmatov <romanshmatov@gmail.com>, Kasper Andersen <kma_untrusted@protonmail.com>\nWebsite: https://www.rust-lang.org\nCategory: common, system\n*/\n\n/** @type LanguageFn */\nfunction rust(hljs) {\n var regex = hljs.regex;\n var FUNCTION_INVOKE = {\n className: \"title.function.invoke\",\n relevance: 0,\n begin: regex.concat(/\\b/, /(?!let\\b)/, hljs.IDENT_RE, regex.lookahead(/\\s*\\(/))\n };\n var NUMBER_SUFFIX = '([ui](8|16|32|64|128|size)|f(32|64))\\?';\n var KEYWORDS = [\"abstract\", \"as\", \"async\", \"await\", \"become\", \"box\", \"break\", \"const\", \"continue\", \"crate\", \"do\", \"dyn\", \"else\", \"enum\", \"extern\", \"false\", \"final\", \"fn\", \"for\", \"if\", \"impl\", \"in\", \"let\", \"loop\", \"macro\", \"match\", \"mod\", \"move\", \"mut\", \"override\", \"priv\", \"pub\", \"ref\", \"return\", \"self\", \"Self\", \"static\", \"struct\", \"super\", \"trait\", \"true\", \"try\", \"type\", \"typeof\", \"unsafe\", \"unsized\", \"use\", \"virtual\", \"where\", \"while\", \"yield\"];\n var LITERALS = [\"true\", \"false\", \"Some\", \"None\", \"Ok\", \"Err\"];\n var BUILTINS = [\n // functions\n 'drop ',\n // traits\n \"Copy\", \"Send\", \"Sized\", \"Sync\", \"Drop\", \"Fn\", \"FnMut\", \"FnOnce\", \"ToOwned\", \"Clone\", \"Debug\", \"PartialEq\", \"PartialOrd\", \"Eq\", \"Ord\", \"AsRef\", \"AsMut\", \"Into\", \"From\", \"Default\", \"Iterator\", \"Extend\", \"IntoIterator\", \"DoubleEndedIterator\", \"ExactSizeIterator\", \"SliceConcatExt\", \"ToString\",\n // macros\n \"assert!\", \"assert_eq!\", \"bitflags!\", \"bytes!\", \"cfg!\", \"col!\", \"concat!\", \"concat_idents!\", \"debug_assert!\", \"debug_assert_eq!\", \"env!\", \"panic!\", \"file!\", \"format!\", \"format_args!\", \"include_bytes!\", \"include_str!\", \"line!\", \"local_data_key!\", \"module_path!\", \"option_env!\", \"print!\", \"println!\", \"select!\", \"stringify!\", \"try!\", \"unimplemented!\", \"unreachable!\", \"vec!\", \"write!\", \"writeln!\", \"macro_rules!\", \"assert_ne!\", \"debug_assert_ne!\"];\n var TYPES = [\"i8\", \"i16\", \"i32\", \"i64\", \"i128\", \"isize\", \"u8\", \"u16\", \"u32\", \"u64\", \"u128\", \"usize\", \"f32\", \"f64\", \"str\", \"char\", \"bool\", \"Box\", \"Option\", \"Result\", \"String\", \"Vec\"];\n return {\n name: 'Rust',\n aliases: ['rs'],\n keywords: {\n $pattern: hljs.IDENT_RE + '!?',\n type: TYPES,\n keyword: KEYWORDS,\n literal: LITERALS,\n built_in: BUILTINS\n },\n illegal: '</',\n contains: [hljs.C_LINE_COMMENT_MODE, hljs.COMMENT('/\\\\*', '\\\\*/', {\n contains: ['self']\n }), hljs.inherit(hljs.QUOTE_STRING_MODE, {\n begin: /b?\"/,\n illegal: null\n }), {\n className: 'string',\n variants: [{\n begin: /b?r(#*)\"(.|\\n)*?\"\\1(?!#)/\n }, {\n begin: /b?'\\\\?(x\\w{2}|u\\w{4}|U\\w{8}|.)'/\n }]\n }, {\n className: 'symbol',\n begin: /'[a-zA-Z_][a-zA-Z0-9_]*/\n }, {\n className: 'number',\n variants: [{\n begin: '\\\\b0b([01_]+)' + NUMBER_SUFFIX\n }, {\n begin: '\\\\b0o([0-7_]+)' + NUMBER_SUFFIX\n }, {\n begin: '\\\\b0x([A-Fa-f0-9_]+)' + NUMBER_SUFFIX\n }, {\n begin: '\\\\b(\\\\d[\\\\d_]*(\\\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)' + NUMBER_SUFFIX\n }],\n relevance: 0\n }, {\n begin: [/fn/, /\\s+/, hljs.UNDERSCORE_IDENT_RE],\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n }\n }, {\n className: 'meta',\n begin: '#!?\\\\[',\n end: '\\\\]',\n contains: [{\n className: 'string',\n begin: /\"/,\n end: /\"/\n }]\n }, {\n begin: [/let/, /\\s+/, /(?:mut\\s+)?/, hljs.UNDERSCORE_IDENT_RE],\n className: {\n 1: \"keyword\",\n 3: \"keyword\",\n 4: \"variable\"\n }\n },\n // must come before impl/for rule later\n {\n begin: [/for/, /\\s+/, hljs.UNDERSCORE_IDENT_RE, /\\s+/, /in/],\n className: {\n 1: \"keyword\",\n 3: \"variable\",\n 5: \"keyword\"\n }\n }, {\n begin: [/type/, /\\s+/, hljs.UNDERSCORE_IDENT_RE],\n className: {\n 1: \"keyword\",\n 3: \"title.class\"\n }\n }, {\n begin: [/(?:trait|enum|struct|union|impl|for)/, /\\s+/, hljs.UNDERSCORE_IDENT_RE],\n className: {\n 1: \"keyword\",\n 3: \"title.class\"\n }\n }, {\n begin: hljs.IDENT_RE + '::',\n keywords: {\n keyword: \"Self\",\n built_in: BUILTINS,\n type: TYPES\n }\n }, {\n className: \"punctuation\",\n begin: '->'\n }, FUNCTION_INVOKE]\n };\n}\nmodule.exports = rust;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvcnVzdC5qcyJdLCJuYW1lcyI6WyJydXN0IiwiaGxqcyIsInJlZ2V4IiwiRlVOQ1RJT05fSU5WT0tFIiwiY2xhc3NOYW1lIiwicmVsZXZhbmNlIiwiYmVnaW4iLCJjb25jYXQiLCJJREVOVF9SRSIsImxvb2thaGVhZCIsIk5VTUJFUl9TVUZGSVgiLCJLRVlXT1JEUyIsIkxJVEVSQUxTIiwiQlVJTFRJTlMiLCJUWVBFUyIsIm5hbWUiLCJhbGlhc2VzIiwia2V5d29yZHMiLCIkcGF0dGVybiIsInR5cGUiLCJrZXl3b3JkIiwibGl0ZXJhbCIsImJ1aWx0X2luIiwiaWxsZWdhbCIsImNvbnRhaW5zIiwiQ19MSU5FX0NPTU1FTlRfTU9ERSIsIkNPTU1FTlQiLCJpbmhlcml0IiwiUVVPVEVfU1RSSU5HX01PREUiLCJ2YXJpYW50cyIsIlVOREVSU0NPUkVfSURFTlRfUkUiLCJlbmQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFNBQVNBLElBQUksQ0FBQ0MsSUFBSSxFQUFFO0VBQ2xCLElBQU1DLEtBQUssR0FBR0QsSUFBSSxDQUFDQyxLQUFLO0VBQ3hCLElBQU1DLGVBQWUsR0FBRztJQUN0QkMsU0FBUyxFQUFFLHVCQUF1QjtJQUNsQ0MsU0FBUyxFQUFFLENBQUM7SUFDWkMsS0FBSyxFQUFFSixLQUFLLENBQUNLLE1BQU0sQ0FDakIsSUFBSSxFQUNKLFdBQVcsRUFDWE4sSUFBSSxDQUFDTyxRQUFRLEVBQ2JOLEtBQUssQ0FBQ08sU0FBUyxDQUFDLE9BQU8sQ0FBQztFQUM1QixDQUFDO0VBQ0QsSUFBTUMsYUFBYSxHQUFHLHdDQUF3QztFQUM5RCxJQUFNQyxRQUFRLEdBQUcsQ0FDZixVQUFVLEVBQ1YsSUFBSSxFQUNKLE9BQU8sRUFDUCxPQUFPLEVBQ1AsUUFBUSxFQUNSLEtBQUssRUFDTCxP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LCJzb3VyY2VzQ29udGVudCI6WyIvKlxuTGFuZ3VhZ2U6IFJ1c3RcbkF1dGhvcjogQW5kcmV5IFZsYXNvdnNraWtoIDxhbmRyZXkudmxhc292c2tpa2hAZ21haWwuY29tPlxuQ29udHJpYnV0b3JzOiBSb21hbiBTaG1hdG92IDxyb21hbnNobWF0b3ZAZ21haWwuY29tPiwgS2FzcGVyIEFuZGVyc2VuIDxrbWFfdW50cnVzdGVkQHByb3Rvbm1haWwuY29tPlxuV2Vic2l0ZTogaHR0cHM6Ly93d3cucnVzdC1sYW5nLm9yZ1xuQ2F0ZWdvcnk6IGNvbW1vbiwgc3lzdGVtXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gcnVzdChobGpzKSB7XG4gIGNvbnN0IHJlZ2V4ID0gaGxqcy5yZWdleDtcbiAgY29uc3QgRlVOQ1RJT05fSU5WT0tFID0ge1xuICAgIGNsYXNzTmFtZTogXCJ0aXRsZS5mdW5jdGlvbi5pbnZva2VcIixcbiAgICByZWxldmFuY2U6IDAsXG4gICAgYmVnaW46IHJlZ2V4LmNvbmNhdChcbiAgICAgIC9cXGIvLFxuICAgICAgLyg/IWxldFxcYikvLFxuICAgICAgaGxqcy5JREVOVF9SRSxcbiAgICAgIHJlZ2V4Lmxvb2thaGVhZCgvXFxzKlxcKC8pKVxuICB9O1xuICBjb25zdCBOVU1CRVJfU1VGRklYID0gJyhbdWldKDh8MTZ8MzJ8NjR8MTI4fHNpemUpfGYoMzJ8NjQpKVxcPyc7XG4gIGNvbnN0IEtFWVdPUkRTID0gW1xuICAgIFwiYWJzdHJhY3RcIixcbiAgICBcImFzXCIsXG4gICAgXCJhc3luY1wiLFxuICAgIFwiYXdhaXRcIixcbiAgICBcImJlY29tZVwiLFxuICAgIFwiYm94XCIsXG4gICAgXCJicmVha1wiLFxuICAgIFwiY29uc3RcIixcbiAgICBcImNvbnRpbnVlXCIsXG4gICAgXCJjcmF0ZVwiLFxuICAgIFwiZG9cIixcbiAgICBcImR5blwiLFxuICAgIFwiZWxzZVwiLFxuICAgIFwiZW51bVwiLFxuICAgIFwiZXh0ZXJuXCIsXG4gICAgXCJmYWxzZVwiLFxuICAgIFwiZmluYWxcIixcbiAgICBcImZuXCIsXG4gICAgXCJmb3JcIixcbiAgICBcImlmXCIsXG4gICAgXCJpbXBsXCIsXG4gICAgXCJpblwiLFxuICAgIFwibGV0XCIsXG4gICAgXCJsb29wXCIsXG4gICAgXCJtYWNyb1wiLFxuICAgIFwibWF0Y2hcIixcbiAgICBcIm1vZFwiLFxuICAgIFwibW92ZVwiLFxuICAgIFwibXV0XCIsXG4gICAgXCJvdmVycmlkZVwiLFxuICAgIFwicHJpdlwiLFxuICAgIFwicHViXCIsXG4gICAgXCJyZWZcIixcbiAgICBcInJldHVyblwiLFxuICAgIFwic2VsZlwiLFxuICAgIFwiU2VsZlwiLFxuICAgIFwic3RhdGljXCIsXG4gICAgXCJzdHJ1Y3RcIixcbiAgICBcInN1cGVyXCIsXG4gICAgXCJ0cmFpdFwiLFxuICAgIFwidHJ1ZVwiLFxuICAgIFwidHJ5XCIsXG4gICAgXCJ0eXBlXCIsXG4gICAgXCJ0eXBlb2ZcIixcbiAgICBcInVuc2FmZVwiLFxuICAgIFwidW5zaXplZFwiLFxuICAgIFwidXNlXCIsXG4gICAgXCJ2aXJ0dWFsXCIsXG4gICAgXCJ3aGVyZVwiLFxuICAgIFwid2hpbGVcIixcbiAgICBcInlpZWxkXCJcbiAgXTtcbiAgY29uc3QgTElURVJBTFMgPSBbXG4gICAgXCJ0cnVlXCIsXG4gICAgXCJmYWxzZVwiLFxuICAgIFwiU29tZVwiLFxuICAgIFwiTm9uZVwiLFxuICAgIFwiT2tcIixcbiAgICBcIkVyclwiXG4gIF07XG4gIGNvbnN0IEJVSUxUSU5TID0gW1xuICAgIC8vIGZ1bmN0aW9uc1xuICAgICdkcm9wICcsXG4gICAgLy8gdHJhaXRzXG4gICAgXCJDb3B5XCIsXG4gICAgXCJTZW5kXCIsXG4gICAgXCJTaXplZFwiLFxuICAgIFwiU3luY1wiLFxuICAgIFwiRHJvcFwiLFxuICAgIFwiRm5cIixcbiAgICBcIkZuTXV0XCIsXG4gICAgXCJGbk9uY2VcIixcbiAgICBcIlRvT3duZWRcIixcbiAgICBcIkNsb25lXCIsXG4gICAgXCJEZWJ1Z1wiLFxuICAgIFwiUGFydGlhbEVxXCIsXG4gICAgXCJQYXJ0aWFsT3JkXCIsXG4gICAgXCJFcVwiLFxuICAgIFwiT3JkXCIsXG4gICAgXCJBc1JlZlwiLFxuICAgIFwiQXNNdXRcIixcbiAgICBcIkludG9cIixcbiAgICBcIkZyb21cIixcbiAgICBcIkRlZmF1bHRcIixcbiAgICBcIkl0ZXJhdG9yXCIsXG4gICAgXCJFeHRlbmRcIixcbiAgICBcIkludG9JdGVyYXRvclwiLFxuICAgIFwiRG91YmxlRW5kZWRJdGVyYXRvclwiLFxuICAgIFwiRXhhY3RTaXplSXRlcmF0b3JcIixcbiAgICBcIlNsaWNlQ29uY2F0RXh0XCIsXG4gICAgXCJUb1N0cmluZ1wiLFxuICAgIC8vIG1hY3Jvc1xuICAgIFwiYXNzZXJ0IVwiLFxuICAgIFwiYXNzZXJ0X2VxIVwiLFxuICAgIFwiYml0ZmxhZ3MhXCIsXG4gICAgXCJieXRlcyFcIixcbiAgICBcImNmZyFcIixcbiAgICBcImNvbCFcIixcbiAgICBcImNvbmNhdCFcIixcbiAgICBcImNvbmNhdF9pZGVudHMhXCIsXG4gICAgXCJkZWJ1Z19hc3NlcnQhXCIsXG4gICAgXCJkZWJ1Z19hc3NlcnRfZXEhXCIsXG4gICAgXCJlbnYhXCIsXG4gICAgXCJwYW5pYyFcIixcbiAgICBcImZpbGUhXCIsXG4gICAgXCJmb3JtYXQhXCIsXG4gICAgXCJmb3JtYXRfYXJncyFcIixcbiAgICBcImluY2x1ZGVfYnl0ZXMhXCIsXG4gICAgXCJpbmNsdWRlX3N0ciFcIixcbiAgICBcImxpbmUhXCIsXG4gICAgXCJsb2NhbF9kYXRhX2tleSFcIixcbiAgICBcIm1vZHVsZV9wYXRoIVwiLFxuICAgIFwib3B0aW9uX2VudiFcIixcbiAgICBcInByaW50IVwiLFxuICAgIFwicHJpbnRsbiFcIixcbiAgICBcInNlbGVjdCFcIixcbiAgICBcInN0cmluZ2lmeSFcIixcbiAgICBcInRyeSFcIixcbiAgICBcInVuaW1wbGVtZW50ZWQhXCIsXG4gICAgXCJ1bnJlYWNoYWJsZSFcIixcbiAgICBcInZlYyFcIixcbiAgICBcIndyaXRlIVwiLFxuICAgIFwid3JpdGVsbiFcIixcbiAgICBcIm1hY3JvX3J1bGVzIVwiLFxuICAgIFwiYXNzZXJ0X25lIVwiLFxuICAgIFwiZGVidWdfYXNzZXJ0X25lIVwiXG4gIF07XG4gIGNvbnN0IFRZUEVTID0gW1xuICAgIFwiaThcIixcbiAgICBcImkxNlwiLFxuICAgIFwiaTMyXCIsXG4gICAgXCJpNjRcIixcbiAgICBcImkxMjhcIixcbiAgICBcImlzaXplXCIsXG4gICAgXCJ1OFwiLFxuICAgIFwidTE2XCIsXG4gICAgXCJ1MzJcIixcbiAgICBcInU2NFwiLFxuICAgIFwidTEyOFwiLFxuICAgIFwidXNpemVcIixcbiAgICBcImYzMlwiLFxuICAgIFwiZjY0XCIsXG4gICAgXCJzdHJcIixcbiAgICBcImNoYXJcIixcbiAgICBcImJvb2xcIixcbiAgICBcIkJveFwiLFxuICAgIFwiT3B0aW9uXCIsXG4gICAgXCJSZXN1bHRcIixcbiAgICBcIlN0cmluZ1wiLFxuICAgIFwiVmVjXCJcbiAgXTtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnUnVzdCcsXG4gICAgYWxpYXNlczogWyAncnMnIF0sXG4gICAga2V5d29yZHM6IHtcbiAgICAgICRwYXR0ZXJuOiBobGpzLklERU5UX1JFICsgJyE/JyxcbiAgICAgIHR5cGU6IFRZUEVTLFxuICAgICAga2V5d29yZDogS0VZV09SRFMsXG4gICAgICBsaXRlcmFsOiBMSVRFUkFMUyxcbiAgICAgIGJ1aWx0X2luOiBCVUlMVElOU1xuICAgIH0sXG4gICAgaWxsZWdhbDogJzwvJyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DT01NRU5UKCcvXFxcXConLCAnXFxcXCovJywgeyBjb250YWluczogWyAnc2VsZicgXSB9KSxcbiAgICAgIGhsanMuaW5oZXJpdChobGpzLlFVT1RFX1NUUklOR19NT0RFLCB7XG4gICAgICAgIGJlZ2luOiAvYj9cIi8sXG4gICAgICAgIGlsbGVnYWw6IG51bGxcbiAgICAgIH0pLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHsgYmVnaW46IC9iP3IoIyopXCIoLnxcXG4pKj9cIlxcMSg/ISMpLyB9LFxuICAgICAgICAgIHsgYmVnaW46IC9iPydcXFxcPyh4XFx3ezJ9fHVcXHd7NH18VVxcd3s4fXwuKScvIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICAgICAgYmVnaW46IC8nW2EtekEtWl9dW2EtekEtWjAtOV9dKi9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgeyBiZWdpbjogJ1xcXFxiMGIoWzAxX10rKScgKyBOVU1CRVJfU1VGRklYIH0sXG4gICAgICAgICAgeyBiZWdpbjogJ1xcXFxiMG8oWzAtN19dKyknICsgTlVNQkVSX1NVRkZJWCB9LFxuICAgICAgICAgIHsgYmVnaW46ICdcXFxcYjB4KFtBLUZhLWYwLTlfXSspJyArIE5VTUJFUl9TVUZGSVggfSxcbiAgICAgICAgICB7IGJlZ2luOiAnXFxcXGIoXFxcXGRbXFxcXGRfXSooXFxcXC5bMC05X10rKT8oW2VFXVsrLV0/WzAtOV9dKyk/KSdcbiAgICAgICAgICAgICAgICAgICArIE5VTUJFUl9TVUZGSVggfVxuICAgICAgICBdLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiBbXG4gICAgICAgICAgL2ZuLyxcbiAgICAgICAgICAvXFxzKy8sXG4gICAgICAgICAgaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFXG4gICAgICAgIF0sXG4gICAgICAgIGNsYXNzTmFtZToge1xuICAgICAgICAgIDE6IFwia2V5d29yZFwiLFxuICAgICAgICAgIDM6IFwidGl0bGUuZnVuY3Rpb25cIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgYmVnaW46ICcjIT9cXFxcWycsXG4gICAgICAgIGVuZDogJ1xcXFxdJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgYmVnaW46IC9cIi8sXG4gICAgICAgICAgICBlbmQ6IC9cIi9cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiBbXG4gICAgICAgICAgL2xldC8sXG4gICAgICAgICAgL1xccysvLFxuICAgICAgICAgIC8oPzptdXRcXHMrKT8vLFxuICAgICAgICAgIGhsanMuVU5ERVJTQ09SRV9JREVOVF9SRVxuICAgICAgICBdLFxuICAgICAgICBjbGFzc05hbWU6IHtcbiAgICAgICAgICAxOiBcImtleXdvcmRcIixcbiAgICAgICAgICAzOiBcImtleXdvcmRcIixcbiAgICAgICAgICA0OiBcInZhcmlhYmxlXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIG11c3QgY29tZSBiZWZvcmUgaW1wbC9mb3IgcnVsZSBsYXRlclxuICAgICAge1xuICAgICAgICBiZWdpbjogW1xuICAgICAgICAgIC9mb3IvLFxuICAgICAgICAgIC9cXHMrLyxcbiAgICAgICAgICBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUsXG4gICAgICAgICAgL1xccysvLFxuICAgICAgICAgIC9pbi9cbiAgICAgICAgXSxcbiAgICAgICAgY2xhc3NOYW1lOiB7XG4gICAgICAgICAgMTogXCJrZXl3b3JkXCIsXG4gICAgICAgICAgMzogXCJ2YXJpYWJsZVwiLFxuICAgICAgICAgIDU6IFwia2V5d29yZFwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiBbXG4gICAgICAgICAgL3R5cGUvLFxuICAgICAgICAgIC9cXHMrLyxcbiAgICAgICAgICBobGpzLlVOREVSU0NPUkVfSURFTlRfUkVcbiAgICAgICAgXSxcbiAgICAgICAgY2xhc3NOYW1lOiB7XG4gICAgICAgICAgMTogXCJrZXl3b3JkXCIsXG4gICAgICAgICAgMzogXCJ0aXRsZS5jbGFzc1wiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiBbXG4gICAgICAgICAgLyg/OnRyYWl0fGVudW18c3RydWN0fHVuaW9ufGltcGx8Zm9yKS8sXG4gICAgICAgICAgL1xccysvLFxuICAgICAgICAgIGhsanMuVU5ERVJTQ09SRV9JREVOVF9SRVxuICAgICAgICBdLFxuICAgICAgICBjbGFzc05hbWU6IHtcbiAgICAgICAgICAxOiBcImtleXdvcmRcIixcbiAgICAgICAgICAzOiBcInRpdGxlLmNsYXNzXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IGhsanMuSURFTlRfUkUgKyAnOjonLFxuICAgICAgICBrZXl3b3Jkczoge1xuICAgICAgICAgIGtleXdvcmQ6IFwiU2VsZlwiLFxuICAgICAgICAgIGJ1aWx0X2luOiBCVUlMVElOUyxcbiAgICAgICAgICB0eXBlOiBUWVBFU1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6IFwicHVuY3R1YXRpb25cIixcbiAgICAgICAgYmVnaW46ICctPidcbiAgICAgIH0sXG4gICAgICBGVU5DVElPTl9JTlZPS0VcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gcnVzdDtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///82\n");
  1810. /***/ }),
  1811. /* 83 */
  1812. /*!*******************************************************************************************************!*\
  1813. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/highlight.js/lib/languages/scss.js ***!
  1814. \*******************************************************************************************************/
  1815. /*! no static exports found */
  1816. /***/ (function(module, exports) {
  1817. eval("var MODES = function MODES(hljs) {\n return {\n IMPORTANT: {\n scope: 'meta',\n begin: '!important'\n },\n BLOCK_COMMENT: hljs.C_BLOCK_COMMENT_MODE,\n HEXCOLOR: {\n scope: 'number',\n begin: /#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\\b/\n },\n FUNCTION_DISPATCH: {\n className: \"built_in\",\n begin: /[\\w-]+(?=\\()/\n },\n ATTRIBUTE_SELECTOR_MODE: {\n scope: 'selector-attr',\n begin: /\\[/,\n end: /\\]/,\n illegal: '$',\n contains: [hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE]\n },\n CSS_NUMBER_MODE: {\n scope: 'number',\n begin: hljs.NUMBER_RE + '(' + '%|em|ex|ch|rem' + '|vw|vh|vmin|vmax' + '|cm|mm|in|pt|pc|px' + '|deg|grad|rad|turn' + '|s|ms' + '|Hz|kHz' + '|dpi|dpcm|dppx' + ')?',\n relevance: 0\n },\n CSS_VARIABLE: {\n className: \"attr\",\n begin: /--[A-Za-z][A-Za-z0-9_-]*/\n }\n };\n};\nvar TAGS = ['a', 'abbr', 'address', 'article', 'aside', 'audio', 'b', 'blockquote', 'body', 'button', 'canvas', 'caption', 'cite', 'code', 'dd', 'del', 'details', 'dfn', 'div', 'dl', 'dt', 'em', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'hgroup', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'mark', 'menu', 'nav', 'object', 'ol', 'p', 'q', 'quote', 'samp', 'section', 'span', 'strong', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'ul', 'var', 'video'];\nvar MEDIA_FEATURES = ['any-hover', 'any-pointer', 'aspect-ratio', 'color', 'color-gamut', 'color-index', 'device-aspect-ratio', 'device-height', 'device-width', 'display-mode', 'forced-colors', 'grid', 'height', 'hover', 'inverted-colors', 'monochrome', 'orientation', 'overflow-block', 'overflow-inline', 'pointer', 'prefers-color-scheme', 'prefers-contrast', 'prefers-reduced-motion', 'prefers-reduced-transparency', 'resolution', 'scan', 'scripting', 'update', 'width',\n// TODO: find a better solution?\n'min-width', 'max-width', 'min-height', 'max-height'];\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes\nvar PSEUDO_CLASSES = ['active', 'any-link', 'blank', 'checked', 'current', 'default', 'defined', 'dir',\n// dir()\n'disabled', 'drop', 'empty', 'enabled', 'first', 'first-child', 'first-of-type', 'fullscreen', 'future', 'focus', 'focus-visible', 'focus-within', 'has',\n// has()\n'host',\n// host or host()\n'host-context',\n// host-context()\n'hover', 'indeterminate', 'in-range', 'invalid', 'is',\n// is()\n'lang',\n// lang()\n'last-child', 'last-of-type', 'left', 'link', 'local-link', 'not',\n// not()\n'nth-child',\n// nth-child()\n'nth-col',\n// nth-col()\n'nth-last-child',\n// nth-last-child()\n'nth-last-col',\n// nth-last-col()\n'nth-last-of-type',\n//nth-last-of-type()\n'nth-of-type',\n//nth-of-type()\n'only-child', 'only-of-type', 'optional', 'out-of-range', 'past', 'placeholder-shown', 'read-only', 'read-write', 'required', 'right', 'root', 'scope', 'target', 'target-within', 'user-invalid', 'valid', 'visited', 'where' // where()\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-elements\nvar PSEUDO_ELEMENTS = ['after', 'backdrop', 'before', 'cue', 'cue-region', 'first-letter', 'first-line', 'grammar-error', 'marker', 'part', 'placeholder', 'selection', 'slotted', 'spelling-error'];\nvar ATTRIBUTES = ['align-content', 'align-items', 'align-self', 'all', 'animation', 'animation-delay', 'animation-direction', 'animation-duration', 'animation-fill-mode', 'animation-iteration-count', 'animation-name', 'animation-play-state', 'animation-timing-function', 'backface-visibility', 'background', 'background-attachment', 'background-blend-mode', 'background-clip', 'background-color', 'background-image', 'background-origin', 'background-position', 'background-repeat', 'background-size', 'block-size', 'border', 'border-block', 'border-block-color', 'border-block-end', 'border-block-end-color', 'border-block-end-style', 'border-block-end-width', 'border-block-start', 'border-block-start-color', 'border-block-start-style', 'border-block-start-width', 'border-block-style', 'border-block-width', 'border-bottom', 'border-bottom-color', 'border-bottom-left-radius', 'border-bottom-right-radius', 'border-bottom-style', 'border-bottom-width', 'border-collapse', 'border-color', 'border-image', 'border-image-outset', 'border-image-repeat', 'border-image-slice', 'border-image-source', 'border-image-width', 'border-inline', 'border-inline-color', 'border-inline-end', 'border-inline-end-color', 'border-inline-end-style', 'border-inline-end-width', 'border-inline-start', 'border-inline-start-color', 'border-inline-start-style', 'border-inline-start-width', 'border-inline-style', 'border-inline-width', 'border-left', 'border-left-color', 'border-left-style', 'border-left-width', 'border-radius', 'border-right', 'border-right-color', 'border-right-style', 'border-right-width', 'border-spacing', 'border-style', 'border-top', 'border-top-color', 'border-top-left-radius', 'border-top-right-radius', 'border-top-style', 'border-top-width', 'border-width', 'bottom', 'box-decoration-break', 'box-shadow', 'box-sizing', 'break-after', 'break-before', 'break-inside', 'caption-side', 'caret-color', 'clear', 'clip', 'clip-path', 'clip-rule', 'color', 'column-count', 'column-fill', 'column-gap', 'column-rule', 'column-rule-color', 'column-rule-style', 'column-rule-width', 'column-span', 'column-width', 'columns', 'contain', 'content', 'content-visibility', 'counter-increment', 'counter-reset', 'cue', 'cue-after', 'cue-before', 'cursor', 'direction', 'display', 'empty-cells', 'filter', 'flex', 'flex-basis', 'flex-direction', 'flex-flow', 'flex-grow', 'flex-shrink', 'flex-wrap', 'float', 'flow', 'font', 'font-display', 'font-family', 'font-feature-settings', 'font-kerning', 'font-language-override', 'font-size', 'font-size-adjust', 'font-smoothing', 'font-stretch', 'font-style', 'font-synthesis', 'font-variant', 'font-variant-caps', 'font-variant-east-asian', 'font-variant-ligatures', 'font-variant-numeric', 'font-variant-position', 'font-variation-settings', 'font-weight', 'gap', 'glyph-orientation-vertical', 'grid', 'grid-area', 'grid-auto-columns', 'grid-auto-flow', 'grid-auto-rows', 'grid-column', 'grid-column-end', 'grid-column-start', 'grid-gap', 'grid-row', 'grid-row-end', 'grid-row-start', 'grid-template', 'grid-template-areas', 'grid-template-columns', 'grid-template-rows', 'hanging-punctuation', 'height', 'hyphens', 'icon', 'image-orientation', 'image-rendering', 'image-resolution', 'ime-mode', 'inline-size', 'isolation', 'justify-content', 'left', 'letter-spacing', 'line-break', 'line-height', 'list-style', 'list-style-image', 'list-style-position', 'list-style-type', 'margin', 'margin-block', 'margin-block-end', 'margin-block-start', 'margin-bottom', 'margin-inline', 'margin-inline-end', 'margin-inline-start', 'margin-left', 'margin-right', 'margin-top', 'marks', 'mask', 'mask-border', 'mask-border-mode', 'mask-border-outset', 'mask-border-repeat', 'mask-border-slice', 'mask-border-source', 'mask-border-width', 'mask-clip', 'mask-composite', 'mask-image', 'mask-mode', 'mask-origin', 'mask-position', 'mask-repeat', 'mask-size', 'mask-type', 'max-block-size', 'max-height', 'max-inline-size', 'max-width', 'min-block-size', 'min-height', 'min-inline-size', 'min-width', 'mix-blend-mode', 'nav-down', 'nav-index', 'nav-left', 'nav-right', 'nav-up', 'none', 'normal', 'object-fit', 'object-position', 'opacity', 'order', 'orphans', 'outline', 'outline-color', 'outline-offset', 'outline-style', 'outline-width', 'overflow', 'overflow-wrap', 'overflow-x', 'overflow-y', 'padding', 'padding-block', 'padding-block-end', 'padding-block-start', 'padding-bottom', 'padding-inline', 'padding-inline-end', 'padding-inline-start', 'padding-left', 'padding-right', 'padding-top', 'page-break-after', 'page-break-before', 'page-break-inside', 'pause', 'pause-after', 'pause-before', 'perspective', 'perspective-origin', 'pointer-events', 'position', 'quotes', 'resize', 'rest', 'rest-after', 'rest-before', 'right', 'row-gap', 'scroll-margin', 'scroll-margin-block', 'scroll-margin-block-end', 'scroll-margin-block-start', 'scroll-margin-bottom', 'scroll-margin-inline', 'scroll-margin-inline-end', 'scroll-margin-inline-start', 'scroll-margin-left', 'scroll-margin-right', 'scroll-margin-top', 'scroll-padding', 'scroll-padding-block', 'scroll-padding-block-end', 'scroll-padding-block-start', 'scroll-padding-bottom', 'scroll-padding-inline', 'scroll-padding-inline-end', 'scroll-padding-inline-start', 'scroll-padding-left', 'scroll-padding-right', 'scroll-padding-top', 'scroll-snap-align', 'scroll-snap-stop', 'scroll-snap-type', 'scrollbar-color', 'scrollbar-gutter', 'scrollbar-width', 'shape-image-threshold', 'shape-margin', 'shape-outside', 'speak', 'speak-as', 'src',\n// @font-face\n'tab-size', 'table-layout', 'text-align', 'text-align-all', 'text-align-last', 'text-combine-upright', 'text-decoration', 'text-decoration-color', 'text-decoration-line', 'text-decoration-style', 'text-emphasis', 'text-emphasis-color', 'text-emphasis-position', 'text-emphasis-style', 'text-indent', 'text-justify', 'text-orientation', 'text-overflow', 'text-rendering', 'text-shadow', 'text-transform', 'text-underline-position', 'top', 'transform', 'transform-box', 'transform-origin', 'transform-style', 'transition', 'transition-delay', 'transition-duration', 'transition-property', 'transition-timing-function', 'unicode-bidi', 'vertical-align', 'visibility', 'voice-balance', 'voice-duration', 'voice-family', 'voice-pitch', 'voice-range', 'voice-rate', 'voice-stress', 'voice-volume', 'white-space', 'widows', 'width', 'will-change', 'word-break', 'word-spacing', 'word-wrap', 'writing-mode', 'z-index'\n// reverse makes sure longer attributes `font-weight` are matched fully\n// instead of getting false positives on say `font`\n].reverse();\n\n/*\nLanguage: SCSS\nDescription: Scss is an extension of the syntax of CSS.\nAuthor: Kurt Emch <kurt@kurtemch.com>\nWebsite: https://sass-lang.com\nCategory: common, css, web\n*/\n\n/** @type LanguageFn */\nfunction scss(hljs) {\n var modes = MODES(hljs);\n var PSEUDO_ELEMENTS$1 = PSEUDO_ELEMENTS;\n var PSEUDO_CLASSES$1 = PSEUDO_CLASSES;\n var AT_IDENTIFIER = '@[a-z-]+'; // @font-face\n var AT_MODIFIERS = \"and or not only\";\n var IDENT_RE = '[a-zA-Z-][a-zA-Z0-9_-]*';\n var VARIABLE = {\n className: 'variable',\n begin: '(\\\\$' + IDENT_RE + ')\\\\b',\n relevance: 0\n };\n return {\n name: 'SCSS',\n case_insensitive: true,\n illegal: '[=/|\\']',\n contains: [hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE,\n // to recognize keyframe 40% etc which are outside the scope of our\n // attribute value mode\n modes.CSS_NUMBER_MODE, {\n className: 'selector-id',\n begin: '#[A-Za-z0-9_-]+',\n relevance: 0\n }, {\n className: 'selector-class',\n begin: '\\\\.[A-Za-z0-9_-]+',\n relevance: 0\n }, modes.ATTRIBUTE_SELECTOR_MODE, {\n className: 'selector-tag',\n begin: '\\\\b(' + TAGS.join('|') + ')\\\\b',\n // was there, before, but why?\n relevance: 0\n }, {\n className: 'selector-pseudo',\n begin: ':(' + PSEUDO_CLASSES$1.join('|') + ')'\n }, {\n className: 'selector-pseudo',\n begin: ':(:)?(' + PSEUDO_ELEMENTS$1.join('|') + ')'\n }, VARIABLE, {\n // pseudo-selector params\n begin: /\\(/,\n end: /\\)/,\n contains: [modes.CSS_NUMBER_MODE]\n }, modes.CSS_VARIABLE, {\n className: 'attribute',\n begin: '\\\\b(' + ATTRIBUTES.join('|') + ')\\\\b'\n }, {\n begin: '\\\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\\\b'\n }, {\n begin: /:/,\n end: /[;}{]/,\n relevance: 0,\n contains: [modes.BLOCK_COMMENT, VARIABLE, modes.HEXCOLOR, modes.CSS_NUMBER_MODE, hljs.QUOTE_STRING_MODE, hljs.APOS_STRING_MODE, modes.IMPORTANT, modes.FUNCTION_DISPATCH]\n },\n // matching these here allows us to treat them more like regular CSS\n // rules so everything between the {} gets regular rule highlighting,\n // which is what we want for page and font-face\n {\n begin: '@(page|font-face)',\n keywords: {\n $pattern: AT_IDENTIFIER,\n keyword: '@page @font-face'\n }\n }, {\n begin: '@',\n end: '[{;]',\n returnBegin: true,\n keywords: {\n $pattern: /[a-z-]+/,\n keyword: AT_MODIFIERS,\n attribute: MEDIA_FEATURES.join(\" \")\n },\n contains: [{\n begin: AT_IDENTIFIER,\n className: \"keyword\"\n }, {\n begin: /[a-z-]+(?=:)/,\n className: \"attribute\"\n }, VARIABLE, hljs.QUOTE_STRING_MODE, hljs.APOS_STRING_MODE, modes.HEXCOLOR, modes.CSS_NUMBER_MODE]\n }, modes.FUNCTION_DISPATCH]\n };\n}\nmodule.exports = scss;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvc2Nzcy5qcyJdLCJuYW1lcyI6WyJNT0RFUyIsImhsanMiLCJJTVBPUlRBTlQiLCJzY29wZSIsImJlZ2luIiwiQkxPQ0tfQ09NTUVOVCIsIkNfQkxPQ0tfQ09NTUVOVF9NT0RFIiwiSEVYQ09MT1IiLCJGVU5DVElPTl9ESVNQQVRDSCIsImNsYXNzTmFtZSIsIkFUVFJJQlVURV9TRUxFQ1RPUl9NT0RFIiwiZW5kIiwiaWxsZWdhbCIsImNvbnRhaW5zIiwiQVBPU19TVFJJTkdfTU9ERSIsIlFVT1RFX1NUUklOR19NT0RFIiwiQ1NTX05VTUJFUl9NT0RFIiwiTlVNQkVSX1JFIiwicmVsZXZhbmNlIiwiQ1NTX1ZBUklBQkxFIiwiVEFHUyIsIk1FRElBX0ZFQVRVUkVTIiwiUFNFVURPX0NMQVNTRVMiLCJQU0VVRE9fRUxFTUVOVFMiLCJBVFRSSUJVVEVTIiwicmV2ZXJzZSIsInNjc3MiLCJtb2RlcyIsIlBTRVVET19FTEVNRU5UUyQxIiwiUFNFVURPX0NMQVNTRVMkMSIsIkFUX0lERU5USUZJRVIiLCJBVF9NT0RJRklFUlMiLCJJREVOVF9SRSIsIlZBUklBQkxFIiwibmFtZSIsImNhc2VfaW5zZW5zaXRpdmUiLCJDX0xJTkVfQ09NTUVOVF9NT0RFIiwiam9pbiIsImtleXdvcmRzIiwiJHBhdHRlcm4iLCJrZXl3b3JkIiwicmV0dXJuQmVnaW4iLCJhdHRyaWJ1dGUiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxJQUFNQSxLQUFLLEdBQUcsU0FBUkEsS0FBSyxDQUFJQyxJQUFJLEVBQUs7RUFDdEIsT0FBTztJQUNMQyxTQUFTLEVBQUU7TUFDVEMsS0FBSyxFQUFFLE1BQU07TUFDYkMsS0FBSyxFQUFFO0lBQ1QsQ0FBQztJQUNEQyxhQUFhLEVBQUVKLElBQUksQ0FBQ0ssb0JBQW9CO0lBQ3hDQyxRQUFRLEVBQUU7TUFDUkosS0FBSyxFQUFFLFFBQVE7TUFDZkMsS0FB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LEdBQUdsQixJQUFJIiwiZmlsZSI6IjgzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgTU9ERVMgPSAoaGxqcykgPT4ge1xuICByZXR1cm4ge1xuICAgIElNUE9SVEFOVDoge1xuICAgICAgc2NvcGU6ICdtZXRhJyxcbiAgICAgIGJlZ2luOiAnIWltcG9ydGFudCdcbiAgICB9LFxuICAgIEJMT0NLX0NPTU1FTlQ6IGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgSEVYQ09MT1I6IHtcbiAgICAgIHNjb3BlOiAnbnVtYmVyJyxcbiAgICAgIGJlZ2luOiAvIygoWzAtOWEtZkEtRl17Myw0fSl8KChbMC05YS1mQS1GXXsyfSl7Myw0fSkpXFxiL1xuICAgIH0sXG4gICAgRlVOQ1RJT05fRElTUEFUQ0g6IHtcbiAgICAgIGNsYXNzTmFtZTogXCJidWlsdF9pblwiLFxuICAgICAgYmVnaW46IC9bXFx3LV0rKD89XFwoKS9cbiAgICB9LFxuICAgIEFUVFJJQlVURV9TRUxFQ1RPUl9NT0RFOiB7XG4gICAgICBzY29wZTogJ3NlbGVjdG9yLWF0dHInLFxuICAgICAgYmVnaW46IC9cXFsvLFxuICAgICAgZW5kOiAvXFxdLyxcbiAgICAgIGlsbGVnYWw6ICckJyxcbiAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERVxuICAgICAgXVxuICAgIH0sXG4gICAgQ1NTX05VTUJFUl9NT0RFOiB7XG4gICAgICBzY29wZTogJ251bWJlcicsXG4gICAgICBiZWdpbjogaGxqcy5OVU1CRVJfUkUgKyAnKCcgK1xuICAgICAgICAnJXxlbXxleHxjaHxyZW0nICtcbiAgICAgICAgJ3x2d3x2aHx2bWlufHZtYXgnICtcbiAgICAgICAgJ3xjbXxtbXxpbnxwdHxwY3xweCcgK1xuICAgICAgICAnfGRlZ3xncmFkfHJhZHx0dXJuJyArXG4gICAgICAgICd8c3xtcycgK1xuICAgICAgICAnfEh6fGtIeicgK1xuICAgICAgICAnfGRwaXxkcGNtfGRwcHgnICtcbiAgICAgICAgJyk/JyxcbiAgICAgIHJlbGV2YW5jZTogMFxuICAgIH0sXG4gICAgQ1NTX1ZBUklBQkxFOiB7XG4gICAgICBjbGFzc05hbWU6IFwiYXR0clwiLFxuICAgICAgYmVnaW46IC8tLVtBLVphLXpdW0EtWmEtejAtOV8tXSovXG4gICAgfVxuICB9O1xufTtcblxuY29uc3QgVEFHUyA9IFtcbiAgJ2EnLFxuICAnYWJicicsXG4gICdhZGRyZXNzJyxcbiAgJ2FydGljbGUnLFxuICAnYXNpZGUnLFxuICAnYXVkaW8nLFxuICAnYicsXG4gICdibG9ja3F1b3RlJyxcbiAgJ2JvZHknLFxuICAnYnV0dG9uJyxcbiAgJ2NhbnZhcycsXG4gICdjYXB0aW9uJyxcbiAgJ2NpdGUnLFxuICAnY29kZScsXG4gICdkZCcsXG4gICdkZWwnLFxuICAnZGV0YWlscycsXG4gICdkZm4nLFxuICAnZGl2JyxcbiAgJ2RsJyxcbiAgJ2R0JyxcbiAgJ2VtJyxcbiAgJ2ZpZWxkc2V0JyxcbiAgJ2ZpZ2NhcHRpb24nLFxuICAnZmlndXJlJyxcbiAgJ2Zvb3RlcicsXG4gICdmb3JtJyxcbiAgJ2gxJyxcbiAgJ2gyJyxcbiAgJ2gzJyxcbiAgJ2g0JyxcbiAgJ2g1JyxcbiAgJ2g2JyxcbiAgJ2hlYWRlcicsXG4gICdoZ3JvdXAnLFxuICAnaHRtbCcsXG4gICdpJyxcbiAgJ2lmcmFtZScsXG4gICdpbWcnLFxuICAnaW5wdXQnLFxuICAnaW5zJyxcbiAgJ2tiZCcsXG4gICdsYWJlbCcsXG4gICdsZWdlbmQnLFxuICAnbGknLFxuICAnbWFpbicsXG4gICdtYXJrJyxcbiAgJ21lbnUnLFxuICAnbmF2JyxcbiAgJ29iamVjdCcsXG4gICdvbCcsXG4gICdwJyxcbiAgJ3EnLFxuICAncXVvdGUnLFxuICAnc2FtcCcsXG4gICdzZWN0aW9uJyxcbiAgJ3NwYW4nLFxuICAnc3Ryb25nJyxcbiAgJ3N1bW1hcnknLFxuICAnc3VwJyxcbiAgJ3RhYmxlJyxcbiAgJ3Rib2R5JyxcbiAgJ3RkJyxcbiAgJ3RleHRhcmVhJyxcbiAgJ3Rmb290JyxcbiAgJ3RoJyxcbiAgJ3RoZWFkJyxcbiAgJ3RpbWUnLFxuICAndHInLFxuICAndWwnLFxuICAndmFyJyxcbiAgJ3ZpZGVvJ1xuXTtcblxuY29uc3QgTUVESUFfRkVBVFVSRVMgPSBbXG4gICdhbnktaG92ZXInLFxuICAnYW55LXBvaW50ZXInLFxuICAnYXNwZWN0LXJhdGlvJyxcbiAgJ2NvbG9yJyxcbiAgJ2NvbG9yLWdhbXV0JyxcbiAgJ2NvbG9yLWluZGV4JyxcbiAgJ2RldmljZS1hc3BlY3QtcmF0aW8nLFxuICAnZGV2aWNlLWhlaWdodCcsXG4gICdkZXZpY2Utd2lkdGgnLFxuICAnZGlzcGxheS1tb2RlJyxcbiAgJ2ZvcmNlZC1jb2xvcnMnLFxuICAnZ3JpZCcsXG4gICdoZWlnaHQnLFxuICAnaG92ZXInLFxuICAnaW52ZXJ0ZWQtY29sb3JzJyxcbiAgJ21vbm9jaHJvbWUnLFxuICAnb3JpZW50YXRpb24nLFxuICAnb3ZlcmZsb3ctYmxvY2snLFxuICAnb3ZlcmZsb3ctaW5saW5lJyxcbiAgJ3BvaW50ZXInLFxuICAncHJlZmVycy1jb2xvci1zY2hlbWUnLFxuICAncHJlZmVycy1jb250cmFzdCcsXG4gICdwcmVmZXJzLXJlZHVjZWQtbW90aW9uJyxcbiAgJ3ByZWZlcnMtcmVkdWNlZC10cmFuc3BhcmVuY3knLFxuICAncmVzb2x1dGlvbicsXG4gICdzY2FuJyxcbiAgJ3NjcmlwdGluZycsXG4gICd1cGRhdGUnLFxuICAnd2lkdGgnLFxuICAvLyBUT0RPOiBmaW5kIGEgYmV0dGVyIHNvbHV0aW9uP1xuICAnbWluLXdpZHRoJyxcbiAgJ21heC13aWR0aCcsXG4gICdtaW4taGVpZ2h0JyxcbiAgJ21heC1oZWlnaHQnXG5dO1xuXG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvUHNldWRvLWNsYXNzZXNcbmNvbnN0IFBTRVVET19DTEFTU0VTID0gW1xuICAnYWN0aXZlJyxcbiAgJ2FueS1saW5rJyxcbiAgJ2JsYW5rJyxcbiAgJ2NoZWNrZWQnLFxuICAnY3VycmVudCcsXG4gICdkZWZhdWx0JyxcbiAgJ2RlZmluZWQnLFxuICAnZGlyJywgLy8gZGlyKClcbiAgJ2Rpc2FibGVkJyxcbiAgJ2Ryb3AnLFxuICAnZW1wdHknLFxuICAnZW5hYmxlZCcsXG4gICdmaXJzdCcsXG4gICdmaXJzdC1jaGlsZCcsXG4gICdmaXJzdC1vZi10eXBlJyxcbiAgJ2Z1bGxzY3JlZW4nLFxuICAnZnV0dXJlJyxcbiAgJ2ZvY3VzJyxcbiAgJ2ZvY3VzLXZpc2libGUnLFxuICAnZm9jdXMtd2l0aGluJyxcbiAgJ2hhcycsIC8vIGhhcygpXG4gICdob3N0JywgLy8gaG9zdCBvciBob3N0KClcbiAgJ2hvc3QtY29udGV4dCcsIC8vIGhvc3QtY29udGV4dCgpXG4gICdob3ZlcicsXG4gICdpbmRldGVybWluYXRlJyxcbiAgJ2luLXJhbmdlJyxcbiAgJ2ludmFsaWQnLFxuICAnaXMnLCAvLyBpcygpXG4gICdsYW5nJywgLy8gbGFuZygpXG4gICdsYXN0LWNoaWxkJyxcbiAgJ2xhc3Qtb2YtdHlwZScsXG4gICdsZWZ0JyxcbiAgJ2xpbmsnLFxuICAnbG9jYWwtbGluaycsXG4gICdub3QnLCAvLyBub3QoKVxuICAnbnRoLWNoaWxkJywgLy8gbnRoLWNoaWxkKClcbiAgJ250aC1jb2wnLCAvLyBudGgtY29sKClcbiAgJ250aC1sYXN0LWNoaWxkJywgLy8gbnRoLWxhc3QtY2hpbGQoKVxuICAnbnRoLWxhc3QtY29sJywgLy8gbnRoLWxhc3QtY29sKClcbiAgJ250aC1sYXN0LW9mLXR5cGUnLCAvL250aC1sYXN0LW9mLXR5cGUoKVxuICAnbnRoLW9mLXR5cGUnLCAvL250aC1vZi10eXBlKClcbiAgJ29ubHktY2hpbGQnLFxuICAnb25seS1vZi10eXBlJyxcbiAgJ29wdGlvbmFsJyxcbiAgJ291dC1vZi1yYW5nZScsXG4gICdwYXN0JyxcbiAgJ3BsYWNlaG9sZGVyLXNob3duJyxcbiAgJ3JlYWQtb25seScsXG4gICdyZWFkLXdyaXRlJyxcbiAgJ3JlcXVpcmVkJyxcbiAgJ3JpZ2h0JyxcbiAgJ3Jvb3QnLFxuICAnc2NvcGUnLFxuICAndGFyZ2V0JyxcbiAgJ3RhcmdldC13aXRoaW4nLFxuICAndXNlci1pbnZhbGlkJyxcbiAgJ3ZhbGlkJyxcbiAgJ3Zpc2l0ZWQnLFxuICAnd2hlcmUnIC8vIHdoZXJlKClcbl07XG5cbi8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9Qc2V1ZG8tZWxlbWVudHNcbmNvbnN0IFBTRVVET19FTEVNRU5UUyA9IFtcbiAgJ2FmdGVyJyxcbiAgJ2JhY2tkcm9wJyxcbiAgJ2JlZm9yZScsXG4gICdjdWUnLFxuICAnY3VlLXJlZ2lvbicsXG4gICdmaXJzdC1sZXR0ZXInLFxuICAnZmlyc3QtbGluZScsXG4gICdncmFtbWFyLWVycm9yJyxcbiAgJ21hcmtlcicsXG4gICdwYXJ0JyxcbiAgJ3BsYWNlaG9sZGVyJyxcbiAgJ3NlbGVjdGlvbicsXG4gICdzbG90dGVkJyxcbiAgJ3NwZWxsaW5nLWVycm9yJ1xuXTtcblxuY29uc3QgQVRUUklCVVRFUyA9IFtcbiAgJ2FsaWduLWNvbnRlbnQnLFxuICAnYWxpZ24taXRlbXMnLFxuICAnYWxpZ24tc2VsZicsXG4gICdhbGwnLFxuICAnYW5pbWF0aW9uJyxcbiAgJ2FuaW1hdGlvbi1kZWxheScsXG4gICdhbmltYXRpb24tZGlyZWN0aW9uJyxcbiAgJ2FuaW1hdGlvbi1kdXJhdGlvbicsXG4gICdhbmltYXRpb24tZmlsbC1tb2RlJyxcbiAgJ2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQnLFxuICAnYW5pbWF0aW9uLW5hbWUnLFxuICAnYW5pbWF0aW9uLXBsYXktc3RhdGUnLFxuICAnYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbicsXG4gICdiYWNrZmFjZS12aXNpYmlsaXR5JyxcbiAgJ2JhY2tncm91bmQnLFxuICAnYmFja2dyb3VuZC1hdHRhY2htZW50JyxcbiAgJ2JhY2tncm91bmQtYmxlbmQtbW9kZScsXG4gICdiYWNrZ3JvdW5kLWNsaXAnLFxuICAnYmFja2dyb3VuZC1jb2xvcicsXG4gICdiYWNrZ3JvdW5kLWltYWdlJyxcbiAgJ2JhY2tncm91bmQtb3JpZ2luJyxcbiAgJ2JhY2tncm91bmQtcG9zaXRpb24nLFxuICAnYmFja2dyb3VuZC1yZXBlYXQnLFxuICAnYmFja2dyb3VuZC1zaXplJyxcbiAgJ2Jsb2NrLXNpemUnLFxuICAnYm9yZGVyJyxcbiAgJ2JvcmRlci1ibG9jaycsXG4gICdib3JkZXItYmxvY2stY29sb3InLFxuICAnYm9yZGVyLWJsb2NrLWVuZCcsXG4gICdib3JkZXItYmxvY2stZW5kLWNvbG9yJyxcbiAgJ2JvcmRlci1ibG9jay1lbmQtc3R5bGUnLFxuICAnYm9yZGVyLWJsb2NrLWVuZC13aWR0aCcsXG4gICdib3JkZXItYmxvY2stc3RhcnQnLFxuICAnYm9yZGVyLWJsb2NrLXN0YXJ0LWNvbG9yJyxcbiAgJ2JvcmRlci1ibG9jay1zdGFydC1zdHlsZScsXG4gICdib3JkZXItYmxvY2stc3RhcnQtd2lkdGgnLFxuICAnYm9yZGVyLWJsb2NrLXN0eWxlJyxcbiAgJ2JvcmRlci1ibG9jay13aWR0aCcsXG4gICdib3JkZXItYm90dG9tJyxcbiAgJ2JvcmRlci1ib3R0b20tY29sb3InLFxuICAnYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cycsXG4gICdib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cycsXG4gICdib3JkZXItYm90dG9tLXN0eWxlJyxcbiAgJ2JvcmRlci1ib3R0b20td2lkdGgnLFxuICAnYm9yZGVyLWNvbGxhcHNlJyxcbiAgJ2JvcmRlci1jb2xvcicsXG4gICdib3JkZXItaW1hZ2UnLFxuICAnYm9yZGVyLWltYWdlLW91dHNldCcsXG4gICdib3JkZXItaW1hZ2UtcmVwZWF0JyxcbiAgJ2JvcmRlci1pbWFnZS1zbGljZScsXG4gICdib3JkZXItaW1hZ2Utc291cmNlJyxcbiAgJ2JvcmRlci1pbWFnZS13aWR0aCcsXG4gICdib3JkZXItaW5saW5lJyxcbiAgJ2JvcmRlci1pbmxpbmUtY29sb3InLFxuICAnYm9yZGVyLWlubGluZS1lbmQnLFxuICAnYm9yZGVyLWlubGluZS1lbmQtY29sb3InLFxuICAnYm9yZGVyLWlubGluZS1lbmQtc3R5bGUnLFxuICAnYm9yZGVyLWlubGluZS1lbmQtd2lkdGgnLFxuICAnYm9yZGVyLWlubGluZS1zdGFydCcsXG4gICdib3JkZXItaW5saW5lLXN0YXJ0LWNvbG9yJyxcbiAgJ2JvcmRlci1pbmxpbmUtc3RhcnQtc3R5bGUnLFxuICAnYm9yZGVyLWlubGluZS1zdGFydC13aWR0aCcsXG4gICdib3JkZXItaW5saW5lLXN0eWxlJyxcbiAgJ2JvcmRlci1pbmxpbmUtd2lkdGgnLFxuICAnYm9yZGVyLWxlZnQnLFxuICAnYm9yZGVyLWxlZnQtY29sb3InLFxuICAnYm9yZGVyLWxlZnQtc3R5bGUnLFxuICAnYm9yZGVyLWxlZnQtd2lkdGgnLFxuICAnYm9yZGVyLXJhZGl1cycsXG4gICdib3JkZXItcmlnaHQnLFxuICAnYm9yZGVyLXJpZ2h0LWNvbG9yJyxcbiAgJ2JvcmRlci1yaWdodC1zdHlsZScsXG4gICdib3JkZXItcmlnaHQtd2lkdGgnLFxuICAnYm9yZGVyLXNwYWNpbmcnLFxuICAnYm9yZGVyLXN0eWxlJyxcbiAgJ2JvcmRlci10b3AnLFxuICAnYm9yZGVyLXRvcC1jb2xvcicsXG4gICdib3JkZXItdG9wLWxlZnQtcmFkaXVzJyxcbiAgJ2JvcmRlci10b3AtcmlnaHQtcmFkaXVzJyxcbiAgJ2JvcmRlci10b3Atc3R5bGUnLFxuICAnYm9yZGVyLXRvcC13aWR0aCcsXG4gICdib3JkZXItd2lkdGgnLFxuICAnYm90dG9tJyxcbiAgJ2JveC1kZWNvcmF0aW9uLWJyZWFrJyxcbiAgJ2JveC1zaGFkb3cnLFxuICAnYm94LXNpemluZycsXG4gICdicmVhay1hZnRlcicsXG4gICdicmVhay1iZWZvcmUnLFxuICAnYnJlYWstaW5zaWRlJyxcbiAgJ2NhcHRpb24tc2lkZScsXG4gICdjYXJldC1jb2xvcicsXG4gICdjbGVhcicsXG4gICdjbGlwJyxcbiAgJ2NsaXAtcGF0aCcsXG4gICdjbGlwLXJ1bGUnLFxuICAnY29sb3InLFxuICAnY29sdW1uLWNvdW50JyxcbiAgJ2NvbHVtbi1maWxsJyxcbiAgJ2NvbHVtbi1nYXAnLFxuICAnY29sdW1uLXJ1bGUnLFxuICAnY29sdW1uLXJ1bGUtY29sb3InLFxuICAnY29sdW1uLXJ1bGUtc3R5bGUnLFxuICAnY29sdW1uLXJ1bGUtd2lkdGgnLFxuICAnY29sdW1uLXNwYW4nLFxuICAnY29sdW1uLXdpZHRoJyxcbiAgJ2NvbHVtbnMnLFxuICAnY29udGFpbicsXG4gICdjb250ZW50JyxcbiAgJ2NvbnRlbnQtdmlzaWJpbGl0eScsXG4gICdjb3VudGVyLWluY3JlbWVudCcsXG4gICdjb3VudGVyLXJlc2V0JyxcbiAgJ2N1ZScsXG4gICdjdWUtYWZ0ZXInLFxuICAnY3VlLWJlZm9yZScsXG4gICdjdXJzb3InLFxuICAnZGlyZWN0aW9uJyxcbiAgJ2Rpc3BsYXknLFxuICAnZW1wdHktY2VsbHMnLFxuICAnZmlsdGVyJyxcbiAgJ2ZsZXgnLFxuICAnZmxleC1iYXNpcycsXG4gICdmbGV4LWRpcmVjdGlvbicsXG4gICdmbGV4LWZsb3cnLFxuICAnZmxleC1ncm93JyxcbiAgJ2ZsZXgtc2hyaW5rJyxcbiAgJ2ZsZXgtd3JhcCcsXG4gICdmbG9hdCcsXG4gICdmbG93JyxcbiAgJ2ZvbnQnLFxuICAnZm9udC1kaXNwbGF5JyxcbiAgJ2ZvbnQtZmFtaWx5JyxcbiAgJ2ZvbnQtZmVhdHVyZS1zZXR0aW5ncycsXG4gICdmb250LWtlcm5pbmcnLFxuICAnZm9udC1sYW5ndWFnZS1vdmVycmlkZScsXG4gICdmb250LXNpemUnLFxuICAnZm9udC1zaXplLWFkanVzdCcsXG4gICdmb250LXNtb290aGluZycsXG4gICdmb250LXN0cmV0Y2gnLFxuICAnZm9udC1zdHlsZScsXG4gICdmb250LXN5bnRoZXNpcycsXG4gICdmb250LXZhcmlhbnQnLFxuICAnZm9udC12YXJpYW50LWNhcHMnLFxuICAnZm9udC12YXJpYW50LWVhc3QtYXNpYW4nLFxuICAnZm9udC12YXJpYW50LWxpZ2F0dXJlcycsXG4gICdmb250LXZhcmlhbnQtbnVtZXJpYycsXG4gICdmb250LXZhcmlhbnQtcG9zaXRpb24nLFxuICAnZm9udC12YXJpYXRpb24tc2V0dGluZ3MnLFxuICAnZm9udC13ZWlnaHQnLFxuICAnZ2FwJyxcbiAgJ2dseXBoLW9yaWVudGF0aW9uLXZlcnRpY2FsJyxcbiAgJ2dyaWQnLFxuICAnZ3JpZC1hcmVhJyxcbiAgJ2dyaWQtYXV0by1jb2x1bW5zJyxcbiAgJ2dyaWQtYXV0by1mbG93JyxcbiAgJ2dyaWQtYXV0by1yb3dzJyxcbiAgJ2dyaWQtY29sdW1uJyxcbiAgJ2dyaWQtY29sdW1uLWVuZCcsXG4gICdncmlkLWNvbHVtbi1zdGFydCcsXG4gICdncmlkLWdhcCcsXG4gICdncmlkLXJvdycsXG4gICdncmlkLXJvdy1lbmQnLFxuICAnZ3JpZC1yb3ctc3RhcnQnLFxuICAnZ3JpZC10ZW1wbGF0ZScsXG4gICdncmlkLXRlbXBsYXRlLWFyZWFzJyxcbiAgJ2dyaWQtdGVtcGxhdGUtY29sdW1ucycsXG4gICdncmlkLXRlbXBsYXRlLXJvd3MnLFxuICAnaGFuZ2luZy1wdW5jdHVhdGlvbicsXG4gICdoZWlnaHQnLFxuICAnaHlwaGVucycsXG4gICdpY29uJyxcbiAgJ2ltYWdlLW9yaWVudGF0aW9uJyxcbiAgJ2ltYWdlLXJlbmRlcmluZycsXG4gICdpbWFnZS1yZXNvbHV0aW9uJyxcbiAgJ2ltZS1tb2RlJyxcbiAgJ2lubGluZS1zaXplJyxcbiAgJ2lzb2xhdGlvbicsXG4gICdqdXN0aWZ5LWNvbnRlbnQnLFxuICAnbGVmdCcsXG4gICdsZXR0ZXItc3BhY2luZycsXG4gICdsaW5lLWJyZWFrJyxcbiAgJ2xpbmUtaGVpZ2h0JyxcbiAgJ2xpc3Qtc3R5bGUnLFxuICAnbGlzdC1zdHlsZS1pbWFnZScsXG4gICdsaXN0LXN0eWxlLXBvc2l0aW9uJyxcbiAgJ2xpc3Qtc3R5bGUtdHlwZScsXG4gICdtYXJnaW4nLFxuICAnbWFyZ2luLWJsb2NrJyxcbiAgJ21hcmdpbi1ibG9jay1lbmQnLFxuICAnbWFyZ2luLWJsb2NrLXN0YXJ0JyxcbiAgJ21hcmdpbi1ib3R0b20nLFxuICAnbWFyZ2luLWlubGluZScsXG4gICdtYXJnaW4taW5saW5lLWVuZCcsXG4gICdtYXJnaW4taW5saW5lLXN0YXJ0JyxcbiAgJ21hcmdpbi1sZWZ0JyxcbiAgJ21hcmdpbi1yaWdodCcsXG4gICdtYXJnaW4tdG9wJyxcbiAgJ21hcmtzJyxcbiAgJ21hc2snLFxuICAnbWFzay1ib3JkZXInLFxuICAnbWFzay1ib3JkZXItbW9kZScsXG4gICdtYXNrLWJvcmRlci1vdXRzZXQnLFxuICAnbWFzay1ib3JkZXItcmVwZWF0JyxcbiAgJ21hc2stYm9yZGVyLXNsaWNlJyxcbiAgJ21hc2stYm9yZGVyLXNvdXJjZScsXG4gICdtYXNrLWJvcmRlci13aWR0aCcsXG4gICdtYXNrLWNsaXAnLFxuICAnbWFzay1jb21wb3NpdGUnLFxuICAnbWFzay1pbWFnZScsXG4gICdtYXNrLW1vZGUnLFxuICAnbWFzay1vcmlnaW4nLFxuICAnbWFzay1wb3NpdGlvbicsXG4gICdtYXNrLXJlcGVhdCcsXG4gICdtYXNrLXNpemUnLFxuICAnbWFzay10eXBlJyxcbiAgJ21heC1ibG9jay1zaXplJyxcbiAgJ21heC1oZWlnaHQnLFxuICAnbWF4LWlubGluZS1zaXplJyxcbiAgJ21heC13aWR0aCcsXG4gICdtaW4tYmxvY2stc2l6ZScsXG4gICdtaW4taGVpZ2h0JyxcbiAgJ21pbi1pbmxpbmUtc2l6ZScsXG4gICdtaW4td2lkdGgnLFxuICAnbWl4LWJsZW5kLW1vZGUnLFxuICAnbmF2LWRvd24nLFxuICAnbmF2LWluZGV4JyxcbiAgJ25hdi1sZWZ0JyxcbiAgJ25hdi1yaWdodCcsXG4gICduYXYtdXAnLFxuICAnbm9uZScsXG4gICdub3JtYWwnLFxuICAnb2JqZWN0LWZpdCcsXG4gICdvYmplY3QtcG9zaXRpb24nLFxuICAnb3BhY2l0eScsXG4gICdvcmRlcicsXG4gICdvcnBoYW5zJyxcbiAgJ291dGxpbmUnLFxuICAnb3V0bGluZS1jb2xvcicsXG4gICdvdXRsaW5lLW9mZnNldCcsXG4gICdvdXRsaW5lLXN0eWxlJyxcbiAgJ291dGxpbmUtd2lkdGgnLFxuICAnb3ZlcmZsb3cnLFxuICAnb3ZlcmZsb3ctd3JhcCcsXG4gICdvdmVyZmxvdy14JyxcbiAgJ292ZXJmbG93LXknLFxuICAncGFkZGluZycsXG4gICdwYWRkaW5nLWJsb2NrJyxcbiAgJ3BhZGRpbmctYmxvY2stZW5kJyxcbiAgJ3BhZGRpbmctYmxvY2stc3RhcnQnLFxuICAncGFkZGluZy1ib3R0b20nLFxuICAncGFkZGluZy1pbmxpbmUnLFxuICAncGFkZGluZy1pbmxpbmUtZW5kJyxcbiAgJ3BhZGRpbmctaW5saW5lLXN0YXJ0JyxcbiAgJ3BhZGRpbmctbGVmdCcsXG4gICdwYWRkaW5nLXJpZ2h0JyxcbiAgJ3BhZGRpbmctdG9wJyxcbiAgJ3BhZ2UtYnJlYWstYWZ0ZXInLFxuICAncGFnZS1icmVhay1iZWZvcmUnLFxuICAncGFnZS1icmVhay1pbnNpZGUnLFxuICAncGF1c2UnLFxuICAncGF1c2UtYWZ0ZXInLFxuICAncGF1c2UtYmVmb3JlJyxcbiAgJ3BlcnNwZWN0aXZlJyxcbiAgJ3BlcnNwZWN0aXZlLW9yaWdpbicsXG4gICdwb2ludGVyLWV2ZW50cycsXG4gICdwb3NpdGlvbicsXG4gICdxdW90ZXMnLFxuICAncmVzaXplJyxcbiAgJ3Jlc3QnLFxuICAncmVzdC1hZnRlcicsXG4gICdyZXN0LWJlZm9yZScsXG4gICdyaWdodCcsXG4gICdyb3ctZ2FwJyxcbiAgJ3Njcm9sbC1tYXJnaW4nLFxuICAnc2Nyb2xsLW1hcmdpbi1ibG9jaycsXG4gICdzY3JvbGwtbWFyZ2luLWJsb2NrLWVuZCcsXG4gICdzY3JvbGwtbWFyZ2luLWJsb2NrLXN0YXJ0JyxcbiAgJ3Njcm9sbC1tYXJnaW4tYm90dG9tJyxcbiAgJ3Njcm9sbC1tYXJnaW4taW5saW5lJyxcbiAgJ3Njcm9sbC1tYXJnaW4taW5saW5lLWVuZCcsXG4gICdzY3JvbGwtbWFyZ2luLWlubGluZS1zdGFydCcsXG4gICdzY3JvbGwtbWFyZ2luLWxlZnQnLFxuICAnc2Nyb2xsLW1hcmdpbi1yaWdodCcsXG4gICdzY3JvbGwtbWFyZ2luLXRvcCcsXG4gICdzY3JvbGwtcGFkZGluZycsXG4gICdzY3JvbGwtcGFkZGluZy1ibG9jaycsXG4gICdzY3JvbGwtcGFkZGluZy1ibG9jay1lbmQnLFxuICAnc2Nyb2xsLXBhZGRpbmctYmxvY2stc3RhcnQnLFxuICAnc2Nyb2xsLXBhZGRpbmctYm90dG9tJyxcbiAgJ3Njcm9sbC1wYWRkaW5nLWlubGluZScsXG4gICdzY3JvbGwtcGFkZGluZy1pbmxpbmUtZW5kJyxcbiAgJ3Njcm9sbC1wYWRkaW5nLWlubGluZS1zdGFydCcsXG4gICdzY3JvbGwtcGFkZGluZy1sZWZ0JyxcbiAgJ3Njcm9sbC1wYWRkaW5nLXJpZ2h0JyxcbiAgJ3Njcm9sbC1wYWRkaW5nLXRvcCcsXG4gICdzY3JvbGwtc25hcC1hbGlnbicsXG4gICdzY3JvbGwtc25hcC1zdG9wJyxcbiAgJ3Njcm9sbC1zbmFwLXR5cGUnLFxuICAnc2Nyb2xsYmFyLWNvbG9yJyxcbiAgJ3Njcm9sbGJhci1ndXR0ZXInLFxuICAnc2Nyb2xsYmFyLXdpZHRoJyxcbiAgJ3NoYXBlLWltYWdlLXRocmVzaG9sZCcsXG4gICdzaGFwZS1tYXJnaW4nLFxuICAnc2hhcGUtb3V0c2lkZScsXG4gICdzcGVhaycsXG4gICdzcGVhay1hcycsXG4gICdzcmMnLCAvLyBAZm9udC1mYWNlXG4gICd0YWItc2l6ZScsXG4gICd0YWJsZS1sYXlvdXQnLFxuICAndGV4dC1hbGlnbicsXG4gICd0ZXh0LWFsaWduLWFsbCcsXG4gICd0ZXh0LWFsaWduLWxhc3QnLFxuICAndGV4dC1jb21iaW5lLXVwcmlnaHQnLFxuICAndGV4dC1kZWNvcmF0aW9uJyxcbiAgJ3RleHQtZGVjb3JhdGlvbi1jb2xvcicsXG4gICd0ZXh0LWRlY29yYXRpb24tbGluZScsXG4gICd0ZXh0LWRlY29yYXRpb24tc3R5bGUnLFxuICAndGV4dC1lbXBoYXNpcycsXG4gICd0ZXh0LWVtcGhhc2lzLWNvbG9yJyxcbiAgJ3RleHQtZW1waGFzaXMtcG9zaXRpb24nLFxuICAndGV4dC1lbXBoYXNpcy1zdHlsZScsXG4gICd0ZXh0LWluZGVudCcsXG4gICd0ZXh0LWp1c3RpZnknLFxuICAndGV4dC1vcmllbnRhdGlvbicsXG4gICd0ZXh0LW92ZXJmbG93JyxcbiAgJ3RleHQtcmVuZGVyaW5nJyxcbiAgJ3RleHQtc2hhZG93JyxcbiAgJ3RleHQtdHJhbnNmb3JtJyxcbiAgJ3RleHQtdW5kZXJsaW5lLXBvc2l0aW9uJyxcbiAgJ3RvcCcsXG4gICd0cmFuc2Zvcm0nLFxuICAndHJhbnNmb3JtLWJveCcsXG4gICd0cmFuc2Zvcm0tb3JpZ2luJyxcbiAgJ3RyYW5zZm9ybS1zdHlsZScsXG4gICd0cmFuc2l0aW9uJyxcbiAgJ3RyYW5zaXRpb24tZGVsYXknLFxuICAndHJhbnNpdGlvbi1kdXJhdGlvbicsXG4gICd0cmFuc2l0aW9uLXByb3BlcnR5JyxcbiAgJ3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uJyxcbiAgJ3VuaWNvZGUtYmlkaScsXG4gICd2ZXJ0aWNhbC1hbGlnbicsXG4gICd2aXNpYmlsaXR5JyxcbiAgJ3ZvaWNlLWJhbGFuY2UnLFxuICAndm9pY2UtZHVyYXRpb24nLFxuICAndm9pY2UtZmFtaWx5JyxcbiAgJ3ZvaWNlLXBpdGNoJyxcbiAgJ3ZvaWNlLXJhbmdlJyxcbiAgJ3ZvaWNlLXJhdGUnLFxuICAndm9pY2Utc3RyZXNzJyxcbiAgJ3ZvaWNlLXZvbHVtZScsXG4gICd3aGl0ZS1zcGFjZScsXG4gICd3aWRvd3MnLFxuICAnd2lkdGgnLFxuICAnd2lsbC1jaGFuZ2UnLFxuICAnd29yZC1icmVhaycsXG4gICd3b3JkLXNwYWNpbmcnLFxuICAnd29yZC13cmFwJyxcbiAgJ3dyaXRpbmctbW9kZScsXG4gICd6LWluZGV4J1xuICAvLyByZXZlcnNlIG1ha2VzIHN1cmUgbG9uZ2VyIGF0dHJpYnV0ZXMgYGZvbnQtd2VpZ2h0YCBhcmUgbWF0Y2hlZCBmdWxseVxuICAvLyBpbnN0ZWFkIG9mIGdldHRpbmcgZmFsc2UgcG9zaXRpdmVzIG9uIHNheSBgZm9udGBcbl0ucmV2ZXJzZSgpO1xuXG4vKlxuTGFuZ3VhZ2U6IFNDU1NcbkRlc2NyaXB0aW9uOiBTY3NzIGlzIGFuIGV4dGVuc2lvbiBvZiB0aGUgc3ludGF4IG9mIENTUy5cbkF1dGhvcjogS3VydCBFbWNoIDxrdXJ0QGt1cnRlbWNoLmNvbT5cbldlYnNpdGU6IGh0dHBzOi8vc2Fzcy1sYW5nLmNvbVxuQ2F0ZWdvcnk6IGNvbW1vbiwgY3NzLCB3ZWJcbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBzY3NzKGhsanMpIHtcbiAgY29uc3QgbW9kZXMgPSBNT0RFUyhobGpzKTtcbiAgY29uc3QgUFNFVURPX0VMRU1FTlRTJDEgPSBQU0VVRE9fRUxFTUVOVFM7XG4gIGNvbnN0IFBTRVVET19DTEFTU0VTJDEgPSBQU0VVRE9fQ0xBU1NFUztcblxuICBjb25zdCBBVF9JREVOVElGSUVSID0gJ0BbYS16LV0rJzsgLy8gQGZvbnQtZmFjZVxuICBjb25zdCBBVF9NT0RJRklFUlMgPSBcImFuZCBvciBub3Qgb25seVwiO1xuICBjb25zdCBJREVOVF9SRSA9ICdbYS16QS1aLV1bYS16QS1aMC05Xy1dKic7XG4gIGNvbnN0IFZBUklBQkxFID0ge1xuICAgIGNsYXNzTmFtZTogJ3ZhcmlhYmxlJyxcbiAgICBiZWdpbjogJyhcXFxcJCcgKyBJREVOVF9SRSArICcpXFxcXGInLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1NDU1MnLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAgaWxsZWdhbDogJ1s9L3xcXCddJyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIC8vIHRvIHJlY29nbml6ZSBrZXlmcmFtZSA0MCUgZXRjIHdoaWNoIGFyZSBvdXRzaWRlIHRoZSBzY29wZSBvZiBvdXJcbiAgICAgIC8vIGF0dHJpYnV0ZSB2YWx1ZSBtb2RlXG4gICAgICBtb2Rlcy5DU1NfTlVNQkVSX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3NlbGVjdG9yLWlkJyxcbiAgICAgICAgYmVnaW46ICcjW0EtWmEtejAtOV8tXSsnLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3NlbGVjdG9yLWNsYXNzJyxcbiAgICAgICAgYmVnaW46ICdcXFxcLltBLVphLXowLTlfLV0rJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgbW9kZXMuQVRUUklCVVRFX1NFTEVDVE9SX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3NlbGVjdG9yLXRhZycsXG4gICAgICAgIGJlZ2luOiAnXFxcXGIoJyArIFRBR1Muam9pbignfCcpICsgJylcXFxcYicsXG4gICAgICAgIC8vIHdhcyB0aGVyZSwgYmVmb3JlLCBidXQgd2h5P1xuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3NlbGVjdG9yLXBzZXVkbycsXG4gICAgICAgIGJlZ2luOiAnOignICsgUFNFVURPX0NMQVNTRVMkMS5qb2luKCd8JykgKyAnKSdcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3NlbGVjdG9yLXBzZXVkbycsXG4gICAgICAgIGJlZ2luOiAnOig6KT8oJyArIFBTRVVET19FTEVNRU5UUyQxLmpvaW4oJ3wnKSArICcpJ1xuICAgICAgfSxcbiAgICAgIFZBUklBQkxFLFxuICAgICAgeyAvLyBwc2V1ZG8tc2VsZWN0b3IgcGFyYW1zXG4gICAgICAgIGJlZ2luOiAvXFwoLyxcbiAgICAgICAgZW5kOiAvXFwpLyxcbiAgICAgICAgY29udGFpbnM6IFsgbW9kZXMuQ1NTX05VTUJFUl9NT0RFIF1cbiAgICAgIH0sXG4gICAgICBtb2Rlcy5DU1NfVkFSSUFCTEUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2F0dHJpYnV0ZScsXG4gICAgICAgIGJlZ2luOiAnXFxcXGIoJyArIEFUVFJJQlVURVMuam9pbignfCcpICsgJylcXFxcYidcbiAgICAgIH0sXG4gICAgICB7IGJlZ2luOiAnXFxcXGIod2hpdGVzcGFjZXx3YWl0fHctcmVzaXplfHZpc2libGV8dmVydGljYWwtdGV4dHx2ZXJ0aWNhbC1pZGVvZ3JhcGhpY3x1cHBlcmNhc2V8dXBwZXItcm9tYW58dXBwZXItYWxwaGF8dW5kZXJsaW5lfHRyYW5zcGFyZW50fHRvcHx0aGlufHRoaWNrfHRleHR8dGV4dC10b3B8dGV4dC1ib3R0b218dGItcmx8dGFibGUtaGVhZGVyLWdyb3VwfHRhYmxlLWZvb3Rlci1ncm91cHxzdy1yZXNpemV8c3VwZXJ8c3RyaWN0fHN0YXRpY3xzcXVhcmV8c29saWR8c21hbGwtY2Fwc3xzZXBhcmF0ZXxzZS1yZXNpemV8c2Nyb2xsfHMtcmVzaXplfHJ0bHxyb3ctcmVzaXplfHJpZGdlfHJpZ2h0fHJlcGVhdHxyZXBlYXQteXxyZXBlYXQteHxyZWxhdGl2ZXxwcm9ncmVzc3xwb2ludGVyfG92ZXJsaW5lfG91dHNpZGV8b3V0c2V0fG9ibGlxdWV8bm93cmFwfG5vdC1hbGxvd2VkfG5vcm1hbHxub25lfG53LXJlc2l6ZXxuby1yZXBlYXR8bm8tZHJvcHxuZXdzcGFwZXJ8bmUtcmVzaXplfG4tcmVzaXplfG1vdmV8bWlkZGxlfG1lZGl1bXxsdHJ8bHItdGJ8bG93ZXJjYXNlfGxvd2VyLXJvbWFufGxvd2VyLWFscGhhfGxvb3NlfGxpc3QtaXRlbXxsaW5lfGxpbmUtdGhyb3VnaHxsaW5lLWVkZ2V8bGlnaHRlcnxsZWZ0fGtlZXAtYWxsfGp1c3RpZnl8aXRhbGljfGludGVyLXdvcmR8aW50ZXItaWRlb2dyYXBofGluc2lkZXxpbnNldHxpbmxpbmV8aW5saW5lLWJsb2NrfGluaGVyaXR8aW5hY3RpdmV8aWRlb2dyYXBoLXNwYWNlfGlkZW9ncmFwaC1wYXJlbnRoZXNpc3xpZGVvZ3JhcGgtbnVtZXJpY3xpZGVvZ3JhcGgtYWxwaGF8aG9yaXpvbnRhbHxoaWRkZW58aGVscHxoYW5kfGdyb292ZXxmaXhlZHxlbGxpcHNpc3xlLXJlc2l6ZXxkb3VibGV8ZG90dGVkfGRpc3RyaWJ1dGV8ZGlzdHJpYnV0ZS1zcGFjZXxkaXN0cmlidXRlLWxldHRlcnxkaXN0cmlidXRlLWFsbC1saW5lc3xkaXNjfGRpc2FibGVkfGRlZmF1bHR8ZGVjaW1hbHxkYXNoZWR8Y3Jvc3NoYWlyfGNvbGxhcHNlfGNvbC1yZXNpemV8Y2lyY2xlfGNoYXJ8Y2VudGVyfGNhcGl0YWxpemV8YnJlYWstd29yZHxicmVhay1hbGx8Ym90dG9tfGJvdGh8Ym9sZGVyfGJvbGR8YmxvY2t8YmlkaS1vdmVycmlkZXxiZWxvd3xiYXNlbGluZXxhdXRvfGFsd2F5c3xhbGwtc2Nyb2xsfGFic29sdXRlfHRhYmxlfHRhYmxlLWNlbGwpXFxcXGInIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvOi8sXG4gICAgICAgIGVuZDogL1s7fXtdLyxcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIG1vZGVzLkJMT0NLX0NPTU1FTlQsXG4gICAgICAgICAgVkFSSUFCTEUsXG4gICAgICAgICAgbW9kZXMuSEVYQ09MT1IsXG4gICAgICAgICAgbW9kZXMuQ1NTX05VTUJFUl9NT0RFLFxuICAgICAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgICAgIG1vZGVzLklNUE9SVEFOVCxcbiAgICAgICAgICBtb2Rlcy5GVU5DVElPTl9ESVNQQVRDSFxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgLy8gbWF0Y2hpbmcgdGhlc2UgaGVyZSBhbGxvd3MgdXMgdG8gdHJlYXQgdGhlbSBtb3JlIGxpa2UgcmVndWxhciBDU1NcbiAgICAgIC8vIHJ1bGVzIHNvIGV2ZXJ5dGhpbmcgYmV0d2VlbiB0aGUge30gZ2V0cyByZWd1bGFyIHJ1bGUgaGlnaGxpZ2h0aW5nLFxuICAgICAgLy8gd2hpY2ggaXMgd2hhdCB3ZSB3YW50IGZvciBwYWdlIGFuZCBmb250LWZhY2VcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdAKHBhZ2V8Zm9udC1mYWNlKScsXG4gICAgICAgIGtleXdvcmRzOiB7XG4gICAgICAgICAgJHBhdHRlcm46IEFUX0lERU5USUZJRVIsXG4gICAgICAgICAga2V5d29yZDogJ0BwYWdlIEBmb250LWZhY2UnXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnQCcsXG4gICAgICAgIGVuZDogJ1t7O10nLFxuICAgICAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAga2V5d29yZHM6IHtcbiAgICAgICAgICAkcGF0dGVybjogL1thLXotXSsvLFxuICAgICAgICAgIGtleXdvcmQ6IEFUX01PRElGSUVSUyxcbiAgICAgICAgICBhdHRyaWJ1dGU6IE1FRElBX0ZFQVRVUkVTLmpvaW4oXCIgXCIpXG4gICAgICAgIH0sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46IEFUX0lERU5USUZJRVIsXG4gICAgICAgICAgICBjbGFzc05hbWU6IFwia2V5d29yZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogL1thLXotXSsoPz06KS8sXG4gICAgICAgICAgICBjbGFzc05hbWU6IFwiYXR0cmlidXRlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFZBUklBQkxFLFxuICAgICAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgICAgIG1vZGVzLkhFWENPTE9SLFxuICAgICAgICAgIG1vZGVzLkNTU19OVU1CRVJfTU9ERVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgbW9kZXMuRlVOQ1RJT05fRElTUEFUQ0hcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc2NzcztcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///83\n");
  1818. /***/ }),
  1819. /* 84 */
  1820. /*!********************************************************************************************************!*\
  1821. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/highlight.js/lib/languages/shell.js ***!
  1822. \********************************************************************************************************/
  1823. /*! no static exports found */
  1824. /***/ (function(module, exports) {
  1825. eval("/*\nLanguage: Shell Session\nRequires: bash.js\nAuthor: TSUYUSATO Kitsune <make.just.on@gmail.com>\nCategory: common\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction shell(hljs) {\n return {\n name: 'Shell Session',\n aliases: ['console', 'shellsession'],\n contains: [{\n className: 'meta.prompt',\n // We cannot add \\s (spaces) in the regular expression otherwise it will be too broad and produce unexpected result.\n // For instance, in the following example, it would match \"echo /path/to/home >\" as a prompt:\n // echo /path/to/home > t.exe\n begin: /^\\s{0,3}[/~\\w\\d[\\]()@-]*[>%$#][ ]?/,\n starts: {\n end: /[^\\\\](?=\\s*$)/,\n subLanguage: 'bash'\n }\n }]\n };\n}\nmodule.exports = shell;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvc2hlbGwuanMiXSwibmFtZXMiOlsic2hlbGwiLCJobGpzIiwibmFtZSIsImFsaWFzZXMiLCJjb250YWlucyIsImNsYXNzTmFtZSIsImJlZ2luIiwic3RhcnRzIiwiZW5kIiwic3ViTGFuZ3VhZ2UiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFNBQVNBLEtBQUssQ0FBQ0MsSUFBSSxFQUFFO0VBQ25CLE9BQU87SUFDTEMsSUFBSSxFQUFFLGVBQWU7SUFDckJDLE9BQU8sRUFBRSxDQUNQLFNBQVMsRUFDVCxjQUFjLENBQ2Y7SUFDREMsUUFBUSxFQUFFLENBQ1I7TUFDRUMsU0FBUyxFQUFFLGFBQWE7TUFDeEI7TUFDQTtNQUNBO01BQ0FDLEtBQUssRUFBRSxvQ0FBb0M7TUFDM0NDLE1BQU0sRUFBRTtRQUNOQyxHQUFHLEVBQUUsZUFBZTtRQUNwQkMsV0FBVyxFQUFFO01BQ2Y7SUFDRixDQUFDO0VBRUwsQ0FBQztBQUNIO0FBRUFDLE1BQU0sQ0FBQ0MsT0FBTyxHQUFHWCxLQUFLIiwiZmlsZSI6Ijg0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbkxhbmd1YWdlOiBTaGVsbCBTZXNzaW9uXG5SZXF1aXJlczogYmFzaC5qc1xuQXV0aG9yOiBUU1VZVVNBVE8gS2l0c3VuZSA8bWFrZS5qdXN0Lm9uQGdtYWlsLmNvbT5cbkNhdGVnb3J5OiBjb21tb25cbkF1ZGl0OiAyMDIwXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gc2hlbGwoaGxqcykge1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdTaGVsbCBTZXNzaW9uJyxcbiAgICBhbGlhc2VzOiBbXG4gICAgICAnY29uc29sZScsXG4gICAgICAnc2hlbGxzZXNzaW9uJ1xuICAgIF0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YS5wcm9tcHQnLFxuICAgICAgICAvLyBXZSBjYW5ub3QgYWRkIFxccyAoc3BhY2VzKSBpbiB0aGUgcmVndWxhciBleHByZXNzaW9uIG90aGVyd2lzZSBpdCB3aWxsIGJlIHRvbyBicm9hZCBhbmQgcHJvZHVjZSB1bmV4cGVjdGVkIHJlc3VsdC5cbiAgICAgICAgLy8gRm9yIGluc3RhbmNlLCBpbiB0aGUgZm9sbG93aW5nIGV4YW1wbGUsIGl0IHdvdWxkIG1hdGNoIFwiZWNobyAvcGF0aC90by9ob21lID5cIiBhcyBhIHByb21wdDpcbiAgICAgICAgLy8gZWNobyAvcGF0aC90by9ob21lID4gdC5leGVcbiAgICAgICAgYmVnaW46IC9eXFxzezAsM31bL35cXHdcXGRbXFxdKClALV0qWz4lJCNdWyBdPy8sXG4gICAgICAgIHN0YXJ0czoge1xuICAgICAgICAgIGVuZDogL1teXFxcXF0oPz1cXHMqJCkvLFxuICAgICAgICAgIHN1Ykxhbmd1YWdlOiAnYmFzaCdcbiAgICAgICAgfVxuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzaGVsbDtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///84\n");
  1826. /***/ }),
  1827. /* 85 */
  1828. /*!******************************************************************************************************!*\
  1829. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/highlight.js/lib/languages/sql.js ***!
  1830. \******************************************************************************************************/
  1831. /*! no static exports found */
  1832. /***/ (function(module, exports) {
  1833. eval("/*\n Language: SQL\n Website: https://en.wikipedia.org/wiki/SQL\n Category: common, database\n */\n\n/*\n\nGoals:\n\nSQL is intended to highlight basic/common SQL keywords and expressions\n\n- If pretty much every single SQL server includes supports, then it's a canidate.\n- It is NOT intended to include tons of vendor specific keywords (Oracle, MySQL,\n PostgreSQL) although the list of data types is purposely a bit more expansive.\n- For more specific SQL grammars please see:\n - PostgreSQL and PL/pgSQL - core\n - T-SQL - https://github.com/highlightjs/highlightjs-tsql\n - sql_more (core)\n\n */\n\nfunction sql(hljs) {\n var regex = hljs.regex;\n var COMMENT_MODE = hljs.COMMENT('--', '$');\n var STRING = {\n className: 'string',\n variants: [{\n begin: /'/,\n end: /'/,\n contains: [{\n begin: /''/\n }]\n }]\n };\n var QUOTED_IDENTIFIER = {\n begin: /\"/,\n end: /\"/,\n contains: [{\n begin: /\"\"/\n }]\n };\n var LITERALS = [\"true\", \"false\",\n // Not sure it's correct to call NULL literal, and clauses like IS [NOT] NULL look strange that way.\n // \"null\",\n \"unknown\"];\n var MULTI_WORD_TYPES = [\"double precision\", \"large object\", \"with timezone\", \"without timezone\"];\n var TYPES = ['bigint', 'binary', 'blob', 'boolean', 'char', 'character', 'clob', 'date', 'dec', 'decfloat', 'decimal', 'float', 'int', 'integer', 'interval', 'nchar', 'nclob', 'national', 'numeric', 'real', 'row', 'smallint', 'time', 'timestamp', 'varchar', 'varying',\n // modifier (character varying)\n 'varbinary'];\n var NON_RESERVED_WORDS = [\"add\", \"asc\", \"collation\", \"desc\", \"final\", \"first\", \"last\", \"view\"];\n\n // https://jakewheat.github.io/sql-overview/sql-2016-foundation-grammar.html#reserved-word\n var RESERVED_WORDS = [\"abs\", \"acos\", \"all\", \"allocate\", \"alter\", \"and\", \"any\", \"are\", \"array\", \"array_agg\", \"array_max_cardinality\", \"as\", \"asensitive\", \"asin\", \"asymmetric\", \"at\", \"atan\", \"atomic\", \"authorization\", \"avg\", \"begin\", \"begin_frame\", \"begin_partition\", \"between\", \"bigint\", \"binary\", \"blob\", \"boolean\", \"both\", \"by\", \"call\", \"called\", \"cardinality\", \"cascaded\", \"case\", \"cast\", \"ceil\", \"ceiling\", \"char\", \"char_length\", \"character\", \"character_length\", \"check\", \"classifier\", \"clob\", \"close\", \"coalesce\", \"collate\", \"collect\", \"column\", \"commit\", \"condition\", \"connect\", \"constraint\", \"contains\", \"convert\", \"copy\", \"corr\", \"corresponding\", \"cos\", \"cosh\", \"count\", \"covar_pop\", \"covar_samp\", \"create\", \"cross\", \"cube\", \"cume_dist\", \"current\", \"current_catalog\", \"current_date\", \"current_default_transform_group\", \"current_path\", \"current_role\", \"current_row\", \"current_schema\", \"current_time\", \"current_timestamp\", \"current_path\", \"current_role\", \"current_transform_group_for_type\", \"current_user\", \"cursor\", \"cycle\", \"date\", \"day\", \"deallocate\", \"dec\", \"decimal\", \"decfloat\", \"declare\", \"default\", \"define\", \"delete\", \"dense_rank\", \"deref\", \"describe\", \"deterministic\", \"disconnect\", \"distinct\", \"double\", \"drop\", \"dynamic\", \"each\", \"element\", \"else\", \"empty\", \"end\", \"end_frame\", \"end_partition\", \"end-exec\", \"equals\", \"escape\", \"every\", \"except\", \"exec\", \"execute\", \"exists\", \"exp\", \"external\", \"extract\", \"false\", \"fetch\", \"filter\", \"first_value\", \"float\", \"floor\", \"for\", \"foreign\", \"frame_row\", \"free\", \"from\", \"full\", \"function\", \"fusion\", \"get\", \"global\", \"grant\", \"group\", \"grouping\", \"groups\", \"having\", \"hold\", \"hour\", \"identity\", \"in\", \"indicator\", \"initial\", \"inner\", \"inout\", \"insensitive\", \"insert\", \"int\", \"integer\", \"intersect\", \"intersection\", \"interval\", \"into\", \"is\", \"join\", \"json_array\", \"json_arrayagg\", \"json_exists\", \"json_object\", \"json_objectagg\", \"json_query\", \"json_table\", \"json_table_primitive\", \"json_value\", \"lag\", \"language\", \"large\", \"last_value\", \"lateral\", \"lead\", \"leading\", \"left\", \"like\", \"like_regex\", \"listagg\", \"ln\", \"local\", \"localtime\", \"localtimestamp\", \"log\", \"log10\", \"lower\", \"match\", \"match_number\", \"match_recognize\", \"matches\", \"max\", \"member\", \"merge\", \"method\", \"min\", \"minute\", \"mod\", \"modifies\", \"module\", \"month\", \"multiset\", \"national\", \"natural\", \"nchar\", \"nclob\", \"new\", \"no\", \"none\", \"normalize\", \"not\", \"nth_value\", \"ntile\", \"null\", \"nullif\", \"numeric\", \"octet_length\", \"occurrences_regex\", \"of\", \"offset\", \"old\", \"omit\", \"on\", \"one\", \"only\", \"open\", \"or\", \"order\", \"out\", \"outer\", \"over\", \"overlaps\", \"overlay\", \"parameter\", \"partition\", \"pattern\", \"per\", \"percent\", \"percent_rank\", \"percentile_cont\", \"percentile_disc\", \"period\", \"portion\", \"position\", \"position_regex\", \"power\", \"precedes\", \"precision\", \"prepare\", \"primary\", \"procedure\", \"ptf\", \"range\", \"rank\", \"reads\", \"real\", \"recursive\", \"ref\", \"references\", \"referencing\", \"regr_avgx\", \"regr_avgy\", \"regr_count\", \"regr_intercept\", \"regr_r2\", \"regr_slope\", \"regr_sxx\", \"regr_sxy\", \"regr_syy\", \"release\", \"result\", \"return\", \"returns\", \"revoke\", \"right\", \"rollback\", \"rollup\", \"row\", \"row_number\", \"rows\", \"running\", \"savepoint\", \"scope\", \"scroll\", \"search\", \"second\", \"seek\", \"select\", \"sensitive\", \"session_user\", \"set\", \"show\", \"similar\", \"sin\", \"sinh\", \"skip\", \"smallint\", \"some\", \"specific\", \"specifictype\", \"sql\", \"sqlexception\", \"sqlstate\", \"sqlwarning\", \"sqrt\", \"start\", \"static\", \"stddev_pop\", \"stddev_samp\", \"submultiset\", \"subset\", \"substring\", \"substring_regex\", \"succeeds\", \"sum\", \"symmetric\", \"system\", \"system_time\", \"system_user\", \"table\", \"tablesample\", \"tan\", \"tanh\", \"then\", \"time\", \"timestamp\", \"timezone_hour\", \"timezone_minute\", \"to\", \"trailing\", \"translate\", \"translate_regex\", \"translation\", \"treat\", \"trigger\", \"trim\", \"trim_array\", \"true\", \"truncate\", \"uescape\", \"union\", \"unique\", \"unknown\", \"unnest\", \"update\", \"upper\", \"user\", \"using\", \"value\", \"values\", \"value_of\", \"var_pop\", \"var_samp\", \"varbinary\", \"varchar\", \"varying\", \"versioning\", \"when\", \"whenever\", \"where\", \"width_bucket\", \"window\", \"with\", \"within\", \"without\", \"year\"];\n\n // these are reserved words we have identified to be functions\n // and should only be highlighted in a dispatch-like context\n // ie, array_agg(...), etc.\n var RESERVED_FUNCTIONS = [\"abs\", \"acos\", \"array_agg\", \"asin\", \"atan\", \"avg\", \"cast\", \"ceil\", \"ceiling\", \"coalesce\", \"corr\", \"cos\", \"cosh\", \"count\", \"covar_pop\", \"covar_samp\", \"cume_dist\", \"dense_rank\", \"deref\", \"element\", \"exp\", \"extract\", \"first_value\", \"floor\", \"json_array\", \"json_arrayagg\", \"json_exists\", \"json_object\", \"json_objectagg\", \"json_query\", \"json_table\", \"json_table_primitive\", \"json_value\", \"lag\", \"last_value\", \"lead\", \"listagg\", \"ln\", \"log\", \"log10\", \"lower\", \"max\", \"min\", \"mod\", \"nth_value\", \"ntile\", \"nullif\", \"percent_rank\", \"percentile_cont\", \"percentile_disc\", \"position\", \"position_regex\", \"power\", \"rank\", \"regr_avgx\", \"regr_avgy\", \"regr_count\", \"regr_intercept\", \"regr_r2\", \"regr_slope\", \"regr_sxx\", \"regr_sxy\", \"regr_syy\", \"row_number\", \"sin\", \"sinh\", \"sqrt\", \"stddev_pop\", \"stddev_samp\", \"substring\", \"substring_regex\", \"sum\", \"tan\", \"tanh\", \"translate\", \"translate_regex\", \"treat\", \"trim\", \"trim_array\", \"unnest\", \"upper\", \"value_of\", \"var_pop\", \"var_samp\", \"width_bucket\"];\n\n // these functions can\n var POSSIBLE_WITHOUT_PARENS = [\"current_catalog\", \"current_date\", \"current_default_transform_group\", \"current_path\", \"current_role\", \"current_schema\", \"current_transform_group_for_type\", \"current_user\", \"session_user\", \"system_time\", \"system_user\", \"current_time\", \"localtime\", \"current_timestamp\", \"localtimestamp\"];\n\n // those exist to boost relevance making these very\n // \"SQL like\" keyword combos worth +1 extra relevance\n var COMBOS = [\"create table\", \"insert into\", \"primary key\", \"foreign key\", \"not null\", \"alter table\", \"add constraint\", \"grouping sets\", \"on overflow\", \"character set\", \"respect nulls\", \"ignore nulls\", \"nulls first\", \"nulls last\", \"depth first\", \"breadth first\"];\n var FUNCTIONS = RESERVED_FUNCTIONS;\n var KEYWORDS = [].concat(RESERVED_WORDS, NON_RESERVED_WORDS).filter(function (keyword) {\n return !RESERVED_FUNCTIONS.includes(keyword);\n });\n var VARIABLE = {\n className: \"variable\",\n begin: /@[a-z0-9][a-z0-9_]*/\n };\n var OPERATOR = {\n className: \"operator\",\n begin: /[-+*/=%^~]|&&?|\\|\\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,\n relevance: 0\n };\n var FUNCTION_CALL = {\n begin: regex.concat(/\\b/, regex.either.apply(regex, FUNCTIONS), /\\s*\\(/),\n relevance: 0,\n keywords: {\n built_in: FUNCTIONS\n }\n };\n\n // keywords with less than 3 letters are reduced in relevancy\n function reduceRelevancy(list) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n exceptions = _ref.exceptions,\n when = _ref.when;\n var qualifyFn = when;\n exceptions = exceptions || [];\n return list.map(function (item) {\n if (item.match(/\\|\\d+$/) || exceptions.includes(item)) {\n return item;\n } else if (qualifyFn(item)) {\n return \"\".concat(item, \"|0\");\n } else {\n return item;\n }\n });\n }\n return {\n name: 'SQL',\n case_insensitive: true,\n // does not include {} or HTML tags `</`\n illegal: /[{}]|<\\//,\n keywords: {\n $pattern: /\\b[\\w\\.]+/,\n keyword: reduceRelevancy(KEYWORDS, {\n when: function when(x) {\n return x.length < 3;\n }\n }),\n literal: LITERALS,\n type: TYPES,\n built_in: POSSIBLE_WITHOUT_PARENS\n },\n contains: [{\n begin: regex.either.apply(regex, COMBOS),\n relevance: 0,\n keywords: {\n $pattern: /[\\w\\.]+/,\n keyword: KEYWORDS.concat(COMBOS),\n literal: LITERALS,\n type: TYPES\n }\n }, {\n className: \"type\",\n begin: regex.either.apply(regex, MULTI_WORD_TYPES)\n }, FUNCTION_CALL, VARIABLE, STRING, QUOTED_IDENTIFIER, hljs.C_NUMBER_MODE, hljs.C_BLOCK_COMMENT_MODE, COMMENT_MODE, OPERATOR]\n };\n}\nmodule.exports = sql;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvc3FsLmpzIl0sIm5hbWVzIjpbInNxbCIsImhsanMiLCJyZWdleCIsIkNPTU1FTlRfTU9ERSIsIkNPTU1FTlQiLCJTVFJJTkciLCJjbGFzc05hbWUiLCJ2YXJpYW50cyIsImJlZ2luIiwiZW5kIiwiY29udGFpbnMiLCJRVU9URURfSURFTlRJRklFUiIsIkxJVEVSQUxTIiwiTVVMVElfV09SRF9UWVBFUyIsIlRZUEVTIiwiTk9OX1JFU0VSVkVEX1dPUkRTIiwiUkVTRVJWRURfV09SRFMiLCJSRVNFUlZFRF9GVU5DVElPTlMiLCJQT1NTSUJMRV9XSVRIT1VUX1BBUkVOUyIsIkNPTUJPUyIsIkZVTkNUSU9OUyIsIktFWVdPUkRTIiwiZmlsdGVyIiwia2V5d29yZCIsImluY2x1ZGVzIiwiVkFSSUFCTEUiLCJPUEVSQVRPUiIsInJlbGV2YW5jZSIsIkZVTkNUSU9OX0NBTEwiLCJjb25jYXQiLCJlaXRoZXIiLCJrZXl3b3JkcyIsImJ1aWx0X2luIiwicmVkdWNlUmVsZXZhbmN5IiwibGlzdCIsImV4Y2VwdGlvbnMiLCJ3aGVuIiwicXVhbGlmeUZuIiwibWFwIiwiaXRlbSIsIm1hdGNoIiwibmFtZSIsImNhc2VfaW5zZW5zaXRpdmUiLCJpbGxlZ2FsIiwiJHBhdHRlcm4iLCJ4IiwibGVuZ3RoIiwibGl0ZXJhbCIsInR5cGUiLCJDX05VTUJFUl9NT0RFIiwiQ19CTE9DS19DT01NRU5UX01PREUiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxTQUFTQSxHQUFHLENBQUNDLElBQUksRUFBRTtFQUNqQixJQUFNQyxLQUFLLEdBQUdELElBQUksQ0FBQ0MsS0FBSztFQUN4QixJQUFNQyxZQUFZ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QUM7TUFDMURDLE9BQU8sRUFBRW5DLFFBQVE7TUFDakJvQyxJQUFJLEVBQUVsQyxLQUFLO01BQ1hrQixRQUFRLEVBQUVkO0lBQ1osQ0FBQztJQUNEUixRQUFRLEVBQUUsQ0FDUjtNQUNFRixLQUFLLEVBQUVOLEtBQUssQ0FBQzRCLE1BQU0sT0FBWjVCLEtBQUssRUFBV2lCLE1BQU0sQ0FBQztNQUM5QlEsU0FBUyxFQUFFLENBQUM7TUFDWkksUUFBUSxFQUFFO1FBQ1JhLFFBQVEsRUFBRSxTQUFTO1FBQ25CckIsT0FBTyxFQUFFRixRQUFRLENBQUNRLE1BQU0sQ0FBQ1YsTUFBTSxDQUFDO1FBQ2hDNEIsT0FBTyxFQUFFbkMsUUFBUTtRQUNqQm9DLElBQUksRUFBRWxDO01BQ1I7SUFDRixDQUFDLEVBQ0Q7TUFDRVIsU0FBUyxFQUFFLE1BQU07TUFDakJFLEtBQUssRUFBRU4sS0FBSyxDQUFDNEIsTUFBTSxPQUFaNUIsS0FBSyxFQUFXVyxnQkFBZ0I7SUFDekMsQ0FBQyxFQUNEZSxhQUFhLEVBQ2JILFFBQVEsRUFDUnBCLE1BQU0sRUFDTk0saUJBQWlCLEVBQ2pCVixJQUFJLENBQUNnRCxhQUFhLEVBQ2xCaEQsSUFBSSxDQUFDaUQsb0JBQW9CLEVBQ3pCL0MsWUFBWSxFQUNadUIsUUFBUTtFQUVaLENBQUM7QUFDSDtBQUVBeUIsTUFBTSxDQUFDQyxPQUFPLEdBQUdwRCxHQUFHIiwiZmlsZSI6Ijg1LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiBMYW5ndWFnZTogU1FMXG4gV2Vic2l0ZTogaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvU1FMXG4gQ2F0ZWdvcnk6IGNvbW1vbiwgZGF0YWJhc2VcbiAqL1xuXG4vKlxuXG5Hb2FsczpcblxuU1FMIGlzIGludGVuZGVkIHRvIGhpZ2hsaWdodCBiYXNpYy9jb21tb24gU1FMIGtleXdvcmRzIGFuZCBleHByZXNzaW9uc1xuXG4tIElmIHByZXR0eSBtdWNoIGV2ZXJ5IHNpbmdsZSBTUUwgc2VydmVyIGluY2x1ZGVzIHN1cHBvcnRzLCB0aGVuIGl0J3MgYSBjYW5pZGF0ZS5cbi0gSXQgaXMgTk9UIGludGVuZGVkIHRvIGluY2x1ZGUgdG9ucyBvZiB2ZW5kb3Igc3BlY2lmaWMga2V5d29yZHMgKE9yYWNsZSwgTXlTUUwsXG4gIFBvc3RncmVTUUwpIGFsdGhvdWdoIHRoZSBsaXN0IG9mIGRhdGEgdHlwZXMgaXMgcHVycG9zZWx5IGEgYml0IG1vcmUgZXhwYW5zaXZlLlxuLSBGb3IgbW9yZSBzcGVjaWZpYyBTUUwgZ3JhbW1hcnMgcGxlYXNlIHNlZTpcbiAgLSBQb3N0Z3JlU1FMIGFuZCBQTC9wZ1NRTCAtIGNvcmVcbiAgLSBULVNRTCAtIGh0dHBzOi8vZ2l0aHViLmNvbS9oaWdobGlnaHRqcy9oaWdobGlnaHRqcy10c3FsXG4gIC0gc3FsX21vcmUgKGNvcmUpXG5cbiAqL1xuXG5mdW5jdGlvbiBzcWwoaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIGNvbnN0IENPTU1FTlRfTU9ERSA9IGhsanMuQ09NTUVOVCgnLS0nLCAnJCcpO1xuICBjb25zdCBTVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogLycvLFxuICAgICAgICBlbmQ6IC8nLyxcbiAgICAgICAgY29udGFpbnM6IFsgeyBiZWdpbjogLycnLyB9IF1cbiAgICAgIH1cbiAgICBdXG4gIH07XG4gIGNvbnN0IFFVT1RFRF9JREVOVElGSUVSID0ge1xuICAgIGJlZ2luOiAvXCIvLFxuICAgIGVuZDogL1wiLyxcbiAgICBjb250YWluczogWyB7IGJlZ2luOiAvXCJcIi8gfSBdXG4gIH07XG5cbiAgY29uc3QgTElURVJBTFMgPSBbXG4gICAgXCJ0cnVlXCIsXG4gICAgXCJmYWxzZVwiLFxuICAgIC8vIE5vdCBzdXJlIGl0J3MgY29ycmVjdCB0byBjYWxsIE5VTEwgbGl0ZXJhbCwgYW5kIGNsYXVzZXMgbGlrZSBJUyBbTk9UXSBOVUxMIGxvb2sgc3RyYW5nZSB0aGF0IHdheS5cbiAgICAvLyBcIm51bGxcIixcbiAgICBcInVua25vd25cIlxuICBdO1xuXG4gIGNvbnN0IE1VTFRJX1dPUkRfVFlQRVMgPSBbXG4gICAgXCJkb3VibGUgcHJlY2lzaW9uXCIsXG4gICAgXCJsYXJnZSBvYmplY3RcIixcbiAgICBcIndpdGggdGltZXpvbmVcIixcbiAgICBcIndpdGhvdXQgdGltZXpvbmVcIlxuICBdO1xuXG4gIGNvbnN0IFRZUEVTID0gW1xuICAgICdiaWdpbnQnLFxuICAgICdiaW5hcnknLFxuICAgICdibG9iJyxcbiAgICAnYm9vbGVhbicsXG4gICAgJ2NoYXInLFxuICAgICdjaGFyYWN0ZXInLFxuICAgICdjbG9iJyxcbiAgICAnZGF0ZScsXG4gICAgJ2RlYycsXG4gICAgJ2RlY2Zsb2F0JyxcbiAgICAnZGVjaW1hbCcsXG4gICAgJ2Zsb2F0JyxcbiAgICAnaW50JyxcbiAgICAnaW50ZWdlcicsXG4gICAgJ2ludGVydmFsJyxcbiAgICAnbmNoYXInLFxuICAgICduY2xvYicsXG4gICAgJ25hdGlvbmFsJyxcbiAgICAnbnVtZXJpYycsXG4gICAgJ3JlYWwnLFxuICAgICdyb3cnLFxuICAgICdzbWFsbGludCcsXG4gICAgJ3RpbWUnLFxuICAgICd0aW1lc3RhbXAnLFxuICAgICd2YXJjaGFyJyxcbiAgICAndmFyeWluZycsIC8vIG1vZGlmaWVyIChjaGFyYWN0ZXIgdmFyeWluZylcbiAgICAndmFyYmluYXJ5J1xuICBdO1xuXG4gIGNvbnN0IE5PTl9SRVNFUlZFRF9XT1JEUyA9IFtcbiAgICBcImFkZFwiLFxuICAgIFwiYXNjXCIsXG4gICAgXCJjb2xsYXRpb25cIixcbiAgICBcImRlc2NcIixcbiAgICBcImZpbmFsXCIsXG4gICAgXCJmaXJzdFwiLFxuICAgIFwibGFzdFwiLFxuICAgIFwidmlld1wiXG4gIF07XG5cbiAgLy8gaHR0cHM6Ly9qYWtld2hlYXQuZ2l0aHViLmlvL3NxbC1vdmVydmlldy9zcWwtMjAxNi1mb3VuZGF0aW9uLWdyYW1tYXIuaHRtbCNyZXNlcnZlZC13b3JkXG4gIGNvbnN0IFJFU0VSVkVEX1dPUkRTID0gW1xuICAgIFwiYWJzXCIsXG4gICAgXCJhY29zXCIsXG4gICAgXCJhbGxcIixcbiAgICBcImFsbG9jYXRlXCIsXG4gICAgXCJhbHRlclwiLFxuICAgIFwiYW5kXCIsXG4gICAgXCJhbnlcIixcbiAgICBcImFyZVwiLFxuICAgIFwiYXJyYXlcIixcbiAgICBcImFycmF5X2FnZ1wiLFxuICAgIFwiYXJyYXlfbWF4X2NhcmRpbmFsaXR5XCIsXG4gICAgXCJhc1wiLFxuICAgIFwiYXNlbnNpdGl2ZVwiLFxuICAgIFwiYXNpblwiLFxuICAgIFwiYXN5bW1ldHJpY1wiLFxuICAgIFwiYXRcIixcbiAgICBcImF0YW5cIixcbiAgICBcImF0b21pY1wiLFxuICAgIFwiYXV0aG9yaXphdGlvblwiLFxuICAgIFwiYXZnXCIsXG4gICAgXCJiZWdpblwiLFxuICAgIFwiYmVnaW5fZnJhbWVcIixcbiAgICBcImJlZ2luX3BhcnRpdGlvblwiLFxuICAgIFwiYmV0d2VlblwiLFxuICAgIFwiYmlnaW50XCIsXG4gICAgXCJiaW5hcnlcIixcbiAgICBcImJsb2JcIixcbiAgICBcImJvb2xlYW5cIixcbiAgICBcImJvdGhcIixcbiAgICBcImJ5XCIsXG4gICAgXCJjYWxsXCIsXG4gICAgXCJjYWxsZWRcIixcbiAgICBcImNhcmRpbmFsaXR5XCIsXG4gICAgXCJjYXNjYWRlZFwiLFxuICAgIFwiY2FzZVwiLFxuICAgIFwiY2FzdFwiLFxuICAgIFwiY2VpbFwiLFxuICAgIFwiY2VpbGluZ1wiLFxuICAgIFwiY2hhclwiLFxuICAgIFwiY2hhcl9sZW5ndGhcIixcbiAgICBcImNoYXJhY3RlclwiLFxuICAgIFwiY2hhcmFjdGVyX2xlbmd0aFwiLFxuICAgIFwiY2hlY2tcIixcbiAgICBcImNsYXNzaWZpZXJcIixcbiAgICBcImNsb2JcIixcbiAgICBcImNsb3NlXCIsXG4gICAgXCJjb2FsZXNjZVwiLFxuICAgIFwiY29sbGF0ZVwiLFxuICAgIFwiY29sbGVjdFwiLFxuICAgIFwiY29sdW1uXCIsXG4gICAgXCJjb21taXRcIixcbiAgICBcImNvbmRpdGlvblwiLFxuICAgIFwiY29ubmVjdFwiLFxuICAgIFwiY29uc3RyYWludFwiLFxuICAgIFwiY29udGFpbnNcIixcbiAgICBcImNvbnZlcnRcIixcbiAgICBcImNvcHlcIixcbiAgICBcImNvcnJcIixcbiAgICBcImNvcnJlc3BvbmRpbmdcIixcbiAgICBcImNvc1wiLFxuICAgIFwiY29zaFwiLFxuICAgIFwiY291bnRcIixcbiAgICBcImNvdmFyX3BvcFwiLFxuICAgIFwiY292YXJfc2FtcFwiLFxuICAgIFwiY3JlYXRlXCIsXG4gICAgXCJjcm9zc1wiLFxuICAgIFwiY3ViZVwiLFxuICAgIFwiY3VtZV9kaXN0XCIsXG4gICAgXCJjdXJyZW50XCIsXG4gICAgXCJjdXJyZW50X2NhdGFsb2dcIixcbiAgICBcImN1cnJlbnRfZGF0ZVwiLFxuICAgIFwiY3VycmVudF9kZWZhdWx0X3RyYW5zZm9ybV9ncm91cFwiLFxuICAgIFwiY3VycmVudF9wYXRoXCIsXG4gICAgXCJjdXJyZW50X3JvbGVcIixcbiAgICBcImN1cnJlbnRfcm93XCIsXG4gICAgXCJjdXJyZW50X3NjaGVtYVwiLFxuICAgIFwiY3VycmVudF90aW1lXCIsXG4gICAgXCJjdXJyZW50X3RpbWVzdGFtcFwiLFxuICAgIFwiY3VycmVudF9wYXRoXCIsXG4gICAgXCJjdXJyZW50X3JvbGVcIixcbiAgICBcImN1cnJlbnRfdHJhbnNmb3JtX2dyb3VwX2Zvcl90eXBlXCIsXG4gICAgXCJjdXJyZW50X3VzZXJcIixcbiAgICBcImN1cnNvclwiLFxuICAgIFwiY3ljbGVcIixcbiAgICBcImRhdGVcIixcbiAgICBcImRheVwiLFxuICAgIFwiZGVhbGxvY2F0ZVwiLFxuICAgIFwiZGVjXCIsXG4gICAgXCJkZWNpbWFsXCIsXG4gICAgXCJkZWNmbG9hdFwiLFxuICAgIFwiZGVjbGFyZVwiLFxuICAgIFwiZGVmYXVsdFwiLFxuICAgIFwiZGVmaW5lXCIsXG4gICAgXCJkZWxldGVcIixcbiAgICBcImRlbnNlX3JhbmtcIixcbiAgICBcImRlcmVmXCIsXG4gICAgXCJkZXNjcmliZVwiLFxuICAgIFwiZGV0ZXJtaW5pc3RpY1wiLFxuICAgIFwiZGlzY29ubmVjdFwiLFxuICAgIFwiZGlzdGluY3RcIixcbiAgICBcImRvdWJsZVwiLFxuICAgIFwiZHJvcFwiLFxuICAgIFwiZHluYW1pY1wiLFxuICAgIFwiZWFjaFwiLFxuICAgIFwiZWxlbWVudFwiLFxuICAgIFwiZWxzZVwiLFxuICAgIFwiZW1wdHlcIixcbiAgICBcImVuZFwiLFxuICAgIFwiZW5kX2ZyYW1lXCIsXG4gICAgXCJlbmRfcGFydGl0aW9uXCIsXG4gICAgXCJlbmQtZXhlY1wiLFxuICAgIFwiZXF1YWxzXCIsXG4gICAgXCJlc2NhcGVcIixcbiAgICBcImV2ZXJ5XCIsXG4gICAgXCJleGNlcHRcIixcbiAgICBcImV4ZWNcIixcbiAgICBcImV4ZWN1dGVcIixcbiAgICBcImV4aXN0c1wiLFxuICAgIFwiZXhwXCIsXG4gICAgXCJleHRlcm5hbFwiLFxuICAgIFwiZXh0cmFjdFwiLFxuICAgIFwiZmFsc2VcIixcbiAgICBcImZldGNoXCIsXG4gICAgXCJmaWx0ZXJcIixcbiAgICBcImZpcnN0X3ZhbHVlXCIsXG4gICAgXCJmbG9hdFwiLFxuICAgIFwiZmxvb3JcIixcbiAgICBcImZvclwiLFxuICAgIFwiZm9yZWlnblwiLFxuICAgIFwiZnJhbWVfcm93XCIsXG4gICAgXCJmcmVlXCIsXG4gICAgXCJmcm9tXCIsXG4gICAgXCJmdWxsXCIsXG4gICAgXCJmdW5jdGlvblwiLFxuICAgIFwiZnVzaW9uXCIsXG4gICAgXCJnZXRcIixcbiAgICBcImdsb2JhbFwiLFxuICAgIFwiZ3JhbnRcIixcbiAgICBcImdyb3VwXCIsXG4gICAgXCJncm91cGluZ1wiLFxuICAgIFwiZ3JvdXBzXCIsXG4gICAgXCJoYXZpbmdcIixcbiAgICBcImhvbGRcIixcbiAgICBcImhvdXJcIixcbiAgICBcImlkZW50aXR5XCIsXG4gICAgXCJpblwiLFxuICAgIFwiaW5kaWNhdG9yXCIsXG4gICAgXCJpbml0aWFsXCIsXG4gICAgXCJpbm5lclwiLFxuICAgIFwiaW5vdXRcIixcbiAgICBcImluc2Vuc2l0aXZlXCIsXG4gICAgXCJpbnNlcnRcIixcbiAgICBcImludFwiLFxuICAgIFwiaW50ZWdlclwiLFxuICAgIFwiaW50ZXJzZWN0XCIsXG4gICAgXCJpbnRlcnNlY3Rpb25cIixcbiAgICBcImludGVydmFsXCIsXG4gICAgXCJpbnRvXCIsXG4gICAgXCJpc1wiLFxuICAgIFwiam9pblwiLFxuICAgIFwianNvbl9hcnJheVwiLFxuICAgIFwianNvbl9hcnJheWFnZ1wiLFxuICAgIFwianNvbl9leGlzdHNcIixcbiAgICBcImpzb25fb2JqZWN0XCIsXG4gICAgXCJqc29uX29iamVjdGFnZ1wiLFxuICAgIFwianNvbl9xdWVyeVwiLFxuICAgIFwianNvbl90YWJsZVwiLFxuICAgIFwianNvbl90YWJsZV9wcmltaXRpdmVcIixcbiAgICBcImpzb25fdmFsdWVcIixcbiAgICBcImxhZ1wiLFxuICAgIFwibGFuZ3VhZ2VcIixcbiAgICBcImxhcmdlXCIsXG4gICAgXCJsYXN0X3ZhbHVlXCIsXG4gICAgXCJsYXRlcmFsXCIsXG4gICAgXCJsZWFkXCIsXG4gICAgXCJsZWFkaW5nXCIsXG4gICAgXCJsZWZ0XCIsXG4gICAgXCJsaWtlXCIsXG4gICAgXCJsaWtlX3JlZ2V4XCIsXG4gICAgXCJsaXN0YWdnXCIsXG4gICAgXCJsblwiLFxuICAgIFwibG9jYWxcIixcbiAgICBcImxvY2FsdGltZVwiLFxuICAgIFwibG9jYWx0aW1lc3RhbXBcIixcbiAgICBcImxvZ1wiLFxuICAgIFwibG9nMTBcIixcbiAgICBcImxvd2VyXCIsXG4gICAgXCJtYXRjaFwiLFxuICAgIFwibWF0Y2hfbnVtYmVyXCIsXG4gICAgXCJtYXRjaF9yZWNvZ25pemVcIixcbiAgICBcIm1hdGNoZXNcIixcbiAgICBcIm1heFwiLFxuICAgIFwibWVtYmVyXCIsXG4gICAgXCJtZXJnZVwiLFxuICAgIFwibWV0aG9kXCIsXG4gICAgXCJtaW5cIixcbiAgICBcIm1pbnV0ZVwiLFxuICAgIFwibW9kXCIsXG4gICAgXCJtb2RpZmllc1wiLFxuICAgIFwibW9kdWxlXCIsXG4gICAgXCJtb250aFwiLFxuICAgIFwibXVsdGlzZXRcIixcbiAgICBcIm5hdGlvbmFsXCIsXG4gICAgXCJuYXR1cmFsXCIsXG4gICAgXCJuY2hhclwiLFxuICAgIFwibmNsb2JcIixcbiAgICBcIm5ld1wiLFxuICAgIFwibm9cIixcbiAgICBcIm5vbmVcIixcbiAgICBcIm5vcm1hbGl6ZVwiLFxuICAgIFwibm90XCIsXG4gICAgXCJudGhfdmFsdWVcIixcbiAgICBcIm50aWxlXCIsXG4gICAgXCJudWxsXCIsXG4gICAgXCJudWxsaWZcIixcbiAgICBcIm51bWVyaWNcIixcbiAgICBcIm9jdGV0X2xlbmd0aFwiLFxuICAgIFwib2NjdXJyZW5jZXNfcmVnZXhcIixcbiAgICBcIm9mXCIsXG4gICAgXCJvZmZzZXRcIixcbiAgICBcIm9sZFwiLFxuICAgIFwib21pdFwiLFxuICAgIFwib25cIixcbiAgICBcIm9uZVwiLFxuICAgIFwib25seVwiLFxuICAgIFwib3BlblwiLFxuICAgIFwib3JcIixcbiAgICBcIm9yZGVyXCIsXG4gICAgXCJvdXRcIixcbiAgICBcIm91dGVyXCIsXG4gICAgXCJvdmVyXCIsXG4gICAgXCJvdmVybGFwc1wiLFxuICAgIFwib3ZlcmxheVwiLFxuICAgIFwicGFyYW1ldGVyXCIsXG4gICAgXCJwYXJ0aXRpb25cIixcbiAgICBcInBhdHRlcm5cIixcbiAgICBcInBlclwiLFxuICAgIFwicGVyY2VudFwiLFxuICAgIFwicGVyY2VudF9yYW5rXCIsXG4gICAgXCJwZXJjZW50aWxlX2NvbnRcIixcbiAgICBcInBlcmNlbnRpbGVfZGlzY1wiLFxuICAgIFwicGVyaW9kXCIsXG4gICAgXCJwb3J0aW9uXCIsXG4gICAgXCJwb3NpdGlvblwiLFxuICAgIFwicG9zaXRpb25fcmVnZXhcIixcbiAgICBcInBvd2VyXCIsXG4gICAgXCJwcmVjZWRlc1wiLFxuICAgIFwicHJlY2lzaW9uXCIsXG4gICAgXCJwcmVwYXJlXCIsXG4gICAgXCJwcmltYXJ5XCIsXG4gICAgXCJwcm9jZWR1cmVcIixcbiAgICBcInB0ZlwiLFxuICAgIFwicmFuZ2VcIixcbiAgICBcInJhbmtcIixcbiAgICBcInJlYWRzXCIsXG4gICAgXCJyZWFsXCIsXG4gICAgXCJyZWN1cnNpdmVcIixcbiAgICBcInJlZlwiLFxuICAgIFwicmVmZXJlbmNlc1wiLFxuICAgIFwicmVmZXJlbmNpbmdcIixcbiAgICBcInJlZ3JfYXZneFwiLFxuICAgIFwicmVncl9hdmd5XCIsXG4gICAgXCJyZWdyX2NvdW50XCIsXG4gICAgXCJyZWdyX2ludGVyY2VwdFwiLFxuICAgIFwicmVncl9yMlwiLFxuICAgIFwicmVncl9zbG9wZVwiLFxuICAgIFwicmVncl9zeHhcIixcbiAgICBcInJlZ3Jfc3h5XCIsXG4gICAgXCJyZWdyX3N5eVwiLFxuICAgIFwicmVsZWFzZVwiLFxuICAgIFwicmVzdWx0XCIsXG4gICAgXCJyZXR1cm5cIixcbiAgICBcInJldHVybnNcIixcbiAgICBcInJldm9rZVwiLFxuICAgIFwicmlnaHRcIixcbiAgICBcInJvbGxiYWNrXCIsXG4gICAgXCJyb2xsdXBcIixcbiAgICBcInJvd1wiLFxuICAgIFwicm93X251bWJlclwiLFxuICAgIFwicm93c1wiLFxuICAgIFwicnVubmluZ1wiLFxuICAgIFwic2F2ZXBvaW50XCIsXG4gICAgXCJzY29wZVwiLFxuICAgIFwic2Nyb2xsXCIsXG4gICAgXCJzZWFyY2hcIixcbiAgICBcInNlY29uZFwiLFxuICAgIFwic2Vla1wiLFxuICAgIFwic2VsZWN0XCIsXG4gICAgXCJzZW5zaXRpdmVcIixcbiAgICBcInNlc3Npb25fdXNlclwiLFxuICAgIFwic2V0XCIsXG4gICAgXCJzaG93XCIsXG4gICAgXCJzaW1pbGFyXCIsXG4gICAgXCJzaW5cIixcbiAgICBcInNpbmhcIixcbiAgICBcInNraXBcIixcbiAgICBcInNtYWxsaW50XCIsXG4gICAgXCJzb21lXCIsXG4gICAgXCJzcGVjaWZpY1wiLFxuICAgIFwic3BlY2lmaWN0eXBlXCIsXG4gICAgXCJzcWxcIixcbiAgICBcInNxbGV4Y2VwdGlvblwiLFxuICAgIFwic3Fsc3RhdGVcIixcbiAgICBcInNxbHdhcm5pbmdcIixcbiAgICBcInNxcnRcIixcbiAgICBcInN0YXJ0XCIsXG4gICAgXCJzdGF0aWNcIixcbiAgICBcInN0ZGRldl9wb3BcIixcbiAgICBcInN0ZGRldl9zYW1wXCIsXG4gICAgXCJzdWJtdWx0aXNldFwiLFxuICAgIFwic3Vic2V0XCIsXG4gICAgXCJzdWJzdHJpbmdcIixcbiAgICBcInN1YnN0cmluZ19yZWdleFwiLFxuICAgIFwic3VjY2VlZHNcIixcbiAgICBcInN1bVwiLFxuICAgIFwic3ltbWV0cmljXCIsXG4gICAgXCJzeXN0ZW1cIixcbiAgICBcInN5c3RlbV90aW1lXCIsXG4gICAgXCJzeXN0ZW1fdXNlclwiLFxuICAgIFwidGFibGVcIixcbiAgICBcInRhYmxlc2FtcGxlXCIsXG4gICAgXCJ0YW5cIixcbiAgICBcInRhbmhcIixcbiAgICBcInRoZW5cIixcbiAgICBcInRpbWVcIixcbiAgICBcInRpbWVzdGFtcFwiLFxuICAgIFwidGltZXpvbmVfaG91clwiLFxuICAgIFwidGltZXpvbmVfbWludXRlXCIsXG4gICAgXCJ0b1wiLFxuICAgIFwidHJhaWxpbmdcIixcbiAgICBcInRyYW5zbGF0ZVwiLFxuICAgIFwidHJhbnNsYXRlX3JlZ2V4XCIsXG4gICAgXCJ0cmFuc2xhdGlvblwiLFxuICAgIFwidHJlYXRcIixcbiAgICBcInRyaWdnZXJcIixcbiAgICBcInRyaW1cIixcbiAgICBcInRyaW1fYXJyYXlcIixcbiAgICBcInRydWVcIixcbiAgICBcInRydW5jYXRlXCIsXG4gICAgXCJ1ZXNjYXBlXCIsXG4gICAgXCJ1bmlvblwiLFxuICAgIFwidW5pcXVlXCIsXG4gICAgXCJ1bmtub3duXCIsXG4gICAgXCJ1bm5lc3RcIixcbiAgICBcInVwZGF0ZVwiLFxuICAgIFwidXBwZXJcIixcbiAgICBcInVzZXJcIixcbiAgICBcInVzaW5nXCIsXG4gICAgXCJ2YWx1ZVwiLFxuICAgIFwidmFsdWVzXCIsXG4gICAgXCJ2YWx1ZV9vZlwiLFxuICAgIFwidmFyX3BvcFwiLFxuICAgIFwidmFyX3NhbXBcIixcbiAgICBcInZhcmJpbmFyeVwiLFxuICAgIFwidmFyY2hhclwiLFxuICAgIFwidmFyeWluZ1wiLFxuICAgIFwidmVyc2lvbmluZ1wiLFxuICAgIFwid2hlblwiLFxuICAgIFwid2hlbmV2ZXJcIixcbiAgICBcIndoZXJlXCIsXG4gICAgXCJ3aWR0aF9idWNrZXRcIixcbiAgICBcIndpbmRvd1wiLFxuICAgIFwid2l0aFwiLFxuICAgIFwid2l0aGluXCIsXG4gICAgXCJ3aXRob3V0XCIsXG4gICAgXCJ5ZWFyXCIsXG4gIF07XG5cbiAgLy8gdGhlc2UgYXJlIHJlc2VydmVkIHdvcmRzIHdlIGhhdmUgaWRlbnRpZmllZCB0byBiZSBmdW5jdGlvbnNcbiAgLy8gYW5kIHNob3VsZCBvbmx5IGJlIGhpZ2hsaWdodGVkIGluIGEgZGlzcGF0Y2gtbGlrZSBjb250ZXh0XG4gIC8vIGllLCBhcnJheV9hZ2coLi4uKSwgZXRjLlxuICBjb25zdCBSRVNFUlZFRF9GVU5DVElPTlMgPSBbXG4gICAgXCJhYnNcIixcbiAgICBcImFjb3NcIixcbiAgICBcImFycmF5X2FnZ1wiLFxuICAgIFwiYXNpblwiLFxuICAgIFwiYXRhblwiLFxuICAgIFwiYXZnXCIsXG4gICAgXCJjYXN0XCIsXG4gICAgXCJjZWlsXCIsXG4gICAgXCJjZWlsaW5nXCIsXG4gICAgXCJjb2FsZXNjZVwiLFxuICAgIFwiY29yclwiLFxuICAgIFwiY29zXCIsXG4gICAgXCJjb3NoXCIsXG4gICAgXCJjb3VudFwiLFxuICAgIFwiY292YXJfcG9wXCIsXG4gICAgXCJjb3Zhcl9zYW1wXCIsXG4gICAgXCJjdW1lX2Rpc3RcIixcbiAgICBcImRlbnNlX3JhbmtcIixcbiAgICBcImRlcmVmXCIsXG4gICAgXCJlbGVtZW50XCIsXG4gICAgXCJleHBcIixcbiAgICBcImV4dHJhY3RcIixcbiAgICBcImZpcnN0X3ZhbHVlXCIsXG4gICAgXCJmbG9vclwiLFxuICAgIFwianNvbl9hcnJheVwiLFxuICAgIFwianNvbl9hcnJheWFnZ1wiLFxuICAgIFwianNvbl9leGlzdHNcIixcbiAgICBcImpzb25fb2JqZWN0XCIsXG4gICAgXCJqc29uX29iamVjdGFnZ1wiLFxuICAgIFwianNvbl9xdWVyeVwiLFxuICAgIFwianNvbl90YWJsZVwiLFxuICAgIFwianNvbl90YWJsZV9wcmltaXRpdmVcIixcbiAgICBcImpzb25fdmFsdWVcIixcbiAgICBcImxhZ1wiLFxuICAgIFwibGFzdF92YWx1ZVwiLFxuICAgIFwibGVhZFwiLFxuICAgIFwibGlzdGFnZ1wiLFxuICAgIFwibG5cIixcbiAgICBcImxvZ1wiLFxuICAgIFwibG9nMTBcIixcbiAgICBcImxvd2VyXCIsXG4gICAgXCJtYXhcIixcbiAgICBcIm1pblwiLFxuICAgIFwibW9kXCIsXG4gICAgXCJudGhfdmFsdWVcIixcbiAgICBcIm50aWxlXCIsXG4gICAgXCJudWxsaWZcIixcbiAgICBcInBlcmNlbnRfcmFua1wiLFxuICAgIFwicGVyY2VudGlsZV9jb250XCIsXG4gICAgXCJwZXJjZW50aWxlX2Rpc2NcIixcbiAgICBcInBvc2l0aW9uXCIsXG4gICAgXCJwb3NpdGlvbl9yZWdleFwiLFxuICAgIFwicG93ZXJcIixcbiAgICBcInJhbmtcIixcbiAgICBcInJlZ3JfYXZneFwiLFxuICAgIFwicmVncl9hdmd5XCIsXG4gICAgXCJyZWdyX2NvdW50XCIsXG4gICAgXCJyZWdyX2ludGVyY2VwdFwiLFxuICAgIFwicmVncl9yMlwiLFxuICAgIFwicmVncl9zbG9wZVwiLFxuICAgIFwicmVncl9zeHhcIixcbiAgICBcInJlZ3Jfc3h5XCIsXG4gICAgXCJyZWdyX3N5eVwiLFxuICAgIFwicm93X251bWJlclwiLFxuICAgIFwic2luXCIsXG4gICAgXCJzaW5oXCIsXG4gICAgXCJzcXJ0XCIsXG4gICAgXCJzdGRkZXZfcG9wXCIsXG4gICAgXCJzdGRkZXZfc2FtcFwiLFxuICAgIFwic3Vic3RyaW5nXCIsXG4gICAgXCJzdWJzdHJpbmdfcmVnZXhcIixcbiAgICBcInN1bVwiLFxuICAgIFwidGFuXCIsXG4gICAgXCJ0YW5oXCIsXG4gICAgXCJ0cmFuc2xhdGVcIixcbiAgICBcInRyYW5zbGF0ZV9yZWdleFwiLFxuICAgIFwidHJlYXRcIixcbiAgICBcInRyaW1cIixcbiAgICBcInRyaW1fYXJyYXlcIixcbiAgICBcInVubmVzdFwiLFxuICAgIFwidXBwZXJcIixcbiAgICBcInZhbHVlX29mXCIsXG4gICAgXCJ2YXJfcG9wXCIsXG4gICAgXCJ2YXJfc2FtcFwiLFxuICAgIFwid2lkdGhfYnVja2V0XCIsXG4gIF07XG5cbiAgLy8gdGhlc2UgZnVuY3Rpb25zIGNhblxuICBjb25zdCBQT1NTSUJMRV9XSVRIT1VUX1BBUkVOUyA9IFtcbiAgICBcImN1cnJlbnRfY2F0YWxvZ1wiLFxuICAgIFwiY3VycmVudF9kYXRlXCIsXG4gICAgXCJjdXJyZW50X2RlZmF1bHRfdHJhbnNmb3JtX2dyb3VwXCIsXG4gICAgXCJjdXJyZW50X3BhdGhcIixcbiAgICBcImN1cnJlbnRfcm9sZVwiLFxuICAgIFwiY3VycmVudF9zY2hlbWFcIixcbiAgICBcImN1cnJlbnRfdHJhbnNmb3JtX2dyb3VwX2Zvcl90eXBlXCIsXG4gICAgXCJjdXJyZW50X3VzZXJcIixcbiAgICBcInNlc3Npb25fdXNlclwiLFxuICAgIFwic3lzdGVtX3RpbWVcIixcbiAgICBcInN5c3RlbV91c2VyXCIsXG4gICAgXCJjdXJyZW50X3RpbWVcIixcbiAgICBcImxvY2FsdGltZVwiLFxuICAgIFwiY3VycmVudF90aW1lc3RhbXBcIixcbiAgICBcImxvY2FsdGltZXN0YW1wXCJcbiAgXTtcblxuICAvLyB0aG9zZSBleGlzdCB0byBib29zdCByZWxldmFuY2UgbWFraW5nIHRoZXNlIHZlcnlcbiAgLy8gXCJTUUwgbGlrZVwiIGtleXdvcmQgY29tYm9zIHdvcnRoICsxIGV4dHJhIHJlbGV2YW5jZVxuICBjb25zdCBDT01CT1MgPSBbXG4gICAgXCJjcmVhdGUgdGFibGVcIixcbiAgICBcImluc2VydCBpbnRvXCIsXG4gICAgXCJwcmltYXJ5IGtleVwiLFxuICAgIFwiZm9yZWlnbiBrZXlcIixcbiAgICBcIm5vdCBudWxsXCIsXG4gICAgXCJhbHRlciB0YWJsZVwiLFxuICAgIFwiYWRkIGNvbnN0cmFpbnRcIixcbiAgICBcImdyb3VwaW5nIHNldHNcIixcbiAgICBcIm9uIG92ZXJmbG93XCIsXG4gICAgXCJjaGFyYWN0ZXIgc2V0XCIsXG4gICAgXCJyZXNwZWN0IG51bGxzXCIsXG4gICAgXCJpZ25vcmUgbnVsbHNcIixcbiAgICBcIm51bGxzIGZpcnN0XCIsXG4gICAgXCJudWxscyBsYXN0XCIsXG4gICAgXCJkZXB0aCBmaXJzdFwiLFxuICAgIFwiYnJlYWR0aCBmaXJzdFwiXG4gIF07XG5cbiAgY29uc3QgRlVOQ1RJT05TID0gUkVTRVJWRURfRlVOQ1RJT05TO1xuXG4gIGNvbnN0IEtFWVdPUkRTID0gW1xuICAgIC4uLlJFU0VSVkVEX1dPUkRTLFxuICAgIC4uLk5PTl9SRVNFUlZFRF9XT1JEU1xuICBdLmZpbHRlcigoa2V5d29yZCkgPT4ge1xuICAgIHJldHVybiAhUkVTRVJWRURfRlVOQ1RJT05TLmluY2x1ZGVzKGtleXdvcmQpO1xuICB9KTtcblxuICBjb25zdCBWQVJJQUJMRSA9IHtcbiAgICBjbGFzc05hbWU6IFwidmFyaWFibGVcIixcbiAgICBiZWdpbjogL0BbYS16MC05XVthLXowLTlfXSovLFxuICB9O1xuXG4gIGNvbnN0IE9QRVJBVE9SID0ge1xuICAgIGNsYXNzTmFtZTogXCJvcGVyYXRvclwiLFxuICAgIGJlZ2luOiAvWy0rKi89JV5+XXwmJj98XFx8XFx8P3whPT98PCg/Oj0+P3w8fD4pP3w+Wz49XT8vLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgfTtcblxuICBjb25zdCBGVU5DVElPTl9DQUxMID0ge1xuICAgIGJlZ2luOiByZWdleC5jb25jYXQoL1xcYi8sIHJlZ2V4LmVpdGhlciguLi5GVU5DVElPTlMpLCAvXFxzKlxcKC8pLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICBrZXl3b3JkczogeyBidWlsdF9pbjogRlVOQ1RJT05TIH1cbiAgfTtcblxuICAvLyBrZXl3b3JkcyB3aXRoIGxlc3MgdGhhbiAzIGxldHRlcnMgYXJlIHJlZHVjZWQgaW4gcmVsZXZhbmN5XG4gIGZ1bmN0aW9uIHJlZHVjZVJlbGV2YW5jeShsaXN0LCB7XG4gICAgZXhjZXB0aW9ucywgd2hlblxuICB9ID0ge30pIHtcbiAgICBjb25zdCBxdWFsaWZ5Rm4gPSB3aGVuO1xuICAgIGV4Y2VwdGlvbnMgPSBleGNlcHRpb25zIHx8IFtdO1xuICAgIHJldHVybiBsaXN0Lm1hcCgoaXRlbSkgPT4ge1xuICAgICAgaWYgKGl0ZW0ubWF0Y2goL1xcfFxcZCskLykgfHwgZXhjZXB0aW9ucy5pbmNsdWRlcyhpdGVtKSkge1xuICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgIH0gZWxzZSBpZiAocXVhbGlmeUZuKGl0ZW0pKSB7XG4gICAgICAgIHJldHVybiBgJHtpdGVtfXwwYDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnU1FMJyxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIC8vIGRvZXMgbm90IGluY2x1ZGUge30gb3IgSFRNTCB0YWdzIGA8L2BcbiAgICBpbGxlZ2FsOiAvW3t9XXw8XFwvLyxcbiAgICBrZXl3b3Jkczoge1xuICAgICAgJHBhdHRlcm46IC9cXGJbXFx3XFwuXSsvLFxuICAgICAga2V5d29yZDpcbiAgICAgICAgcmVkdWNlUmVsZXZhbmN5KEtFWVdPUkRTLCB7IHdoZW46ICh4KSA9PiB4Lmxlbmd0aCA8IDMgfSksXG4gICAgICBsaXRlcmFsOiBMSVRFUkFMUyxcbiAgICAgIHR5cGU6IFRZUEVTLFxuICAgICAgYnVpbHRfaW46IFBPU1NJQkxFX1dJVEhPVVRfUEFSRU5TXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogcmVnZXguZWl0aGVyKC4uLkNPTUJPUyksXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAga2V5d29yZHM6IHtcbiAgICAgICAgICAkcGF0dGVybjogL1tcXHdcXC5dKy8sXG4gICAgICAgICAga2V5d29yZDogS0VZV09SRFMuY29uY2F0KENPTUJPUyksXG4gICAgICAgICAgbGl0ZXJhbDogTElURVJBTFMsXG4gICAgICAgICAgdHlwZTogVFlQRVNcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogXCJ0eXBlXCIsXG4gICAgICAgIGJlZ2luOiByZWdleC5laXRoZXIoLi4uTVVMVElfV09SRF9UWVBFUylcbiAgICAgIH0sXG4gICAgICBGVU5DVElPTl9DQUxMLFxuICAgICAgVkFSSUFCTEUsXG4gICAgICBTVFJJTkcsXG4gICAgICBRVU9URURfSURFTlRJRklFUixcbiAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBDT01NRU5UX01PREUsXG4gICAgICBPUEVSQVRPUlxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzcWw7XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///85\n");
  1834. /***/ }),
  1835. /* 86 */
  1836. /*!********************************************************************************************************!*\
  1837. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/highlight.js/lib/languages/swift.js ***!
  1838. \********************************************************************************************************/
  1839. /*! no static exports found */
  1840. /***/ (function(module, exports, __webpack_require__) {
  1841. eval("var _toConsumableArray = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ 49);\nvar _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4);\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n return concat('(?=', re, ')');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var joined = args.map(function (x) {\n return source(x);\n }).join(\"\");\n return joined;\n}\n\n/**\n * @param { Array<string | RegExp | Object> } args\n * @returns {object}\n */\nfunction stripOptionsFromArgs(args) {\n var opts = args[args.length - 1];\n if (_typeof(opts) === 'object' && opts.constructor === Object) {\n args.splice(args.length - 1, 1);\n return opts;\n } else {\n return {};\n }\n}\n\n/** @typedef { {capture?: boolean} } RegexEitherOptions */\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] | [...(RegExp | string)[], RegexEitherOptions]} args\n * @returns {string}\n */\nfunction either() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n /** @type { object & {capture?: boolean} } */\n var opts = stripOptionsFromArgs(args);\n var joined = '(' + (opts.capture ? \"\" : \"?:\") + args.map(function (x) {\n return source(x);\n }).join(\"|\") + \")\";\n return joined;\n}\nvar keywordWrapper = function keywordWrapper(keyword) {\n return concat(/\\b/, keyword, /\\w$/.test(keyword) ? /\\b/ : /\\B/);\n};\n\n// Keywords that require a leading dot.\nvar dotKeywords = ['Protocol',\n// contextual\n'Type' // contextual\n].map(keywordWrapper);\n\n// Keywords that may have a leading dot.\nvar optionalDotKeywords = ['init', 'self'].map(keywordWrapper);\n\n// should register as keyword, not type\nvar keywordTypes = ['Any', 'Self'];\n\n// Regular keywords and literals.\nvar keywords = [\n// strings below will be fed into the regular `keywords` engine while regex\n// will result in additional modes being created to scan for those keywords to\n// avoid conflicts with other rules\n'actor', 'any',\n// contextual\n'associatedtype', 'async', 'await', /as\\?/,\n// operator\n/as!/,\n// operator\n'as',\n// operator\n'break', 'case', 'catch', 'class', 'continue', 'convenience',\n// contextual\n'default', 'defer', 'deinit', 'didSet',\n// contextual\n'distributed', 'do', 'dynamic',\n// contextual\n'else', 'enum', 'extension', 'fallthrough', /fileprivate\\(set\\)/, 'fileprivate', 'final',\n// contextual\n'for', 'func', 'get',\n// contextual\n'guard', 'if', 'import', 'indirect',\n// contextual\n'infix',\n// contextual\n/init\\?/, /init!/, 'inout', /internal\\(set\\)/, 'internal', 'in', 'is',\n// operator\n'isolated',\n// contextual\n'nonisolated',\n// contextual\n'lazy',\n// contextual\n'let', 'mutating',\n// contextual\n'nonmutating',\n// contextual\n/open\\(set\\)/,\n// contextual\n'open',\n// contextual\n'operator', 'optional',\n// contextual\n'override',\n// contextual\n'postfix',\n// contextual\n'precedencegroup', 'prefix',\n// contextual\n/private\\(set\\)/, 'private', 'protocol', /public\\(set\\)/, 'public', 'repeat', 'required',\n// contextual\n'rethrows', 'return', 'set',\n// contextual\n'some',\n// contextual\n'static', 'struct', 'subscript', 'super', 'switch', 'throws', 'throw', /try\\?/,\n// operator\n/try!/,\n// operator\n'try',\n// operator\n'typealias', /unowned\\(safe\\)/,\n// contextual\n/unowned\\(unsafe\\)/,\n// contextual\n'unowned',\n// contextual\n'var', 'weak',\n// contextual\n'where', 'while', 'willSet' // contextual\n];\n\n// NOTE: Contextual keywords are reserved only in specific contexts.\n// Ideally, these should be matched using modes to avoid false positives.\n\n// Literals.\nvar literals = ['false', 'nil', 'true'];\n\n// Keywords used in precedence groups.\nvar precedencegroupKeywords = ['assignment', 'associativity', 'higherThan', 'left', 'lowerThan', 'none', 'right'];\n\n// Keywords that start with a number sign (#).\n// #(un)available is handled separately.\nvar numberSignKeywords = ['#colorLiteral', '#column', '#dsohandle', '#else', '#elseif', '#endif', '#error', '#file', '#fileID', '#fileLiteral', '#filePath', '#function', '#if', '#imageLiteral', '#keyPath', '#line', '#selector', '#sourceLocation', '#warn_unqualified_access', '#warning'];\n\n// Global functions in the Standard Library.\nvar builtIns = ['abs', 'all', 'any', 'assert', 'assertionFailure', 'debugPrint', 'dump', 'fatalError', 'getVaList', 'isKnownUniquelyReferenced', 'max', 'min', 'numericCast', 'pointwiseMax', 'pointwiseMin', 'precondition', 'preconditionFailure', 'print', 'readLine', 'repeatElement', 'sequence', 'stride', 'swap', 'swift_unboxFromSwiftValueWithType', 'transcode', 'type', 'unsafeBitCast', 'unsafeDowncast', 'withExtendedLifetime', 'withUnsafeMutablePointer', 'withUnsafePointer', 'withVaList', 'withoutActuallyEscaping', 'zip'];\n\n// Valid first characters for operators.\nvar operatorHead = either(/[/=\\-+!*%<>&|^~?]/, /[\\u00A1-\\u00A7]/, /[\\u00A9\\u00AB]/, /[\\u00AC\\u00AE]/, /[\\u00B0\\u00B1]/, /[\\u00B6\\u00BB\\u00BF\\u00D7\\u00F7]/, /[\\u2016-\\u2017]/, /[\\u2020-\\u2027]/, /[\\u2030-\\u203E]/, /[\\u2041-\\u2053]/, /[\\u2055-\\u205E]/, /[\\u2190-\\u23FF]/, /[\\u2500-\\u2775]/, /[\\u2794-\\u2BFF]/, /[\\u2E00-\\u2E7F]/, /[\\u3001-\\u3003]/, /[\\u3008-\\u3020]/, /[\\u3030]/);\n\n// Valid characters for operators.\nvar operatorCharacter = either(operatorHead, /[\\u0300-\\u036F]/, /[\\u1DC0-\\u1DFF]/, /[\\u20D0-\\u20FF]/, /[\\uFE00-\\uFE0F]/, /[\\uFE20-\\uFE2F]/\n// TODO: The following characters are also allowed, but the regex isn't supported yet.\n// /[\\u{E0100}-\\u{E01EF}]/u\n);\n\n// Valid operator.\nvar operator = concat(operatorHead, operatorCharacter, '*');\n\n// Valid first characters for identifiers.\nvar identifierHead = either(/[a-zA-Z_]/, /[\\u00A8\\u00AA\\u00AD\\u00AF\\u00B2-\\u00B5\\u00B7-\\u00BA]/, /[\\u00BC-\\u00BE\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u00FF]/, /[\\u0100-\\u02FF\\u0370-\\u167F\\u1681-\\u180D\\u180F-\\u1DBF]/, /[\\u1E00-\\u1FFF]/, /[\\u200B-\\u200D\\u202A-\\u202E\\u203F-\\u2040\\u2054\\u2060-\\u206F]/, /[\\u2070-\\u20CF\\u2100-\\u218F\\u2460-\\u24FF\\u2776-\\u2793]/, /[\\u2C00-\\u2DFF\\u2E80-\\u2FFF]/, /[\\u3004-\\u3007\\u3021-\\u302F\\u3031-\\u303F\\u3040-\\uD7FF]/, /[\\uF900-\\uFD3D\\uFD40-\\uFDCF\\uFDF0-\\uFE1F\\uFE30-\\uFE44]/, /[\\uFE47-\\uFEFE\\uFF00-\\uFFFD]/ // Should be /[\\uFE47-\\uFFFD]/, but we have to exclude FEFF.\n// The following characters are also allowed, but the regexes aren't supported yet.\n// /[\\u{10000}-\\u{1FFFD}\\u{20000-\\u{2FFFD}\\u{30000}-\\u{3FFFD}\\u{40000}-\\u{4FFFD}]/u,\n// /[\\u{50000}-\\u{5FFFD}\\u{60000-\\u{6FFFD}\\u{70000}-\\u{7FFFD}\\u{80000}-\\u{8FFFD}]/u,\n// /[\\u{90000}-\\u{9FFFD}\\u{A0000-\\u{AFFFD}\\u{B0000}-\\u{BFFFD}\\u{C0000}-\\u{CFFFD}]/u,\n// /[\\u{D0000}-\\u{DFFFD}\\u{E0000-\\u{EFFFD}]/u\n);\n\n// Valid characters for identifiers.\nvar identifierCharacter = either(identifierHead, /\\d/, /[\\u0300-\\u036F\\u1DC0-\\u1DFF\\u20D0-\\u20FF\\uFE20-\\uFE2F]/);\n\n// Valid identifier.\nvar identifier = concat(identifierHead, identifierCharacter, '*');\n\n// Valid type identifier.\nvar typeIdentifier = concat(/[A-Z]/, identifierCharacter, '*');\n\n// Built-in attributes, which are highlighted as keywords.\n// @available is handled separately.\nvar keywordAttributes = ['autoclosure', concat(/convention\\(/, either('swift', 'block', 'c'), /\\)/), 'discardableResult', 'dynamicCallable', 'dynamicMemberLookup', 'escaping', 'frozen', 'GKInspectable', 'IBAction', 'IBDesignable', 'IBInspectable', 'IBOutlet', 'IBSegueAction', 'inlinable', 'main', 'nonobjc', 'NSApplicationMain', 'NSCopying', 'NSManaged', concat(/objc\\(/, identifier, /\\)/), 'objc', 'objcMembers', 'propertyWrapper', 'requires_stored_property_inits', 'resultBuilder', 'testable', 'UIApplicationMain', 'unknown', 'usableFromInline'];\n\n// Contextual keywords used in @available and #(un)available.\nvar availabilityKeywords = ['iOS', 'iOSApplicationExtension', 'macOS', 'macOSApplicationExtension', 'macCatalyst', 'macCatalystApplicationExtension', 'watchOS', 'watchOSApplicationExtension', 'tvOS', 'tvOSApplicationExtension', 'swift'];\n\n/*\nLanguage: Swift\nDescription: Swift is a general-purpose programming language built using a modern approach to safety, performance, and software design patterns.\nAuthor: Steven Van Impe <steven.vanimpe@icloud.com>\nContributors: Chris Eidhof <chris@eidhof.nl>, Nate Cook <natecook@gmail.com>, Alexander Lichter <manniL@gmx.net>, Richard Gibson <gibson042@github>\nWebsite: https://swift.org\nCategory: common, system\n*/\n\n/** @type LanguageFn */\nfunction swift(hljs) {\n var WHITESPACE = {\n match: /\\s+/,\n relevance: 0\n };\n // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#ID411\n var BLOCK_COMMENT = hljs.COMMENT('/\\\\*', '\\\\*/', {\n contains: ['self']\n });\n var COMMENTS = [hljs.C_LINE_COMMENT_MODE, BLOCK_COMMENT];\n\n // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#ID413\n // https://docs.swift.org/swift-book/ReferenceManual/zzSummaryOfTheGrammar.html\n var DOT_KEYWORD = {\n match: [/\\./, either.apply(void 0, _toConsumableArray(dotKeywords).concat(_toConsumableArray(optionalDotKeywords)))],\n className: {\n 2: \"keyword\"\n }\n };\n var KEYWORD_GUARD = {\n // Consume .keyword to prevent highlighting properties and methods as keywords.\n match: concat(/\\./, either.apply(void 0, keywords)),\n relevance: 0\n };\n var PLAIN_KEYWORDS = keywords.filter(function (kw) {\n return typeof kw === 'string';\n }).concat([\"_|0\"]); // seems common, so 0 relevance\n var REGEX_KEYWORDS = keywords.filter(function (kw) {\n return typeof kw !== 'string';\n }) // find regex\n .concat(keywordTypes).map(keywordWrapper);\n var KEYWORD = {\n variants: [{\n className: 'keyword',\n match: either.apply(void 0, _toConsumableArray(REGEX_KEYWORDS).concat(_toConsumableArray(optionalDotKeywords)))\n }]\n };\n // find all the regular keywords\n var KEYWORDS = {\n $pattern: either(/\\b\\w+/,\n // regular keywords\n /#\\w+/ // number keywords\n ),\n\n keyword: PLAIN_KEYWORDS.concat(numberSignKeywords),\n literal: literals\n };\n var KEYWORD_MODES = [DOT_KEYWORD, KEYWORD_GUARD, KEYWORD];\n\n // https://github.com/apple/swift/tree/main/stdlib/public/core\n var BUILT_IN_GUARD = {\n // Consume .built_in to prevent highlighting properties and methods.\n match: concat(/\\./, either.apply(void 0, builtIns)),\n relevance: 0\n };\n var BUILT_IN = {\n className: 'built_in',\n match: concat(/\\b/, either.apply(void 0, builtIns), /(?=\\()/)\n };\n var BUILT_INS = [BUILT_IN_GUARD, BUILT_IN];\n\n // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#ID418\n var OPERATOR_GUARD = {\n // Prevent -> from being highlighting as an operator.\n match: /->/,\n relevance: 0\n };\n var OPERATOR = {\n className: 'operator',\n relevance: 0,\n variants: [{\n match: operator\n }, {\n // dot-operator: only operators that start with a dot are allowed to use dots as\n // characters (..., ...<, .*, etc). So there rule here is: a dot followed by one or more\n // characters that may also include dots.\n match: \"\\\\.(\\\\.|\".concat(operatorCharacter, \")+\")\n }]\n };\n var OPERATORS = [OPERATOR_GUARD, OPERATOR];\n\n // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#grammar_numeric-literal\n // TODO: Update for leading `-` after lookbehind is supported everywhere\n var decimalDigits = '([0-9]_*)+';\n var hexDigits = '([0-9a-fA-F]_*)+';\n var NUMBER = {\n className: 'number',\n relevance: 0,\n variants: [\n // decimal floating-point-literal (subsumes decimal-literal)\n {\n match: \"\\\\b(\".concat(decimalDigits, \")(\\\\.(\").concat(decimalDigits, \"))?\") + \"([eE][+-]?(\".concat(decimalDigits, \"))?\\\\b\")\n },\n // hexadecimal floating-point-literal (subsumes hexadecimal-literal)\n {\n match: \"\\\\b0x(\".concat(hexDigits, \")(\\\\.(\").concat(hexDigits, \"))?\") + \"([pP][+-]?(\".concat(decimalDigits, \"))?\\\\b\")\n },\n // octal-literal\n {\n match: /\\b0o([0-7]_*)+\\b/\n },\n // binary-literal\n {\n match: /\\b0b([01]_*)+\\b/\n }]\n };\n\n // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#grammar_string-literal\n var ESCAPED_CHARACTER = function ESCAPED_CHARACTER() {\n var rawDelimiter = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n return {\n className: 'subst',\n variants: [{\n match: concat(/\\\\/, rawDelimiter, /[0\\\\tnr\"']/)\n }, {\n match: concat(/\\\\/, rawDelimiter, /u\\{[0-9a-fA-F]{1,8}\\}/)\n }]\n };\n };\n var ESCAPED_NEWLINE = function ESCAPED_NEWLINE() {\n var rawDelimiter = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n return {\n className: 'subst',\n match: concat(/\\\\/, rawDelimiter, /[\\t ]*(?:[\\r\\n]|\\r\\n)/)\n };\n };\n var INTERPOLATION = function INTERPOLATION() {\n var rawDelimiter = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n return {\n className: 'subst',\n label: \"interpol\",\n begin: concat(/\\\\/, rawDelimiter, /\\(/),\n end: /\\)/\n };\n };\n var MULTILINE_STRING = function MULTILINE_STRING() {\n var rawDelimiter = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n return {\n begin: concat(rawDelimiter, /\"\"\"/),\n end: concat(/\"\"\"/, rawDelimiter),\n contains: [ESCAPED_CHARACTER(rawDelimiter), ESCAPED_NEWLINE(rawDelimiter), INTERPOLATION(rawDelimiter)]\n };\n };\n var SINGLE_LINE_STRING = function SINGLE_LINE_STRING() {\n var rawDelimiter = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n return {\n begin: concat(rawDelimiter, /\"/),\n end: concat(/\"/, rawDelimiter),\n contains: [ESCAPED_CHARACTER(rawDelimiter), INTERPOLATION(rawDelimiter)]\n };\n };\n var STRING = {\n className: 'string',\n variants: [MULTILINE_STRING(), MULTILINE_STRING(\"#\"), MULTILINE_STRING(\"##\"), MULTILINE_STRING(\"###\"), SINGLE_LINE_STRING(), SINGLE_LINE_STRING(\"#\"), SINGLE_LINE_STRING(\"##\"), SINGLE_LINE_STRING(\"###\")]\n };\n\n // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#ID412\n var QUOTED_IDENTIFIER = {\n match: concat(/`/, identifier, /`/)\n };\n var IMPLICIT_PARAMETER = {\n className: 'variable',\n match: /\\$\\d+/\n };\n var PROPERTY_WRAPPER_PROJECTION = {\n className: 'variable',\n match: \"\\\\$\".concat(identifierCharacter, \"+\")\n };\n var IDENTIFIERS = [QUOTED_IDENTIFIER, IMPLICIT_PARAMETER, PROPERTY_WRAPPER_PROJECTION];\n\n // https://docs.swift.org/swift-book/ReferenceManual/Attributes.html\n var AVAILABLE_ATTRIBUTE = {\n match: /(@|#(un)?)available/,\n className: \"keyword\",\n starts: {\n contains: [{\n begin: /\\(/,\n end: /\\)/,\n keywords: availabilityKeywords,\n contains: [].concat(OPERATORS, [NUMBER, STRING])\n }]\n }\n };\n var KEYWORD_ATTRIBUTE = {\n className: 'keyword',\n match: concat(/@/, either.apply(void 0, keywordAttributes))\n };\n var USER_DEFINED_ATTRIBUTE = {\n className: 'meta',\n match: concat(/@/, identifier)\n };\n var ATTRIBUTES = [AVAILABLE_ATTRIBUTE, KEYWORD_ATTRIBUTE, USER_DEFINED_ATTRIBUTE];\n\n // https://docs.swift.org/swift-book/ReferenceManual/Types.html\n var TYPE = {\n match: lookahead(/\\b[A-Z]/),\n relevance: 0,\n contains: [{\n // Common Apple frameworks, for relevance boost\n className: 'type',\n match: concat(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/, identifierCharacter, '+')\n }, {\n // Type identifier\n className: 'type',\n match: typeIdentifier,\n relevance: 0\n }, {\n // Optional type\n match: /[?!]+/,\n relevance: 0\n }, {\n // Variadic parameter\n match: /\\.\\.\\./,\n relevance: 0\n }, {\n // Protocol composition\n match: concat(/\\s+&\\s+/, lookahead(typeIdentifier)),\n relevance: 0\n }]\n };\n var GENERIC_ARGUMENTS = {\n begin: /</,\n end: />/,\n keywords: KEYWORDS,\n contains: [].concat(COMMENTS, KEYWORD_MODES, ATTRIBUTES, [OPERATOR_GUARD, TYPE])\n };\n TYPE.contains.push(GENERIC_ARGUMENTS);\n\n // https://docs.swift.org/swift-book/ReferenceManual/Expressions.html#ID552\n // Prevents element names from being highlighted as keywords.\n var TUPLE_ELEMENT_NAME = {\n match: concat(identifier, /\\s*:/),\n keywords: \"_|0\",\n relevance: 0\n };\n // Matches tuples as well as the parameter list of a function type.\n var TUPLE = {\n begin: /\\(/,\n end: /\\)/,\n relevance: 0,\n keywords: KEYWORDS,\n contains: ['self', TUPLE_ELEMENT_NAME].concat(COMMENTS, KEYWORD_MODES, BUILT_INS, OPERATORS, [NUMBER, STRING], IDENTIFIERS, ATTRIBUTES, [TYPE])\n };\n var GENERIC_PARAMETERS = {\n begin: /</,\n end: />/,\n contains: [].concat(COMMENTS, [TYPE])\n };\n var FUNCTION_PARAMETER_NAME = {\n begin: either(lookahead(concat(identifier, /\\s*:/)), lookahead(concat(identifier, /\\s+/, identifier, /\\s*:/))),\n end: /:/,\n relevance: 0,\n contains: [{\n className: 'keyword',\n match: /\\b_\\b/\n }, {\n className: 'params',\n match: identifier\n }]\n };\n var FUNCTION_PARAMETERS = {\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS,\n contains: [FUNCTION_PARAMETER_NAME].concat(COMMENTS, KEYWORD_MODES, OPERATORS, [NUMBER, STRING], ATTRIBUTES, [TYPE, TUPLE]),\n endsParent: true,\n illegal: /[\"']/\n };\n // https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID362\n var FUNCTION = {\n match: [/func/, /\\s+/, either(QUOTED_IDENTIFIER.match, identifier, operator)],\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [GENERIC_PARAMETERS, FUNCTION_PARAMETERS, WHITESPACE],\n illegal: [/\\[/, /%/]\n };\n\n // https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID375\n // https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID379\n var INIT_SUBSCRIPT = {\n match: [/\\b(?:subscript|init[?!]?)/, /\\s*(?=[<(])/],\n className: {\n 1: \"keyword\"\n },\n contains: [GENERIC_PARAMETERS, FUNCTION_PARAMETERS, WHITESPACE],\n illegal: /\\[|%/\n };\n // https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID380\n var OPERATOR_DECLARATION = {\n match: [/operator/, /\\s+/, operator],\n className: {\n 1: \"keyword\",\n 3: \"title\"\n }\n };\n\n // https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID550\n var PRECEDENCEGROUP = {\n begin: [/precedencegroup/, /\\s+/, typeIdentifier],\n className: {\n 1: \"keyword\",\n 3: \"title\"\n },\n contains: [TYPE],\n keywords: [].concat(precedencegroupKeywords, literals),\n end: /}/\n };\n\n // Add supported submodes to string interpolation.\n var _iterator = _createForOfIteratorHelper(STRING.variants),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var variant = _step.value;\n var interpolation = variant.contains.find(function (mode) {\n return mode.label === \"interpol\";\n });\n // TODO: Interpolation can contain any expression, so there's room for improvement here.\n interpolation.keywords = KEYWORDS;\n var submodes = [].concat(KEYWORD_MODES, BUILT_INS, OPERATORS, [NUMBER, STRING], IDENTIFIERS);\n interpolation.contains = [].concat(_toConsumableArray(submodes), [{\n begin: /\\(/,\n end: /\\)/,\n contains: ['self'].concat(_toConsumableArray(submodes))\n }]);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n return {\n name: 'Swift',\n keywords: KEYWORDS,\n contains: [].concat(COMMENTS, [FUNCTION, INIT_SUBSCRIPT, {\n beginKeywords: 'struct protocol class extension enum actor',\n end: '\\\\{',\n excludeEnd: true,\n keywords: KEYWORDS,\n contains: [hljs.inherit(hljs.TITLE_MODE, {\n className: \"title.class\",\n begin: /[A-Za-z$_][\\u00C0-\\u02B80-9A-Za-z$_]*/\n })].concat(KEYWORD_MODES)\n }, OPERATOR_DECLARATION, PRECEDENCEGROUP, {\n beginKeywords: 'import',\n end: /$/,\n contains: [].concat(COMMENTS),\n relevance: 0\n }], KEYWORD_MODES, BUILT_INS, OPERATORS, [NUMBER, STRING], IDENTIFIERS, ATTRIBUTES, [TYPE, TUPLE])\n };\n}\nmodule.exports = swift;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvc3dpZnQuanMiXSwibmFtZXMiOlsic291cmNlIiwicmUiLCJsb29rYWhlYWQiLCJjb25jYXQiLCJhcmdzIiwiam9pbmVkIiwibWFwIiwieCIsImpvaW4iLCJzdHJpcE9wdGlvbnNGcm9tQXJncyIsIm9wdHMiLCJsZW5ndGgiLCJjb25zdHJ1Y3RvciIsIk9iamVjdCIsInNwbGljZSIsImVpdGhlciIsImNhcHR1cmUiLCJrZXl3b3JkV3JhcHBlciIsImtleXdvcmQiLCJ0ZXN0IiwiZG90S2V5d29yZHMiLCJvcHRpb25hbERvdEtleXdvcmRzIiwia2V5d29yZFR5cGVzIiwia2V5d29yZHMiLCJsaXRlcmFscyIsInByZWNlZGVuY2Vncm91cEtleXdvcmRzIiwibnVtYmVyU2lnbktleXdvcmRzIiwiYnVpbHRJbnMiLCJvcGVyYXRvckhlYWQiLCJvcGVyYXRvckNoYXJhY3RlciIsIm9wZXJhdG9yIiwiaWRlbnRpZmllckhlYWQiLCJpZGVudGlmaWVyQ2hhcmFjdGVyIiwiaWRlbnRpZmllciIsInR5cGVJZGVudGlmaWVyIiwia2V5d29yZEF0dHJpYnV0ZXMiLCJhdmFpbGFiaWxpdHlLZXl3b3JkcyIsInN3aWZ0IiwiaGxqcyIsIldISVRFU1BBQ0UiLCJtYXRjaCIsInJlbGV2YW5jZSIsIkJMT0NLX0NPTU1FTlQiLCJDT01NRU5UIiwiY29udGFpbnMiLCJDT01NRU5UUyIsIkNfTElORV9DT01NRU5UX01PREUiLCJET1RfS0VZV09SRCIsImNsYXNzTmFtZSIsIktFWVdPUkRfR1VBUkQiLCJQTEFJTl9LRVlXT1JEUyIsImZpbHRlciIsImt3IiwiUkVHRVhfS0VZV09SRFMiLCJLRVlXT1JEIiwidmFyaWFudHMiLCJLRVlXT1JEUyIsIiRwYXR0ZXJuIiwibGl0ZXJhbCIsIktFWVdPUkRfTU9ERVMiLCJCVUlMVF9JTl9HVUFSRCIsIkJVSUxUX0lOIiwiQlVJTFRfSU5TIiwiT1BFUkFUT1JfR1VBUkQiLCJPUEVSQVRPUiIsIk9QRVJBVE9SUyIsImRlY2ltYWxEaWdpdHMiLCJoZXhEaWdpdHMiLCJOVU1CRVIiLCJFU0NBUEVEX0NIQVJBQ1RFUiIsInJhd0RlbGltaXRlciIsIkVTQ0FQRURfTkVXTElORSIsIklOVEVSUE9MQVRJT04iLCJsYWJlbCIsImJlZ2luIiwiZW5kIiwiTVVMVElMSU5FX1NUUklORyIsIlNJTkdMRV9MSU5FX1NUUklORyIsIlNUUklORyIsIlFVT1RFRF9JREVOVElGSUVSIiwiSU1QTElDSVRfUEFSQU1FVEVSIiwiUFJPUEVSVFlfV1JBUFBFUl9QUk9KRUNUSU9OIiwiSURFTlRJRklFUlMiLCJBVkFJTEFCTEVfQVRUUklCVVRFIiwic3RhcnRzIiwiS0VZV09SRF9BVFRSSUJVVEUiLCJVU0VSX0RFRklORURfQVRUUklCVVRFIiwiQVRUUklCVVRFUyIsIlRZUEUiLCJHRU5FUklDX0FSR1VNRU5UUyIsInB1c2giLCJUVVBMRV9FTEVNRU5UX05BTUUiLCJUVVBMRSIsIkdFTkVSSUNfUEFSQU1FVEVSUyIsIkZVTkNUSU9OX1BBUkFNRVRFUl9OQU1FIiwiRlVOQ1RJT05fUEFSQU1FVEVSUyIsImVuZHNQYXJlbnQiLCJpbGxlZ2FsIiwiRlVOQ1RJT04iLCJJTklUX1NVQlNDUklQVCIsIk9QRVJBVE9SX0RFQ0xBUkFUSU9OIiwiUFJFQ0VERU5DRUdST1VQIiwidmFyaWFudCIsImludGVycG9sYXRpb24iLCJmaW5kIiwibW9kZSIsInN1Ym1vZGVzIiwibmFtZSIsImJlZ2luS2V5d29yZHMiLCJleGNsdWRlRW5kIiwiaW5oZXJpdCIsIlRJVExFX01PREUiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsTUFBTSxDQUFDQyxFQUFFLEVBQUU7RUFDbEIsSUFBSSxDQUFDQSxFQUFFLEVBQUUsT0FBTyxJQUFJO0VBQ3BCLElBQUksT0FBT0EsRUFBRSxLQUFLLFFBQVEsRUFBRSxPQUFP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ImZpbGUiOiI4Ni5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcmV0dXJucyB7UmVnRXhwfVxuICogKi9cblxuLyoqXG4gKiBAcGFyYW0ge1JlZ0V4cCB8IHN0cmluZyB9IHJlXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBzb3VyY2UocmUpIHtcbiAgaWYgKCFyZSkgcmV0dXJuIG51bGw7XG4gIGlmICh0eXBlb2YgcmUgPT09IFwic3RyaW5nXCIpIHJldHVybiByZTtcblxuICByZXR1cm4gcmUuc291cmNlO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7UmVnRXhwIHwgc3RyaW5nIH0gcmVcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGxvb2thaGVhZChyZSkge1xuICByZXR1cm4gY29uY2F0KCcoPz0nLCByZSwgJyknKTtcbn1cblxuLyoqXG4gKiBAcGFyYW0gey4uLihSZWdFeHAgfCBzdHJpbmcpIH0gYXJnc1xuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gY29uY2F0KC4uLmFyZ3MpIHtcbiAgY29uc3Qgam9pbmVkID0gYXJncy5tYXAoKHgpID0+IHNvdXJjZSh4KSkuam9pbihcIlwiKTtcbiAgcmV0dXJuIGpvaW5lZDtcbn1cblxuLyoqXG4gKiBAcGFyYW0geyBBcnJheTxzdHJpbmcgfCBSZWdFeHAgfCBPYmplY3Q+IH0gYXJnc1xuICogQHJldHVybnMge29iamVjdH1cbiAqL1xuZnVuY3Rpb24gc3RyaXBPcHRpb25zRnJvbUFyZ3MoYXJncykge1xuICBjb25zdCBvcHRzID0gYXJnc1thcmdzLmxlbmd0aCAtIDFdO1xuXG4gIGlmICh0eXBlb2Ygb3B0cyA9PT0gJ29iamVjdCcgJiYgb3B0cy5jb25zdHJ1Y3RvciA9PT0gT2JqZWN0KSB7XG4gICAgYXJncy5zcGxpY2UoYXJncy5sZW5ndGggLSAxLCAxKTtcbiAgICByZXR1cm4gb3B0cztcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4ge307XG4gIH1cbn1cblxuLyoqIEB0eXBlZGVmIHsge2NhcHR1cmU/OiBib29sZWFufSB9IFJlZ2V4RWl0aGVyT3B0aW9ucyAqL1xuXG4vKipcbiAqIEFueSBvZiB0aGUgcGFzc2VkIGV4cHJlc3NzaW9ucyBtYXkgbWF0Y2hcbiAqXG4gKiBDcmVhdGVzIGEgaHVnZSB0aGlzIHwgdGhpcyB8IHRoYXQgfCB0aGF0IG1hdGNoXG4gKiBAcGFyYW0geyhSZWdFeHAgfCBzdHJpbmcpW10gfCBbLi4uKFJlZ0V4cCB8IHN0cmluZylbXSwgUmVnZXhFaXRoZXJPcHRpb25zXX0gYXJnc1xuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gZWl0aGVyKC4uLmFyZ3MpIHtcbiAgLyoqIEB0eXBlIHsgb2JqZWN0ICYge2NhcHR1cmU/OiBib29sZWFufSB9ICAqL1xuICBjb25zdCBvcHRzID0gc3RyaXBPcHRpb25zRnJvbUFyZ3MoYXJncyk7XG4gIGNvbnN0IGpvaW5lZCA9ICcoJ1xuICAgICsgKG9wdHMuY2FwdHVyZSA/IFwiXCIgOiBcIj86XCIpXG4gICAgKyBhcmdzLm1hcCgoeCkgPT4gc291cmNlKHgpKS5qb2luKFwifFwiKSArIFwiKVwiO1xuICByZXR1cm4gam9pbmVkO1xufVxuXG5jb25zdCBrZXl3b3JkV3JhcHBlciA9IGtleXdvcmQgPT4gY29uY2F0KFxuICAvXFxiLyxcbiAga2V5d29yZCxcbiAgL1xcdyQvLnRlc3Qoa2V5d29yZCkgPyAvXFxiLyA6IC9cXEIvXG4pO1xuXG4vLyBLZXl3b3JkcyB0aGF0IHJlcXVpcmUgYSBsZWFkaW5nIGRvdC5cbmNvbnN0IGRvdEtleXdvcmRzID0gW1xuICAnUHJvdG9jb2wnLCAvLyBjb250ZXh0dWFsXG4gICdUeXBlJyAvLyBjb250ZXh0dWFsXG5dLm1hcChrZXl3b3JkV3JhcHBlcik7XG5cbi8vIEtleXdvcmRzIHRoYXQgbWF5IGhhdmUgYSBsZWFkaW5nIGRvdC5cbmNvbnN0IG9wdGlvbmFsRG90S2V5d29yZHMgPSBbXG4gICdpbml0JyxcbiAgJ3NlbGYnXG5dLm1hcChrZXl3b3JkV3JhcHBlcik7XG5cbi8vIHNob3VsZCByZWdpc3RlciBhcyBrZXl3b3JkLCBub3QgdHlwZVxuY29uc3Qga2V5d29yZFR5cGVzID0gW1xuICAnQW55JyxcbiAgJ1NlbGYnXG5dO1xuXG4vLyBSZWd1bGFyIGtleXdvcmRzIGFuZCBsaXRlcmFscy5cbmNvbnN0IGtleXdvcmRzID0gW1xuICAvLyBzdHJpbmdzIGJlbG93IHdpbGwgYmUgZmVkIGludG8gdGhlIHJlZ3VsYXIgYGtleXdvcmRzYCBlbmdpbmUgd2hpbGUgcmVnZXhcbiAgLy8gd2lsbCByZXN1bHQgaW4gYWRkaXRpb25hbCBtb2RlcyBiZWluZyBjcmVhdGVkIHRvIHNjYW4gZm9yIHRob3NlIGtleXdvcmRzIHRvXG4gIC8vIGF2b2lkIGNvbmZsaWN0cyB3aXRoIG90aGVyIHJ1bGVzXG4gICdhY3RvcicsXG4gICdhbnknLCAvLyBjb250ZXh0dWFsXG4gICdhc3NvY2lhdGVkdHlwZScsXG4gICdhc3luYycsXG4gICdhd2FpdCcsXG4gIC9hc1xcPy8sIC8vIG9wZXJhdG9yXG4gIC9hcyEvLCAvLyBvcGVyYXRvclxuICAnYXMnLCAvLyBvcGVyYXRvclxuICAnYnJlYWsnLFxuICAnY2FzZScsXG4gICdjYXRjaCcsXG4gICdjbGFzcycsXG4gICdjb250aW51ZScsXG4gICdjb252ZW5pZW5jZScsIC8vIGNvbnRleHR1YWxcbiAgJ2RlZmF1bHQnLFxuICAnZGVmZXInLFxuICAnZGVpbml0JyxcbiAgJ2RpZFNldCcsIC8vIGNvbnRleHR1YWxcbiAgJ2Rpc3RyaWJ1dGVkJyxcbiAgJ2RvJyxcbiAgJ2R5bmFtaWMnLCAvLyBjb250ZXh0dWFsXG4gICdlbHNlJyxcbiAgJ2VudW0nLFxuICAnZXh0ZW5zaW9uJyxcbiAgJ2ZhbGx0aHJvdWdoJyxcbiAgL2ZpbGVwcml2YXRlXFwoc2V0XFwpLyxcbiAgJ2ZpbGVwcml2YXRlJyxcbiAgJ2ZpbmFsJywgLy8gY29udGV4dHVhbFxuICAnZm9yJyxcbiAgJ2Z1bmMnLFxuICAnZ2V0JywgLy8gY29udGV4dHVhbFxuICAnZ3VhcmQnLFxuICAnaWYnLFxuICAnaW1wb3J0JyxcbiAgJ2luZGlyZWN0JywgLy8gY29udGV4dHVhbFxuICAnaW5maXgnLCAvLyBjb250ZXh0dWFsXG4gIC9pbml0XFw/LyxcbiAgL2luaXQhLyxcbiAgJ2lub3V0JyxcbiAgL2ludGVybmFsXFwoc2V0XFwpLyxcbiAgJ2ludGVybmFsJyxcbiAgJ2luJyxcbiAgJ2lzJywgLy8gb3BlcmF0b3JcbiAgJ2lzb2xhdGVkJywgLy8gY29udGV4dHVhbFxuICAnbm9uaXNvbGF0ZWQnLCAvLyBjb250ZXh0dWFsXG4gICdsYXp5JywgLy8gY29udGV4dHVhbFxuICAnbGV0JyxcbiAgJ211dGF0aW5nJywgLy8gY29udGV4dHVhbFxuICAnbm9ubXV0YXRpbmcnLCAvLyBjb250ZXh0dWFsXG4gIC9vcGVuXFwoc2V0XFwpLywgLy8gY29udGV4dHVhbFxuICAnb3BlbicsIC8vIGNvbnRleHR1YWxcbiAgJ29wZXJhdG9yJyxcbiAgJ29wdGlvbmFsJywgLy8gY29udGV4dHVhbFxuICAnb3ZlcnJpZGUnLCAvLyBjb250ZXh0dWFsXG4gICdwb3N0Zml4JywgLy8gY29udGV4dHVhbFxuICAncHJlY2VkZW5jZWdyb3VwJyxcbiAgJ3ByZWZpeCcsIC8vIGNvbnRleHR1YWxcbiAgL3ByaXZhdGVcXChzZXRcXCkvLFxuICAncHJpdmF0ZScsXG4gICdwcm90b2NvbCcsXG4gIC9wdWJsaWNcXChzZXRcXCkvLFxuICAncHVibGljJyxcbiAgJ3JlcGVhdCcsXG4gICdyZXF1aXJlZCcsIC8vIGNvbnRleHR1YWxcbiAgJ3JldGhyb3dzJyxcbiAgJ3JldHVybicsXG4gICdzZXQnLCAvLyBjb250ZXh0dWFsXG4gICdzb21lJywgLy8gY29udGV4dHVhbFxuICAnc3RhdGljJyxcbiAgJ3N0cnVjdCcsXG4gICdzdWJzY3JpcHQnLFxuICAnc3VwZXInLFxuICAnc3dpdGNoJyxcbiAgJ3Rocm93cycsXG4gICd0aHJvdycsXG4gIC90cnlcXD8vLCAvLyBvcGVyYXRvclxuICAvdHJ5IS8sIC8vIG9wZXJhdG9yXG4gICd0cnknLCAvLyBvcGVyYXRvclxuICAndHlwZWFsaWFzJyxcbiAgL3Vub3duZWRcXChzYWZlXFwpLywgLy8gY29udGV4dHVhbFxuICAvdW5vd25lZFxcKHVuc2FmZVxcKS8sIC8vIGNvbnRleHR1YWxcbiAgJ3Vub3duZWQnLCAvLyBjb250ZXh0dWFsXG4gICd2YXInLFxuICAnd2VhaycsIC8vIGNvbnRleHR1YWxcbiAgJ3doZXJlJyxcbiAgJ3doaWxlJyxcbiAgJ3dpbGxTZXQnIC8vIGNvbnRleHR1YWxcbl07XG5cbi8vIE5PVEU6IENvbnRleHR1YWwga2V5d29yZHMgYXJlIHJlc2VydmVkIG9ubHkgaW4gc3BlY2lmaWMgY29udGV4dHMuXG4vLyBJZGVhbGx5LCB0aGVzZSBzaG91bGQgYmUgbWF0Y2hlZCB1c2luZyBtb2RlcyB0byBhdm9pZCBmYWxzZSBwb3NpdGl2ZXMuXG5cbi8vIExpdGVyYWxzLlxuY29uc3QgbGl0ZXJhbHMgPSBbXG4gICdmYWxzZScsXG4gICduaWwnLFxuICAndHJ1ZSdcbl07XG5cbi8vIEtleXdvcmRzIHVzZWQgaW4gcHJlY2VkZW5jZSBncm91cHMuXG5jb25zdCBwcmVjZWRlbmNlZ3JvdXBLZXl3b3JkcyA9IFtcbiAgJ2Fzc2lnbm1lbnQnLFxuICAnYXNzb2NpYXRpdml0eScsXG4gICdoaWdoZXJUaGFuJyxcbiAgJ2xlZnQnLFxuICAnbG93ZXJUaGFuJyxcbiAgJ25vbmUnLFxuICAncmlnaHQnXG5dO1xuXG4vLyBLZXl3b3JkcyB0aGF0IHN0YXJ0IHdpdGggYSBudW1iZXIgc2lnbiAoIykuXG4vLyAjKHVuKWF2YWlsYWJsZSBpcyBoYW5kbGVkIHNlcGFyYXRlbHkuXG5jb25zdCBudW1iZXJTaWduS2V5d29yZHMgPSBbXG4gICcjY29sb3JMaXRlcmFsJyxcbiAgJyNjb2x1bW4nLFxuICAnI2Rzb2hhbmRsZScsXG4gICcjZWxzZScsXG4gICcjZWxzZWlmJyxcbiAgJyNlbmRpZicsXG4gICcjZXJyb3InLFxuICAnI2ZpbGUnLFxuICAnI2ZpbGVJRCcsXG4gICcjZmlsZUxpdGVyYWwnLFxuICAnI2ZpbGVQYXRoJyxcbiAgJyNmdW5jdGlvbicsXG4gICcjaWYnLFxuICAnI2ltYWdlTGl0ZXJhbCcsXG4gICcja2V5UGF0aCcsXG4gICcjbGluZScsXG4gICcjc2VsZWN0b3InLFxuICAnI3NvdXJjZUxvY2F0aW9uJyxcbiAgJyN3YXJuX3VucXVhbGlmaWVkX2FjY2VzcycsXG4gICcjd2FybmluZydcbl07XG5cbi8vIEdsb2JhbCBmdW5jdGlvbnMgaW4gdGhlIFN0YW5kYXJkIExpYnJhcnkuXG5jb25zdCBidWlsdElucyA9IFtcbiAgJ2FicycsXG4gICdhbGwnLFxuICAnYW55JyxcbiAgJ2Fzc2VydCcsXG4gICdhc3NlcnRpb25GYWlsdXJlJyxcbiAgJ2RlYnVnUHJpbnQnLFxuICAnZHVtcCcsXG4gICdmYXRhbEVycm9yJyxcbiAgJ2dldFZhTGlzdCcsXG4gICdpc0tub3duVW5pcXVlbHlSZWZlcmVuY2VkJyxcbiAgJ21heCcsXG4gICdtaW4nLFxuICAnbnVtZXJpY0Nhc3QnLFxuICAncG9pbnR3aXNlTWF4JyxcbiAgJ3BvaW50d2lzZU1pbicsXG4gICdwcmVjb25kaXRpb24nLFxuICAncHJlY29uZGl0aW9uRmFpbHVyZScsXG4gICdwcmludCcsXG4gICdyZWFkTGluZScsXG4gICdyZXBlYXRFbGVtZW50JyxcbiAgJ3NlcXVlbmNlJyxcbiAgJ3N0cmlkZScsXG4gICdzd2FwJyxcbiAgJ3N3aWZ0X3VuYm94RnJvbVN3aWZ0VmFsdWVXaXRoVHlwZScsXG4gICd0cmFuc2NvZGUnLFxuICAndHlwZScsXG4gICd1bnNhZmVCaXRDYXN0JyxcbiAgJ3Vuc2FmZURvd25jYXN0JyxcbiAgJ3dpdGhFeHRlbmRlZExpZmV0aW1lJyxcbiAgJ3dpdGhVbnNhZmVNdXRhYmxlUG9pbnRlcicsXG4gICd3aXRoVW5zYWZlUG9pbnRlcicsXG4gICd3aXRoVmFMaXN0JyxcbiAgJ3dpdGhvdXRBY3R1YWxseUVzY2FwaW5nJyxcbiAgJ3ppcCdcbl07XG5cbi8vIFZhbGlkIGZpcnN0IGNoYXJhY3RlcnMgZm9yIG9wZXJhdG9ycy5cbmNvbnN0IG9wZXJhdG9ySGVhZCA9IGVpdGhlcihcbiAgL1svPVxcLSshKiU8PiZ8Xn4/XS8sXG4gIC9bXFx1MDBBMS1cXHUwMEE3XS8sXG4gIC9bXFx1MDBBOVxcdTAwQUJdLyxcbiAgL1tcXHUwMEFDXFx1MDBBRV0vLFxuICAvW1xcdTAwQjBcXHUwMEIxXS8sXG4gIC9bXFx1MDBCNlxcdTAwQkJcXHUwMEJGXFx1MDBEN1xcdTAwRjddLyxcbiAgL1tcXHUyMDE2LVxcdTIwMTddLyxcbiAgL1tcXHUyMDIwLVxcdTIwMjddLyxcbiAgL1tcXHUyMDMwLVxcdTIwM0VdLyxcbiAgL1tcXHUyMDQxLVxcdTIwNTNdLyxcbiAgL1tcXHUyMDU1LVxcdTIwNUVdLyxcbiAgL1tcXHUyMTkwLVxcdTIzRkZdLyxcbiAgL1tcXHUyNTAwLVxcdTI3NzVdLyxcbiAgL1tcXHUyNzk0LVxcdTJCRkZdLyxcbiAgL1tcXHUyRTAwLVxcdTJFN0ZdLyxcbiAgL1tcXHUzMDAxLVxcdTMwMDNdLyxcbiAgL1tcXHUzMDA4LVxcdTMwMjBdLyxcbiAgL1tcXHUzMDMwXS9cbik7XG5cbi8vIFZhbGlkIGNoYXJhY3RlcnMgZm9yIG9wZXJhdG9ycy5cbmNvbnN0IG9wZXJhdG9yQ2hhcmFjdGVyID0gZWl0aGVyKFxuICBvcGVyYXRvckhlYWQsXG4gIC9bXFx1MDMwMC1cXHUwMzZGXS8sXG4gIC9bXFx1MURDMC1cXHUxREZGXS8sXG4gIC9bXFx1MjBEMC1cXHUyMEZGXS8sXG4gIC9bXFx1RkUwMC1cXHVGRTBGXS8sXG4gIC9bXFx1RkUyMC1cXHVGRTJGXS9cbiAgLy8gVE9ETzogVGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzIGFyZSBhbHNvIGFsbG93ZWQsIGJ1dCB0aGUgcmVnZXggaXNuJ3Qgc3VwcG9ydGVkIHlldC5cbiAgLy8gL1tcXHV7RTAxMDB9LVxcdXtFMDFFRn1dL3Vcbik7XG5cbi8vIFZhbGlkIG9wZXJhdG9yLlxuY29uc3Qgb3BlcmF0b3IgPSBjb25jYXQob3BlcmF0b3JIZWFkLCBvcGVyYXRvckNoYXJhY3RlciwgJyonKTtcblxuLy8gVmFsaWQgZmlyc3QgY2hhcmFjdGVycyBmb3IgaWRlbnRpZmllcnMuXG5jb25zdCBpZGVudGlmaWVySGVhZCA9IGVpdGhlcihcbiAgL1thLXpBLVpfXS8sXG4gIC9bXFx1MDBBOFxcdTAwQUFcXHUwMEFEXFx1MDBBRlxcdTAwQjItXFx1MDBCNVxcdTAwQjctXFx1MDBCQV0vLFxuICAvW1xcdTAwQkMtXFx1MDBCRVxcdTAwQzAtXFx1MDBENlxcdTAwRDgtXFx1MDBGNlxcdTAwRjgtXFx1MDBGRl0vLFxuICAvW1xcdTAxMDAtXFx1MDJGRlxcdTAzNzAtXFx1MTY3RlxcdTE2ODEtXFx1MTgwRFxcdTE4MEYtXFx1MURCRl0vLFxuICAvW1xcdTFFMDAtXFx1MUZGRl0vLFxuICAvW1xcdTIwMEItXFx1MjAwRFxcdTIwMkEtXFx1MjAyRVxcdTIwM0YtXFx1MjA0MFxcdTIwNTRcXHUyMDYwLVxcdTIwNkZdLyxcbiAgL1tcXHUyMDcwLVxcdTIwQ0ZcXHUyMTAwLVxcdTIxOEZcXHUyNDYwLVxcdTI0RkZcXHUyNzc2LVxcdTI3OTNdLyxcbiAgL1tcXHUyQzAwLVxcdTJERkZcXHUyRTgwLVxcdTJGRkZdLyxcbiAgL1tcXHUzMDA0LVxcdTMwMDdcXHUzMDIxLVxcdTMwMkZcXHUzMDMxLVxcdTMwM0ZcXHUzMDQwLVxcdUQ3RkZdLyxcbiAgL1tcXHVGOTAwLVxcdUZEM0RcXHVGRDQwLVxcdUZEQ0ZcXHVGREYwLVxcdUZFMUZcXHVGRTMwLVxcdUZFNDRdLyxcbiAgL1tcXHVGRTQ3LVxcdUZFRkVcXHVGRjAwLVxcdUZGRkRdLyAvLyBTaG91bGQgYmUgL1tcXHVGRTQ3LVxcdUZGRkRdLywgYnV0IHdlIGhhdmUgdG8gZXhjbHVkZSBGRUZGLlxuICAvLyBUaGUgZm9sbG93aW5nIGNoYXJhY3RlcnMgYXJlIGFsc28gYWxsb3dlZCwgYnV0IHRoZSByZWdleGVzIGFyZW4ndCBzdXBwb3J0ZWQgeWV0LlxuICAvLyAvW1xcdXsxMDAwMH0tXFx1ezFGRkZEfVxcdXsyMDAwMC1cXHV7MkZGRkR9XFx1ezMwMDAwfS1cXHV7M0ZGRkR9XFx1ezQwMDAwfS1cXHV7NEZGRkR9XS91LFxuICAvLyAvW1xcdXs1MDAwMH0tXFx1ezVGRkZEfVxcdXs2MDAwMC1cXHV7NkZGRkR9XFx1ezcwMDAwfS1cXHV7N0ZGRkR9XFx1ezgwMDAwfS1cXHV7OEZGRkR9XS91LFxuICAvLyAvW1xcdXs5MDAwMH0tXFx1ezlGRkZEfVxcdXtBMDAwMC1cXHV7QUZGRkR9XFx1e0IwMDAwfS1cXHV7QkZGRkR9XFx1e0MwMDAwfS1cXHV7Q0ZGRkR9XS91LFxuICAvLyAvW1xcdXtEMDAwMH0tXFx1e0RGRkZEfVxcdXtFMDAwMC1cXHV7RUZGRkR9XS91XG4pO1xuXG4vLyBWYWxpZCBjaGFyYWN0ZXJzIGZvciBpZGVudGlmaWVycy5cbmNvbnN0IGlkZW50aWZpZXJDaGFyYWN0ZXIgPSBlaXRoZXIoXG4gIGlkZW50aWZpZXJIZWFkLFxuICAvXFxkLyxcbiAgL1tcXHUwMzAwLVxcdTAzNkZcXHUxREMwLVxcdTFERkZcXHUyMEQwLVxcdTIwRkZcXHVGRTIwLVxcdUZFMkZdL1xuKTtcblxuLy8gVmFsaWQgaWRlbnRpZmllci5cbmNvbnN0IGlkZW50aWZpZXIgPSBjb25jYXQoaWRlbnRpZmllckhlYWQsIGlkZW50aWZpZXJDaGFyYWN0ZXIsICcqJyk7XG5cbi8vIFZhbGlkIHR5cGUgaWRlbnRpZmllci5cbmNvbnN0IHR5cGVJZGVudGlmaWVyID0gY29uY2F0KC9bQS1aXS8sIGlkZW50aWZpZXJDaGFyYWN0ZXIsICcqJyk7XG5cbi8vIEJ1aWx0LWluIGF0dHJpYnV0ZXMsIHdoaWNoIGFyZSBoaWdobGlnaHRlZCBhcyBrZXl3b3Jkcy5cbi8vIEBhdmFpbGFibGUgaXMgaGFuZGxlZCBzZXBhcmF0ZWx5LlxuY29uc3Qga2V5d29yZEF0dHJpYnV0ZXMgPSBbXG4gICdhdXRvY2xvc3VyZScsXG4gIGNvbmNhdCgvY29udmVudGlvblxcKC8sIGVpdGhlcignc3dpZnQnLCAnYmxvY2snLCAnYycpLCAvXFwpLyksXG4gICdkaXNjYXJkYWJsZVJlc3VsdCcsXG4gICdkeW5hbWljQ2FsbGFibGUnLFxuICAnZHluYW1pY01lbWJlckxvb2t1cCcsXG4gICdlc2NhcGluZycsXG4gICdmcm96ZW4nLFxuICAnR0tJbnNwZWN0YWJsZScsXG4gICdJQkFjdGlvbicsXG4gICdJQkRlc2lnbmFibGUnLFxuICAnSUJJbnNwZWN0YWJsZScsXG4gICdJQk91dGxldCcsXG4gICdJQlNlZ3VlQWN0aW9uJyxcbiAgJ2lubGluYWJsZScsXG4gICdtYWluJyxcbiAgJ25vbm9iamMnLFxuICAnTlNBcHBsaWNhdGlvbk1haW4nLFxuICAnTlNDb3B5aW5nJyxcbiAgJ05TTWFuYWdlZCcsXG4gIGNvbmNhdCgvb2JqY1xcKC8sIGlkZW50aWZpZXIsIC9cXCkvKSxcbiAgJ29iamMnLFxuICAnb2JqY01lbWJlcnMnLFxuICAncHJvcGVydHlXcmFwcGVyJyxcbiAgJ3JlcXVpcmVzX3N0b3JlZF9wcm9wZXJ0eV9pbml0cycsXG4gICdyZXN1bHRCdWlsZGVyJyxcbiAgJ3Rlc3RhYmxlJyxcbiAgJ1VJQXBwbGljYXRpb25NYWluJyxcbiAgJ3Vua25vd24nLFxuICAndXNhYmxlRnJvbUlubGluZSdcbl07XG5cbi8vIENvbnRleHR1YWwga2V5d29yZHMgdXNlZCBpbiBAYXZhaWxhYmxlIGFuZCAjKHVuKWF2YWlsYWJsZS5cbmNvbnN0IGF2YWlsYWJpbGl0eUtleXdvcmRzID0gW1xuICAnaU9TJyxcbiAgJ2lPU0FwcGxpY2F0aW9uRXh0ZW5zaW9uJyxcbiAgJ21hY09TJyxcbiAgJ21hY09TQXBwbGljYXRpb25FeHRlbnNpb24nLFxuICAnbWFjQ2F0YWx5c3QnLFxuICAnbWFjQ2F0YWx5c3RBcHBsaWNhdGlvbkV4dGVuc2lvbicsXG4gICd3YXRjaE9TJyxcbiAgJ3dhdGNoT1NBcHBsaWNhdGlvbkV4dGVuc2lvbicsXG4gICd0dk9TJyxcbiAgJ3R2T1NBcHBsaWNhdGlvbkV4dGVuc2lvbicsXG4gICdzd2lmdCdcbl07XG5cbi8qXG5MYW5ndWFnZTogU3dpZnRcbkRlc2NyaXB0aW9uOiBTd2lmdCBpcyBhIGdlbmVyYWwtcHVycG9zZSBwcm9ncmFtbWluZyBsYW5ndWFnZSBidWlsdCB1c2luZyBhIG1vZGVybiBhcHByb2FjaCB0byBzYWZldHksIHBlcmZvcm1hbmNlLCBhbmQgc29mdHdhcmUgZGVzaWduIHBhdHRlcm5zLlxuQXV0aG9yOiBTdGV2ZW4gVmFuIEltcGUgPHN0ZXZlbi52YW5pbXBlQGljbG91ZC5jb20+XG5Db250cmlidXRvcnM6IENocmlzIEVpZGhvZiA8Y2hyaXNAZWlkaG9mLm5sPiwgTmF0ZSBDb29rIDxuYXRlY29va0BnbWFpbC5jb20+LCBBbGV4YW5kZXIgTGljaHRlciA8bWFubmlMQGdteC5uZXQ+LCBSaWNoYXJkIEdpYnNvbiA8Z2lic29uMDQyQGdpdGh1Yj5cbldlYnNpdGU6IGh0dHBzOi8vc3dpZnQub3JnXG5DYXRlZ29yeTogY29tbW9uLCBzeXN0ZW1cbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBzd2lmdChobGpzKSB7XG4gIGNvbnN0IFdISVRFU1BBQ0UgPSB7XG4gICAgbWF0Y2g6IC9cXHMrLyxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgLy8gaHR0cHM6Ly9kb2NzLnN3aWZ0Lm9yZy9zd2lmdC1ib29rL1JlZmVyZW5jZU1hbnVhbC9MZXhpY2FsU3RydWN0dXJlLmh0bWwjSUQ0MTFcbiAgY29uc3QgQkxPQ0tfQ09NTUVOVCA9IGhsanMuQ09NTUVOVChcbiAgICAnL1xcXFwqJyxcbiAgICAnXFxcXCovJyxcbiAgICB7IGNvbnRhaW5zOiBbICdzZWxmJyBdIH1cbiAgKTtcbiAgY29uc3QgQ09NTUVOVFMgPSBbXG4gICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgIEJMT0NLX0NPTU1FTlRcbiAgXTtcblxuICAvLyBodHRwczovL2RvY3Muc3dpZnQub3JnL3N3aWZ0LWJvb2svUmVmZXJlbmNlTWFudWFsL0xleGljYWxTdHJ1Y3R1cmUuaHRtbCNJRDQxM1xuICAvLyBodHRwczovL2RvY3Muc3dpZnQub3JnL3N3aWZ0LWJvb2svUmVmZXJlbmNlTWFudWFsL3p6U3VtbWFyeU9mVGhlR3JhbW1hci5odG1sXG4gIGNvbnN0IERPVF9LRVlXT1JEID0ge1xuICAgIG1hdGNoOiBbXG4gICAgICAvXFwuLyxcbiAgICAgIGVpdGhlciguLi5kb3RLZXl3b3JkcywgLi4ub3B0aW9uYWxEb3RLZXl3b3JkcylcbiAgICBdLFxuICAgIGNsYXNzTmFtZTogeyAyOiBcImtleXdvcmRcIiB9XG4gIH07XG4gIGNvbnN0IEtFWVdPUkRfR1VBUkQgPSB7XG4gICAgLy8gQ29uc3VtZSAua2V5d29yZCB0byBwcmV2ZW50IGhpZ2hsaWdodGluZyBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzIGFzIGtleXdvcmRzLlxuICAgIG1hdGNoOiBjb25jYXQoL1xcLi8sIGVpdGhlciguLi5rZXl3b3JkcykpLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICBjb25zdCBQTEFJTl9LRVlXT1JEUyA9IGtleXdvcmRzXG4gICAgLmZpbHRlcihrdyA9PiB0eXBlb2Yga3cgPT09ICdzdHJpbmcnKVxuICAgIC5jb25jYXQoWyBcIl98MFwiIF0pOyAvLyBzZWVtcyBjb21tb24sIHNvIDAgcmVsZXZhbmNlXG4gIGNvbnN0IFJFR0VYX0tFWVdPUkRTID0ga2V5d29yZHNcbiAgICAuZmlsdGVyKGt3ID0+IHR5cGVvZiBrdyAhPT0gJ3N0cmluZycpIC8vIGZpbmQgcmVnZXhcbiAgICAuY29uY2F0KGtleXdvcmRUeXBlcylcbiAgICAubWFwKGtleXdvcmRXcmFwcGVyKTtcbiAgY29uc3QgS0VZV09SRCA9IHsgdmFyaWFudHM6IFtcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICAgIG1hdGNoOiBlaXRoZXIoLi4uUkVHRVhfS0VZV09SRFMsIC4uLm9wdGlvbmFsRG90S2V5d29yZHMpXG4gICAgfVxuICBdIH07XG4gIC8vIGZpbmQgYWxsIHRoZSByZWd1bGFyIGtleXdvcmRzXG4gIGNvbnN0IEtFWVdPUkRTID0ge1xuICAgICRwYXR0ZXJuOiBlaXRoZXIoXG4gICAgICAvXFxiXFx3Ky8sIC8vIHJlZ3VsYXIga2V5d29yZHNcbiAgICAgIC8jXFx3Ky8gLy8gbnVtYmVyIGtleXdvcmRzXG4gICAgKSxcbiAgICBrZXl3b3JkOiBQTEFJTl9LRVlXT1JEU1xuICAgICAgLmNvbmNhdChudW1iZXJTaWduS2V5d29yZHMpLFxuICAgIGxpdGVyYWw6IGxpdGVyYWxzXG4gIH07XG4gIGNvbnN0IEtFWVdPUkRfTU9ERVMgPSBbXG4gICAgRE9UX0tFWVdPUkQsXG4gICAgS0VZV09SRF9HVUFSRCxcbiAgICBLRVlXT1JEXG4gIF07XG5cbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FwcGxlL3N3aWZ0L3RyZWUvbWFpbi9zdGRsaWIvcHVibGljL2NvcmVcbiAgY29uc3QgQlVJTFRfSU5fR1VBUkQgPSB7XG4gICAgLy8gQ29uc3VtZSAuYnVpbHRfaW4gdG8gcHJldmVudCBoaWdobGlnaHRpbmcgcHJvcGVydGllcyBhbmQgbWV0aG9kcy5cbiAgICBtYXRjaDogY29uY2F0KC9cXC4vLCBlaXRoZXIoLi4uYnVpbHRJbnMpKSxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgY29uc3QgQlVJTFRfSU4gPSB7XG4gICAgY2xhc3NOYW1lOiAnYnVpbHRfaW4nLFxuICAgIG1hdGNoOiBjb25jYXQoL1xcYi8sIGVpdGhlciguLi5idWlsdElucyksIC8oPz1cXCgpLylcbiAgfTtcbiAgY29uc3QgQlVJTFRfSU5TID0gW1xuICAgIEJVSUxUX0lOX0dVQVJELFxuICAgIEJVSUxUX0lOXG4gIF07XG5cbiAgLy8gaHR0cHM6Ly9kb2NzLnN3aWZ0Lm9yZy9zd2lmdC1ib29rL1JlZmVyZW5jZU1hbnVhbC9MZXhpY2FsU3RydWN0dXJlLmh0bWwjSUQ0MThcbiAgY29uc3QgT1BFUkFUT1JfR1VBUkQgPSB7XG4gICAgLy8gUHJldmVudCAtPiBmcm9tIGJlaW5nIGhpZ2hsaWdodGluZyBhcyBhbiBvcGVyYXRvci5cbiAgICBtYXRjaDogLy0+LyxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgY29uc3QgT1BFUkFUT1IgPSB7XG4gICAgY2xhc3NOYW1lOiAnb3BlcmF0b3InLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICB2YXJpYW50czogW1xuICAgICAgeyBtYXRjaDogb3BlcmF0b3IgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gZG90LW9wZXJhdG9yOiBvbmx5IG9wZXJhdG9ycyB0aGF0IHN0YXJ0IHdpdGggYSBkb3QgYXJlIGFsbG93ZWQgdG8gdXNlIGRvdHMgYXNcbiAgICAgICAgLy8gY2hhcmFjdGVycyAoLi4uLCAuLi48LCAuKiwgZXRjKS4gU28gdGhlcmUgcnVsZSBoZXJlIGlzOiBhIGRvdCBmb2xsb3dlZCBieSBvbmUgb3IgbW9yZVxuICAgICAgICAvLyBjaGFyYWN0ZXJzIHRoYXQgbWF5IGFsc28gaW5jbHVkZSBkb3RzLlxuICAgICAgICBtYXRjaDogYFxcXFwuKFxcXFwufCR7b3BlcmF0b3JDaGFyYWN0ZXJ9KStgIH1cbiAgICBdXG4gIH07XG4gIGNvbnN0IE9QRVJBVE9SUyA9IFtcbiAgICBPUEVSQVRPUl9HVUFSRCxcbiAgICBPUEVSQVRPUlxuICBdO1xuXG4gIC8vIGh0dHBzOi8vZG9jcy5zd2lmdC5vcmcvc3dpZnQtYm9vay9SZWZlcmVuY2VNYW51YWwvTGV4aWNhbFN0cnVjdHVyZS5odG1sI2dyYW1tYXJfbnVtZXJpYy1saXRlcmFsXG4gIC8vIFRPRE86IFVwZGF0ZSBmb3IgbGVhZGluZyBgLWAgYWZ0ZXIgbG9va2JlaGluZCBpcyBzdXBwb3J0ZWQgZXZlcnl3aGVyZVxuICBjb25zdCBkZWNpbWFsRGlnaXRzID0gJyhbMC05XV8qKSsnO1xuICBjb25zdCBoZXhEaWdpdHMgPSAnKFswLTlhLWZBLUZdXyopKyc7XG4gIGNvbnN0IE5VTUJFUiA9IHtcbiAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICB2YXJpYW50czogW1xuICAgICAgLy8gZGVjaW1hbCBmbG9hdGluZy1wb2ludC1saXRlcmFsIChzdWJzdW1lcyBkZWNpbWFsLWxpdGVyYWwpXG4gICAgICB7IG1hdGNoOiBgXFxcXGIoJHtkZWNpbWFsRGlnaXRzfSkoXFxcXC4oJHtkZWNpbWFsRGlnaXRzfSkpP2AgKyBgKFtlRV1bKy1dPygke2RlY2ltYWxEaWdpdHN9KSk/XFxcXGJgIH0sXG4gICAgICAvLyBoZXhhZGVjaW1hbCBmbG9hdGluZy1wb2ludC1saXRlcmFsIChzdWJzdW1lcyBoZXhhZGVjaW1hbC1saXRlcmFsKVxuICAgICAgeyBtYXRjaDogYFxcXFxiMHgoJHtoZXhEaWdpdHN9KShcXFxcLigke2hleERpZ2l0c30pKT9gICsgYChbcFBdWystXT8oJHtkZWNpbWFsRGlnaXRzfSkpP1xcXFxiYCB9LFxuICAgICAgLy8gb2N0YWwtbGl0ZXJhbFxuICAgICAgeyBtYXRjaDogL1xcYjBvKFswLTddXyopK1xcYi8gfSxcbiAgICAgIC8vIGJpbmFyeS1saXRlcmFsXG4gICAgICB7IG1hdGNoOiAvXFxiMGIoWzAxXV8qKStcXGIvIH1cbiAgICBdXG4gIH07XG5cbiAgLy8gaHR0cHM6Ly9kb2NzLnN3aWZ0Lm9yZy9zd2lmdC1ib29rL1JlZmVyZW5jZU1hbnVhbC9MZXhpY2FsU3RydWN0dXJlLmh0bWwjZ3JhbW1hcl9zdHJpbmctbGl0ZXJhbFxuICBjb25zdCBFU0NBUEVEX0NIQVJBQ1RFUiA9IChyYXdEZWxpbWl0ZXIgPSBcIlwiKSA9PiAoe1xuICAgIGNsYXNzTmFtZTogJ3N1YnN0JyxcbiAgICB2YXJpYW50czogW1xuICAgICAgeyBtYXRjaDogY29uY2F0KC9cXFxcLywgcmF3RGVsaW1pdGVyLCAvWzBcXFxcdG5yXCInXS8pIH0sXG4gICAgICB7IG1hdGNoOiBjb25jYXQoL1xcXFwvLCByYXdEZWxpbWl0ZXIsIC91XFx7WzAtOWEtZkEtRl17MSw4fVxcfS8pIH1cbiAgICBdXG4gIH0pO1xuICBjb25zdCBFU0NBUEVEX05FV0xJTkUgPSAocmF3RGVsaW1pdGVyID0gXCJcIikgPT4gKHtcbiAgICBjbGFzc05hbWU6ICdzdWJzdCcsXG4gICAgbWF0Y2g6IGNvbmNhdCgvXFxcXC8sIHJhd0RlbGltaXRlciwgL1tcXHQgXSooPzpbXFxyXFxuXXxcXHJcXG4pLylcbiAgfSk7XG4gIGNvbnN0IElOVEVSUE9MQVRJT04gPSAocmF3RGVsaW1pdGVyID0gXCJcIikgPT4gKHtcbiAgICBjbGFzc05hbWU6ICdzdWJzdCcsXG4gICAgbGFiZWw6IFwiaW50ZXJwb2xcIixcbiAgICBiZWdpbjogY29uY2F0KC9cXFxcLywgcmF3RGVsaW1pdGVyLCAvXFwoLyksXG4gICAgZW5kOiAvXFwpL1xuICB9KTtcbiAgY29uc3QgTVVMVElMSU5FX1NUUklORyA9IChyYXdEZWxpbWl0ZXIgPSBcIlwiKSA9PiAoe1xuICAgIGJlZ2luOiBjb25jYXQocmF3RGVsaW1pdGVyLCAvXCJcIlwiLyksXG4gICAgZW5kOiBjb25jYXQoL1wiXCJcIi8sIHJhd0RlbGltaXRlciksXG4gICAgY29udGFpbnM6IFtcbiAgICAgIEVTQ0FQRURfQ0hBUkFDVEVSKHJhd0RlbGltaXRlciksXG4gICAgICBFU0NBUEVEX05FV0xJTkUocmF3RGVsaW1pdGVyKSxcbiAgICAgIElOVEVSUE9MQVRJT04ocmF3RGVsaW1pdGVyKVxuICAgIF1cbiAgfSk7XG4gIGNvbnN0IFNJTkdMRV9MSU5FX1NUUklORyA9IChyYXdEZWxpbWl0ZXIgPSBcIlwiKSA9PiAoe1xuICAgIGJlZ2luOiBjb25jYXQocmF3RGVsaW1pdGVyLCAvXCIvKSxcbiAgICBlbmQ6IGNvbmNhdCgvXCIvLCByYXdEZWxpbWl0ZXIpLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBFU0NBUEVEX0NIQVJBQ1RFUihyYXdEZWxpbWl0ZXIpLFxuICAgICAgSU5URVJQT0xBVElPTihyYXdEZWxpbWl0ZXIpXG4gICAgXVxuICB9KTtcbiAgY29uc3QgU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIE1VTFRJTElORV9TVFJJTkcoKSxcbiAgICAgIE1VTFRJTElORV9TVFJJTkcoXCIjXCIpLFxuICAgICAgTVVMVElMSU5FX1NUUklORyhcIiMjXCIpLFxuICAgICAgTVVMVElMSU5FX1NUUklORyhcIiMjI1wiKSxcbiAgICAgIFNJTkdMRV9MSU5FX1NUUklORygpLFxuICAgICAgU0lOR0xFX0xJTkVfU1RSSU5HKFwiI1wiKSxcbiAgICAgIFNJTkdMRV9MSU5FX1NUUklORyhcIiMjXCIpLFxuICAgICAgU0lOR0xFX0xJTkVfU1RSSU5HKFwiIyMjXCIpXG4gICAgXVxuICB9O1xuXG4gIC8vIGh0dHBzOi8vZG9jcy5zd2lmdC5vcmcvc3dpZnQtYm9vay9SZWZlcmVuY2VNYW51YWwvTGV4aWNhbFN0cnVjdHVyZS5odG1sI0lENDEyXG4gIGNvbnN0IFFVT1RFRF9JREVOVElGSUVSID0geyBtYXRjaDogY29uY2F0KC9gLywgaWRlbnRpZmllciwgL2AvKSB9O1xuICBjb25zdCBJTVBMSUNJVF9QQVJBTUVURVIgPSB7XG4gICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgIG1hdGNoOiAvXFwkXFxkKy9cbiAgfTtcbiAgY29uc3QgUFJPUEVSVFlfV1JBUFBFUl9QUk9KRUNUSU9OID0ge1xuICAgIGNsYXNzTmFtZTogJ3ZhcmlhYmxlJyxcbiAgICBtYXRjaDogYFxcXFwkJHtpZGVudGlmaWVyQ2hhcmFjdGVyfStgXG4gIH07XG4gIGNvbnN0IElERU5USUZJRVJTID0gW1xuICAgIFFVT1RFRF9JREVOVElGSUVSLFxuICAgIElNUExJQ0lUX1BBUkFNRVRFUixcbiAgICBQUk9QRVJUWV9XUkFQUEVSX1BST0pFQ1RJT05cbiAgXTtcblxuICAvLyBodHRwczovL2RvY3Muc3dpZnQub3JnL3N3aWZ0LWJvb2svUmVmZXJlbmNlTWFudWFsL0F0dHJpYnV0ZXMuaHRtbFxuICBjb25zdCBBVkFJTEFCTEVfQVRUUklCVVRFID0ge1xuICAgIG1hdGNoOiAvKEB8Iyh1bik/KWF2YWlsYWJsZS8sXG4gICAgY2xhc3NOYW1lOiBcImtleXdvcmRcIixcbiAgICBzdGFydHM6IHsgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXCgvLFxuICAgICAgICBlbmQ6IC9cXCkvLFxuICAgICAgICBrZXl3b3JkczogYXZhaWxhYmlsaXR5S2V5d29yZHMsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgLi4uT1BFUkFUT1JTLFxuICAgICAgICAgIE5VTUJFUixcbiAgICAgICAgICBTVFJJTkdcbiAgICAgICAgXVxuICAgICAgfVxuICAgIF0gfVxuICB9O1xuICBjb25zdCBLRVlXT1JEX0FUVFJJQlVURSA9IHtcbiAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICBtYXRjaDogY29uY2F0KC9ALywgZWl0aGVyKC4uLmtleXdvcmRBdHRyaWJ1dGVzKSlcbiAgfTtcbiAgY29uc3QgVVNFUl9ERUZJTkVEX0FUVFJJQlVURSA9IHtcbiAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICBtYXRjaDogY29uY2F0KC9ALywgaWRlbnRpZmllcilcbiAgfTtcbiAgY29uc3QgQVRUUklCVVRFUyA9IFtcbiAgICBBVkFJTEFCTEVfQVRUUklCVVRFLFxuICAgIEtFWVdPUkRfQVRUUklCVVRFLFxuICAgIFVTRVJfREVGSU5FRF9BVFRSSUJVVEVcbiAgXTtcblxuICAvLyBodHRwczovL2RvY3Muc3dpZnQub3JnL3N3aWZ0LWJvb2svUmVmZXJlbmNlTWFudWFsL1R5cGVzLmh0bWxcbiAgY29uc3QgVFlQRSA9IHtcbiAgICBtYXRjaDogbG9va2FoZWFkKC9cXGJbQS1aXS8pLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICBjb250YWluczogW1xuICAgICAgeyAvLyBDb21tb24gQXBwbGUgZnJhbWV3b3JrcywgZm9yIHJlbGV2YW5jZSBib29zdFxuICAgICAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICAgICAgbWF0Y2g6IGNvbmNhdCgvKEFWfENBfENGfENHfENJfENMfENNfENOfENUfE1LfE1QfE1US3xNVEx8TlN8U0NOfFNLfFVJfFdLfFhDKS8sIGlkZW50aWZpZXJDaGFyYWN0ZXIsICcrJylcbiAgICAgIH0sXG4gICAgICB7IC8vIFR5cGUgaWRlbnRpZmllclxuICAgICAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICAgICAgbWF0Y2g6IHR5cGVJZGVudGlmaWVyLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7IC8vIE9wdGlvbmFsIHR5cGVcbiAgICAgICAgbWF0Y2g6IC9bPyFdKy8sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHsgLy8gVmFyaWFkaWMgcGFyYW1ldGVyXG4gICAgICAgIG1hdGNoOiAvXFwuXFwuXFwuLyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgeyAvLyBQcm90b2NvbCBjb21wb3NpdGlvblxuICAgICAgICBtYXRjaDogY29uY2F0KC9cXHMrJlxccysvLCBsb29rYWhlYWQodHlwZUlkZW50aWZpZXIpKSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9XG4gICAgXVxuICB9O1xuICBjb25zdCBHRU5FUklDX0FSR1VNRU5UUyA9IHtcbiAgICBiZWdpbjogLzwvLFxuICAgIGVuZDogLz4vLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICBjb250YWluczogW1xuICAgICAgLi4uQ09NTUVOVFMsXG4gICAgICAuLi5LRVlXT1JEX01PREVTLFxuICAgICAgLi4uQVRUUklCVVRFUyxcbiAgICAgIE9QRVJBVE9SX0dVQVJELFxuICAgICAgVFlQRVxuICAgIF1cbiAgfTtcbiAgVFlQRS5jb250YWlucy5wdXNoKEdFTkVSSUNfQVJHVU1FTlRTKTtcblxuICAvLyBodHRwczovL2RvY3Muc3dpZnQub3JnL3N3aWZ0LWJvb2svUmVmZXJlbmNlTWFudWFsL0V4cHJlc3Npb25zLmh0bWwjSUQ1NTJcbiAgLy8gUHJldmVudHMgZWxlbWVudCBuYW1lcyBmcm9tIGJlaW5nIGhpZ2hsaWdodGVkIGFzIGtleXdvcmRzLlxuICBjb25zdCBUVVBMRV9FTEVNRU5UX05BTUUgPSB7XG4gICAgbWF0Y2g6IGNvbmNhdChpZGVudGlmaWVyLCAvXFxzKjovKSxcbiAgICBrZXl3b3JkczogXCJffDBcIixcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgLy8gTWF0Y2hlcyB0dXBsZXMgYXMgd2VsbCBhcyB0aGUgcGFyYW1ldGVyIGxpc3Qgb2YgYSBmdW5jdGlvbiB0eXBlLlxuICBjb25zdCBUVVBMRSA9IHtcbiAgICBiZWdpbjogL1xcKC8sXG4gICAgZW5kOiAvXFwpLyxcbiAgICByZWxldmFuY2U6IDAsXG4gICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICAnc2VsZicsXG4gICAgICBUVVBMRV9FTEVNRU5UX05BTUUsXG4gICAgICAuLi5DT01NRU5UUyxcbiAgICAgIC4uLktFWVdPUkRfTU9ERVMsXG4gICAgICAuLi5CVUlMVF9JTlMsXG4gICAgICAuLi5PUEVSQVRPUlMsXG4gICAgICBOVU1CRVIsXG4gICAgICBTVFJJTkcsXG4gICAgICAuLi5JREVOVElGSUVSUyxcbiAgICAgIC4uLkFUVFJJQlVURVMsXG4gICAgICBUWVBFXG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IEdFTkVSSUNfUEFSQU1FVEVSUyA9IHtcbiAgICBiZWdpbjogLzwvLFxuICAgIGVuZDogLz4vLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICAuLi5DT01NRU5UUyxcbiAgICAgIFRZUEVcbiAgICBdXG4gIH07XG4gIGNvbnN0IEZVTkNUSU9OX1BBUkFNRVRFUl9OQU1FID0ge1xuICAgIGJlZ2luOiBlaXRoZXIoXG4gICAgICBsb29rYWhlYWQoY29uY2F0KGlkZW50aWZpZXIsIC9cXHMqOi8pKSxcbiAgICAgIGxvb2thaGVhZChjb25jYXQoaWRlbnRpZmllciwgL1xccysvLCBpZGVudGlmaWVyLCAvXFxzKjovKSlcbiAgICApLFxuICAgIGVuZDogLzovLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICAgICAgbWF0Y2g6IC9cXGJfXFxiL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICAgICAgbWF0Y2g6IGlkZW50aWZpZXJcbiAgICAgIH1cbiAgICBdXG4gIH07XG4gIGNvbnN0IEZVTkNUSU9OX1BBUkFNRVRFUlMgPSB7XG4gICAgYmVnaW46IC9cXCgvLFxuICAgIGVuZDogL1xcKS8sXG4gICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBGVU5DVElPTl9QQVJBTUVURVJfTkFNRSxcbiAgICAgIC4uLkNPTU1FTlRTLFxuICAgICAgLi4uS0VZV09SRF9NT0RFUyxcbiAgICAgIC4uLk9QRVJBVE9SUyxcbiAgICAgIE5VTUJFUixcbiAgICAgIFNUUklORyxcbiAgICAgIC4uLkFUVFJJQlVURVMsXG4gICAgICBUWVBFLFxuICAgICAgVFVQTEVcbiAgICBdLFxuICAgIGVuZHNQYXJlbnQ6IHRydWUsXG4gICAgaWxsZWdhbDogL1tcIiddL1xuICB9O1xuICAvLyBodHRwczovL2RvY3Muc3dpZnQub3JnL3N3aWZ0LWJvb2svUmVmZXJlbmNlTWFudWFsL0RlY2xhcmF0aW9ucy5odG1sI0lEMzYyXG4gIGNvbnN0IEZVTkNUSU9OID0ge1xuICAgIG1hdGNoOiBbXG4gICAgICAvZnVuYy8sXG4gICAgICAvXFxzKy8sXG4gICAgICBlaXRoZXIoUVVPVEVEX0lERU5USUZJRVIubWF0Y2gsIGlkZW50aWZpZXIsIG9wZXJhdG9yKVxuICAgIF0sXG4gICAgY2xhc3NOYW1lOiB7XG4gICAgICAxOiBcImtleXdvcmRcIixcbiAgICAgIDM6IFwidGl0bGUuZnVuY3Rpb25cIlxuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIEdFTkVSSUNfUEFSQU1FVEVSUyxcbiAgICAgIEZVTkNUSU9OX1BBUkFNRVRFUlMsXG4gICAgICBXSElURVNQQUNFXG4gICAgXSxcbiAgICBpbGxlZ2FsOiBbXG4gICAgICAvXFxbLyxcbiAgICAgIC8lL1xuICAgIF1cbiAgfTtcblxuICAvLyBodHRwczovL2RvY3Muc3dpZnQub3JnL3N3aWZ0LWJvb2svUmVmZXJlbmNlTWFudWFsL0RlY2xhcmF0aW9ucy5odG1sI0lEMzc1XG4gIC8vIGh0dHBzOi8vZG9jcy5zd2lmdC5vcmcvc3dpZnQtYm9vay9SZWZlcmVuY2VNYW51YWwvRGVjbGFyYXRpb25zLmh0bWwjSUQzNzlcbiAgY29uc3QgSU5JVF9TVUJTQ1JJUFQgPSB7XG4gICAgbWF0Y2g6IFtcbiAgICAgIC9cXGIoPzpzdWJzY3JpcHR8aW5pdFs/IV0/KS8sXG4gICAgICAvXFxzKig/PVs8KF0pLyxcbiAgICBdLFxuICAgIGNsYXNzTmFtZTogeyAxOiBcImtleXdvcmRcIiB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBHRU5FUklDX1BBUkFNRVRFUlMsXG4gICAgICBGVU5DVElPTl9QQVJBTUVURVJTLFxuICAgICAgV0hJVEVTUEFDRVxuICAgIF0sXG4gICAgaWxsZWdhbDogL1xcW3wlL1xuICB9O1xuICAvLyBodHRwczovL2RvY3Muc3dpZnQub3JnL3N3aWZ0LWJvb2svUmVmZXJlbmNlTWFudWFsL0RlY2xhcmF0aW9ucy5odG1sI0lEMzgwXG4gIGNvbnN0IE9QRVJBVE9SX0RFQ0xBUkFUSU9OID0ge1xuICAgIG1hdGNoOiBbXG4gICAgICAvb3BlcmF0b3IvLFxuICAgICAgL1xccysvLFxuICAgICAgb3BlcmF0b3JcbiAgICBdLFxuICAgIGNsYXNzTmFtZToge1xuICAgICAgMTogXCJrZXl3b3JkXCIsXG4gICAgICAzOiBcInRpdGxlXCJcbiAgICB9XG4gIH07XG5cbiAgLy8gaHR0cHM6Ly9kb2NzLnN3aWZ0Lm9yZy9zd2lmdC1ib29rL1JlZmVyZW5jZU1hbnVhbC9EZWNsYXJhdGlvbnMuaHRtbCNJRDU1MFxuICBjb25zdCBQUkVDRURFTkNFR1JPVVAgPSB7XG4gICAgYmVnaW46IFtcbiAgICAgIC9wcmVjZWRlbmNlZ3JvdXAvLFxuICAgICAgL1xccysvLFxuICAgICAgdHlwZUlkZW50aWZpZXJcbiAgICBdLFxuICAgIGNsYXNzTmFtZToge1xuICAgICAgMTogXCJrZXl3b3JkXCIsXG4gICAgICAzOiBcInRpdGxlXCJcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbIFRZUEUgXSxcbiAgICBrZXl3b3JkczogW1xuICAgICAgLi4ucHJlY2VkZW5jZWdyb3VwS2V5d29yZHMsXG4gICAgICAuLi5saXRlcmFsc1xuICAgIF0sXG4gICAgZW5kOiAvfS9cbiAgfTtcblxuICAvLyBBZGQgc3VwcG9ydGVkIHN1Ym1vZGVzIHRvIHN0cmluZyBpbnRlcnBvbGF0aW9uLlxuICBmb3IgKGNvbnN0IHZhcmlhbnQgb2YgU1RSSU5HLnZhcmlhbnRzKSB7XG4gICAgY29uc3QgaW50ZXJwb2xhdGlvbiA9IHZhcmlhbnQuY29udGFpbnMuZmluZChtb2RlID0+IG1vZGUubGFiZWwgPT09IFwiaW50ZXJwb2xcIik7XG4gICAgLy8gVE9ETzogSW50ZXJwb2xhdGlvbiBjYW4gY29udGFpbiBhbnkgZXhwcmVzc2lvbiwgc28gdGhlcmUncyByb29tIGZvciBpbXByb3ZlbWVudCBoZXJlLlxuICAgIGludGVycG9sYXRpb24ua2V5d29yZHMgPSBLRVlXT1JEUztcbiAgICBjb25zdCBzdWJtb2RlcyA9IFtcbiAgICAgIC4uLktFWVdPUkRfTU9ERVMsXG4gICAgICAuLi5CVUlMVF9JTlMsXG4gICAgICAuLi5PUEVSQVRPUlMsXG4gICAgICBOVU1CRVIsXG4gICAgICBTVFJJTkcsXG4gICAgICAuLi5JREVOVElGSUVSU1xuICAgIF07XG4gICAgaW50ZXJwb2xhdGlvbi5jb250YWlucyA9IFtcbiAgICAgIC4uLnN1Ym1vZGVzLFxuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcKC8sXG4gICAgICAgIGVuZDogL1xcKS8sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgJ3NlbGYnLFxuICAgICAgICAgIC4uLnN1Ym1vZGVzXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnU3dpZnQnLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICBjb250YWluczogW1xuICAgICAgLi4uQ09NTUVOVFMsXG4gICAgICBGVU5DVElPTixcbiAgICAgIElOSVRfU1VCU0NSSVBULFxuICAgICAge1xuICAgICAgICBiZWdpbktleXdvcmRzOiAnc3RydWN0IHByb3RvY29sIGNsYXNzIGV4dGVuc2lvbiBlbnVtIGFjdG9yJyxcbiAgICAgICAgZW5kOiAnXFxcXHsnLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgaGxqcy5pbmhlcml0KGhsanMuVElUTEVfTU9ERSwge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiBcInRpdGxlLmNsYXNzXCIsXG4gICAgICAgICAgICBiZWdpbjogL1tBLVphLXokX11bXFx1MDBDMC1cXHUwMkI4MC05QS1aYS16JF9dKi9cbiAgICAgICAgICB9KSxcbiAgICAgICAgICAuLi5LRVlXT1JEX01PREVTXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBPUEVSQVRPUl9ERUNMQVJBVElPTixcbiAgICAgIFBSRUNFREVOQ0VHUk9VUCxcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ2ltcG9ydCcsXG4gICAgICAgIGVuZDogLyQvLFxuICAgICAgICBjb250YWluczogWyAuLi5DT01NRU5UUyBdLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICAuLi5LRVlXT1JEX01PREVTLFxuICAgICAgLi4uQlVJTFRfSU5TLFxuICAgICAgLi4uT1BFUkFUT1JTLFxuICAgICAgTlVNQkVSLFxuICAgICAgU1RSSU5HLFxuICAgICAgLi4uSURFTlRJRklFUlMsXG4gICAgICAuLi5BVFRSSUJVVEVTLFxuICAgICAgVFlQRSxcbiAgICAgIFRVUExFXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHN3aWZ0O1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///86\n");
  1842. /***/ }),
  1843. /* 87 */
  1844. /*!*******************************************************************************************************!*\
  1845. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/highlight.js/lib/languages/yaml.js ***!
  1846. \*******************************************************************************************************/
  1847. /*! no static exports found */
  1848. /***/ (function(module, exports) {
  1849. eval("/*\nLanguage: YAML\nDescription: Yet Another Markdown Language\nAuthor: Stefan Wienert <stwienert@gmail.com>\nContributors: Carl Baxter <carl@cbax.tech>\nRequires: ruby.js\nWebsite: https://yaml.org\nCategory: common, config\n*/\nfunction yaml(hljs) {\n var LITERALS = 'true false yes no null';\n\n // YAML spec allows non-reserved URI characters in tags.\n var URI_CHARACTERS = '[\\\\w#;/?:@&=+$,.~*\\'()[\\\\]]+';\n\n // Define keys as starting with a word character\n // ...containing word chars, spaces, colons, forward-slashes, hyphens and periods\n // ...and ending with a colon followed immediately by a space, tab or newline.\n // The YAML spec allows for much more than this, but this covers most use-cases.\n var KEY = {\n className: 'attr',\n variants: [{\n begin: '\\\\w[\\\\w :\\\\/.-]*:(?=[ \\t]|$)'\n }, {\n // double quoted keys\n begin: '\"\\\\w[\\\\w :\\\\/.-]*\":(?=[ \\t]|$)'\n }, {\n // single quoted keys\n begin: '\\'\\\\w[\\\\w :\\\\/.-]*\\':(?=[ \\t]|$)'\n }]\n };\n var TEMPLATE_VARIABLES = {\n className: 'template-variable',\n variants: [{\n // jinja templates Ansible\n begin: /\\{\\{/,\n end: /\\}\\}/\n }, {\n // Ruby i18n\n begin: /%\\{/,\n end: /\\}/\n }]\n };\n var STRING = {\n className: 'string',\n relevance: 0,\n variants: [{\n begin: /'/,\n end: /'/\n }, {\n begin: /\"/,\n end: /\"/\n }, {\n begin: /\\S+/\n }],\n contains: [hljs.BACKSLASH_ESCAPE, TEMPLATE_VARIABLES]\n };\n\n // Strings inside of value containers (objects) can't contain braces,\n // brackets, or commas\n var CONTAINER_STRING = hljs.inherit(STRING, {\n variants: [{\n begin: /'/,\n end: /'/\n }, {\n begin: /\"/,\n end: /\"/\n }, {\n begin: /[^\\s,{}[\\]]+/\n }]\n });\n var DATE_RE = '[0-9]{4}(-[0-9][0-9]){0,2}';\n var TIME_RE = '([Tt \\\\t][0-9][0-9]?(:[0-9][0-9]){2})?';\n var FRACTION_RE = '(\\\\.[0-9]*)?';\n var ZONE_RE = '([ \\\\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?';\n var TIMESTAMP = {\n className: 'number',\n begin: '\\\\b' + DATE_RE + TIME_RE + FRACTION_RE + ZONE_RE + '\\\\b'\n };\n var VALUE_CONTAINER = {\n end: ',',\n endsWithParent: true,\n excludeEnd: true,\n keywords: LITERALS,\n relevance: 0\n };\n var OBJECT = {\n begin: /\\{/,\n end: /\\}/,\n contains: [VALUE_CONTAINER],\n illegal: '\\\\n',\n relevance: 0\n };\n var ARRAY = {\n begin: '\\\\[',\n end: '\\\\]',\n contains: [VALUE_CONTAINER],\n illegal: '\\\\n',\n relevance: 0\n };\n var MODES = [KEY, {\n className: 'meta',\n begin: '^---\\\\s*$',\n relevance: 10\n }, {\n // multi line string\n // Blocks start with a | or > followed by a newline\n //\n // Indentation of subsequent lines must be the same to\n // be considered part of the block\n className: 'string',\n begin: '[\\\\|>]([1-9]?[+-])?[ ]*\\\\n( +)[^ ][^\\\\n]*\\\\n(\\\\2[^\\\\n]+\\\\n?)*'\n }, {\n // Ruby/Rails erb\n begin: '<%[%=-]?',\n end: '[%-]?%>',\n subLanguage: 'ruby',\n excludeBegin: true,\n excludeEnd: true,\n relevance: 0\n }, {\n // named tags\n className: 'type',\n begin: '!\\\\w+!' + URI_CHARACTERS\n },\n // https://yaml.org/spec/1.2/spec.html#id2784064\n {\n // verbatim tags\n className: 'type',\n begin: '!<' + URI_CHARACTERS + \">\"\n }, {\n // primary tags\n className: 'type',\n begin: '!' + URI_CHARACTERS\n }, {\n // secondary tags\n className: 'type',\n begin: '!!' + URI_CHARACTERS\n }, {\n // fragment id &ref\n className: 'meta',\n begin: '&' + hljs.UNDERSCORE_IDENT_RE + '$'\n }, {\n // fragment reference *ref\n className: 'meta',\n begin: '\\\\*' + hljs.UNDERSCORE_IDENT_RE + '$'\n }, {\n // array listing\n className: 'bullet',\n // TODO: remove |$ hack when we have proper look-ahead support\n begin: '-(?=[ ]|$)',\n relevance: 0\n }, hljs.HASH_COMMENT_MODE, {\n beginKeywords: LITERALS,\n keywords: {\n literal: LITERALS\n }\n }, TIMESTAMP,\n // numbers are any valid C-style number that\n // sit isolated from other words\n {\n className: 'number',\n begin: hljs.C_NUMBER_RE + '\\\\b',\n relevance: 0\n }, OBJECT, ARRAY, STRING];\n var VALUE_MODES = [].concat(MODES);\n VALUE_MODES.pop();\n VALUE_MODES.push(CONTAINER_STRING);\n VALUE_CONTAINER.contains = VALUE_MODES;\n return {\n name: 'YAML',\n case_insensitive: true,\n aliases: ['yml'],\n contains: MODES\n };\n}\nmodule.exports = yaml;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMveWFtbC5qcyJdLCJuYW1lcyI6WyJ5YW1sIiwiaGxqcyIsIkxJVEVSQUxTIiwiVVJJX0NIQVJBQ1RFUlMiLCJLRVkiLCJjbGFzc05hbWUiLCJ2YXJpYW50cyIsImJlZ2luIiwiVEVNUExBVEVfVkFSSUFCTEVTIiwiZW5kIiwiU1RSSU5HIiwicmVsZXZhbmNlIiwiY29udGFpbnMiLCJCQUNLU0xBU0hfRVNDQVBFIiwiQ09OVEFJTkVSX1NUUklORyIsImluaGVyaXQiLCJEQVRFX1JFIiwiVElNRV9SRSIsIkZSQUNUSU9OX1JFIiwiWk9ORV9SRSIsIlRJTUVTVEFNUCIsIlZBTFVFX0NPTlRBSU5FUiIsImVuZHNXaXRoUGFyZW50IiwiZXhjbHVkZUVuZCIsImtleXdvcmRzIiwiT0JKRUNUIiwiaWxsZWdhbCIsIkFSUkFZIiwiTU9ERVMiLCJzdWJMYW5ndWFnZSIsImV4Y2x1ZGVCZWdpbiIsIlVOREVSU0NPUkVfSURFTlRfUkUiLCJIQVNIX0NPTU1FTlRfTU9ERSIsImJlZ2luS2V5d29yZHMiLCJsaXRlcmFsIiwiQ19OVU1CRVJfUkUiLCJWQUxVRV9NT0RFUyIsInBvcCIsInB1c2giLCJuYW1lIiwiY2FzZV9pbnNlbnNpdGl2ZSIsImFsaWFzZXMiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxJQUFJLENBQUNDLElBQUksRUFBRTtFQUNsQixJQUFNQyxRQUFRLEdBQUcsd0JBQXdCOztFQUV6QztFQUNBLElBQU1DLGNBQWMsR0FBRyw4QkFBOEI7O0VBRXJEO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsSUFBTUMsR0FBRyxHQUFHO0lBQ1ZDLFNBQVMsRUFBRSxNQUFNO0lBQ2pCQyxRQUFRLEVBQUUsQ0FDUjtNQUFFQyxLQUFLLEVBQUU7SUFBK0IsQ0FBQyxFQUN6QztNQUFFO01BQ0FB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Q3hCLGdCQUFnQixDQUFDO0VBQ2xDTyxlQUFlLENBQUNULFFBQVEsR0FBR3dCLFdBQVc7RUFFdEMsT0FBTztJQUNMRyxJQUFJLEVBQUUsTUFBTTtJQUNaQyxnQkFBZ0IsRUFBRSxJQUFJO0lBQ3RCQyxPQUFPLEVBQUUsQ0FBRSxLQUFLLENBQUU7SUFDbEI3QixRQUFRLEVBQUVnQjtFQUNaLENBQUM7QUFDSDtBQUVBYyxNQUFNLENBQUNDLE9BQU8sR0FBRzNDLElBQUkiLCJmaWxlIjoiODcuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuTGFuZ3VhZ2U6IFlBTUxcbkRlc2NyaXB0aW9uOiBZZXQgQW5vdGhlciBNYXJrZG93biBMYW5ndWFnZVxuQXV0aG9yOiBTdGVmYW4gV2llbmVydCA8c3R3aWVuZXJ0QGdtYWlsLmNvbT5cbkNvbnRyaWJ1dG9yczogQ2FybCBCYXh0ZXIgPGNhcmxAY2JheC50ZWNoPlxuUmVxdWlyZXM6IHJ1YnkuanNcbldlYnNpdGU6IGh0dHBzOi8veWFtbC5vcmdcbkNhdGVnb3J5OiBjb21tb24sIGNvbmZpZ1xuKi9cbmZ1bmN0aW9uIHlhbWwoaGxqcykge1xuICBjb25zdCBMSVRFUkFMUyA9ICd0cnVlIGZhbHNlIHllcyBubyBudWxsJztcblxuICAvLyBZQU1MIHNwZWMgYWxsb3dzIG5vbi1yZXNlcnZlZCBVUkkgY2hhcmFjdGVycyBpbiB0YWdzLlxuICBjb25zdCBVUklfQ0hBUkFDVEVSUyA9ICdbXFxcXHcjOy8/OkAmPSskLC5+KlxcJygpW1xcXFxdXSsnO1xuXG4gIC8vIERlZmluZSBrZXlzIGFzIHN0YXJ0aW5nIHdpdGggYSB3b3JkIGNoYXJhY3RlclxuICAvLyAuLi5jb250YWluaW5nIHdvcmQgY2hhcnMsIHNwYWNlcywgY29sb25zLCBmb3J3YXJkLXNsYXNoZXMsIGh5cGhlbnMgYW5kIHBlcmlvZHNcbiAgLy8gLi4uYW5kIGVuZGluZyB3aXRoIGEgY29sb24gZm9sbG93ZWQgaW1tZWRpYXRlbHkgYnkgYSBzcGFjZSwgdGFiIG9yIG5ld2xpbmUuXG4gIC8vIFRoZSBZQU1MIHNwZWMgYWxsb3dzIGZvciBtdWNoIG1vcmUgdGhhbiB0aGlzLCBidXQgdGhpcyBjb3ZlcnMgbW9zdCB1c2UtY2FzZXMuXG4gIGNvbnN0IEtFWSA9IHtcbiAgICBjbGFzc05hbWU6ICdhdHRyJyxcbiAgICB2YXJpYW50czogW1xuICAgICAgeyBiZWdpbjogJ1xcXFx3W1xcXFx3IDpcXFxcLy4tXSo6KD89WyBcXHRdfCQpJyB9LFxuICAgICAgeyAvLyBkb3VibGUgcXVvdGVkIGtleXNcbiAgICAgICAgYmVnaW46ICdcIlxcXFx3W1xcXFx3IDpcXFxcLy4tXSpcIjooPz1bIFxcdF18JCknIH0sXG4gICAgICB7IC8vIHNpbmdsZSBxdW90ZWQga2V5c1xuICAgICAgICBiZWdpbjogJ1xcJ1xcXFx3W1xcXFx3IDpcXFxcLy4tXSpcXCc6KD89WyBcXHRdfCQpJyB9XG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IFRFTVBMQVRFX1ZBUklBQkxFUyA9IHtcbiAgICBjbGFzc05hbWU6ICd0ZW1wbGF0ZS12YXJpYWJsZScsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHsgLy8gamluamEgdGVtcGxhdGVzIEFuc2libGVcbiAgICAgICAgYmVnaW46IC9cXHtcXHsvLFxuICAgICAgICBlbmQ6IC9cXH1cXH0vXG4gICAgICB9LFxuICAgICAgeyAvLyBSdWJ5IGkxOG5cbiAgICAgICAgYmVnaW46IC8lXFx7LyxcbiAgICAgICAgZW5kOiAvXFx9L1xuICAgICAgfVxuICAgIF1cbiAgfTtcbiAgY29uc3QgU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvJy8sXG4gICAgICAgIGVuZDogLycvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogL1wiLyxcbiAgICAgICAgZW5kOiAvXCIvXG4gICAgICB9LFxuICAgICAgeyBiZWdpbjogL1xcUysvIH1cbiAgICBdLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICBURU1QTEFURV9WQVJJQUJMRVNcbiAgICBdXG4gIH07XG5cbiAgLy8gU3RyaW5ncyBpbnNpZGUgb2YgdmFsdWUgY29udGFpbmVycyAob2JqZWN0cykgY2FuJ3QgY29udGFpbiBicmFjZXMsXG4gIC8vIGJyYWNrZXRzLCBvciBjb21tYXNcbiAgY29uc3QgQ09OVEFJTkVSX1NUUklORyA9IGhsanMuaW5oZXJpdChTVFJJTkcsIHsgdmFyaWFudHM6IFtcbiAgICB7XG4gICAgICBiZWdpbjogLycvLFxuICAgICAgZW5kOiAvJy9cbiAgICB9LFxuICAgIHtcbiAgICAgIGJlZ2luOiAvXCIvLFxuICAgICAgZW5kOiAvXCIvXG4gICAgfSxcbiAgICB7IGJlZ2luOiAvW15cXHMse31bXFxdXSsvIH1cbiAgXSB9KTtcblxuICBjb25zdCBEQVRFX1JFID0gJ1swLTldezR9KC1bMC05XVswLTldKXswLDJ9JztcbiAgY29uc3QgVElNRV9SRSA9ICcoW1R0IFxcXFx0XVswLTldWzAtOV0/KDpbMC05XVswLTldKXsyfSk/JztcbiAgY29uc3QgRlJBQ1RJT05fUkUgPSAnKFxcXFwuWzAtOV0qKT8nO1xuICBjb25zdCBaT05FX1JFID0gJyhbIFxcXFx0XSkqKFp8Wy0rXVswLTldWzAtOV0/KDpbMC05XVswLTldKT8pPyc7XG4gIGNvbnN0IFRJTUVTVEFNUCA9IHtcbiAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgIGJlZ2luOiAnXFxcXGInICsgREFURV9SRSArIFRJTUVfUkUgKyBGUkFDVElPTl9SRSArIFpPTkVfUkUgKyAnXFxcXGInXG4gIH07XG5cbiAgY29uc3QgVkFMVUVfQ09OVEFJTkVSID0ge1xuICAgIGVuZDogJywnLFxuICAgIGVuZHNXaXRoUGFyZW50OiB0cnVlLFxuICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAga2V5d29yZHM6IExJVEVSQUxTLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICBjb25zdCBPQkpFQ1QgPSB7XG4gICAgYmVnaW46IC9cXHsvLFxuICAgIGVuZDogL1xcfS8sXG4gICAgY29udGFpbnM6IFsgVkFMVUVfQ09OVEFJTkVSIF0sXG4gICAgaWxsZWdhbDogJ1xcXFxuJyxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgY29uc3QgQVJSQVkgPSB7XG4gICAgYmVnaW46ICdcXFxcWycsXG4gICAgZW5kOiAnXFxcXF0nLFxuICAgIGNvbnRhaW5zOiBbIFZBTFVFX0NPTlRBSU5FUiBdLFxuICAgIGlsbGVnYWw6ICdcXFxcbicsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgY29uc3QgTU9ERVMgPSBbXG4gICAgS0VZLFxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgYmVnaW46ICdeLS0tXFxcXHMqJCcsXG4gICAgICByZWxldmFuY2U6IDEwXG4gICAgfSxcbiAgICB7IC8vIG11bHRpIGxpbmUgc3RyaW5nXG4gICAgICAvLyBCbG9ja3Mgc3RhcnQgd2l0aCBhIHwgb3IgPiBmb2xsb3dlZCBieSBhIG5ld2xpbmVcbiAgICAgIC8vXG4gICAgICAvLyBJbmRlbnRhdGlvbiBvZiBzdWJzZXF1ZW50IGxpbmVzIG11c3QgYmUgdGhlIHNhbWUgdG9cbiAgICAgIC8vIGJlIGNvbnNpZGVyZWQgcGFydCBvZiB0aGUgYmxvY2tcbiAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICBiZWdpbjogJ1tcXFxcfD5dKFsxLTldP1srLV0pP1sgXSpcXFxcbiggKylbXiBdW15cXFxcbl0qXFxcXG4oXFxcXDJbXlxcXFxuXStcXFxcbj8pKidcbiAgICB9LFxuICAgIHsgLy8gUnVieS9SYWlscyBlcmJcbiAgICAgIGJlZ2luOiAnPCVbJT0tXT8nLFxuICAgICAgZW5kOiAnWyUtXT8lPicsXG4gICAgICBzdWJMYW5ndWFnZTogJ3J1YnknLFxuICAgICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgIHJlbGV2YW5jZTogMFxuICAgIH0sXG4gICAgeyAvLyBuYW1lZCB0YWdzXG4gICAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICAgIGJlZ2luOiAnIVxcXFx3KyEnICsgVVJJX0NIQVJBQ1RFUlNcbiAgICB9LFxuICAgIC8vIGh0dHBzOi8veWFtbC5vcmcvc3BlYy8xLjIvc3BlYy5odG1sI2lkMjc4NDA2NFxuICAgIHsgLy8gdmVyYmF0aW0gdGFnc1xuICAgICAgY2xhc3NOYW1lOiAndHlwZScsXG4gICAgICBiZWdpbjogJyE8JyArIFVSSV9DSEFSQUNURVJTICsgXCI+XCJcbiAgICB9LFxuICAgIHsgLy8gcHJpbWFyeSB0YWdzXG4gICAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICAgIGJlZ2luOiAnIScgKyBVUklfQ0hBUkFDVEVSU1xuICAgIH0sXG4gICAgeyAvLyBzZWNvbmRhcnkgdGFnc1xuICAgICAgY2xhc3NOYW1lOiAndHlwZScsXG4gICAgICBiZWdpbjogJyEhJyArIFVSSV9DSEFSQUNURVJTXG4gICAgfSxcbiAgICB7IC8vIGZyYWdtZW50IGlkICZyZWZcbiAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgYmVnaW46ICcmJyArIGhsanMuVU5ERVJTQ09SRV9JREVOVF9SRSArICckJ1xuICAgIH0sXG4gICAgeyAvLyBmcmFnbWVudCByZWZlcmVuY2UgKnJlZlxuICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICBiZWdpbjogJ1xcXFwqJyArIGhsanMuVU5ERVJTQ09SRV9JREVOVF9SRSArICckJ1xuICAgIH0sXG4gICAgeyAvLyBhcnJheSBsaXN0aW5nXG4gICAgICBjbGFzc05hbWU6ICdidWxsZXQnLFxuICAgICAgLy8gVE9ETzogcmVtb3ZlIHwkIGhhY2sgd2hlbiB3ZSBoYXZlIHByb3BlciBsb29rLWFoZWFkIHN1cHBvcnRcbiAgICAgIGJlZ2luOiAnLSg/PVsgXXwkKScsXG4gICAgICByZWxldmFuY2U6IDBcbiAgICB9LFxuICAgIGhsanMuSEFTSF9DT01NRU5UX01PREUsXG4gICAge1xuICAgICAgYmVnaW5LZXl3b3JkczogTElURVJBTFMsXG4gICAgICBrZXl3b3JkczogeyBsaXRlcmFsOiBMSVRFUkFMUyB9XG4gICAgfSxcbiAgICBUSU1FU1RBTVAsXG4gICAgLy8gbnVtYmVycyBhcmUgYW55IHZhbGlkIEMtc3R5bGUgbnVtYmVyIHRoYXRcbiAgICAvLyBzaXQgaXNvbGF0ZWQgZnJvbSBvdGhlciB3b3Jkc1xuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICBiZWdpbjogaGxqcy5DX05VTUJFUl9SRSArICdcXFxcYicsXG4gICAgICByZWxldmFuY2U6IDBcbiAgICB9LFxuICAgIE9CSkVDVCxcbiAgICBBUlJBWSxcbiAgICBTVFJJTkdcbiAgXTtcblxuICBjb25zdCBWQUxVRV9NT0RFUyA9IFsgLi4uTU9ERVMgXTtcbiAgVkFMVUVfTU9ERVMucG9wKCk7XG4gIFZBTFVFX01PREVTLnB1c2goQ09OVEFJTkVSX1NUUklORyk7XG4gIFZBTFVFX0NPTlRBSU5FUi5jb250YWlucyA9IFZBTFVFX01PREVTO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1lBTUwnLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAgYWxpYXNlczogWyAneW1sJyBdLFxuICAgIGNvbnRhaW5zOiBNT0RFU1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHlhbWw7XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///87\n");
  1850. /***/ }),
  1851. /* 88 */
  1852. /*!*************************************************************************************************************!*\
  1853. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/highlight.js/lib/languages/typescript.js ***!
  1854. \*************************************************************************************************************/
  1855. /*! no static exports found */
  1856. /***/ (function(module, exports) {
  1857. eval("var IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*';\nvar KEYWORDS = [\"as\",\n// for exports\n\"in\", \"of\", \"if\", \"for\", \"while\", \"finally\", \"var\", \"new\", \"function\", \"do\", \"return\", \"void\", \"else\", \"break\", \"catch\", \"instanceof\", \"with\", \"throw\", \"case\", \"default\", \"try\", \"switch\", \"continue\", \"typeof\", \"delete\", \"let\", \"yield\", \"const\", \"class\",\n// JS handles these with a special rule\n// \"get\",\n// \"set\",\n\"debugger\", \"async\", \"await\", \"static\", \"import\", \"from\", \"export\", \"extends\"];\nvar LITERALS = [\"true\", \"false\", \"null\", \"undefined\", \"NaN\", \"Infinity\"];\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects\nvar TYPES = [\n// Fundamental objects\n\"Object\", \"Function\", \"Boolean\", \"Symbol\",\n// numbers and dates\n\"Math\", \"Date\", \"Number\", \"BigInt\",\n// text\n\"String\", \"RegExp\",\n// Indexed collections\n\"Array\", \"Float32Array\", \"Float64Array\", \"Int8Array\", \"Uint8Array\", \"Uint8ClampedArray\", \"Int16Array\", \"Int32Array\", \"Uint16Array\", \"Uint32Array\", \"BigInt64Array\", \"BigUint64Array\",\n// Keyed collections\n\"Set\", \"Map\", \"WeakSet\", \"WeakMap\",\n// Structured data\n\"ArrayBuffer\", \"SharedArrayBuffer\", \"Atomics\", \"DataView\", \"JSON\",\n// Control abstraction objects\n\"Promise\", \"Generator\", \"GeneratorFunction\", \"AsyncFunction\",\n// Reflection\n\"Reflect\", \"Proxy\",\n// Internationalization\n\"Intl\",\n// WebAssembly\n\"WebAssembly\"];\nvar ERROR_TYPES = [\"Error\", \"EvalError\", \"InternalError\", \"RangeError\", \"ReferenceError\", \"SyntaxError\", \"TypeError\", \"URIError\"];\nvar BUILT_IN_GLOBALS = [\"setInterval\", \"setTimeout\", \"clearInterval\", \"clearTimeout\", \"require\", \"exports\", \"eval\", \"isFinite\", \"isNaN\", \"parseFloat\", \"parseInt\", \"decodeURI\", \"decodeURIComponent\", \"encodeURI\", \"encodeURIComponent\", \"escape\", \"unescape\"];\nvar BUILT_IN_VARIABLES = [\"arguments\", \"this\", \"super\", \"console\", \"window\", \"document\", \"localStorage\", \"sessionStorage\", \"module\", \"global\" // Node.js\n];\n\nvar BUILT_INS = [].concat(BUILT_IN_GLOBALS, TYPES, ERROR_TYPES);\n\n/*\nLanguage: JavaScript\nDescription: JavaScript (JS) is a lightweight, interpreted, or just-in-time compiled programming language with first-class functions.\nCategory: common, scripting, web\nWebsite: https://developer.mozilla.org/en-US/docs/Web/JavaScript\n*/\n\n/** @type LanguageFn */\nfunction javascript(hljs) {\n var regex = hljs.regex;\n /**\n * Takes a string like \"<Booger\" and checks to see\n * if we can find a matching \"</Booger\" later in the\n * content.\n * @param {RegExpMatchArray} match\n * @param {{after:number}} param1\n */\n var hasClosingTag = function hasClosingTag(match, _ref) {\n var after = _ref.after;\n var tag = \"</\" + match[0].slice(1);\n var pos = match.input.indexOf(tag, after);\n return pos !== -1;\n };\n var IDENT_RE$1 = IDENT_RE;\n var FRAGMENT = {\n begin: '<>',\n end: '</>'\n };\n // to avoid some special cases inside isTrulyOpeningTag\n var XML_SELF_CLOSING = /<[A-Za-z0-9\\\\._:-]+\\s*\\/>/;\n var XML_TAG = {\n begin: /<[A-Za-z0-9\\\\._:-]+/,\n end: /\\/[A-Za-z0-9\\\\._:-]+>|\\/>/,\n /**\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\n isTrulyOpeningTag: function isTrulyOpeningTag(match, response) {\n var afterMatchIndex = match[0].length + match.index;\n var nextChar = match.input[afterMatchIndex];\n if (\n // HTML should not include another raw `<` inside a tag\n // nested type?\n // `<Array<Array<number>>`, etc.\n nextChar === \"<\" ||\n // the , gives away that this is not HTML\n // `<T, A extends keyof T, V>`\n nextChar === \",\") {\n response.ignoreMatch();\n return;\n }\n\n // `<something>`\n // Quite possibly a tag, lets look for a matching closing tag...\n if (nextChar === \">\") {\n // if we cannot find a matching closing tag, then we\n // will ignore it\n if (!hasClosingTag(match, {\n after: afterMatchIndex\n })) {\n response.ignoreMatch();\n }\n }\n\n // `<blah />` (self-closing)\n // handled by simpleSelfClosing rule\n\n var m;\n var afterMatch = match.input.substring(afterMatchIndex);\n\n // some more template typing stuff\n // <T = any>(key?: string) => Modify<\n if (m = afterMatch.match(/^\\s*=/)) {\n response.ignoreMatch();\n return;\n }\n\n // `<From extends string>`\n // technically this could be HTML, but it smells like a type\n // NOTE: This is ugh, but added specifically for https://github.com/highlightjs/highlight.js/issues/3276\n if (m = afterMatch.match(/^\\s+extends\\s+/)) {\n if (m.index === 0) {\n response.ignoreMatch();\n // eslint-disable-next-line no-useless-return\n return;\n }\n }\n }\n };\n var KEYWORDS$1 = {\n $pattern: IDENT_RE,\n keyword: KEYWORDS,\n literal: LITERALS,\n built_in: BUILT_INS,\n \"variable.language\": BUILT_IN_VARIABLES\n };\n\n // https://tc39.es/ecma262/#sec-literals-numeric-literals\n var decimalDigits = '[0-9](_?[0-9])*';\n var frac = \"\\\\.(\".concat(decimalDigits, \")\");\n // DecimalIntegerLiteral, including Annex B NonOctalDecimalIntegerLiteral\n // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n var decimalInteger = \"0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*\";\n var NUMBER = {\n className: 'number',\n variants: [\n // DecimalLiteral\n {\n begin: \"(\\\\b(\".concat(decimalInteger, \")((\").concat(frac, \")|\\\\.)?|(\").concat(frac, \"))\") + \"[eE][+-]?(\".concat(decimalDigits, \")\\\\b\")\n }, {\n begin: \"\\\\b(\".concat(decimalInteger, \")\\\\b((\").concat(frac, \")\\\\b|\\\\.)?|(\").concat(frac, \")\\\\b\")\n },\n // DecimalBigIntegerLiteral\n {\n begin: \"\\\\b(0|[1-9](_?[0-9])*)n\\\\b\"\n },\n // NonDecimalIntegerLiteral\n {\n begin: \"\\\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\\\b\"\n }, {\n begin: \"\\\\b0[bB][0-1](_?[0-1])*n?\\\\b\"\n }, {\n begin: \"\\\\b0[oO][0-7](_?[0-7])*n?\\\\b\"\n },\n // LegacyOctalIntegerLiteral (does not include underscore separators)\n // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n {\n begin: \"\\\\b0[0-7]+n?\\\\b\"\n }],\n relevance: 0\n };\n var SUBST = {\n className: 'subst',\n begin: '\\\\$\\\\{',\n end: '\\\\}',\n keywords: KEYWORDS$1,\n contains: [] // defined later\n };\n\n var HTML_TEMPLATE = {\n begin: 'html`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [hljs.BACKSLASH_ESCAPE, SUBST],\n subLanguage: 'xml'\n }\n };\n var CSS_TEMPLATE = {\n begin: 'css`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [hljs.BACKSLASH_ESCAPE, SUBST],\n subLanguage: 'css'\n }\n };\n var GRAPHQL_TEMPLATE = {\n begin: 'gql`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [hljs.BACKSLASH_ESCAPE, SUBST],\n subLanguage: 'graphql'\n }\n };\n var TEMPLATE_STRING = {\n className: 'string',\n begin: '`',\n end: '`',\n contains: [hljs.BACKSLASH_ESCAPE, SUBST]\n };\n var JSDOC_COMMENT = hljs.COMMENT(/\\/\\*\\*(?!\\/)/, '\\\\*/', {\n relevance: 0,\n contains: [{\n begin: '(?=@[A-Za-z]+)',\n relevance: 0,\n contains: [{\n className: 'doctag',\n begin: '@[A-Za-z]+'\n }, {\n className: 'type',\n begin: '\\\\{',\n end: '\\\\}',\n excludeEnd: true,\n excludeBegin: true,\n relevance: 0\n }, {\n className: 'variable',\n begin: IDENT_RE$1 + '(?=\\\\s*(-)|$)',\n endsParent: true,\n relevance: 0\n },\n // eat spaces (not newlines) so we can find\n // types or variables\n {\n begin: /(?=[^\\n])\\s/,\n relevance: 0\n }]\n }]\n });\n var COMMENT = {\n className: \"comment\",\n variants: [JSDOC_COMMENT, hljs.C_BLOCK_COMMENT_MODE, hljs.C_LINE_COMMENT_MODE]\n };\n var SUBST_INTERNALS = [hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE, HTML_TEMPLATE, CSS_TEMPLATE, GRAPHQL_TEMPLATE, TEMPLATE_STRING,\n // Skip numbers when they are part of a variable name\n {\n match: /\\$\\d+/\n }, NUMBER\n // This is intentional:\n // See https://github.com/highlightjs/highlight.js/issues/3288\n // hljs.REGEXP_MODE\n ];\n\n SUBST.contains = SUBST_INTERNALS.concat({\n // we need to pair up {} inside our subst to prevent\n // it from ending too early by matching another }\n begin: /\\{/,\n end: /\\}/,\n keywords: KEYWORDS$1,\n contains: [\"self\"].concat(SUBST_INTERNALS)\n });\n var SUBST_AND_COMMENTS = [].concat(COMMENT, SUBST.contains);\n var PARAMS_CONTAINS = SUBST_AND_COMMENTS.concat([\n // eat recursive parens in sub expressions\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS$1,\n contains: [\"self\"].concat(SUBST_AND_COMMENTS)\n }]);\n var PARAMS = {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS$1,\n contains: PARAMS_CONTAINS\n };\n\n // ES6 classes\n var CLASS_OR_EXTENDS = {\n variants: [\n // class Car extends vehicle\n {\n match: [/class/, /\\s+/, IDENT_RE$1, /\\s+/, /extends/, /\\s+/, regex.concat(IDENT_RE$1, \"(\", regex.concat(/\\./, IDENT_RE$1), \")*\")],\n scope: {\n 1: \"keyword\",\n 3: \"title.class\",\n 5: \"keyword\",\n 7: \"title.class.inherited\"\n }\n },\n // class Car\n {\n match: [/class/, /\\s+/, IDENT_RE$1],\n scope: {\n 1: \"keyword\",\n 3: \"title.class\"\n }\n }]\n };\n var CLASS_REFERENCE = {\n relevance: 0,\n match: regex.either(\n // Hard coded exceptions\n /\\bJSON/,\n // Float32Array, OutT\n /\\b[A-Z][a-z]+([A-Z][a-z]*|\\d)*/,\n // CSSFactory, CSSFactoryT\n /\\b[A-Z]{2,}([A-Z][a-z]+|\\d)+([A-Z][a-z]*)*/,\n // FPs, FPsT\n /\\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\\d)*([A-Z][a-z]*)*/\n // P\n // single letters are not highlighted\n // BLAH\n // this will be flagged as a UPPER_CASE_CONSTANT instead\n ),\n\n className: \"title.class\",\n keywords: {\n _: [].concat(TYPES, ERROR_TYPES)\n }\n };\n var USE_STRICT = {\n label: \"use_strict\",\n className: 'meta',\n relevance: 10,\n begin: /^\\s*['\"]use (strict|asm)['\"]/\n };\n var FUNCTION_DEFINITION = {\n variants: [{\n match: [/function/, /\\s+/, IDENT_RE$1, /(?=\\s*\\()/]\n },\n // anonymous function\n {\n match: [/function/, /\\s*(?=\\()/]\n }],\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n label: \"func.def\",\n contains: [PARAMS],\n illegal: /%/\n };\n var UPPER_CASE_CONSTANT = {\n relevance: 0,\n match: /\\b[A-Z][A-Z_0-9]+\\b/,\n className: \"variable.constant\"\n };\n function noneOf(list) {\n return regex.concat(\"(?!\", list.join(\"|\"), \")\");\n }\n var FUNCTION_CALL = {\n match: regex.concat(/\\b/, noneOf([].concat(BUILT_IN_GLOBALS, [\"super\", \"import\"])), IDENT_RE$1, regex.lookahead(/\\(/)),\n className: \"title.function\",\n relevance: 0\n };\n var PROPERTY_ACCESS = {\n begin: regex.concat(/\\./, regex.lookahead(regex.concat(IDENT_RE$1, /(?![0-9A-Za-z$_(])/))),\n end: IDENT_RE$1,\n excludeBegin: true,\n keywords: \"prototype\",\n className: \"property\",\n relevance: 0\n };\n var GETTER_OR_SETTER = {\n match: [/get|set/, /\\s+/, IDENT_RE$1, /(?=\\()/],\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [{\n // eat to avoid empty params\n begin: /\\(\\)/\n }, PARAMS]\n };\n var FUNC_LEAD_IN_RE = '(\\\\(' + '[^()]*(\\\\(' + '[^()]*(\\\\(' + '[^()]*' + '\\\\)[^()]*)*' + '\\\\)[^()]*)*' + '\\\\)|' + hljs.UNDERSCORE_IDENT_RE + ')\\\\s*=>';\n var FUNCTION_VARIABLE = {\n match: [/const|var|let/, /\\s+/, IDENT_RE$1, /\\s*/, /=\\s*/, /(async\\s*)?/,\n // async is optional\n regex.lookahead(FUNC_LEAD_IN_RE)],\n keywords: \"async\",\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [PARAMS]\n };\n return {\n name: 'JavaScript',\n aliases: ['js', 'jsx', 'mjs', 'cjs'],\n keywords: KEYWORDS$1,\n // this will be extended by TypeScript\n exports: {\n PARAMS_CONTAINS: PARAMS_CONTAINS,\n CLASS_REFERENCE: CLASS_REFERENCE\n },\n illegal: /#(?![$_A-z])/,\n contains: [hljs.SHEBANG({\n label: \"shebang\",\n binary: \"node\",\n relevance: 5\n }), USE_STRICT, hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE, HTML_TEMPLATE, CSS_TEMPLATE, GRAPHQL_TEMPLATE, TEMPLATE_STRING, COMMENT,\n // Skip numbers when they are part of a variable name\n {\n match: /\\$\\d+/\n }, NUMBER, CLASS_REFERENCE, {\n className: 'attr',\n begin: IDENT_RE$1 + regex.lookahead(':'),\n relevance: 0\n }, FUNCTION_VARIABLE, {\n // \"value\" container\n begin: '(' + hljs.RE_STARTERS_RE + '|\\\\b(case|return|throw)\\\\b)\\\\s*',\n keywords: 'return throw case',\n relevance: 0,\n contains: [COMMENT, hljs.REGEXP_MODE, {\n className: 'function',\n // we have to count the parens to make sure we actually have the\n // correct bounding ( ) before the =>. There could be any number of\n // sub-expressions inside also surrounded by parens.\n begin: FUNC_LEAD_IN_RE,\n returnBegin: true,\n end: '\\\\s*=>',\n contains: [{\n className: 'params',\n variants: [{\n begin: hljs.UNDERSCORE_IDENT_RE,\n relevance: 0\n }, {\n className: null,\n begin: /\\(\\s*\\)/,\n skip: true\n }, {\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS$1,\n contains: PARAMS_CONTAINS\n }]\n }]\n }, {\n // could be a comma delimited list of params to a function call\n begin: /,/,\n relevance: 0\n }, {\n match: /\\s+/,\n relevance: 0\n }, {\n // JSX\n variants: [{\n begin: FRAGMENT.begin,\n end: FRAGMENT.end\n }, {\n match: XML_SELF_CLOSING\n }, {\n begin: XML_TAG.begin,\n // we carefully check the opening tag to see if it truly\n // is a tag and not a false positive\n 'on:begin': XML_TAG.isTrulyOpeningTag,\n end: XML_TAG.end\n }],\n subLanguage: 'xml',\n contains: [{\n begin: XML_TAG.begin,\n end: XML_TAG.end,\n skip: true,\n contains: ['self']\n }]\n }]\n }, FUNCTION_DEFINITION, {\n // prevent this from getting swallowed up by function\n // since they appear \"function like\"\n beginKeywords: \"while if switch catch for\"\n }, {\n // we have to count the parens to make sure we actually have the correct\n // bounding ( ). There could be any number of sub-expressions inside\n // also surrounded by parens.\n begin: '\\\\b(?!function)' + hljs.UNDERSCORE_IDENT_RE + '\\\\(' +\n // first parens\n '[^()]*(\\\\(' + '[^()]*(\\\\(' + '[^()]*' + '\\\\)[^()]*)*' + '\\\\)[^()]*)*' + '\\\\)\\\\s*\\\\{',\n // end parens\n returnBegin: true,\n label: \"func.def\",\n contains: [PARAMS, hljs.inherit(hljs.TITLE_MODE, {\n begin: IDENT_RE$1,\n className: \"title.function\"\n })]\n },\n // catch ... so it won't trigger the property rule below\n {\n match: /\\.\\.\\./,\n relevance: 0\n }, PROPERTY_ACCESS,\n // hack: prevents detection of keywords in some circumstances\n // .keyword()\n // $keyword = x\n {\n match: '\\\\$' + IDENT_RE$1,\n relevance: 0\n }, {\n match: [/\\bconstructor(?=\\s*\\()/],\n className: {\n 1: \"title.function\"\n },\n contains: [PARAMS]\n }, FUNCTION_CALL, UPPER_CASE_CONSTANT, CLASS_OR_EXTENDS, GETTER_OR_SETTER, {\n match: /\\$[(.]/ // relevance booster for a pattern common to JS libs: `$(something)` and `$.something`\n }]\n };\n}\n\n/*\nLanguage: TypeScript\nAuthor: Panu Horsmalahti <panu.horsmalahti@iki.fi>\nContributors: Ike Ku <dempfi@yahoo.com>\nDescription: TypeScript is a strict superset of JavaScript\nWebsite: https://www.typescriptlang.org\nCategory: common, scripting\n*/\n\n/** @type LanguageFn */\nfunction typescript(hljs) {\n var tsLanguage = javascript(hljs);\n var IDENT_RE$1 = IDENT_RE;\n var TYPES = [\"any\", \"void\", \"number\", \"boolean\", \"string\", \"object\", \"never\", \"symbol\", \"bigint\", \"unknown\"];\n var NAMESPACE = {\n beginKeywords: 'namespace',\n end: /\\{/,\n excludeEnd: true,\n contains: [tsLanguage.exports.CLASS_REFERENCE]\n };\n var INTERFACE = {\n beginKeywords: 'interface',\n end: /\\{/,\n excludeEnd: true,\n keywords: {\n keyword: 'interface extends',\n built_in: TYPES\n },\n contains: [tsLanguage.exports.CLASS_REFERENCE]\n };\n var USE_STRICT = {\n className: 'meta',\n relevance: 10,\n begin: /^\\s*['\"]use strict['\"]/\n };\n var TS_SPECIFIC_KEYWORDS = [\"type\", \"namespace\", \"interface\", \"public\", \"private\", \"protected\", \"implements\", \"declare\", \"abstract\", \"readonly\", \"enum\", \"override\"];\n var KEYWORDS$1 = {\n $pattern: IDENT_RE,\n keyword: KEYWORDS.concat(TS_SPECIFIC_KEYWORDS),\n literal: LITERALS,\n built_in: BUILT_INS.concat(TYPES),\n \"variable.language\": BUILT_IN_VARIABLES\n };\n var DECORATOR = {\n className: 'meta',\n begin: '@' + IDENT_RE$1\n };\n var swapMode = function swapMode(mode, label, replacement) {\n var indx = mode.contains.findIndex(function (m) {\n return m.label === label;\n });\n if (indx === -1) {\n throw new Error(\"can not find mode to replace\");\n }\n mode.contains.splice(indx, 1, replacement);\n };\n\n // this should update anywhere keywords is used since\n // it will be the same actual JS object\n Object.assign(tsLanguage.keywords, KEYWORDS$1);\n tsLanguage.exports.PARAMS_CONTAINS.push(DECORATOR);\n tsLanguage.contains = tsLanguage.contains.concat([DECORATOR, NAMESPACE, INTERFACE]);\n\n // TS gets a simpler shebang rule than JS\n swapMode(tsLanguage, \"shebang\", hljs.SHEBANG());\n // JS use strict rule purposely excludes `asm` which makes no sense\n swapMode(tsLanguage, \"use_strict\", USE_STRICT);\n var functionDeclaration = tsLanguage.contains.find(function (m) {\n return m.label === \"func.def\";\n });\n functionDeclaration.relevance = 0; // () => {} is more typical in TypeScript\n\n Object.assign(tsLanguage, {\n name: 'TypeScript',\n aliases: ['ts', 'tsx', 'mts', 'cts']\n });\n return tsLanguage;\n}\nmodule.exports = typescript;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvdHlwZXNjcmlwdC5qcyJdLCJuYW1lcyI6WyJJREVOVF9SRSIsIktFWVdPUkRTIiwiTElURVJBTFMiLCJUWVBFUyIsIkVSUk9SX1RZUEVTIiwiQlVJTFRfSU5fR0xPQkFMUyIsIkJVSUxUX0lOX1ZBUklBQkxFUyIsIkJVSUxUX0lOUyIsImNvbmNhdCIsImphdmFzY3JpcHQiLCJobGpzIiwicmVnZXgiLCJoYXNDbG9zaW5nVGFnIiwibWF0Y2giLCJhZnRlciIsInRhZyIsInNsaWNlIiwicG9zIiwiaW5wdXQiLCJpbmRleE9mIiwiSURFTlRfUkUkMSIsIkZSQUdNRU5UIiwiYmVnaW4iLCJlbmQiLCJYTUxfU0VMRl9DTE9TSU5HIiwiWE1MX1RBRyIsImlzVHJ1bHlPcGVuaW5nVGFnIiwicmVzcG9uc2UiLCJhZnRlck1hdGNoSW5kZXgiLCJsZW5ndGgiLCJpbmRleCIsIm5leHRDaGFyIiwiaWdub3JlTWF0Y2giLCJtIiwiYWZ0ZXJNYXRjaCIsInN1YnN0cmluZyIsIktFWVdPUkRTJDEiLCIkcGF0dGVybiIsImtleXdvcmQiLCJsaXRlcmFsIiwiYnVpbHRfaW4iLCJkZWNpbWFsRGlnaXRzIiwiZnJhYyIsImRlY2ltYWxJbnRlZ2VyIiwiTlVNQkVSIiwiY2xhc3NOYW1lIiwidmFyaWFudHMiLCJyZWxldmFuY2UiLCJTVUJTVCIsImtleXdvcmRzIiwiY29udGFpbnMiLCJIVE1MX1RFTVBMQVRFIiwic3RhcnRzIiwicmV0dXJuRW5kIiwiQkFDS1NMQVNIX0VTQ0FQRSIsInN1Ykxhbmd1YWdlIiwiQ1NTX1RFTVBMQVRFIiwiR1JBUEhRTF9URU1QTEFURSIsIlRFTVBMQVRFX1NUUklORyIsIkpTRE9DX0NPTU1FTlQiLCJDT01NRU5UIiwiZXhjbHVkZUVuZCIsImV4Y2x1ZGVCZWdpbiIsImVuZHNQYXJlbnQiLCJDX0JMT0NLX0NPTU1FTlRfTU9ERSIsIkNfTElORV9DT01NRU5UX01PREUiLCJTVUJTVF9JTlRFUk5BTFMiLCJBUE9TX1NUUklOR19NT0RFIiwiUVVPVEVfU1RSSU5HX01PREUiLCJTVUJTVF9BTkRfQ09NTUVOVFMiLCJQQVJBTVNfQ09OVEFJTlMiLCJQQVJBTVMiLCJDTEFTU19PUl9FWFRFTkRTIiwic2NvcGUiLCJDTEFTU19SRUZFUkVOQ0UiLCJlaXRoZXIiLCJfIiwiVVNFX1NUUklDVCIsImxhYmVsIiwiRlVOQ1RJT05fREVGSU5JVElPTiIsImlsbGVnYWwiLCJVUFBFUl9DQVNFX0NPTlNUQU5UIiwibm9uZU9mIiwibGlzdCIsImpvaW4iLCJGVU5DVElPTl9DQUxMIiwibG9va2FoZWFkIiwiUFJPUEVSVFlfQUNDRVNTIiwiR0VUVEVSX09SX1NFVFRFUiIsIkZVTkNfTEVBRF9JTl9SRSIsIlVOREVSU0NPUkVfSURFTlRfUkUiLCJGVU5DVElPTl9WQVJJQUJMRSIsIm5hbWUiLCJhbGlhc2VzIiwiZXhwb3J0cyIsIlNIRUJBTkciLCJiaW5hcnkiLCJSRV9TVEFSVEVSU19SRSIsIlJFR0VYUF9NT0RFIiwicmV0dXJuQmVnaW4iLCJza2lwIiwiYmVnaW5LZXl3b3JkcyIsImluaGVyaXQiLCJUSVRMRV9NT0RFIiwidHlwZXNjcmlwdCIsInRzTGFuZ3VhZ2UiLCJOQU1FU1BBQ0UiLCJJTlRFUkZBQ0UiLCJUU19TUEVDSUZJQ19LRVlXT1JEUyIsIkRFQ09SQVRPUiIsInN3YXBNb2RlIiwibW9kZSIsInJlcGxhY2VtZW50IiwiaW5keCIsImZpbmRJbmRleCIsIkVycm9yIiwic3BsaWNlIiwiT2JqZWN0IiwiYXNzaWduIiwicHVzaCIsImZ1bmN0aW9uRGVjbGFyYXRpb24iLCJmaW5kIiwibW9kdWxlIl0sIm1hcHBpbmdzIjoiQUFBQSxJQUFNQSxRQUFRLEdBQUcsMEJBQTBCO0FBQzNDLElBQU1DLFFBQVEsR0FBRyxDQUNmLElBQUk7QUFBRTtBQUNOLElBQUksRUFDSixJQUFJLEVBQ0osSUFBSSxFQUNKLEtBQUssRUFDTCxPQUFPLEVBQ1AsU0FBUyxFQUNULEtBQUssRUFDTCxLQUFLLEVBQ0ws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TCxLQUFLLEVBQ0wsS0FBSztFQUVULENBQUMsQ0FBQztFQUVGLE9BQU9ZLFVBQVU7QUFDbkI7QUFFQWlCLE1BQU0sQ0FBQzVCLE9BQU8sR0FBR1UsVUFBVSIsImZpbGUiOiI4OC5qcyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IElERU5UX1JFID0gJ1tBLVphLXokX11bMC05QS1aYS16JF9dKic7XG5jb25zdCBLRVlXT1JEUyA9IFtcbiAgXCJhc1wiLCAvLyBmb3IgZXhwb3J0c1xuICBcImluXCIsXG4gIFwib2ZcIixcbiAgXCJpZlwiLFxuICBcImZvclwiLFxuICBcIndoaWxlXCIsXG4gIFwiZmluYWxseVwiLFxuICBcInZhclwiLFxuICBcIm5ld1wiLFxuICBcImZ1bmN0aW9uXCIsXG4gIFwiZG9cIixcbiAgXCJyZXR1cm5cIixcbiAgXCJ2b2lkXCIsXG4gIFwiZWxzZVwiLFxuICBcImJyZWFrXCIsXG4gIFwiY2F0Y2hcIixcbiAgXCJpbnN0YW5jZW9mXCIsXG4gIFwid2l0aFwiLFxuICBcInRocm93XCIsXG4gIFwiY2FzZVwiLFxuICBcImRlZmF1bHRcIixcbiAgXCJ0cnlcIixcbiAgXCJzd2l0Y2hcIixcbiAgXCJjb250aW51ZVwiLFxuICBcInR5cGVvZlwiLFxuICBcImRlbGV0ZVwiLFxuICBcImxldFwiLFxuICBcInlpZWxkXCIsXG4gIFwiY29uc3RcIixcbiAgXCJjbGFzc1wiLFxuICAvLyBKUyBoYW5kbGVzIHRoZXNlIHdpdGggYSBzcGVjaWFsIHJ1bGVcbiAgLy8gXCJnZXRcIixcbiAgLy8gXCJzZXRcIixcbiAgXCJkZWJ1Z2dlclwiLFxuICBcImFzeW5jXCIsXG4gIFwiYXdhaXRcIixcbiAgXCJzdGF0aWNcIixcbiAgXCJpbXBvcnRcIixcbiAgXCJmcm9tXCIsXG4gIFwiZXhwb3J0XCIsXG4gIFwiZXh0ZW5kc1wiXG5dO1xuY29uc3QgTElURVJBTFMgPSBbXG4gIFwidHJ1ZVwiLFxuICBcImZhbHNlXCIsXG4gIFwibnVsbFwiLFxuICBcInVuZGVmaW5lZFwiLFxuICBcIk5hTlwiLFxuICBcIkluZmluaXR5XCJcbl07XG5cbi8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzXG5jb25zdCBUWVBFUyA9IFtcbiAgLy8gRnVuZGFtZW50YWwgb2JqZWN0c1xuICBcIk9iamVjdFwiLFxuICBcIkZ1bmN0aW9uXCIsXG4gIFwiQm9vbGVhblwiLFxuICBcIlN5bWJvbFwiLFxuICAvLyBudW1iZXJzIGFuZCBkYXRlc1xuICBcIk1hdGhcIixcbiAgXCJEYXRlXCIsXG4gIFwiTnVtYmVyXCIsXG4gIFwiQmlnSW50XCIsXG4gIC8vIHRleHRcbiAgXCJTdHJpbmdcIixcbiAgXCJSZWdFeHBcIixcbiAgLy8gSW5kZXhlZCBjb2xsZWN0aW9uc1xuICBcIkFycmF5XCIsXG4gIFwiRmxvYXQzMkFycmF5XCIsXG4gIFwiRmxvYXQ2NEFycmF5XCIsXG4gIFwiSW50OEFycmF5XCIsXG4gIFwiVWludDhBcnJheVwiLFxuICBcIlVpbnQ4Q2xhbXBlZEFycmF5XCIsXG4gIFwiSW50MTZBcnJheVwiLFxuICBcIkludDMyQXJyYXlcIixcbiAgXCJVaW50MTZBcnJheVwiLFxuICBcIlVpbnQzMkFycmF5XCIsXG4gIFwiQmlnSW50NjRBcnJheVwiLFxuICBcIkJpZ1VpbnQ2NEFycmF5XCIsXG4gIC8vIEtleWVkIGNvbGxlY3Rpb25zXG4gIFwiU2V0XCIsXG4gIFwiTWFwXCIsXG4gIFwiV2Vha1NldFwiLFxuICBcIldlYWtNYXBcIixcbiAgLy8gU3RydWN0dXJlZCBkYXRhXG4gIFwiQXJyYXlCdWZmZXJcIixcbiAgXCJTaGFyZWRBcnJheUJ1ZmZlclwiLFxuICBcIkF0b21pY3NcIixcbiAgXCJEYXRhVmlld1wiLFxuICBcIkpTT05cIixcbiAgLy8gQ29udHJvbCBhYnN0cmFjdGlvbiBvYmplY3RzXG4gIFwiUHJvbWlzZVwiLFxuICBcIkdlbmVyYXRvclwiLFxuICBcIkdlbmVyYXRvckZ1bmN0aW9uXCIsXG4gIFwiQXN5bmNGdW5jdGlvblwiLFxuICAvLyBSZWZsZWN0aW9uXG4gIFwiUmVmbGVjdFwiLFxuICBcIlByb3h5XCIsXG4gIC8vIEludGVybmF0aW9uYWxpemF0aW9uXG4gIFwiSW50bFwiLFxuICAvLyBXZWJBc3NlbWJseVxuICBcIldlYkFzc2VtYmx5XCJcbl07XG5cbmNvbnN0IEVSUk9SX1RZUEVTID0gW1xuICBcIkVycm9yXCIsXG4gIFwiRXZhbEVycm9yXCIsXG4gIFwiSW50ZXJuYWxFcnJvclwiLFxuICBcIlJhbmdlRXJyb3JcIixcbiAgXCJSZWZlcmVuY2VFcnJvclwiLFxuICBcIlN5bnRheEVycm9yXCIsXG4gIFwiVHlwZUVycm9yXCIsXG4gIFwiVVJJRXJyb3JcIlxuXTtcblxuY29uc3QgQlVJTFRfSU5fR0xPQkFMUyA9IFtcbiAgXCJzZXRJbnRlcnZhbFwiLFxuICBcInNldFRpbWVvdXRcIixcbiAgXCJjbGVhckludGVydmFsXCIsXG4gIFwiY2xlYXJUaW1lb3V0XCIsXG5cbiAgXCJyZXF1aXJlXCIsXG4gIFwiZXhwb3J0c1wiLFxuXG4gIFwiZXZhbFwiLFxuICBcImlzRmluaXRlXCIsXG4gIFwiaXNOYU5cIixcbiAgXCJwYXJzZUZsb2F0XCIsXG4gIFwicGFyc2VJbnRcIixcbiAgXCJkZWNvZGVVUklcIixcbiAgXCJkZWNvZGVVUklDb21wb25lbnRcIixcbiAgXCJlbmNvZGVVUklcIixcbiAgXCJlbmNvZGVVUklDb21wb25lbnRcIixcbiAgXCJlc2NhcGVcIixcbiAgXCJ1bmVzY2FwZVwiXG5dO1xuXG5jb25zdCBCVUlMVF9JTl9WQVJJQUJMRVMgPSBbXG4gIFwiYXJndW1lbnRzXCIsXG4gIFwidGhpc1wiLFxuICBcInN1cGVyXCIsXG4gIFwiY29uc29sZVwiLFxuICBcIndpbmRvd1wiLFxuICBcImRvY3VtZW50XCIsXG4gIFwibG9jYWxTdG9yYWdlXCIsXG4gIFwic2Vzc2lvblN0b3JhZ2VcIixcbiAgXCJtb2R1bGVcIixcbiAgXCJnbG9iYWxcIiAvLyBOb2RlLmpzXG5dO1xuXG5jb25zdCBCVUlMVF9JTlMgPSBbXS5jb25jYXQoXG4gIEJVSUxUX0lOX0dMT0JBTFMsXG4gIFRZUEVTLFxuICBFUlJPUl9UWVBFU1xuKTtcblxuLypcbkxhbmd1YWdlOiBKYXZhU2NyaXB0XG5EZXNjcmlwdGlvbjogSmF2YVNjcmlwdCAoSlMpIGlzIGEgbGlnaHR3ZWlnaHQsIGludGVycHJldGVkLCBvciBqdXN0LWluLXRpbWUgY29tcGlsZWQgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2Ugd2l0aCBmaXJzdC1jbGFzcyBmdW5jdGlvbnMuXG5DYXRlZ29yeTogY29tbW9uLCBzY3JpcHRpbmcsIHdlYlxuV2Vic2l0ZTogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdFxuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIGphdmFzY3JpcHQoaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIC8qKlxuICAgKiBUYWtlcyBhIHN0cmluZyBsaWtlIFwiPEJvb2dlclwiIGFuZCBjaGVja3MgdG8gc2VlXG4gICAqIGlmIHdlIGNhbiBmaW5kIGEgbWF0Y2hpbmcgXCI8L0Jvb2dlclwiIGxhdGVyIGluIHRoZVxuICAgKiBjb250ZW50LlxuICAgKiBAcGFyYW0ge1JlZ0V4cE1hdGNoQXJyYXl9IG1hdGNoXG4gICAqIEBwYXJhbSB7e2FmdGVyOm51bWJlcn19IHBhcmFtMVxuICAgKi9cbiAgY29uc3QgaGFzQ2xvc2luZ1RhZyA9IChtYXRjaCwgeyBhZnRlciB9KSA9PiB7XG4gICAgY29uc3QgdGFnID0gXCI8L1wiICsgbWF0Y2hbMF0uc2xpY2UoMSk7XG4gICAgY29uc3QgcG9zID0gbWF0Y2guaW5wdXQuaW5kZXhPZih0YWcsIGFmdGVyKTtcbiAgICByZXR1cm4gcG9zICE9PSAtMTtcbiAgfTtcblxuICBjb25zdCBJREVOVF9SRSQxID0gSURFTlRfUkU7XG4gIGNvbnN0IEZSQUdNRU5UID0ge1xuICAgIGJlZ2luOiAnPD4nLFxuICAgIGVuZDogJzwvPidcbiAgfTtcbiAgLy8gdG8gYXZvaWQgc29tZSBzcGVjaWFsIGNhc2VzIGluc2lkZSBpc1RydWx5T3BlbmluZ1RhZ1xuICBjb25zdCBYTUxfU0VMRl9DTE9TSU5HID0gLzxbQS1aYS16MC05XFxcXC5fOi1dK1xccypcXC8+LztcbiAgY29uc3QgWE1MX1RBRyA9IHtcbiAgICBiZWdpbjogLzxbQS1aYS16MC05XFxcXC5fOi1dKy8sXG4gICAgZW5kOiAvXFwvW0EtWmEtejAtOVxcXFwuXzotXSs+fFxcLz4vLFxuICAgIC8qKlxuICAgICAqIEBwYXJhbSB7UmVnRXhwTWF0Y2hBcnJheX0gbWF0Y2hcbiAgICAgKiBAcGFyYW0ge0NhbGxiYWNrUmVzcG9uc2V9IHJlc3BvbnNlXG4gICAgICovXG4gICAgaXNUcnVseU9wZW5pbmdUYWc6IChtYXRjaCwgcmVzcG9uc2UpID0+IHtcbiAgICAgIGNvbnN0IGFmdGVyTWF0Y2hJbmRleCA9IG1hdGNoWzBdLmxlbmd0aCArIG1hdGNoLmluZGV4O1xuICAgICAgY29uc3QgbmV4dENoYXIgPSBtYXRjaC5pbnB1dFthZnRlck1hdGNoSW5kZXhdO1xuICAgICAgaWYgKFxuICAgICAgICAvLyBIVE1MIHNob3VsZCBub3QgaW5jbHVkZSBhbm90aGVyIHJhdyBgPGAgaW5zaWRlIGEgdGFnXG4gICAgICAgIC8vIG5lc3RlZCB0eXBlP1xuICAgICAgICAvLyBgPEFycmF5PEFycmF5PG51bWJlcj4+YCwgZXRjLlxuICAgICAgICBuZXh0Q2hhciA9PT0gXCI8XCIgfHxcbiAgICAgICAgLy8gdGhlICwgZ2l2ZXMgYXdheSB0aGF0IHRoaXMgaXMgbm90IEhUTUxcbiAgICAgICAgLy8gYDxULCBBIGV4dGVuZHMga2V5b2YgVCwgVj5gXG4gICAgICAgIG5leHRDaGFyID09PSBcIixcIlxuICAgICAgICApIHtcbiAgICAgICAgcmVzcG9uc2UuaWdub3JlTWF0Y2goKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBgPHNvbWV0aGluZz5gXG4gICAgICAvLyBRdWl0ZSBwb3NzaWJseSBhIHRhZywgbGV0cyBsb29rIGZvciBhIG1hdGNoaW5nIGNsb3NpbmcgdGFnLi4uXG4gICAgICBpZiAobmV4dENoYXIgPT09IFwiPlwiKSB7XG4gICAgICAgIC8vIGlmIHdlIGNhbm5vdCBmaW5kIGEgbWF0Y2hpbmcgY2xvc2luZyB0YWcsIHRoZW4gd2VcbiAgICAgICAgLy8gd2lsbCBpZ25vcmUgaXRcbiAgICAgICAgaWYgKCFoYXNDbG9zaW5nVGFnKG1hdGNoLCB7IGFmdGVyOiBhZnRlck1hdGNoSW5kZXggfSkpIHtcbiAgICAgICAgICByZXNwb25zZS5pZ25vcmVNYXRjaCgpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIGA8YmxhaCAvPmAgKHNlbGYtY2xvc2luZylcbiAgICAgIC8vIGhhbmRsZWQgYnkgc2ltcGxlU2VsZkNsb3NpbmcgcnVsZVxuXG4gICAgICBsZXQgbTtcbiAgICAgIGNvbnN0IGFmdGVyTWF0Y2ggPSBtYXRjaC5pbnB1dC5zdWJzdHJpbmcoYWZ0ZXJNYXRjaEluZGV4KTtcblxuICAgICAgLy8gc29tZSBtb3JlIHRlbXBsYXRlIHR5cGluZyBzdHVmZlxuICAgICAgLy8gIDxUID0gYW55PihrZXk/OiBzdHJpbmcpID0+IE1vZGlmeTxcbiAgICAgIGlmICgobSA9IGFmdGVyTWF0Y2gubWF0Y2goL15cXHMqPS8pKSkge1xuICAgICAgICByZXNwb25zZS5pZ25vcmVNYXRjaCgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIGA8RnJvbSBleHRlbmRzIHN0cmluZz5gXG4gICAgICAvLyB0ZWNobmljYWxseSB0aGlzIGNvdWxkIGJlIEhUTUwsIGJ1dCBpdCBzbWVsbHMgbGlrZSBhIHR5cGVcbiAgICAgIC8vIE5PVEU6IFRoaXMgaXMgdWdoLCBidXQgYWRkZWQgc3BlY2lmaWNhbGx5IGZvciBodHRwczovL2dpdGh1Yi5jb20vaGlnaGxpZ2h0anMvaGlnaGxpZ2h0LmpzL2lzc3Vlcy8zMjc2XG4gICAgICBpZiAoKG0gPSBhZnRlck1hdGNoLm1hdGNoKC9eXFxzK2V4dGVuZHNcXHMrLykpKSB7XG4gICAgICAgIGlmIChtLmluZGV4ID09PSAwKSB7XG4gICAgICAgICAgcmVzcG9uc2UuaWdub3JlTWF0Y2goKTtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlbGVzcy1yZXR1cm5cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH07XG4gIGNvbnN0IEtFWVdPUkRTJDEgPSB7XG4gICAgJHBhdHRlcm46IElERU5UX1JFLFxuICAgIGtleXdvcmQ6IEtFWVdPUkRTLFxuICAgIGxpdGVyYWw6IExJVEVSQUxTLFxuICAgIGJ1aWx0X2luOiBCVUlMVF9JTlMsXG4gICAgXCJ2YXJpYWJsZS5sYW5ndWFnZVwiOiBCVUlMVF9JTl9WQVJJQUJMRVNcbiAgfTtcblxuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWxpdGVyYWxzLW51bWVyaWMtbGl0ZXJhbHNcbiAgY29uc3QgZGVjaW1hbERpZ2l0cyA9ICdbMC05XShfP1swLTldKSonO1xuICBjb25zdCBmcmFjID0gYFxcXFwuKCR7ZGVjaW1hbERpZ2l0c30pYDtcbiAgLy8gRGVjaW1hbEludGVnZXJMaXRlcmFsLCBpbmNsdWRpbmcgQW5uZXggQiBOb25PY3RhbERlY2ltYWxJbnRlZ2VyTGl0ZXJhbFxuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFkZGl0aW9uYWwtc3ludGF4LW51bWVyaWMtbGl0ZXJhbHNcbiAgY29uc3QgZGVjaW1hbEludGVnZXIgPSBgMHxbMS05XShfP1swLTldKSp8MFswLTddKls4OV1bMC05XSpgO1xuICBjb25zdCBOVU1CRVIgPSB7XG4gICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICB2YXJpYW50czogW1xuICAgICAgLy8gRGVjaW1hbExpdGVyYWxcbiAgICAgIHsgYmVnaW46IGAoXFxcXGIoJHtkZWNpbWFsSW50ZWdlcn0pKCgke2ZyYWN9KXxcXFxcLik/fCgke2ZyYWN9KSlgICtcbiAgICAgICAgYFtlRV1bKy1dPygke2RlY2ltYWxEaWdpdHN9KVxcXFxiYCB9LFxuICAgICAgeyBiZWdpbjogYFxcXFxiKCR7ZGVjaW1hbEludGVnZXJ9KVxcXFxiKCgke2ZyYWN9KVxcXFxifFxcXFwuKT98KCR7ZnJhY30pXFxcXGJgIH0sXG5cbiAgICAgIC8vIERlY2ltYWxCaWdJbnRlZ2VyTGl0ZXJhbFxuICAgICAgeyBiZWdpbjogYFxcXFxiKDB8WzEtOV0oXz9bMC05XSkqKW5cXFxcYmAgfSxcblxuICAgICAgLy8gTm9uRGVjaW1hbEludGVnZXJMaXRlcmFsXG4gICAgICB7IGJlZ2luOiBcIlxcXFxiMFt4WF1bMC05YS1mQS1GXShfP1swLTlhLWZBLUZdKSpuP1xcXFxiXCIgfSxcbiAgICAgIHsgYmVnaW46IFwiXFxcXGIwW2JCXVswLTFdKF8/WzAtMV0pKm4/XFxcXGJcIiB9LFxuICAgICAgeyBiZWdpbjogXCJcXFxcYjBbb09dWzAtN10oXz9bMC03XSkqbj9cXFxcYlwiIH0sXG5cbiAgICAgIC8vIExlZ2FjeU9jdGFsSW50ZWdlckxpdGVyYWwgKGRvZXMgbm90IGluY2x1ZGUgdW5kZXJzY29yZSBzZXBhcmF0b3JzKVxuICAgICAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hZGRpdGlvbmFsLXN5bnRheC1udW1lcmljLWxpdGVyYWxzXG4gICAgICB7IGJlZ2luOiBcIlxcXFxiMFswLTddK24/XFxcXGJcIiB9LFxuICAgIF0sXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgY29uc3QgU1VCU1QgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3Vic3QnLFxuICAgIGJlZ2luOiAnXFxcXCRcXFxceycsXG4gICAgZW5kOiAnXFxcXH0nLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyQxLFxuICAgIGNvbnRhaW5zOiBbXSAvLyBkZWZpbmVkIGxhdGVyXG4gIH07XG4gIGNvbnN0IEhUTUxfVEVNUExBVEUgPSB7XG4gICAgYmVnaW46ICdodG1sYCcsXG4gICAgZW5kOiAnJyxcbiAgICBzdGFydHM6IHtcbiAgICAgIGVuZDogJ2AnLFxuICAgICAgcmV0dXJuRW5kOiBmYWxzZSxcbiAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICAgICAgU1VCU1RcbiAgICAgIF0sXG4gICAgICBzdWJMYW5ndWFnZTogJ3htbCdcbiAgICB9XG4gIH07XG4gIGNvbnN0IENTU19URU1QTEFURSA9IHtcbiAgICBiZWdpbjogJ2Nzc2AnLFxuICAgIGVuZDogJycsXG4gICAgc3RhcnRzOiB7XG4gICAgICBlbmQ6ICdgJyxcbiAgICAgIHJldHVybkVuZDogZmFsc2UsXG4gICAgICBjb250YWluczogW1xuICAgICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICAgIFNVQlNUXG4gICAgICBdLFxuICAgICAgc3ViTGFuZ3VhZ2U6ICdjc3MnXG4gICAgfVxuICB9O1xuICBjb25zdCBHUkFQSFFMX1RFTVBMQVRFID0ge1xuICAgIGJlZ2luOiAnZ3FsYCcsXG4gICAgZW5kOiAnJyxcbiAgICBzdGFydHM6IHtcbiAgICAgIGVuZDogJ2AnLFxuICAgICAgcmV0dXJuRW5kOiBmYWxzZSxcbiAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICAgICAgU1VCU1RcbiAgICAgIF0sXG4gICAgICBzdWJMYW5ndWFnZTogJ2dyYXBocWwnXG4gICAgfVxuICB9O1xuICBjb25zdCBURU1QTEFURV9TVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogJ2AnLFxuICAgIGVuZDogJ2AnLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICBTVUJTVFxuICAgIF1cbiAgfTtcbiAgY29uc3QgSlNET0NfQ09NTUVOVCA9IGhsanMuQ09NTUVOVChcbiAgICAvXFwvXFwqXFwqKD8hXFwvKS8sXG4gICAgJ1xcXFwqLycsXG4gICAge1xuICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgY29udGFpbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiAnKD89QFtBLVphLXpdKyknLFxuICAgICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjbGFzc05hbWU6ICdkb2N0YWcnLFxuICAgICAgICAgICAgICBiZWdpbjogJ0BbQS1aYS16XSsnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICAgICAgICAgICAgYmVnaW46ICdcXFxceycsXG4gICAgICAgICAgICAgIGVuZDogJ1xcXFx9JyxcbiAgICAgICAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgICAgICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGNsYXNzTmFtZTogJ3ZhcmlhYmxlJyxcbiAgICAgICAgICAgICAgYmVnaW46IElERU5UX1JFJDEgKyAnKD89XFxcXHMqKC0pfCQpJyxcbiAgICAgICAgICAgICAgZW5kc1BhcmVudDogdHJ1ZSxcbiAgICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLy8gZWF0IHNwYWNlcyAobm90IG5ld2xpbmVzKSBzbyB3ZSBjYW4gZmluZFxuICAgICAgICAgICAgLy8gdHlwZXMgb3IgdmFyaWFibGVzXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGJlZ2luOiAvKD89W15cXG5dKVxccy8sXG4gICAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH1cbiAgKTtcbiAgY29uc3QgQ09NTUVOVCA9IHtcbiAgICBjbGFzc05hbWU6IFwiY29tbWVudFwiLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICBKU0RPQ19DT01NRU5ULFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERVxuICAgIF1cbiAgfTtcbiAgY29uc3QgU1VCU1RfSU5URVJOQUxTID0gW1xuICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgIEhUTUxfVEVNUExBVEUsXG4gICAgQ1NTX1RFTVBMQVRFLFxuICAgIEdSQVBIUUxfVEVNUExBVEUsXG4gICAgVEVNUExBVEVfU1RSSU5HLFxuICAgIC8vIFNraXAgbnVtYmVycyB3aGVuIHRoZXkgYXJlIHBhcnQgb2YgYSB2YXJpYWJsZSBuYW1lXG4gICAgeyBtYXRjaDogL1xcJFxcZCsvIH0sXG4gICAgTlVNQkVSLFxuICAgIC8vIFRoaXMgaXMgaW50ZW50aW9uYWw6XG4gICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oaWdobGlnaHRqcy9oaWdobGlnaHQuanMvaXNzdWVzLzMyODhcbiAgICAvLyBobGpzLlJFR0VYUF9NT0RFXG4gIF07XG4gIFNVQlNULmNvbnRhaW5zID0gU1VCU1RfSU5URVJOQUxTXG4gICAgLmNvbmNhdCh7XG4gICAgICAvLyB3ZSBuZWVkIHRvIHBhaXIgdXAge30gaW5zaWRlIG91ciBzdWJzdCB0byBwcmV2ZW50XG4gICAgICAvLyBpdCBmcm9tIGVuZGluZyB0b28gZWFybHkgYnkgbWF0Y2hpbmcgYW5vdGhlciB9XG4gICAgICBiZWdpbjogL1xcey8sXG4gICAgICBlbmQ6IC9cXH0vLFxuICAgICAga2V5d29yZHM6IEtFWVdPUkRTJDEsXG4gICAgICBjb250YWluczogW1xuICAgICAgICBcInNlbGZcIlxuICAgICAgXS5jb25jYXQoU1VCU1RfSU5URVJOQUxTKVxuICAgIH0pO1xuICBjb25zdCBTVUJTVF9BTkRfQ09NTUVOVFMgPSBbXS5jb25jYXQoQ09NTUVOVCwgU1VCU1QuY29udGFpbnMpO1xuICBjb25zdCBQQVJBTVNfQ09OVEFJTlMgPSBTVUJTVF9BTkRfQ09NTUVOVFMuY29uY2F0KFtcbiAgICAvLyBlYXQgcmVjdXJzaXZlIHBhcmVucyBpbiBzdWIgZXhwcmVzc2lvbnNcbiAgICB7XG4gICAgICBiZWdpbjogL1xcKC8sXG4gICAgICBlbmQ6IC9cXCkvLFxuICAgICAga2V5d29yZHM6IEtFWVdPUkRTJDEsXG4gICAgICBjb250YWluczogW1wic2VsZlwiXS5jb25jYXQoU1VCU1RfQU5EX0NPTU1FTlRTKVxuICAgIH1cbiAgXSk7XG4gIGNvbnN0IFBBUkFNUyA9IHtcbiAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgIGJlZ2luOiAvXFwoLyxcbiAgICBlbmQ6IC9cXCkvLFxuICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSxcbiAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyQxLFxuICAgIGNvbnRhaW5zOiBQQVJBTVNfQ09OVEFJTlNcbiAgfTtcblxuICAvLyBFUzYgY2xhc3Nlc1xuICBjb25zdCBDTEFTU19PUl9FWFRFTkRTID0ge1xuICAgIHZhcmlhbnRzOiBbXG4gICAgICAvLyBjbGFzcyBDYXIgZXh0ZW5kcyB2ZWhpY2xlXG4gICAgICB7XG4gICAgICAgIG1hdGNoOiBbXG4gICAgICAgICAgL2NsYXNzLyxcbiAgICAgICAgICAvXFxzKy8sXG4gICAgICAgICAgSURFTlRfUkUkMSxcbiAgICAgICAgICAvXFxzKy8sXG4gICAgICAgICAgL2V4dGVuZHMvLFxuICAgICAgICAgIC9cXHMrLyxcbiAgICAgICAgICByZWdleC5jb25jYXQoSURFTlRfUkUkMSwgXCIoXCIsIHJlZ2V4LmNvbmNhdCgvXFwuLywgSURFTlRfUkUkMSksIFwiKSpcIilcbiAgICAgICAgXSxcbiAgICAgICAgc2NvcGU6IHtcbiAgICAgICAgICAxOiBcImtleXdvcmRcIixcbiAgICAgICAgICAzOiBcInRpdGxlLmNsYXNzXCIsXG4gICAgICAgICAgNTogXCJrZXl3b3JkXCIsXG4gICAgICAgICAgNzogXCJ0aXRsZS5jbGFzcy5pbmhlcml0ZWRcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gY2xhc3MgQ2FyXG4gICAgICB7XG4gICAgICAgIG1hdGNoOiBbXG4gICAgICAgICAgL2NsYXNzLyxcbiAgICAgICAgICAvXFxzKy8sXG4gICAgICAgICAgSURFTlRfUkUkMVxuICAgICAgICBdLFxuICAgICAgICBzY29wZToge1xuICAgICAgICAgIDE6IFwia2V5d29yZFwiLFxuICAgICAgICAgIDM6IFwidGl0bGUuY2xhc3NcIlxuICAgICAgICB9XG4gICAgICB9LFxuXG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IENMQVNTX1JFRkVSRU5DRSA9IHtcbiAgICByZWxldmFuY2U6IDAsXG4gICAgbWF0Y2g6XG4gICAgcmVnZXguZWl0aGVyKFxuICAgICAgLy8gSGFyZCBjb2RlZCBleGNlcHRpb25zXG4gICAgICAvXFxiSlNPTi8sXG4gICAgICAvLyBGbG9hdDMyQXJyYXksIE91dFRcbiAgICAgIC9cXGJbQS1aXVthLXpdKyhbQS1aXVthLXpdKnxcXGQpKi8sXG4gICAgICAvLyBDU1NGYWN0b3J5LCBDU1NGYWN0b3J5VFxuICAgICAgL1xcYltBLVpdezIsfShbQS1aXVthLXpdK3xcXGQpKyhbQS1aXVthLXpdKikqLyxcbiAgICAgIC8vIEZQcywgRlBzVFxuICAgICAgL1xcYltBLVpdezIsfVthLXpdKyhbQS1aXVthLXpdK3xcXGQpKihbQS1aXVthLXpdKikqLyxcbiAgICAgIC8vIFBcbiAgICAgIC8vIHNpbmdsZSBsZXR0ZXJzIGFyZSBub3QgaGlnaGxpZ2h0ZWRcbiAgICAgIC8vIEJMQUhcbiAgICAgIC8vIHRoaXMgd2lsbCBiZSBmbGFnZ2VkIGFzIGEgVVBQRVJfQ0FTRV9DT05TVEFOVCBpbnN0ZWFkXG4gICAgKSxcbiAgICBjbGFzc05hbWU6IFwidGl0bGUuY2xhc3NcIixcbiAgICBrZXl3b3Jkczoge1xuICAgICAgXzogW1xuICAgICAgICAvLyBzZSB3ZSBzdGlsbCBnZXQgcmVsZXZhbmNlIGNyZWRpdCBmb3IgSlMgbGlicmFyeSBjbGFzc2VzXG4gICAgICAgIC4uLlRZUEVTLFxuICAgICAgICAuLi5FUlJPUl9UWVBFU1xuICAgICAgXVxuICAgIH1cbiAgfTtcblxuICBjb25zdCBVU0VfU1RSSUNUID0ge1xuICAgIGxhYmVsOiBcInVzZV9zdHJpY3RcIixcbiAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICByZWxldmFuY2U6IDEwLFxuICAgIGJlZ2luOiAvXlxccypbJ1wiXXVzZSAoc3RyaWN0fGFzbSlbJ1wiXS9cbiAgfTtcblxuICBjb25zdCBGVU5DVElPTl9ERUZJTklUSU9OID0ge1xuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIG1hdGNoOiBbXG4gICAgICAgICAgL2Z1bmN0aW9uLyxcbiAgICAgICAgICAvXFxzKy8sXG4gICAgICAgICAgSURFTlRfUkUkMSxcbiAgICAgICAgICAvKD89XFxzKlxcKCkvXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICAvLyBhbm9ueW1vdXMgZnVuY3Rpb25cbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IFtcbiAgICAgICAgICAvZnVuY3Rpb24vLFxuICAgICAgICAgIC9cXHMqKD89XFwoKS9cbiAgICAgICAgXVxuICAgICAgfVxuICAgIF0sXG4gICAgY2xhc3NOYW1lOiB7XG4gICAgICAxOiBcImtleXdvcmRcIixcbiAgICAgIDM6IFwidGl0bGUuZnVuY3Rpb25cIlxuICAgIH0sXG4gICAgbGFiZWw6IFwiZnVuYy5kZWZcIixcbiAgICBjb250YWluczogWyBQQVJBTVMgXSxcbiAgICBpbGxlZ2FsOiAvJS9cbiAgfTtcblxuICBjb25zdCBVUFBFUl9DQVNFX0NPTlNUQU5UID0ge1xuICAgIHJlbGV2YW5jZTogMCxcbiAgICBtYXRjaDogL1xcYltBLVpdW0EtWl8wLTldK1xcYi8sXG4gICAgY2xhc3NOYW1lOiBcInZhcmlhYmxlLmNvbnN0YW50XCJcbiAgfTtcblxuICBmdW5jdGlvbiBub25lT2YobGlzdCkge1xuICAgIHJldHVybiByZWdleC5jb25jYXQoXCIoPyFcIiwgbGlzdC5qb2luKFwifFwiKSwgXCIpXCIpO1xuICB9XG5cbiAgY29uc3QgRlVOQ1RJT05fQ0FMTCA9IHtcbiAgICBtYXRjaDogcmVnZXguY29uY2F0KFxuICAgICAgL1xcYi8sXG4gICAgICBub25lT2YoW1xuICAgICAgICAuLi5CVUlMVF9JTl9HTE9CQUxTLFxuICAgICAgICBcInN1cGVyXCIsXG4gICAgICAgIFwiaW1wb3J0XCJcbiAgICAgIF0pLFxuICAgICAgSURFTlRfUkUkMSwgcmVnZXgubG9va2FoZWFkKC9cXCgvKSksXG4gICAgY2xhc3NOYW1lOiBcInRpdGxlLmZ1bmN0aW9uXCIsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgY29uc3QgUFJPUEVSVFlfQUNDRVNTID0ge1xuICAgIGJlZ2luOiByZWdleC5jb25jYXQoL1xcLi8sIHJlZ2V4Lmxvb2thaGVhZChcbiAgICAgIHJlZ2V4LmNvbmNhdChJREVOVF9SRSQxLCAvKD8hWzAtOUEtWmEteiRfKF0pLylcbiAgICApKSxcbiAgICBlbmQ6IElERU5UX1JFJDEsXG4gICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgIGtleXdvcmRzOiBcInByb3RvdHlwZVwiLFxuICAgIGNsYXNzTmFtZTogXCJwcm9wZXJ0eVwiLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIGNvbnN0IEdFVFRFUl9PUl9TRVRURVIgPSB7XG4gICAgbWF0Y2g6IFtcbiAgICAgIC9nZXR8c2V0LyxcbiAgICAgIC9cXHMrLyxcbiAgICAgIElERU5UX1JFJDEsXG4gICAgICAvKD89XFwoKS9cbiAgICBdLFxuICAgIGNsYXNzTmFtZToge1xuICAgICAgMTogXCJrZXl3b3JkXCIsXG4gICAgICAzOiBcInRpdGxlLmZ1bmN0aW9uXCJcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7IC8vIGVhdCB0byBhdm9pZCBlbXB0eSBwYXJhbXNcbiAgICAgICAgYmVnaW46IC9cXChcXCkvXG4gICAgICB9LFxuICAgICAgUEFSQU1TXG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IEZVTkNfTEVBRF9JTl9SRSA9ICcoXFxcXCgnICtcbiAgICAnW14oKV0qKFxcXFwoJyArXG4gICAgJ1teKCldKihcXFxcKCcgK1xuICAgICdbXigpXSonICtcbiAgICAnXFxcXClbXigpXSopKicgK1xuICAgICdcXFxcKVteKCldKikqJyArXG4gICAgJ1xcXFwpfCcgKyBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUgKyAnKVxcXFxzKj0+JztcblxuICBjb25zdCBGVU5DVElPTl9WQVJJQUJMRSA9IHtcbiAgICBtYXRjaDogW1xuICAgICAgL2NvbnN0fHZhcnxsZXQvLCAvXFxzKy8sXG4gICAgICBJREVOVF9SRSQxLCAvXFxzKi8sXG4gICAgICAvPVxccyovLFxuICAgICAgLyhhc3luY1xccyopPy8sIC8vIGFzeW5jIGlzIG9wdGlvbmFsXG4gICAgICByZWdleC5sb29rYWhlYWQoRlVOQ19MRUFEX0lOX1JFKVxuICAgIF0sXG4gICAga2V5d29yZHM6IFwiYXN5bmNcIixcbiAgICBjbGFzc05hbWU6IHtcbiAgICAgIDE6IFwia2V5d29yZFwiLFxuICAgICAgMzogXCJ0aXRsZS5mdW5jdGlvblwiXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgUEFSQU1TXG4gICAgXVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0phdmFTY3JpcHQnLFxuICAgIGFsaWFzZXM6IFsnanMnLCAnanN4JywgJ21qcycsICdjanMnXSxcbiAgICBrZXl3b3JkczogS0VZV09SRFMkMSxcbiAgICAvLyB0aGlzIHdpbGwgYmUgZXh0ZW5kZWQgYnkgVHlwZVNjcmlwdFxuICAgIGV4cG9ydHM6IHsgUEFSQU1TX0NPTlRBSU5TLCBDTEFTU19SRUZFUkVOQ0UgfSxcbiAgICBpbGxlZ2FsOiAvIyg/IVskX0Etel0pLyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5TSEVCQU5HKHtcbiAgICAgICAgbGFiZWw6IFwic2hlYmFuZ1wiLFxuICAgICAgICBiaW5hcnk6IFwibm9kZVwiLFxuICAgICAgICByZWxldmFuY2U6IDVcbiAgICAgIH0pLFxuICAgICAgVVNFX1NUUklDVCxcbiAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBIVE1MX1RFTVBMQVRFLFxuICAgICAgQ1NTX1RFTVBMQVRFLFxuICAgICAgR1JBUEhRTF9URU1QTEFURSxcbiAgICAgIFRFTVBMQVRFX1NUUklORyxcbiAgICAgIENPTU1FTlQsXG4gICAgICAvLyBTa2lwIG51bWJlcnMgd2hlbiB0aGV5IGFyZSBwYXJ0IG9mIGEgdmFyaWFibGUgbmFtZVxuICAgICAgeyBtYXRjaDogL1xcJFxcZCsvIH0sXG4gICAgICBOVU1CRVIsXG4gICAgICBDTEFTU19SRUZFUkVOQ0UsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2F0dHInLFxuICAgICAgICBiZWdpbjogSURFTlRfUkUkMSArIHJlZ2V4Lmxvb2thaGVhZCgnOicpLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICBGVU5DVElPTl9WQVJJQUJMRSxcbiAgICAgIHsgLy8gXCJ2YWx1ZVwiIGNvbnRhaW5lclxuICAgICAgICBiZWdpbjogJygnICsgaGxqcy5SRV9TVEFSVEVSU19SRSArICd8XFxcXGIoY2FzZXxyZXR1cm58dGhyb3cpXFxcXGIpXFxcXHMqJyxcbiAgICAgICAga2V5d29yZHM6ICdyZXR1cm4gdGhyb3cgY2FzZScsXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBDT01NRU5ULFxuICAgICAgICAgIGhsanMuUkVHRVhQX01PREUsXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgICAgICAgLy8gd2UgaGF2ZSB0byBjb3VudCB0aGUgcGFyZW5zIHRvIG1ha2Ugc3VyZSB3ZSBhY3R1YWxseSBoYXZlIHRoZVxuICAgICAgICAgICAgLy8gY29ycmVjdCBib3VuZGluZyAoICkgYmVmb3JlIHRoZSA9Pi4gIFRoZXJlIGNvdWxkIGJlIGFueSBudW1iZXIgb2ZcbiAgICAgICAgICAgIC8vIHN1Yi1leHByZXNzaW9ucyBpbnNpZGUgYWxzbyBzdXJyb3VuZGVkIGJ5IHBhcmVucy5cbiAgICAgICAgICAgIGJlZ2luOiBGVU5DX0xFQURfSU5fUkUsXG4gICAgICAgICAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAgICAgIGVuZDogJ1xcXFxzKj0+JyxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgICAgICAgICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGJlZ2luOiBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUsXG4gICAgICAgICAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICBiZWdpbjogL1xcKFxccypcXCkvLFxuICAgICAgICAgICAgICAgICAgICBza2lwOiB0cnVlXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBiZWdpbjogL1xcKC8sXG4gICAgICAgICAgICAgICAgICAgIGVuZDogL1xcKS8sXG4gICAgICAgICAgICAgICAgICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAga2V5d29yZHM6IEtFWVdPUkRTJDEsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5zOiBQQVJBTVNfQ09OVEFJTlNcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHsgLy8gY291bGQgYmUgYSBjb21tYSBkZWxpbWl0ZWQgbGlzdCBvZiBwYXJhbXMgdG8gYSBmdW5jdGlvbiBjYWxsXG4gICAgICAgICAgICBiZWdpbjogLywvLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBtYXRjaDogL1xccysvLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7IC8vIEpTWFxuICAgICAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICAgICAgeyBiZWdpbjogRlJBR01FTlQuYmVnaW4sIGVuZDogRlJBR01FTlQuZW5kIH0sXG4gICAgICAgICAgICAgIHsgbWF0Y2g6IFhNTF9TRUxGX0NMT1NJTkcgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGJlZ2luOiBYTUxfVEFHLmJlZ2luLFxuICAgICAgICAgICAgICAgIC8vIHdlIGNhcmVmdWxseSBjaGVjayB0aGUgb3BlbmluZyB0YWcgdG8gc2VlIGlmIGl0IHRydWx5XG4gICAgICAgICAgICAgICAgLy8gaXMgYSB0YWcgYW5kIG5vdCBhIGZhbHNlIHBvc2l0aXZlXG4gICAgICAgICAgICAgICAgJ29uOmJlZ2luJzogWE1MX1RBRy5pc1RydWx5T3BlbmluZ1RhZyxcbiAgICAgICAgICAgICAgICBlbmQ6IFhNTF9UQUcuZW5kXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBzdWJMYW5ndWFnZTogJ3htbCcsXG4gICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYmVnaW46IFhNTF9UQUcuYmVnaW4sXG4gICAgICAgICAgICAgICAgZW5kOiBYTUxfVEFHLmVuZCxcbiAgICAgICAgICAgICAgICBza2lwOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNvbnRhaW5zOiBbJ3NlbGYnXVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICAgIEZVTkNUSU9OX0RFRklOSVRJT04sXG4gICAgICB7XG4gICAgICAgIC8vIHByZXZlbnQgdGhpcyBmcm9tIGdldHRpbmcgc3dhbGxvd2VkIHVwIGJ5IGZ1bmN0aW9uXG4gICAgICAgIC8vIHNpbmNlIHRoZXkgYXBwZWFyIFwiZnVuY3Rpb24gbGlrZVwiXG4gICAgICAgIGJlZ2luS2V5d29yZHM6IFwid2hpbGUgaWYgc3dpdGNoIGNhdGNoIGZvclwiXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvLyB3ZSBoYXZlIHRvIGNvdW50IHRoZSBwYXJlbnMgdG8gbWFrZSBzdXJlIHdlIGFjdHVhbGx5IGhhdmUgdGhlIGNvcnJlY3RcbiAgICAgICAgLy8gYm91bmRpbmcgKCApLiAgVGhlcmUgY291bGQgYmUgYW55IG51bWJlciBvZiBzdWItZXhwcmVzc2lvbnMgaW5zaWRlXG4gICAgICAgIC8vIGFsc28gc3Vycm91bmRlZCBieSBwYXJlbnMuXG4gICAgICAgIGJlZ2luOiAnXFxcXGIoPyFmdW5jdGlvbiknICsgaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFICtcbiAgICAgICAgICAnXFxcXCgnICsgLy8gZmlyc3QgcGFyZW5zXG4gICAgICAgICAgJ1teKCldKihcXFxcKCcgK1xuICAgICAgICAgICAgJ1teKCldKihcXFxcKCcgK1xuICAgICAgICAgICAgICAnW14oKV0qJyArXG4gICAgICAgICAgICAnXFxcXClbXigpXSopKicgK1xuICAgICAgICAgICdcXFxcKVteKCldKikqJyArXG4gICAgICAgICAgJ1xcXFwpXFxcXHMqXFxcXHsnLCAvLyBlbmQgcGFyZW5zXG4gICAgICAgIHJldHVybkJlZ2luOnRydWUsXG4gICAgICAgIGxhYmVsOiBcImZ1bmMuZGVmXCIsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgUEFSQU1TLFxuICAgICAgICAgIGhsanMuaW5oZXJpdChobGpzLlRJVExFX01PREUsIHsgYmVnaW46IElERU5UX1JFJDEsIGNsYXNzTmFtZTogXCJ0aXRsZS5mdW5jdGlvblwiIH0pXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICAvLyBjYXRjaCAuLi4gc28gaXQgd29uJ3QgdHJpZ2dlciB0aGUgcHJvcGVydHkgcnVsZSBiZWxvd1xuICAgICAge1xuICAgICAgICBtYXRjaDogL1xcLlxcLlxcLi8sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIFBST1BFUlRZX0FDQ0VTUyxcbiAgICAgIC8vIGhhY2s6IHByZXZlbnRzIGRldGVjdGlvbiBvZiBrZXl3b3JkcyBpbiBzb21lIGNpcmN1bXN0YW5jZXNcbiAgICAgIC8vIC5rZXl3b3JkKClcbiAgICAgIC8vICRrZXl3b3JkID0geFxuICAgICAge1xuICAgICAgICBtYXRjaDogJ1xcXFwkJyArIElERU5UX1JFJDEsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IFsgL1xcYmNvbnN0cnVjdG9yKD89XFxzKlxcKCkvIF0sXG4gICAgICAgIGNsYXNzTmFtZTogeyAxOiBcInRpdGxlLmZ1bmN0aW9uXCIgfSxcbiAgICAgICAgY29udGFpbnM6IFsgUEFSQU1TIF1cbiAgICAgIH0sXG4gICAgICBGVU5DVElPTl9DQUxMLFxuICAgICAgVVBQRVJfQ0FTRV9DT05TVEFOVCxcbiAgICAgIENMQVNTX09SX0VYVEVORFMsXG4gICAgICBHRVRURVJfT1JfU0VUVEVSLFxuICAgICAge1xuICAgICAgICBtYXRjaDogL1xcJFsoLl0vIC8vIHJlbGV2YW5jZSBib29zdGVyIGZvciBhIHBhdHRlcm4gY29tbW9uIHRvIEpTIGxpYnM6IGAkKHNvbWV0aGluZylgIGFuZCBgJC5zb21ldGhpbmdgXG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG4vKlxuTGFuZ3VhZ2U6IFR5cGVTY3JpcHRcbkF1dGhvcjogUGFudSBIb3JzbWFsYWh0aSA8cGFudS5ob3JzbWFsYWh0aUBpa2kuZmk+XG5Db250cmlidXRvcnM6IElrZSBLdSA8ZGVtcGZpQHlhaG9vLmNvbT5cbkRlc2NyaXB0aW9uOiBUeXBlU2NyaXB0IGlzIGEgc3RyaWN0IHN1cGVyc2V0IG9mIEphdmFTY3JpcHRcbldlYnNpdGU6IGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZ1xuQ2F0ZWdvcnk6IGNvbW1vbiwgc2NyaXB0aW5nXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gdHlwZXNjcmlwdChobGpzKSB7XG4gIGNvbnN0IHRzTGFuZ3VhZ2UgPSBqYXZhc2NyaXB0KGhsanMpO1xuXG4gIGNvbnN0IElERU5UX1JFJDEgPSBJREVOVF9SRTtcbiAgY29uc3QgVFlQRVMgPSBbXG4gICAgXCJhbnlcIixcbiAgICBcInZvaWRcIixcbiAgICBcIm51bWJlclwiLFxuICAgIFwiYm9vbGVhblwiLFxuICAgIFwic3RyaW5nXCIsXG4gICAgXCJvYmplY3RcIixcbiAgICBcIm5ldmVyXCIsXG4gICAgXCJzeW1ib2xcIixcbiAgICBcImJpZ2ludFwiLFxuICAgIFwidW5rbm93blwiXG4gIF07XG4gIGNvbnN0IE5BTUVTUEFDRSA9IHtcbiAgICBiZWdpbktleXdvcmRzOiAnbmFtZXNwYWNlJyxcbiAgICBlbmQ6IC9cXHsvLFxuICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgY29udGFpbnM6IFsgdHNMYW5ndWFnZS5leHBvcnRzLkNMQVNTX1JFRkVSRU5DRSBdXG4gIH07XG4gIGNvbnN0IElOVEVSRkFDRSA9IHtcbiAgICBiZWdpbktleXdvcmRzOiAnaW50ZXJmYWNlJyxcbiAgICBlbmQ6IC9cXHsvLFxuICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6ICdpbnRlcmZhY2UgZXh0ZW5kcycsXG4gICAgICBidWlsdF9pbjogVFlQRVNcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbIHRzTGFuZ3VhZ2UuZXhwb3J0cy5DTEFTU19SRUZFUkVOQ0UgXVxuICB9O1xuICBjb25zdCBVU0VfU1RSSUNUID0ge1xuICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgIHJlbGV2YW5jZTogMTAsXG4gICAgYmVnaW46IC9eXFxzKlsnXCJddXNlIHN0cmljdFsnXCJdL1xuICB9O1xuICBjb25zdCBUU19TUEVDSUZJQ19LRVlXT1JEUyA9IFtcbiAgICBcInR5cGVcIixcbiAgICBcIm5hbWVzcGFjZVwiLFxuICAgIFwiaW50ZXJmYWNlXCIsXG4gICAgXCJwdWJsaWNcIixcbiAgICBcInByaXZhdGVcIixcbiAgICBcInByb3RlY3RlZFwiLFxuICAgIFwiaW1wbGVtZW50c1wiLFxuICAgIFwiZGVjbGFyZVwiLFxuICAgIFwiYWJzdHJhY3RcIixcbiAgICBcInJlYWRvbmx5XCIsXG4gICAgXCJlbnVtXCIsXG4gICAgXCJvdmVycmlkZVwiXG4gIF07XG4gIGNvbnN0IEtFWVdPUkRTJDEgPSB7XG4gICAgJHBhdHRlcm46IElERU5UX1JFLFxuICAgIGtleXdvcmQ6IEtFWVdPUkRTLmNvbmNhdChUU19TUEVDSUZJQ19LRVlXT1JEUyksXG4gICAgbGl0ZXJhbDogTElURVJBTFMsXG4gICAgYnVpbHRfaW46IEJVSUxUX0lOUy5jb25jYXQoVFlQRVMpLFxuICAgIFwidmFyaWFibGUubGFuZ3VhZ2VcIjogQlVJTFRfSU5fVkFSSUFCTEVTXG4gIH07XG4gIGNvbnN0IERFQ09SQVRPUiA9IHtcbiAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICBiZWdpbjogJ0AnICsgSURFTlRfUkUkMSxcbiAgfTtcblxuICBjb25zdCBzd2FwTW9kZSA9IChtb2RlLCBsYWJlbCwgcmVwbGFjZW1lbnQpID0+IHtcbiAgICBjb25zdCBpbmR4ID0gbW9kZS5jb250YWlucy5maW5kSW5kZXgobSA9PiBtLmxhYmVsID09PSBsYWJlbCk7XG4gICAgaWYgKGluZHggPT09IC0xKSB7IHRocm93IG5ldyBFcnJvcihcImNhbiBub3QgZmluZCBtb2RlIHRvIHJlcGxhY2VcIik7IH1cblxuICAgIG1vZGUuY29udGFpbnMuc3BsaWNlKGluZHgsIDEsIHJlcGxhY2VtZW50KTtcbiAgfTtcblxuXG4gIC8vIHRoaXMgc2hvdWxkIHVwZGF0ZSBhbnl3aGVyZSBrZXl3b3JkcyBpcyB1c2VkIHNpbmNlXG4gIC8vIGl0IHdpbGwgYmUgdGhlIHNhbWUgYWN0dWFsIEpTIG9iamVjdFxuICBPYmplY3QuYXNzaWduKHRzTGFuZ3VhZ2Uua2V5d29yZHMsIEtFWVdPUkRTJDEpO1xuXG4gIHRzTGFuZ3VhZ2UuZXhwb3J0cy5QQVJBTVNfQ09OVEFJTlMucHVzaChERUNPUkFUT1IpO1xuICB0c0xhbmd1YWdlLmNvbnRhaW5zID0gdHNMYW5ndWFnZS5jb250YWlucy5jb25jYXQoW1xuICAgIERFQ09SQVRPUixcbiAgICBOQU1FU1BBQ0UsXG4gICAgSU5URVJGQUNFLFxuICBdKTtcblxuICAvLyBUUyBnZXRzIGEgc2ltcGxlciBzaGViYW5nIHJ1bGUgdGhhbiBKU1xuICBzd2FwTW9kZSh0c0xhbmd1YWdlLCBcInNoZWJhbmdcIiwgaGxqcy5TSEVCQU5HKCkpO1xuICAvLyBKUyB1c2Ugc3RyaWN0IHJ1bGUgcHVycG9zZWx5IGV4Y2x1ZGVzIGBhc21gIHdoaWNoIG1ha2VzIG5vIHNlbnNlXG4gIHN3YXBNb2RlKHRzTGFuZ3VhZ2UsIFwidXNlX3N0cmljdFwiLCBVU0VfU1RSSUNUKTtcblxuICBjb25zdCBmdW5jdGlvbkRlY2xhcmF0aW9uID0gdHNMYW5ndWFnZS5jb250YWlucy5maW5kKG0gPT4gbS5sYWJlbCA9PT0gXCJmdW5jLmRlZlwiKTtcbiAgZnVuY3Rpb25EZWNsYXJhdGlvbi5yZWxldmFuY2UgPSAwOyAvLyAoKSA9PiB7fSBpcyBtb3JlIHR5cGljYWwgaW4gVHlwZVNjcmlwdFxuXG4gIE9iamVjdC5hc3NpZ24odHNMYW5ndWFnZSwge1xuICAgIG5hbWU6ICdUeXBlU2NyaXB0JyxcbiAgICBhbGlhc2VzOiBbXG4gICAgICAndHMnLFxuICAgICAgJ3RzeCcsXG4gICAgICAnbXRzJyxcbiAgICAgICdjdHMnXG4gICAgXVxuICB9KTtcblxuICByZXR1cm4gdHNMYW5ndWFnZTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB0eXBlc2NyaXB0O1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///88\n");
  1858. /***/ }),
  1859. /* 89 */
  1860. /*!********************************************************************************************************!*\
  1861. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/highlight.js/lib/languages/vbnet.js ***!
  1862. \********************************************************************************************************/
  1863. /*! no static exports found */
  1864. /***/ (function(module, exports) {
  1865. eval("/*\nLanguage: Visual Basic .NET\nDescription: Visual Basic .NET (VB.NET) is a multi-paradigm, object-oriented programming language, implemented on the .NET Framework.\nAuthors: Poren Chiang <ren.chiang@gmail.com>, Jan Pilzer\nWebsite: https://docs.microsoft.com/dotnet/visual-basic/getting-started\nCategory: common\n*/\n\n/** @type LanguageFn */\nfunction vbnet(hljs) {\n var regex = hljs.regex;\n /**\n * Character Literal\n * Either a single character (\"a\"C) or an escaped double quote (\"\"\"\"C).\n */\n var CHARACTER = {\n className: 'string',\n begin: /\"(\"\"|[^/n])\"C\\b/\n };\n var STRING = {\n className: 'string',\n begin: /\"/,\n end: /\"/,\n illegal: /\\n/,\n contains: [{\n // double quote escape\n begin: /\"\"/\n }]\n };\n\n /** Date Literals consist of a date, a time, or both separated by whitespace, surrounded by # */\n var MM_DD_YYYY = /\\d{1,2}\\/\\d{1,2}\\/\\d{4}/;\n var YYYY_MM_DD = /\\d{4}-\\d{1,2}-\\d{1,2}/;\n var TIME_12H = /(\\d|1[012])(:\\d+){0,2} *(AM|PM)/;\n var TIME_24H = /\\d{1,2}(:\\d{1,2}){1,2}/;\n var DATE = {\n className: 'literal',\n variants: [{\n // #YYYY-MM-DD# (ISO-Date) or #M/D/YYYY# (US-Date)\n begin: regex.concat(/# */, regex.either(YYYY_MM_DD, MM_DD_YYYY), / *#/)\n }, {\n // #H:mm[:ss]# (24h Time)\n begin: regex.concat(/# */, TIME_24H, / *#/)\n }, {\n // #h[:mm[:ss]] A# (12h Time)\n begin: regex.concat(/# */, TIME_12H, / *#/)\n }, {\n // date plus time\n begin: regex.concat(/# */, regex.either(YYYY_MM_DD, MM_DD_YYYY), / +/, regex.either(TIME_12H, TIME_24H), / *#/)\n }]\n };\n var NUMBER = {\n className: 'number',\n relevance: 0,\n variants: [{\n // Float\n begin: /\\b\\d[\\d_]*((\\.[\\d_]+(E[+-]?[\\d_]+)?)|(E[+-]?[\\d_]+))[RFD@!#]?/\n }, {\n // Integer (base 10)\n begin: /\\b\\d[\\d_]*((U?[SIL])|[%&])?/\n }, {\n // Integer (base 16)\n begin: /&H[\\dA-F_]+((U?[SIL])|[%&])?/\n }, {\n // Integer (base 8)\n begin: /&O[0-7_]+((U?[SIL])|[%&])?/\n }, {\n // Integer (base 2)\n begin: /&B[01_]+((U?[SIL])|[%&])?/\n }]\n };\n var LABEL = {\n className: 'label',\n begin: /^\\w+:/\n };\n var DOC_COMMENT = hljs.COMMENT(/'''/, /$/, {\n contains: [{\n className: 'doctag',\n begin: /<\\/?/,\n end: />/\n }]\n });\n var COMMENT = hljs.COMMENT(null, /$/, {\n variants: [{\n begin: /'/\n }, {\n // TODO: Use multi-class for leading spaces\n begin: /([\\t ]|^)REM(?=\\s)/\n }]\n });\n var DIRECTIVES = {\n className: 'meta',\n // TODO: Use multi-class for indentation once available\n begin: /[\\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\\b/,\n end: /$/,\n keywords: {\n keyword: 'const disable else elseif enable end externalsource if region then'\n },\n contains: [COMMENT]\n };\n return {\n name: 'Visual Basic .NET',\n aliases: ['vb'],\n case_insensitive: true,\n classNameAliases: {\n label: 'symbol'\n },\n keywords: {\n keyword: 'addhandler alias aggregate ansi as async assembly auto binary by byref byval ' /* a-b */ + 'call case catch class compare const continue custom declare default delegate dim distinct do ' /* c-d */ + 'each equals else elseif end enum erase error event exit explicit finally for friend from function ' /* e-f */ + 'get global goto group handles if implements imports in inherits interface into iterator ' /* g-i */ + 'join key let lib loop me mid module mustinherit mustoverride mybase myclass ' /* j-m */ + 'namespace narrowing new next notinheritable notoverridable ' /* n */ + 'of off on operator option optional order overloads overridable overrides ' /* o */ + 'paramarray partial preserve private property protected public ' /* p */ + 'raiseevent readonly redim removehandler resume return ' /* r */ + 'select set shadows shared skip static step stop structure strict sub synclock ' /* s */ + 'take text then throw to try unicode until using when where while widening with withevents writeonly yield' /* t-y */,\n built_in:\n // Operators https://docs.microsoft.com/dotnet/visual-basic/language-reference/operators\n 'addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor '\n // Type Conversion Functions https://docs.microsoft.com/dotnet/visual-basic/language-reference/functions/type-conversion-functions\n + 'cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort',\n type:\n // Data types https://docs.microsoft.com/dotnet/visual-basic/language-reference/data-types\n 'boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort',\n literal: 'true false nothing'\n },\n illegal: '//|\\\\{|\\\\}|endif|gosub|variant|wend|^\\\\$ ' /* reserved deprecated keywords */,\n contains: [CHARACTER, STRING, DATE, NUMBER, LABEL, DOC_COMMENT, COMMENT, DIRECTIVES]\n };\n}\nmodule.exports = vbnet;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvdmJuZXQuanMiXSwibmFtZXMiOlsidmJuZXQiLCJobGpzIiwicmVnZXgiLCJDSEFSQUNURVIiLCJjbGFzc05hbWUiLCJiZWdpbiIsIlNUUklORyIsImVuZCIsImlsbGVnYWwiLCJjb250YWlucyIsIk1NX0REX1lZWVkiLCJZWVlZX01NX0REIiwiVElNRV8xMkgiLCJUSU1FXzI0SCIsIkRBVEUiLCJ2YXJpYW50cyIsImNvbmNhdCIsImVpdGhlciIsIk5VTUJFUiIsInJlbGV2YW5jZSIsIkxBQkVMIiwiRE9DX0NPTU1FTlQiLCJDT01NRU5UIiwiRElSRUNUSVZFUyIsImtleXdvcmRzIiwia2V5d29yZCIsIm5hbWUiLCJhbGlhc2VzIiwiY2FzZV9pbnNlbnNpdGl2ZSIsImNsYXNzTmFtZUFsaWFzZXMiLCJsYWJlbCIsImJ1aWx0X2luIiwidHlwZSIsImxpdGVyYWwiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFNBQVNBLEtBQUssQ0FBQ0MsSUFBSSxFQUFFO0VBQ25CLElBQU1DLEtBQUssR0FBR0QsSUFBSSxDQUFDQyxLQUFLO0VBQ3hCO0FBQ0Y7QUFDQTtBQUNBO0VBQ0UsSUFBTUMsU0FBUyxHQUFHO0lBQ2hCQyxTQUFTLEVBQUUsUUFBUTtJQUNuQkMsS0FBSyxFQUFFO0VBQ1QsQ0FBQztFQUVELElBQU1DLE1BQU0sR0FBRztJQUNiRixTQUFTLEVBQUUsUUFBUTtJQUNuQkMsS0FBSyxFQUFFLEdBQUc7SUFDVkUsR0FBRyxFQUFFLEdBQUc7SUFDUkMsT0FBTyxFQUFFLElBQUk7SUFDYkMsUUFBUSxFQUFFLENBQ1I7TUFDRTtNQUNBSixLQUFLLEVBQUU7SUFBSyxDQUFDO0VBRW5CLENBQUM7O0VBRUQ7RUFDQSxJQUFNSyxVQUFVLEdBQUcseUJBQXlCO0VBQzVDLElBQU1DLFVBQVUsR0FB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Q0FBQyxVQUN6RCxnRkFBZ0YsQ0FBQyxVQUNqRiwyR0FBMkcsQ0FBQztNQUNoSE0sUUFBUTtNQUNOO01BQ0E7TUFDQTtNQUFBLEVBQ0UsOEZBQThGO01BQ2xHQyxJQUFJO01BQ0Y7TUFDQSwyR0FBMkc7TUFDN0dDLE9BQU8sRUFBRTtJQUNYLENBQUM7SUFDRHpCLE9BQU8sRUFDTCwyQ0FBMkMsQ0FBQztJQUM5Q0MsUUFBUSxFQUFFLENBQ1JOLFNBQVMsRUFDVEcsTUFBTSxFQUNOUSxJQUFJLEVBQ0pJLE1BQU0sRUFDTkUsS0FBSyxFQUNMQyxXQUFXLEVBQ1hDLE9BQU8sRUFDUEMsVUFBVTtFQUVkLENBQUM7QUFDSDtBQUVBVyxNQUFNLENBQUNDLE9BQU8sR0FBR25DLEtBQUsiLCJmaWxlIjoiODkuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuTGFuZ3VhZ2U6IFZpc3VhbCBCYXNpYyAuTkVUXG5EZXNjcmlwdGlvbjogVmlzdWFsIEJhc2ljIC5ORVQgKFZCLk5FVCkgaXMgYSBtdWx0aS1wYXJhZGlnbSwgb2JqZWN0LW9yaWVudGVkIHByb2dyYW1taW5nIGxhbmd1YWdlLCBpbXBsZW1lbnRlZCBvbiB0aGUgLk5FVCBGcmFtZXdvcmsuXG5BdXRob3JzOiBQb3JlbiBDaGlhbmcgPHJlbi5jaGlhbmdAZ21haWwuY29tPiwgSmFuIFBpbHplclxuV2Vic2l0ZTogaHR0cHM6Ly9kb2NzLm1pY3Jvc29mdC5jb20vZG90bmV0L3Zpc3VhbC1iYXNpYy9nZXR0aW5nLXN0YXJ0ZWRcbkNhdGVnb3J5OiBjb21tb25cbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiB2Ym5ldChobGpzKSB7XG4gIGNvbnN0IHJlZ2V4ID0gaGxqcy5yZWdleDtcbiAgLyoqXG4gICAqIENoYXJhY3RlciBMaXRlcmFsXG4gICAqIEVpdGhlciBhIHNpbmdsZSBjaGFyYWN0ZXIgKFwiYVwiQykgb3IgYW4gZXNjYXBlZCBkb3VibGUgcXVvdGUgKFwiXCJcIlwiQykuXG4gICAqL1xuICBjb25zdCBDSEFSQUNURVIgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogL1wiKFwiXCJ8W14vbl0pXCJDXFxiL1xuICB9O1xuXG4gIGNvbnN0IFNUUklORyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAvXCIvLFxuICAgIGVuZDogL1wiLyxcbiAgICBpbGxlZ2FsOiAvXFxuLyxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICAvLyBkb3VibGUgcXVvdGUgZXNjYXBlXG4gICAgICAgIGJlZ2luOiAvXCJcIi8gfVxuICAgIF1cbiAgfTtcblxuICAvKiogRGF0ZSBMaXRlcmFscyBjb25zaXN0IG9mIGEgZGF0ZSwgYSB0aW1lLCBvciBib3RoIHNlcGFyYXRlZCBieSB3aGl0ZXNwYWNlLCBzdXJyb3VuZGVkIGJ5ICMgKi9cbiAgY29uc3QgTU1fRERfWVlZWSA9IC9cXGR7MSwyfVxcL1xcZHsxLDJ9XFwvXFxkezR9LztcbiAgY29uc3QgWVlZWV9NTV9ERCA9IC9cXGR7NH0tXFxkezEsMn0tXFxkezEsMn0vO1xuICBjb25zdCBUSU1FXzEySCA9IC8oXFxkfDFbMDEyXSkoOlxcZCspezAsMn0gKihBTXxQTSkvO1xuICBjb25zdCBUSU1FXzI0SCA9IC9cXGR7MSwyfSg6XFxkezEsMn0pezEsMn0vO1xuICBjb25zdCBEQVRFID0ge1xuICAgIGNsYXNzTmFtZTogJ2xpdGVyYWwnLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIC8vICNZWVlZLU1NLUREIyAoSVNPLURhdGUpIG9yICNNL0QvWVlZWSMgKFVTLURhdGUpXG4gICAgICAgIGJlZ2luOiByZWdleC5jb25jYXQoLyMgKi8sIHJlZ2V4LmVpdGhlcihZWVlZX01NX0RELCBNTV9ERF9ZWVlZKSwgLyAqIy8pIH0sXG4gICAgICB7XG4gICAgICAgIC8vICNIOm1tWzpzc10jICgyNGggVGltZSlcbiAgICAgICAgYmVnaW46IHJlZ2V4LmNvbmNhdCgvIyAqLywgVElNRV8yNEgsIC8gKiMvKSB9LFxuICAgICAge1xuICAgICAgICAvLyAjaFs6bW1bOnNzXV0gQSMgKDEyaCBUaW1lKVxuICAgICAgICBiZWdpbjogcmVnZXguY29uY2F0KC8jICovLCBUSU1FXzEySCwgLyAqIy8pIH0sXG4gICAgICB7XG4gICAgICAgIC8vIGRhdGUgcGx1cyB0aW1lXG4gICAgICAgIGJlZ2luOiByZWdleC5jb25jYXQoXG4gICAgICAgICAgLyMgKi8sXG4gICAgICAgICAgcmVnZXguZWl0aGVyKFlZWVlfTU1fREQsIE1NX0REX1lZWVkpLFxuICAgICAgICAgIC8gKy8sXG4gICAgICAgICAgcmVnZXguZWl0aGVyKFRJTUVfMTJILCBUSU1FXzI0SCksXG4gICAgICAgICAgLyAqIy9cbiAgICAgICAgKSB9XG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IE5VTUJFUiA9IHtcbiAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICAvLyBGbG9hdFxuICAgICAgICBiZWdpbjogL1xcYlxcZFtcXGRfXSooKFxcLltcXGRfXSsoRVsrLV0/W1xcZF9dKyk/KXwoRVsrLV0/W1xcZF9dKykpW1JGREAhI10/LyB9LFxuICAgICAge1xuICAgICAgICAvLyBJbnRlZ2VyIChiYXNlIDEwKVxuICAgICAgICBiZWdpbjogL1xcYlxcZFtcXGRfXSooKFU/W1NJTF0pfFslJl0pPy8gfSxcbiAgICAgIHtcbiAgICAgICAgLy8gSW50ZWdlciAoYmFzZSAxNilcbiAgICAgICAgYmVnaW46IC8mSFtcXGRBLUZfXSsoKFU/W1NJTF0pfFslJl0pPy8gfSxcbiAgICAgIHtcbiAgICAgICAgLy8gSW50ZWdlciAoYmFzZSA4KVxuICAgICAgICBiZWdpbjogLyZPWzAtN19dKygoVT9bU0lMXSl8WyUmXSk/LyB9LFxuICAgICAge1xuICAgICAgICAvLyBJbnRlZ2VyIChiYXNlIDIpXG4gICAgICAgIGJlZ2luOiAvJkJbMDFfXSsoKFU/W1NJTF0pfFslJl0pPy8gfVxuICAgIF1cbiAgfTtcblxuICBjb25zdCBMQUJFTCA9IHtcbiAgICBjbGFzc05hbWU6ICdsYWJlbCcsXG4gICAgYmVnaW46IC9eXFx3KzovXG4gIH07XG5cbiAgY29uc3QgRE9DX0NPTU1FTlQgPSBobGpzLkNPTU1FTlQoLycnJy8sIC8kLywgeyBjb250YWluczogW1xuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ2RvY3RhZycsXG4gICAgICBiZWdpbjogLzxcXC8/LyxcbiAgICAgIGVuZDogLz4vXG4gICAgfVxuICBdIH0pO1xuXG4gIGNvbnN0IENPTU1FTlQgPSBobGpzLkNPTU1FTlQobnVsbCwgLyQvLCB7IHZhcmlhbnRzOiBbXG4gICAgeyBiZWdpbjogLycvIH0sXG4gICAge1xuICAgICAgLy8gVE9ETzogVXNlIG11bHRpLWNsYXNzIGZvciBsZWFkaW5nIHNwYWNlc1xuICAgICAgYmVnaW46IC8oW1xcdCBdfF4pUkVNKD89XFxzKS8gfVxuICBdIH0pO1xuXG4gIGNvbnN0IERJUkVDVElWRVMgPSB7XG4gICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgLy8gVE9ETzogVXNlIG11bHRpLWNsYXNzIGZvciBpbmRlbnRhdGlvbiBvbmNlIGF2YWlsYWJsZVxuICAgIGJlZ2luOiAvW1xcdCBdKiMoY29uc3R8ZGlzYWJsZXxlbHNlfGVsc2VpZnxlbmFibGV8ZW5kfGV4dGVybmFsc291cmNlfGlmfHJlZ2lvbilcXGIvLFxuICAgIGVuZDogLyQvLFxuICAgIGtleXdvcmRzOiB7IGtleXdvcmQ6XG4gICAgICAgICdjb25zdCBkaXNhYmxlIGVsc2UgZWxzZWlmIGVuYWJsZSBlbmQgZXh0ZXJuYWxzb3VyY2UgaWYgcmVnaW9uIHRoZW4nIH0sXG4gICAgY29udGFpbnM6IFsgQ09NTUVOVCBdXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnVmlzdWFsIEJhc2ljIC5ORVQnLFxuICAgIGFsaWFzZXM6IFsgJ3ZiJyBdLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAgY2xhc3NOYW1lQWxpYXNlczogeyBsYWJlbDogJ3N5bWJvbCcgfSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAga2V5d29yZDpcbiAgICAgICAgJ2FkZGhhbmRsZXIgYWxpYXMgYWdncmVnYXRlIGFuc2kgYXMgYXN5bmMgYXNzZW1ibHkgYXV0byBiaW5hcnkgYnkgYnlyZWYgYnl2YWwgJyAvKiBhLWIgKi9cbiAgICAgICAgKyAnY2FsbCBjYXNlIGNhdGNoIGNsYXNzIGNvbXBhcmUgY29uc3QgY29udGludWUgY3VzdG9tIGRlY2xhcmUgZGVmYXVsdCBkZWxlZ2F0ZSBkaW0gZGlzdGluY3QgZG8gJyAvKiBjLWQgKi9cbiAgICAgICAgKyAnZWFjaCBlcXVhbHMgZWxzZSBlbHNlaWYgZW5kIGVudW0gZXJhc2UgZXJyb3IgZXZlbnQgZXhpdCBleHBsaWNpdCBmaW5hbGx5IGZvciBmcmllbmQgZnJvbSBmdW5jdGlvbiAnIC8qIGUtZiAqL1xuICAgICAgICArICdnZXQgZ2xvYmFsIGdvdG8gZ3JvdXAgaGFuZGxlcyBpZiBpbXBsZW1lbnRzIGltcG9ydHMgaW4gaW5oZXJpdHMgaW50ZXJmYWNlIGludG8gaXRlcmF0b3IgJyAvKiBnLWkgKi9cbiAgICAgICAgKyAnam9pbiBrZXkgbGV0IGxpYiBsb29wIG1lIG1pZCBtb2R1bGUgbXVzdGluaGVyaXQgbXVzdG92ZXJyaWRlIG15YmFzZSBteWNsYXNzICcgLyogai1tICovXG4gICAgICAgICsgJ25hbWVzcGFjZSBuYXJyb3dpbmcgbmV3IG5leHQgbm90aW5oZXJpdGFibGUgbm90b3ZlcnJpZGFibGUgJyAvKiBuICovXG4gICAgICAgICsgJ29mIG9mZiBvbiBvcGVyYXRvciBvcHRpb24gb3B0aW9uYWwgb3JkZXIgb3ZlcmxvYWRzIG92ZXJyaWRhYmxlIG92ZXJyaWRlcyAnIC8qIG8gKi9cbiAgICAgICAgKyAncGFyYW1hcnJheSBwYXJ0aWFsIHByZXNlcnZlIHByaXZhdGUgcHJvcGVydHkgcHJvdGVjdGVkIHB1YmxpYyAnIC8qIHAgKi9cbiAgICAgICAgKyAncmFpc2VldmVudCByZWFkb25seSByZWRpbSByZW1vdmVoYW5kbGVyIHJlc3VtZSByZXR1cm4gJyAvKiByICovXG4gICAgICAgICsgJ3NlbGVjdCBzZXQgc2hhZG93cyBzaGFyZWQgc2tpcCBzdGF0aWMgc3RlcCBzdG9wIHN0cnVjdHVyZSBzdHJpY3Qgc3ViIHN5bmNsb2NrICcgLyogcyAqL1xuICAgICAgICArICd0YWtlIHRleHQgdGhlbiB0aHJvdyB0byB0cnkgdW5pY29kZSB1bnRpbCB1c2luZyB3aGVuIHdoZXJlIHdoaWxlIHdpZGVuaW5nIHdpdGggd2l0aGV2ZW50cyB3cml0ZW9ubHkgeWllbGQnIC8qIHQteSAqLyxcbiAgICAgIGJ1aWx0X2luOlxuICAgICAgICAvLyBPcGVyYXRvcnMgaHR0cHM6Ly9kb2NzLm1pY3Jvc29mdC5jb20vZG90bmV0L3Zpc3VhbC1iYXNpYy9sYW5ndWFnZS1yZWZlcmVuY2Uvb3BlcmF0b3JzXG4gICAgICAgICdhZGRyZXNzb2YgYW5kIGFuZGFsc28gYXdhaXQgZGlyZWN0Y2FzdCBnZXR0eXBlIGdldHhtbG5hbWVzcGFjZSBpcyBpc2ZhbHNlIGlzbm90IGlzdHJ1ZSBsaWtlIG1vZCBuYW1lb2YgbmV3IG5vdCBvciBvcmVsc2UgdHJ5Y2FzdCB0eXBlb2YgeG9yICdcbiAgICAgICAgLy8gVHlwZSBDb252ZXJzaW9uIEZ1bmN0aW9ucyBodHRwczovL2RvY3MubWljcm9zb2Z0LmNvbS9kb3RuZXQvdmlzdWFsLWJhc2ljL2xhbmd1YWdlLXJlZmVyZW5jZS9mdW5jdGlvbnMvdHlwZS1jb252ZXJzaW9uLWZ1bmN0aW9uc1xuICAgICAgICArICdjYm9vbCBjYnl0ZSBjY2hhciBjZGF0ZSBjZGJsIGNkZWMgY2ludCBjbG5nIGNvYmogY3NieXRlIGNzaG9ydCBjc25nIGNzdHIgY3VpbnQgY3VsbmcgY3VzaG9ydCcsXG4gICAgICB0eXBlOlxuICAgICAgICAvLyBEYXRhIHR5cGVzIGh0dHBzOi8vZG9jcy5taWNyb3NvZnQuY29tL2RvdG5ldC92aXN1YWwtYmFzaWMvbGFuZ3VhZ2UtcmVmZXJlbmNlL2RhdGEtdHlwZXNcbiAgICAgICAgJ2Jvb2xlYW4gYnl0ZSBjaGFyIGRhdGUgZGVjaW1hbCBkb3VibGUgaW50ZWdlciBsb25nIG9iamVjdCBzYnl0ZSBzaG9ydCBzaW5nbGUgc3RyaW5nIHVpbnRlZ2VyIHVsb25nIHVzaG9ydCcsXG4gICAgICBsaXRlcmFsOiAndHJ1ZSBmYWxzZSBub3RoaW5nJ1xuICAgIH0sXG4gICAgaWxsZWdhbDpcbiAgICAgICcvL3xcXFxce3xcXFxcfXxlbmRpZnxnb3N1Ynx2YXJpYW50fHdlbmR8XlxcXFwkICcgLyogcmVzZXJ2ZWQgZGVwcmVjYXRlZCBrZXl3b3JkcyAqLyxcbiAgICBjb250YWluczogW1xuICAgICAgQ0hBUkFDVEVSLFxuICAgICAgU1RSSU5HLFxuICAgICAgREFURSxcbiAgICAgIE5VTUJFUixcbiAgICAgIExBQkVMLFxuICAgICAgRE9DX0NPTU1FTlQsXG4gICAgICBDT01NRU5ULFxuICAgICAgRElSRUNUSVZFU1xuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB2Ym5ldDtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///89\n");
  1866. /***/ }),
  1867. /* 90 */
  1868. /*!*******************************************************************************************************!*\
  1869. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/highlight.js/lib/languages/wasm.js ***!
  1870. \*******************************************************************************************************/
  1871. /*! no static exports found */
  1872. /***/ (function(module, exports) {
  1873. eval("/*\nLanguage: WebAssembly\nWebsite: https://webassembly.org\nDescription: Wasm is designed as a portable compilation target for programming languages, enabling deployment on the web for client and server applications.\nCategory: web, common\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction wasm(hljs) {\n hljs.regex;\n var BLOCK_COMMENT = hljs.COMMENT(/\\(;/, /;\\)/);\n BLOCK_COMMENT.contains.push(\"self\");\n var LINE_COMMENT = hljs.COMMENT(/;;/, /$/);\n var KWS = [\"anyfunc\", \"block\", \"br\", \"br_if\", \"br_table\", \"call\", \"call_indirect\", \"data\", \"drop\", \"elem\", \"else\", \"end\", \"export\", \"func\", \"global.get\", \"global.set\", \"local.get\", \"local.set\", \"local.tee\", \"get_global\", \"get_local\", \"global\", \"if\", \"import\", \"local\", \"loop\", \"memory\", \"memory.grow\", \"memory.size\", \"module\", \"mut\", \"nop\", \"offset\", \"param\", \"result\", \"return\", \"select\", \"set_global\", \"set_local\", \"start\", \"table\", \"tee_local\", \"then\", \"type\", \"unreachable\"];\n var FUNCTION_REFERENCE = {\n begin: [/(?:func|call|call_indirect)/, /\\s+/, /\\$[^\\s)]+/],\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n }\n };\n var ARGUMENT = {\n className: \"variable\",\n begin: /\\$[\\w_]+/\n };\n var PARENS = {\n match: /(\\((?!;)|\\))+/,\n className: \"punctuation\",\n relevance: 0\n };\n var NUMBER = {\n className: \"number\",\n relevance: 0,\n // borrowed from Prism, TODO: split out into variants\n match: /[+-]?\\b(?:\\d(?:_?\\d)*(?:\\.\\d(?:_?\\d)*)?(?:[eE][+-]?\\d(?:_?\\d)*)?|0x[\\da-fA-F](?:_?[\\da-fA-F])*(?:\\.[\\da-fA-F](?:_?[\\da-fA-D])*)?(?:[pP][+-]?\\d(?:_?\\d)*)?)\\b|\\binf\\b|\\bnan(?::0x[\\da-fA-F](?:_?[\\da-fA-D])*)?\\b/\n };\n var TYPE = {\n // look-ahead prevents us from gobbling up opcodes\n match: /(i32|i64|f32|f64)(?!\\.)/,\n className: \"type\"\n };\n var MATH_OPERATIONS = {\n className: \"keyword\",\n // borrowed from Prism, TODO: split out into variants\n match: /\\b(f32|f64|i32|i64)(?:\\.(?:abs|add|and|ceil|clz|const|convert_[su]\\/i(?:32|64)|copysign|ctz|demote\\/f64|div(?:_[su])?|eqz?|extend_[su]\\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\\/f32|reinterpret\\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\\/f(?:32|64))?|wrap\\/i64|xor))\\b/\n };\n var OFFSET_ALIGN = {\n match: [/(?:offset|align)/, /\\s*/, /=/],\n className: {\n 1: \"keyword\",\n 3: \"operator\"\n }\n };\n return {\n name: 'WebAssembly',\n keywords: {\n $pattern: /[\\w.]+/,\n keyword: KWS\n },\n contains: [LINE_COMMENT, BLOCK_COMMENT, OFFSET_ALIGN, ARGUMENT, PARENS, FUNCTION_REFERENCE, hljs.QUOTE_STRING_MODE, TYPE, MATH_OPERATIONS, NUMBER]\n };\n}\nmodule.exports = wasm;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvd2FzbS5qcyJdLCJuYW1lcyI6WyJ3YXNtIiwiaGxqcyIsInJlZ2V4IiwiQkxPQ0tfQ09NTUVOVCIsIkNPTU1FTlQiLCJjb250YWlucyIsInB1c2giLCJMSU5FX0NPTU1FTlQiLCJLV1MiLCJGVU5DVElPTl9SRUZFUkVOQ0UiLCJiZWdpbiIsImNsYXNzTmFtZSIsIkFSR1VNRU5UIiwiUEFSRU5TIiwibWF0Y2giLCJyZWxldmFuY2UiLCJOVU1CRVIiLCJUWVBFIiwiTUFUSF9PUEVSQVRJT05TIiwiT0ZGU0VUX0FMSUdOIiwibmFtZSIsImtleXdvcmRzIiwiJHBhdHRlcm4iLCJrZXl3b3JkIiwiUVVPVEVfU1RSSU5HX01PREUiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFNBQVNBLElBQUksQ0FBQ0MsSUFBSSxFQUFFO0VBQ2xCQSxJQUFJLENBQUNDLEtBQUs7RUFDVixJQUFNQyxhQUFhLEdBQUdGLElBQUksQ0FBQ0csT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUM7RUFDaERELGFBQWEsQ0FBQ0UsUUFBUSxDQUFDQyxJQUFJLENBQUMsTUFBTSxDQUFDO0VBQ25DLElBQU1DLFlBQVksR0FBR04sSUFBSSxDQUFDRyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQztFQUU1QyxJQUFNSSxHQUFHLEdBQUcsQ0FDVixTQUFTLEVBQ1QsT0FBTyxFQUNQLElBQUksRUFDSixPQUFPLEVBQ1AsVUFBVSxFQUNWLE1BQU0sRUFDTixlQUFlLEVBQ2YsTUFBTSxFQUNOLE1BQU0sRUFDTixNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFlBQVksRUFDWixZQUFZLEVBQ1osV0FBVyxFQUNYLFdBQVcsRUFDWCxXQUFXLEVBQ1gsWUFBWSxFQUNaLFdBQVcsRUFDWCxRQUFRLEVBQ1IsSUFBSSxFQUNKLFFBQVEsRUFDUixPQUFPLEVBQ1AsTUFBTSxFQUNOLFFBQVEsRUFDUixhQUFhLEVBQ2IsYUFBYSxFQUNiLFFBQVEsRUFDUixLQUFLLEVBQ0wsS0FBSyxFQUNMLFFBQVEsRUFDUixPQUFPLEVBQ1AsUUFBUSxFQUNSLFFBQVEsRUFDUixRQUFRLEVBQ1IsWUFBWSxFQUNaLFdBQVcsRUFDWCxPQUFPLEVBQ1AsT0FBTyxFQUNQLFdBQVcsRUFDWCxNQUFNLEVBQ04sTUFBTSxFQUNOLGFBQWEsQ0FDZDtFQUVELElBQU1DLGtCQUFrQixHQUFHO0lBQ3pCQyxLQUFLLEVBQUUsQ0FDTCw2QkFBNkIsRUFDN0IsS0FBSyxFQUNMLFdBQVcsQ0FDWjtJQUNEQyxTQUFTLEVBQUU7TUFDVCxDQUFDLEVBQUUsU0FBUztNQUNaLENBQUMsRUFBRTtJQUNMO0VBQ0YsQ0FBQztFQUVELElBQU1DLFFBQVEsR0FBRztJQUNmRCxTQUFTLEVBQUUsVUFBVTtJQUNyQkQsS0FBSyxFQUFFO0VBQ1QsQ0FBQztFQUVELElBQU1HLE1BQU0sR0FBRztJQUNiQyxLQUFLLEVBQUUsZUFBZTtJQUN0QkgsU0FBUyxFQUFFLGFBQWE7SUFDeEJJLFNBQVMsRUFBRTtFQUNiLENBQUM7RUFFRCxJQUFNQyxNQUFNLEdBQUc7SUFDYkwsU0FBUyxFQUFFLFFBQVE7SUFDbkJJLFNBQVMsRUFBRSxDQUFDO0lBQ1o7SUFDQUQsS0FBSyxFQUFFO0VBQ1QsQ0FBQztFQUVELElBQU1HLElBQUksR0FBRztJQUNYO0lBQ0FILEtBQUssRUFBRSx5QkFBeUI7SUFDaENILFNBQVMsRUFBRTtFQUNiLENBQUM7RUFFRCxJQUFNTyxlQUFlLEdBQUc7SUFDdEJQLFNBQVMsRUFBRSxTQUFTO0lBQ3BCO0lBQ0FHLEtBQUssRUFBRTtFQUNULENBQUM7RUFFRCxJQUFNSyxZQUFZLEdBQUc7SUFDbkJMLEtBQUssRUFBRSxDQUNMLGtCQUFrQixFQUNsQixLQUFLLEVBQ0wsR0FBRyxDQUNKO0lBQ0RILFNBQVMsRUFBRTtNQUNULENBQUMsRUFBRSxTQUFTO01BQ1osQ0FBQyxFQUFFO0lBQ0w7RUFDRixDQUFDO0VBRUQsT0FBTztJQUNMUyxJQUFJLEVBQUUsYUFBYTtJQUNuQkMsUUFBUSxFQUFFO01BQ1JDLFFBQVEsRUFBRSxRQUFRO01BQ2xCQyxPQUFPLEVBQUVmO0lBQ1gsQ0FBQztJQUNESCxRQUFRLEVBQUUsQ0FDUkUsWUFBWSxFQUNaSixhQUFhLEVBQ2JnQixZQUFZLEVBQ1pQLFFBQVEsRUFDUkMsTUFBTSxFQUNOSixrQkFBa0IsRUFDbEJSLElBQUksQ0FBQ3VCLGlCQUFpQixFQUN0QlAsSUFBSSxFQUNKQyxlQUFlLEVBQ2ZGLE1BQU07RUFFVixDQUFDO0FBQ0g7QUFFQVMsTUFBTSxDQUFDQyxPQUFPLEdBQUcxQixJQUFJIiwiZmlsZSI6IjkwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbkxhbmd1YWdlOiBXZWJBc3NlbWJseVxuV2Vic2l0ZTogaHR0cHM6Ly93ZWJhc3NlbWJseS5vcmdcbkRlc2NyaXB0aW9uOiAgV2FzbSBpcyBkZXNpZ25lZCBhcyBhIHBvcnRhYmxlIGNvbXBpbGF0aW9uIHRhcmdldCBmb3IgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzLCBlbmFibGluZyBkZXBsb3ltZW50IG9uIHRoZSB3ZWIgZm9yIGNsaWVudCBhbmQgc2VydmVyIGFwcGxpY2F0aW9ucy5cbkNhdGVnb3J5OiB3ZWIsIGNvbW1vblxuQXVkaXQ6IDIwMjBcbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiB3YXNtKGhsanMpIHtcbiAgaGxqcy5yZWdleDtcbiAgY29uc3QgQkxPQ0tfQ09NTUVOVCA9IGhsanMuQ09NTUVOVCgvXFwoOy8sIC87XFwpLyk7XG4gIEJMT0NLX0NPTU1FTlQuY29udGFpbnMucHVzaChcInNlbGZcIik7XG4gIGNvbnN0IExJTkVfQ09NTUVOVCA9IGhsanMuQ09NTUVOVCgvOzsvLCAvJC8pO1xuXG4gIGNvbnN0IEtXUyA9IFtcbiAgICBcImFueWZ1bmNcIixcbiAgICBcImJsb2NrXCIsXG4gICAgXCJiclwiLFxuICAgIFwiYnJfaWZcIixcbiAgICBcImJyX3RhYmxlXCIsXG4gICAgXCJjYWxsXCIsXG4gICAgXCJjYWxsX2luZGlyZWN0XCIsXG4gICAgXCJkYXRhXCIsXG4gICAgXCJkcm9wXCIsXG4gICAgXCJlbGVtXCIsXG4gICAgXCJlbHNlXCIsXG4gICAgXCJlbmRcIixcbiAgICBcImV4cG9ydFwiLFxuICAgIFwiZnVuY1wiLFxuICAgIFwiZ2xvYmFsLmdldFwiLFxuICAgIFwiZ2xvYmFsLnNldFwiLFxuICAgIFwibG9jYWwuZ2V0XCIsXG4gICAgXCJsb2NhbC5zZXRcIixcbiAgICBcImxvY2FsLnRlZVwiLFxuICAgIFwiZ2V0X2dsb2JhbFwiLFxuICAgIFwiZ2V0X2xvY2FsXCIsXG4gICAgXCJnbG9iYWxcIixcbiAgICBcImlmXCIsXG4gICAgXCJpbXBvcnRcIixcbiAgICBcImxvY2FsXCIsXG4gICAgXCJsb29wXCIsXG4gICAgXCJtZW1vcnlcIixcbiAgICBcIm1lbW9yeS5ncm93XCIsXG4gICAgXCJtZW1vcnkuc2l6ZVwiLFxuICAgIFwibW9kdWxlXCIsXG4gICAgXCJtdXRcIixcbiAgICBcIm5vcFwiLFxuICAgIFwib2Zmc2V0XCIsXG4gICAgXCJwYXJhbVwiLFxuICAgIFwicmVzdWx0XCIsXG4gICAgXCJyZXR1cm5cIixcbiAgICBcInNlbGVjdFwiLFxuICAgIFwic2V0X2dsb2JhbFwiLFxuICAgIFwic2V0X2xvY2FsXCIsXG4gICAgXCJzdGFydFwiLFxuICAgIFwidGFibGVcIixcbiAgICBcInRlZV9sb2NhbFwiLFxuICAgIFwidGhlblwiLFxuICAgIFwidHlwZVwiLFxuICAgIFwidW5yZWFjaGFibGVcIlxuICBdO1xuXG4gIGNvbnN0IEZVTkNUSU9OX1JFRkVSRU5DRSA9IHtcbiAgICBiZWdpbjogW1xuICAgICAgLyg/OmZ1bmN8Y2FsbHxjYWxsX2luZGlyZWN0KS8sXG4gICAgICAvXFxzKy8sXG4gICAgICAvXFwkW15cXHMpXSsvXG4gICAgXSxcbiAgICBjbGFzc05hbWU6IHtcbiAgICAgIDE6IFwia2V5d29yZFwiLFxuICAgICAgMzogXCJ0aXRsZS5mdW5jdGlvblwiXG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IEFSR1VNRU5UID0ge1xuICAgIGNsYXNzTmFtZTogXCJ2YXJpYWJsZVwiLFxuICAgIGJlZ2luOiAvXFwkW1xcd19dKy9cbiAgfTtcblxuICBjb25zdCBQQVJFTlMgPSB7XG4gICAgbWF0Y2g6IC8oXFwoKD8hOyl8XFwpKSsvLFxuICAgIGNsYXNzTmFtZTogXCJwdW5jdHVhdGlvblwiLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIGNvbnN0IE5VTUJFUiA9IHtcbiAgICBjbGFzc05hbWU6IFwibnVtYmVyXCIsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIC8vIGJvcnJvd2VkIGZyb20gUHJpc20sIFRPRE86IHNwbGl0IG91dCBpbnRvIHZhcmlhbnRzXG4gICAgbWF0Y2g6IC9bKy1dP1xcYig/OlxcZCg/Ol8/XFxkKSooPzpcXC5cXGQoPzpfP1xcZCkqKT8oPzpbZUVdWystXT9cXGQoPzpfP1xcZCkqKT98MHhbXFxkYS1mQS1GXSg/Ol8/W1xcZGEtZkEtRl0pKig/OlxcLltcXGRhLWZBLUZdKD86Xz9bXFxkYS1mQS1EXSkqKT8oPzpbcFBdWystXT9cXGQoPzpfP1xcZCkqKT8pXFxifFxcYmluZlxcYnxcXGJuYW4oPzo6MHhbXFxkYS1mQS1GXSg/Ol8/W1xcZGEtZkEtRF0pKik/XFxiL1xuICB9O1xuXG4gIGNvbnN0IFRZUEUgPSB7XG4gICAgLy8gbG9vay1haGVhZCBwcmV2ZW50cyB1cyBmcm9tIGdvYmJsaW5nIHVwIG9wY29kZXNcbiAgICBtYXRjaDogLyhpMzJ8aTY0fGYzMnxmNjQpKD8hXFwuKS8sXG4gICAgY2xhc3NOYW1lOiBcInR5cGVcIlxuICB9O1xuXG4gIGNvbnN0IE1BVEhfT1BFUkFUSU9OUyA9IHtcbiAgICBjbGFzc05hbWU6IFwia2V5d29yZFwiLFxuICAgIC8vIGJvcnJvd2VkIGZyb20gUHJpc20sIFRPRE86IHNwbGl0IG91dCBpbnRvIHZhcmlhbnRzXG4gICAgbWF0Y2g6IC9cXGIoZjMyfGY2NHxpMzJ8aTY0KSg/OlxcLig/OmFic3xhZGR8YW5kfGNlaWx8Y2x6fGNvbnN0fGNvbnZlcnRfW3N1XVxcL2koPzozMnw2NCl8Y29weXNpZ258Y3R6fGRlbW90ZVxcL2Y2NHxkaXYoPzpfW3N1XSk/fGVxej98ZXh0ZW5kX1tzdV1cXC9pMzJ8Zmxvb3J8Z2UoPzpfW3N1XSk/fGd0KD86X1tzdV0pP3xsZSg/Ol9bc3VdKT98bG9hZCg/Oig/Ojh8MTZ8MzIpX1tzdV0pP3xsdCg/Ol9bc3VdKT98bWF4fG1pbnxtdWx8bmVhcmVzdHxuZWc/fG9yfHBvcGNudHxwcm9tb3RlXFwvZjMyfHJlaW50ZXJwcmV0XFwvW2ZpXSg/OjMyfDY0KXxyZW1fW3N1XXxyb3RbbHJdfHNobHxzaHJfW3N1XXxzdG9yZSg/Ojh8MTZ8MzIpP3xzcXJ0fHN1Ynx0cnVuYyg/Ol9bc3VdXFwvZig/OjMyfDY0KSk/fHdyYXBcXC9pNjR8eG9yKSlcXGIvXG4gIH07XG5cbiAgY29uc3QgT0ZGU0VUX0FMSUdOID0ge1xuICAgIG1hdGNoOiBbXG4gICAgICAvKD86b2Zmc2V0fGFsaWduKS8sXG4gICAgICAvXFxzKi8sXG4gICAgICAvPS9cbiAgICBdLFxuICAgIGNsYXNzTmFtZToge1xuICAgICAgMTogXCJrZXl3b3JkXCIsXG4gICAgICAzOiBcIm9wZXJhdG9yXCJcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnV2ViQXNzZW1ibHknLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICAkcGF0dGVybjogL1tcXHcuXSsvLFxuICAgICAga2V5d29yZDogS1dTXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgTElORV9DT01NRU5ULFxuICAgICAgQkxPQ0tfQ09NTUVOVCxcbiAgICAgIE9GRlNFVF9BTElHTixcbiAgICAgIEFSR1VNRU5ULFxuICAgICAgUEFSRU5TLFxuICAgICAgRlVOQ1RJT05fUkVGRVJFTkNFLFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIFRZUEUsXG4gICAgICBNQVRIX09QRVJBVElPTlMsXG4gICAgICBOVU1CRVJcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gd2FzbTtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///90\n");
  1874. /***/ }),
  1875. /* 91 */
  1876. /*!************************************************************!*\
  1877. !*** ./node_modules/highlight.js/styles/atom-one-dark.css ***!
  1878. \************************************************************/
  1879. /*! no static exports found */
  1880. /***/ (function(module, exports) {
  1881. /***/ }),
  1882. /* 92 */
  1883. /*!************************************************************************************!*\
  1884. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/pages/index/v-copy.js ***!
  1885. \************************************************************************************/
  1886. /*! no static exports found */
  1887. /***/ (function(module, exports, __webpack_require__) {
  1888. "use strict";
  1889. eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nvar _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 93));\n// 注册一个全局自定义复制指令 `v-copy`\n_vue.default.directive(\"copy\", {\n bind: function bind(el, _ref) {\n var value = _ref.value;\n el.$value = value;\n el.handler = function () {\n el.style.position = 'relative';\n if (!el.$value) {\n // 值为空的时候,给出提示\n // alert('无复制内容');\n uni.showToast({\n title: \"无复制内容\"\n });\n return;\n }\n // 动态创建 textarea 标签\n var textarea = document.createElement('textarea');\n // 将该 textarea 设为 readonly 防止 iOS 下自动唤起键盘,同时将 textarea 移出可视区域\n textarea.readOnly = 'readonly';\n textarea.style.position = 'absolute';\n textarea.style.top = '0px';\n textarea.style.left = '-9999px';\n textarea.style.zIndex = '-9999';\n // 将要 copy 的值赋给 textarea 标签的 value 属性\n textarea.value = el.$value;\n // 将 textarea 插入到 el 中\n el.appendChild(textarea);\n // 兼容IOS 没有 select() 方法\n if (textarea.createTextRange) {\n textarea.select(); // 选中值并复制\n } else {\n textarea.setSelectionRange(0, el.$value.length);\n textarea.focus();\n }\n var result = document.execCommand('Copy');\n if (result) {\n uni.showToast({\n title: \"复制成功\"\n });\n }\n el.removeChild(textarea);\n };\n el.addEventListener('click', el.handler); // 绑定点击事件\n },\n // 当传进来的值更新的时候触发\n componentUpdated: function componentUpdated(el, _ref2) {\n var value = _ref2.value;\n el.$value = value;\n },\n // 指令与元素解绑的时候,移除事件绑定\n unbind: function unbind(el) {\n el.removeEventListener('click', el.handler);\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaW5kZXgvdi1jb3B5LmpzIl0sIm5hbWVzIjpbIlZ1ZSIsImRpcmVjdGl2ZSIsImJpbmQiLCJlbCIsInZhbHVlIiwiJHZhbHVlIiwiaGFuZGxlciIsInN0eWxlIiwicG9zaXRpb24iLCJ1bmkiLCJzaG93VG9hc3QiLCJ0aXRsZSIsInRleHRhcmVhIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwicmVhZE9ubHkiLCJ0b3AiLCJsZWZ0IiwiekluZGV4IiwiYXBwZW5kQ2hpbGQiLCJjcmVhdGVUZXh0UmFuZ2UiLCJzZWxlY3QiLCJzZXRTZWxlY3Rpb25SYW5nZSIsImxlbmd0aCIsImZvY3VzIiwicmVzdWx0IiwiZXhlY0NvbW1hbmQiLCJyZW1vdmVDaGlsZCIsImFkZEV2ZW50TGlzdGVuZXIiLCJjb21wb25lbnRVcGRhdGVkIiwidW5iaW5kIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciJdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7QUFDQTtBQUNBQSxZQUFHLENBQUNDLFNBQVMsQ0FBQyxNQUFNLEVBQUU7RUFDcEJDLElBQUksZ0JBQUNDLEVBQUUsUUFBYTtJQUFBLElBQVRDLEtBQUssUUFBTEEsS0FBSztJQUNkRCxFQUFFLENBQUNFLE1BQU0sR0FBR0QsS0FBSztJQUNqQkQsRUFBRSxDQUFDRyxPQUFPLEdBQUcsWUFBTTtNQUNqQkgsRUFBRSxDQUFDSSxLQUFLLENBQUNDLFFBQVEsR0FBRyxVQUFVO01BQzlCLElBQUksQ0FBQ0wsRUFBRSxDQUFDRSxNQUFNLEVBQUU7UUFDZDtRQUNBO1FBQ05JLEdBQUcsQ0FBQ0MsU0FBUyxDQUFDO1VBQ2JDLEtBQUssRUFBQztRQUNQLENBQUMsQ0FBQztRQUNJO01BQ0Y7TUFDQTtNQUNBLElBQU1DLFFBQVEsR0FBR0MsUUFBUSxDQUFDQyxhQUFhLENBQUMsVUFBVSxDQUFDO01BQ25EO01BQ0FGLFFBQVEsQ0FBQ0csUUFBUSxHQUFHLFVBQVU7TUFDOUJILFFBQVEsQ0FBQ0wsS0FBSyxDQUFDQyxRQUFRLEdBQUcsVUFBVTtNQUNwQ0ksUUFBUSxDQUFDTCxLQUFLLENBQUNTLEdBQUcsR0FBRyxLQUFLO01BQzFCSixRQUFRLENBQUNMLEtBQUssQ0FBQ1UsSUFBSSxHQUFHLFNBQVM7TUFDL0JMLFFBQVEsQ0FBQ0wsS0FBSyxDQUFDVyxNQUFNLEdBQUcsT0FBTztNQUMvQjtNQUNBTixRQUFRLENBQUNSLEtBQUssR0FBR0QsRUFBRSxDQUFDRSxNQUFNO01BQzFCO01BQ0FGLEVBQUUsQ0FBQ2dCLFdBQVcsQ0FBQ1AsUUFBUSxDQUFDO01BQ3hCO01BQ0EsSUFBSUEsUUFBUSxDQUFDUSxlQUFlLEVBQUU7UUFDNUJSLFFBQVEsQ0FBQ1MsTUFBTSxFQUFFLENBQUMsQ0FBQztNQUNyQixDQUFDLE1BQU07UUFDTFQsUUFBUSxDQUFDVSxpQkFBaUIsQ0FBQyxDQUFDLEVBQUVuQixFQUFFLENBQUNFLE1BQU0sQ0FBQ2tCLE1BQU0sQ0FBQztRQUMvQ1gsUUFBUSxDQUFDWSxLQUFLLEVBQUU7TUFDbEI7TUFDQSxJQUFNQyxNQUFNLEdBQUdaLFFBQVEsQ0FBQ2EsV0FBVyxDQUFDLE1BQU0sQ0FBQztNQUMzQyxJQUFJRCxNQUFNLEVBQUU7UUFDZGhCLEdBQUcsQ0FBQ0MsU0FBUyxDQUFDO1VBQ2JDLEtBQUssRUFBQztRQUNQLENBQUMsQ0FBQztNQUNIO01BQ0dSLEVBQUUsQ0FBQ3dCLFdBQVcsQ0FBQ2YsUUFBUSxDQUFDO0lBQzFCLENBQUM7SUFDRFQsRUFBRSxDQUFDeUIsZ0JBQWdCLENBQUMsT0FBTyxFQUFFekIsRUFBRSxDQUFDRyxPQUFPLENBQUMsQ0FBQyxDQUFDO0VBQzVDLENBQUM7RUFDRDtFQUNBdUIsZ0JBQWdCLDRCQUFDMUIsRUFBRSxTQUFhO0lBQUEsSUFBVEMsS0FBSyxTQUFMQSxLQUFLO0lBQzFCRCxFQUFFLENBQUNFLE1BQU0sR0FBR0QsS0FBSztFQUNuQixDQUFDO0VBQ0Q7RUFDQTBCLE1BQU0sa0JBQUMzQixFQUFFLEVBQUU7SUFDVEEsRUFBRSxDQUFDNEIsbUJBQW1CLENBQUMsT0FBTyxFQUFFNUIsRUFBRSxDQUFDRyxPQUFPLENBQUM7RUFDN0M7QUFDRixDQUFDLENBQUMiLCJmaWxlIjoiOTIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVnVlIGZyb20gXCJ2dWVcIjtcbi8vIOazqOWGjOS4gOS4quWFqOWxgOiHquWumuS5ieWkjeWItuaMh+S7pCBgdi1jb3B5YFxuVnVlLmRpcmVjdGl2ZShcImNvcHlcIiwge1xuICBiaW5kKGVsLCB7IHZhbHVlIH0pIHtcbiAgICBlbC4kdmFsdWUgPSB2YWx1ZTtcbiAgICBlbC5oYW5kbGVyID0gKCkgPT4ge1xuICAgICAgZWwuc3R5bGUucG9zaXRpb24gPSAncmVsYXRpdmUnO1xuICAgICAgaWYgKCFlbC4kdmFsdWUpIHtcbiAgICAgICAgLy8g5YC85Li656m655qE5pe25YCZ77yM57uZ5Ye65o+Q56S6XG4gICAgICAgIC8vIGFsZXJ0KCfml6DlpI3liLblhoXlrrknKTtcblx0XHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdHRpdGxlOlwi5peg5aSN5Yi25YaF5a65XCJcblx0XHR9KVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIC8vIOWKqOaAgeWIm+W7uiB0ZXh0YXJlYSDmoIfnrb5cbiAgICAgIGNvbnN0IHRleHRhcmVhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKTtcbiAgICAgIC8vIOWwhuivpSB0ZXh0YXJlYSDorr7kuLogcmVhZG9ubHkg6Ziy5q2iIGlPUyDkuIvoh6rliqjllKTotbfplK7nm5jvvIzlkIzml7blsIYgdGV4dGFyZWEg56e75Ye65Y+v6KeG5Yy65Z+fXG4gICAgICB0ZXh0YXJlYS5yZWFkT25seSA9ICdyZWFkb25seSc7XG4gICAgICB0ZXh0YXJlYS5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgICB0ZXh0YXJlYS5zdHlsZS50b3AgPSAnMHB4JztcbiAgICAgIHRleHRhcmVhLnN0eWxlLmxlZnQgPSAnLTk5OTlweCc7XG4gICAgICB0ZXh0YXJlYS5zdHlsZS56SW5kZXggPSAnLTk5OTknO1xuICAgICAgLy8g5bCG6KaBIGNvcHkg55qE5YC86LWL57uZIHRleHRhcmVhIOagh+etvueahCB2YWx1ZSDlsZ7mgKdcbiAgICAgIHRleHRhcmVhLnZhbHVlID0gZWwuJHZhbHVlXG4gICAgICAvLyDlsIYgdGV4dGFyZWEg5o+S5YWl5YiwIGVsIOS4rVxuICAgICAgZWwuYXBwZW5kQ2hpbGQodGV4dGFyZWEpO1xuICAgICAgLy8g5YW85a65SU9TIOayoeaciSBzZWxlY3QoKSDmlrnms5VcbiAgICAgIGlmICh0ZXh0YXJlYS5jcmVhdGVUZXh0UmFuZ2UpIHtcbiAgICAgICAgdGV4dGFyZWEuc2VsZWN0KCk7IC8vIOmAieS4reWAvOW5tuWkjeWItlxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGV4dGFyZWEuc2V0U2VsZWN0aW9uUmFuZ2UoMCwgZWwuJHZhbHVlLmxlbmd0aCk7XG4gICAgICAgIHRleHRhcmVhLmZvY3VzKCk7XG4gICAgICB9XG4gICAgICBjb25zdCByZXN1bHQgPSBkb2N1bWVudC5leGVjQ29tbWFuZCgnQ29weScpO1xuICAgICAgaWYgKHJlc3VsdCkge1xuXHRcdCAgdW5pLnNob3dUb2FzdCh7XG5cdFx0ICBcdHRpdGxlOlwi5aSN5Yi25oiQ5YqfXCJcblx0XHQgIH0pXG5cdCAgfVxuICAgICAgZWwucmVtb3ZlQ2hpbGQodGV4dGFyZWEpO1xuICAgIH1cbiAgICBlbC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGVsLmhhbmRsZXIpOyAvLyDnu5Hlrprngrnlh7vkuovku7ZcbiAgfSxcbiAgLy8g5b2T5Lyg6L+b5p2l55qE5YC85pu05paw55qE5pe25YCZ6Kem5Y+RXG4gIGNvbXBvbmVudFVwZGF0ZWQoZWwsIHsgdmFsdWUgfSkge1xuICAgIGVsLiR2YWx1ZSA9IHZhbHVlO1xuICB9LFxuICAvLyDmjIfku6TkuI7lhYPntKDop6Pnu5HnmoTml7blgJnvvIznp7vpmaTkuovku7bnu5HlrppcbiAgdW5iaW5kKGVsKSB7XG4gICAgZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCBlbC5oYW5kbGVyKTtcbiAgfSxcbn0pO1xuXG5cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///92\n");
  1890. /***/ }),
  1891. /* 93 */
  1892. /*!**********************!*\
  1893. !*** external "Vue" ***!
  1894. \**********************/
  1895. /*! no static exports found */
  1896. /***/ (function(module, exports) {
  1897. module.exports = Vue;
  1898. /***/ }),
  1899. /* 94 */
  1900. /*!**********************************************************************!*\
  1901. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/App.vue ***!
  1902. \**********************************************************************/
  1903. /*! no static exports found */
  1904. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1905. "use strict";
  1906. eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./App.vue?vue&type=script&lang=js& */ 95);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 18);\nvar render, staticRenderFns, recyclableRender, components\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\n _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n render,\n staticRenderFns,\n false,\n null,\n null,\n null,\n false,\n components,\n renderjs\n)\n\ncomponent.options.__file = \"App.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUN1RDtBQUNMOzs7QUFHbEQ7QUFDNk07QUFDN00sZ0JBQWdCLGlOQUFVO0FBQzFCLEVBQUUseUVBQU07QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNlLGdGIiwiZmlsZSI6Ijk0LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHJlbmRlciwgc3RhdGljUmVuZGVyRm5zLCByZWN5Y2xhYmxlUmVuZGVyLCBjb21wb25lbnRzXG52YXIgcmVuZGVyanNcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vQXBwLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vQXBwLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vLi4vQXBwbGljYXRpb25zL0hCdWlsZGVyWC5hcHAvQ29udGVudHMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBudWxsLFxuICBudWxsLFxuICBmYWxzZSxcbiAgY29tcG9uZW50cyxcbiAgcmVuZGVyanNcbilcblxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJBcHAudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///94\n");
  1907. /***/ }),
  1908. /* 95 */
  1909. /*!***********************************************************************************************!*\
  1910. !*** /Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/App.vue?vue&type=script&lang=js& ***!
  1911. \***********************************************************************************************/
  1912. /*! no static exports found */
  1913. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1914. "use strict";
  1915. eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./App.vue?vue&type=script&lang=js& */ 96);\n/* harmony import */ var _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQXVzQixDQUFnQix5c0JBQUcsRUFBQyIsImZpbGUiOiI5NS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vQXBwbGljYXRpb25zL0hCdWlsZGVyWC5hcHAvQ29udGVudHMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi9BcHBsaWNhdGlvbnMvSEJ1aWxkZXJYLmFwcC9Db250ZW50cy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNy0xIS4uLy4uLy4uLy4uLy4uLy4uL0FwcGxpY2F0aW9ucy9IQnVpbGRlclguYXBwL0NvbnRlbnRzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uL0FwcGxpY2F0aW9ucy9IQnVpbGRlclguYXBwL0NvbnRlbnRzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL0FwcC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vQXBwbGljYXRpb25zL0hCdWlsZGVyWC5hcHAvQ29udGVudHMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi9BcHBsaWNhdGlvbnMvSEJ1aWxkZXJYLmFwcC9Db250ZW50cy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNy0xIS4uLy4uLy4uLy4uLy4uLy4uL0FwcGxpY2F0aW9ucy9IQnVpbGRlclguYXBwL0NvbnRlbnRzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uL0FwcGxpY2F0aW9ucy9IQnVpbGRlclguYXBwL0NvbnRlbnRzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL0FwcC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///95\n");
  1916. /***/ }),
  1917. /* 96 */
  1918. /*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  1919. !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!/Users/future/Desktop/uniapp/uni-h5-chatgpt/h5_chatgpt/App.vue?vue&type=script&lang=js& ***!
  1920. \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
  1921. /*! no static exports found */
  1922. /***/ (function(module, exports, __webpack_require__) {
  1923. "use strict";
  1924. eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = {\n onLaunch: function onLaunch() {\n __f__(\"log\", 'App Launch', \" at App.vue:4\");\n },\n onShow: function onShow() {\n __f__(\"log\", 'App Show', \" at App.vue:7\");\n },\n onHide: function onHide() {\n __f__(\"log\", 'App Hide', \" at App.vue:10\");\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 26)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vQXBwLnZ1ZSJdLCJuYW1lcyI6WyJvbkxhdW5jaCIsIm9uU2hvdyIsIm9uSGlkZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7O2VBQ2U7RUFDZEEsUUFBUSxFQUFFLG9CQUFXO0lBQ3BCLGFBQVksWUFBWTtFQUN6QixDQUFDO0VBQ0RDLE1BQU0sRUFBRSxrQkFBVztJQUNsQixhQUFZLFVBQVU7RUFDdkIsQ0FBQztFQUNEQyxNQUFNLEVBQUUsa0JBQVc7SUFDbEIsYUFBWSxVQUFVO0VBQ3ZCO0FBQ0QsQ0FBQztBQUFBLDJCIiwiZmlsZSI6Ijk2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiXG5leHBvcnQgZGVmYXVsdCB7XG5cdG9uTGF1bmNoOiBmdW5jdGlvbigpIHtcblx0XHRjb25zb2xlLmxvZygnQXBwIExhdW5jaCcpXG5cdH0sXG5cdG9uU2hvdzogZnVuY3Rpb24oKSB7XG5cdFx0Y29uc29sZS5sb2coJ0FwcCBTaG93Jylcblx0fSxcblx0b25IaWRlOiBmdW5jdGlvbigpIHtcblx0XHRjb25zb2xlLmxvZygnQXBwIEhpZGUnKVxuXHR9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///96\n");
  1925. /***/ })
  1926. ],[[0,"app-config"]]]);